@shopgate/pwa-core 7.12.3-beta.1 → 7.20.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/classes/AppCommand/index.js +3 -3
  2. package/classes/AppCommand/spec.js +1 -1
  3. package/classes/AppCommandRequest/index.js +78 -0
  4. package/classes/AppPermissionsRequest/AppPermissionsRequest.js +12 -39
  5. package/classes/AppPermissionsRequest/GetAppPermissionsRequest.js +5 -5
  6. package/classes/AppPermissionsRequest/RequestAppPermissionsRequest.js +5 -5
  7. package/classes/Bridge/index.js +1 -1
  8. package/classes/BrightnessRequest/index.js +4 -4
  9. package/classes/BrightnessRequest/spec.js +3 -3
  10. package/classes/BrowserConnector/index.js +19 -19
  11. package/classes/Conditioner/index.js +4 -4
  12. package/classes/Conditioner/spec.js +1 -1
  13. package/classes/DataRequest/index.js +7 -7
  14. package/classes/DevServerBridge/index.js +2 -2
  15. package/classes/ErrorManager/index.js +14 -5
  16. package/classes/ErrorManager/spec.js +1 -1
  17. package/classes/Event/index.js +12 -9
  18. package/classes/HttpRequest/index.js +9 -9
  19. package/classes/PipelineDependencies/index.js +2 -2
  20. package/classes/PipelineManager/index.js +9 -9
  21. package/classes/PipelineRequest/index.js +5 -5
  22. package/classes/PipelineRequest/mock.js +11 -11
  23. package/classes/PipelineSequence/index.js +2 -2
  24. package/classes/Request/index.js +8 -8
  25. package/classes/RequestBuffer/index.js +4 -3
  26. package/classes/RequestManager/index.js +2 -2
  27. package/classes/RequestManager/spec.js +1 -1
  28. package/classes/Scanner/index.js +61 -11
  29. package/classes/ScannerEvent/index.js +8 -4
  30. package/classes/ScannerEventHandler/index.js +15 -5
  31. package/classes/ScannerEventListener/index.js +14 -5
  32. package/classes/ScannerManager/ScanProcessingError.js +3 -3
  33. package/classes/ScannerManager/index.js +6 -6
  34. package/classes/WebStorageRequest/index.js +7 -7
  35. package/commands/brightness.js +1 -1
  36. package/commands/scanner.js +2 -2
  37. package/constants/AppEvents.js +1 -1
  38. package/constants/AppPermissions.js +18 -4
  39. package/constants/Trilean.js +3 -0
  40. package/helpers/index.js +1 -1
  41. package/helpers/version.js +7 -7
  42. package/index.js +1 -1
  43. package/package.json +1 -1
@@ -2,14 +2,25 @@ import _regeneratorRuntime from"@babel/runtime/regenerator";function _extends(){
2
2
  * The ErrorManager class.
3
3
  */var ErrorManager=/*#__PURE__*/function(){/**
4
4
  * Constructor.
5
- */function ErrorManager(){var _this=this;_classCallCheck(this,ErrorManager);_defineProperty(this,"startTimer",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.next=2;return _this.stopTimer();case 2:_this.timer=setInterval(_this.dispatch,500);case 3:case"end":return _context.stop();}}},_callee);})));_defineProperty(this,"stopTimer",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.next=2;return clearInterval(_this.timer);case 2:_this.timer=null;case 3:case"end":return _context2.stop();}}},_callee2);})));_defineProperty(this,"dispatch",function(){if(_this.errorQueue.size===0){return false;}_this.errorQueue.forEach(function(error){emitter.emit(error.source,error);});_this.stopTimer();_this.errorQueue.clear();return true;});_defineProperty(this,"validate",function(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _error$code=error.code,code=_error$code===void 0?null:_error$code,_error$message=error.message,message=_error$message===void 0?null:_error$message,_error$source=error.source,source=_error$source===void 0?null:_error$source;if(!code||!message||!source){return false;}if(typeof code!=='string'||typeof source!=='string'){return false;}return typeof message==='string'||typeof message==='function';});// Queue of errors that will be dispatched.
5
+ */function ErrorManager(){var _this=this;_classCallCheck(this,ErrorManager);/**
6
+ * Calls dispatch() as an interval.
7
+ */_defineProperty(this,"startTimer",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:_context.next=2;return _this.stopTimer();case 2:_this.timer=setInterval(_this.dispatch,500);case 3:case"end":return _context.stop();}},_callee);})));/**
8
+ * Clears the dispatch interval.
9
+ */_defineProperty(this,"stopTimer",/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return clearInterval(_this.timer);case 2:_this.timer=null;case 3:case"end":return _context2.stop();}},_callee2);})));/**
10
+ * Dispatched the stored error objects through the event emitter.
11
+ * @returns {boolean}
12
+ */_defineProperty(this,"dispatch",function(){if(_this.errorQueue.size===0){return false;}_this.errorQueue.forEach(function(error){emitter.emit(error.source,error);});_this.stopTimer();_this.errorQueue.clear();return true;});/**
13
+ * Validates an error object.
14
+ * @param {*} error The error object.
15
+ * @returns {boolean}
16
+ */_defineProperty(this,"validate",function(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var _error$code=error.code,code=_error$code===void 0?null:_error$code,_error$message=error.message,message=_error$message===void 0?null:_error$message,_error$source=error.source,source=_error$source===void 0?null:_error$source;if(!code||!message||!source){return false;}if(typeof code!=='string'||typeof source!=='string'){return false;}return typeof message==='string'||typeof message==='function';});// Queue of errors that will be dispatched.
6
17
  this.errorQueue=new Map();// List of override message for specific errors.
7
18
  this.messages={};// A variable to handle the intervals.
