(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SockJS=f()}})(function(){var define,module,exports;return(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i1){this._listeners[eventType]=arr.slice(0,idx).concat(arr.slice(idx+1));}else{delete this._listeners[eventType];} return;}};EventTarget.prototype.dispatchEvent=function(){var event=arguments[0];var t=event.type;var args=arguments.length===1?[event]:Array.apply(null,arguments);if(this['on'+t]){this['on'+t].apply(this,args);} if(t in this._listeners){var listeners=this._listeners[t];for(var i=0;i=3000&&code<=4999);} SockJS.prototype.close=function(code,reason){if(code&&!userSetCode(code)){throw new Error('InvalidAccessError: Invalid code');} if(reason&&reason.length>123){throw new SyntaxError('reason argument has an invalid length');} if(this.readyState===SockJS.CLOSING||this.readyState===SockJS.CLOSED){return;} var wasClean=true;this._close(code||1000,reason||'Normal closure',wasClean);};SockJS.prototype.send=function(data){if(typeof data!=='string'){data=''+data;} if(this.readyState===SockJS.CONNECTING){throw new Error('InvalidStateError: The connection has not been established yet');} if(this.readyState!==SockJS.OPEN){return;} this._transport.send(escape.quote(data));};SockJS.version=require('./version');SockJS.CONNECTING=0;SockJS.OPEN=1;SockJS.CLOSING=2;SockJS.CLOSED=3;SockJS.prototype._receiveInfo=function(info,rtt){debug('_receiveInfo',rtt);this._ir=null;if(!info){this._close(1002,'Cannot connect to server');return;} this._rto=this.countRTO(rtt);this._transUrl=info.base_url?info.base_url:this.url;info=objectUtils.extend(info,this._urlInfo);debug('info',info);var enabledTransports=transports.filterToEnabled(this._transportsWhitelist,info);this._transports=enabledTransports.main;debug(this._transports.length+' enabled transports');this._connect();};SockJS.prototype._connect=function(){for(var Transport=this._transports.shift();Transport;Transport=this._transports.shift()){debug('attempt',Transport.transportName);if(Transport.needBody){if(!global.document.body||(typeof global.document.readyState!=='undefined'&&global.document.readyState!=='complete'&&global.document.readyState!=='interactive')){debug('waiting for body');this._transports.unshift(Transport);eventUtils.attachEvent('load',this._connect.bind(this));return;}} var timeoutMs=(this._rto*Transport.roundTrips)||5000;this._transportTimeoutId=setTimeout(this._transportTimeout.bind(this),timeoutMs);debug('using timeout',timeoutMs);var transportUrl=urlUtils.addPath(this._transUrl,'/'+this._server+'/'+this._generateSessionId());var options=this._transportOptions[Transport.transportName];debug('transport url',transportUrl);var transportObj=new Transport(transportUrl,this._transUrl,options);transportObj.on('message',this._transportMessage.bind(this));transportObj.once('close',this._transportClose.bind(this));transportObj.transportName=Transport.transportName;this._transport=transportObj;return;} this._close(2000,'All transports failed',false);};SockJS.prototype._transportTimeout=function(){debug('_transportTimeout');if(this.readyState===SockJS.CONNECTING){if(this._transport){this._transport.close();} this._transportClose(2007,'Transport timed out');}};SockJS.prototype._transportMessage=function(msg){debug('_transportMessage',msg);var self=this,type=msg.slice(0,1),content=msg.slice(1),payload;switch(type){case'o':this._open();return;case'h':this.dispatchEvent(new Event('heartbeat'));debug('heartbeat',this.transport);return;} if(content){try{payload=JSON3.parse(content);}catch(e){debug('bad json',content);}} if(typeof payload==='undefined'){debug('empty payload',content);return;} switch(type){case'a':if(Array.isArray(payload)){payload.forEach(function(p){debug('message',self.transport,p);self.dispatchEvent(new TransportMessageEvent(p));});} break;case'm':debug('message',this.transport,payload);this.dispatchEvent(new TransportMessageEvent(payload));break;case'c':if(Array.isArray(payload)&&payload.length===2){this._close(payload[0],payload[1],true);} break;}};SockJS.prototype._transportClose=function(code,reason){debug('_transportClose',this.transport,code,reason);if(this._transport){this._transport.removeAllListeners();this._transport=null;this.transport=null;} if(!userSetCode(code)&&code!==2000&&this.readyState===SockJS.CONNECTING){this._connect();return;} this._close(code,reason);};SockJS.prototype._open=function(){debug('_open',this._transport.transportName,this.readyState);if(this.readyState===SockJS.CONNECTING){if(this._transportTimeoutId){clearTimeout(this._transportTimeoutId);this._transportTimeoutId=null;} this.readyState=SockJS.OPEN;this.transport=this._transport.transportName;this.dispatchEvent(new Event('open'));debug('connected',this.transport);}else{this._close(1006,'Server lost session');}};SockJS.prototype._close=function(code,reason,wasClean){debug('_close',this.transport,code,reason,wasClean,this.readyState);var forceFail=false;if(this._ir){forceFail=true;this._ir.close();this._ir=null;} if(this._transport){this._transport.close();this._transport=null;this.transport=null;} if(this.readyState===SockJS.CLOSED){throw new Error('InvalidStateError: SockJS has already been closed');} this.readyState=SockJS.CLOSING;setTimeout(function(){this.readyState=SockJS.CLOSED;if(forceFail){this.dispatchEvent(new Event('error'));} var e=new CloseEvent('close');e.wasClean=wasClean||false;e.code=code||1000;e.reason=reason;this.dispatchEvent(e);this.onmessage=this.onclose=this.onerror=null;debug('disconnected');}.bind(this),0);};SockJS.prototype.countRTO=function(rtt){if(rtt>100){return 4*rtt;} return 300+rtt;};module.exports=function(availableTransports){transports=transport(availableTransports);require('./iframe-bootstrap')(SockJS,availableTransports);return SockJS;};}).call(this,{env:{}},typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./event/close":2,"./event/event":4,"./event/eventtarget":5,"./event/trans-message":6,"./iframe-bootstrap":8,"./info-receiver":12,"./location":13,"./shims":15,"./utils/browser":44,"./utils/escape":45,"./utils/event":46,"./utils/log":48,"./utils/object":49,"./utils/random":50,"./utils/transport":51,"./utils/url":52,"./version":53,"debug":54,"inherits":56,"json3":57,"url-parse":61}],15:[function(require,module,exports){'use strict';var ArrayPrototype=Array.prototype;var ObjectPrototype=Object.prototype;var FunctionPrototype=Function.prototype;var StringPrototype=String.prototype;var array_slice=ArrayPrototype.slice;var _toString=ObjectPrototype.toString;var isFunction=function(val){return ObjectPrototype.toString.call(val)==='[object Function]';};var isArray=function isArray(obj){return _toString.call(obj)==='[object Array]';};var isString=function isString(obj){return _toString.call(obj)==='[object String]';};var supportsDescriptors=Object.defineProperty&&(function(){try{Object.defineProperty({},'x',{});return true;}catch(e){return false;}}());var defineProperty;if(supportsDescriptors){defineProperty=function(object,name,method,forceAssign){if(!forceAssign&&(name in object)){return;} Object.defineProperty(object,name,{configurable:true,enumerable:false,writable:true,value:method});};}else{defineProperty=function(object,name,method,forceAssign){if(!forceAssign&&(name in object)){return;} object[name]=method;};} var defineProperties=function(object,map,forceAssign){for(var name in map){if(ObjectPrototype.hasOwnProperty.call(map,name)){defineProperty(object,name,map[name],forceAssign);}}};var toObject=function(o){if(o==null){throw new TypeError("can't convert "+o+' to object');} return Object(o);};function toInteger(num){var n=+num;if(n!==n){n=0;}else if(n!==0&&n!==(1/0)&&n!==-(1/0)){n=(n>0||-1)*Math.floor(Math.abs(n));} return n;} function ToUint32(x){return x>>>0;} function Empty(){} defineProperties(FunctionPrototype,{bind:function bind(that){var target=this;if(!isFunction(target)){throw new TypeError('Function.prototype.bind called on incompatible '+target);} var args=array_slice.call(arguments,1);var binder=function(){if(this instanceof bound){var result=target.apply(this,args.concat(array_slice.call(arguments)));if(Object(result)===result){return result;} return this;}else{return target.apply(that,args.concat(array_slice.call(arguments)));}};var boundLength=Math.max(0,target.length-args.length);var boundArgs=[];for(var i=0;i>>0;if(!isFunction(fun)){throw new TypeError();} while(++i>>0;if(!length){return-1;} var i=0;if(arguments.length>1){i=toInteger(arguments[1]);} i=i>=0?i:Math.max(0,length+i);for(;i1){(function(){var compliantExecNpcg=/()??/.exec('')[1]===void 0;StringPrototype.split=function(separator,limit){var string=this;if(separator===void 0&&limit===0){return[];} if(_toString.call(separator)!=='[object RegExp]'){return string_split.call(this,separator,limit);} var output=[],flags=(separator.ignoreCase?'i':'')+ (separator.multiline?'m':'')+ (separator.extended?'x':'')+ (separator.sticky?'y':''),lastLastIndex=0,separator2,match,lastIndex,lastLength;separator=new RegExp(separator.source,flags+'g');string+='';if(!compliantExecNpcg){separator2=new RegExp('^'+separator.source+'$(?!\\s)',flags);} limit=limit===void 0?-1>>>0:ToUint32(limit);while(match=separator.exec(string)){lastIndex=match.index+match[0].length;if(lastIndex>lastLastIndex){output.push(string.slice(lastLastIndex,match.index));if(!compliantExecNpcg&&match.length>1){match[0].replace(separator2,function(){for(var i=1;i1&&match.index=limit){break;}} if(separator.lastIndex===match.index){separator.lastIndex++;}} if(lastLastIndex===string.length){if(lastLength||!separator.test('')){output.push('');}}else{output.push(string.slice(lastLastIndex));} return output.length>limit?output.slice(0,limit):output;};}());}else if('0'.split(void 0,0).length){StringPrototype.split=function split(separator,limit){if(separator===void 0&&limit===0){return[];} return string_split.call(this,separator,limit);};} var string_substr=StringPrototype.substr;var hasNegativeSubstrBug=''.substr&&'0b'.substr(-1)!=='b';defineProperties(StringPrototype,{substr:function substr(start,length){return string_substr.call(this,start<0?((start=this.length+start)<0?0:start):start,length);}},hasNegativeSubstrBug);},{}],16:[function(require,module,exports){'use strict';module.exports=[require('./transport/websocket'),require('./transport/xhr-streaming'),require('./transport/xdr-streaming'),require('./transport/eventsource'),require('./transport/lib/iframe-wrap')(require('./transport/eventsource')),require('./transport/htmlfile'),require('./transport/lib/iframe-wrap')(require('./transport/htmlfile')),require('./transport/xhr-polling'),require('./transport/xdr-polling'),require('./transport/lib/iframe-wrap')(require('./transport/xhr-polling')),require('./transport/jsonp-polling')];},{"./transport/eventsource":20,"./transport/htmlfile":21,"./transport/jsonp-polling":23,"./transport/lib/iframe-wrap":26,"./transport/websocket":38,"./transport/xdr-polling":39,"./transport/xdr-streaming":40,"./transport/xhr-polling":41,"./transport/xhr-streaming":42}],17:[function(require,module,exports){(function(process,global){'use strict';var EventEmitter=require('events').EventEmitter,inherits=require('inherits'),utils=require('../../utils/event'),urlUtils=require('../../utils/url'),XHR=global.XMLHttpRequest;var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:browser:xhr');} function AbstractXHRObject(method,url,payload,opts){debug(method,url);var self=this;EventEmitter.call(this);setTimeout(function(){self._start(method,url,payload,opts);},0);} inherits(AbstractXHRObject,EventEmitter);AbstractXHRObject.prototype._start=function(method,url,payload,opts){var self=this;try{this.xhr=new XHR();}catch(x){} if(!this.xhr){debug('no xhr');this.emit('finish',0,'no xhr support');this._cleanup();return;} url=urlUtils.addQuery(url,'t='+(+new Date()));this.unloadRef=utils.unloadAdd(function(){debug('unload cleanup');self._cleanup(true);});try{this.xhr.open(method,url,true);if(this.timeout&&'timeout'in this.xhr){this.xhr.timeout=this.timeout;this.xhr.ontimeout=function(){debug('xhr timeout');self.emit('finish',0,'');self._cleanup(false);};}}catch(e){debug('exception',e);this.emit('finish',0,'');this._cleanup(false);return;} if((!opts||!opts.noCredentials)&&AbstractXHRObject.supportsCORS){debug('withCredentials');this.xhr.withCredentials=true;} if(opts&&opts.headers){for(var key in opts.headers){this.xhr.setRequestHeader(key,opts.headers[key]);}} this.xhr.onreadystatechange=function(){if(self.xhr){var x=self.xhr;var text,status;debug('readyState',x.readyState);switch(x.readyState){case 3:try{status=x.status;text=x.responseText;}catch(e){} debug('status',status);if(status===1223){status=204;} if(status===200&&text&&text.length>0){debug('chunk');self.emit('chunk',status,text);} break;case 4:status=x.status;debug('status',status);if(status===1223){status=204;} if(status===12005||status===12029){status=0;} debug('finish',status,x.responseText);self.emit('finish',status,x.responseText);self._cleanup(false);break;}}};try{self.xhr.send(payload);}catch(e){self.emit('finish',0,'');self._cleanup(false);}};AbstractXHRObject.prototype._cleanup=function(abort){debug('cleanup');if(!this.xhr){return;} this.removeAllListeners();utils.unloadDel(this.unloadRef);this.xhr.onreadystatechange=function(){};if(this.xhr.ontimeout){this.xhr.ontimeout=null;} if(abort){try{this.xhr.abort();}catch(x){}} this.unloadRef=this.xhr=null;};AbstractXHRObject.prototype.close=function(){debug('close');this._cleanup(true);};AbstractXHRObject.enabled=!!XHR;var axo=['Active'].concat('Object').join('X');if(!AbstractXHRObject.enabled&&(axo in global)){debug('overriding xmlhttprequest');XHR=function(){try{return new global[axo]('Microsoft.XMLHTTP');}catch(e){return null;}};AbstractXHRObject.enabled=!!new XHR();} var cors=false;try{cors='withCredentials'in new XHR();}catch(ignored){} AbstractXHRObject.supportsCORS=cors;module.exports=AbstractXHRObject;}).call(this,{env:{}},typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../../utils/event":46,"../../utils/url":52,"debug":54,"events":3,"inherits":56}],18:[function(require,module,exports){(function(global){module.exports=global.EventSource;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],19:[function(require,module,exports){(function(global){'use strict';var Driver=global.WebSocket||global.MozWebSocket;if(Driver){module.exports=function WebSocketBrowserDriver(url){return new Driver(url);};}else{module.exports=undefined;}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],20:[function(require,module,exports){'use strict';var inherits=require('inherits'),AjaxBasedTransport=require('./lib/ajax-based'),EventSourceReceiver=require('./receiver/eventsource'),XHRCorsObject=require('./sender/xhr-cors'),EventSourceDriver=require('eventsource');function EventSourceTransport(transUrl){if(!EventSourceTransport.enabled()){throw new Error('Transport created when disabled');} AjaxBasedTransport.call(this,transUrl,'/eventsource',EventSourceReceiver,XHRCorsObject);} inherits(EventSourceTransport,AjaxBasedTransport);EventSourceTransport.enabled=function(){return!!EventSourceDriver;};EventSourceTransport.transportName='eventsource';EventSourceTransport.roundTrips=2;module.exports=EventSourceTransport;},{"./lib/ajax-based":24,"./receiver/eventsource":29,"./sender/xhr-cors":35,"eventsource":18,"inherits":56}],21:[function(require,module,exports){'use strict';var inherits=require('inherits'),HtmlfileReceiver=require('./receiver/htmlfile'),XHRLocalObject=require('./sender/xhr-local'),AjaxBasedTransport=require('./lib/ajax-based');function HtmlFileTransport(transUrl){if(!HtmlfileReceiver.enabled){throw new Error('Transport created when disabled');} AjaxBasedTransport.call(this,transUrl,'/htmlfile',HtmlfileReceiver,XHRLocalObject);} inherits(HtmlFileTransport,AjaxBasedTransport);HtmlFileTransport.enabled=function(info){return HtmlfileReceiver.enabled&&info.sameOrigin;};HtmlFileTransport.transportName='htmlfile';HtmlFileTransport.roundTrips=2;module.exports=HtmlFileTransport;},{"./lib/ajax-based":24,"./receiver/htmlfile":30,"./sender/xhr-local":37,"inherits":56}],22:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),JSON3=require('json3'),EventEmitter=require('events').EventEmitter,version=require('../version'),urlUtils=require('../utils/url'),iframeUtils=require('../utils/iframe'),eventUtils=require('../utils/event'),random=require('../utils/random');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:transport:iframe');} function IframeTransport(transport,transUrl,baseUrl){if(!IframeTransport.enabled()){throw new Error('Transport created when disabled');} EventEmitter.call(this);var self=this;this.origin=urlUtils.getOrigin(baseUrl);this.baseUrl=baseUrl;this.transUrl=transUrl;this.transport=transport;this.windowId=random.string(8);var iframeUrl=urlUtils.addPath(baseUrl,'/iframe.html')+'#'+this.windowId;debug(transport,transUrl,iframeUrl);this.iframeObj=iframeUtils.createIframe(iframeUrl,function(r){debug('err callback');self.emit('close',1006,'Unable to load an iframe ('+r+')');self.close();});this.onmessageCallback=this._message.bind(this);eventUtils.attachEvent('message',this.onmessageCallback);} inherits(IframeTransport,EventEmitter);IframeTransport.prototype.close=function(){debug('close');this.removeAllListeners();if(this.iframeObj){eventUtils.detachEvent('message',this.onmessageCallback);try{this.postMessage('c');}catch(x){} this.iframeObj.cleanup();this.iframeObj=null;this.onmessageCallback=this.iframeObj=null;}};IframeTransport.prototype._message=function(e){debug('message',e.data);if(!urlUtils.isOriginEqual(e.origin,this.origin)){debug('not same origin',e.origin,this.origin);return;} var iframeMessage;try{iframeMessage=JSON3.parse(e.data);}catch(ignored){debug('bad json',e.data);return;} if(iframeMessage.windowId!==this.windowId){debug('mismatched window id',iframeMessage.windowId,this.windowId);return;} switch(iframeMessage.type){case's':this.iframeObj.loaded();this.postMessage('s',JSON3.stringify([version,this.transport,this.transUrl,this.baseUrl]));break;case't':this.emit('message',iframeMessage.data);break;case'c':var cdata;try{cdata=JSON3.parse(iframeMessage.data);}catch(ignored){debug('bad json',iframeMessage.data);return;} this.emit('close',cdata[0],cdata[1]);this.close();break;}};IframeTransport.prototype.postMessage=function(type,data){debug('postMessage',type,data);this.iframeObj.post(JSON3.stringify({windowId:this.windowId,type:type,data:data||''}),this.origin);};IframeTransport.prototype.send=function(message){debug('send',message);this.postMessage('m',message);};IframeTransport.enabled=function(){return iframeUtils.iframeEnabled;};IframeTransport.transportName='iframe';IframeTransport.roundTrips=2;module.exports=IframeTransport;}).call(this,{env:{}})},{"../utils/event":46,"../utils/iframe":47,"../utils/random":50,"../utils/url":52,"../version":53,"debug":54,"events":3,"inherits":56,"json3":57}],23:[function(require,module,exports){(function(global){'use strict';var inherits=require('inherits'),SenderReceiver=require('./lib/sender-receiver'),JsonpReceiver=require('./receiver/jsonp'),jsonpSender=require('./sender/jsonp');function JsonPTransport(transUrl){if(!JsonPTransport.enabled()){throw new Error('Transport created when disabled');} SenderReceiver.call(this,transUrl,'/jsonp',jsonpSender,JsonpReceiver);} inherits(JsonPTransport,SenderReceiver);JsonPTransport.enabled=function(){return!!global.document;};JsonPTransport.transportName='jsonp-polling';JsonPTransport.roundTrips=1;JsonPTransport.needBody=true;module.exports=JsonPTransport;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./lib/sender-receiver":28,"./receiver/jsonp":31,"./sender/jsonp":33,"inherits":56}],24:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),urlUtils=require('../../utils/url'),SenderReceiver=require('./sender-receiver');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:ajax-based');} function createAjaxSender(AjaxObject){return function(url,payload,callback){debug('create ajax sender',url,payload);var opt={};if(typeof payload==='string'){opt.headers={'Content-type':'text/plain'};} var ajaxUrl=urlUtils.addPath(url,'/xhr_send');var xo=new AjaxObject('POST',ajaxUrl,payload,opt);xo.once('finish',function(status){debug('finish',status);xo=null;if(status!==200&&status!==204){return callback(new Error('http status '+status));} callback();});return function(){debug('abort');xo.close();xo=null;var err=new Error('Aborted');err.code=1000;callback(err);};};} function AjaxBasedTransport(transUrl,urlSuffix,Receiver,AjaxObject){SenderReceiver.call(this,transUrl,urlSuffix,createAjaxSender(AjaxObject),Receiver,AjaxObject);} inherits(AjaxBasedTransport,SenderReceiver);module.exports=AjaxBasedTransport;}).call(this,{env:{}})},{"../../utils/url":52,"./sender-receiver":28,"debug":54,"inherits":56}],25:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),EventEmitter=require('events').EventEmitter;var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:buffered-sender');} function BufferedSender(url,sender){debug(url);EventEmitter.call(this);this.sendBuffer=[];this.sender=sender;this.url=url;} inherits(BufferedSender,EventEmitter);BufferedSender.prototype.send=function(message){debug('send',message);this.sendBuffer.push(message);if(!this.sendStop){this.sendSchedule();}};BufferedSender.prototype.sendScheduleWait=function(){debug('sendScheduleWait');var self=this;var tref;this.sendStop=function(){debug('sendStop');self.sendStop=null;clearTimeout(tref);};tref=setTimeout(function(){debug('timeout');self.sendStop=null;self.sendSchedule();},25);};BufferedSender.prototype.sendSchedule=function(){debug('sendSchedule',this.sendBuffer.length);var self=this;if(this.sendBuffer.length>0){var payload='['+this.sendBuffer.join(',')+']';this.sendStop=this.sender(this.url,payload,function(err){self.sendStop=null;if(err){debug('error',err);self.emit('close',err.code||1006,'Sending error: '+err);self.close();}else{self.sendScheduleWait();}});this.sendBuffer=[];}};BufferedSender.prototype._cleanup=function(){debug('_cleanup');this.removeAllListeners();};BufferedSender.prototype.close=function(){debug('close');this._cleanup();if(this.sendStop){this.sendStop();this.sendStop=null;}};module.exports=BufferedSender;}).call(this,{env:{}})},{"debug":54,"events":3,"inherits":56}],26:[function(require,module,exports){(function(global){'use strict';var inherits=require('inherits'),IframeTransport=require('../iframe'),objectUtils=require('../../utils/object');module.exports=function(transport){function IframeWrapTransport(transUrl,baseUrl){IframeTransport.call(this,transport.transportName,transUrl,baseUrl);} inherits(IframeWrapTransport,IframeTransport);IframeWrapTransport.enabled=function(url,info){if(!global.document){return false;} var iframeInfo=objectUtils.extend({},info);iframeInfo.sameOrigin=true;return transport.enabled(iframeInfo)&&IframeTransport.enabled();};IframeWrapTransport.transportName='iframe-'+transport.transportName;IframeWrapTransport.needBody=true;IframeWrapTransport.roundTrips=IframeTransport.roundTrips+transport.roundTrips-1;IframeWrapTransport.facadeTransport=transport;return IframeWrapTransport;};}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../../utils/object":49,"../iframe":22,"inherits":56}],27:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),EventEmitter=require('events').EventEmitter;var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:polling');} function Polling(Receiver,receiveUrl,AjaxObject){debug(receiveUrl);EventEmitter.call(this);this.Receiver=Receiver;this.receiveUrl=receiveUrl;this.AjaxObject=AjaxObject;this._scheduleReceiver();} inherits(Polling,EventEmitter);Polling.prototype._scheduleReceiver=function(){debug('_scheduleReceiver');var self=this;var poll=this.poll=new this.Receiver(this.receiveUrl,this.AjaxObject);poll.on('message',function(msg){debug('message',msg);self.emit('message',msg);});poll.once('close',function(code,reason){debug('close',code,reason,self.pollIsClosing);self.poll=poll=null;if(!self.pollIsClosing){if(reason==='network'){self._scheduleReceiver();}else{self.emit('close',code||1006,reason);self.removeAllListeners();}}});};Polling.prototype.abort=function(){debug('abort');this.removeAllListeners();this.pollIsClosing=true;if(this.poll){this.poll.abort();}};module.exports=Polling;}).call(this,{env:{}})},{"debug":54,"events":3,"inherits":56}],28:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),urlUtils=require('../../utils/url'),BufferedSender=require('./buffered-sender'),Polling=require('./polling');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:sender-receiver');} function SenderReceiver(transUrl,urlSuffix,senderFunc,Receiver,AjaxObject){var pollUrl=urlUtils.addPath(transUrl,urlSuffix);debug(pollUrl);var self=this;BufferedSender.call(this,transUrl,senderFunc);this.poll=new Polling(Receiver,pollUrl,AjaxObject);this.poll.on('message',function(msg){debug('poll message',msg);self.emit('message',msg);});this.poll.once('close',function(code,reason){debug('poll close',code,reason);self.poll=null;self.emit('close',code,reason);self.close();});} inherits(SenderReceiver,BufferedSender);SenderReceiver.prototype.close=function(){BufferedSender.prototype.close.call(this);debug('close');this.removeAllListeners();if(this.poll){this.poll.abort();this.poll=null;}};module.exports=SenderReceiver;}).call(this,{env:{}})},{"../../utils/url":52,"./buffered-sender":25,"./polling":27,"debug":54,"inherits":56}],29:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),EventEmitter=require('events').EventEmitter,EventSourceDriver=require('eventsource');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:receiver:eventsource');} function EventSourceReceiver(url){debug(url);EventEmitter.call(this);var self=this;var es=this.es=new EventSourceDriver(url);es.onmessage=function(e){debug('message',e.data);self.emit('message',decodeURI(e.data));};es.onerror=function(e){debug('error',es.readyState,e);var reason=(es.readyState!==2?'network':'permanent');self._cleanup();self._close(reason);};} inherits(EventSourceReceiver,EventEmitter);EventSourceReceiver.prototype.abort=function(){debug('abort');this._cleanup();this._close('user');};EventSourceReceiver.prototype._cleanup=function(){debug('cleanup');var es=this.es;if(es){es.onmessage=es.onerror=null;es.close();this.es=null;}};EventSourceReceiver.prototype._close=function(reason){debug('close',reason);var self=this;setTimeout(function(){self.emit('close',null,reason);self.removeAllListeners();},200);};module.exports=EventSourceReceiver;}).call(this,{env:{}})},{"debug":54,"events":3,"eventsource":18,"inherits":56}],30:[function(require,module,exports){(function(process,global){'use strict';var inherits=require('inherits'),iframeUtils=require('../../utils/iframe'),urlUtils=require('../../utils/url'),EventEmitter=require('events').EventEmitter,random=require('../../utils/random');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:receiver:htmlfile');} function HtmlfileReceiver(url){debug(url);EventEmitter.call(this);var self=this;iframeUtils.polluteGlobalNamespace();this.id='a'+random.string(6);url=urlUtils.addQuery(url,'c='+decodeURIComponent(iframeUtils.WPrefix+'.'+this.id));debug('using htmlfile',HtmlfileReceiver.htmlfileEnabled);var constructFunc=HtmlfileReceiver.htmlfileEnabled?iframeUtils.createHtmlfile:iframeUtils.createIframe;global[iframeUtils.WPrefix][this.id]={start:function(){debug('start');self.iframeObj.loaded();},message:function(data){debug('message',data);self.emit('message',data);},stop:function(){debug('stop');self._cleanup();self._close('network');}};this.iframeObj=constructFunc(url,function(){debug('callback');self._cleanup();self._close('permanent');});} inherits(HtmlfileReceiver,EventEmitter);HtmlfileReceiver.prototype.abort=function(){debug('abort');this._cleanup();this._close('user');};HtmlfileReceiver.prototype._cleanup=function(){debug('_cleanup');if(this.iframeObj){this.iframeObj.cleanup();this.iframeObj=null;} delete global[iframeUtils.WPrefix][this.id];};HtmlfileReceiver.prototype._close=function(reason){debug('_close',reason);this.emit('close',null,reason);this.removeAllListeners();};HtmlfileReceiver.htmlfileEnabled=false;var axo=['Active'].concat('Object').join('X');if(axo in global){try{HtmlfileReceiver.htmlfileEnabled=!!new global[axo]('htmlfile');}catch(x){}} HtmlfileReceiver.enabled=HtmlfileReceiver.htmlfileEnabled||iframeUtils.iframeEnabled;module.exports=HtmlfileReceiver;}).call(this,{env:{}},typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../../utils/iframe":47,"../../utils/random":50,"../../utils/url":52,"debug":54,"events":3,"inherits":56}],31:[function(require,module,exports){(function(process,global){'use strict';var utils=require('../../utils/iframe'),random=require('../../utils/random'),browser=require('../../utils/browser'),urlUtils=require('../../utils/url'),inherits=require('inherits'),EventEmitter=require('events').EventEmitter;var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:receiver:jsonp');} function JsonpReceiver(url){debug(url);var self=this;EventEmitter.call(this);utils.polluteGlobalNamespace();this.id='a'+random.string(6);var urlWithId=urlUtils.addQuery(url,'c='+encodeURIComponent(utils.WPrefix+'.'+this.id));global[utils.WPrefix][this.id]=this._callback.bind(this);this._createScript(urlWithId);this.timeoutId=setTimeout(function(){debug('timeout');self._abort(new Error('JSONP script loaded abnormally (timeout)'));},JsonpReceiver.timeout);} inherits(JsonpReceiver,EventEmitter);JsonpReceiver.prototype.abort=function(){debug('abort');if(global[utils.WPrefix][this.id]){var err=new Error('JSONP user aborted read');err.code=1000;this._abort(err);}};JsonpReceiver.timeout=35000;JsonpReceiver.scriptErrorTimeout=1000;JsonpReceiver.prototype._callback=function(data){debug('_callback',data);this._cleanup();if(this.aborting){return;} if(data){debug('message',data);this.emit('message',data);} this.emit('close',null,'network');this.removeAllListeners();};JsonpReceiver.prototype._abort=function(err){debug('_abort',err);this._cleanup();this.aborting=true;this.emit('close',err.code,err.message);this.removeAllListeners();};JsonpReceiver.prototype._cleanup=function(){debug('_cleanup');clearTimeout(this.timeoutId);if(this.script2){this.script2.parentNode.removeChild(this.script2);this.script2=null;} if(this.script){var script=this.script;script.parentNode.removeChild(script);script.onreadystatechange=script.onerror=script.onload=script.onclick=null;this.script=null;} delete global[utils.WPrefix][this.id];};JsonpReceiver.prototype._scriptError=function(){debug('_scriptError');var self=this;if(this.errorTimer){return;} this.errorTimer=setTimeout(function(){if(!self.loadedOkay){self._abort(new Error('JSONP script loaded abnormally (onerror)'));}},JsonpReceiver.scriptErrorTimeout);};JsonpReceiver.prototype._createScript=function(url){debug('_createScript',url);var self=this;var script=this.script=global.document.createElement('script');var script2;script.id='a'+random.string(8);script.src=url;script.type='text/javascript';script.charset='UTF-8';script.onerror=this._scriptError.bind(this);script.onload=function(){debug('onload');self._abort(new Error('JSONP script loaded abnormally (onload)'));};script.onreadystatechange=function(){debug('onreadystatechange',script.readyState);if(/loaded|closed/.test(script.readyState)){if(script&&script.htmlFor&&script.onclick){self.loadedOkay=true;try{script.onclick();}catch(x){}} if(script){self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)'));}}};if(typeof script.async==='undefined'&&global.document.attachEvent){if(!browser.isOpera()){try{script.htmlFor=script.id;script.event='onclick';}catch(x){} script.async=true;}else{script2=this.script2=global.document.createElement('script');script2.text="try{var a = document.getElementById('"+script.id+"'); if(a)a.onerror();}catch(x){};";script.async=script2.async=false;}} if(typeof script.async!=='undefined'){script.async=true;} var head=global.document.getElementsByTagName('head')[0];head.insertBefore(script,head.firstChild);if(script2){head.insertBefore(script2,head.firstChild);}};module.exports=JsonpReceiver;}).call(this,{env:{}},typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../../utils/browser":44,"../../utils/iframe":47,"../../utils/random":50,"../../utils/url":52,"debug":54,"events":3,"inherits":56}],32:[function(require,module,exports){(function(process){'use strict';var inherits=require('inherits'),EventEmitter=require('events').EventEmitter;var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:receiver:xhr');} function XhrReceiver(url,AjaxObject){debug(url);EventEmitter.call(this);var self=this;this.bufferPosition=0;this.xo=new AjaxObject('POST',url,null);this.xo.on('chunk',this._chunkHandler.bind(this));this.xo.once('finish',function(status,text){debug('finish',status,text);self._chunkHandler(status,text);self.xo=null;var reason=status===200?'network':'permanent';debug('close',reason);self.emit('close',null,reason);self._cleanup();});} inherits(XhrReceiver,EventEmitter);XhrReceiver.prototype._chunkHandler=function(status,text){debug('_chunkHandler',status);if(status!==200||!text){return;} for(var idx=-1;;this.bufferPosition+=idx+1){var buf=text.slice(this.bufferPosition);idx=buf.indexOf('\n');if(idx===-1){break;} var msg=buf.slice(0,idx);if(msg){debug('message',msg);this.emit('message',msg);}}};XhrReceiver.prototype._cleanup=function(){debug('_cleanup');this.removeAllListeners();};XhrReceiver.prototype.abort=function(){debug('abort');if(this.xo){this.xo.close();debug('close');this.emit('close',null,'user');this.xo=null;} this._cleanup();};module.exports=XhrReceiver;}).call(this,{env:{}})},{"debug":54,"events":3,"inherits":56}],33:[function(require,module,exports){(function(process,global){'use strict';var random=require('../../utils/random'),urlUtils=require('../../utils/url');var debug=function(){};if(process.env.NODE_ENV!=='production'){debug=require('debug')('sockjs-client:sender:jsonp');} var form,area;function createIframe(id){debug('createIframe',id);try{return global.document.createElement('