@multiplayer-app/session-recorder-react-native 0.0.1-beta.19 → 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 +38 -7
- package/dist/components/SessionRecorderWidget/FinalPopover.d.ts +2 -2
- 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 -2
- 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/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.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 +1 -0
- package/dist/config/widget.js +1 -1
- package/dist/config/widget.js.map +1 -1
- package/dist/native/SessionRecorderNative.d.ts +2 -0
- package/dist/native/SessionRecorderNative.js.map +1 -1
- package/dist/otel/index.js +1 -1
- package/dist/otel/index.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 +1 -1
- 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 +2 -1
- package/dist/recorder/navigationTracker.js +1 -1
- package/dist/recorder/navigationTracker.js.map +1 -1
- package/dist/recorder/screenRecorder.d.ts +10 -5
- package/dist/recorder/screenRecorder.js +1 -1
- package/dist/recorder/screenRecorder.js.map +1 -1
- package/dist/services/api.service.d.ts +8 -3
- package/dist/services/api.service.js +1 -1
- package/dist/services/api.service.js.map +1 -1
- package/dist/session-recorder.d.ts +0 -5
- 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 +74 -144
- package/dist/types/session-recorder.js +1 -1
- package/dist/types/session-recorder.js.map +1 -1
- 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/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/session.d.ts +2 -1
- package/dist/utils/session.js +1 -1
- package/dist/utils/session.js.map +1 -1
- package/ios/SessionRecorderNative.swift +46 -5
- package/package.json +1 -1
|
@@ -82,11 +82,6 @@ declare class SessionRecorder extends Observable<SessionRecorderEvents> implemen
|
|
|
82
82
|
* @param attributes - the attributes to set
|
|
83
83
|
*/
|
|
84
84
|
setSessionAttributes(attributes: Record<string, any>): void;
|
|
85
|
-
/**
|
|
86
|
-
* Set a custom click handler for the recording button
|
|
87
|
-
* @param handler - function that will be invoked when the button is clicked
|
|
88
|
-
*/
|
|
89
|
-
set recordingButtonClickHandler(handler: () => boolean | void);
|
|
90
85
|
/**
|
|
91
86
|
* @description Check if session should be started/stopped automatically
|
|
92
87
|
* @param {ISession} [sessionPayload]
|
package/dist/session-recorder.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _observable=require("lib0/observable");var _otel=require("./otel");var _recorder=require("./recorder");var _utils=require("./utils");var _types=require("./types");var _xhr=require("./patch/xhr");var _config=require("./config");var _storage=require("./services/storage.service");var _api=require("./services/api.service");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;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var SessionRecorder=function(_Observable){function SessionRecorder(){var _this;(0,_classCallCheck2["default"])(this,SessionRecorder);_this=_callSuper(this,SessionRecorder);_this._apiService=new _api.ApiService();_this._tracer=new _otel.TracerReactNativeSDK();_this._recorder=new _recorder.RecorderReactNativeSDK();_this._storageService=_storage.StorageService.getInstance();_this._startRequestController=null;_this._isInitialized=false;_this._sessionId=null;_this._sessionType=_sessionRecorderCommon.SessionType.PLAIN;_this._sessionState=null;_this._session=null;_this._sessionAttributes=null;_this._error='';_this._configs=_config.BASE_CONFIG;_storage.StorageService.initialize();return _this;}(0,_inherits2["default"])(SessionRecorder,_Observable);return(0,_createClass2["default"])(SessionRecorder,[{key:"isInitialized",get:function get(){return this._isInitialized;},set:function set(isInitialized){this._isInitialized=isInitialized;}},{key:"sessionId",get:function get(){return this._sessionId;},set:function set(sessionId){this._sessionId=sessionId;if(sessionId){this._storageService.saveSessionId(sessionId);}}},{key:"sessionType",get:function get(){return this._sessionType;},set:function set(sessionType){this._sessionType=sessionType;this._storageService.saveSessionType(sessionType);}},{key:"continuousRecording",get:function get(){return this.sessionType===_sessionRecorderCommon.SessionType.CONTINUOUS;}},{key:"sessionState",get:function get(){return this._sessionState||_types.SessionState.stopped;},set:function set(state){this._sessionState=state;this.emit('state-change',[state||_types.SessionState.stopped,this.sessionType]);if(state){this._storageService.saveSessionState(state);}}},{key:"session",get:function get(){return this._session;},set:function set(session){this._session=session;if(session){this._storageService.saveSessionObject(session);}}},{key:"sessionAttributes",get:function get(){return this._sessionAttributes||{};},set:function set(attributes){this._sessionAttributes=attributes;}},{key:"error",get:function get(){return this._error||'';},set:function set(v){this._error=v;}},{key:"sessionWidgetButtonElement",get:function get(){return null;}},{key:"config",get:function get(){return this._configs;}},{key:"_loadStoredSessionData",value:function(){var _loadStoredSessionData2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var storedData,_t;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=1;return _storage.StorageService.initialize();case 1:_context.next=2;return this._storageService.getAllSessionData();case 2:storedData=_context.sent;if((0,_utils.isSessionActive)(storedData.sessionObject,storedData.sessionType===_sessionRecorderCommon.SessionType.CONTINUOUS)){this.session=storedData.sessionObject;this.sessionId=storedData.sessionId;this.sessionType=storedData.sessionType||_sessionRecorderCommon.SessionType.PLAIN;this.sessionState=storedData.sessionState;}else{this.session=null;this.sessionId=null;this.sessionState=null;this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;}_context.next=4;break;case 3:_context.prev=3;_t=_context["catch"](0);_utils.logger.error('SessionRecorder','Failed to load stored session data',_t);this.session=null;this.sessionId=null;this.sessionState=null;this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;case 4:case"end":return _context.stop();}},_callee,this,[[0,3]]);}));function _loadStoredSessionData(){return _loadStoredSessionData2.apply(this,arguments);}return _loadStoredSessionData;}()},{key:"init",value:(function(){var _init=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(configs){return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!this._isInitialized){_context2.next=1;break;}return _context2.abrupt("return");case 1:this._configs=(0,_config.getSessionRecorderConfig)(_objectSpread(_objectSpread({},this._configs),configs));this._isInitialized=true;this._checkOperation('init');_context2.next=2;return this._loadStoredSessionData();case 2:(0,_xhr.setMaxCapturingHttpPayloadSize)(this._configs.maxCapturingHttpPayloadSize||_config.DEFAULT_MAX_HTTP_CAPTURING_PAYLOAD_SIZE);(0,_xhr.setShouldRecordHttpData)(!this._configs.captureBody,this._configs.captureHeaders);try{this._apiService.init(this._configs);this._tracer.init(this._configs);}catch(error){_utils.logger.error('SessionRecorder','Failed to initialize API service',error);}if(this._configs.apiKey){this._recorder.init(this._configs);}if(this.sessionId&&(this.sessionState===_types.SessionState.started||this.sessionState===_types.SessionState.paused)){this._start();}case 3:case"end":return _context2.stop();}},_callee2,this);}));function init(_x){return _init.apply(this,arguments);}return init;}())},{key:"start",value:(function(){var _start2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(){var type,session,_a,_args3=arguments;return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:type=_args3.length>0&&_args3[0]!==undefined?_args3[0]:_sessionRecorderCommon.SessionType.PLAIN;session=_args3.length>1?_args3[1]:undefined;this._checkOperation('start');if(type===_sessionRecorderCommon.SessionType.CONTINUOUS&&!((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording)){type=_sessionRecorderCommon.SessionType.PLAIN;}_utils.logger.info('SessionRecorder','Starting session with type:',type);this.sessionType=type;this._startRequestController=new AbortController();if(!session){_context3.next=1;break;}this._setupSessionAndStart(session,true);_context3.next=2;break;case 1:_context3.next=2;return this._createSessionAndStart();case 2:case"end":return _context3.stop();}},_callee3,this);}));function start(){return _start2.apply(this,arguments);}return start;}())},{key:"stop",value:(function(){var _stop2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(comment){var request,_t2;return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.prev=0;this._checkOperation('stop');this._stop();if(!this.continuousRecording){_context4.next=2;break;}_context4.next=1;return this._apiService.stopContinuousDebugSession(this.sessionId);case 1:this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;_context4.next=3;break;case 2:request={sessionAttributes:{comment:comment},stoppedAt:Date.now()};_context4.next=3;return this._apiService.stopSession(this.sessionId,request);case 3:this._clearSession();_context4.next=5;break;case 4:_context4.prev=4;_t2=_context4["catch"](0);this.error=_t2.message;case 5:case"end":return _context4.stop();}},_callee4,this,[[0,4]]);}));function stop(_x2){return _stop2.apply(this,arguments);}return stop;}())},{key:"pause",value:(function(){var _pause2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){return _regenerator["default"].wrap(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:try{this._checkOperation('pause');this._pause();}catch(error){this.error=error.message;}case 1:case"end":return _context5.stop();}},_callee5,this);}));function pause(){return _pause2.apply(this,arguments);}return pause;}())},{key:"resume",value:(function(){var _resume2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){return _regenerator["default"].wrap(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:try{this._checkOperation('resume');this._resume();}catch(error){this.error=error.message;}case 1:case"end":return _context6.stop();}},_callee6,this);}));function resume(){return _resume2.apply(this,arguments);}return resume;}())},{key:"cancel",value:(function(){var _cancel=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var _t3;return _regenerator["default"].wrap(function(_context7){while(1)switch(_context7.prev=_context7.next){case 0:_context7.prev=0;this._checkOperation('cancel');this._stop();if(!this.continuousRecording){_context7.next=2;break;}_context7.next=1;return this._apiService.stopContinuousDebugSession(this.sessionId);case 1:this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;_context7.next=3;break;case 2:_context7.next=3;return this._apiService.cancelSession(this.sessionId);case 3:this._clearSession();_context7.next=5;break;case 4:_context7.prev=4;_t3=_context7["catch"](0);this.error=_t3.message;case 5:case"end":return _context7.stop();}},_callee7,this,[[0,4]]);}));function cancel(){return _cancel.apply(this,arguments);}return cancel;}())},{key:"save",value:(function(){var _save=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){var _a,res,_t4;return _regenerator["default"].wrap(function(_context8){while(1)switch(_context8.prev=_context8.next){case 0:_context8.prev=0;this._checkOperation('save');if(!(!this.continuousRecording||!((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording))){_context8.next=1;break;}return _context8.abrupt("return");case 1:_context8.next=2;return this._apiService.saveContinuousDebugSession(this.sessionId,{sessionAttributes:this.sessionAttributes,resourceAttributes:(0,_utils.getNavigatorInfo)(),stoppedAt:Date.now(),name:this.sessionAttributes.userName?"".concat(this.sessionAttributes.userName,"'s session on ").concat((0,_utils.getFormattedDate)(Date.now(),{month:'short',day:'numeric'})):"Session on ".concat((0,_utils.getFormattedDate)(Date.now()))});case 2:res=_context8.sent;return _context8.abrupt("return",res);case 3:_context8.prev=3;_t4=_context8["catch"](0);this.error=_t4.message;case 4:case"end":return _context8.stop();}},_callee8,this,[[0,3]]);}));function save(){return _save.apply(this,arguments);}return save;}())},{key:"setSessionAttributes",value:function setSessionAttributes(attributes){this._sessionAttributes=attributes;}},{key:"recordingButtonClickHandler",set:function set(handler){}},{key:"checkRemoteContinuousSession",value:(function(){var _checkRemoteContinuousSession=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(sessionPayload){var _a,payload,_yield$this$_apiServi,state;return _regenerator["default"].wrap(function(_context9){while(1)switch(_context9.prev=_context9.next){case 0:this._checkOperation('autoStartRemoteContinuousSession');if((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording){_context9.next=1;break;}return _context9.abrupt("return");case 1:payload={sessionAttributes:_objectSpread(_objectSpread({},this.sessionAttributes),(sessionPayload===null||sessionPayload===void 0?void 0:sessionPayload.sessionAttributes)||{}),resourceAttributes:_objectSpread(_objectSpread({},(0,_utils.getNavigatorInfo)()),(sessionPayload===null||sessionPayload===void 0?void 0:sessionPayload.resourceAttributes)||{})};_context9.next=2;return this._apiService.checkRemoteSession(payload);case 2:_yield$this$_apiServi=_context9.sent;state=_yield$this$_apiServi.state;if(!(state=='START')){_context9.next=4;break;}if(!(this.sessionState!==_types.SessionState.started)){_context9.next=3;break;}_context9.next=3;return this.start(_sessionRecorderCommon.SessionType.CONTINUOUS);case 3:_context9.next=5;break;case 4:if(!(state=='STOP')){_context9.next=5;break;}if(!(this.sessionState!==_types.SessionState.stopped)){_context9.next=5;break;}_context9.next=5;return this.stop();case 5:case"end":return _context9.stop();}},_callee9,this);}));function checkRemoteContinuousSession(_x3){return _checkRemoteContinuousSession.apply(this,arguments);}return checkRemoteContinuousSession;}())},{key:"_createSessionAndStart",value:(function(){var _createSessionAndStart2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(){var _a,signal,payload,request,session,_t5,_t6;return _regenerator["default"].wrap(function(_context0){while(1)switch(_context0.prev=_context0.next){case 0:signal=(_a=this._startRequestController)===null||_a===void 0?void 0:_a.signal;_context0.prev=1;payload={sessionAttributes:this.sessionAttributes,resourceAttributes:(0,_utils.getNavigatorInfo)(),name:this.sessionAttributes.userName?"".concat(this.sessionAttributes.userName,"'s session on ").concat((0,_utils.getFormattedDate)(Date.now(),{month:'short',day:'numeric'})):"Session on ".concat((0,_utils.getFormattedDate)(Date.now()))};request=!this.continuousRecording?payload:{debugSessionData:payload};if(!this.continuousRecording){_context0.next=3;break;}_context0.next=2;return this._apiService.startContinuousDebugSession(request,signal);case 2:_t5=_context0.sent;_context0.next=5;break;case 3:_context0.next=4;return this._apiService.startSession(request,signal);case 4:_t5=_context0.sent;case 5:session=_t5;if(session){session.sessionType=this.continuousRecording?_sessionRecorderCommon.SessionType.CONTINUOUS:_sessionRecorderCommon.SessionType.PLAIN;this._setupSessionAndStart(session,false);}_context0.next=7;break;case 6:_context0.prev=6;_t6=_context0["catch"](1);this.error=_t6.message;_utils.logger.error('SessionRecorder','Error creating session:',_t6.message);if(this.continuousRecording){this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;}case 7:case"end":return _context0.stop();}},_callee0,this,[[1,6]]);}));function _createSessionAndStart(){return _createSessionAndStart2.apply(this,arguments);}return _createSessionAndStart;}())},{key:"_start",value:function _start(){this.sessionState=_types.SessionState.started;this.sessionType=this.sessionType;if(this.sessionId){this._tracer.start(this.sessionId,this.sessionType);this._recorder.start(this.sessionId,this.sessionType);}}},{key:"_stop",value:function _stop(){this.sessionState=_types.SessionState.stopped;this._tracer.shutdown();this._recorder.stop();}},{key:"_pause",value:function _pause(){this._tracer.shutdown();this._recorder.stop();this.sessionState=_types.SessionState.paused;}},{key:"_resume",value:function _resume(){if(this.sessionId){this._tracer.setSessionId(this.sessionId,this.sessionType);this._recorder.start(this.sessionId,this.sessionType);}this.sessionState=_types.SessionState.started;}},{key:"_setupSessionAndStart",value:function _setupSessionAndStart(session){var configureExporters=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(configureExporters&&session.tempApiKey){this._configs.apiKey=session.tempApiKey;this._recorder.init(this._configs);this._tracer.init(this._configs);this._apiService.updateConfigs({apiKey:this._configs.apiKey});}this._setSession(session);this._start();}},{key:"_setSession",value:function _setSession(session){this.session=_objectSpread(_objectSpread({},session),{},{createdAt:session.createdAt||new Date().toISOString()});this.sessionId=(session===null||session===void 0?void 0:session.shortId)||(session===null||session===void 0?void 0:session._id);}},{key:"_clearSession",value:function _clearSession(){this.session=null;this.sessionId=null;this.sessionState=_types.SessionState.stopped;this._storageService.clearSessionData();}},{key:"_checkOperation",value:function _checkOperation(action,payload){if(!this._isInitialized){throw new Error('Configuration not initialized. Call init() before performing any actions.');}switch(action){case'start':if(this.sessionState===_types.SessionState.started){throw new Error('Session is already started.');}break;case'stop':if(this.sessionState!==_types.SessionState.paused&&this.sessionState!==_types.SessionState.started){throw new Error('Cannot stop. Session is not currently started.');}break;case'cancel':if(this.sessionState===_types.SessionState.stopped){throw new Error('Cannot cancel. Session has already been stopped.');}break;case'pause':if(this.sessionState!==_types.SessionState.started){throw new Error('Cannot pause. Session is not running.');}break;case'resume':if(this.sessionState!==_types.SessionState.paused){throw new Error('Cannot resume. Session is not paused.');}break;case'save':if(!this.continuousRecording){throw new Error('Cannot save continuous recording session. Continuous recording is not enabled.');}if(this.sessionState!==_types.SessionState.started){throw new Error('Cannot save continuous recording session. Session is not started.');}break;case'autoStartRemoteContinuousSession':if(this.sessionState!==_types.SessionState.stopped){throw new Error('Cannot start remote continuous session. Session is not stopped.');}break;}}},{key:"setSessionAttribute",value:function setSessionAttribute(key,value){if(this._session){if(!this._session.sessionAttributes){this._session.sessionAttributes={};}this._session.sessionAttributes[key]=value;this._session.updatedAt=new Date().toISOString();}}},{key:"recordEvent",value:function recordEvent(event){if(!this._isInitialized||this.sessionState!==_types.SessionState.started){return;}this._recorder.recordEvent(event);}},{key:"setViewShotRef",value:function setViewShotRef(ref){if(this._recorder){this._recorder.setViewShotRef(ref);}}},{key:"setNavigationRef",value:function setNavigationRef(ref){if(this._recorder){this._recorder.setNavigationRef(ref);}}}]);}(_observable.Observable);var _default=exports["default"]=new SessionRecorder();
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports["default"]=void 0;var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _sessionRecorderCommon=require("@multiplayer-app/session-recorder-common");var _observable=require("lib0/observable");var _otel=require("./otel");var _recorder=require("./recorder");var _utils=require("./utils");var _types=require("./types");var _xhr=require("./patch/xhr");var _config=require("./config");var _storage=require("./services/storage.service");var _api=require("./services/api.service");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;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var SessionRecorder=function(_Observable){function SessionRecorder(){var _this;(0,_classCallCheck2["default"])(this,SessionRecorder);_this=_callSuper(this,SessionRecorder);_this._apiService=new _api.ApiService();_this._tracer=new _otel.TracerReactNativeSDK();_this._recorder=new _recorder.RecorderReactNativeSDK();_this._storageService=_storage.StorageService.getInstance();_this._startRequestController=null;_this._isInitialized=false;_this._sessionId=null;_this._sessionType=_sessionRecorderCommon.SessionType.PLAIN;_this._sessionState=null;_this._session=null;_this._sessionAttributes=null;_this._error='';_this._configs=_config.BASE_CONFIG;_storage.StorageService.initialize();return _this;}(0,_inherits2["default"])(SessionRecorder,_Observable);return(0,_createClass2["default"])(SessionRecorder,[{key:"isInitialized",get:function get(){return this._isInitialized;},set:function set(isInitialized){this._isInitialized=isInitialized;}},{key:"sessionId",get:function get(){return this._sessionId;},set:function set(sessionId){this._sessionId=sessionId;if(sessionId){this._storageService.saveSessionId(sessionId);}}},{key:"sessionType",get:function get(){return this._sessionType;},set:function set(sessionType){this._sessionType=sessionType;this._storageService.saveSessionType(sessionType);}},{key:"continuousRecording",get:function get(){return this.sessionType===_sessionRecorderCommon.SessionType.CONTINUOUS;}},{key:"sessionState",get:function get(){return this._sessionState||_types.SessionState.stopped;},set:function set(state){this._sessionState=state;this.emit('state-change',[state||_types.SessionState.stopped,this.sessionType]);if(state){this._storageService.saveSessionState(state);}}},{key:"session",get:function get(){return this._session;},set:function set(session){this._session=session;if(session){this._storageService.saveSessionObject(session);}}},{key:"sessionAttributes",get:function get(){return this._sessionAttributes||{};},set:function set(attributes){this._sessionAttributes=attributes;}},{key:"error",get:function get(){return this._error||'';},set:function set(v){this._error=v;}},{key:"sessionWidgetButtonElement",get:function get(){return null;}},{key:"config",get:function get(){return this._configs;}},{key:"_loadStoredSessionData",value:function(){var _loadStoredSessionData2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee(){var storedData,_t;return _regenerator["default"].wrap(function(_context){while(1)switch(_context.prev=_context.next){case 0:_context.prev=0;_context.next=1;return _storage.StorageService.initialize();case 1:_context.next=2;return this._storageService.getAllSessionData();case 2:storedData=_context.sent;if((0,_utils.isSessionActive)(storedData.sessionObject,storedData.sessionType)){this.session=storedData.sessionObject;this.sessionId=storedData.sessionId;this.sessionType=storedData.sessionType||_sessionRecorderCommon.SessionType.PLAIN;this.sessionState=storedData.sessionState;}else{this.session=null;this.sessionId=null;this.sessionState=null;this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;}_context.next=4;break;case 3:_context.prev=3;_t=_context["catch"](0);_utils.logger.error('SessionRecorder','Failed to load stored session data',_t);this.session=null;this.sessionId=null;this.sessionState=null;this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;case 4:case"end":return _context.stop();}},_callee,this,[[0,3]]);}));function _loadStoredSessionData(){return _loadStoredSessionData2.apply(this,arguments);}return _loadStoredSessionData;}()},{key:"init",value:(function(){var _init=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee2(configs){return _regenerator["default"].wrap(function(_context2){while(1)switch(_context2.prev=_context2.next){case 0:if(!this._isInitialized){_context2.next=1;break;}return _context2.abrupt("return");case 1:this._isInitialized=true;this._configs=(0,_config.getSessionRecorderConfig)(_objectSpread(_objectSpread({},this._configs),configs));_utils.logger.configure(this._configs.logger);_context2.next=2;return this._loadStoredSessionData();case 2:(0,_xhr.setMaxCapturingHttpPayloadSize)(this._configs.maxCapturingHttpPayloadSize);(0,_xhr.setShouldRecordHttpData)(!this._configs.captureBody,this._configs.captureHeaders);this._tracer.init(this._configs);this._recorder.init(this._configs);this._apiService.init(this._configs);if(this.sessionId&&(this.sessionState===_types.SessionState.started||this.sessionState===_types.SessionState.paused)){this._start();}case 3:case"end":return _context2.stop();}},_callee2,this);}));function init(_x){return _init.apply(this,arguments);}return init;}())},{key:"start",value:(function(){var _start2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee3(){var type,session,_a,_args3=arguments;return _regenerator["default"].wrap(function(_context3){while(1)switch(_context3.prev=_context3.next){case 0:type=_args3.length>0&&_args3[0]!==undefined?_args3[0]:_sessionRecorderCommon.SessionType.PLAIN;session=_args3.length>1?_args3[1]:undefined;this._checkOperation('start');if(type===_sessionRecorderCommon.SessionType.CONTINUOUS&&!((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording)){type=_sessionRecorderCommon.SessionType.PLAIN;}_utils.logger.info('SessionRecorder','Starting session with type:',type);this.sessionType=type;this._startRequestController=new AbortController();if(!session){_context3.next=1;break;}this._setupSessionAndStart(session,true);_context3.next=2;break;case 1:_context3.next=2;return this._createSessionAndStart();case 2:case"end":return _context3.stop();}},_callee3,this);}));function start(){return _start2.apply(this,arguments);}return start;}())},{key:"stop",value:(function(){var _stop2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4(comment){var request,_t2;return _regenerator["default"].wrap(function(_context4){while(1)switch(_context4.prev=_context4.next){case 0:_context4.prev=0;this._checkOperation('stop');this._stop();if(!this.continuousRecording){_context4.next=2;break;}_context4.next=1;return this._apiService.stopContinuousDebugSession(this.sessionId);case 1:this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;_context4.next=3;break;case 2:request={sessionAttributes:{comment:comment},stoppedAt:Date.now()};_context4.next=3;return this._apiService.stopSession(this.sessionId,request);case 3:this._clearSession();_context4.next=5;break;case 4:_context4.prev=4;_t2=_context4["catch"](0);this.error=_t2.message;case 5:case"end":return _context4.stop();}},_callee4,this,[[0,4]]);}));function stop(_x2){return _stop2.apply(this,arguments);}return stop;}())},{key:"pause",value:(function(){var _pause2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee5(){return _regenerator["default"].wrap(function(_context5){while(1)switch(_context5.prev=_context5.next){case 0:try{this._checkOperation('pause');this._pause();}catch(error){this.error=error.message;}case 1:case"end":return _context5.stop();}},_callee5,this);}));function pause(){return _pause2.apply(this,arguments);}return pause;}())},{key:"resume",value:(function(){var _resume2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee6(){return _regenerator["default"].wrap(function(_context6){while(1)switch(_context6.prev=_context6.next){case 0:try{this._checkOperation('resume');this._resume();}catch(error){this.error=error.message;}case 1:case"end":return _context6.stop();}},_callee6,this);}));function resume(){return _resume2.apply(this,arguments);}return resume;}())},{key:"cancel",value:(function(){var _cancel=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee7(){var _t3;return _regenerator["default"].wrap(function(_context7){while(1)switch(_context7.prev=_context7.next){case 0:_context7.prev=0;this._checkOperation('cancel');this._stop();if(!this.continuousRecording){_context7.next=2;break;}_context7.next=1;return this._apiService.stopContinuousDebugSession(this.sessionId);case 1:this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;_context7.next=3;break;case 2:_context7.next=3;return this._apiService.cancelSession(this.sessionId);case 3:this._clearSession();_context7.next=5;break;case 4:_context7.prev=4;_t3=_context7["catch"](0);this.error=_t3.message;case 5:case"end":return _context7.stop();}},_callee7,this,[[0,4]]);}));function cancel(){return _cancel.apply(this,arguments);}return cancel;}())},{key:"save",value:(function(){var _save=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee8(){var _a,res,_t4;return _regenerator["default"].wrap(function(_context8){while(1)switch(_context8.prev=_context8.next){case 0:_context8.prev=0;this._checkOperation('save');if(!(!this.continuousRecording||!((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording))){_context8.next=1;break;}return _context8.abrupt("return");case 1:_context8.next=2;return this._apiService.saveContinuousDebugSession(this.sessionId,{sessionAttributes:this.sessionAttributes,resourceAttributes:(0,_utils.getNavigatorInfo)(),stoppedAt:Date.now(),name:this.sessionAttributes.userName?"".concat(this.sessionAttributes.userName,"'s session on ").concat((0,_utils.getFormattedDate)(Date.now(),{month:'short',day:'numeric'})):"Session on ".concat((0,_utils.getFormattedDate)(Date.now()))});case 2:res=_context8.sent;return _context8.abrupt("return",res);case 3:_context8.prev=3;_t4=_context8["catch"](0);this.error=_t4.message;case 4:case"end":return _context8.stop();}},_callee8,this,[[0,3]]);}));function save(){return _save.apply(this,arguments);}return save;}())},{key:"setSessionAttributes",value:function setSessionAttributes(attributes){this._sessionAttributes=attributes;}},{key:"checkRemoteContinuousSession",value:(function(){var _checkRemoteContinuousSession=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee9(sessionPayload){var _a,payload,_yield$this$_apiServi,state;return _regenerator["default"].wrap(function(_context9){while(1)switch(_context9.prev=_context9.next){case 0:this._checkOperation('autoStartRemoteContinuousSession');if((_a=this._configs)===null||_a===void 0?void 0:_a.showContinuousRecording){_context9.next=1;break;}return _context9.abrupt("return");case 1:payload={sessionAttributes:_objectSpread(_objectSpread({},this.sessionAttributes),(sessionPayload===null||sessionPayload===void 0?void 0:sessionPayload.sessionAttributes)||{}),resourceAttributes:_objectSpread(_objectSpread({},(0,_utils.getNavigatorInfo)()),(sessionPayload===null||sessionPayload===void 0?void 0:sessionPayload.resourceAttributes)||{})};_context9.next=2;return this._apiService.checkRemoteSession(payload);case 2:_yield$this$_apiServi=_context9.sent;state=_yield$this$_apiServi.state;if(!(state=='START')){_context9.next=4;break;}if(!(this.sessionState!==_types.SessionState.started)){_context9.next=3;break;}_context9.next=3;return this.start(_sessionRecorderCommon.SessionType.CONTINUOUS);case 3:_context9.next=5;break;case 4:if(!(state=='STOP')){_context9.next=5;break;}if(!(this.sessionState!==_types.SessionState.stopped)){_context9.next=5;break;}_context9.next=5;return this.stop();case 5:case"end":return _context9.stop();}},_callee9,this);}));function checkRemoteContinuousSession(_x3){return _checkRemoteContinuousSession.apply(this,arguments);}return checkRemoteContinuousSession;}())},{key:"_createSessionAndStart",value:(function(){var _createSessionAndStart2=(0,_asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee0(){var _a,signal,payload,request,session,_t5,_t6;return _regenerator["default"].wrap(function(_context0){while(1)switch(_context0.prev=_context0.next){case 0:signal=(_a=this._startRequestController)===null||_a===void 0?void 0:_a.signal;_context0.prev=1;payload={sessionAttributes:this.sessionAttributes,resourceAttributes:(0,_utils.getNavigatorInfo)(),name:this.sessionAttributes.userName?"".concat(this.sessionAttributes.userName,"'s session on ").concat((0,_utils.getFormattedDate)(Date.now(),{month:'short',day:'numeric'})):"Session on ".concat((0,_utils.getFormattedDate)(Date.now()))};request=!this.continuousRecording?payload:{debugSessionData:payload};if(!this.continuousRecording){_context0.next=3;break;}_context0.next=2;return this._apiService.startContinuousDebugSession(request,signal);case 2:_t5=_context0.sent;_context0.next=5;break;case 3:_context0.next=4;return this._apiService.startSession(request,signal);case 4:_t5=_context0.sent;case 5:session=_t5;if(session){session.sessionType=this.continuousRecording?_sessionRecorderCommon.SessionType.CONTINUOUS:_sessionRecorderCommon.SessionType.PLAIN;this._setupSessionAndStart(session,false);}_context0.next=7;break;case 6:_context0.prev=6;_t6=_context0["catch"](1);this.error=_t6.message;_utils.logger.error('SessionRecorder','Error creating session:',_t6.message);if(this.continuousRecording){this.sessionType=_sessionRecorderCommon.SessionType.PLAIN;}case 7:case"end":return _context0.stop();}},_callee0,this,[[1,6]]);}));function _createSessionAndStart(){return _createSessionAndStart2.apply(this,arguments);}return _createSessionAndStart;}())},{key:"_start",value:function _start(){this.sessionState=_types.SessionState.started;this.sessionType=this.sessionType;if(this.sessionId){this._tracer.start(this.sessionId,this.sessionType);this._recorder.start(this.sessionId,this.sessionType);}}},{key:"_stop",value:function _stop(){this.sessionState=_types.SessionState.stopped;this._tracer.shutdown();this._recorder.stop();}},{key:"_pause",value:function _pause(){this._tracer.shutdown();this._recorder.stop();this.sessionState=_types.SessionState.paused;}},{key:"_resume",value:function _resume(){if(this.sessionId){this._tracer.setSessionId(this.sessionId,this.sessionType);this._recorder.start(this.sessionId,this.sessionType);}this.sessionState=_types.SessionState.started;}},{key:"_setupSessionAndStart",value:function _setupSessionAndStart(session){var configureExporters=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;if(configureExporters&&session.tempApiKey){this._configs.apiKey=session.tempApiKey;this._tracer.setApiKey(session.tempApiKey);this._recorder.setApiKey(session.tempApiKey);this._apiService.setApiKey(session.tempApiKey);}this._setSession(session);this._start();}},{key:"_setSession",value:function _setSession(session){this.session=_objectSpread(_objectSpread({},session),{},{createdAt:session.createdAt||new Date().toISOString()});this.sessionId=(session===null||session===void 0?void 0:session.shortId)||(session===null||session===void 0?void 0:session._id);}},{key:"_clearSession",value:function _clearSession(){this.session=null;this.sessionId=null;this.sessionState=_types.SessionState.stopped;this._storageService.clearSessionData();}},{key:"_checkOperation",value:function _checkOperation(action,payload){if(!this._isInitialized){throw new Error('Configuration not initialized. Call init() before performing any actions.');}switch(action){case'start':if(this.sessionState===_types.SessionState.started){throw new Error('Session is already started.');}break;case'stop':if(this.sessionState!==_types.SessionState.paused&&this.sessionState!==_types.SessionState.started){throw new Error('Cannot stop. Session is not currently started.');}break;case'cancel':if(this.sessionState===_types.SessionState.stopped){throw new Error('Cannot cancel. Session has already been stopped.');}break;case'pause':if(this.sessionState!==_types.SessionState.started){throw new Error('Cannot pause. Session is not running.');}break;case'resume':if(this.sessionState!==_types.SessionState.paused){throw new Error('Cannot resume. Session is not paused.');}break;case'save':if(!this.continuousRecording){throw new Error('Cannot save continuous recording session. Continuous recording is not enabled.');}if(this.sessionState!==_types.SessionState.started){throw new Error('Cannot save continuous recording session. Session is not started.');}break;case'autoStartRemoteContinuousSession':if(this.sessionState!==_types.SessionState.stopped){throw new Error('Cannot start remote continuous session. Session is not stopped.');}break;}}},{key:"setSessionAttribute",value:function setSessionAttribute(key,value){if(this._session){if(!this._session.sessionAttributes){this._session.sessionAttributes={};}this._session.sessionAttributes[key]=value;this._session.updatedAt=new Date().toISOString();}}},{key:"recordEvent",value:function recordEvent(event){if(!this._isInitialized||this.sessionState!==_types.SessionState.started){return;}this._recorder.recordEvent(event);}},{key:"setViewShotRef",value:function setViewShotRef(ref){if(this._recorder){this._recorder.setViewShotRef(ref);}}},{key:"setNavigationRef",value:function setNavigationRef(ref){if(this._recorder){this._recorder.setNavigationRef(ref);}}}]);}(_observable.Observable);var _default=exports["default"]=new SessionRecorder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../src/session-recorder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../src/session-recorder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { PropagateTraceHeaderCorsUrls } from '@opentelemetry/instrumentation-xml-http-request/build/src/types';
|
|
2
|
+
import { MaskingOptions, SessionRecorderOptions } from './session-recorder';
|
|
3
|
+
/**
|
|
4
|
+
* Utility type that makes all properties required recursively
|
|
5
|
+
* Removes optional modifiers and undefined types from nested objects
|
|
6
|
+
*/
|
|
7
|
+
export type DeepRequired<T> = T extends Function ? T : T extends ReadonlyArray<infer U> ? Array<DeepRequired<NonNullable<U>>> : T extends Array<infer U> ? Array<DeepRequired<NonNullable<U>>> : T extends object ? {
|
|
8
|
+
-readonly [K in keyof T]-?: DeepRequired<NonNullable<T[K]>>;
|
|
9
|
+
} : NonNullable<T>;
|
|
10
|
+
/**
|
|
11
|
+
* Fully resolved configuration interface
|
|
12
|
+
* All optional properties from SessionRecorderOptions are now required
|
|
13
|
+
*/
|
|
14
|
+
export interface SessionRecorderConfigs extends DeepRequired<SessionRecorderOptions> {
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Base configuration interface with common properties
|
|
18
|
+
* Shared by all service configuration interfaces
|
|
19
|
+
*/
|
|
20
|
+
export interface BaseConfig {
|
|
21
|
+
/** API key for authentication */
|
|
22
|
+
apiKey: string;
|
|
23
|
+
/** Base URL for the API calls */
|
|
24
|
+
apiBaseUrl: string;
|
|
25
|
+
/** OTLP collector endpoint for traces */
|
|
26
|
+
exporterEndpoint: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Type for masking configuration used by the Tracer
|
|
30
|
+
* Contains only trace-related masking options
|
|
31
|
+
*/
|
|
32
|
+
export type TracerReactNativeMasking = Pick<MaskingOptions, 'isContentMaskingEnabled' | 'maskBody' | 'maskHeaders' | 'maskBodyFieldsList' | 'maskHeadersList' | 'headersToInclude' | 'headersToExclude'>;
|
|
33
|
+
/**
|
|
34
|
+
* Configuration interface for the Tracer class
|
|
35
|
+
* Contains all settings needed for OpenTelemetry tracing
|
|
36
|
+
*/
|
|
37
|
+
export interface TracerReactNativeConfig extends BaseConfig {
|
|
38
|
+
/** Application name */
|
|
39
|
+
application: string;
|
|
40
|
+
/** Application version */
|
|
41
|
+
version: string;
|
|
42
|
+
/** Environment (e.g., 'production', 'staging') */
|
|
43
|
+
environment: string;
|
|
44
|
+
/** URLs to ignore during tracing */
|
|
45
|
+
ignoreUrls: Array<string | RegExp>;
|
|
46
|
+
/** Trace ID ratio for sampling */
|
|
47
|
+
sampleTraceRatio: number;
|
|
48
|
+
/** URLs for CORS trace header propagation */
|
|
49
|
+
propagateTraceHeaderCorsUrls: PropagateTraceHeaderCorsUrls;
|
|
50
|
+
/** Whether to schematize document span payload */
|
|
51
|
+
schemifyDocSpanPayload: boolean;
|
|
52
|
+
/** Maximum size for capturing HTTP payload */
|
|
53
|
+
maxCapturingHttpPayloadSize: number;
|
|
54
|
+
/** If true, captures body in traces */
|
|
55
|
+
captureBody: boolean;
|
|
56
|
+
/** If true, captures headers in traces */
|
|
57
|
+
captureHeaders: boolean;
|
|
58
|
+
/** Configuration for masking sensitive data in session recordings */
|
|
59
|
+
masking: TracerReactNativeMasking;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Type for masking configuration used by the Recorder
|
|
63
|
+
* Contains only screen recording masking options
|
|
64
|
+
*/
|
|
65
|
+
export type RecorderMaskingConfig = Pick<MaskingOptions, 'maskTextInputs' | 'maskImages' | 'maskButtons' | 'maskLabels' | 'maskWebViews' | 'maskSandboxedViews'>;
|
|
66
|
+
/**
|
|
67
|
+
* Configuration interface for the Recorder class
|
|
68
|
+
* Contains settings for screen recording and gesture capture
|
|
69
|
+
*/
|
|
70
|
+
export interface RecorderConfig extends BaseConfig {
|
|
71
|
+
/** Whether to record gestures */
|
|
72
|
+
recordGestures?: boolean;
|
|
73
|
+
/** Whether to record navigation */
|
|
74
|
+
recordNavigation?: boolean;
|
|
75
|
+
/** Whether to record screen */
|
|
76
|
+
recordScreen?: boolean;
|
|
77
|
+
/** Configuration for masking sensitive data in screen recordings */
|
|
78
|
+
masking?: RecorderMaskingConfig;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Configuration interface for the ApiService class
|
|
82
|
+
* Contains settings for API communication
|
|
83
|
+
*/
|
|
84
|
+
export interface ApiServiceConfig extends BaseConfig {
|
|
85
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configs.js","sourceRoot":"","sources":["../../src/types/configs.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _sessionRecorder=require("./session-recorder");Object.keys(_sessionRecorder).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_sessionRecorder[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _sessionRecorder[key];}});});var _session=require("./session");Object.keys(_session).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_session[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _session[key];}});});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _sessionRecorder=require("./session-recorder");Object.keys(_sessionRecorder).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_sessionRecorder[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _sessionRecorder[key];}});});var _session=require("./session");Object.keys(_session).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_session[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _session[key];}});});var _configs=require("./configs");Object.keys(_configs).forEach(function(key){if(key==="default"||key==="__esModule")return;if(key in exports&&exports[key]===_configs[key])return;Object.defineProperty(exports,key,{enumerable:true,get:function get(){return _configs[key];}});});
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
|
+
import { Span } from '@opentelemetry/api';
|
|
1
2
|
import { SessionType } from '@multiplayer-app/session-recorder-common';
|
|
2
3
|
import { PropagateTraceHeaderCorsUrls } from '@opentelemetry/sdk-trace-web';
|
|
3
|
-
import { Span } from '@opentelemetry/api';
|
|
4
4
|
import type { ISession } from './session';
|
|
5
|
+
export declare enum SessionState {
|
|
6
|
+
started = "2",
|
|
7
|
+
paused = "1",
|
|
8
|
+
stopped = "0"
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Enumeration for widget button placement positions
|
|
12
|
+
*/
|
|
5
13
|
export declare enum WidgetButtonPlacement {
|
|
6
14
|
topLeft = "top-left",
|
|
7
15
|
topRight = "top-right",
|
|
8
16
|
bottomLeft = "bottom-left",
|
|
9
17
|
bottomRight = "bottom-right"
|
|
10
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Main configuration interface for the Session Recorder
|
|
21
|
+
* Contains all configurable options for session recording, tracing, and UI
|
|
22
|
+
*/
|
|
11
23
|
export interface SessionRecorderOptions {
|
|
12
24
|
/**
|
|
13
25
|
* The API key used to authenticate with the session debugger service.
|
|
@@ -62,6 +74,11 @@ export interface SessionRecorderOptions {
|
|
|
62
74
|
visible?: boolean;
|
|
63
75
|
placement?: WidgetButtonPlacement;
|
|
64
76
|
};
|
|
77
|
+
/**
|
|
78
|
+
* (Optional) Configuration for customizable UI text and labels
|
|
79
|
+
* @default See PopoverTextConfig defaults
|
|
80
|
+
*/
|
|
81
|
+
textOverrides?: TextOverridesOptions;
|
|
65
82
|
};
|
|
66
83
|
/**
|
|
67
84
|
* (Optional) Trace ID Ratio for sampling
|
|
@@ -82,11 +99,6 @@ export interface SessionRecorderOptions {
|
|
|
82
99
|
* @default 100000
|
|
83
100
|
*/
|
|
84
101
|
maxCapturingHttpPayloadSize?: number;
|
|
85
|
-
/**
|
|
86
|
-
* (Optional) If true, uses post message fallback
|
|
87
|
-
* @default false
|
|
88
|
-
*/
|
|
89
|
-
usePostMessageFallback?: boolean;
|
|
90
102
|
/** If true, captures body in traces
|
|
91
103
|
* @default true
|
|
92
104
|
*/
|
|
@@ -99,139 +111,27 @@ export interface SessionRecorderOptions {
|
|
|
99
111
|
* (Optional) Configuration for masking sensitive data in session recordings
|
|
100
112
|
* @default { maskAllInputs: true, isContentMaskingEnabled: true }
|
|
101
113
|
*/
|
|
102
|
-
masking?:
|
|
103
|
-
/**
|
|
104
|
-
* (Optional) Configuration for customizable UI text and labels
|
|
105
|
-
* @default See PopoverTextConfig defaults
|
|
106
|
-
*/
|
|
107
|
-
widgetTextOverrides?: WidgetTextOverridesConfig;
|
|
108
|
-
/** Whether to record gestures */
|
|
109
|
-
recordGestures?: boolean;
|
|
110
|
-
/** Whether to record navigation */
|
|
111
|
-
recordNavigation?: boolean;
|
|
112
|
-
/** Whether to record screen */
|
|
113
|
-
recordScreen?: boolean;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Interface for masking configuration
|
|
117
|
-
*/
|
|
118
|
-
export interface MaskingConfig {
|
|
119
|
-
/** If true, enables masking for debug span payload in traces
|
|
120
|
-
* @default true
|
|
121
|
-
*/
|
|
122
|
-
isContentMaskingEnabled?: boolean;
|
|
123
|
-
/** Custom function for masking body in traces */
|
|
124
|
-
maskBody?: (payload: any, span: Span) => any;
|
|
125
|
-
/** Custom function for masking headers in traces */
|
|
126
|
-
maskHeaders?: (headers: any, span: any) => any;
|
|
127
|
-
/** List of body fields to mask in traces */
|
|
128
|
-
maskBodyFieldsList?: string[];
|
|
129
|
-
/** List of headers to mask in traces */
|
|
130
|
-
maskHeadersList?: string[];
|
|
131
|
-
/** List of headers to include in traces (if specified, only these headers will be captured) */
|
|
132
|
-
headersToInclude?: string[];
|
|
133
|
-
/** List of headers to exclude from traces */
|
|
134
|
-
headersToExclude?: string[];
|
|
135
|
-
/** Whether to mask text inputs (UITextField, UITextView, React Native text components)
|
|
136
|
-
* @default true
|
|
137
|
-
*/
|
|
138
|
-
maskTextInputs?: boolean;
|
|
139
|
-
/** Whether to mask images (UIImageView, React Native Image components)
|
|
140
|
-
* @default false
|
|
141
|
-
*/
|
|
142
|
-
maskImages?: boolean;
|
|
143
|
-
/** Whether to mask buttons (UIButton)
|
|
144
|
-
* @default false
|
|
145
|
-
*/
|
|
146
|
-
maskButtons?: boolean;
|
|
147
|
-
/** Whether to mask labels (UILabel)
|
|
148
|
-
* @default false
|
|
149
|
-
*/
|
|
150
|
-
maskLabels?: boolean;
|
|
151
|
-
/** Whether to mask web views (WKWebView)
|
|
152
|
-
* @default false
|
|
153
|
-
*/
|
|
154
|
-
maskWebViews?: boolean;
|
|
155
|
-
/** Whether to mask sandboxed views (system views that don't belong to current process)
|
|
156
|
-
* @default true
|
|
157
|
-
*/
|
|
158
|
-
maskSandboxedViews?: boolean;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Base configuration interface with common properties
|
|
162
|
-
*/
|
|
163
|
-
export interface BaseConfig {
|
|
164
|
-
/** API key for authentication */
|
|
165
|
-
apiKey: string;
|
|
166
|
-
/** Base URL for the API calls */
|
|
167
|
-
apiBaseUrl: string;
|
|
168
|
-
/** Base URL for the API calls */
|
|
169
|
-
exporterEndpoint: string;
|
|
170
|
-
/** Whether to use post message fallback */
|
|
171
|
-
usePostMessageFallback?: boolean;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Configuration interface for the Tracer class
|
|
175
|
-
*/
|
|
176
|
-
export type TracerReactNativeMasking = Pick<MaskingConfig, 'isContentMaskingEnabled' | 'maskBody' | 'maskHeaders' | 'maskBodyFieldsList' | 'maskHeadersList' | 'headersToInclude' | 'headersToExclude'>;
|
|
177
|
-
export interface TracerReactNativeConfig extends BaseConfig {
|
|
178
|
-
/** Application name */
|
|
179
|
-
application: string;
|
|
180
|
-
/** Application version */
|
|
181
|
-
version: string;
|
|
182
|
-
/** Environment (e.g., 'production', 'staging') */
|
|
183
|
-
environment: string;
|
|
184
|
-
/** URLs to ignore during tracing */
|
|
185
|
-
ignoreUrls: Array<string | RegExp>;
|
|
186
|
-
/** Trace ID ratio for sampling */
|
|
187
|
-
sampleTraceRatio: number;
|
|
188
|
-
/** URLs for CORS trace header propagation */
|
|
189
|
-
propagateTraceHeaderCorsUrls: PropagateTraceHeaderCorsUrls;
|
|
190
|
-
/** Whether to schematize document span payload */
|
|
191
|
-
schemifyDocSpanPayload: boolean;
|
|
192
|
-
/** Maximum size for capturing HTTP payload */
|
|
193
|
-
maxCapturingHttpPayloadSize: number;
|
|
194
|
-
/** If true, captures body in traces
|
|
195
|
-
* @default true
|
|
196
|
-
*/
|
|
197
|
-
captureBody: boolean;
|
|
198
|
-
/** If true, captures headers in traces
|
|
199
|
-
* @default true
|
|
200
|
-
*/
|
|
201
|
-
captureHeaders: boolean;
|
|
202
|
-
/** Configuration for masking sensitive data in session recordings */
|
|
203
|
-
masking: TracerReactNativeMasking;
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Configuration interface for the Recorder class
|
|
207
|
-
*/
|
|
208
|
-
export interface RecorderConfig extends BaseConfig {
|
|
114
|
+
masking?: MaskingOptions;
|
|
209
115
|
/** Whether to record gestures */
|
|
210
116
|
recordGestures?: boolean;
|
|
211
117
|
/** Whether to record navigation */
|
|
212
118
|
recordNavigation?: boolean;
|
|
213
119
|
/** Whether to record screen */
|
|
214
120
|
recordScreen?: boolean;
|
|
215
|
-
/**
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
showWidget: boolean;
|
|
224
|
-
/** Placement of the widget button */
|
|
225
|
-
widgetButtonPlacement: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
226
|
-
/** Whether continuous recording feature is enabled */
|
|
227
|
-
showContinuousRecording: boolean;
|
|
228
|
-
/** Configuration for customizable UI text and labels */
|
|
229
|
-
widgetTextOverrides: WidgetTextOverridesConfig;
|
|
121
|
+
/**
|
|
122
|
+
* (Optional) Logger configuration overrides
|
|
123
|
+
* Allows setting log level, console enabling, and prefix customizations
|
|
124
|
+
*/
|
|
125
|
+
logger?: {
|
|
126
|
+
level?: number;
|
|
127
|
+
enabled?: boolean;
|
|
128
|
+
};
|
|
230
129
|
}
|
|
231
130
|
/**
|
|
232
131
|
* Interface for customizable widget text configuration
|
|
132
|
+
* Allows overriding default text labels and messages in the UI
|
|
233
133
|
*/
|
|
234
|
-
export interface
|
|
134
|
+
export interface TextOverridesOptions {
|
|
235
135
|
/** Title for the initial popover when continuous recording is enabled */
|
|
236
136
|
initialTitleWithContinuous?: string;
|
|
237
137
|
/** Title for the initial popover when continuous recording is disabled */
|
|
@@ -274,17 +174,41 @@ export interface WidgetTextOverridesConfig {
|
|
|
274
174
|
submitDialogCancelText?: string;
|
|
275
175
|
}
|
|
276
176
|
/**
|
|
277
|
-
*
|
|
177
|
+
* Interface for masking configuration options
|
|
178
|
+
* Controls what data is masked in both traces and screen recordings
|
|
278
179
|
*/
|
|
279
|
-
export interface
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
180
|
+
export interface MaskingOptions {
|
|
181
|
+
/** If true, enables masking for debug span payload in traces */
|
|
182
|
+
isContentMaskingEnabled?: boolean;
|
|
183
|
+
/** Custom function for masking body in traces */
|
|
184
|
+
maskBody?: (payload: any, span: Span) => any;
|
|
185
|
+
/** Custom function for masking headers in traces */
|
|
186
|
+
maskHeaders?: (headers: any, span: any) => any;
|
|
187
|
+
/** List of body fields to mask in traces */
|
|
188
|
+
maskBodyFieldsList?: string[];
|
|
189
|
+
/** List of headers to mask in traces */
|
|
190
|
+
maskHeadersList?: string[];
|
|
191
|
+
/** List of headers to include in traces (if specified, only these headers will be captured) */
|
|
192
|
+
headersToInclude?: string[];
|
|
193
|
+
/** List of headers to exclude from traces */
|
|
194
|
+
headersToExclude?: string[];
|
|
195
|
+
/** Whether to mask text inputs (UITextField, UITextView, React Native text components) */
|
|
196
|
+
maskTextInputs?: boolean;
|
|
197
|
+
/** Whether to mask images (UIImageView, React Native Image components) */
|
|
198
|
+
maskImages?: boolean;
|
|
199
|
+
/** Whether to mask buttons (UIButton) */
|
|
200
|
+
maskButtons?: boolean;
|
|
201
|
+
/** Whether to mask labels (UILabel) */
|
|
202
|
+
maskLabels?: boolean;
|
|
203
|
+
/** Whether to mask web views (WKWebView) */
|
|
204
|
+
maskWebViews?: boolean;
|
|
205
|
+
/** Whether to mask sandboxed views (system views that don't belong to current process) */
|
|
206
|
+
maskSandboxedViews?: boolean;
|
|
287
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Main interface for the Session Recorder
|
|
210
|
+
* Defines the public API for session recording functionality
|
|
211
|
+
*/
|
|
288
212
|
export interface ISessionRecorder {
|
|
289
213
|
/**
|
|
290
214
|
* The current session ID
|
|
@@ -356,13 +280,11 @@ export interface ISessionRecorder {
|
|
|
356
280
|
* @param attributes - the attributes to set
|
|
357
281
|
*/
|
|
358
282
|
setSessionAttributes(attributes: Record<string, any>): void;
|
|
359
|
-
/**
|
|
360
|
-
* Set a custom click handler for the recording button
|
|
361
|
-
* @param handler - function that will be invoked when the button is clicked
|
|
362
|
-
*/
|
|
363
|
-
set recordingButtonClickHandler(handler: () => boolean | void);
|
|
364
283
|
}
|
|
365
|
-
|
|
284
|
+
/**
|
|
285
|
+
* Interface representing screen capture events
|
|
286
|
+
* Contains metadata about screen recordings
|
|
287
|
+
*/
|
|
366
288
|
export interface ScreenEvent {
|
|
367
289
|
screenName: string;
|
|
368
290
|
timestamp: number;
|
|
@@ -371,6 +293,10 @@ export interface ScreenEvent {
|
|
|
371
293
|
metadata?: Record<string, any>;
|
|
372
294
|
dataUrl?: string;
|
|
373
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Interface representing gesture/touch events
|
|
298
|
+
* Contains information about user interactions with the screen
|
|
299
|
+
*/
|
|
374
300
|
export interface GestureEvent {
|
|
375
301
|
type: string;
|
|
376
302
|
timestamp: number;
|
|
@@ -391,6 +317,10 @@ export interface GestureEvent {
|
|
|
391
317
|
};
|
|
392
318
|
metadata?: Record<string, any>;
|
|
393
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Interface representing navigation events
|
|
322
|
+
* Contains information about screen/route changes
|
|
323
|
+
*/
|
|
394
324
|
export interface NavigationEvent {
|
|
395
325
|
type: string;
|
|
396
326
|
timestamp: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WidgetButtonPlacement=exports.SessionState=void 0;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WidgetButtonPlacement=exports.SessionState=void 0;var SessionState;(function(SessionState){SessionState["started"]="2";SessionState["paused"]="1";SessionState["stopped"]="0";})(SessionState||(exports.SessionState=SessionState={}));var WidgetButtonPlacement;(function(WidgetButtonPlacement){WidgetButtonPlacement["topLeft"]="top-left";WidgetButtonPlacement["topRight"]="top-right";WidgetButtonPlacement["bottomLeft"]="bottom-left";WidgetButtonPlacement["bottomRight"]="bottom-right";})(WidgetButtonPlacement||(exports.WidgetButtonPlacement=WidgetButtonPlacement={}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../../src/types/session-recorder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-recorder.js","sourceRoot":"","sources":["../../src/types/session-recorder.ts"],"names":[],"mappings":"AAOA,4CAA4C;AAE5C,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,4BAAY,CAAA;IACZ,6BAAa,CAAA;AACf,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,6CAAoB,CAAA;IACpB,+CAAsB,CAAA;IACtB,mDAA0B,CAAA;IAC1B,qDAA4B,CAAA;AAC9B,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC"}
|
package/dist/utils/logger.d.ts
CHANGED
package/dist/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.logger=exports.logWarn=exports.logSuccess=exports.logInfo=exports.logFailure=exports.logError=exports.logDebug=exports.LogLevel=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"));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 LogLevel;(function(LogLevel){LogLevel[LogLevel["DEBUG"]=0]="DEBUG";LogLevel[LogLevel["INFO"]=1]="INFO";LogLevel[LogLevel["WARN"]=2]="WARN";LogLevel[LogLevel["ERROR"]=3]="ERROR";})(LogLevel||(exports.LogLevel=LogLevel={}));var Logger=function(){function Logger(){(0,_classCallCheck2["default"])(this,Logger);this.config={level:LogLevel.INFO,
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.logger=exports.logWarn=exports.logSuccess=exports.logInfo=exports.logFailure=exports.logError=exports.logDebug=exports.LogLevel=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"));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 LogLevel;(function(LogLevel){LogLevel[LogLevel["DEBUG"]=0]="DEBUG";LogLevel[LogLevel["INFO"]=1]="INFO";LogLevel[LogLevel["WARN"]=2]="WARN";LogLevel[LogLevel["ERROR"]=3]="ERROR";})(LogLevel||(exports.LogLevel=LogLevel={}));var Logger=function(){function Logger(){(0,_classCallCheck2["default"])(this,Logger);this.config={level:LogLevel.INFO,enabled:true,enablePrefix:true,prefix:'[SessionRecorder]'};this.componentPrefixes=new Map([['ScreenRecorder','📸'],['NativeGestureRecorder','👆'],['SessionRecorderContext','🎯'],['EventExporter','📤'],['NavigationTracker','📸'],['RecorderReactNativeSDK','📤'],['DEBUGGER_LIB','🔍']]);}return(0,_createClass2["default"])(Logger,[{key:"configure",value:function configure(config){this.config=_objectSpread(_objectSpread({},this.config),config);}},{key:"setLevel",value:function setLevel(level){this.config.level=level;}},{key:"setConsoleEnabled",value:function setConsoleEnabled(enabled){this.config.enabled=enabled;}},{key:"setComponentPrefix",value:function setComponentPrefix(component,emoji){this.componentPrefixes.set(component,emoji);}},{key:"getPrefix",value:function getPrefix(component){if(!this.config.enablePrefix)return'';var emoji=this.componentPrefixes.get(component)||'📝';return"".concat(this.config.prefix," ").concat(emoji," [").concat(component,"]");}},{key:"shouldLog",value:function shouldLog(level){return level>=this.config.level&&this.config.enabled;}},{key:"formatMessage",value:function formatMessage(component,level,message,data){var prefix=this.getPrefix(component);var levelName=LogLevel[level];var formattedMessage="".concat(prefix," ").concat(levelName," ").concat(message);if(data!==undefined){formattedMessage+=" ".concat(JSON.stringify(data));}return formattedMessage;}},{key:"debug",value:function debug(component,message,data){if(!this.shouldLog(LogLevel.DEBUG))return;var formattedMessage=this.formatMessage(component,LogLevel.DEBUG,message,data);console.log(formattedMessage);}},{key:"info",value:function info(component,message,data){if(!this.shouldLog(LogLevel.INFO))return;var formattedMessage=this.formatMessage(component,LogLevel.INFO,message,data);console.log(formattedMessage);}},{key:"warn",value:function warn(component,message,data){if(!this.shouldLog(LogLevel.WARN))return;var formattedMessage=this.formatMessage(component,LogLevel.WARN,message,data);console.warn(formattedMessage);}},{key:"error",value:function error(component,message,data){if(!this.shouldLog(LogLevel.ERROR))return;var formattedMessage=this.formatMessage(component,LogLevel.ERROR,message,data);console.error(formattedMessage);}},{key:"success",value:function success(component,message,data){if(!this.shouldLog(LogLevel.INFO))return;var prefix=this.getPrefix(component);var formattedMessage="".concat(prefix," \u2705 ").concat(message);var fullMessage=formattedMessage;if(data!==undefined){fullMessage+=" ".concat(JSON.stringify(data));}console.log(fullMessage);}},{key:"failure",value:function failure(component,message,data){if(!this.shouldLog(LogLevel.ERROR))return;var prefix=this.getPrefix(component);var formattedMessage="".concat(prefix," \u274C ").concat(message);var fullMessage=formattedMessage;if(data!==undefined){fullMessage+=" ".concat(JSON.stringify(data));}console.error(fullMessage);}}]);}();var logger=exports.logger=new Logger();var logDebug=exports.logDebug=function logDebug(component,message,data){return logger.debug(component,message,data);};var logInfo=exports.logInfo=function logInfo(component,message,data){return logger.info(component,message,data);};var logWarn=exports.logWarn=function logWarn(component,message,data){return logger.warn(component,message,data);};var logError=exports.logError=function logError(component,message,data){return logger.error(component,message,data);};var logSuccess=exports.logSuccess=function logSuccess(component,message,data){return logger.success(component,message,data);};var logFailure=exports.logFailure=function logFailure(component,message,data){return logger.failure(component,message,data);};
|