8
19
  this.timer=null;}/**
9
20
  * Gets a message by the given error.
10
21
  * @param {{ code: string, context: string, source: string }} error The error object.
11
22
  * @returns {string|null}
12
- */_createClass(ErrorManager,[{key:"getMessage",value:function getMessage(error){if(!this.validate(error)){return null;}var code=error.code,_error$context=error.context,context=_error$context===void 0?DEFAULT_CONTEXT:_error$context,source=error.source;var id="".concat(source,"-").concat(context,"-").concat(code);var unvId="".concat(source,"-").concat(context.replace(pipelineVersionSuffix,''),"-").concat(code);var defaultId="".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code);var message=this.messages[id]||this.messages[unvId]||this.messages[defaultId]||null;if(typeof message==='function'){message=message(error);}return message;}/**
23
+ */return _createClass(ErrorManager,[{key:"getMessage",value:function getMessage(error){if(!this.validate(error)){return null;}var code=error.code,_error$context=error.context,context=_error$context===void 0?DEFAULT_CONTEXT:_error$context,source=error.source;var id="".concat(source,"-").concat(context,"-").concat(code);var unvId="".concat(source,"-").concat(context.replace(pipelineVersionSuffix,''),"-").concat(code);var defaultId="".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code);var message=this.messages[id]||this.messages[unvId]||this.messages[defaultId]||null;if(typeof message==='function'){message=message(error);}return message;}/**
13
24
  * Sets an override for a specific error message.
14
25
  * @param {Object} errorTemplate The error object.
15
26
  * @param {string} errorTemplate.code The error code.
@@ -25,6 +36,4 @@ this.timer=null;}/**
25
36
  * @param {string} error.message The default error message.
26
37
  * @param {string} error.source The source of the error.
27
38
  * @param {Object} error.meta Some meta data.
28
- */},{key:"queue",value:function queue(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!this.validate(error)){return;}var code=error.code,_error$context3=error.context,context=_error$context3===void 0?DEFAULT_CONTEXT:_error$context3,message=error.message,source=error.source,meta=error.meta,_error$severity=error.severity,severity=_error$severity===void 0?DEFAULT_SEVERITY:_error$severity;var id="".concat(source,"-").concat(context,"-").concat(code);var overrideMessage=this.getMessage(error)||message;this.errorQueue.set(id,{id:id,code:code,context:context,message:overrideMessage,meta:_extends({},meta,{message:message}),source:source,severity:severity});if(!this.timer){this.startTimer();}}/**
29
- * Calls dispatch() as an interval.
30
- */}]);return ErrorManager;}();/** @type {ErrorManager} */export default new ErrorManager();
39
+ */},{key:"queue",value:function queue(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(!this.validate(error)){return;}var code=error.code,_error$context3=error.context,context=_error$context3===void 0?DEFAULT_CONTEXT:_error$context3,message=error.message,source=error.source,meta=error.meta,_error$severity=error.severity,severity=_error$severity===void 0?DEFAULT_SEVERITY:_error$severity;var id="".concat(source,"-").concat(context,"-").concat(code);var overrideMessage=this.getMessage(error)||message;this.errorQueue.set(id,{id:id,code:code,context:context,message:overrideMessage,meta:_extends({},meta,{message:message}),source:source,severity:severity});if(!this.timer){this.startTimer();}}}]);}();/** @type {ErrorManager} */export default new ErrorManager();
@@ -1,2 +1,2 @@
1
- import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import errorManager,{emitter}from'.';import{DEFAULT_CONTEXT,DEFAULT_SEVERITY}from"../../constants/ErrorManager";describe('ErrorManager',function(){beforeEach(function(){errorManager.constructor();});describe('errorManager.validate',function(){it('should accept a valid error object',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(true);});it('should accept a valid error object with cb message',function(){var code='EUNKNOWN';var message=jest.fn();var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(true);});it('should reject an error object with missing mandatory fields',function(){var response=errorManager.validate();expect(response).toEqual(false);});it('should reject an error object with fields that are not a string',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(false);});});describe('errorManager.getMessage',function(){var code='EUNKNOWN';var source='pipeline';var context='shopgate.catalog.getFoo';var message='Test Message';it('should return the null when no override message is found',function(){var errorMessage=errorManager.getMessage({code:code,context:context,source:source});expect(errorMessage).toBeNull();});it('should return the message',function(){errorManager.setMessage({code:code,context:context,message:message});var errorMessage=errorManager.getMessage({code:code,context:context,source:source,message:message});expect(errorMessage).toBe(message);});it('should use callback for error message',function(){var overrideMessage=jest.fn().mockReturnValue('CB Error');errorManager.setMessage({code:code,context:context,message:overrideMessage});var error={code:code,context:context,source:source,message:message};expect(errorManager.getMessage(error)).toBe('CB Error');expect(overrideMessage).toBeCalledWith(error);});});describe('errorManager.setMessage',function(){it('should add an override message',function(){var code='EUNKNOWN';var context='shopgate.catalog.getUser';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,context:context,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(context,"-").concat(code)]).toEqual(message);});it('should add an override message with no set context',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toEqual(message);});it('should ignore setting a message with missing error object',function(){var code='EUNKNOWN';var source='pipeline';errorManager.setMessage();expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should ignore setting a message with missing mandatory fields',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should ignore setting a message with invalid input',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});});describe('errorManager.queue',function(){it('should not queue a missing error',function(){var code='EUNKNOWN';var source='pipeline';errorManager.queue();expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should not queue an invalid error',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';errorManager.queue({code:code,message:message,source:source});expect(errorManager.errorQueue.has("".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code))).toEqual(false);});it('should queue errors only once',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';var callback=jest.fn();emitter.addListener('pipeline',callback);errorManager.queue({code:code,message:message,source:source});errorManager.queue({code:code,message:message,source:source});expect(errorManager.errorQueue.has("".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code))).toEqual(true);expect(errorManager.errorQueue.size).toEqual(1);});});it('should not dispatch when there are no errors',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var callback,dispatch;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:callback=jest.fn();emitter.addListener('pipeline',callback);dispatch=errorManager.dispatch();expect(dispatch).toEqual(false);case 4:case"end":return _context.stop();}}},_callee);})));it('should dispatch the errors through events',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var code,message,source,callback,callback2;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:code='EUNKNOWN';message='Something went horribly wrong!';source='pipeline';callback=jest.fn();callback2=jest.fn();emitter.addListener('pipeline',callback);emitter.addListener('pipeline',callback2);_context2.next=9;return errorManager.queue({code:code,message:message,source:source});case 9:_context2.next=11;return errorManager.queue({code:'EUNKNOWN2',message:message,source:source});case 11:expect(errorManager.errorQueue.size).toEqual(2);errorManager.dispatch();expect(callback).toBeCalled();expect(callback2).toBeCalled();expect(errorManager.errorQueue.size).toEqual(0);case 16:case"end":return _context2.stop();}}},_callee2);})));it('should set a queue entry with meta data',function(){var code='EUNKNOWN';var replacementMessage='Replacement Message';var message='Original Message';var source='pipeline';// Setup a replacement message for the error code.
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}import errorManager,{emitter}from'.';import{DEFAULT_CONTEXT,DEFAULT_SEVERITY}from"../../constants/ErrorManager";describe('ErrorManager',function(){beforeEach(function(){errorManager.constructor();});describe('errorManager.validate',function(){it('should accept a valid error object',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(true);});it('should accept a valid error object with cb message',function(){var code='EUNKNOWN';var message=jest.fn();var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(true);});it('should reject an error object with missing mandatory fields',function(){var response=errorManager.validate();expect(response).toEqual(false);});it('should reject an error object with fields that are not a string',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';var response=errorManager.validate({code:code,message:message,source:source});expect(response).toEqual(false);});});describe('errorManager.getMessage',function(){var code='EUNKNOWN';var source='pipeline';var context='shopgate.catalog.getFoo';var message='Test Message';it('should return the null when no override message is found',function(){var errorMessage=errorManager.getMessage({code:code,context:context,source:source});expect(errorMessage).toBeNull();});it('should return the message',function(){errorManager.setMessage({code:code,context:context,message:message});var errorMessage=errorManager.getMessage({code:code,context:context,source:source,message:message});expect(errorMessage).toBe(message);});it('should use callback for error message',function(){var overrideMessage=jest.fn().mockReturnValue('CB Error');errorManager.setMessage({code:code,context:context,message:overrideMessage});var error={code:code,context:context,source:source,message:message};expect(errorManager.getMessage(error)).toBe('CB Error');expect(overrideMessage).toBeCalledWith(error);});});describe('errorManager.setMessage',function(){it('should add an override message',function(){var code='EUNKNOWN';var context='shopgate.catalog.getUser';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,context:context,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(context,"-").concat(code)]).toEqual(message);});it('should add an override message with no set context',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toEqual(message);});it('should ignore setting a message with missing error object',function(){var code='EUNKNOWN';var source='pipeline';errorManager.setMessage();expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should ignore setting a message with missing mandatory fields',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should ignore setting a message with invalid input',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';errorManager.setMessage({code:code,message:message,source:source});expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});});describe('errorManager.queue',function(){it('should not queue a missing error',function(){var code='EUNKNOWN';var source='pipeline';errorManager.queue();expect(errorManager.messages["".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code)]).toBeUndefined();});it('should not queue an invalid error',function(){var code=404;var message='Something went horribly wrong!';var source='pipeline';errorManager.queue({code:code,message:message,source:source});expect(errorManager.errorQueue.has("".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code))).toEqual(false);});it('should queue errors only once',function(){var code='EUNKNOWN';var message='Something went horribly wrong!';var source='pipeline';var callback=jest.fn();emitter.addListener('pipeline',callback);errorManager.queue({code:code,message:message,source:source});errorManager.queue({code:code,message:message,source:source});expect(errorManager.errorQueue.has("".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code))).toEqual(true);expect(errorManager.errorQueue.size).toEqual(1);});});it('should not dispatch when there are no errors',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var callback,dispatch;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:callback=jest.fn();emitter.addListener('pipeline',callback);dispatch=errorManager.dispatch();expect(dispatch).toEqual(false);case 4:case"end":return _context.stop();}},_callee);})));it('should dispatch the errors through events',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var code,message,source,callback,callback2;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:code='EUNKNOWN';message='Something went horribly wrong!';source='pipeline';callback=jest.fn();callback2=jest.fn();emitter.addListener('pipeline',callback);emitter.addListener('pipeline',callback2);_context2.next=9;return errorManager.queue({code:code,message:message,source:source});case 9:_context2.next=11;return errorManager.queue({code:'EUNKNOWN2',message:message,source:source});case 11:expect(errorManager.errorQueue.size).toEqual(2);errorManager.dispatch();expect(callback).toBeCalled();expect(callback2).toBeCalled();expect(errorManager.errorQueue.size).toEqual(0);case 16:case"end":return _context2.stop();}},_callee2);})));it('should set a queue entry with meta data',function(){var code='EUNKNOWN';var replacementMessage='Replacement Message';var message='Original Message';var source='pipeline';// Setup a replacement message for the error code.
2
2
  errorManager.setMessage({code:code,source:source,message:replacementMessage});var callback=jest.fn();emitter.addListener('pipeline',callback);errorManager.queue({message:message,code:code,source:source});errorManager.dispatch();expect(callback).toBeCalledWith({id:"".concat(source,"-").concat(DEFAULT_CONTEXT,"-").concat(code),context:DEFAULT_CONTEXT,message:replacementMessage,code:code,source:source,meta:{message:message},severity:DEFAULT_SEVERITY});});});
