@multiplayer-app/session-recorder-react-native 0.0.1-beta.15 → 0.0.1-beta.17
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 +132 -5
- package/copy-react-native-dist.sh +31 -12
- 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/ScreenRecorderView/ScreenRecorderView.js +1 -1
- package/dist/components/ScreenRecorderView/ScreenRecorderView.js.map +1 -1
- package/dist/components/SessionRecorderWidget/FinalPopover.js +1 -1
- package/dist/components/SessionRecorderWidget/FinalPopover.js.map +1 -1
- package/dist/components/SessionRecorderWidget/InitialPopover.d.ts +2 -0
- package/dist/components/SessionRecorderWidget/InitialPopover.js +1 -1
- package/dist/components/SessionRecorderWidget/InitialPopover.js.map +1 -1
- package/dist/components/SessionRecorderWidget/ModalContainer.js +1 -1
- package/dist/components/SessionRecorderWidget/ModalContainer.js.map +1 -1
- package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js +1 -1
- package/dist/components/SessionRecorderWidget/SessionRecorderWidget.js.map +1 -1
- package/dist/components/SessionRecorderWidget/styles.d.ts +27 -7
- package/dist/components/SessionRecorderWidget/styles.js +1 -1
- package/dist/components/SessionRecorderWidget/styles.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/session-recorder.js +1 -1
- package/dist/config/session-recorder.js.map +1 -1
- package/dist/config/widget.d.ts +8 -0
- package/dist/config/widget.js +1 -0
- package/dist/config/widget.js.map +1 -0
- package/dist/context/SessionRecorderContext.d.ts +11 -4
- 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 -0
- 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/index.d.ts +2 -0
- package/dist/native/index.js +1 -0
- package/dist/native/index.js.map +1 -0
- package/dist/recorder/gestureRecorder.d.ts +27 -61
- package/dist/recorder/gestureRecorder.js +1 -1
- package/dist/recorder/gestureRecorder.js.map +1 -1
- package/dist/recorder/navigationTracker.d.ts +2 -18
- package/dist/recorder/navigationTracker.js +1 -1
- package/dist/recorder/navigationTracker.js.map +1 -1
- package/dist/services/api.service.d.ts +4 -0
- package/dist/services/api.service.js.map +1 -1
- package/dist/session-recorder.d.ts +8 -28
- package/dist/session-recorder.js +1 -1
- package/dist/session-recorder.js.map +1 -1
- package/dist/types/session-recorder.d.ts +22 -14
- 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.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/platform.d.ts +8 -0
- package/dist/utils/platform.js +1 -1
- package/dist/utils/platform.js.map +1 -1
- package/dist/utils/rrweb-events.js +1 -1
- package/dist/utils/rrweb-events.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/ios/GestureRecorderNative.m +21 -0
- package/ios/GestureRecorderNative.swift +316 -0
- package/package.json +12 -22
- package/react-native.config.js +7 -10
|
@@ -37,7 +37,17 @@ export declare const sharedStyles: {
|
|
|
37
37
|
paddingHorizontal: number;
|
|
38
38
|
paddingVertical: number;
|
|
39
39
|
borderRadius: number;
|
|
40
|
+
borderWidth: number;
|
|
41
|
+
borderColor: string;
|
|
40
42
|
backgroundColor: string;
|
|
43
|
+
shadowColor: string;
|
|
44
|
+
shadowOffset: {
|
|
45
|
+
width: number;
|
|
46
|
+
height: number;
|
|
47
|
+
};
|
|
48
|
+
shadowOpacity: number;
|
|
49
|
+
shadowRadius: number;
|
|
50
|
+
elevation: number;
|
|
41
51
|
};
|
|
42
52
|
cancelButtonText: {
|
|
43
53
|
color: string;
|
|
@@ -101,21 +111,31 @@ export declare const sharedStyles: {
|
|
|
101
111
|
color: string;
|
|
102
112
|
};
|
|
103
113
|
continuousOverlay: {
|
|
104
|
-
marginTop: number;
|
|
105
|
-
padding: number;
|
|
106
|
-
backgroundColor: string;
|
|
107
114
|
borderRadius: number;
|
|
108
115
|
borderWidth: number;
|
|
109
116
|
borderColor: string;
|
|
117
|
+
backgroundColor: string;
|
|
118
|
+
padding: number;
|
|
119
|
+
shadowColor: string;
|
|
120
|
+
shadowOffset: {
|
|
121
|
+
width: number;
|
|
122
|
+
height: number;
|
|
123
|
+
};
|
|
124
|
+
shadowOpacity: number;
|
|
125
|
+
shadowRadius: number;
|
|
126
|
+
elevation: number;
|
|
127
|
+
flexDirection: "column";
|
|
128
|
+
gap: number;
|
|
110
129
|
};
|
|
111
|
-
|
|
112
|
-
|
|
130
|
+
continuousOverlayHeader: {
|
|
131
|
+
flexDirection: "row";
|
|
132
|
+
alignItems: "center";
|
|
133
|
+
gap: number;
|
|
113
134
|
};
|
|
114
135
|
continuousOverlayTitle: {
|
|
115
136
|
fontSize: number;
|
|
116
|
-
fontWeight: "
|
|
137
|
+
fontWeight: "500";
|
|
117
138
|
color: string;
|
|
118
|
-
marginBottom: number;
|
|
119
139
|
};
|
|
120
140
|
continuousOverlayDescription: {
|
|
121
141
|
fontSize: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.sharedStyles=void 0;var _reactNative=require("react-native");var sharedStyles=exports.sharedStyles=_reactNative.StyleSheet.create({popoverContent:{flex:1,paddingHorizontal:0},popoverHeader:{flexDirection:'column',paddingBottom:8,paddingHorizontal:16,borderTopLeftRadius:20,borderTopRightRadius:20,backgroundColor:'#
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.sharedStyles=void 0;var _reactNative=require("react-native");var sharedStyles=exports.sharedStyles=_reactNative.StyleSheet.create({popoverContent:{flex:1,paddingHorizontal:0},popoverHeader:{flexDirection:'column',paddingBottom:8,paddingHorizontal:16,borderTopLeftRadius:20,borderTopRightRadius:20,backgroundColor:'#f4f9ff',shadowColor:'#f4f9ff',shadowOffset:{width:0,height:5},shadowOpacity:1,shadowRadius:5,elevation:10},modalHandle:{marginTop:8,marginBottom:16,width:40,height:4,backgroundColor:'#D1D5DB',borderRadius:2,alignSelf:'center'},popoverHeaderContent:{flexDirection:'row',justifyContent:'space-between',alignItems:'flex-start'},cancelButton:{paddingHorizontal:12,paddingVertical:6,borderRadius:6,borderWidth:1,borderColor:'#e1e8f1',backgroundColor:'#fff',shadowColor:'#000',shadowOffset:{width:0,height:2},shadowOpacity:0.06,shadowRadius:3,elevation:3},cancelButtonText:{color:'#374151',fontSize:14,fontWeight:'500'},popoverBody:{flex:1,padding:16,paddingTop:24},title:{fontSize:18,fontWeight:'600',color:'#2d3748',marginBottom:12},description:{fontSize:14,color:'#718096',marginBottom:16},popoverFooter:{marginTop:'auto',paddingTop:16},actionButton:{paddingVertical:16,paddingHorizontal:24,borderRadius:12,alignItems:'center'},actionButtonText:{color:'white',fontSize:16,fontWeight:'500'},continuousRecordingSection:{flexDirection:'row',justifyContent:'space-between',alignItems:'center',marginBottom:20,paddingVertical:12,paddingHorizontal:16,borderWidth:1,borderColor:'#e1e8f1',backgroundColor:'#fff',borderRadius:12,shadowColor:'#000',shadowOffset:{width:0,height:2},shadowOpacity:0.06,shadowRadius:3,elevation:3},continuousRecordingLabel:{fontSize:16,fontWeight:'500',color:'#374151'},continuousOverlay:{borderRadius:12,borderWidth:1,borderColor:'#e1e8f1',backgroundColor:'#fff',padding:12,shadowColor:'#000',shadowOffset:{width:0,height:2},shadowOpacity:0.06,shadowRadius:3,elevation:3,flexDirection:'column',gap:8},continuousOverlayHeader:{flexDirection:'row',alignItems:'center',gap:8},continuousOverlayTitle:{fontSize:14,fontWeight:'500',color:'#2d3748'},continuousOverlayDescription:{fontSize:14,color:'#718096',lineHeight:20},commentInput:{borderWidth:1,borderColor:'#D1D5DB',borderRadius:8,padding:12,fontSize:16,color:'#374151',backgroundColor:'#F9FAFB',marginBottom:24,minHeight:80},startButton:{backgroundColor:'#473cfb'},stopButton:{backgroundColor:'#473cfb'},saveButton:{backgroundColor:'#473cfb'}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/SessionRecorderWidget/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;IAC5C,iBAAiB;IACjB,cAAc,EAAE;QACd,IAAI,EAAE,CAAC;QACP,iBAAiB,EAAE,CAAC;KACrB;IACD,aAAa,EAAE;QACb,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,EAAE;QACrB,mBAAmB,EAAE,EAAE;QACvB,oBAAoB,EAAE,EAAE;QACxB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/SessionRecorderWidget/styles.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _ScreenRecorderView=require("./ScreenRecorderView");Object.keys(_ScreenRecorderView).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_ScreenRecorderView[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _ScreenRecorderView[key];}});});var _SessionRecorderWidget=require("./SessionRecorderWidget");Object.keys(_SessionRecorderWidget).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_SessionRecorderWidget[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _SessionRecorderWidget[key];}});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.DEFAULT_WIDGET_TEXT_CONFIG=exports.DEFAULT_MASKING_CONFIG=exports.BASE_CONFIG=void 0;var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _types=require("../types");var _constants=require("./constants");var mask=_sessionRecorderCommon.SessionRecorderSdk.mask,sensitiveFields=_sessionRecorderCommon.SessionRecorderSdk.sensitiveFields,sensitiveHeaders=_sessionRecorderCommon.SessionRecorderSdk.sensitiveHeaders;var DEFAULT_MASKING_CONFIG=exports.DEFAULT_MASKING_CONFIG={isContentMaskingEnabled:true,maskBody:mask(sensitiveFields),maskHeaders:mask(sensitiveHeaders),maskBodyFieldsList:sensitiveFields,maskHeadersList:sensitiveHeaders,headersToInclude:[],headersToExclude:[],maskTextInputs:true,maskImages:false,maskLabels:false,maskButtons:false,maskWebViews:false,maskSandboxedViews:false};var DEFAULT_WIDGET_TEXT_CONFIG=exports.DEFAULT_WIDGET_TEXT_CONFIG={initialTitleWithContinuous:'Encountered an issue?',initialTitleWithoutContinuous:'Encountered an issue?',initialDescriptionWithContinuous:'Record your session so we can see the problem and fix it faster.',initialDescriptionWithoutContinuous:'Record your session so we can see the problem and fix it faster.',continuousRecordingLabel:'Continuous recording',startRecordingButtonText:'Start recording',finalTitle:'Done recording?',finalDescription:'You can also add a quick note with extra context, expectations, or questions. Thank you!',commentPlaceholder:'Add a message...',saveButtonText:'Submit recording',cancelButtonText:'Cancel recording',continuousOverlayTitle:'Save time, skip the reproductions',continuousOverlayDescription:'We keep a rolling record of your recent activity. If something doesn’t work as expected, just save the recording and continue working. No need to worry about exceptions and errors - we automatically save recordings for those!',saveLastSnapshotButtonText:'Save recording',submitDialogTitle:'Save recording',submitDialogSubtitle:'This full-stack session recording will be saved directly to your selected Multiplayer project. All data is automatically correlated end-to-end.',submitDialogCommentLabel:'You can also add context, comments, or notes.',submitDialogCommentPlaceholder:'Add a message...',submitDialogSubmitText:'Save',submitDialogCancelText:'Cancel'};var BASE_CONFIG=exports.BASE_CONFIG={apiKey:'',version:'',application:'',environment:'',
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.DEFAULT_WIDGET_TEXT_CONFIG=exports.DEFAULT_MASKING_CONFIG=exports.BASE_CONFIG=void 0;var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _types=require("../types");var _constants=require("./constants");var mask=_sessionRecorderCommon.SessionRecorderSdk.mask,sensitiveFields=_sessionRecorderCommon.SessionRecorderSdk.sensitiveFields,sensitiveHeaders=_sessionRecorderCommon.SessionRecorderSdk.sensitiveHeaders;var DEFAULT_MASKING_CONFIG=exports.DEFAULT_MASKING_CONFIG={isContentMaskingEnabled:true,maskBody:mask(sensitiveFields),maskHeaders:mask(sensitiveHeaders),maskBodyFieldsList:sensitiveFields,maskHeadersList:sensitiveHeaders,headersToInclude:[],headersToExclude:[],maskTextInputs:true,maskImages:false,maskLabels:false,maskButtons:false,maskWebViews:false,maskSandboxedViews:false};var DEFAULT_WIDGET_TEXT_CONFIG=exports.DEFAULT_WIDGET_TEXT_CONFIG={initialTitleWithContinuous:'Encountered an issue?',initialTitleWithoutContinuous:'Encountered an issue?',initialDescriptionWithContinuous:'Record your session so we can see the problem and fix it faster.',initialDescriptionWithoutContinuous:'Record your session so we can see the problem and fix it faster.',continuousRecordingLabel:'Continuous recording',startRecordingButtonText:'Start recording',finalTitle:'Done recording?',finalDescription:'You can also add a quick note with extra context, expectations, or questions. Thank you!',commentPlaceholder:'Add a message...',saveButtonText:'Submit recording',cancelButtonText:'Cancel recording',continuousOverlayTitle:'Save time, skip the reproductions',continuousOverlayDescription:'We keep a rolling record of your recent activity. If something doesn’t work as expected, just save the recording and continue working. No need to worry about exceptions and errors - we automatically save recordings for those!',saveLastSnapshotButtonText:'Save recording',submitDialogTitle:'Save recording',submitDialogSubtitle:'This full-stack session recording will be saved directly to your selected Multiplayer project. All data is automatically correlated end-to-end.',submitDialogCommentLabel:'You can also add context, comments, or notes.',submitDialogCommentPlaceholder:'Add a message...',submitDialogSubmitText:'Save',submitDialogCancelText:'Cancel'};var BASE_CONFIG=exports.BASE_CONFIG={apiKey:'',version:'',application:'',environment:'',showContinuousRecording:true,widget:{enabled:true,button:{visible:true,placement:_types.WidgetButtonPlacement.bottomRight}},usePostMessageFallback:false,apiBaseUrl:_sessionRecorderCommon.MULTIPLAYER_BASE_API_URL,exporterEndpoint:_sessionRecorderCommon.MULTIPLAYER_OTEL_DEFAULT_TRACES_EXPORTER_HTTP_URL,schemifyDocSpanPayload:true,ignoreUrls:[],propagateTraceHeaderCorsUrls:[],sampleTraceRatio:_constants.OTEL_MP_SAMPLE_TRACE_RATIO,maxCapturingHttpPayloadSize:_constants.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE,captureBody:true,captureHeaders:true,masking:DEFAULT_MASKING_CONFIG,widgetTextOverrides:DEFAULT_WIDGET_TEXT_CONFIG,recordScreen:true,recordGestures:true,recordNavigation:true};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iDAAiD,GAClD,MAAM,0CAA0C,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,iDAAiD,GAClD,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAEmB,qBAAqB,EAC9C,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,0BAA0B,EAC1B,uCAAuC,GACxC,MAAM,aAAa,CAAA;AACpB,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,kBAAkB,CAAA;AAEtE,MAAM,CAAC,MAAM,sBAAsB,GAA4B;IAC7D,uBAAuB,EAAE,IAAI;IAC7B,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;IAC/B,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACnC,kBAAkB,EAAE,eAAe;IACnC,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,EAAE;IACpB,yBAAyB;IACzB,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,kBAAkB,EAAE,KAAK;CAC1B,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAA8B;IACnE,0BAA0B,EAAE,uBAAuB;IACnD,6BAA6B,EAAE,uBAAuB;IACtD,gCAAgC,EAAE,kEAAkE;IACpG,mCAAmC,EAAE,kEAAkE;IACvG,wBAAwB,EAAE,sBAAsB;IAChD,wBAAwB,EAAE,iBAAiB;IAC3C,UAAU,EAAE,iBAAiB;IAC7B,gBAAgB,EAAE,0FAA0F;IAC5G,kBAAkB,EAAE,kBAAkB;IACtC,cAAc,EAAE,kBAAkB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,mCAAmC;IAC3D,4BAA4B,EAAE,mOAAmO;IACjQ,0BAA0B,EAAE,gBAAgB;IAC5C,iBAAiB,EAAE,gBAAgB;IACnC,oBAAoB,EAAE,iJAAiJ;IACvK,wBAAwB,EAAE,+CAA+C;IACzE,8BAA8B,EAAE,kBAAkB;IAClD,sBAAsB,EAAE,MAAM;IAC9B,sBAAsB,EAAE,QAAQ;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC3D,MAAM,EAAE,EAAE;IAEV,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IAEf,uBAAuB,EAAE,IAAI;IAE7B,MAAM,EAAE;QACN,OAAO,EAAE,IAAI;QACb,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,qBAAqB,CAAC,WAAW;SAC7C;KACF;IAED,sBAAsB,EAAE,KAAK;IAC7B,UAAU,EAAE,wBAAwB;IACpC,gBAAgB,EAAE,iDAAiD;IAEnE,sBAAsB,EAAE,IAAI;IAE5B,UAAU,EAAE,EAAE;IACd,4BAA4B,EAAE,EAAE;IAEhC,gBAAgB,EAAE,0BAA0B;IAC5C,2BAA2B,EAAE,uCAAuC;IAEpE,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,OAAO,EAAE,sBAAsB;IAC/B,mBAAmB,EAAE,0BAA0B;IAE/C,YAAY,EAAE,IAAI;IAClB,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,IAAI;CACvB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.getSessionRecorderConfig=void 0;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.getSessionRecorderConfig=void 0;var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _defaults=require("./defaults");var _masking=require("./masking");var _validators=require("./validators");var _widget=require("./widget");var getWidgetTextOverridesConfig=function getWidgetTextOverridesConfig(config,defaultConfig){if(!config||(0,_typeof2["default"])(config)!=='object'){return defaultConfig;}return Object.keys(defaultConfig).reduce(function(acc,key){acc[key]=(0,_validators.isValidString)(config[key],defaultConfig[key]);return acc;},{});};var getSessionRecorderConfig=exports.getSessionRecorderConfig=function getSessionRecorderConfig(c){if(!c){return _defaults.BASE_CONFIG;}return{apiKey:(0,_validators.isValidString)(c.apiKey,_defaults.BASE_CONFIG.apiKey),version:(0,_validators.isValidString)(c.version,_defaults.BASE_CONFIG.version),application:(0,_validators.isValidString)(c.application,_defaults.BASE_CONFIG.application),environment:(0,_validators.isValidString)(c.environment,_defaults.BASE_CONFIG.environment),exporterEndpoint:(0,_validators.isValidString)(c.exporterEndpoint,_defaults.BASE_CONFIG.exporterEndpoint),apiBaseUrl:(0,_validators.isValidString)(c.apiBaseUrl,_defaults.BASE_CONFIG.apiBaseUrl),usePostMessageFallback:(0,_validators.isValidBoolean)(c.usePostMessageFallback,_defaults.BASE_CONFIG.usePostMessageFallback),showContinuousRecording:(0,_validators.isValidBoolean)(c.showContinuousRecording,_defaults.BASE_CONFIG.showContinuousRecording),ignoreUrls:(0,_validators.isValidArray)(c.ignoreUrls,_defaults.BASE_CONFIG.ignoreUrls),sampleTraceRatio:(0,_validators.isValidNumber)(c.sampleTraceRatio,_defaults.BASE_CONFIG.sampleTraceRatio),propagateTraceHeaderCorsUrls:c.propagateTraceHeaderCorsUrls||_defaults.BASE_CONFIG.propagateTraceHeaderCorsUrls,schemifyDocSpanPayload:(0,_validators.isValidBoolean)(c.schemifyDocSpanPayload,_defaults.BASE_CONFIG.schemifyDocSpanPayload),maxCapturingHttpPayloadSize:(0,_validators.isValidNumber)(c.maxCapturingHttpPayloadSize,_defaults.BASE_CONFIG.maxCapturingHttpPayloadSize),captureBody:(0,_validators.isValidBoolean)(c.captureBody,_defaults.BASE_CONFIG.captureBody),captureHeaders:(0,_validators.isValidBoolean)(c.captureHeaders,_defaults.BASE_CONFIG.captureHeaders),widgetTextOverrides:getWidgetTextOverridesConfig(c.widgetTextOverrides,_defaults.BASE_CONFIG.widgetTextOverrides),recordScreen:(0,_validators.isValidBoolean)(c.recordScreen,_defaults.BASE_CONFIG.recordScreen),recordGestures:(0,_validators.isValidBoolean)(c.recordGestures,_defaults.BASE_CONFIG.recordGestures),recordNavigation:(0,_validators.isValidBoolean)(c.recordNavigation,_defaults.BASE_CONFIG.recordNavigation),masking:(0,_masking.getMaskingConfig)(c.masking),widget:(0,_widget.getWidgetConfig)(c.widget)};};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../../src/config/session-recorder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../../src/config/session-recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.getWidgetConfig=void 0;var _types=require("../types");var _validators=require("./validators");var getWidgetConfig=exports.getWidgetConfig=function getWidgetConfig(config){var _a;var def={enabled:true,button:{visible:true,placement:_types.WidgetButtonPlacement.bottomRight}};var placementCandidate=((_a=config===null||config===void 0?void 0:config.button)===null||_a===void 0?void 0:_a.placement)||def.button.placement;return{enabled:(0,_validators.isValidBoolean)(config&&config.enabled,def.enabled),button:{visible:(0,_validators.isValidBoolean)(config&&config.button&&config.button.visible,def.button.visible),placement:(0,_validators.isValidEnum)(placementCandidate,def.button.placement,Object.values(_types.WidgetButtonPlacement))}};};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/config/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,qBAAqB,EAAE,MAAM,UAAU,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAwC,EAAE,EAAE;;IAE1E,MAAM,GAAG,GAAG;QACV,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,WAAW,EAAE;KACxE,CAAA;IAED,MAAM,kBAAkB,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,SAAS,KAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAA;IAE5E,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;QAC9D,MAAM,EAAE;YACN,OAAO,EAAE,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7F,SAAS,EAAE,WAAW,CACpB,kBAAkB,EAClB,GAAG,CAAC,MAAM,CAAC,SAAS,EACpB,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CACrC;SACF;KACF,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import { SessionRecorderOptions
|
|
2
|
+
import { SessionRecorderOptions } from '../types';
|
|
3
3
|
import sessionRecorder from '../session-recorder';
|
|
4
|
+
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
4
5
|
interface SessionRecorderContextType {
|
|
5
6
|
instance: typeof sessionRecorder;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
openWidgetModal: () => void;
|
|
8
|
+
closeWidgetModal: () => void;
|
|
9
|
+
startSession: (sessionType?: SessionType) => Promise<void>;
|
|
10
|
+
stopSession: (comment?: string) => Promise<void>;
|
|
11
|
+
pauseSession: () => Promise<void>;
|
|
12
|
+
resumeSession: () => Promise<void>;
|
|
13
|
+
cancelSession: () => Promise<void>;
|
|
14
|
+
saveSession: () => Promise<void>;
|
|
8
15
|
}
|
|
9
16
|
export interface SessionRecorderProviderProps extends PropsWithChildren {
|
|
10
|
-
options
|
|
17
|
+
options?: SessionRecorderOptions;
|
|
11
18
|
}
|
|
12
19
|
export declare const SessionRecorderProvider: React.FC<SessionRecorderProviderProps>;
|
|
13
20
|
export declare const useSessionRecorder: () => SessionRecorderContextType;
|
|
@@ -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.useSessionRecorder=exports.SessionRecorderProvider=void 0;var
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _typeof=require("@babel/runtime/helpers/typeof");Object.defineProperty(exports,"__esModule",{value:true});exports.useSessionRecorder=exports.SessionRecorderProvider=void 0;var _react=_interopRequireWildcard(require("react"));var _sessionRecorder=_interopRequireDefault(require("../session-recorder"));var _ScreenRecorderView=require("../components/ScreenRecorderView");var _SessionRecorderWidget=_interopRequireDefault(require("../components/SessionRecorderWidget"));var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _SessionRecorderStore=require("./SessionRecorderStore");var _useStoreSelector=require("./useStoreSelector");var _jsxRuntime=require("react/jsx-runtime");var _this=void 0,_jsxFileName="/Users/gegham/www/multiplayer-debugger-javascript/packages/session-recorder-react-native/dist/context/SessionRecorderContext.js";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);}var SessionRecorderContext=(0,_react.createContext)(null);var SessionRecorderProvider=exports.SessionRecorderProvider=function SessionRecorderProvider(_ref){var children=_ref.children,options=_ref.options;var isInitialized=(0,_useStoreSelector.useStoreSelector)(_SessionRecorderStore.sessionRecorderStore,function(s){return s.isInitialized;});(0,_react.useEffect)(function(){if(options){_sessionRecorder["default"].init(options);}_SessionRecorderStore.sessionRecorderStore.setState({isInitialized:_sessionRecorder["default"].isInitialized});},[]);(0,_react.useEffect)(function(){_SessionRecorderStore.sessionRecorderStore.setState({sessionState:_sessionRecorder["default"].sessionState,sessionType:_sessionRecorder["default"].sessionType});var onStateChange=function onStateChange(sessionState,sessionType){_SessionRecorderStore.sessionRecorderStore.setState({sessionState:sessionState,sessionType:sessionType});};_sessionRecorder["default"].on('state-change',onStateChange);return function(){_sessionRecorder["default"].off('state-change',onStateChange);};},[]);var startSession=(0,_react.useCallback)(function(){var sessionType=arguments.length>0&&arguments[0]!==undefined?arguments[0]:_sessionRecorderCommon.SessionType.PLAIN;return _sessionRecorder["default"].start(sessionType);},[]);var stopSession=(0,_react.useCallback)(function(comment){return _sessionRecorder["default"].stop(comment);},[]);var pauseSession=(0,_react.useCallback)(function(){return _sessionRecorder["default"].pause();},[]);var resumeSession=(0,_react.useCallback)(function(){return _sessionRecorder["default"].resume();},[]);var cancelSession=(0,_react.useCallback)(function(){return _sessionRecorder["default"].cancel();},[]);var saveSession=(0,_react.useCallback)(function(){return _sessionRecorder["default"].save();},[]);var openWidgetModal=(0,_react.useCallback)(function(){_SessionRecorderStore.sessionRecorderStore.setState({isWidgetModalVisible:true});},[]);var closeWidgetModal=(0,_react.useCallback)(function(){_SessionRecorderStore.sessionRecorderStore.setState({isWidgetModalVisible:false});},[]);return(0,_jsxRuntime.jsxs)(SessionRecorderContext.Provider,{value:{instance:_sessionRecorder["default"],openWidgetModal:openWidgetModal,closeWidgetModal:closeWidgetModal,startSession:startSession,stopSession:stopSession,pauseSession:pauseSession,resumeSession:resumeSession,cancelSession:cancelSession,saveSession:saveSession},children:[(0,_jsxRuntime.jsx)(_ScreenRecorderView.ScreenRecorderView,{children:children}),isInitialized&&!!_sessionRecorder["default"].config.widget.enabled&&(0,_jsxRuntime.jsx)(_SessionRecorderWidget["default"],{})]});};var useSessionRecorder=exports.useSessionRecorder=function useSessionRecorder(){var context=(0,_react.useContext)(SessionRecorderContext);if(!context){throw new Error('useSessionRecorder must be used within a SessionRecorderProvider');}return context;};
|
|
@@ -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,5 +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 * from './context/useSessionRecorderStore';
|
|
5
6
|
export { SessionRecorder };
|
|
6
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};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 _default=exports["default"]=_sessionRecorder["default"];
|
|
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 @@
|
|
|
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"}
|
|
@@ -3,24 +3,31 @@ 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
33
|
recordTap(x: number, y: number, target?: string, pressure?: 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
|
}
|