@multiplayer-app/session-recorder-react-native 0.0.1-beta.2 → 0.0.1-beta.20
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/README.md +170 -12
- package/SessionRecorderNative.podspec +29 -0
- package/android/build.gradle +34 -0
- package/copy-react-native-dist.sh +34 -16
- package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.d.ts +1 -0
- package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.js +1 -1
- package/dist/components/GestureCaptureWrapper/GestureCaptureWrapper.js.map +1 -1
- package/dist/components/MaskableComponent.d.ts +22 -0
- package/dist/components/MaskableComponent.js +1 -0
- package/dist/components/MaskableComponent.js.map +1 -0
- package/dist/components/MaskableTextInput.d.ts +14 -0
- package/dist/components/MaskableTextInput.js +1 -0
- package/dist/components/MaskableTextInput.js.map +1 -0
- package/dist/components/ScreenRecorderView/ScreenRecorderView.js +1 -1
- package/dist/components/ScreenRecorderView/ScreenRecorderView.js.map +1 -1
- package/dist/components/SessionRecorderWidget/FinalPopover.d.ts +11 -0
- package/dist/components/SessionRecorderWidget/FinalPopover.js +1 -0
- package/dist/components/SessionRecorderWidget/FinalPopover.js.map +1 -0
- package/dist/components/SessionRecorderWidget/FloatingButton.d.ts +8 -0
- package/dist/components/SessionRecorderWidget/FloatingButton.js +1 -0
- package/dist/components/SessionRecorderWidget/FloatingButton.js.map +1 -0
- package/dist/components/SessionRecorderWidget/InitialPopover.d.ts +15 -0
- package/dist/components/SessionRecorderWidget/InitialPopover.js +1 -0
- package/dist/components/SessionRecorderWidget/InitialPopover.js.map +1 -0
- package/dist/components/SessionRecorderWidget/ModalContainer.d.ts +8 -0
- package/dist/components/SessionRecorderWidget/ModalContainer.js +1 -0
- package/dist/components/SessionRecorderWidget/ModalContainer.js.map +1 -0
- package/dist/components/SessionRecorderWidget/ModalHeader.d.ts +6 -0
- package/dist/components/SessionRecorderWidget/ModalHeader.js +1 -0
- package/dist/components/SessionRecorderWidget/ModalHeader.js.map +1 -0
- package/dist/components/SessionRecorderWidget/SessionRecorderWidget.d.ts +5 -0
- package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js +1 -0
- package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js.map +1 -0
- package/dist/components/SessionRecorderWidget/icons.d.ts +11 -0
- package/dist/components/SessionRecorderWidget/icons.js +1 -0
- package/dist/components/SessionRecorderWidget/icons.js.map +1 -0
- package/dist/components/SessionRecorderWidget/index.d.ts +2 -0
- package/dist/components/SessionRecorderWidget/index.js +1 -0
- package/dist/components/SessionRecorderWidget/index.js.map +1 -0
- package/dist/components/SessionRecorderWidget/styles.d.ts +165 -0
- package/dist/components/SessionRecorderWidget/styles.js +1 -0
- package/dist/components/SessionRecorderWidget/styles.js.map +1 -0
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/config/defaults.d.ts +4 -4
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/masking.d.ts +2 -2
- package/dist/config/masking.js +1 -1
- package/dist/config/masking.js.map +1 -1
- package/dist/config/session-recorder.js +1 -1
- package/dist/config/session-recorder.js.map +1 -1
- package/dist/config/validators.d.ts +1 -1
- package/dist/config/validators.js +1 -1
- package/dist/config/validators.js.map +1 -1
- package/dist/config/widget.d.ts +9 -0
- package/dist/config/widget.js +1 -0
- package/dist/config/widget.js.map +1 -0
- package/dist/context/SessionRecorderContext.d.ts +12 -3
- package/dist/context/SessionRecorderContext.js +1 -1
- package/dist/context/SessionRecorderContext.js.map +1 -1
- package/dist/context/SessionRecorderStore.d.ts +10 -0
- package/dist/context/SessionRecorderStore.js +1 -0
- package/dist/context/SessionRecorderStore.js.map +1 -0
- package/dist/context/useSessionRecorderStore.d.ts +8 -0
- package/dist/context/useSessionRecorderStore.js +1 -0
- package/dist/context/useSessionRecorderStore.js.map +1 -0
- package/dist/context/useStoreSelector.d.ts +4 -0
- package/dist/context/useStoreSelector.js +1 -0
- package/dist/context/useStoreSelector.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/native/GestureRecorderNative.d.ts +57 -0
- package/dist/native/GestureRecorderNative.js +1 -0
- package/dist/native/GestureRecorderNative.js.map +1 -0
- package/dist/native/ScreenMasking.d.ts +21 -0
- package/dist/native/ScreenMasking.js +1 -0
- package/dist/native/ScreenMasking.js.map +1 -0
- package/dist/native/SessionRecorderNative.d.ts +33 -0
- package/dist/native/SessionRecorderNative.js +1 -0
- package/dist/native/SessionRecorderNative.js.map +1 -0
- package/dist/native/index.d.ts +2 -0
- package/dist/native/index.js +1 -0
- package/dist/native/index.js.map +1 -0
- package/dist/otel/index.js +1 -1
- package/dist/otel/index.js.map +1 -1
- package/dist/patch/xhr.js +1 -1
- package/dist/patch/xhr.js.map +1 -1
- package/dist/recorder/eventExporter.d.ts +4 -1
- package/dist/recorder/eventExporter.js +1 -1
- package/dist/recorder/eventExporter.js.map +1 -1
- package/dist/recorder/gestureRecorder.d.ts +28 -62
- package/dist/recorder/gestureRecorder.js +1 -1
- package/dist/recorder/gestureRecorder.js.map +1 -1
- package/dist/recorder/index.d.ts +2 -0
- package/dist/recorder/index.js +1 -1
- package/dist/recorder/index.js.map +1 -1
- package/dist/recorder/navigationTracker.d.ts +4 -19
- package/dist/recorder/navigationTracker.js +1 -1
- package/dist/recorder/navigationTracker.js.map +1 -1
- package/dist/recorder/screenRecorder.d.ts +11 -5
- package/dist/recorder/screenRecorder.js +1 -1
- package/dist/recorder/screenRecorder.js.map +1 -1
- package/dist/recorder/screenshotManager.d.ts +10 -0
- package/dist/recorder/screenshotManager.js +1 -0
- package/dist/recorder/screenshotManager.js.map +1 -0
- package/dist/services/api.service.d.ts +12 -3
- package/dist/services/api.service.js +1 -1
- package/dist/services/api.service.js.map +1 -1
- package/dist/services/screenMaskingService.d.ts +47 -0
- package/dist/services/screenMaskingService.js +1 -0
- package/dist/services/screenMaskingService.js.map +1 -0
- package/dist/services/storage.service.d.ts +18 -2
- package/dist/services/storage.service.js +1 -1
- package/dist/services/storage.service.js.map +1 -1
- package/dist/session-recorder.d.ts +10 -34
- package/dist/session-recorder.js +1 -1
- package/dist/session-recorder.js.map +1 -1
- package/dist/types/configs.d.ts +85 -0
- package/dist/types/configs.js +1 -0
- package/dist/types/configs.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/session-recorder.d.ts +96 -132
- package/dist/types/session-recorder.js +1 -1
- package/dist/types/session-recorder.js.map +1 -1
- package/dist/utils/componentRegistry.d.ts +64 -0
- package/dist/utils/componentRegistry.js +1 -0
- package/dist/utils/componentRegistry.js.map +1 -0
- package/dist/utils/constants.optional.d.ts +21 -0
- package/dist/utils/constants.optional.expo.d.ts +3 -0
- package/dist/utils/constants.optional.expo.js +1 -0
- package/dist/utils/constants.optional.expo.js.map +1 -0
- package/dist/utils/constants.optional.js +1 -0
- package/dist/utils/constants.optional.js.map +1 -0
- package/dist/utils/createStore.d.ts +8 -0
- package/dist/utils/createStore.js +1 -0
- package/dist/utils/createStore.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/nativeModuleTest.d.ts +8 -0
- package/dist/utils/nativeModuleTest.js +1 -0
- package/dist/utils/nativeModuleTest.js.map +1 -0
- package/dist/utils/platform.d.ts +11 -0
- package/dist/utils/platform.js +1 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/reactNativeHierarchyExtractor.d.ts +38 -0
- package/dist/utils/reactNativeHierarchyExtractor.js +1 -0
- package/dist/utils/reactNativeHierarchyExtractor.js.map +1 -0
- package/dist/utils/rrweb-events.d.ts +4 -3
- package/dist/utils/rrweb-events.js +1 -1
- package/dist/utils/rrweb-events.js.map +1 -1
- package/dist/utils/screenshotMasker.d.ts +96 -0
- package/dist/utils/screenshotMasker.js +1 -0
- package/dist/utils/screenshotMasker.js.map +1 -0
- package/dist/utils/session.d.ts +2 -1
- package/dist/utils/session.js +1 -1
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/shallowEqual.d.ts +1 -0
- package/dist/utils/shallowEqual.js +1 -0
- package/dist/utils/shallowEqual.js.map +1 -0
- package/dist/utils/viewHierarchyTracker.d.ts +89 -0
- package/dist/utils/viewHierarchyTracker.js +1 -0
- package/dist/utils/viewHierarchyTracker.js.map +1 -0
- package/ios/GestureRecorderNative.m +21 -0
- package/ios/GestureRecorderNative.swift +316 -0
- package/ios/SessionRecorderNative.m +17 -0
- package/ios/SessionRecorderNative.podspec +26 -0
- package/ios/SessionRecorderNative.swift +599 -0
- package/package.json +13 -12
- package/react-native.config.js +12 -0
- package/RRWEB_INTEGRATION.md +0 -336
- package/VIEWSHOT_INTEGRATION_TEST.md +0 -123
- package/babel.config.js +0 -13
- package/dist/components/GestureCaptureWrapper.d.ts +0 -6
- package/dist/components/GestureCaptureWrapper.js +0 -1
- package/dist/components/GestureCaptureWrapper.js.map +0 -1
- package/dist/expo.d.ts +0 -7
- package/dist/expo.js +0 -1
- package/dist/expo.js.map +0 -1
- package/dist/otel/instrumentations/gestureInstrumentation.d.ts +0 -15
- package/dist/otel/instrumentations/gestureInstrumentation.js +0 -1
- package/dist/otel/instrumentations/gestureInstrumentation.js.map +0 -1
- package/dist/otel/instrumentations/reactNativeInstrumentation.d.ts +0 -8
- package/dist/otel/instrumentations/reactNativeInstrumentation.js +0 -1
- package/dist/otel/instrumentations/reactNativeInstrumentation.js.map +0 -1
- package/dist/otel/instrumentations/reactNavigationInstrumentation.d.ts +0 -13
- package/dist/otel/instrumentations/reactNavigationInstrumentation.js +0 -1
- package/dist/otel/instrumentations/reactNavigationInstrumentation.js.map +0 -1
- package/dist/recorder/gestureHandlerRecorder.d.ts +0 -19
- package/dist/recorder/gestureHandlerRecorder.js +0 -1
- package/dist/recorder/gestureHandlerRecorder.js.map +0 -1
- package/dist/types/rrweb.d.ts +0 -118
- package/dist/types/rrweb.js +0 -1
- package/dist/types/rrweb.js.map +0 -1
- package/scripts/generate-app-metadata.js +0 -173
- package/src/components/GestureCaptureWrapper/GestureCaptureWrapper.tsx +0 -86
- package/src/components/GestureCaptureWrapper/index.ts +0 -1
- package/src/components/ScreenRecorderView/ScreenRecorderView.tsx +0 -72
- package/src/components/ScreenRecorderView/index.ts +0 -1
- package/src/components/index.ts +0 -1
- package/src/config/constants.ts +0 -60
- package/src/config/defaults.ts +0 -82
- package/src/config/index.ts +0 -6
- package/src/config/masking.ts +0 -27
- package/src/config/session-recorder.ts +0 -55
- package/src/config/validators.ts +0 -31
- package/src/context/SessionRecorderContext.tsx +0 -75
- package/src/expo.ts +0 -11
- package/src/index.ts +0 -17
- package/src/otel/helpers.ts +0 -275
- package/src/otel/index.ts +0 -138
- package/src/otel/instrumentations/index.ts +0 -115
- package/src/patch/index.ts +0 -1
- package/src/patch/xhr.ts +0 -142
- package/src/recorder/eventExporter.ts +0 -141
- package/src/recorder/gestureRecorder.ts +0 -498
- package/src/recorder/index.ts +0 -179
- package/src/recorder/navigationTracker.ts +0 -449
- package/src/recorder/screenRecorder.ts +0 -498
- package/src/services/api.service.ts +0 -203
- package/src/services/storage.service.ts +0 -158
- package/src/session-recorder.ts +0 -600
- package/src/types/expo.d.ts +0 -23
- package/src/types/index.ts +0 -28
- package/src/types/session-recorder.ts +0 -423
- package/src/types/session.ts +0 -65
- package/src/utils/app-metadata.ts +0 -31
- package/src/utils/index.ts +0 -8
- package/src/utils/logger.ts +0 -225
- package/src/utils/platform.ts +0 -384
- package/src/utils/request-utils.ts +0 -61
- package/src/utils/rrweb-events.ts +0 -309
- package/src/utils/session.ts +0 -18
- package/src/utils/time.ts +0 -17
- package/src/utils/type-utils.ts +0 -75
- package/src/version.ts +0 -1
- package/tsconfig.json +0 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRecorderContext.js","sourceRoot":"","sources":["../../src/context/SessionRecorderContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAqB,
|
|
1
|
+
{"version":3,"file":"SessionRecorderContext.js","sourceRoot":"","sources":["../../src/context/SessionRecorderContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Store } from '../utils/createStore';
|
|
2
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
3
|
+
import { SessionState } from '../types';
|
|
4
|
+
export type SessionRecorderState = {
|
|
5
|
+
isInitialized: boolean;
|
|
6
|
+
sessionType: SessionType | null;
|
|
7
|
+
sessionState: SessionState | null;
|
|
8
|
+
isWidgetModalVisible: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const sessionRecorderStore: Store<SessionRecorderState>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.sessionRecorderStore=void 0;var _createStore=require("../utils/createStore");var sessionRecorderStore=exports.sessionRecorderStore=(0,_createStore.createStore)({isInitialized:false,sessionType:null,sessionState:null,isWidgetModalVisible:false});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRecorderStore.js","sourceRoot":"","sources":["../../src/context/SessionRecorderStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAS,MAAM,sBAAsB,CAAA;AAWzD,MAAM,CAAC,MAAM,oBAAoB,GAAgC,WAAW,CAAuB;IACjG,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,oBAAoB,EAAE,KAAK;CAC5B,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SessionType } from "@multiplayer-app/session-recorder-common";
|
|
2
|
+
import { SessionState } from "../types";
|
|
3
|
+
import { SessionRecorderState } from "./SessionRecorderStore";
|
|
4
|
+
export declare function useSessionRecorderStore<TSlice>(selector: (s: SessionRecorderState) => TSlice, equalityFn?: (a: TSlice, b: TSlice) => boolean): TSlice;
|
|
5
|
+
export declare function useSessionRecordingState(): SessionState | null;
|
|
6
|
+
export declare function useSessionType(): SessionType | null;
|
|
7
|
+
export declare function useIsInitialized(): boolean;
|
|
8
|
+
export declare function useWidgetModalVisible(): boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.useIsInitialized=useIsInitialized;exports.useSessionRecorderStore=useSessionRecorderStore;exports.useSessionRecordingState=useSessionRecordingState;exports.useSessionType=useSessionType;exports.useWidgetModalVisible=useWidgetModalVisible;var _useStoreSelector=require("./useStoreSelector");var _SessionRecorderStore=require("./SessionRecorderStore");function useSessionRecorderStore(selector,equalityFn){return(0,_useStoreSelector.useStoreSelector)(_SessionRecorderStore.sessionRecorderStore,selector,equalityFn);}function useSessionRecordingState(){return useSessionRecorderStore(function(s){return s.sessionState;});}function useSessionType(){return useSessionRecorderStore(function(s){return s.sessionType;});}function useIsInitialized(){return useSessionRecorderStore(function(s){return s.isInitialized;});}function useWidgetModalVisible(){return useSessionRecorderStore(function(s){return s.isWidgetModalVisible;});}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionRecorderStore.js","sourceRoot":"","sources":["../../src/context/useSessionRecorderStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAwB,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAEnF,MAAM,UAAU,uBAAuB,CACrC,QAA6C,EAC7C,UAA8C;IAE9C,OAAO,gBAAgB,CAA+B,oBAAoB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AACnG,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,uBAAuB,CAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;AAC5E,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,uBAAuB,CAAqB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,uBAAuB,CAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,uBAAuB,CAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAA;AACxE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Store } from '../utils/createStore';
|
|
2
|
+
import { shallowEqual } from '../utils/shallowEqual';
|
|
3
|
+
export declare function useStoreSelector<TState extends object, TSlice>(store: Store<TState>, selector: (state: TState) => TSlice, equalityFn?: (a: TSlice, b: TSlice) => boolean): TSlice;
|
|
4
|
+
export declare const shallow: typeof shallowEqual;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.shallow=void 0;exports.useStoreSelector=useStoreSelector;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=require("react");var _shallowEqual=require("../utils/shallowEqual");function useStoreSelector(store,selector){var equalityFn=arguments.length>2&&arguments[2]!==undefined?arguments[2]:Object.is;var latestSelectorRef=(0,_react.useRef)(selector);var latestEqualityRef=(0,_react.useRef)(equalityFn);latestSelectorRef.current=selector;latestEqualityRef.current=equalityFn;var _useState=(0,_react.useState)(function(){return latestSelectorRef.current(store.getState());}),_useState2=(0,_slicedToArray2["default"])(_useState,2),slice=_useState2[0],setSlice=_useState2[1];(0,_react.useEffect)(function(){function handleChange(nextState,prevState){var nextSlice=latestSelectorRef.current(nextState);var prevSlice=latestSelectorRef.current(prevState);if(!latestEqualityRef.current(nextSlice,prevSlice)){setSlice(nextSlice);}}var unsubscribe=store.subscribe(handleChange);handleChange(store.getState(),store.getState());return unsubscribe;},[store]);return slice;}var shallow=exports.shallow=_shallowEqual.shallowEqual;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStoreSelector.js","sourceRoot":"","sources":["../../src/context/useStoreSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,UAAU,gBAAgB,CAC9B,KAAoB,EACpB,QAAmC,EACnC,aAAgD,MAAM,CAAC,EAAE;IAEzD,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1C,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAC5C,iBAAiB,CAAC,OAAO,GAAG,QAAQ,CAAA;IACpC,iBAAiB,CAAC,OAAO,GAAG,UAAU,CAAA;IAEtC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAE7F,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,YAAY,CAAC,SAAiB,EAAE,SAAiB;YACxD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACtD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACtD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;gBACrD,QAAQ,CAAC,SAAS,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACjD,sDAAsD;QACtD,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QAChD,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import './patch';
|
|
|
2
2
|
import SessionRecorder from './session-recorder';
|
|
3
3
|
export * from '@multiplayer-app/session-recorder-common';
|
|
4
4
|
export * from './context/SessionRecorderContext';
|
|
5
|
-
export
|
|
5
|
+
export * from './context/useSessionRecorderStore';
|
|
6
6
|
export { SessionRecorder };
|
|
7
7
|
export default SessionRecorder;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={SessionRecorder:true
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={SessionRecorder:true};Object.defineProperty(exports,"SessionRecorder",{enumerable:true,get:function get(){return _sessionRecorder["default"];}});exports["default"]=void 0;require("./patch");var _sessionRecorder=_interopRequireDefault(require("./session-recorder"));var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");Object.keys(_sessionRecorderCommon).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,key))return;if(key in exports&&exports[key]===_sessionRecorderCommon[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _sessionRecorderCommon[key];}});});var _SessionRecorderContext=require("./context/SessionRecorderContext");Object.keys(_SessionRecorderContext).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,key))return;if(key in exports&&exports[key]===_SessionRecorderContext[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _SessionRecorderContext[key];}});});var _useSessionRecorderStore=require("./context/useSessionRecorderStore");Object.keys(_useSessionRecorderStore).forEach(function(key){if(key==="default"||key==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,key))return;if(key in exports&&exports[key]===_useSessionRecorderStore[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _useSessionRecorderStore[key];}});});var _default=exports["default"]=_sessionRecorder["default"];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAChB,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,cAAc,0CAA0C,CAAA;AACxD,cAAc,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAChB,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,cAAc,0CAA0C,CAAA;AACxD,cAAc,kCAAkC,CAAA;AAChD,cAAc,mCAAmC,CAAA;AAEjD,qCAAqC;AACrC,OAAO,EAAE,eAAe,EAAE,CAAA;AAC1B,iCAAiC;AACjC,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { NativeEventEmitter } from 'react-native';
|
|
2
|
+
export interface GestureEvent {
|
|
3
|
+
type: 'tap' | 'pan_start' | 'pan_move' | 'pan_end' | 'long_press' | 'pinch' | 'swipe';
|
|
4
|
+
timestamp: number;
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
target?: string;
|
|
8
|
+
targetInfo?: {
|
|
9
|
+
identifier: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
role?: string;
|
|
12
|
+
testId?: string;
|
|
13
|
+
text?: string;
|
|
14
|
+
};
|
|
15
|
+
metadata?: {
|
|
16
|
+
pressure?: number;
|
|
17
|
+
velocity?: number;
|
|
18
|
+
scale?: number;
|
|
19
|
+
direction?: string;
|
|
20
|
+
distance?: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface GestureRecorderNativeModule {
|
|
24
|
+
/**
|
|
25
|
+
* Start gesture recording
|
|
26
|
+
* @returns Promise that resolves when recording starts
|
|
27
|
+
*/
|
|
28
|
+
startGestureRecording(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Stop gesture recording
|
|
31
|
+
* @returns Promise that resolves when recording stops
|
|
32
|
+
*/
|
|
33
|
+
stopGestureRecording(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Check if gesture recording is currently active
|
|
36
|
+
* @returns Promise that resolves to boolean indicating recording status
|
|
37
|
+
*/
|
|
38
|
+
isGestureRecordingActive(): Promise<boolean>;
|
|
39
|
+
/**
|
|
40
|
+
* Set gesture callback to receive gesture events
|
|
41
|
+
* @param callback Function to call when gestures are detected
|
|
42
|
+
*/
|
|
43
|
+
setGestureCallback(callback: (gesture: GestureEvent) => void): void;
|
|
44
|
+
/**
|
|
45
|
+
* Manually record a gesture event (for testing or manual recording)
|
|
46
|
+
* @param gestureType Type of gesture
|
|
47
|
+
* @param x X coordinate
|
|
48
|
+
* @param y Y coordinate
|
|
49
|
+
* @param target Target element identifier
|
|
50
|
+
* @param metadata Additional gesture metadata
|
|
51
|
+
*/
|
|
52
|
+
recordGesture(gestureType: string, x: number, y: number, target?: string, metadata?: Record<string, any>): void;
|
|
53
|
+
}
|
|
54
|
+
declare const gestureEventEmitter: NativeEventEmitter | null;
|
|
55
|
+
declare const _default: GestureRecorderNativeModule;
|
|
56
|
+
export default _default;
|
|
57
|
+
export { gestureEventEmitter };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.gestureEventEmitter=exports["default"]=void 0;var _reactNative=require("react-native");var GestureRecorderNative=_reactNative.NativeModules.GestureRecorderNative;if(!GestureRecorderNative){console.warn('GestureRecorderNative module is not available. Auto-linking may not have completed yet.');}var gestureEventEmitter=exports.gestureEventEmitter=GestureRecorderNative?new _reactNative.NativeEventEmitter(GestureRecorderNative):null;var _default=exports["default"]=GestureRecorderNative;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GestureRecorderNative.js","sourceRoot":"","sources":["../../src/native/GestureRecorderNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAkEhE,wBAAwB;AACxB,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAA;AAE/C,+CAA+C;AAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAA;AACzG,CAAC;AAED,0CAA0C;AAC1C,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,CAAC,CAAC,IAAI,kBAAkB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAExG,eAAe,qBAAoD,CAAA;AAEnE,0CAA0C;AAC1C,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface MaskingOptions {
|
|
2
|
+
/** Quality of the captured image (0.1 to 1.0) */
|
|
3
|
+
quality?: number;
|
|
4
|
+
/** Whether to mask all input fields automatically */
|
|
5
|
+
inputMasking?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface SessionRecorderNativeModule {
|
|
8
|
+
/**
|
|
9
|
+
* Capture the current screen and apply masking to sensitive elements
|
|
10
|
+
* @returns Promise that resolves to base64 encoded image
|
|
11
|
+
*/
|
|
12
|
+
captureAndMask(): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Capture the current screen and apply masking with custom options
|
|
15
|
+
* @param options Custom masking options
|
|
16
|
+
* @returns Promise that resolves to base64 encoded image
|
|
17
|
+
*/
|
|
18
|
+
captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: SessionRecorderNativeModule;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _reactNative=require("react-native");var SessionRecorder=_reactNative.NativeModules.SessionRecorder;if(!SessionRecorder){console.warn('SessionRecorder native module is not available. Auto-linking may not have completed yet.');}var _default=exports["default"]=SessionRecorder;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScreenMasking.js","sourceRoot":"","sources":["../../src/native/ScreenMasking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAyB5C,wBAAwB;AACxB,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CAAA;AAEzC,+CAA+C;AAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAA;AAC1G,CAAC;AAED,eAAe,eAA8C,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface MaskingOptions {
|
|
2
|
+
/** Quality of the captured image (0.1 to 1.0, default: 0.3 for smaller file size) */
|
|
3
|
+
quality?: number;
|
|
4
|
+
/** Scale of the captured image (0.1 to 1.0, default: 1.0) */
|
|
5
|
+
scale?: number;
|
|
6
|
+
/** Whether to mask text inputs (UITextField, UITextView, React Native text components) */
|
|
7
|
+
maskTextInputs?: boolean;
|
|
8
|
+
/** Whether to mask images (UIImageView, React Native Image components) */
|
|
9
|
+
maskImages?: boolean;
|
|
10
|
+
/** Whether to mask buttons (UIButton) */
|
|
11
|
+
maskButtons?: boolean;
|
|
12
|
+
/** Whether to mask labels (UILabel) */
|
|
13
|
+
maskLabels?: boolean;
|
|
14
|
+
/** Whether to mask web views (WKWebView) */
|
|
15
|
+
maskWebViews?: boolean;
|
|
16
|
+
/** Whether to mask sandboxed views (system views that don't belong to current process) */
|
|
17
|
+
maskSandboxedViews?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface SessionRecorderNativeModule {
|
|
20
|
+
/**
|
|
21
|
+
* Capture the current screen and apply masking to sensitive elements
|
|
22
|
+
* @returns Promise that resolves to base64 encoded image
|
|
23
|
+
*/
|
|
24
|
+
captureAndMask(): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Capture the current screen and apply masking with custom options
|
|
27
|
+
* @param options Custom masking options
|
|
28
|
+
* @returns Promise that resolves to base64 encoded image
|
|
29
|
+
*/
|
|
30
|
+
captureAndMaskWithOptions(options: MaskingOptions): Promise<string>;
|
|
31
|
+
}
|
|
32
|
+
declare const _default: SessionRecorderNativeModule;
|
|
33
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _reactNative=require("react-native");var SessionRecorderNative=_reactNative.NativeModules.SessionRecorderNative;if(!SessionRecorderNative){console.warn('SessionRecorderNative module is not available. Auto-linking may not have completed yet.');}var _default=exports["default"]=SessionRecorderNative;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionRecorderNative.js","sourceRoot":"","sources":["../../src/native/SessionRecorderNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAqC5C,wBAAwB;AACxB,MAAM,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAA;AAE/C,+CAA+C;AAC/C,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAA;AACzG,CAAC;AAED,eAAe,qBAAoD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"GestureRecorderNative",{enumerable:true,get:function get(){return _GestureRecorderNative["default"];}});Object.defineProperty(exports,"SessionRecorderNative",{enumerable:true,get:function get(){return _SessionRecorderNative["default"];}});Object.defineProperty(exports,"gestureEventEmitter",{enumerable:true,get:function get(){return _GestureRecorderNative.gestureEventEmitter;}});var _SessionRecorderNative=_interopRequireDefault(require("./SessionRecorderNative"));var _GestureRecorderNative=_interopRequireWildcard(require("./GestureRecorderNative"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,"default":e};if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t2 in e)"default"!==_t2&&{}.hasOwnProperty.call(e,_t2)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t2))&&(i.get||i.set)?o(f,_t2,i):f[_t2]=e[_t2]);return f;})(e,t);}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/otel/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.TracerReactNativeSDK=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _resources=require("@opentelemetry/resources");var _core=require("@opentelemetry/core");var _sdkTraceBase=require("@opentelemetry/sdk-trace-base");var SemanticAttributes=_interopRequireWildcard(require("@opentelemetry/semantic-conventions"));var _instrumentation=require("@opentelemetry/instrumentation");var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _instrumentations=require("./instrumentations");var _helpers=require("./helpers");var _platform=require("../utils/platform");var _sdkTraceWeb=require("@opentelemetry/sdk-trace-web");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,"default":e};if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t2 in e)"default"!==_t2&&{}.hasOwnProperty.call(e,_t2)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t2))&&(i.get||i.set)?o(f,_t2,i):f[_t2]=e[_t2]);return f;})(e,t);}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 TracerReactNativeSDK=exports.TracerReactNativeSDK=function(){function TracerReactNativeSDK(){(0,_classCallCheck2["default"])(this,TracerReactNativeSDK);this.sessionId='';this.isInitialized=false;}return(0,_createClass2["default"])(TracerReactNativeSDK,[{key:"_setSessionId",value:function _setSessionId(sessionId){var sessionType=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_sessionRecorderCommon.SessionType.PLAIN;var _a;this.sessionId=sessionId;(_a=this.idGenerator)===null||_a===void 0?void 0:_a.setSessionId(sessionId,sessionType);}},{key:"init",value:function init(options){this.config=options;var _this$config=this.config,application=_this$config.application,version=_this$config.version,environment=_this$config.environment;this.idGenerator=new _sessionRecorderCommon.SessionRecorderIdGenerator();this.exporter=new _sessionRecorderCommon.SessionRecorderBrowserTraceExporter({apiKey:options.apiKey,url:(0,_helpers.getExporterEndpoint)(options.exporterEndpoint)
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.TracerReactNativeSDK=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _resources=require("@opentelemetry/resources");var _core=require("@opentelemetry/core");var _sdkTraceBase=require("@opentelemetry/sdk-trace-base");var SemanticAttributes=_interopRequireWildcard(require("@opentelemetry/semantic-conventions"));var _instrumentation=require("@opentelemetry/instrumentation");var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _instrumentations=require("./instrumentations");var _helpers=require("./helpers");var _platform=require("../utils/platform");var _sdkTraceWeb=require("@opentelemetry/sdk-trace-web");function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,"default":e};if(null===e||"object"!=_typeof(e)&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t2 in e)"default"!==_t2&&{}.hasOwnProperty.call(e,_t2)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t2))&&(i.get||i.set)?o(f,_t2,i):f[_t2]=e[_t2]);return f;})(e,t);}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 TracerReactNativeSDK=exports.TracerReactNativeSDK=function(){function TracerReactNativeSDK(){(0,_classCallCheck2["default"])(this,TracerReactNativeSDK);this.sessionId='';this.isInitialized=false;}return(0,_createClass2["default"])(TracerReactNativeSDK,[{key:"_setSessionId",value:function _setSessionId(sessionId){var sessionType=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_sessionRecorderCommon.SessionType.PLAIN;var _a;this.sessionId=sessionId;(_a=this.idGenerator)===null||_a===void 0?void 0:_a.setSessionId(sessionId,sessionType);}},{key:"init",value:function init(options){this.config=options;var _this$config=this.config,application=_this$config.application,version=_this$config.version,environment=_this$config.environment;this.idGenerator=new _sessionRecorderCommon.SessionRecorderIdGenerator();this.exporter=new _sessionRecorderCommon.SessionRecorderBrowserTraceExporter({apiKey:options.apiKey,url:(0,_helpers.getExporterEndpoint)(options.exporterEndpoint)});this.tracerProvider=new _sdkTraceWeb.WebTracerProvider({resource:(0,_resources.resourceFromAttributes)(_objectSpread((0,_defineProperty2["default"])((0,_defineProperty2["default"])((0,_defineProperty2["default"])({},SemanticAttributes.SEMRESATTRS_SERVICE_NAME,application),SemanticAttributes.SEMRESATTRS_SERVICE_VERSION,version),SemanticAttributes.SEMRESATTRS_DEPLOYMENT_ENVIRONMENT,environment),(0,_platform.getPlatformAttributes)())),idGenerator:this.idGenerator,sampler:new _sessionRecorderCommon.SessionRecorderTraceIdRatioBasedSampler(this.config.sampleTraceRatio||0.15),spanProcessors:[this._getSpanSessionIdProcessor(),new _sdkTraceBase.BatchSpanProcessor(this.exporter)]});this.tracerProvider.register({propagator:new _core.W3CTraceContextPropagator()});(0,_instrumentation.registerInstrumentations)({tracerProvider:this.tracerProvider,instrumentations:(0,_instrumentations.getInstrumentations)(this.config)});this.isInitialized=true;}},{key:"_getSpanSessionIdProcessor",value:function _getSpanSessionIdProcessor(){var _this=this;return{onStart:function onStart(span){if(_this.sessionId){span.setAttribute(_sessionRecorderCommon.ATTR_MULTIPLAYER_SESSION_ID,_this.sessionId);}span.setAttribute('platform','react-native');span.setAttribute('timestamp',Date.now());},onEnd:function onEnd(){},shutdown:function shutdown(){return Promise.resolve();},forceFlush:function forceFlush(){return Promise.resolve();}};}},{key:"start",value:function start(sessionId,sessionType){if(!this.tracerProvider){throw new Error('Configuration not initialized. Call init() before start().');}this._setSessionId(sessionId,sessionType);}},{key:"stop",value:function stop(){if(!this.tracerProvider){throw new Error('Configuration not initialized. Call init() before start().');}this._setSessionId('');}},{key:"setApiKey",value:function setApiKey(apiKey){var _a,_b;if(!this.exporter){throw new Error('Configuration not initialized. Call init() before setApiKey().');}(_b=(_a=this.exporter).setApiKey)===null||_b===void 0?void 0:_b.call(_a,apiKey);}},{key:"setSessionId",value:function setSessionId(sessionId,sessionType){this._setSessionId(sessionId,sessionType);}},{key:"shutdown",value:function shutdown(){this.isInitialized=false;return Promise.resolve();}}]);}();
|
package/dist/otel/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,EACL,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,0CAA0C,CAAA;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAKhE,MAAM,OAAO,oBAAoB;IAS/B;QALQ,cAAS,GAAG,EAAE,CAAA;QAGd,kBAAa,GAAG,KAAK,CAAA;IAEb,CAAC;IAET,aAAa,CACnB,SAAiB,EACjB,cAA2B,WAAW,CAAC,KAAK;;QAE5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,MAAA,IAAI,CAAC,WAAW,0CAAE,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACxD,CAAC;IAED,IAAI,CAAC,OAAgC;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;QAErB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEzD,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,EAAE,CAAA;QAEnD,IAAI,CAAC,QAAQ,GAAG,IAAI,mCAAmC,CAAC;YACtD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":"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"}
|
package/dist/patch/xhr.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.setShouldRecordHttpData=exports.setMaxCapturingHttpPayloadSize=void 0;var _typeUtils=require("../utils/type-utils");var _requestUtils=require("../utils/request-utils");var _config=require("../config");var recordRequestHeaders=true;var recordResponseHeaders=true;var shouldRecordBody=true;var maxCapturingHttpPayloadSize=_config.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE;var setMaxCapturingHttpPayloadSize=exports.setMaxCapturingHttpPayloadSize=function setMaxCapturingHttpPayloadSize(_maxCapturingHttpPayloadSize){maxCapturingHttpPayloadSize=_maxCapturingHttpPayloadSize;};var setShouldRecordHttpData=exports.setShouldRecordHttpData=function setShouldRecordHttpData(shouldRecordBody,shouldRecordHeaders){recordRequestHeaders=shouldRecordHeaders;recordResponseHeaders=shouldRecordHeaders;shouldRecordBody=shouldRecordBody;};function _tryReadXHRBody(_ref){var body=_ref.body,url=_ref.url;if((0,_typeUtils.isNullish)(body)){return null;}if((0,_typeUtils.isString)(body)){return body;}if((0,_typeUtils.isFormData)(body)){return(0,_requestUtils.formDataToQuery)(body);}if((0,_typeUtils.isObject)(body)){try{return JSON.stringify(body);}catch(_a){return'[XHR] Failed to stringify response object';}}return"[XHR] Cannot read body of type ".concat(Object.prototype.toString.call(body));}(function(xhr){var originalOpen=XMLHttpRequest.prototype.open;xhr.open=function(method,url){var async=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var username=arguments.length>3?arguments[3]:undefined;var password=arguments.length>4?arguments[4]:undefined;var xhr=this;var networkRequest={};var requestHeaders={};var originalSetRequestHeader=xhr.setRequestHeader.bind(xhr);xhr.setRequestHeader=function(header,value){requestHeaders[header]=value;return originalSetRequestHeader(header,value);};if(recordRequestHeaders){networkRequest.requestHeaders=requestHeaders;}var originalSend=xhr.send.bind(xhr);xhr.send=function(body){if(shouldRecordBody){var requestBody=_tryReadXHRBody({body:body,url:url});if((requestBody===null||requestBody===void 0?void 0:requestBody.length)&&requestBody.length<=maxCapturingHttpPayloadSize){networkRequest.requestBody=requestBody;}}return originalSend(body);};xhr.addEventListener('readystatechange',function(){if(xhr.readyState!==xhr.DONE){return;}var responseHeaders={};var rawHeaders=xhr.getAllResponseHeaders();var headers=rawHeaders.trim().split(/[\r\n]+/);headers.forEach(function(line){var parts=line.split(': ');var header=parts.shift();var value=parts.join(': ');if(header){responseHeaders[header]=value;}});if(recordResponseHeaders){networkRequest.responseHeaders=responseHeaders;}if(shouldRecordBody){var responseBody=_tryReadXHRBody({body:xhr.response,url:url});if((responseBody===null||responseBody===void 0?void 0:responseBody.length)&&responseBody.length<=maxCapturingHttpPayloadSize){networkRequest.responseBody=responseBody;}}});xhr.networkRequest=networkRequest;originalOpen.call(xhr,method,url,async,username,password);};})(XMLHttpRequest.prototype);
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.setShouldRecordHttpData=exports.setMaxCapturingHttpPayloadSize=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _typeUtils=require("../utils/type-utils");var _requestUtils=require("../utils/request-utils");var _config=require("../config");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 recordRequestHeaders=true;var recordResponseHeaders=true;var shouldRecordBody=true;var maxCapturingHttpPayloadSize=_config.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE;var setMaxCapturingHttpPayloadSize=exports.setMaxCapturingHttpPayloadSize=function setMaxCapturingHttpPayloadSize(_maxCapturingHttpPayloadSize){maxCapturingHttpPayloadSize=_maxCapturingHttpPayloadSize;};var setShouldRecordHttpData=exports.setShouldRecordHttpData=function setShouldRecordHttpData(shouldRecordBody,shouldRecordHeaders){recordRequestHeaders=shouldRecordHeaders;recordResponseHeaders=shouldRecordHeaders;shouldRecordBody=shouldRecordBody;};function _tryReadXHRBody(_ref){var body=_ref.body,url=_ref.url;if((0,_typeUtils.isNullish)(body)){return null;}if((0,_typeUtils.isString)(body)){return body;}if((0,_typeUtils.isFormData)(body)){return(0,_requestUtils.formDataToQuery)(body);}if((0,_typeUtils.isObject)(body)){try{return JSON.stringify(_objectSpread({},body));}catch(_a){return'[XHR] Failed to stringify response object';}}return"[XHR] Cannot read body of type ".concat(Object.prototype.toString.call(body));}(function(xhr){var originalOpen=XMLHttpRequest.prototype.open;xhr.open=function(method,url){var async=arguments.length>2&&arguments[2]!==undefined?arguments[2]:true;var username=arguments.length>3?arguments[3]:undefined;var password=arguments.length>4?arguments[4]:undefined;var xhr=this;var networkRequest={};var requestHeaders={};var originalSetRequestHeader=xhr.setRequestHeader.bind(xhr);xhr.setRequestHeader=function(header,value){requestHeaders[header]=value;return originalSetRequestHeader(header,value);};if(recordRequestHeaders){networkRequest.requestHeaders=requestHeaders;}var originalSend=xhr.send.bind(xhr);xhr.send=function(body){if(shouldRecordBody){var requestBody=_tryReadXHRBody({body:body,url:url});if((requestBody===null||requestBody===void 0?void 0:requestBody.length)&&requestBody.length<=maxCapturingHttpPayloadSize){networkRequest.requestBody=requestBody;}}return originalSend(body);};xhr.addEventListener('readystatechange',function(){if(xhr.readyState!==xhr.DONE){return;}var responseHeaders={};var rawHeaders=xhr.getAllResponseHeaders()||'';var headers=rawHeaders.trim().split(/[\r\n]+/).filter(Boolean);headers.forEach(function(line){var parts=line.split(': ');var header=parts.shift();var value=parts.join(': ');if(header){responseHeaders[header]=value;}});if(recordResponseHeaders){networkRequest.responseHeaders=responseHeaders;}if(shouldRecordBody){var responseBody=_tryReadXHRBody({body:xhr.response,url:url});if((responseBody===null||responseBody===void 0?void 0:responseBody.length)&&responseBody.length<=maxCapturingHttpPayloadSize){networkRequest.responseBody=responseBody;}}});xhr.networkRequest=networkRequest;originalOpen.call(xhr,method,url,async,username,password);};})(XMLHttpRequest.prototype);
|
package/dist/patch/xhr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/patch/xhr.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,uCAAuC,EAAE,MAAM,WAAW,CAAA;AAEnE,IAAI,oBAAoB,GAAG,IAAI,CAAA;AAC/B,IAAI,qBAAqB,GAAG,IAAI,CAAA;AAChC,
|
|
1
|
+
{"version":3,"file":"xhr.js","sourceRoot":"","sources":["../../src/patch/xhr.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,uCAAuC,EAAE,MAAM,WAAW,CAAA;AAEnE,IAAI,oBAAoB,GAAG,IAAI,CAAA;AAC/B,IAAI,qBAAqB,GAAG,IAAI,CAAA;AAChC,IAAI,gBAAgB,GAAG,IAAI,CAAA;AAC3B,IAAI,2BAA2B,GAAG,uCAAuC,CAAA;AAEzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,4BAAoC,EAAE,EAAE;IACrF,2BAA2B,GAAG,4BAA4B,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,gBAAyB,EAAE,mBAA4B,EAAE,EAAE;IACjG,oBAAoB,GAAG,mBAAmB,CAAA;IAC1C,qBAAqB,GAAG,mBAAmB,CAAA;IAC3C,gBAAgB,GAAG,gBAAgB,CAAA;AACrC,CAAC,CAAA;AAED,SAAS,eAAe,CAAC,EACvB,IAAI,EACJ,GAAG,GAIJ;IAEC,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;QACpC,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,2CAA2C,CAAA;QACpD,CAAC;IACH,CAAC;IAED,OAAO,kCAAkC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACjF,CAAC;AAED,CAAC,UAAU,GAAG;IACZ,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAA;IAElD,GAAG,CAAC,IAAI,GAAG,UACT,MAAc,EACd,GAAiB,EACjB,KAAK,GAAG,IAAI,EACZ,QAAwB,EACxB,QAAwB;QAExB,MAAM,GAAG,GAAG,IAAsB,CAAA;QAClC,MAAM,cAAc,GAKhB,EAAE,CAAA;QAGN,aAAa;QACb,MAAM,cAAc,GAA2B,EAAE,CAAA;QACjD,MAAM,wBAAwB,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/D,GAAG,CAAC,gBAAgB,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE;YACvD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;YAC9B,OAAO,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAChD,CAAC,CAAA;QACD,IAAI,oBAAoB,EAAE,CAAC;YACzB,cAAc,CAAC,cAAc,GAAG,cAAc,CAAA;QAChD,CAAC;QAED,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;gBAElD,IACE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM;uBAChB,WAAW,CAAC,MAAM,IAAI,2BAA2B,EACpD,CAAC;oBACD,cAAc,CAAC,WAAW,GAAG,WAAW,CAAA;gBAC1C,CAAC;YACH,CAAC;YACD,OAAO,YAAY,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC,CAAA;QAED,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC5C,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;gBAChC,OAAM;YACR,CAAC;YAED,aAAa;YACb,MAAM,eAAe,GAA2B,EAAE,CAAA;YAClD,MAAM,UAAU,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;YACpD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAElE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;gBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC9B,IAAI,MAAM,EAAE,CAAC;oBACX,eAAe,CAAC,MAAM,CAAC,GAAG,KAAK,CAAA;gBACjC,CAAC;YACH,CAAC,CAAC,CAAA;YACF,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,cAAc,CAAC,eAAe,GAAG,eAAe,CAAA;YAClD,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;gBAEjE,IACE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM;uBACjB,YAAY,CAAC,MAAM,IAAI,2BAA2B,EACrD,CAAC;oBACD,cAAc,CAAC,YAAY,GAAG,YAAY,CAAA;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAGF,aAAa;QACb,GAAG,CAAC,cAAc,GAAG,cAAc,CAAA;QAEnC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC1E,CAAC,CAAA;AACH,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import { ISession } from '../types';
|
|
2
2
|
export declare class EventExporter {
|
|
3
|
-
private options;
|
|
4
3
|
private socket;
|
|
5
4
|
private queue;
|
|
6
5
|
private isConnecting;
|
|
7
6
|
private isConnected;
|
|
8
7
|
private attempts;
|
|
9
8
|
private sessionId;
|
|
9
|
+
private socketUrl;
|
|
10
|
+
private apiKey;
|
|
10
11
|
constructor(options: {
|
|
11
12
|
socketUrl: string;
|
|
12
13
|
apiKey: string;
|
|
13
14
|
});
|
|
14
15
|
private init;
|
|
16
|
+
setApiKey(apiKey: string): void;
|
|
17
|
+
setSocketUrl(socketUrl: string): void;
|
|
15
18
|
private checkReconnectionAttempts;
|
|
16
19
|
private flushQueue;
|
|
17
20
|
private unsubscribeFromSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.EventExporter=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _socket=_interopRequireDefault(require("socket.io-client"));var _utils=require("../utils");var _config=require("../config");var MAX_RECONNECTION_ATTEMPTS=2;var EventExporter=exports.EventExporter=function(){function EventExporter(options){(0,_classCallCheck2["default"])(this,EventExporter);this.
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.EventExporter=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _socket=_interopRequireDefault(require("socket.io-client"));var _utils=require("../utils");var _config=require("../config");var MAX_RECONNECTION_ATTEMPTS=2;var EventExporter=exports.EventExporter=function(){function EventExporter(options){(0,_classCallCheck2["default"])(this,EventExporter);this.socket=null;this.queue=[];this.isConnecting=false;this.isConnected=false;this.attempts=0;this.sessionId=null;this.socketUrl=options.socketUrl;this.apiKey=options.apiKey;}return(0,_createClass2["default"])(EventExporter,[{key:"init",value:function init(){var _this=this;if(this.isConnecting||this.isConnected)return;this.attempts++;this.isConnecting=true;this.socket=(0,_socket["default"])(this.socketUrl,{path:'/v0/radar/ws',auth:{'x-api-key':this.apiKey},reconnectionAttempts:2,transports:['websocket']});this.socket.on('ready',function(){_this.isConnecting=false;_this.isConnected=true;_utils.logger.info('EventExporter','Connected to server');_this.flushQueue();});this.socket.on('disconnect',function(err){_this.isConnecting=false;_this.isConnected=false;_utils.logger.info('EventExporter','Disconnected from server');});this.socket.on('connect_error',function(err){_this.isConnecting=false;_this.isConnected=false;_this.checkReconnectionAttempts();_utils.logger.error('EventExporter','Error connecting to server',err);});this.socket.on(_config.SESSION_STOPPED_EVENT,function(data){_this.unsubscribeFromSession();});this.socket.on(_config.SESSION_AUTO_CREATED,function(data){});}},{key:"setApiKey",value:function setApiKey(apiKey){this.apiKey=apiKey;}},{key:"setSocketUrl",value:function setSocketUrl(socketUrl){this.socketUrl=socketUrl;}},{key:"checkReconnectionAttempts",value:function checkReconnectionAttempts(){if(this.attempts>=MAX_RECONNECTION_ATTEMPTS){this.flushQueue();}}},{key:"flushQueue",value:function flushQueue(){var _a,_b;while(this.queue.length>0&&((_a=this.socket)===null||_a===void 0?void 0:_a.connected)){var event=this.queue.shift();if(!event)continue;if((_b=this.socket)===null||_b===void 0?void 0:_b.connected){this.socket.emit(event.name,event.data);}}}},{key:"unsubscribeFromSession",value:function unsubscribeFromSession(){var _a;var payload={debugSessionId:this.sessionId};if((_a=this.socket)===null||_a===void 0?void 0:_a.connected){this.socket.emit(_config.SESSION_UNSUBSCRIBE_EVENT,payload);}}},{key:"send",value:function send(event){var _a;if((_a=this.socket)===null||_a===void 0?void 0:_a.connected){this.socket.emit(_config.SESSION_ADD_EVENT,event);}else{this.queue.push({data:event,name:_config.SESSION_ADD_EVENT});this.init();}}},{key:"subscribeToSession",value:function subscribeToSession(session){var _a;this.sessionId=session.shortId||session._id;var payload={projectId:session.project,workspaceId:session.workspace,debugSessionId:this.sessionId,sessionType:session.creationType};if((_a=this.socket)===null||_a===void 0?void 0:_a.connected){this.socket.emit(_config.SESSION_SUBSCRIBE_EVENT,payload);}else{this.queue.push({data:payload,name:_config.SESSION_SUBSCRIBE_EVENT});this.init();}}},{key:"close",value:function close(){var _this2=this;var _a;if((_a=this.socket)===null||_a===void 0?void 0:_a.connected){setTimeout(function(){var _a;_this2.unsubscribeFromSession();_this2.attempts=0;_this2.isConnected=false;_this2.isConnecting=false;(_a=_this2.socket)===null||_a===void 0?void 0:_a.disconnect();_this2.socket=null;},500);}}}]);}();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventExporter.js","sourceRoot":"","sources":["../../src/recorder/eventExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,kBAAkB,CAAA;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,WAAW,CAAA;AAElB,MAAM,yBAAyB,GAAG,CAAC,CAAA;AAEnC,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"eventExporter.js","sourceRoot":"","sources":["../../src/recorder/eventExporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,27 +3,34 @@ export declare class GestureRecorder implements EventRecorder {
|
|
|
3
3
|
private config?;
|
|
4
4
|
private isRecording;
|
|
5
5
|
private events;
|
|
6
|
-
private gestureHandlers;
|
|
7
6
|
private screenDimensions;
|
|
8
7
|
private lastGestureTime;
|
|
9
8
|
private gestureThrottleMs;
|
|
10
9
|
private lastTouchTime;
|
|
11
10
|
private touchThrottleMs;
|
|
12
|
-
private isRecordingGesture;
|
|
13
|
-
private gestureCallStack;
|
|
14
|
-
private maxGestureCallDepth;
|
|
15
11
|
private eventRecorder?;
|
|
16
12
|
private imageNodeId;
|
|
17
13
|
private screenRecorder?;
|
|
14
|
+
private gestureEventListener?;
|
|
15
|
+
private currentPanSpan?;
|
|
16
|
+
private panMoveCount;
|
|
18
17
|
init(config: RecorderConfig, eventRecorder?: EventRecorder, screenRecorder?: any): void;
|
|
19
18
|
start(): void;
|
|
20
19
|
stop(): void;
|
|
21
20
|
private _getScreenDimensions;
|
|
22
|
-
private
|
|
23
|
-
private
|
|
21
|
+
private _setupGestureEventListener;
|
|
22
|
+
private _removeGestureEventListener;
|
|
23
|
+
private _handleNativeGesture;
|
|
24
|
+
private _handleTapGesture;
|
|
25
|
+
private _handlePanStartGesture;
|
|
26
|
+
private _handlePanMoveGesture;
|
|
27
|
+
private _handlePanEndGesture;
|
|
28
|
+
private _handleLongPressGesture;
|
|
29
|
+
private _handlePinchGesture;
|
|
30
|
+
private _handleSwipeGesture;
|
|
24
31
|
private _sendEvent;
|
|
25
32
|
private _recordOpenTelemetrySpan;
|
|
26
|
-
recordTap(x: number, y: number, target?: string, pressure?: number): void;
|
|
33
|
+
recordTap(x: number, y: number, target?: string, pressure?: number, timestamp?: number): void;
|
|
27
34
|
recordSwipe(direction: string, target?: string, velocity?: number, distance?: number): void;
|
|
28
35
|
recordPinch(scale: number, target?: string, velocity?: number): void;
|
|
29
36
|
recordPan(deltaX: number, deltaY: number, target?: string, velocity?: number): void;
|
|
@@ -34,66 +41,25 @@ export declare class GestureRecorder implements EventRecorder {
|
|
|
34
41
|
recordMultiTouch(touchCount: number, target?: string): void;
|
|
35
42
|
recordScroll(direction: string, distance: number, velocity: number, target?: string): void;
|
|
36
43
|
recordZoom(scale: number, target?: string, velocity?: number): void;
|
|
44
|
+
recordTouchStart(x: number, y: number, target?: string, pressure?: number): void;
|
|
45
|
+
recordTouchMove(x: number, y: number, target?: string, pressure?: number): void;
|
|
46
|
+
recordTouchEnd(x: number, y: number, target?: string, pressure?: number): void;
|
|
47
|
+
recordTouchCancel(x: number, y: number, target?: string): void;
|
|
48
|
+
setImageNodeId(nodeId: number): void;
|
|
49
|
+
private _recordEvent;
|
|
50
|
+
private _createMouseInteractionEvent;
|
|
51
|
+
private _createMouseMoveEvent;
|
|
52
|
+
recordEvent(event: any): void;
|
|
37
53
|
getEvents(): GestureEvent[];
|
|
38
54
|
clearEvents(): void;
|
|
39
55
|
getEventStats(): Record<string, number>;
|
|
40
56
|
setGestureThrottle(throttleMs: number): void;
|
|
41
57
|
isRecordingEnabled(): boolean;
|
|
42
58
|
/**
|
|
43
|
-
*
|
|
44
|
-
* @param
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Create and emit a rrweb MouseInteraction event for touch interactions
|
|
49
|
-
* @param x - X coordinate
|
|
50
|
-
* @param y - Y coordinate
|
|
51
|
-
* @param interactionType - Type of interaction (TouchStart, TouchMove, TouchEnd, etc.)
|
|
52
|
-
* @param target - Target element identifier
|
|
53
|
-
*/
|
|
54
|
-
private _createMouseInteractionEvent;
|
|
55
|
-
/**
|
|
56
|
-
* Create mouse move event with positions array (like web rrweb)
|
|
57
|
-
* @param x - X coordinate
|
|
58
|
-
* @param y - Y coordinate
|
|
59
|
-
* @param target - Target element identifier
|
|
59
|
+
* Truncate text to prevent large span attributes
|
|
60
|
+
* @param text - Text to truncate
|
|
61
|
+
* @param maxLength - Maximum length (default: 100)
|
|
62
|
+
* @returns Truncated text with ellipsis if needed
|
|
60
63
|
*/
|
|
61
|
-
private
|
|
62
|
-
/**
|
|
63
|
-
* Record touch start event as rrweb MouseInteraction
|
|
64
|
-
* @param x - X coordinate
|
|
65
|
-
* @param y - Y coordinate
|
|
66
|
-
* @param target - Target element identifier
|
|
67
|
-
* @param pressure - Touch pressure (optional)
|
|
68
|
-
*/
|
|
69
|
-
recordTouchStart(x: number, y: number, target?: string, pressure?: number): void;
|
|
70
|
-
/**
|
|
71
|
-
* Record touch move event as rrweb MouseMove with positions array
|
|
72
|
-
* @param x - X coordinate
|
|
73
|
-
* @param y - Y coordinate
|
|
74
|
-
* @param target - Target element identifier
|
|
75
|
-
* @param pressure - Touch pressure (optional)
|
|
76
|
-
*/
|
|
77
|
-
recordTouchMove(x: number, y: number, target?: string, pressure?: number): void;
|
|
78
|
-
/**
|
|
79
|
-
* Record touch end event as rrweb MouseInteraction
|
|
80
|
-
* @param x - X coordinate
|
|
81
|
-
* @param y - Y coordinate
|
|
82
|
-
* @param target - Target element identifier
|
|
83
|
-
* @param pressure - Touch pressure (optional)
|
|
84
|
-
*/
|
|
85
|
-
recordTouchEnd(x: number, y: number, target?: string, pressure?: number): void;
|
|
86
|
-
/**
|
|
87
|
-
* Record touch cancel event as rrweb MouseInteraction
|
|
88
|
-
* @param x - X coordinate
|
|
89
|
-
* @param y - Y coordinate
|
|
90
|
-
* @param target - Target element identifier
|
|
91
|
-
*/
|
|
92
|
-
recordTouchCancel(x: number, y: number, target?: string): void;
|
|
93
|
-
/**
|
|
94
|
-
* Set the image node ID for touch interactions
|
|
95
|
-
* This should be called when a new screen snapshot is created
|
|
96
|
-
* @param nodeId - The ID of the image node in the current snapshot
|
|
97
|
-
*/
|
|
98
|
-
setImageNodeId(nodeId: number): void;
|
|
64
|
+
private _truncateText;
|
|
99
65
|
}
|