@multiplayer-app/session-recorder-react-native 0.0.1-alpha.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.
- package/LICENSE +21 -0
- package/README.md +226 -0
- package/babel.config.js +13 -0
- package/dist/config/masking.d.ts +30 -0
- package/dist/config/masking.js +1 -0
- package/dist/config/masking.js.map +1 -0
- package/dist/expo.d.ts +11 -0
- package/dist/expo.js +1 -0
- package/dist/expo.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/otel/helpers.d.ts +3 -0
- package/dist/otel/helpers.js +1 -0
- package/dist/otel/helpers.js.map +1 -0
- package/dist/otel/index.d.ts +40 -0
- package/dist/otel/index.js +1 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/otel/instrumentations/gestureInstrumentation.d.ts +15 -0
- package/dist/otel/instrumentations/gestureInstrumentation.js +1 -0
- package/dist/otel/instrumentations/gestureInstrumentation.js.map +1 -0
- package/dist/otel/instrumentations/index.d.ts +5 -0
- package/dist/otel/instrumentations/index.js +1 -0
- package/dist/otel/instrumentations/index.js.map +1 -0
- package/dist/otel/instrumentations/reactNativeInstrumentation.d.ts +8 -0
- package/dist/otel/instrumentations/reactNativeInstrumentation.js +1 -0
- package/dist/otel/instrumentations/reactNativeInstrumentation.js.map +1 -0
- package/dist/otel/instrumentations/reactNavigationInstrumentation.d.ts +12 -0
- package/dist/otel/instrumentations/reactNavigationInstrumentation.js +1 -0
- package/dist/otel/instrumentations/reactNavigationInstrumentation.js.map +1 -0
- package/dist/recorder/gestureRecorder.d.ts +42 -0
- package/dist/recorder/gestureRecorder.js +1 -0
- package/dist/recorder/gestureRecorder.js.map +1 -0
- package/dist/recorder/index.d.ts +16 -0
- package/dist/recorder/index.js +1 -0
- package/dist/recorder/index.js.map +1 -0
- package/dist/recorder/navigationTracker.d.ts +43 -0
- package/dist/recorder/navigationTracker.js +1 -0
- package/dist/recorder/navigationTracker.js.map +1 -0
- package/dist/recorder/screenRecorder.d.ts +46 -0
- package/dist/recorder/screenRecorder.js +1 -0
- package/dist/recorder/screenRecorder.js.map +1 -0
- package/dist/services/api.service.d.ts +20 -0
- package/dist/services/api.service.js +1 -0
- package/dist/services/api.service.js.map +1 -0
- package/dist/services/storage.service.d.ts +23 -0
- package/dist/services/storage.service.js +1 -0
- package/dist/services/storage.service.js.map +1 -0
- package/dist/sessionRecorder.d.ts +54 -0
- package/dist/sessionRecorder.js +1 -0
- package/dist/sessionRecorder.js.map +1 -0
- package/dist/types/index.d.ts +81 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/platform.d.ts +9 -0
- package/dist/utils/platform.js +1 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +1 -0
- package/dist/version.js.map +1 -0
- package/examples/sample-expo-app/README.md +142 -0
- package/examples/sample-expo-app/app/(tabs)/_layout.tsx +60 -0
- package/examples/sample-expo-app/app/(tabs)/explore.tsx +110 -0
- package/examples/sample-expo-app/app/(tabs)/index.tsx +125 -0
- package/examples/sample-expo-app/app/(tabs)/posts.tsx +96 -0
- package/examples/sample-expo-app/app/(tabs)/users.tsx +131 -0
- package/examples/sample-expo-app/app/+not-found.tsx +32 -0
- package/examples/sample-expo-app/app/_layout.tsx +53 -0
- package/examples/sample-expo-app/app/post/[id].tsx +199 -0
- package/examples/sample-expo-app/app/user/[id].tsx +270 -0
- package/examples/sample-expo-app/app.json +42 -0
- package/examples/sample-expo-app/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/examples/sample-expo-app/assets/images/adaptive-icon.png +0 -0
- package/examples/sample-expo-app/assets/images/favicon.png +0 -0
- package/examples/sample-expo-app/assets/images/icon.png +0 -0
- package/examples/sample-expo-app/assets/images/partial-react-logo.png +0 -0
- package/examples/sample-expo-app/assets/images/react-logo.png +0 -0
- package/examples/sample-expo-app/assets/images/react-logo@2x.png +0 -0
- package/examples/sample-expo-app/assets/images/react-logo@3x.png +0 -0
- package/examples/sample-expo-app/assets/images/splash-icon.png +0 -0
- package/examples/sample-expo-app/components/Collapsible.tsx +45 -0
- package/examples/sample-expo-app/components/ErrorView.tsx +52 -0
- package/examples/sample-expo-app/components/ExternalLink.tsx +24 -0
- package/examples/sample-expo-app/components/HapticTab.tsx +18 -0
- package/examples/sample-expo-app/components/HelloWave.tsx +40 -0
- package/examples/sample-expo-app/components/LoadingSpinner.tsx +34 -0
- package/examples/sample-expo-app/components/ParallaxScrollView.tsx +82 -0
- package/examples/sample-expo-app/components/ThemedText.tsx +60 -0
- package/examples/sample-expo-app/components/ThemedView.tsx +14 -0
- package/examples/sample-expo-app/components/ui/IconSymbol.ios.tsx +32 -0
- package/examples/sample-expo-app/components/ui/IconSymbol.tsx +41 -0
- package/examples/sample-expo-app/components/ui/TabBarBackground.ios.tsx +19 -0
- package/examples/sample-expo-app/components/ui/TabBarBackground.tsx +6 -0
- package/examples/sample-expo-app/constants/Colors.ts +26 -0
- package/examples/sample-expo-app/eslint.config.js +10 -0
- package/examples/sample-expo-app/hooks/useApi.ts +41 -0
- package/examples/sample-expo-app/hooks/useColorScheme.ts +1 -0
- package/examples/sample-expo-app/hooks/useColorScheme.web.ts +21 -0
- package/examples/sample-expo-app/hooks/useThemeColor.ts +21 -0
- package/examples/sample-expo-app/metro.config.js +26 -0
- package/examples/sample-expo-app/package-lock.json +26296 -0
- package/examples/sample-expo-app/package.json +59 -0
- package/examples/sample-expo-app/scripts/reset-project.js +112 -0
- package/examples/sample-expo-app/services/api.ts +98 -0
- package/examples/sample-expo-app/tsconfig.json +17 -0
- package/examples/sample-expo-app/utils/navigation.ts +19 -0
- package/package.json +98 -0
- package/src/config/masking.ts +78 -0
- package/src/expo.ts +41 -0
- package/src/index.ts +20 -0
- package/src/otel/helpers.ts +21 -0
- package/src/otel/index.ts +348 -0
- package/src/otel/instrumentations/gestureInstrumentation.ts +141 -0
- package/src/otel/instrumentations/index.ts +86 -0
- package/src/otel/instrumentations/reactNativeInstrumentation.ts +164 -0
- package/src/otel/instrumentations/reactNavigationInstrumentation.ts +114 -0
- package/src/recorder/gestureRecorder.ts +429 -0
- package/src/recorder/index.ts +71 -0
- package/src/recorder/navigationTracker.ts +447 -0
- package/src/recorder/screenRecorder.ts +411 -0
- package/src/services/api.service.ts +78 -0
- package/src/services/storage.service.ts +130 -0
- package/src/sessionRecorder.ts +367 -0
- package/src/types/expo.d.ts +23 -0
- package/src/types/index.ts +88 -0
- package/src/utils/platform.ts +75 -0
- package/src/version.ts +1 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { GestureEvent, RecorderConfig } from '../types';
|
|
2
|
+
export declare class GestureRecorder {
|
|
3
|
+
private config?;
|
|
4
|
+
private isRecording;
|
|
5
|
+
private events;
|
|
6
|
+
private gestureHandlers;
|
|
7
|
+
private screenDimensions;
|
|
8
|
+
private lastGestureTime;
|
|
9
|
+
private gestureThrottleMs;
|
|
10
|
+
init(config: RecorderConfig): void;
|
|
11
|
+
start(): void;
|
|
12
|
+
stop(): void;
|
|
13
|
+
pause(): void;
|
|
14
|
+
resume(): void;
|
|
15
|
+
private _getScreenDimensions;
|
|
16
|
+
private _setupInputTracking;
|
|
17
|
+
private _setupGestureHandlers;
|
|
18
|
+
private _setupGlobalGestureListener;
|
|
19
|
+
private _removeGestureHandlers;
|
|
20
|
+
private _recordEvent;
|
|
21
|
+
private _sendEvent;
|
|
22
|
+
private _recordOpenTelemetrySpan;
|
|
23
|
+
recordTap(x: number, y: number, target?: string, pressure?: number): void;
|
|
24
|
+
recordSwipe(direction: string, target?: string, velocity?: number, distance?: number): void;
|
|
25
|
+
recordPinch(scale: number, target?: string, velocity?: number): void;
|
|
26
|
+
recordPan(deltaX: number, deltaY: number, target?: string, velocity?: number): void;
|
|
27
|
+
recordLongPress(duration: number, target?: string, pressure?: number): void;
|
|
28
|
+
recordDoubleTap(x: number, y: number, target?: string): void;
|
|
29
|
+
recordRotate(rotation: number, target?: string, velocity?: number): void;
|
|
30
|
+
recordFling(direction: string, velocity: number, target?: string): void;
|
|
31
|
+
recordMultiTouch(touchCount: number, target?: string): void;
|
|
32
|
+
recordScroll(direction: string, distance: number, velocity: number, target?: string): void;
|
|
33
|
+
recordZoom(scale: number, target?: string, velocity?: number): void;
|
|
34
|
+
recordGestureSequence(gestures: string[], duration: number, target?: string): void;
|
|
35
|
+
recordGestureError(error: Error, gestureType: string, target?: string): void;
|
|
36
|
+
recordGesturePerformance(gestureType: string, duration: number, target?: string): void;
|
|
37
|
+
getEvents(): GestureEvent[];
|
|
38
|
+
clearEvents(): void;
|
|
39
|
+
getEventStats(): Record<string, number>;
|
|
40
|
+
setGestureThrottle(throttleMs: number): void;
|
|
41
|
+
isRecordingEnabled(): boolean;
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.GestureRecorder=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _api=require("@opentelemetry/api");var GestureRecorder=exports.GestureRecorder=function(){function GestureRecorder(){(0,_classCallCheck2["default"])(this,GestureRecorder);this.isRecording=false;this.events=[];this.gestureHandlers=new Map();this.screenDimensions=null;this.lastGestureTime=0;this.gestureThrottleMs=50;}return(0,_createClass2["default"])(GestureRecorder,[{key:"init",value:function init(config){this.config=config;this._getScreenDimensions();}},{key:"start",value:function start(){this.isRecording=true;this.events=[];this._setupGestureHandlers();console.log('Gesture recording started');}},{key:"stop",value:function stop(){this.isRecording=false;this._removeGestureHandlers();console.log('Gesture recording stopped');}},{key:"pause",value:function pause(){this.isRecording=false;}},{key:"resume",value:function resume(){this.isRecording=true;}},{key:"_getScreenDimensions",value:function _getScreenDimensions(){try{var _require=require('react-native'),Dimensions=_require.Dimensions;this.screenDimensions=Dimensions.get('window');}catch(error){console.warn('Failed to get screen dimensions:',error);this.screenDimensions={width:375,height:667};}}},{key:"_setupInputTracking",value:function _setupInputTracking(){try{console.log('Input tracking setup complete');}catch(error){console.warn('Failed to setup input tracking:',error);}}},{key:"_setupGestureHandlers",value:function _setupGestureHandlers(){console.log('Setting up gesture handlers');this._setupGlobalGestureListener();}},{key:"_setupGlobalGestureListener",value:function _setupGlobalGestureListener(){try{var _require2=require('react-native'),TouchableWithoutFeedback=_require2.TouchableWithoutFeedback;console.log('Global gesture listener setup complete');}catch(error){console.warn('Failed to setup global gesture listener:',error);}}},{key:"_removeGestureHandlers",value:function _removeGestureHandlers(){this.gestureHandlers.clear();console.log('Gesture handlers removed');}},{key:"_recordEvent",value:function _recordEvent(event){if(!this.isRecording)return;var now=Date.now();if(now-this.lastGestureTime<this.gestureThrottleMs){return;}this.lastGestureTime=now;this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);}},{key:"_sendEvent",value:function _sendEvent(event){console.log('Gesture event recorded:',event);}},{key:"_recordOpenTelemetrySpan",value:function _recordOpenTelemetrySpan(event){try{var span=_api.trace.getTracer('gesture').startSpan("Gesture.".concat(event.type),{attributes:{'gesture.type':event.type,'gesture.timestamp':event.timestamp,'gesture.platform':'react-native'}});if(event.coordinates){span.setAttribute('gesture.coordinates.x',event.coordinates.x);span.setAttribute('gesture.coordinates.y',event.coordinates.y);if(this.screenDimensions){var relativeX=event.coordinates.x/this.screenDimensions.width;var relativeY=event.coordinates.y/this.screenDimensions.height;span.setAttribute('gesture.coordinates.relative_x',relativeX);span.setAttribute('gesture.coordinates.relative_y',relativeY);}}if(event.target){span.setAttribute('gesture.target',event.target);}if(event.metadata){Object.entries(event.metadata).forEach(function(_ref){var _ref2=(0,_slicedToArray2["default"])(_ref,2),key=_ref2[0],value=_ref2[1];span.setAttribute("gesture.metadata.".concat(key),String(value));});}span.setStatus({code:_api.SpanStatusCode.OK});span.end();}catch(error){console.warn('Failed to record OpenTelemetry span for gesture:',error);}}},{key:"recordTap",value:function recordTap(x,y,target,pressure){var _a,_b;var event={type:'tap',timestamp:Date.now(),coordinates:{x:x,y:y},target:target,metadata:{pressure:pressure||1.0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordSwipe",value:function recordSwipe(direction,target,velocity,distance){var _a,_b;var event={type:'swipe',timestamp:Date.now(),target:target,metadata:{direction:direction,velocity:velocity||0,distance:distance||0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordPinch",value:function recordPinch(scale,target,velocity){var _a,_b;var event={type:'pinch',timestamp:Date.now(),target:target,metadata:{scale:scale,velocity:velocity||0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordPan",value:function recordPan(deltaX,deltaY,target,velocity){var _a,_b;var event={type:'pan',timestamp:Date.now(),target:target,metadata:{deltaX:deltaX,deltaY:deltaY,velocity:velocity||0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordLongPress",value:function recordLongPress(duration,target,pressure){var _a,_b;var event={type:'longPress',timestamp:Date.now(),target:target,metadata:{duration:duration,pressure:pressure||1.0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordDoubleTap",value:function recordDoubleTap(x,y,target){var _a,_b;var event={type:'doubleTap',timestamp:Date.now(),coordinates:{x:x,y:y},target:target,metadata:{screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordRotate",value:function recordRotate(rotation,target,velocity){var _a,_b;var event={type:'rotate',timestamp:Date.now(),target:target,metadata:{rotation:rotation,velocity:velocity||0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordFling",value:function recordFling(direction,velocity,target){var _a,_b;var event={type:'fling',timestamp:Date.now(),target:target,metadata:{direction:direction,velocity:velocity,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordMultiTouch",value:function recordMultiTouch(touchCount,target){var _a,_b;var event={type:'multiTouch',timestamp:Date.now(),target:target,metadata:{touchCount:touchCount,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordScroll",value:function recordScroll(direction,distance,velocity,target){var _a,_b;var event={type:'scroll',timestamp:Date.now(),target:target,metadata:{direction:direction,distance:distance,velocity:velocity,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordZoom",value:function recordZoom(scale,target,velocity){var _a,_b;var event={type:'zoom',timestamp:Date.now(),target:target,metadata:{scale:scale,velocity:velocity||0,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordGestureSequence",value:function recordGestureSequence(gestures,duration,target){var _a,_b;var event={type:'gestureSequence',timestamp:Date.now(),target:target,metadata:{gestures:gestures.join(','),duration:duration,gestureCount:gestures.length,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"recordGestureError",value:function recordGestureError(error,gestureType,target){var _a,_b;var event={type:'gestureError',timestamp:Date.now(),target:target,metadata:{errorType:error.name,errorMessage:error.message,gestureType:gestureType,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);try{var span=_api.trace.getTracer('gesture').startSpan("Gesture.".concat(gestureType,".error"),{attributes:{'gesture.type':gestureType,'gesture.error':true,'gesture.error.type':error.name,'gesture.error.message':error.message,'gesture.timestamp':Date.now()}});span.setStatus({code:_api.SpanStatusCode.ERROR,message:error.message});span.recordException(error);span.end();}catch(spanError){console.warn('Failed to record error span:',spanError);}}},{key:"recordGesturePerformance",value:function recordGesturePerformance(gestureType,duration,target){var _a,_b;var event={type:'gesturePerformance',timestamp:Date.now(),target:target,metadata:{gestureType:gestureType,duration:duration,performance:'monitoring',screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this._recordEvent(event);}},{key:"getEvents",value:function getEvents(){return(0,_toConsumableArray2["default"])(this.events);}},{key:"clearEvents",value:function clearEvents(){this.events=[];}},{key:"getEventStats",value:function getEventStats(){var stats={};this.events.forEach(function(event){stats[event.type]=(stats[event.type]||0)+1;});return stats;}},{key:"setGestureThrottle",value:function setGestureThrottle(throttleMs){this.gestureThrottleMs=throttleMs;}},{key:"isRecordingEnabled",value:function isRecordingEnabled(){return this.isRecording;}}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gestureRecorder.js","sourceRoot":"","sources":["../../src/recorder/gestureRecorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
2
|
+
import { RecorderConfig } from '../types';
|
|
3
|
+
export declare class RecorderReactNativeSDK {
|
|
4
|
+
private config?;
|
|
5
|
+
private gestureRecorder;
|
|
6
|
+
private navigationTracker;
|
|
7
|
+
private screenRecorder;
|
|
8
|
+
private isRecording;
|
|
9
|
+
constructor();
|
|
10
|
+
init(config: RecorderConfig): void;
|
|
11
|
+
start(sessionId: string | null, sessionType: SessionType): void;
|
|
12
|
+
stop(): void;
|
|
13
|
+
pause(): void;
|
|
14
|
+
resume(): void;
|
|
15
|
+
setNavigationRef(ref: any): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.RecorderReactNativeSDK=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _gestureRecorder=require("./gestureRecorder");var _navigationTracker=require("./navigationTracker");var _screenRecorder=require("./screenRecorder");var RecorderReactNativeSDK=exports.RecorderReactNativeSDK=function(){function RecorderReactNativeSDK(){(0,_classCallCheck2["default"])(this,RecorderReactNativeSDK);this.isRecording=false;this.gestureRecorder=new _gestureRecorder.GestureRecorder();this.navigationTracker=new _navigationTracker.NavigationTracker();this.screenRecorder=new _screenRecorder.ScreenRecorder();}return(0,_createClass2["default"])(RecorderReactNativeSDK,[{key:"init",value:function init(config){this.config=config;this.gestureRecorder.init(config);this.navigationTracker.init(config);this.screenRecorder.init(config);}},{key:"start",value:function start(sessionId,sessionType){if(!this.config){throw new Error('Configuration not initialized. Call init() before start().');}this.isRecording=true;if(this.config.recordGestures){this.gestureRecorder.start();}if(this.config.recordNavigation){this.navigationTracker.start();}if(this.config.recordScreen){this.screenRecorder.start();}}},{key:"stop",value:function stop(){this.isRecording=false;this.gestureRecorder.stop();this.navigationTracker.stop();this.screenRecorder.stop();}},{key:"pause",value:function pause(){this.gestureRecorder.pause();this.navigationTracker.pause();this.screenRecorder.pause();}},{key:"resume",value:function resume(){if(this.isRecording){this.gestureRecorder.resume();this.navigationTracker.resume();this.screenRecorder.resume();}}},{key:"setNavigationRef",value:function setNavigationRef(ref){this.navigationTracker.setNavigationRef(ref);}}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/recorder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,MAAM,OAAO,sBAAsB;IAOjC;QAFQ,gBAAW,GAAG,KAAK,CAAA;QAGzB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAA;QAChD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAA;IAC5C,CAAC;IAED,IAAI,CAAC,MAAsB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,CAAC,SAAwB,EAAE,WAAwB;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC/E,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QAEvB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;IAC5B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;QAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;YAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAA;YAC/B,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAC9B,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,GAAQ;QACvB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;IAC9C,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { NavigationEvent, RecorderConfig } from '../types';
|
|
2
|
+
export declare class NavigationTracker {
|
|
3
|
+
private config?;
|
|
4
|
+
private isRecording;
|
|
5
|
+
private navigationRef;
|
|
6
|
+
private events;
|
|
7
|
+
private navigationListeners;
|
|
8
|
+
private currentRoute;
|
|
9
|
+
private navigationStack;
|
|
10
|
+
private navigationStartTime;
|
|
11
|
+
init(config: RecorderConfig): void;
|
|
12
|
+
setNavigationRef(ref: any): void;
|
|
13
|
+
start(): void;
|
|
14
|
+
stop(): void;
|
|
15
|
+
pause(): void;
|
|
16
|
+
resume(): void;
|
|
17
|
+
private _setupNavigationListener;
|
|
18
|
+
private _removeNavigationListener;
|
|
19
|
+
private _recordNavigationEvent;
|
|
20
|
+
private _updateNavigationStack;
|
|
21
|
+
private _sendEvent;
|
|
22
|
+
private _recordOpenTelemetrySpan;
|
|
23
|
+
recordNavigate(routeName: string, params?: Record<string, any>): void;
|
|
24
|
+
recordGoBack(): void;
|
|
25
|
+
recordReset(routes: any[]): void;
|
|
26
|
+
private _recordEvent;
|
|
27
|
+
recordDeepLink(url: string, params?: Record<string, any>): void;
|
|
28
|
+
recordTabChange(tabName: string, tabIndex: number): void;
|
|
29
|
+
recordModalOpen(modalName: string, params?: Record<string, any>): void;
|
|
30
|
+
recordModalClose(modalName: string): void;
|
|
31
|
+
recordStackPush(routeName: string, params?: Record<string, any>): void;
|
|
32
|
+
recordStackPop(routeName?: string): void;
|
|
33
|
+
recordNavigationPerformance(routeName: string, loadTime: number): void;
|
|
34
|
+
recordNavigationError(error: Error, routeName?: string): void;
|
|
35
|
+
getCurrentRoute(): string | null;
|
|
36
|
+
getNavigationStack(): string[];
|
|
37
|
+
getNavigationDepth(): number;
|
|
38
|
+
getEvents(): NavigationEvent[];
|
|
39
|
+
clearEvents(): void;
|
|
40
|
+
getNavigationStats(): Record<string, number>;
|
|
41
|
+
isRecordingEnabled(): boolean;
|
|
42
|
+
getNavigationDuration(): number;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.NavigationTracker=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _api=require("@opentelemetry/api");function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}var NavigationTracker=exports.NavigationTracker=function(){function NavigationTracker(){(0,_classCallCheck2["default"])(this,NavigationTracker);this.isRecording=false;this.navigationRef=null;this.events=[];this.navigationListeners=new Map();this.currentRoute=null;this.navigationStack=[];this.navigationStartTime=0;}return(0,_createClass2["default"])(NavigationTracker,[{key:"init",value:function init(config){this.config=config;}},{key:"setNavigationRef",value:function setNavigationRef(ref){this.navigationRef=ref;if(this.isRecording){this._setupNavigationListener();}}},{key:"start",value:function start(){this.isRecording=true;this.events=[];this.navigationStack=[];this.navigationStartTime=Date.now();this._setupNavigationListener();console.log('Navigation tracking started');}},{key:"stop",value:function stop(){this.isRecording=false;this._removeNavigationListener();console.log('Navigation tracking stopped');}},{key:"pause",value:function pause(){this.isRecording=false;}},{key:"resume",value:function resume(){this.isRecording=true;this._setupNavigationListener();}},{key:"_setupNavigationListener",value:function _setupNavigationListener(){var _this=this;if(!this.navigationRef){console.warn('Navigation ref not set');return;}try{var stateListener=this.navigationRef.addListener('state',function(e){_this._recordNavigationEvent('state_change',e.data);});var focusListener=this.navigationRef.addListener('focus',function(e){_this._recordNavigationEvent('focus',e.data);});var blurListener=this.navigationRef.addListener('blur',function(e){_this._recordNavigationEvent('blur',e.data);});var beforeRemoveListener=this.navigationRef.addListener('beforeRemove',function(e){_this._recordNavigationEvent('beforeRemove',e.data);});this.navigationListeners.set('state',stateListener);this.navigationListeners.set('focus',focusListener);this.navigationListeners.set('blur',blurListener);this.navigationListeners.set('beforeRemove',beforeRemoveListener);console.log('Navigation listeners setup complete');}catch(error){console.warn('Failed to setup navigation listeners:',error);}}},{key:"_removeNavigationListener",value:function _removeNavigationListener(){try{this.navigationListeners.forEach(function(listener,key){if(listener&&typeof listener.remove==='function'){listener.remove();}});this.navigationListeners.clear();console.log('Navigation listeners removed');}catch(error){console.warn('Failed to remove navigation listeners:',error);}}},{key:"_recordNavigationEvent",value:function _recordNavigationEvent(eventType,data){if(!this.isRecording)return;var event={type:'navigate',timestamp:Date.now(),metadata:{eventType:eventType,navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length}};if(data){if(data.routeName){event.routeName=data.routeName;this._updateNavigationStack(data.routeName,eventType);}if(data.params){event.params=data.params;}if(data.key){event.metadata.routeKey=data.key;}}this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);}},{key:"_updateNavigationStack",value:function _updateNavigationStack(routeName,eventType){if(eventType==='focus'||eventType==='state_change'){if(this.currentRoute!==routeName){this.currentRoute=routeName;this.navigationStack.push(routeName);}}else if(eventType==='blur'||eventType==='beforeRemove'){var index=this.navigationStack.indexOf(routeName);if(index>-1){this.navigationStack.splice(index,1);}}}},{key:"_sendEvent",value:function _sendEvent(event){console.log('Navigation event recorded:',event);}},{key:"_recordOpenTelemetrySpan",value:function _recordOpenTelemetrySpan(event){try{var span=_api.trace.getTracer('navigation').startSpan("Navigation.".concat(event.type),{attributes:{'navigation.system':'ReactNavigation','navigation.operation':event.type,'navigation.type':event.type,'navigation.timestamp':event.timestamp,'navigation.platform':'react-native'}});if(event.routeName){span.setAttribute('navigation.route_name',event.routeName);}if(event.params){span.setAttribute('navigation.params',JSON.stringify(event.params));}if(event.metadata){Object.entries(event.metadata).forEach(function(_ref){var _ref2=(0,_slicedToArray2["default"])(_ref,2),key=_ref2[0],value=_ref2[1];span.setAttribute("navigation.metadata.".concat(key),String(value));});}span.setStatus({code:_api.SpanStatusCode.OK});span.end();}catch(error){console.warn('Failed to record OpenTelemetry span for navigation:',error);}}},{key:"recordNavigate",value:function recordNavigate(routeName,params){var event={type:'navigate',timestamp:Date.now(),routeName:routeName,params:params,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,manual:true}};this._updateNavigationStack(routeName,'focus');this._recordEvent(event);}},{key:"recordGoBack",value:function recordGoBack(){var event={type:'goBack',timestamp:Date.now(),metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,manual:true}};this._recordEvent(event);}},{key:"recordReset",value:function recordReset(routes){var event={type:'reset',timestamp:Date.now(),metadata:{navigationDuration:Date.now()-this.navigationStartTime,routesCount:routes.length,manual:true}};this.navigationStack=routes.map(function(route){return route.name||route.routeName;});if(routes.length>0){this.currentRoute=routes[0].name||routes[0].routeName;}this._recordEvent(event);this._recordEvent(event);}},{key:"_recordEvent",value:function _recordEvent(event){if(!this.isRecording)return;this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);}},{key:"recordDeepLink",value:function recordDeepLink(url,params){var event={type:'navigate',timestamp:Date.now(),routeName:'deepLink',params:_objectSpread({url:url},params),metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,deepLink:true}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordTabChange",value:function recordTabChange(tabName,tabIndex){var event={type:'navigate',timestamp:Date.now(),routeName:tabName,params:{tabIndex:tabIndex},metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,tabChange:true,tabIndex:tabIndex}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordModalOpen",value:function recordModalOpen(modalName,params){var event={type:'navigate',timestamp:Date.now(),routeName:modalName,params:params,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,modal:true}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordModalClose",value:function recordModalClose(modalName){var event={type:'goBack',timestamp:Date.now(),routeName:modalName,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,modal:true,modalClose:true}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordStackPush",value:function recordStackPush(routeName,params){var event={type:'navigate',timestamp:Date.now(),routeName:routeName,params:params,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,stackOperation:'push'}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordStackPop",value:function recordStackPop(routeName){var event={type:'goBack',timestamp:Date.now(),routeName:routeName,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,stackOperation:'pop'}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordNavigationPerformance",value:function recordNavigationPerformance(routeName,loadTime){var event={type:'navigate',timestamp:Date.now(),routeName:routeName,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,performance:'monitoring',loadTime:loadTime}};this._recordEvent(event);this._recordEvent(event);}},{key:"recordNavigationError",value:function recordNavigationError(error,routeName){var event={type:'navigate',timestamp:Date.now(),routeName:routeName,metadata:{navigationDuration:Date.now()-this.navigationStartTime,stackDepth:this.navigationStack.length,error:true,errorType:error.name,errorMessage:error.message}};this._recordEvent(event);this._recordEvent(event);try{var span=_api.trace.getTracer('navigation').startSpan('Navigation.error',{attributes:{'navigation.system':'ReactNavigation','navigation.error':true,'navigation.error.type':error.name,'navigation.error.message':error.message,'navigation.route_name':routeName||'unknown','navigation.timestamp':Date.now()}});span.setStatus({code:_api.SpanStatusCode.ERROR,message:error.message});span.recordException(error);span.end();}catch(spanError){console.warn('Failed to record error span:',spanError);}}},{key:"getCurrentRoute",value:function getCurrentRoute(){return this.currentRoute;}},{key:"getNavigationStack",value:function getNavigationStack(){return(0,_toConsumableArray2["default"])(this.navigationStack);}},{key:"getNavigationDepth",value:function getNavigationDepth(){return this.navigationStack.length;}},{key:"getEvents",value:function getEvents(){return(0,_toConsumableArray2["default"])(this.events);}},{key:"clearEvents",value:function clearEvents(){this.events=[];}},{key:"getNavigationStats",value:function getNavigationStats(){var stats={};this.events.forEach(function(event){stats[event.type]=(stats[event.type]||0)+1;});return stats;}},{key:"isRecordingEnabled",value:function isRecordingEnabled(){return this.isRecording;}},{key:"getNavigationDuration",value:function getNavigationDuration(){return Date.now()-this.navigationStartTime;}}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationTracker.js","sourceRoot":"","sources":["../../src/recorder/navigationTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ScreenEvent, RecorderConfig } from '../types';
|
|
2
|
+
export declare class ScreenRecorder {
|
|
3
|
+
private config?;
|
|
4
|
+
private isRecording;
|
|
5
|
+
private events;
|
|
6
|
+
private captureInterval?;
|
|
7
|
+
private captureCount;
|
|
8
|
+
private maxCaptures;
|
|
9
|
+
private captureQuality;
|
|
10
|
+
private captureFormat;
|
|
11
|
+
private screenDimensions;
|
|
12
|
+
init(config: RecorderConfig): void;
|
|
13
|
+
start(): void;
|
|
14
|
+
stop(): void;
|
|
15
|
+
pause(): void;
|
|
16
|
+
resume(): void;
|
|
17
|
+
private _getScreenDimensions;
|
|
18
|
+
private _startPeriodicCapture;
|
|
19
|
+
private _stopPeriodicCapture;
|
|
20
|
+
private _captureScreen;
|
|
21
|
+
private _performScreenCapture;
|
|
22
|
+
private _captureWithViewShot;
|
|
23
|
+
private _captureWithScreenshot;
|
|
24
|
+
private _getRootViewRef;
|
|
25
|
+
private _createPlaceholderImage;
|
|
26
|
+
private _sendEvent;
|
|
27
|
+
private _recordOpenTelemetrySpan;
|
|
28
|
+
private _recordScreenCaptureError;
|
|
29
|
+
captureScreenNow(): Promise<string | null>;
|
|
30
|
+
captureSpecificElement(elementRef: any, options?: {
|
|
31
|
+
format?: 'png' | 'jpg' | 'webp';
|
|
32
|
+
quality?: number;
|
|
33
|
+
}): Promise<string | null>;
|
|
34
|
+
setCaptureInterval(intervalMs: number): void;
|
|
35
|
+
setCaptureQuality(quality: number): void;
|
|
36
|
+
setCaptureFormat(format: 'png' | 'jpg' | 'webp'): void;
|
|
37
|
+
setMaxCaptures(max: number): void;
|
|
38
|
+
recordScreenPerformance(screenName: string, loadTime: number): void;
|
|
39
|
+
recordScreenError(error: Error, screenName?: string): void;
|
|
40
|
+
getEvents(): ScreenEvent[];
|
|
41
|
+
clearEvents(): void;
|
|
42
|
+
getScreenStats(): Record<string, any>;
|
|
43
|
+
isRecordingEnabled(): boolean;
|
|
44
|
+
getConfiguration(): Record<string, any>;
|
|
45
|
+
shutdown(): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ScreenRecorder=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _api=require("@opentelemetry/api");var ScreenRecorder=exports.ScreenRecorder=function(){function ScreenRecorder(){(0,_classCallCheck2["default"])(this,ScreenRecorder);this.isRecording=false;this.events=[];this.captureCount=0;this.maxCaptures=100;this.captureQuality=0.8;this.captureFormat='png';this.screenDimensions=null;}return(0,_createClass2["default"])(ScreenRecorder,[{key:"init",value:function init(config){this.config=config;this._getScreenDimensions();}},{key:"start",value:function start(){this.isRecording=true;this.events=[];this.captureCount=0;this._startPeriodicCapture();console.log('Screen recording started');}},{key:"stop",value:function stop(){this.isRecording=false;this._stopPeriodicCapture();console.log('Screen recording stopped');}},{key:"pause",value:function pause(){this.isRecording=false;this._stopPeriodicCapture();}},{key:"resume",value:function resume(){this.isRecording=true;this._startPeriodicCapture();}},{key:"_getScreenDimensions",value:function _getScreenDimensions(){try{var _require=require('react-native'),Dimensions=_require.Dimensions;this.screenDimensions=Dimensions.get('window');}catch(error){console.warn('Failed to get screen dimensions:',error);this.screenDimensions={width:375,height:667};}}},{key:"_startPeriodicCapture",value:function _startPeriodicCapture(){var _this=this;if(this.captureInterval){clearInterval(this.captureInterval);}this.captureInterval=setInterval(function(){_this._captureScreen();},5000);}},{key:"_stopPeriodicCapture",value:function _stopPeriodicCapture(){if(this.captureInterval){clearInterval(this.captureInterval);this.captureInterval=undefined;}}},{key:"_captureScreen",value:function(){var _captureScreen2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var _a,_b,startTime,screenData,captureTime,screenEvent,_t;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:if(!(!this.isRecording||this.captureCount>=this.maxCaptures)){_context.next=1;break;}return _context.abrupt("return");case 1:_context.prev=1;startTime=Date.now();_context.next=2;return this._performScreenCapture();case 2:screenData=_context.sent;captureTime=Date.now()-startTime;if(screenData){screenEvent={type:'screenCapture',timestamp:Date.now(),dataUrl:screenData,metadata:{captureTime:captureTime,captureCount:this.captureCount+1,quality:this.captureQuality,format:this.captureFormat,screenWidth:(_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width,screenHeight:(_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height}};this.events.push(screenEvent);this.captureCount++;this._sendEvent(screenEvent);this._recordOpenTelemetrySpan(screenEvent);}_context.next=4;break;case 3:_context.prev=3;_t=_context["catch"](1);console.error('Failed to capture screen:',_t);this._recordScreenCaptureError(_t instanceof Error?_t:new Error(String(_t)));case 4:case"end":return _context.stop();}},_callee,this,[[1,3]]);}));function _captureScreen(){return _captureScreen2.apply(this,arguments);}return _captureScreen;}()},{key:"_performScreenCapture",value:function(){var _performScreenCapture2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){var ViewShot,_t2;return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;ViewShot=require('react-native-view-shot');if(!(ViewShot&&ViewShot.captureRef)){_context2.next=2;break;}_context2.next=1;return this._captureWithViewShot();case 1:return _context2.abrupt("return",_context2.sent);case 2:_context2.next=4;break;case 3:_context2.prev=3;_t2=_context2["catch"](0);console.warn('react-native-view-shot not available:',_t2);case 4:try{}catch(error){console.warn('react-native-screenshot not available:',error);}return _context2.abrupt("return",this._createPlaceholderImage());case 5:case"end":return _context2.stop();}},_callee2,this,[[0,3]]);}));function _performScreenCapture(){return _performScreenCapture2.apply(this,arguments);}return _performScreenCapture;}()},{key:"_captureWithViewShot",value:function(){var _captureWithViewShot2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(){var ViewShot,_require2,findNodeHandle,rootViewRef,options,_t3;return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;ViewShot=require('react-native-view-shot');_require2=require('react-native'),findNodeHandle=_require2.findNodeHandle;rootViewRef=this._getRootViewRef();if(!rootViewRef){_context3.next=2;break;}options={format:this.captureFormat,quality:this.captureQuality,result:'data-uri'};_context3.next=1;return ViewShot.captureRef(rootViewRef,options);case 1:return _context3.abrupt("return",_context3.sent);case 2:_context3.next=4;break;case 3:_context3.prev=3;_t3=_context3["catch"](0);console.warn('Failed to capture with ViewShot:',_t3);case 4:return _context3.abrupt("return",null);case 5:case"end":return _context3.stop();}},_callee3,this,[[0,3]]);}));function _captureWithViewShot(){return _captureWithViewShot2.apply(this,arguments);}return _captureWithViewShot;}()},{key:"_captureWithScreenshot",value:function(){var _captureWithScreenshot2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){var options;return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:try{options={format:this.captureFormat,quality:this.captureQuality};}catch(error){console.warn('Failed to capture with Screenshot:',error);}return _context4.abrupt("return",null);case 1:case"end":return _context4.stop();}},_callee4,this);}));function _captureWithScreenshot(){return _captureWithScreenshot2.apply(this,arguments);}return _captureWithScreenshot;}()},{key:"_getRootViewRef",value:function _getRootViewRef(){try{var _require3=require('react-native'),AppRegistry=_require3.AppRegistry;var appName=AppRegistry.getAppKeys()[0];return appName?{current:null}:null;}catch(error){console.warn('Failed to get root view ref:',error);return null;}}},{key:"_createPlaceholderImage",value:function _createPlaceholderImage(){var _a,_b;var width=((_a=this.screenDimensions)===null||_a===void 0?void 0:_a.width)||375;var height=((_b=this.screenDimensions)===null||_b===void 0?void 0:_b.height)||667;var svgContent="\n <svg width=\"".concat(width,"\" height=\"").concat(height,"\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"100%\" height=\"100%\" fill=\"#f0f0f0\"/>\n <text x=\"50%\" y=\"50%\" text-anchor=\"middle\" dy=\".3em\" fill=\"#666\" font-family=\"Arial\" font-size=\"16\">\n Screen Capture Placeholder\n </text>\n <text x=\"50%\" y=\"60%\" text-anchor=\"middle\" dy=\".3em\" fill=\"#666\" font-family=\"Arial\" font-size=\"14\">\n Captured at ").concat(new Date().toLocaleTimeString(),"\n </text>\n </svg>\n ");var base64Content=Buffer.from(svgContent,'utf8').toString('base64');return"data:image/svg+xml;base64,".concat(base64Content);}},{key:"_sendEvent",value:function _sendEvent(event){var _a,_b;console.log('Screen event recorded:',{type:event.type,timestamp:event.timestamp,captureCount:(_a=event.metadata)===null||_a===void 0?void 0:_a.captureCount,captureTime:(_b=event.metadata)===null||_b===void 0?void 0:_b.captureTime});}},{key:"_recordOpenTelemetrySpan",value:function _recordOpenTelemetrySpan(event){try{var span=_api.trace.getTracer('screen').startSpan("Screen.".concat(event.type),{attributes:{'screen.type':event.type,'screen.timestamp':event.timestamp,'screen.platform':'react-native'}});if(event.metadata){Object.entries(event.metadata).forEach(function(_ref){var _ref2=(0,_slicedToArray2["default"])(_ref,2),key=_ref2[0],value=_ref2[1];span.setAttribute("screen.metadata.".concat(key),String(value));});}span.setStatus({code:_api.SpanStatusCode.OK});span.end();}catch(error){console.warn('Failed to record OpenTelemetry span for screen:',error);}}},{key:"_recordScreenCaptureError",value:function _recordScreenCaptureError(error){try{var span=_api.trace.getTracer('screen').startSpan('Screen.capture.error',{attributes:{'screen.error':true,'screen.error.type':error.name,'screen.error.message':error.message,'screen.timestamp':Date.now()}});span.setStatus({code:_api.SpanStatusCode.ERROR,message:error.message});span.recordException(error);span.end();}catch(spanError){console.warn('Failed to record error span:',spanError);}}},{key:"captureScreenNow",value:function(){var _captureScreenNow=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){return _regenerator["default"].wrap(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:if(this.isRecording){_context5.next=1;break;}console.warn('Screen recording not active');return _context5.abrupt("return",null);case 1:_context5.next=2;return this._performScreenCapture();case 2:return _context5.abrupt("return",_context5.sent);case 3:case"end":return _context5.stop();}},_callee5,this);}));function captureScreenNow(){return _captureScreenNow.apply(this,arguments);}return captureScreenNow;}()},{key:"captureSpecificElement",value:function(){var _captureSpecificElement=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(elementRef,options){var ViewShot,captureOptions,_t4;return _regenerator["default"].wrap(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:_context6.prev=0;ViewShot=require('react-native-view-shot');captureOptions={format:(options===null||options===void 0?void 0:options.format)||this.captureFormat,quality:(options===null||options===void 0?void 0:options.quality)||this.captureQuality,result:'data-uri'};_context6.next=1;return ViewShot.captureRef(elementRef,captureOptions);case 1:return _context6.abrupt("return",_context6.sent);case 2:_context6.prev=2;_t4=_context6["catch"](0);console.error('Failed to capture specific element:',_t4);return _context6.abrupt("return",null);case 3:case"end":return _context6.stop();}},_callee6,this,[[0,2]]);}));function captureSpecificElement(_x,_x2){return _captureSpecificElement.apply(this,arguments);}return captureSpecificElement;}()},{key:"setCaptureInterval",value:function setCaptureInterval(intervalMs){var _this2=this;if(this.captureInterval){clearInterval(this.captureInterval);}if(this.isRecording){this.captureInterval=setInterval(function(){_this2._captureScreen();},intervalMs);}}},{key:"setCaptureQuality",value:function setCaptureQuality(quality){this.captureQuality=Math.max(0.1,Math.min(1.0,quality));}},{key:"setCaptureFormat",value:function setCaptureFormat(format){this.captureFormat=format;}},{key:"setMaxCaptures",value:function setMaxCaptures(max){this.maxCaptures=Math.max(1,max);}},{key:"recordScreenPerformance",value:function recordScreenPerformance(screenName,loadTime){var event={type:'screenCapture',timestamp:Date.now(),metadata:{screenName:screenName,loadTime:loadTime,performance:'monitoring',captureCount:this.captureCount}};this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);}},{key:"recordScreenError",value:function recordScreenError(error,screenName){var event={type:'screenCapture',timestamp:Date.now(),metadata:{error:true,errorType:error.name,errorMessage:error.message,screenName:screenName,captureCount:this.captureCount}};this.events.push(event);this._sendEvent(event);this._recordOpenTelemetrySpan(event);this.events.push(event);this._sendEvent(event);this._recordScreenCaptureError(error);}},{key:"getEvents",value:function getEvents(){return(0,_toConsumableArray2["default"])(this.events);}},{key:"clearEvents",value:function clearEvents(){this.events=[];this.captureCount=0;}},{key:"getScreenStats",value:function getScreenStats(){var stats={totalCaptures:this.captureCount,totalEvents:this.events.length,averageCaptureTime:0,successRate:0};if(this.events.length>0){var captureTimes=this.events.map(function(event){var _a;return((_a=event.metadata)===null||_a===void 0?void 0:_a.captureTime)||0;}).filter(function(time){return time>0;});if(captureTimes.length>0){stats.averageCaptureTime=captureTimes.reduce(function(a,b){return a+b;},0)/captureTimes.length;}var successfulCaptures=this.events.filter(function(event){return event.dataUrl;}).length;stats.successRate=successfulCaptures/this.events.length*100;}return stats;}},{key:"isRecordingEnabled",value:function isRecordingEnabled(){return this.isRecording;}},{key:"getConfiguration",value:function getConfiguration(){return{captureInterval:this.captureInterval?5000:0,captureQuality:this.captureQuality,captureFormat:this.captureFormat,maxCaptures:this.maxCaptures,screenDimensions:this.screenDimensions};}},{key:"shutdown",value:function shutdown(){this.stop();this.clearEvents();console.log('Screen recorder shutdown');}}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenRecorder.js","sourceRoot":"","sources":["../../src/recorder/screenRecorder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE1D,MAAM,OAAO,cAAc;IAA3B;QAEU,gBAAW,GAAG,KAAK,CAAA;QACnB,WAAM,GAAkB,EAAE,CAAA;QAE1B,iBAAY,GAAW,CAAC,CAAA;QACxB,gBAAW,GAAW,GAAG,CAAA,CAAC,0CAA0C;QACpE,mBAAc,GAAW,GAAG,CAAA;QAC5B,kBAAa,GAA2B,KAAK,CAAA;QAC7C,qBAAgB,GAA6C,IAAI,CAAA;IA8Y3E,CAAC;IA5YC,IAAI,CAAC,MAAsB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAC5B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;IAED,IAAI;QACF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAC9C,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAClD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;YACvD,IAAI,CAAC,gBAAgB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA,CAAC,mBAAmB;QACzE,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACrC,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC,EAAE,IAAI,CAAC,CAAA;IACV,CAAC;IAEO,oBAAoB;QAC1B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW;YAAE,OAAM;QAEtE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YAE1C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,WAAW,GAAgB;oBAC/B,IAAI,EAAE,eAAe;oBACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;oBACrB,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE;wBACR,WAAW;wBACX,YAAY,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC;wBACnC,OAAO,EAAE,IAAI,CAAC,cAAc;wBAC5B,MAAM,EAAE,IAAI,CAAC,aAAa;wBAC1B,WAAW,EAAE,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK;wBACzC,YAAY,EAAE,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM;qBAC5C;iBACF,CAAA;gBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC7B,IAAI,CAAC,YAAY,EAAE,CAAA;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;gBAC5B,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;YACjD,IAAI,CAAC,yBAAyB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC3F,CAAC;IACH,CAAC;IAIO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAClD,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACpC,OAAO,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAA;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,CAAC;YACH,8BAA8B;YAC9B,wDAAwD;YACxD,iDAAiD;YACjD,+CAA+C;YAC/C,IAAI;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAA;QAC/D,CAAC;QAED,0BAA0B;QAC1B,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAA;IACvC,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAElD,8BAA8B;YAC9B,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YAE1C,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,IAAI,CAAC,aAAa;oBAC1B,OAAO,EAAE,IAAI,CAAC,cAAc;oBAC5B,MAAM,EAAE,UAAU;iBACnB,CAAA;gBAED,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,CAAC;YACH,wDAAwD;YAExD,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,OAAO,EAAE,IAAI,CAAC,cAAc;aAC7B,CAAA;YAED,kDAAkD;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,uBAAuB;;QAC7B,6CAA6C;QAC7C,6EAA6E;QAC7E,MAAM,KAAK,GAAG,CAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,KAAK,KAAI,GAAG,CAAA;QACjD,MAAM,MAAM,GAAG,CAAA,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,KAAI,GAAG,CAAA;QAEnD,2CAA2C;QAC3C,MAAM,UAAU,GAAG;oBACH,KAAK,aAAa,MAAM;;;;;;wBAMpB,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;;;KAGlD,CAAA;QAED,4DAA4D;QAC5D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACxE,OAAO,6BAA6B,aAAa,EAAE,CAAA;IACrD,CAAC;IAEO,UAAU,CAAC,KAAkB;;QACnC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE;YACpC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,YAAY;YAC1C,WAAW,EAAE,MAAA,KAAK,CAAC,QAAQ,0CAAE,WAAW;SACzC,CAAC,CAAA;IACJ,CAAC;IAEO,wBAAwB,CAAC,KAAkB;QACjD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE;gBACvE,UAAU,EAAE;oBACV,aAAa,EAAE,KAAK,CAAC,IAAI;oBACzB,kBAAkB,EAAE,KAAK,CAAC,SAAS;oBACnC,iBAAiB,EAAE,cAAc;iBAClC;aACF,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBACtD,IAAI,CAAC,YAAY,CAAC,mBAAmB,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC5D,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAA;YAC3C,IAAI,CAAC,GAAG,EAAE,CAAA;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,KAAY;QAC5C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,sBAAsB,EAAE;gBACvE,UAAU,EAAE;oBACV,cAAc,EAAE,IAAI;oBACpB,mBAAmB,EAAE,KAAK,CAAC,IAAI;oBAC/B,sBAAsB,EAAE,KAAK,CAAC,OAAO;oBACrC,kBAAkB,EAAE,IAAI,CAAC,GAAG,EAAE;iBAC/B;aACF,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACtE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,CAAC,GAAG,EAAE,CAAA;QACZ,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,UAAe,EAAE,OAG7C;QACC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;YAElD,MAAM,cAAc,GAAG;gBACrB,MAAM,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,IAAI,CAAC,aAAa;gBAC7C,OAAO,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,IAAI,CAAC,cAAc;gBAChD,MAAM,EAAE,UAAU;aACnB,CAAA;YAED,OAAO,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;QAC9D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;YAC3D,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,kBAAkB,CAAC,UAAkB;QACnC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACrC,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,cAAc,EAAE,CAAA;YACvB,CAAC,EAAE,UAAU,CAAC,CAAA;QAChB,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,gBAAgB,CAAC,MAA8B;QAC7C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAA;IAC7B,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,yBAAyB;IACzB,uBAAuB,CAAC,UAAkB,EAAE,QAAgB;QAC1D,MAAM,KAAK,GAAgB;YACzB,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE;gBACR,UAAU;gBACV,QAAQ;gBACR,WAAW,EAAE,YAAY;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;SACF,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;QACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,iBAAiB;IACjB,iBAAiB,CAAC,KAAY,EAAE,UAAmB;QACjD,MAAM,KAAK,GAAgB;YACzB,IAAI,EAAE,eAAe;YACrB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,KAAK,CAAC,OAAO;gBAC3B,UAAU;gBACV,YAAY,EAAE,IAAI,CAAC,YAAY;aAChC;SACF,CAAA;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAA;QACrF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,sBAAsB;IACtB,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;IAED,eAAe;IACf,WAAW;QACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,gCAAgC;IAChC,cAAc;QACZ,MAAM,KAAK,GAAG;YACZ,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,kBAAkB,EAAE,CAAC;YACrB,WAAW,EAAE,CAAC;SACf,CAAA;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;iBAC7B,GAAG,CAAC,KAAK,CAAC,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,WAAW,KAAI,CAAC,CAAA,EAAA,CAAC;iBAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAE3B,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,CAAA;YAC1F,CAAC;YAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;YAC5E,KAAK,CAAC,WAAW,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAA;QACrE,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;IAED,uBAAuB;IACvB,kBAAkB;QAChB,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,4BAA4B;IAC5B,gBAAgB;QACd,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB;YACtE,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAA;IACH,CAAC;IAED,WAAW;IACX,QAAQ;QACN,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ISession, SessionRecorderOptions } from '../types';
|
|
2
|
+
export interface StartSessionRequest {
|
|
3
|
+
application: string;
|
|
4
|
+
version: string;
|
|
5
|
+
environment: string;
|
|
6
|
+
metadata?: Record<string, any>;
|
|
7
|
+
}
|
|
8
|
+
export interface StopSessionRequest {
|
|
9
|
+
sessionId: string;
|
|
10
|
+
comment?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ApiService {
|
|
13
|
+
private config?;
|
|
14
|
+
private baseUrl;
|
|
15
|
+
init(config: SessionRecorderOptions): void;
|
|
16
|
+
private makeRequest;
|
|
17
|
+
startSession(request: StartSessionRequest): Promise<ISession>;
|
|
18
|
+
stopSession(request: StopSessionRequest): Promise<void>;
|
|
19
|
+
saveSession(sessionId: string): Promise<ISession>;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ApiService=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}var ApiService=exports.ApiService=function(){function ApiService(){(0,_classCallCheck2["default"])(this,ApiService);this.baseUrl='https://api.multiplayer.app';}return(0,_createClass2["default"])(ApiService,[{key:"init",value:function init(config){this.config=config;if(config.apiBaseUrl){this.baseUrl=config.apiBaseUrl;}}},{key:"makeRequest",value:function(){var _makeRequest=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(endpoint){var options,_a,url,response,_args=arguments;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:options=_args.length>1&&_args[1]!==undefined?_args[1]:{};if((_a=this.config)===null||_a===void 0?void 0:_a.apiKey){_context.next=1;break;}throw new Error('API key not configured');case 1:url="".concat(this.baseUrl).concat(endpoint);_context.next=2;return fetch(url,_objectSpread(_objectSpread({},options),{},{headers:_objectSpread({'Content-Type':'application/json','Authorization':"Bearer ".concat(this.config.apiKey)},options.headers)}));case 2:response=_context.sent;if(response.ok){_context.next=3;break;}throw new Error("API request failed: ".concat(response.statusText));case 3:return _context.abrupt("return",response.json());case 4:case"end":return _context.stop();}},_callee,this);}));function makeRequest(_x){return _makeRequest.apply(this,arguments);}return makeRequest;}()},{key:"startSession",value:function(){var _startSession=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(request){return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:return _context2.abrupt("return",this.makeRequest('/sessions',{method:'POST',body:JSON.stringify(request)}));case 1:case"end":return _context2.stop();}},_callee2,this);}));function startSession(_x2){return _startSession.apply(this,arguments);}return startSession;}()},{key:"stopSession",value:function(){var _stopSession=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(request){return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:return _context3.abrupt("return",this.makeRequest("/sessions/".concat(request.sessionId,"/stop"),{method:'POST',body:JSON.stringify({comment:request.comment})}));case 1:case"end":return _context3.stop();}},_callee3,this);}));function stopSession(_x3){return _stopSession.apply(this,arguments);}return stopSession;}()},{key:"saveSession",value:function(){var _saveSession=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(sessionId){return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:return _context4.abrupt("return",this.makeRequest("/sessions/".concat(sessionId,"/save"),{method:'POST'}));case 1:case"end":return _context4.stop();}},_callee4,this);}));function saveSession(_x4){return _saveSession.apply(this,arguments);}return saveSession;}()}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../src/services/api.service.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAO,UAAU;IAAvB;QAEU,YAAO,GAAW,6BAA6B,CAAA;IAqDzD,CAAC;IAnDC,IAAI,CAAC,MAA8B;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAA;QAClC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,QAAgB,EAChB,UAAuB,EAAE;;QAEzB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,MAAM,CAAA,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAA;QACxC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,GAAG,OAAO;YACV,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC/C,GAAG,OAAO,CAAC,OAAO;aACnB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAW,WAAW,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAO,aAAa,OAAO,CAAC,SAAS,OAAO,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACnD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,OAAO,IAAI,CAAC,WAAW,CAAW,aAAa,SAAS,OAAO,EAAE;YAC/D,MAAM,EAAE,MAAM;SACf,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ISession, SessionState } from '../types';
|
|
2
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
3
|
+
export declare class StorageService {
|
|
4
|
+
private static readonly SESSION_ID_KEY;
|
|
5
|
+
private static readonly SESSION_TYPE_KEY;
|
|
6
|
+
private static readonly SESSION_STATE_KEY;
|
|
7
|
+
private static readonly SESSION_OBJECT_KEY;
|
|
8
|
+
saveSessionId(sessionId: string): Promise<void>;
|
|
9
|
+
getSessionId(): Promise<string | null>;
|
|
10
|
+
saveSessionType(sessionType: SessionType): Promise<void>;
|
|
11
|
+
getSessionType(): Promise<SessionType | null>;
|
|
12
|
+
saveSessionState(state: SessionState): Promise<void>;
|
|
13
|
+
getSessionState(): Promise<SessionState | null>;
|
|
14
|
+
saveSessionObject(session: ISession): Promise<void>;
|
|
15
|
+
getSessionObject(): Promise<ISession | null>;
|
|
16
|
+
clearSessionData(): Promise<void>;
|
|
17
|
+
getAllSessionData(): Promise<{
|
|
18
|
+
sessionId: string | null;
|
|
19
|
+
sessionType: SessionType | null;
|
|
20
|
+
sessionState: SessionState | null;
|
|
21
|
+
sessionObject: ISession | null;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.StorageService=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _asyncStorage=_interopRequireDefault(require("@react-native-async-storage/async-storage"));var StorageService=exports.StorageService=function(){function StorageService(){(0,_classCallCheck2["default"])(this,StorageService);}return(0,_createClass2["default"])(StorageService,[{key:"saveSessionId",value:function(){var _saveSessionId=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(sessionId){var _t;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=1;return _asyncStorage["default"].setItem(StorageService.SESSION_ID_KEY,sessionId);case 1:_context.next=3;break;case 2:_context.prev=2;_t=_context["catch"](0);console.error('Failed to save session ID:',_t);throw _t;case 3:case"end":return _context.stop();}},_callee,null,[[0,2]]);}));function saveSessionId(_x){return _saveSessionId.apply(this,arguments);}return saveSessionId;}()},{key:"getSessionId",value:function(){var _getSessionId=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(){var _t2;return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.prev=0;_context2.next=1;return _asyncStorage["default"].getItem(StorageService.SESSION_ID_KEY);case 1:return _context2.abrupt("return",_context2.sent);case 2:_context2.prev=2;_t2=_context2["catch"](0);console.error('Failed to get session ID:',_t2);return _context2.abrupt("return",null);case 3:case"end":return _context2.stop();}},_callee2,null,[[0,2]]);}));function getSessionId(){return _getSessionId.apply(this,arguments);}return getSessionId;}()},{key:"saveSessionType",value:function(){var _saveSessionType=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(sessionType){var _t3;return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:_context3.prev=0;_context3.next=1;return _asyncStorage["default"].setItem(StorageService.SESSION_TYPE_KEY,sessionType);case 1:_context3.next=3;break;case 2:_context3.prev=2;_t3=_context3["catch"](0);console.error('Failed to save session type:',_t3);throw _t3;case 3:case"end":return _context3.stop();}},_callee3,null,[[0,2]]);}));function saveSessionType(_x2){return _saveSessionType.apply(this,arguments);}return saveSessionType;}()},{key:"getSessionType",value:function(){var _getSessionType=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){var type,_t4;return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.prev=0;_context4.next=1;return _asyncStorage["default"].getItem(StorageService.SESSION_TYPE_KEY);case 1:type=_context4.sent;return _context4.abrupt("return",type);case 2:_context4.prev=2;_t4=_context4["catch"](0);console.error('Failed to get session type:',_t4);return _context4.abrupt("return",null);case 3:case"end":return _context4.stop();}},_callee4,null,[[0,2]]);}));function getSessionType(){return _getSessionType.apply(this,arguments);}return getSessionType;}()},{key:"saveSessionState",value:function(){var _saveSessionState=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(state){var _t5;return _regenerator["default"].wrap(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:_context5.prev=0;_context5.next=1;return _asyncStorage["default"].setItem(StorageService.SESSION_STATE_KEY,state);case 1:_context5.next=3;break;case 2:_context5.prev=2;_t5=_context5["catch"](0);console.error('Failed to save session state:',_t5);throw _t5;case 3:case"end":return _context5.stop();}},_callee5,null,[[0,2]]);}));function saveSessionState(_x3){return _saveSessionState.apply(this,arguments);}return saveSessionState;}()},{key:"getSessionState",value:function(){var _getSessionState=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){var state,_t6;return _regenerator["default"].wrap(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:_context6.prev=0;_context6.next=1;return _asyncStorage["default"].getItem(StorageService.SESSION_STATE_KEY);case 1:state=_context6.sent;return _context6.abrupt("return",state);case 2:_context6.prev=2;_t6=_context6["catch"](0);console.error('Failed to get session state:',_t6);return _context6.abrupt("return",null);case 3:case"end":return _context6.stop();}},_callee6,null,[[0,2]]);}));function getSessionState(){return _getSessionState.apply(this,arguments);}return getSessionState;}()},{key:"saveSessionObject",value:function(){var _saveSessionObject=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(session){var _t7;return _regenerator["default"].wrap(function(_context7){while(1)switch(_context7.prev=_context7.next){case 0:_context7.prev=0;_context7.next=1;return _asyncStorage["default"].setItem(StorageService.SESSION_OBJECT_KEY,JSON.stringify(session));case 1:_context7.next=3;break;case 2:_context7.prev=2;_t7=_context7["catch"](0);console.error('Failed to save session object:',_t7);throw _t7;case 3:case"end":return _context7.stop();}},_callee7,null,[[0,2]]);}));function saveSessionObject(_x4){return _saveSessionObject.apply(this,arguments);}return saveSessionObject;}()},{key:"getSessionObject",value:function(){var _getSessionObject=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){var sessionData,_t8;return _regenerator["default"].wrap(function(_context8){while(1)switch(_context8.prev=_context8.next){case 0:_context8.prev=0;_context8.next=1;return _asyncStorage["default"].getItem(StorageService.SESSION_OBJECT_KEY);case 1:sessionData=_context8.sent;return _context8.abrupt("return",sessionData?JSON.parse(sessionData):null);case 2:_context8.prev=2;_t8=_context8["catch"](0);console.error('Failed to get session object:',_t8);return _context8.abrupt("return",null);case 3:case"end":return _context8.stop();}},_callee8,null,[[0,2]]);}));function getSessionObject(){return _getSessionObject.apply(this,arguments);}return getSessionObject;}()},{key:"clearSessionData",value:function(){var _clearSessionData=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){var _t9;return _regenerator["default"].wrap(function(_context9){while(1)switch(_context9.prev=_context9.next){case 0:_context9.prev=0;_context9.next=1;return _asyncStorage["default"].multiRemove([StorageService.SESSION_ID_KEY,StorageService.SESSION_TYPE_KEY,StorageService.SESSION_STATE_KEY,StorageService.SESSION_OBJECT_KEY]);case 1:_context9.next=3;break;case 2:_context9.prev=2;_t9=_context9["catch"](0);console.error('Failed to clear session data:',_t9);throw _t9;case 3:case"end":return _context9.stop();}},_callee9,null,[[0,2]]);}));function clearSessionData(){return _clearSessionData.apply(this,arguments);}return clearSessionData;}()},{key:"getAllSessionData",value:function(){var _getAllSessionData=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(){var _yield$Promise$all,_yield$Promise$all2,sessionId,sessionType,sessionState,sessionObject,_t0;return _regenerator["default"].wrap(function(_context0){while(1)switch(_context0.prev=_context0.next){case 0:_context0.prev=0;_context0.next=1;return Promise.all([this.getSessionId(),this.getSessionType(),this.getSessionState(),this.getSessionObject()]);case 1:_yield$Promise$all=_context0.sent;_yield$Promise$all2=(0,_slicedToArray2["default"])(_yield$Promise$all,4);sessionId=_yield$Promise$all2[0];sessionType=_yield$Promise$all2[1];sessionState=_yield$Promise$all2[2];sessionObject=_yield$Promise$all2[3];return _context0.abrupt("return",{sessionId:sessionId,sessionType:sessionType,sessionState:sessionState,sessionObject:sessionObject});case 2:_context0.prev=2;_t0=_context0["catch"](0);console.error('Failed to get all session data:',_t0);return _context0.abrupt("return",{sessionId:null,sessionType:null,sessionState:null,sessionObject:null});case 3:case"end":return _context0.stop();}},_callee0,this,[[0,2]]);}));function getAllSessionData(){return _getAllSessionData.apply(this,arguments);}return getAllSessionData;}()}]);}();StorageService.SESSION_ID_KEY='session_id';StorageService.SESSION_TYPE_KEY='session_type';StorageService.SESSION_STATE_KEY='session_state';StorageService.SESSION_OBJECT_KEY='session_object';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SessionRecorderOptions } from './types';
|
|
2
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
3
|
+
export declare enum SessionState {
|
|
4
|
+
started = "2",
|
|
5
|
+
paused = "1",
|
|
6
|
+
stopped = "0"
|
|
7
|
+
}
|
|
8
|
+
export interface ISession {
|
|
9
|
+
id: string;
|
|
10
|
+
shortId: string;
|
|
11
|
+
type: SessionType;
|
|
12
|
+
state: SessionState;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
updatedAt: string;
|
|
15
|
+
tempApiKey?: string;
|
|
16
|
+
metadata?: Record<string, any>;
|
|
17
|
+
}
|
|
18
|
+
export declare class SessionRecorder {
|
|
19
|
+
private _configs;
|
|
20
|
+
private _tracer;
|
|
21
|
+
private _recorder;
|
|
22
|
+
private _apiService;
|
|
23
|
+
private _storageService;
|
|
24
|
+
private _session;
|
|
25
|
+
private _isInitialized;
|
|
26
|
+
constructor();
|
|
27
|
+
init(options: SessionRecorderOptions): Promise<void>;
|
|
28
|
+
start(sessionId?: string, sessionType?: SessionType): Promise<void>;
|
|
29
|
+
stop(): Promise<void>;
|
|
30
|
+
pause(): Promise<void>;
|
|
31
|
+
resume(): Promise<void>;
|
|
32
|
+
cancel(): Promise<void>;
|
|
33
|
+
save(): Promise<void>;
|
|
34
|
+
setNavigationRef(ref: any): void;
|
|
35
|
+
enableGestureTracking(): void;
|
|
36
|
+
disableGestureTracking(): void;
|
|
37
|
+
recordTap(x: number, y: number, target?: string): void;
|
|
38
|
+
recordSwipe(direction: string, target?: string): void;
|
|
39
|
+
recordNavigate(routeName: string, params?: Record<string, any>): void;
|
|
40
|
+
recordGoBack(): void;
|
|
41
|
+
setSessionAttribute(key: string, value: any): void;
|
|
42
|
+
getSessionAttribute(key: string): any;
|
|
43
|
+
getCurrentSession(): ISession | null;
|
|
44
|
+
getStoredSessionData(): Promise<{
|
|
45
|
+
sessionId: string | null;
|
|
46
|
+
sessionType: SessionType | null;
|
|
47
|
+
sessionState: SessionState | null;
|
|
48
|
+
sessionObject: ISession | null;
|
|
49
|
+
}>;
|
|
50
|
+
startTrace(name: string, attributes?: Record<string, any>): any;
|
|
51
|
+
endTrace(span: any, status?: any): void;
|
|
52
|
+
captureException(error: Error, context?: Record<string, any>): void;
|
|
53
|
+
shutdown(): Promise<void>;
|
|
54
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SessionState=exports.SessionRecorder=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _otel=require("./otel");var _recorder=require("./recorder");var _api=require("./services/api.service");var _storage=require("./services/storage.service");var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var SessionState;(function(SessionState){SessionState["started"]="2";SessionState["paused"]="1";SessionState["stopped"]="0";})(SessionState||(exports.SessionState=SessionState={}));var SessionRecorder=exports.SessionRecorder=function(){function SessionRecorder(){(0,_classCallCheck2["default"])(this,SessionRecorder);this._configs=null;this._session=null;this._isInitialized=false;this._tracer=new _otel.TracerReactNativeSDK();this._recorder=new _recorder.RecorderReactNativeSDK();this._apiService=new _api.ApiService();this._storageService=new _storage.StorageService();}return(0,_createClass2["default"])(SessionRecorder,[{key:"init",value:function(){var _init=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(options){var tracerConfig,recorderConfig;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:if(!this._isInitialized){_context.next=1;break;}console.warn('SessionRecorder already initialized');return _context.abrupt("return");case 1:this._configs=options;tracerConfig={apiKey:options.apiKey,application:options.application,version:options.version,environment:options.environment,exporterEndpoint:options.exporterEndpoint,ignoreUrls:options.ignoreUrls,captureBody:options.captureBody,captureHeaders:options.captureHeaders,sampleTraceRatio:options.sampleTraceRatio,httpMasking:options.httpMasking};this._tracer.init(tracerConfig);recorderConfig={apiKey:options.apiKey,apiBaseUrl:options.apiBaseUrl,recordScreen:options.recordScreen,recordGestures:options.recordGestures,recordNavigation:options.recordNavigation};this._recorder.init(recorderConfig);this._apiService.init(options);this._isInitialized=true;console.log('SessionRecorder initialized successfully');case 2:case"end":return _context.stop();}},_callee,this);}));function init(_x){return _init.apply(this,arguments);}return init;}()},{key:"start",value:function(){var _start=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(sessionId){var sessionType,_args2=arguments,_t;return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:sessionType=_args2.length>1&&_args2[1]!==undefined?_args2[1]:_sessionRecorderCommon.SessionType.PLAIN;if(this._isInitialized){_context2.next=1;break;}throw new Error('SessionRecorder not initialized. Call init() first.');case 1:if(this._configs){_context2.next=2;break;}throw new Error('Configuration not found');case 2:_context2.prev=2;if(!sessionId){_context2.next=3;break;}this._session={id:sessionId,shortId:sessionId.substring(0,8),type:sessionType,state:SessionState.started,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};_context2.next=5;break;case 3:_context2.next=4;return this._apiService.startSession({application:this._configs.application,version:this._configs.version,environment:this._configs.environment});case 4:this._session=_context2.sent;case 5:if(this._session){_context2.next=6;break;}throw new Error('Failed to create session');case 6:this._tracer.setSessionId(this._session.id,this._session.type);this._recorder.start(this._session.id,this._session.type);_context2.next=7;return this._storageService.saveSessionId(this._session.id);case 7:_context2.next=8;return this._storageService.saveSessionType(this._session.type);case 8:_context2.next=9;return this._storageService.saveSessionState(this._session.state);case 9:_context2.next=10;return this._storageService.saveSessionObject(this._session);case 10:console.log('Session started:',this._session.id);_context2.next=12;break;case 11:_context2.prev=11;_t=_context2["catch"](2);console.error('Failed to start session:',_t);throw _t;case 12:case"end":return _context2.stop();}},_callee2,this,[[2,11]]);}));function start(_x2){return _start.apply(this,arguments);}return start;}()},{key:"stop",value:function(){var _stop=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(){var _t2;return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:if(!(!this._isInitialized||!this._session)){_context3.next=1;break;}console.warn('Session not active');return _context3.abrupt("return");case 1:_context3.prev=1;this._recorder.stop();this._session.state=SessionState.stopped;this._session.updatedAt=new Date().toISOString();_context3.next=2;return this._storageService.saveSessionState(this._session.state);case 2:_context3.next=3;return this._storageService.saveSessionObject(this._session);case 3:_context3.next=4;return this._apiService.stopSession({sessionId:this._session.id});case 4:console.log('Session stopped:',this._session.id);_context3.next=6;break;case 5:_context3.prev=5;_t2=_context3["catch"](1);console.error('Failed to stop session:',_t2);throw _t2;case 6:case"end":return _context3.stop();}},_callee3,this,[[1,5]]);}));function stop(){return _stop.apply(this,arguments);}return stop;}()},{key:"pause",value:function(){var _pause=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(){var _t3;return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:if(!(!this._isInitialized||!this._session)){_context4.next=1;break;}console.warn('Session not active');return _context4.abrupt("return");case 1:_context4.prev=1;this._recorder.pause();this._session.state=SessionState.paused;this._session.updatedAt=new Date().toISOString();_context4.next=2;return this._storageService.saveSessionState(this._session.state);case 2:_context4.next=3;return this._storageService.saveSessionObject(this._session);case 3:console.log('Session paused:',this._session.id);_context4.next=5;break;case 4:_context4.prev=4;_t3=_context4["catch"](1);console.error('Failed to pause session:',_t3);throw _t3;case 5:case"end":return _context4.stop();}},_callee4,this,[[1,4]]);}));function pause(){return _pause.apply(this,arguments);}return pause;}()},{key:"resume",value:function(){var _resume=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){var _t4;return _regenerator["default"].wrap(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:if(!(!this._isInitialized||!this._session)){_context5.next=1;break;}console.warn('Session not active');return _context5.abrupt("return");case 1:_context5.prev=1;this._recorder.resume();this._session.state=SessionState.started;this._session.updatedAt=new Date().toISOString();_context5.next=2;return this._storageService.saveSessionState(this._session.state);case 2:_context5.next=3;return this._storageService.saveSessionObject(this._session);case 3:console.log('Session resumed:',this._session.id);_context5.next=5;break;case 4:_context5.prev=4;_t4=_context5["catch"](1);console.error('Failed to resume session:',_t4);throw _t4;case 5:case"end":return _context5.stop();}},_callee5,this,[[1,4]]);}));function resume(){return _resume.apply(this,arguments);}return resume;}()},{key:"cancel",value:function(){var _cancel=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){var _t5;return _regenerator["default"].wrap(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:if(!(!this._isInitialized||!this._session)){_context6.next=1;break;}console.warn('Session not active');return _context6.abrupt("return");case 1:_context6.prev=1;this._recorder.stop();_context6.next=2;return this._storageService.clearSessionData();case 2:_context6.next=3;return this._apiService.stopSession({sessionId:this._session.id});case 3:this._session=null;console.log('Session cancelled');_context6.next=5;break;case 4:_context6.prev=4;_t5=_context6["catch"](1);console.error('Failed to cancel session:',_t5);throw _t5;case 5:case"end":return _context6.stop();}},_callee6,this,[[1,4]]);}));function cancel(){return _cancel.apply(this,arguments);}return cancel;}()},{key:"save",value:function(){var _save=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var _t6;return _regenerator["default"].wrap(function(_context7){while(1)switch(_context7.prev=_context7.next){case 0:if(!(!this._isInitialized||!this._session)){_context7.next=1;break;}console.warn('Session not active');return _context7.abrupt("return");case 1:_context7.prev=1;_context7.next=2;return this._apiService.saveSession(this._session.id);case 2:console.log('Session saved:',this._session.id);_context7.next=4;break;case 3:_context7.prev=3;_t6=_context7["catch"](1);console.error('Failed to save session:',_t6);throw _t6;case 4:case"end":return _context7.stop();}},_callee7,this,[[1,3]]);}));function save(){return _save.apply(this,arguments);}return save;}()},{key:"setNavigationRef",value:function setNavigationRef(ref){if(this._isInitialized){this._tracer.setNavigationRef(ref);this._recorder.setNavigationRef(ref);}}},{key:"enableGestureTracking",value:function enableGestureTracking(){if(this._isInitialized){this._tracer.enableGestureTracking();}}},{key:"disableGestureTracking",value:function disableGestureTracking(){if(this._isInitialized){this._tracer.disableGestureTracking();}}},{key:"recordTap",value:function recordTap(x,y,target){if(this._isInitialized){this._tracer.recordTap(x,y,target);}}},{key:"recordSwipe",value:function recordSwipe(direction,target){if(this._isInitialized){this._tracer.recordSwipe(direction,target);}}},{key:"recordNavigate",value:function recordNavigate(routeName,params){if(this._isInitialized){this._tracer.recordNavigate(routeName,params);}}},{key:"recordGoBack",value:function recordGoBack(){if(this._isInitialized){this._tracer.recordGoBack();}}},{key:"setSessionAttribute",value:function setSessionAttribute(key,value){if(this._session){if(!this._session.metadata){this._session.metadata={};}this._session.metadata[key]=value;this._session.updatedAt=new Date().toISOString();}}},{key:"getSessionAttribute",value:function getSessionAttribute(key){var _a,_b;return(_b=(_a=this._session)===null||_a===void 0?void 0:_a.metadata)===null||_b===void 0?void 0:_b[key];}},{key:"getCurrentSession",value:function getCurrentSession(){return this._session;}},{key:"getStoredSessionData",value:function(){var _getStoredSessionData=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){return _regenerator["default"].wrap(function(_context8){while(1)switch(_context8.prev=_context8.next){case 0:_context8.next=1;return this._storageService.getAllSessionData();case 1:return _context8.abrupt("return",_context8.sent);case 2:case"end":return _context8.stop();}},_callee8,this);}));function getStoredSessionData(){return _getStoredSessionData.apply(this,arguments);}return getStoredSessionData;}()},{key:"startTrace",value:function startTrace(name,attributes){if(this._isInitialized){return this._tracer.startTrace(name,attributes);}return null;}},{key:"endTrace",value:function endTrace(span,status){if(this._isInitialized&&span){this._tracer.endTrace(span,status);}}},{key:"captureException",value:function captureException(error,context){if(this._isInitialized){this._tracer.captureException(error,context);}}},{key:"shutdown",value:function(){var _shutdown=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(){return _regenerator["default"].wrap(function(_context9){while(1)switch(_context9.prev=_context9.next){case 0:if(!this._isInitialized){_context9.next=3;break;}_context9.next=1;return this.stop();case 1:_context9.next=2;return this._tracer.shutdown();case 2:this._isInitialized=false;console.log('SessionRecorder shutdown');case 3:case"end":return _context9.stop();}},_callee9,this);}));function shutdown(){return _shutdown.apply(this,arguments);}return shutdown;}()}]);}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionRecorder.js","sourceRoot":"","sources":["../src/sessionRecorder.ts"],"names":[],"mappings":"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"}
|