@@ -1,20 +1,23 @@
1
- function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import EventEmitter from'events';import{APP_EVENT_GET_APP_PERMISSIONS_RESPONSE,APP_EVENT_REQUEST_APP_PERMISSIONS_RESPONSE}from"../../constants/AppEvents";import{logger}from"../../helpers";var HANDLER_ADD='add';var HANDLER_REMOVE='remove';/**
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import EventEmitter from'events';import{logger}from"../../helpers";var HANDLER_ADD='add';var HANDLER_REMOVE='remove';/* eslint-disable extra-rules/potential-point-free */ /**
2
2
  * Event class.
3
- */var Event=/*#__PURE__*/function(_EventEmitter){_inherits(Event,_EventEmitter);/**
3
+ */var Event=/*#__PURE__*/function(_EventEmitter){/**
4
4
  * Constructor.
5
- */function Event(){var _this;_classCallCheck(this,Event);_this=_possibleConstructorReturn(this,_getPrototypeOf(Event).call(this));_this.setMaxListeners(20);/**
5
+ */function Event(){var _this2;_classCallCheck(this,Event);_this2=_callSuper(this,Event);_this2.events=new Set();_this2.setMaxListeners(20);/**
6
6
  * A global implementation of the call function to make it accessible to the app.
7
7
  *
8
8
  * We have to check here if there is already a __call from the cake2 project present.
9
9
  * This could happen because we use the tracking-core in the cake2 project.
10
10
  */ // eslint-disable-next-line no-underscore-dangle
11
11
  var legacy=window.SGEvent.__call;if(typeof legacy!=='function'){// eslint-disable-next-line no-underscore-dangle
12
- window.SGEvent.__call=_this.call.bind(_assertThisInitialized(_this));}else{// eslint-disable-next-line no-underscore-dangle
13
- window.SGEvent.__call=function(){var _this2;legacy.apply(void 0,arguments);(_this2=_this).call.apply(_this2,arguments);};}return _this;}/**
12
+ window.SGEvent.__call=_this2.call.bind(_this2);}else{// eslint-disable-next-line no-underscore-dangle
13
+ window.SGEvent.__call=function(){var _this3;legacy.apply(void 0,arguments);(_this3=_this2).call.apply(_this3,arguments);};}return _this2;}/**
14
+ * Registers a new event
15
+ * @param {string} eventName The new event name
16
+ */_inherits(Event,_EventEmitter);return _createClass(Event,[{key:"registerEvent",value:function registerEvent(eventName){this.events.add(eventName);}/**
14
17
  * Registers a callback function for one or multiple events.
15
18
  * @param {string} events A single event or multiple events separated by comma.
16
19
  * @param {Function} callback The callback function.
17
- */_createClass(Event,[{key:"addCallback",value:function addCallback(events,callback){this.handleCallbacks(HANDLER_ADD,events,callback);}/**
20
+ */},{key:"addCallback",value:function addCallback(events,callback){this.handleCallbacks(HANDLER_ADD,events,callback);}/**
18
21
  * De-registers a callback function for one or multiple events.
19
22
  * @param {string} events A single event or multiple events separated by comma.
20
23
  * @param {Function} callback The callback function.
@@ -23,11 +26,11 @@ window.SGEvent.__call=function(){var _this2;legacy.apply(void 0,arguments);(_thi
23
26
  * @param {string} type What type of action should be performed.
24
27
  * @param {string} events A single event or multiple events separated by comma.
25
28
  * @param {Function} callback The callback function.
26
- */},{key:"handleCallbacks",value:function handleCallbacks(type,events,callback){var _this3=this;var eventNames=events.split(',');eventNames.forEach(function(event){switch(type){case HANDLER_ADD:_this3.addListener(event,callback);break;case HANDLER_REMOVE:_this3.removeListener(event,callback);break;default:break;}});}/**
29
+ */},{key:"handleCallbacks",value:function handleCallbacks(type,events,callback){var _this4=this;var eventNames=events.split(',');eventNames.forEach(function(event){switch(type){case HANDLER_ADD:_this4.addListener(event,callback);break;case HANDLER_REMOVE:_this4.removeListener(event,callback);break;default:break;}});}/**
27
30
  * Triggers an event.
28
31
  * @param {string} event The event name.
29
32
  * @param {Object} params Custom parameters for the event.
30
- */},{key:"trigger",value:function trigger(event){var _this4=this;var params=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;setTimeout(function(){return _this4.emit(event,params);},0);}/**
33
+ */},{key:"trigger",value:function trigger(event){var _this5=this;var params=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;setTimeout(function(){return _this5.emit(event,params);},0);}/**
31
34
  * This function will be called by the app to trigger events.
32
35
  * @param {string} event The event name.
33
36
  * @param {Array} [parameters=[]] The event parameters.
@@ -36,6 +39,6 @@ window.SGEvent.__call=function(){var _this2;legacy.apply(void 0,arguments);(_thi
36
39
  * When these commands were fired, a serial was created in order
37
40
  * to identify an appropriate callback event.
38
41
  * To identify these callbacks, the serial has to be decoded from the parameter list.
39
- */if(['pipelineResponse','httpResponse'].includes(event)){eventName+=":".concat(parameters[1]);}else if(['dataResponse','webStorageResponse',APP_EVENT_GET_APP_PERMISSIONS_RESPONSE,APP_EVENT_REQUEST_APP_PERMISSIONS_RESPONSE].includes(event)){eventName+=":".concat(parameters[0]);}var calledEvent=this.emit.apply(this,[eventName].concat(parameters));if(!calledEvent){logger.warn("Attempt to call unknown event: ".concat(eventName));}}}]);return Event;}(EventEmitter);// TODO:
42
+ */if(['pipelineResponse','httpResponse'].includes(event)){eventName+=":".concat(parameters[1]);}else if(['dataResponse','webStorageResponse'].includes(event)||Array.from(this.events).includes(event)){eventName+=":".concat(parameters[0]);}var calledEvent=this.emit.apply(this,[eventName].concat(parameters));if(!calledEvent){logger.warn("Attempt to call unknown event: ".concat(eventName));}}}]);}(EventEmitter);/* eslint-enable extra-rules/potential-point-free */ // TODO:
40
43
  // We need this as a temporary solution because of double node_modules form extensions and theme.
41
44
  if(!window.TmpEventInstance){window.TmpEventInstance=new Event();}export default window.TmpEventInstance;
@@ -1,14 +1,14 @@
1
- function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import{logger}from"../../helpers";import logGroup from"../../helpers/logGroup";import event from"../Event";import AppCommand from"../AppCommand";import Request from"../Request";import requestBuffer from"../RequestBuffer";/**
1
+ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import{logger}from"../../helpers";import logGroup from"../../helpers/logGroup";import event from"../Event";import AppCommand from"../AppCommand";import Request from"../Request";import requestBuffer from"../RequestBuffer";/**
2
2
  * The http request class.
3
3
  * It sends a http request and returns a promise.
4
- */var HttpRequest=/*#__PURE__*/function(_Request){_inherits(HttpRequest,_Request);/**
4
+ */var HttpRequest=/*#__PURE__*/function(_Request){/**
5
5
  * Initializes the HttpRequest object
6
6
  * @param {string} url The url for the request
7
- */function HttpRequest(url){var _this;_classCallCheck(this,HttpRequest);_this=_possibleConstructorReturn(this,_getPrototypeOf(HttpRequest).call(this));_this.url=url;_this.method='GET';_this.followRedirects=false;_this.timeout=30000;_this.payload=null;_this.contentType=null;_this.createSerial(_this.url);_this.createEventCallbackName('httpResponse');return _this;}/**
7
+ */function HttpRequest(url){var _this2;_classCallCheck(this,HttpRequest);_this2=_callSuper(this,HttpRequest);_this2.url=url;_this2.method='GET';_this2.followRedirects=false;_this2.timeout=30000;_this2.payload=null;_this2.contentType=null;_this2.createSerial(_this2.url);_this2.createEventCallbackName('httpResponse');return _this2;}/**
8
8
  * Sets the payload for the HttpRequest
9
9
  * @param {Object|string} [payload={}] The payload to send with the request
10
10
  * @returns {HttpRequest}
11
- */_createClass(HttpRequest,[{key:"setPayload",value:function setPayload(){var payload=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.payload=payload;return this;}/**
11
+ */_inherits(HttpRequest,_Request);return _createClass(HttpRequest,[{key:"setPayload",value:function setPayload(){var payload=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.payload=payload;return this;}/**
12
12
  * Sets the contentType for the HttpRequest
13
13
  * @param {string} type The contentType for request
14
14
  * @returns {HttpRequest}
@@ -40,13 +40,13 @@ function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="s
40
40
  */var serializeObject=function serializeObject(obj,prefix){var result=[];Object.keys(obj).forEach(function(propName){var key=prefix?"".concat(prefix,"[").concat(propName,"]"):propName;var value=obj[propName];var tmp;if(_typeof(value)==='object'&&value!==null){tmp=serializeObject(value,key);}else{tmp="".concat(window.encodeURIComponent(key),"=").concat(window.encodeURIComponent(value));}result.push(tmp);});return result.join('&');};var body='';if(this.payload){if(_typeof(this.payload)==='object'){if(this.contentType==='application/json'){body=JSON.stringify(this.payload);}else{body=serializeObject(this.payload);}}else if(typeof this.payload==='string'){body=this.payload;}}return body;}/**
41
41
  * Sends the HttpRequest and returns a promise.
42
42
  * @returns {Promise}
43
- */},{key:"dispatch",value:function dispatch(){var _this2=this;return new Promise(function(resolve,reject){var requestCallbackName=_this2.getEventCallbackName();requestBuffer.add(_this2,_this2.serial);// Prepare the options for the request
44
- var options={url:_this2.url,serial:_this2.serial,method:_this2.method,timeout:_this2.timeout,followRedirects:_this2.followRedirects,body:_this2.getRequestBody(),contentType:_this2.contentType?_this2.contentType:_this2.getContentType()};/**
43
+ */},{key:"dispatch",value:function dispatch(){var _this3=this;return new Promise(function(resolve,reject){var requestCallbackName=_this3.getEventCallbackName();requestBuffer.add(_this3,_this3.serial);// Prepare the options for the request
44
+ var options={url:_this3.url,serial:_this3.serial,method:_this3.method,timeout:_this3.timeout,followRedirects:_this3.followRedirects,body:_this3.getRequestBody(),contentType:_this3.contentType?_this3.contentType:_this3.getContentType()};/**
45
45
  * The request event callback for the response call.
46
46
  * @param {Object|null} error The error object if an error happened.
47
47
  * @param {string} serial The serial that was used to identify the HttpRequest callback
48
48
  * @param {Object} response The response for the HttpRequest
49
49
  * @return {Object}
50
- */var requestCallback=function requestCallback(error,serial,response){event.removeCallback(requestCallbackName,requestCallback);requestBuffer.remove(serial);logGroup("HttpResponse %c".concat(_this2.url),{options:options,error:error,response:response});if(error){return reject(error);}return resolve(response);};// Apply the event callback.
51
- event.addCallback(requestCallbackName,requestCallback);logGroup("HttpRequest %c".concat(_this2.url),{payload:_this2.payload});// Send the HttpRequest.
52
- var command=new AppCommand();command.setCommandName('sendHttpRequest').setLibVersion('13.0').dispatch(options);});}}]);return HttpRequest;}(Request);export default HttpRequest;
50
+ */var requestCallback=function requestCallback(error,serial,response){event.removeCallback(requestCallbackName,requestCallback);requestBuffer.remove(serial);logGroup("HttpResponse %c".concat(_this3.url),{options:options,error:error,response:response});if(error){return reject(error);}return resolve(response);};// Apply the event callback.
51
+ event.addCallback(requestCallbackName,requestCallback);logGroup("HttpRequest %c".concat(_this3.url),{payload:_this3.payload});// Send the HttpRequest.
52
+ var command=new AppCommand();command.setCommandName('sendHttpRequest').setLibVersion('13.0').dispatch(options);});}}]);}(Request);export default HttpRequest;
@@ -6,7 +6,7 @@ function _classCallCheck(instance,Constructor){if(!(instance instanceof Construc
6
6
  * Sets new dependencies for a pipeline request.
7
7
  * @param {string} pipelineName The name of the pipeline request.
8
8
  * @param {Array|string} dependencies Pipeline names to set as a dependency.
9
- */_createClass(PipelineDependencies,[{key:"set",value:function set(pipelineName){var _this=this;var dependencies=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var newDependencies=[].concat(dependencies);if(!dependencies||!dependencies.length){return;}if(!this.has(pipelineName)){this.dependencies[pipelineName]=new Set(newDependencies);}else{newDependencies.forEach(function(dep){return _this.dependencies[pipelineName].add(dep);});}logGroup("PipelineDependencies %c".concat(pipelineName),this.dependencies,'#FFCD34');}/**
9
+ */return _createClass(PipelineDependencies,[{key:"set",value:function set(pipelineName){var _this=this;var dependencies=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var newDependencies=[].concat(dependencies);if(!dependencies||!dependencies.length){return;}if(!this.has(pipelineName)){this.dependencies[pipelineName]=new Set(newDependencies);}else{newDependencies.forEach(function(dep){return _this.dependencies[pipelineName].add(dep);});}logGroup("PipelineDependencies %c".concat(pipelineName),this.dependencies,'#FFCD34');}/**
10
10
  * Returns a list of pipeline names that are a dependency of a pipeline request.
11
11
  * @param {string} pipelineName The name of the pipeline request.
12
12
  * @return {Set}
@@ -14,4 +14,4 @@ function _classCallCheck(instance,Constructor){if(!(instance instanceof Construc
14
14
  * Checks if a pipeline has dependencies registered
15
15
  * @param {string} pipelineName The pipeline name
16
16
  * @return {boolean}
17
- */},{key:"has",value:function has(pipelineName){return this.dependencies.hasOwnProperty(pipelineName);}}]);return PipelineDependencies;}();export default new PipelineDependencies();
17
+ */},{key:"has",value:function has(pipelineName){return this.dependencies.hasOwnProperty(pipelineName);}}]);}();export default new PipelineDependencies();
@@ -3,7 +3,11 @@ function _toArray(arr){return _arrayWithHoles(arr)||_iterableToArray(arr)||_nonI
3
3
  * Manages requests, retries responses and timeouts of PipelineRequest instances.
4
4
  */var PipelineManager=/*#__PURE__*/function(){/**
5
5
  * Constructor.
6
- */function PipelineManager(){_classCallCheck(this,PipelineManager);_defineProperty(this,"sanitizeError",function(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var sanitizedCode=error.code;if(sanitizedCode){sanitizedCode=sanitizedCode.toString();}if(sanitizedCode==='-999'){// Pipeline / socket timeout code from the OS.
6
+ */function PipelineManager(){_classCallCheck(this,PipelineManager);/**
7
+ * Sanitizes error objects.
8
+ * @param {Object} error An error object.
9
+ * @return {Object}
10
+ */_defineProperty(this,"sanitizeError",function(){var error=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var sanitizedCode=error.code;if(sanitizedCode){sanitizedCode=sanitizedCode.toString();}if(sanitizedCode==='-999'){// Pipeline / socket timeout code from the OS.
7
11
  sanitizedCode=ETIMEOUT;}else if(sanitizedCode==='-1000'){// Network IO exception
8
12
  sanitizedCode=ENETUNREACH;}return _extends({},error,{code:sanitizedCode});});// The open requests at any given time.
9
13
  this.requests=new Map();// The pipelines which have currently running requests.
@@ -11,7 +15,7 @@ this.pipelines=new Map();// The error codes that should be suppressed.
11
15
  this.suppressedErrors=[];}/**
12
16
  * Adds error code(s) to the suppressed collection.
13
17
  * @param {Array|string} code The code(s) of the errors to suppress.
14
- */_createClass(PipelineManager,[{key:"addSuppressedErrors",value:function addSuppressedErrors(code){var codes=[].concat(code);this.suppressedErrors=[].concat(this.suppressedErrors,codes);}/**
18
+ */return _createClass(PipelineManager,[{key:"addSuppressedErrors",value:function addSuppressedErrors(code){var codes=[].concat(code);this.suppressedErrors=[].concat(this.suppressedErrors,codes);}/**
15
19
  * Adds a new PipelineRequest instance.
16
20
  * @param {PipelineRequest} request The pipeline request instance.
17
21
  * @return {Promise}
@@ -51,14 +55,10 @@ entry.deferred=false;_this4.sendRequest(serial);});}/**
51
55
  * Handles the request timeout.
52
56
  * @param {string} serial The pipeline request serial.
53
57
  */},{key:"handleTimeout",value:function handleTimeout(serial){var _this5=this;var entry=this.requests.get(serial);var request=entry.request,retries=entry.retries;entry.timer=setTimeout(function(){if(!retries){var error={message:"Pipeline '".concat(request.name,".v").concat(request.version,"' timed out after ").concat(request.timeout,"ms"),code:ETIMEOUT};// Invoke the request callback with the timeout error.
54
- request.callback(error,serial);return;}_this5.decrementRetries(serial);_this5.sendRequest(serial);},request.timeout);}/**
55
- * Sanitizes error objects.
56
- * @param {Object} error An error object.
57
- * @return {Object}
58
- */},{key:"handleError",/**
58
+ request.callback(error,serial);return;}_this5.decrementRetries(serial);_this5.sendRequest(serial);},request.timeout);}},{key:"handleError",value:/**
59
59
  * Handles a pipeline error.
60
60
  * @param {string} serial The pipeline request serial.
61
- */value:function handleError(serial){var _this$requests$get=this.requests.get(serial),request=_this$requests$get.request;var pipelineName=this.getPipelineNameBySerial(serial);request.error=this.sanitizeError(request.error);var _ref=request.error||{},code=_ref.code,message=_ref.message,validationErrors=_ref.validationErrors,errors=_ref.errors,additionalParams=_ref.additionalParams,translated=_ref.translated;var err=new Error(message);err.code=code;err.message=message;if(validationErrors!==undefined){err.validationErrors=validationErrors;}if(errors!==undefined){err.errors=errors;}var handleError=request.handleErrors===errorHandleTypes.ERROR_HANDLE_DEFAULT;// Don't handle generally suppressed or via pipeline request blacklisted errors
61
+ */function handleError(serial){var _this$requests$get=this.requests.get(serial),request=_this$requests$get.request;var pipelineName=this.getPipelineNameBySerial(serial);request.error=this.sanitizeError(request.error);var _ref=request.error||{},code=_ref.code,message=_ref.message,validationErrors=_ref.validationErrors,errors=_ref.errors,additionalParams=_ref.additionalParams,translated=_ref.translated;var err=new Error(message);err.code=code;err.message=message;if(validationErrors!==undefined){err.validationErrors=validationErrors;}if(errors!==undefined){err.errors=errors;}var handleError=request.handleErrors===errorHandleTypes.ERROR_HANDLE_DEFAULT;// Don't handle generally suppressed or via pipeline request blacklisted errors
62
62
  if(this.suppressedErrors.includes(code)||request.errorBlacklist.includes(code)){handleError=false;}if(handleError){errorManager.queue({source:errorSources.SOURCE_PIPELINE,context:pipelineName,meta:{input:request.input,behavior:request.getErrorResponseBehavior(),additionalParams:additionalParams,translated:translated},code:code,message:message});}err.handled=handleError;if(!Array.isArray(request.reject)){request.reject(err);}else{request.reject.forEach(function(reject){reject(err);});}}/**
63
63
  * Handles the result of a dispatched PipelineRequest.
64
64
  * @param {string} serial The pipeline request serial.
@@ -123,4 +123,4 @@ reject:function reject(){}// moved over to the current request
123
123
  * Returns the retries prefix for logs.
124
124
  * @param {string} serial The pipeline request serial.
125
125
  * @return {string}
126
- */},{key:"getRetriesPrefix",value:function getRetriesPrefix(serial){var _this$requests$get4=this.requests.get(serial),request=_this$requests$get4.request,retries=_this$requests$get4.retries;var numRetries=request.retries-retries;return numRetries?"Retry ".concat(numRetries,": "):'';}}]);return PipelineManager;}();export default new PipelineManager();
126
+ */},{key:"getRetriesPrefix",value:function getRetriesPrefix(serial){var _this$requests$get4=this.requests.get(serial),request=_this$requests$get4.request,retries=_this$requests$get4.retries;var numRetries=request.retries-retries;return numRetries?"Retry ".concat(numRetries,": "):'';}}]);}();export default new PipelineManager();
@@ -1,12 +1,12 @@
1
- function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import Request from"../Request";import pipelineManager from"../PipelineManager";import{CURRENT_VERSION}from"../../constants/Pipeline";import*as processTypes from"../../constants/ProcessTypes";import*as errorHandleTypes from"../../constants/ErrorHandleTypes";import{logger}from"../../helpers";export var DEFAULT_VERSION=CURRENT_VERSION;export var DEFAULT_RETRIES=3;export var DEFAULT_MAX_RETRIES=5;export var DEFAULT_INPUT={};export var DEFAULT_TIMEOUT=20000;export var DEFAULT_MAX_TIMEOUT=30000;export var DEFAULT_PROCESSED=processTypes.PROCESS_ALWAYS;export var DEFAULT_HANDLE_ERROR=errorHandleTypes.ERROR_HANDLE_DEFAULT;/**
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import Request from"../Request";import pipelineManager from"../PipelineManager";import{CURRENT_VERSION}from"../../constants/Pipeline";import*as processTypes from"../../constants/ProcessTypes";import*as errorHandleTypes from"../../constants/ErrorHandleTypes";import{logger}from"../../helpers";export var DEFAULT_VERSION=CURRENT_VERSION;export var DEFAULT_RETRIES=3;export var DEFAULT_MAX_RETRIES=5;export var DEFAULT_INPUT={};export var DEFAULT_TIMEOUT=20000;export var DEFAULT_MAX_TIMEOUT=30000;export var DEFAULT_PROCESSED=processTypes.PROCESS_ALWAYS;export var DEFAULT_HANDLE_ERROR=errorHandleTypes.ERROR_HANDLE_DEFAULT;/**
2
2
  * Defines a pipeline request.
3
3
  * @class
4
- */var PipelineRequest=/*#__PURE__*/function(_Request){_inherits(PipelineRequest,_Request);/**
4
+ */var PipelineRequest=/*#__PURE__*/function(_Request){/**
5
5
  * @param {string} name The pipeline name. Excluding the version.
6
- */function PipelineRequest(name){var _this;_classCallCheck(this,PipelineRequest);if(!name)throw new Error('The \'name\' parameter is not set!');_this=_possibleConstructorReturn(this,_getPrototypeOf(PipelineRequest).call(this));_this.name=name;_this.version=DEFAULT_VERSION;_this.input=DEFAULT_INPUT;_this.trusted=false;_this.retries=DEFAULT_RETRIES;_this.timeout=DEFAULT_TIMEOUT;_this.process=DEFAULT_PROCESSED;_this.handleErrors=DEFAULT_HANDLE_ERROR;_this.errorBlacklist=[];_this.responseBehavior={success:null,error:null};return _this;}/**
6
+ */function PipelineRequest(name){var _this2;_classCallCheck(this,PipelineRequest);if(!name)throw new Error('The \'name\' parameter is not set!');_this2=_callSuper(this,PipelineRequest);_this2.name=name;_this2.version=DEFAULT_VERSION;_this2.input=DEFAULT_INPUT;_this2.trusted=false;_this2.retries=DEFAULT_RETRIES;_this2.timeout=DEFAULT_TIMEOUT;_this2.process=DEFAULT_PROCESSED;_this2.handleErrors=DEFAULT_HANDLE_ERROR;_this2.errorBlacklist=[];_this2.responseBehavior={success:null,error:null};return _this2;}/**
7
7
  * @param {number} version The version number of the pipeline request.
8
8
  * @return {PipelineRequest}
9
- */_createClass(PipelineRequest,[{key:"setVersion",value:function setVersion(){var version=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_VERSION;if(typeof version!=='number')throw new TypeError("Expected 'number'. Received: '".concat(_typeof(version),"'"));if(version<0)throw new Error("Expected positive integer. Received: '".concat(version,"'"));if(version===0)throw new Error('Has to be > 0!');this.version=version;return this;}/**
9
+ */_inherits(PipelineRequest,_Request);return _createClass(PipelineRequest,[{key:"setVersion",value:function setVersion(){var version=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_VERSION;if(typeof version!=='number')throw new TypeError("Expected 'number'. Received: '".concat(_typeof(version),"'"));if(version<0)throw new Error("Expected positive integer. Received: '".concat(version,"'"));if(version===0)throw new Error('Has to be > 0!');this.version=version;return this;}/**
10
10
  * @param {Object} [input={}] The payload to send with the request.
11
11
  * @returns {PipelineRequest}
12
12
  */},{key:"setInput",value:function setInput(){var input=arguments.length>0&&arguments[0]!==undefined?arguments[0]:DEFAULT_INPUT;if(_typeof(input)!=='object'||input.constructor!==Object){throw new TypeError("Expected 'object'. Received: '".concat(_typeof(input),"'"));}this.input=input;return this;}/**
@@ -52,4 +52,4 @@ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<argum
52
52
  */},{key:"hasRunningDependencies",value:function hasRunningDependencies(){return pipelineManager.hasRunningDependencies(this.name);}/**
53
53
  * Dispatches the pipeline.
54
54
  * @return {Promise}
55
- */},{key:"dispatch",value:function dispatch(){return pipelineManager.add(this);}}]);return PipelineRequest;}(Request);export default PipelineRequest;
55
+ */},{key:"dispatch",value:function dispatch(){return pipelineManager.add(this);}}]);}(Request);export default PipelineRequest;
@@ -1,20 +1,16 @@
1
- function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}import{logger}from"../../helpers";import*as errorHandleTypes from"../../constants/ErrorHandleTypes";import*as processTypes from"../../constants/ProcessTypes";/**
1
+ function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}import{logger}from"../../helpers";import*as errorHandleTypes from"../../constants/ErrorHandleTypes";import*as processTypes from"../../constants/ProcessTypes";/**
2
2
  * Mocked PipelineRequest.
3
3
  * Use it any time you need to mock a PipelineRequest.
4
4
  *
5
5
  * For more information and usage examples, please check the README.
6
- */var MockedPipelineRequest=/*#__PURE__*/function(){_createClass(MockedPipelineRequest,null,[{key:"mockedDispatchResolver",/**
7
- * Getter for mockedDispatchResolver which is an additional helper function for custom, mock-only
8
- * `dispatch()` resolver.
9
- * @return {Function}
10
- */get:function get(){return function(){};}/**
6
+ */var MockedPipelineRequest=/*#__PURE__*/function(){/**
11
7
  * Initializes the MockedPipelineRequest object.
12
8
  * @param {string} name The pipeline name.
13
- */}]);function MockedPipelineRequest(name){_classCallCheck(this,MockedPipelineRequest);this.name=name;this.input={};this.handleErrors=errorHandleTypes.ERROR_HANDLE_DEFAULT;this.errorBlacklist=[];this.process=processTypes.DEFAULT_PROCESSED;this.timeout=undefined;}/**
9
+ */function MockedPipelineRequest(name){_classCallCheck(this,MockedPipelineRequest);this.name=name;this.input={};this.handleErrors=errorHandleTypes.ERROR_HANDLE_DEFAULT;this.errorBlacklist=[];this.process=processTypes.DEFAULT_PROCESSED;this.timeout=undefined;}/**
14
10
  * Sets the payload for the MockedPipelineRequest.
15
11
  * @param {Object} [mockedInput={}] The payload to send with the request.
16
12
  * @returns {MockedPipelineRequest}
17
- */_createClass(MockedPipelineRequest,[{key:"setInput",value:function setInput(){var mockedInput=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.input=mockedInput;return this;}/**
13
+ */return _createClass(MockedPipelineRequest,[{key:"setInput",value:function setInput(){var mockedInput=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};this.input=mockedInput;return this;}/**
18
14
  * Sets a timeout.
19
15
  * @param {number} timeout Timeout.
20
16
  * @returns {MockedPipelineRequest}
@@ -46,11 +42,15 @@ function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object
46
42
  * @param {bool} value Value.
47
43
  * @return {PipelineRequest}
48
44
  * @deprecated
49
- */},{key:"setSuppressErrors",value:function setSuppressErrors(value){logger.warn('Deprecated: setSuppressErrors() will be removed. Use setHandleErrors() instead!');var handle=value?errorHandleTypes.ERROR_HANDLE_SUPPRESS:errorHandleTypes.ERROR_HANDLE_DEFAULT;this.setHandleErrors(handle);return this;}}]);return MockedPipelineRequest;}();/**
45
+ */},{key:"setSuppressErrors",value:function setSuppressErrors(value){logger.warn('Deprecated: setSuppressErrors() will be removed. Use setHandleErrors() instead!');var handle=value?errorHandleTypes.ERROR_HANDLE_SUPPRESS:errorHandleTypes.ERROR_HANDLE_DEFAULT;this.setHandleErrors(handle);return this;}}],[{key:"mockedDispatchResolver",get:/**
46
+ * Getter for mockedDispatchResolver which is an additional helper function for custom, mock-only
47
+ * `dispatch()` resolver.
48
+ * @return {Function}
49
+ */function get(){return function(){};}}]);}();/**
50
50
  * Factory which creates an instance of MockedPipelineRequest.
51
51
  * @param {Function} callback Resolver callback.
52
52
  * @returns {MockedPipelineRequest}
53
- */export var mockedPipelineRequestFactory=function mockedPipelineRequestFactory(callback){return(/*#__PURE__*/function(_MockedPipelineReques){_inherits(_class,_MockedPipelineReques);function _class(){_classCallCheck(this,_class);return _possibleConstructorReturn(this,_getPrototypeOf(_class).apply(this,arguments));}_createClass(_class,null,[{key:"mockedDispatchResolver",/**
53
+ */export var mockedPipelineRequestFactory=function mockedPipelineRequestFactory(callback){return(/*#__PURE__*/function(_MockedPipelineReques){function _class(){_classCallCheck(this,_class);return _callSuper(this,_class,arguments);}_inherits(_class,_MockedPipelineReques);return _createClass(_class,null,[{key:"mockedDispatchResolver",get:/**
54
54
  * Getter for custom mocked resolver.
55
55
  * @return {Function}
56
- */get:function get(){return callback;}}]);return _class;}(MockedPipelineRequest));};
56
+ */function get(){return callback;}}]);}(MockedPipelineRequest));};
@@ -5,10 +5,10 @@ function _classCallCheck(instance,Constructor){if(!(instance instanceof Construc
5
5
  */function PipelineSequence(){_classCallCheck(this,PipelineSequence);this.sequence=[];}/**
6
6
  * Adds a new serial to the sequence.
7
7
  * @param {string} serial The pipeline request serial.
8
- */_createClass(PipelineSequence,[{key:"set",value:function set(serial){var index=this.sequence.indexOf(serial);if(index<0){this.sequence.push(serial);}}/**
8
+ */return _createClass(PipelineSequence,[{key:"set",value:function set(serial){var index=this.sequence.indexOf(serial);if(index<0){this.sequence.push(serial);}}/**
9
9
  * Returns the sequence.
10
10
  * @return {Array}
11
11
  */},{key:"get",value:function get(){return this.sequence;}/**
12
12
  * Removes a serial from the sequence.
13
13
  * @param {string} serial The pipeline request serial.
14
- */},{key:"remove",value:function remove(serial){var index=this.sequence.indexOf(serial);if(index>=0){this.sequence.splice(index,1);}}}]);return PipelineSequence;}();export default new PipelineSequence();
14
+ */},{key:"remove",value:function remove(serial){var index=this.sequence.indexOf(serial);if(index>=0){this.sequence.splice(index,1);}}}]);}();export default new PipelineSequence();
@@ -4,18 +4,18 @@ var defaultRequestManager=new RequestManager();/**
4
4
  */var Request=/*#__PURE__*/function(){/**
5
5
  * The constructor.
6
6
  * @param {RequestManager} [manager] The manager for this request.
7
- */function Request(manager){var _this=this;_classCallCheck(this,Request);_defineProperty(this,"createEventCallbackName",function(callbackKey){_this.callbackName="".concat(callbackKey,":").concat(_this.serial);});this.serial=null;this.callbackName='';this.manager=manager||defaultRequestManager;}/**
7
+ */function Request(manager){var _this=this;_classCallCheck(this,Request);/**
8
+ * Creates the event callback name from the data request serial.
9
+ * @param {string} callbackKey The callback key to use.
10
+ */_defineProperty(this,"createEventCallbackName",function(callbackKey){_this.callbackName="".concat(callbackKey,":").concat(_this.serial);});this.serial=null;this.callbackName='';this.manager=manager||defaultRequestManager;}/**
8
11
  * @return {boolean} Whether there are pending requests of this type.
9
- */_createClass(Request,[{key:"hasPendingRequests",value:function hasPendingRequests(){return this.manager.pendingRequests>0;}/**
12
+ */return _createClass(Request,[{key:"hasPendingRequests",value:function hasPendingRequests(){return this.manager.pendingRequests>0;}/**
10
13
  * Generates the serial for this data request.
11
14
  * @param {string} serialKey The serial key.
12
- */},{key:"createSerial",value:function createSerial(serialKey){if(!this.serial){this.serial=CryptoJs.MD5("".concat(serialKey).concat(Date.now()+Math.random())).toString();}}/**
13
- * Creates the event callback name from the data request serial.
14
- * @param {string} callbackKey The callback key to use.
15
- */},{key:"getEventCallbackName",/**
15
+ */},{key:"createSerial",value:function createSerial(serialKey){if(!this.serial){this.serial=CryptoJs.MD5("".concat(serialKey).concat(Date.now()+Math.random())).toString();}}},{key:"getEventCallbackName",value:/**
16
16
  * Returns the event callback name.
17
17
  * @returns {string}
18
- */value:function getEventCallbackName(){return this.callbackName;}/**
18
+ */function getEventCallbackName(){return this.callbackName;}/**
19
19
  * Dispatches the request.
20
20
  * @return {Promise} A promise that is fulfilled when a response is received for this request.
21
21
  */},{key:"dispatch",value:function dispatch(){var _this2=this;return new Promise(function(resolve,reject){_this2.manager.handleDispatch(_this2,resolve,reject);});}/**
@@ -23,4 +23,4 @@ var defaultRequestManager=new RequestManager();/**
23
23
  * @param {Function} resolve The resolve() callback of the request promise.
24
24
  * @param {Function} reject The reject() callback of the request promise.
25
25
  */},{key:"onTimeout",value:function onTimeout(resolve,reject){// eslint-disable-line class-methods-use-this
26
- logger.error('Request timeout');reject('Request timeout');}}]);return Request;}();export default Request;
26
+ logger.error('Request timeout');reject('Request timeout');}}]);}();export default Request;
@@ -1,15 +1,16 @@
1
1
  function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{logger}from"../../helpers";var REQUEST_BUFFER='RequestBuffer';/**
2
2
  * The RequestBuffer class.
3
3
  * It stores instances of performing request.
4
- */var RequestBuffer=/*#__PURE__*/function(){function RequestBuffer(){_classCallCheck(this,RequestBuffer);_defineProperty(this,"requests",{});}_createClass(RequestBuffer,[{key:"add",/**
4
+ */var RequestBuffer=/*#__PURE__*/function(){function RequestBuffer(){_classCallCheck(this,RequestBuffer);// Holds the ongoing requests.
5
+ _defineProperty(this,"requests",{});}return _createClass(RequestBuffer,[{key:"add",value:/**
5
6
  * Adds a new data request to the buffer store.
6
7
  * @param {Object} req The request to store.
7
8
  * @param {string} serial The serial for the request.
8
- */value:function add(req,serial){var request=this.requests[serial];if(request){logger.error("".concat(REQUEST_BUFFER,": a request with the serial '").concat(serial,"' already exists!"));return;}this.requests[serial]=req;}/**
9
+ */function add(req,serial){var request=this.requests[serial];if(request){logger.error("".concat(REQUEST_BUFFER,": a request with the serial '").concat(serial,"' already exists!"));return;}this.requests[serial]=req;}/**
9
10
  * Retrieves a data request from the buffer.
10
11
  * @param {string} serial The serial for the request.
11
12
  * @returns {DataRequest}
12
13
  */},{key:"get",value:function get(serial){var request=this.requests[serial];if(!request){logger.error("".concat(REQUEST_BUFFER,": no stored request for the serial '").concat(serial,"' found!"));return null;}return request;}/**
13
14
  * Removes the data request from the buffer.
14
15
  * @param {string} serial The serial for the request.
15
- */},{key:"remove",value:function remove(serial){try{delete this.requests[serial];}catch(e){logger.error(e);}}}]);return RequestBuffer;}();export default new RequestBuffer();
16
+ */},{key:"remove",value:function remove(serial){try{delete this.requests[serial];}catch(e){logger.error(e);}}}]);}();export default new RequestBuffer();
@@ -56,7 +56,7 @@ var localSelf=self;localSelf.pendingRequests+=1;queueItem.request.onDispatch(que
56
56
  * @param {Request} request The request.
57
57
  * @param {Function} resolve The resolve() callback of the request promise.
58
58
  * @param {Function} reject The reject() callback of the request promise.
59
- */_createClass(RequestManager,[{key:"enqueueRequest",value:function enqueueRequest(request,resolve,reject){// Get the current timestamp.
59
+ */return _createClass(RequestManager,[{key:"enqueueRequest",value:function enqueueRequest(request,resolve,reject){// Get the current timestamp.
60
60
  var timestamp=this.currentTime;// Find the queue index position at the given timestamp.
61
61
  var index=this.requestQueue.findIndex(function(item){return item.timestamp>timestamp;});var item={request:request,resolve:resolve,reject:reject,timestamp:timestamp,response:null};if(index===-1){// Not found, append to queue.
62
62
  this.requestQueue.push(item);}else{// Insert at the correct timestamp index.
@@ -81,4 +81,4 @@ return;}this.pendingRequests+=1;request.onDispatch(resolve,reject);if(this.timeo
81
81
  resolve(response);}}/**
82
82
  * @return {number} The current unix timestamp.
83
83
  */},{key:"currentTime",get:function get(){// eslint-disable-line class-methods-use-this
84
- return Date.now();}}]);return RequestManager;}();export default RequestManager;
84
+ return Date.now();}}]);}();export default RequestManager;
@@ -1 +1 @@
1
- import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import Request from"../Request";import RequestManager from'.';import{PROCESS_ANY,PROCESS_LAST_REQUEST,PROCESS_FIRST_RESPONSE,PROCESS_SEQUENTIALLY,PROCESS_ORDERED_REQUEST,PROPAGATE_REJECT,PROPAGATE_SINGLE}from"../../constants/RequestManagerModes";/* eslint-disable require-jsdoc, no-unused-vars, class-methods-use-this */var SuccessfulRequest=/*#__PURE__*/function(_Request){_inherits(SuccessfulRequest,_Request);function SuccessfulRequest(manager){var _this;var payload=arguments.length>1&&arguments[1]!==undefined?arguments[1]:42;var timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1000;_classCallCheck(this,SuccessfulRequest);_this=_possibleConstructorReturn(this,_getPrototypeOf(SuccessfulRequest).call(this,manager));_this.createSerial('foo');_this.payload=payload;_this.timeout=timeout;return _this;}_createClass(SuccessfulRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){var _this2=this;setTimeout(function(){_this2.manager.handleResponse(_this2,resolve,_this2.payload);},this.timeout);}}]);return SuccessfulRequest;}(Request);var FailingRequest=/*#__PURE__*/function(_Request2){_inherits(FailingRequest,_Request2);function FailingRequest(manager){var _this3;_classCallCheck(this,FailingRequest);_this3=_possibleConstructorReturn(this,_getPrototypeOf(FailingRequest).call(this,manager));_this3.createSerial('foo');return _this3;}_createClass(FailingRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){this.manager.handleError(this,reject);}}]);return FailingRequest;}(Request);var NeverResolvingRequest=/*#__PURE__*/function(_Request3){_inherits(NeverResolvingRequest,_Request3);function NeverResolvingRequest(manager){var _this4;_classCallCheck(this,NeverResolvingRequest);_this4=_possibleConstructorReturn(this,_getPrototypeOf(NeverResolvingRequest).call(this,manager));_this4.createSerial('foo');return _this4;}_createClass(NeverResolvingRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){}},{key:"onTimeout",value:function onTimeout(resolve,reject){this.manager.handleError(this,reject);}}]);return NeverResolvingRequest;}(Request);/* eslint-enable require-jsdoc, no-unused-vars, class-methods-use-this */describe.skip('RequestManager',function(){jest.useFakeTimers();var timestamp=0;RequestManager.currentTime=function(){timestamp+=1;return timestamp;};it('should default to PROCESS_ANY and PROPAGATE_SINGLE',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var manager;return _regeneratorRuntime.wrap(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:manager=new RequestManager();expect(manager.processingMode).toEqual(PROCESS_ANY);expect(manager.propagationMode).toEqual(PROPAGATE_SINGLE);case 3:case"end":return _context.stop();}}},_callee);})));it('should succeed',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager();request=new SuccessfulRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context2.next=8;return req;case 8:expect(succeeded).toHaveBeenCalled();expect(failed).not.toHaveBeenCalled();case 10:case"end":return _context2.stop();}}},_callee2);})));it('should fail',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager();request=new FailingRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context3.next=8;return req;case 8:expect(succeeded).not.toHaveBeenCalled();expect(failed).toHaveBeenCalled();case 10:case"end":return _context3.stop();}}},_callee3);})));it('should only resolve the last request ',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_LAST_REQUEST,propagationMode:PROPAGATE_REJECT});request1=new SuccessfulRequest(manager,1);request2=new SuccessfulRequest(manager,2);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context4.next=10;return req1;case 10:_context4.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(1);expect(succeeded).toHaveBeenCalledWith(2);expect(failed).toHaveBeenCalledTimes(1);expect(failed).toHaveBeenCalledWith(1);case 16:case"end":return _context4.stop();}}},_callee4);})));it('should resolve both request with first request´s response (1/2)',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee5$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE});request1=new SuccessfulRequest(manager,1,500);request2=new SuccessfulRequest(manager,2,1000);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context5.next=10;return req1;case 10:_context5.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(2);expect(succeeded).toHaveBeenCalledWith(1);expect(failed).not.toHaveBeenCalled();case 15:case"end":return _context5.stop();}}},_callee5);})));it('should resolve both request with first request´s response (2/2)',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee6$(_context6){while(1){switch(_context6.prev=_context6.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context6.next=10;return req1;case 10:_context6.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(2);expect(succeeded.mock.calls).toEqual([[2],[2]]);expect(failed).not.toHaveBeenCalled();case 15:case"end":return _context6.stop();}}},_callee6);})));it.skip('should reject first request',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee7$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE,propagationMode:PROPAGATE_REJECT});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context7.next=10;return req1;case 10:_context7.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(1);expect(succeeded).toHaveBeenCalledWith(2);expect(failed).toHaveBeenCalledTimes(1);expect(failed).toHaveBeenCalledWith(1);case 16:case"end":return _context7.stop();}}},_callee7);})));it('should request the second one after the first one resolved',function(){var manager=new RequestManager({processingMode:PROCESS_SEQUENTIALLY});var request1=new SuccessfulRequest(manager);var request2=new SuccessfulRequest(manager);request1.dispatch();request2.dispatch();expect(manager.requestQueue.length).toBe(2);jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(1);jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(0);});it('should resolve in order of request calling',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(){var succeeded,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee8$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:succeeded=jest.fn();manager=new RequestManager({processingMode:PROCESS_ORDERED_REQUEST});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);});req2=request2.dispatch().then(function(resp){return succeeded(resp);});jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(0);_context8.next=10;return req1;case 10:_context8.next=12;return req2;case 12:expect(succeeded.mock.calls).toEqual([[1],[2]]);case 13:case"end":return _context8.stop();}}},_callee8);})));it('should time out',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee9$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({timeout:1000});request=new NeverResolvingRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context9.next=8;return req;case 8:expect(succeeded).not.toHaveBeenCalled();expect(failed).toHaveBeenCalled();case 10:case"end":return _context9.stop();}}},_callee9);})));});
1
+ import _regeneratorRuntime from"@babel/runtime/regenerator";function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _typeof(obj){if(typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"){_typeof=function _typeof(obj){return typeof obj;};}else{_typeof=function _typeof(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};}return _typeof(obj);}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);return Constructor;}function _callSuper(_this,derived,args){function isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{return!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(e){return false;}}derived=_getPrototypeOf(derived);return _possibleConstructorReturn(_this,isNativeReflectConstruct()?Reflect.construct(derived,args||[],_getPrototypeOf(_this).constructor):derived.apply(_this,args));}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}import Request from"../Request";import RequestManager from'.';import{PROCESS_ANY,PROCESS_LAST_REQUEST,PROCESS_FIRST_RESPONSE,PROCESS_SEQUENTIALLY,PROCESS_ORDERED_REQUEST,PROPAGATE_REJECT,PROPAGATE_SINGLE}from"../../constants/RequestManagerModes";/* eslint-disable require-jsdoc, no-unused-vars, class-methods-use-this */var SuccessfulRequest=/*#__PURE__*/function(_Request){function SuccessfulRequest(manager){var _this2;var payload=arguments.length>1&&arguments[1]!==undefined?arguments[1]:42;var timeout=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1000;_classCallCheck(this,SuccessfulRequest);_this2=_callSuper(this,SuccessfulRequest,[manager]);_this2.createSerial('foo');_this2.payload=payload;_this2.timeout=timeout;return _this2;}_inherits(SuccessfulRequest,_Request);return _createClass(SuccessfulRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){var _this3=this;setTimeout(function(){_this3.manager.handleResponse(_this3,resolve,_this3.payload);},this.timeout);}}]);}(Request);var FailingRequest=/*#__PURE__*/function(_Request2){function FailingRequest(manager){var _this4;_classCallCheck(this,FailingRequest);_this4=_callSuper(this,FailingRequest,[manager]);_this4.createSerial('foo');return _this4;}_inherits(FailingRequest,_Request2);return _createClass(FailingRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){this.manager.handleError(this,reject);}}]);}(Request);var NeverResolvingRequest=/*#__PURE__*/function(_Request3){function NeverResolvingRequest(manager){var _this5;_classCallCheck(this,NeverResolvingRequest);_this5=_callSuper(this,NeverResolvingRequest,[manager]);_this5.createSerial('foo');return _this5;}_inherits(NeverResolvingRequest,_Request3);return _createClass(NeverResolvingRequest,[{key:"onDispatch",value:function onDispatch(resolve,reject){}},{key:"onTimeout",value:function onTimeout(resolve,reject){this.manager.handleError(this,reject);}}]);}(Request);/* eslint-enable require-jsdoc, no-unused-vars, class-methods-use-this */describe.skip('RequestManager',function(){jest.useFakeTimers();var timestamp=0;RequestManager.currentTime=function(){timestamp+=1;return timestamp;};it('should default to PROCESS_ANY and PROPAGATE_SINGLE',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(){var manager;return _regeneratorRuntime.wrap(function _callee$(_context){while(1)switch(_context.prev=_context.next){case 0:manager=new RequestManager();expect(manager.processingMode).toEqual(PROCESS_ANY);expect(manager.propagationMode).toEqual(PROPAGATE_SINGLE);case 3:case"end":return _context.stop();}},_callee);})));it('should succeed',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager();request=new SuccessfulRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context2.next=8;return req;case 8:expect(succeeded).toHaveBeenCalled();expect(failed).not.toHaveBeenCalled();case 10:case"end":return _context2.stop();}},_callee2);})));it('should fail',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee3$(_context3){while(1)switch(_context3.prev=_context3.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager();request=new FailingRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context3.next=8;return req;case 8:expect(succeeded).not.toHaveBeenCalled();expect(failed).toHaveBeenCalled();case 10:case"end":return _context3.stop();}},_callee3);})));it('should only resolve the last request ',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee4$(_context4){while(1)switch(_context4.prev=_context4.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_LAST_REQUEST,propagationMode:PROPAGATE_REJECT});request1=new SuccessfulRequest(manager,1);request2=new SuccessfulRequest(manager,2);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context4.next=10;return req1;case 10:_context4.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(1);expect(succeeded).toHaveBeenCalledWith(2);expect(failed).toHaveBeenCalledTimes(1);expect(failed).toHaveBeenCalledWith(1);case 16:case"end":return _context4.stop();}},_callee4);})));it('should resolve both request with first request´s response (1/2)',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee5$(_context5){while(1)switch(_context5.prev=_context5.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE});request1=new SuccessfulRequest(manager,1,500);request2=new SuccessfulRequest(manager,2,1000);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context5.next=10;return req1;case 10:_context5.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(2);expect(succeeded).toHaveBeenCalledWith(1);expect(failed).not.toHaveBeenCalled();case 15:case"end":return _context5.stop();}},_callee5);})));it('should resolve both request with first request´s response (2/2)',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee6$(_context6){while(1)switch(_context6.prev=_context6.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context6.next=10;return req1;case 10:_context6.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(2);expect(succeeded.mock.calls).toEqual([[2],[2]]);expect(failed).not.toHaveBeenCalled();case 15:case"end":return _context6.stop();}},_callee6);})));it.skip('should reject first request',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(){var succeeded,failed,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee7$(_context7){while(1)switch(_context7.prev=_context7.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({processingMode:PROCESS_FIRST_RESPONSE,propagationMode:PROPAGATE_REJECT});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(1);});req2=request2.dispatch().then(function(resp){return succeeded(resp);})["catch"](function(){return failed(2);});jest.runAllTimers();_context7.next=10;return req1;case 10:_context7.next=12;return req2;case 12:expect(succeeded).toHaveBeenCalledTimes(1);expect(succeeded).toHaveBeenCalledWith(2);expect(failed).toHaveBeenCalledTimes(1);expect(failed).toHaveBeenCalledWith(1);case 16:case"end":return _context7.stop();}},_callee7);})));it('should request the second one after the first one resolved',function(){var manager=new RequestManager({processingMode:PROCESS_SEQUENTIALLY});var request1=new SuccessfulRequest(manager);var request2=new SuccessfulRequest(manager);request1.dispatch();request2.dispatch();expect(manager.requestQueue.length).toBe(2);jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(1);jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(0);});it('should resolve in order of request calling',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(){var succeeded,manager,request1,request2,req1,req2;return _regeneratorRuntime.wrap(function _callee8$(_context8){while(1)switch(_context8.prev=_context8.next){case 0:succeeded=jest.fn();manager=new RequestManager({processingMode:PROCESS_ORDERED_REQUEST});request1=new SuccessfulRequest(manager,1,1000);request2=new SuccessfulRequest(manager,2,500);req1=request1.dispatch().then(function(resp){return succeeded(resp);});req2=request2.dispatch().then(function(resp){return succeeded(resp);});jest.runOnlyPendingTimers();expect(manager.requestQueue.length).toBe(0);_context8.next=10;return req1;case 10:_context8.next=12;return req2;case 12:expect(succeeded.mock.calls).toEqual([[1],[2]]);case 13:case"end":return _context8.stop();}},_callee8);})));it('should time out',/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(){var succeeded,failed,manager,request,req;return _regeneratorRuntime.wrap(function _callee9$(_context9){while(1)switch(_context9.prev=_context9.next){case 0:succeeded=jest.fn();failed=jest.fn();manager=new RequestManager({timeout:1000});request=new NeverResolvingRequest(manager);req=request.dispatch().then(succeeded)["catch"](failed);jest.runAllTimers();_context9.next=8;return req;case 8:expect(succeeded).not.toHaveBeenCalled();expect(failed).toHaveBeenCalled();case 10:case"end":return _context9.stop();}},_callee9);})));});