edge/pkg/sdk/client/dist/client.js.map

8 lines
238 KiB
Plaintext

{
"version": 3,
"sources": ["../../../../node_modules/sockjs-client/lib/utils/browser-crypto.js", "../../../../node_modules/sockjs-client/lib/utils/random.js", "../../../../node_modules/sockjs-client/lib/utils/event.js", "../../../../node_modules/requires-port/index.js", "../../../../node_modules/querystringify/index.js", "../../../../node_modules/url-parse/index.js", "../../../../node_modules/ms/index.js", "../../../../node_modules/debug/src/common.js", "../../../../node_modules/debug/src/browser.js", "../../../../node_modules/sockjs-client/lib/utils/url.js", "../../../../node_modules/inherits/inherits_browser.js", "../../../../node_modules/sockjs-client/lib/event/eventtarget.js", "../../../../node_modules/sockjs-client/lib/event/emitter.js", "../../../../node_modules/sockjs-client/lib/transport/browser/websocket.js", "../../../../node_modules/sockjs-client/lib/transport/websocket.js", "../../../../node_modules/sockjs-client/lib/transport/lib/buffered-sender.js", "../../../../node_modules/sockjs-client/lib/transport/lib/polling.js", "../../../../node_modules/sockjs-client/lib/transport/lib/sender-receiver.js", "../../../../node_modules/sockjs-client/lib/transport/lib/ajax-based.js", "../../../../node_modules/sockjs-client/lib/transport/receiver/xhr.js", "../../../../node_modules/sockjs-client/lib/transport/browser/abstract-xhr.js", "../../../../node_modules/sockjs-client/lib/transport/sender/xhr-cors.js", "../../../../node_modules/sockjs-client/lib/transport/sender/xhr-local.js", "../../../../node_modules/sockjs-client/lib/utils/browser.js", "../../../../node_modules/sockjs-client/lib/transport/xhr-streaming.js", "../../../../node_modules/sockjs-client/lib/transport/sender/xdr.js", "../../../../node_modules/sockjs-client/lib/transport/xdr-streaming.js", "../../../../node_modules/sockjs-client/lib/transport/browser/eventsource.js", "../../../../node_modules/sockjs-client/lib/transport/receiver/eventsource.js", "../../../../node_modules/sockjs-client/lib/transport/eventsource.js", "../../../../node_modules/sockjs-client/lib/version.js", "../../../../node_modules/sockjs-client/lib/utils/iframe.js", "../../../../node_modules/sockjs-client/lib/transport/iframe.js", "../../../../node_modules/sockjs-client/lib/utils/object.js", "../../../../node_modules/sockjs-client/lib/transport/lib/iframe-wrap.js", "../../../../node_modules/sockjs-client/lib/transport/receiver/htmlfile.js", "../../../../node_modules/sockjs-client/lib/transport/htmlfile.js", "../../../../node_modules/sockjs-client/lib/transport/xhr-polling.js", "../../../../node_modules/sockjs-client/lib/transport/xdr-polling.js", "../../../../node_modules/sockjs-client/lib/transport/receiver/jsonp.js", "../../../../node_modules/sockjs-client/lib/transport/sender/jsonp.js", "../../../../node_modules/sockjs-client/lib/transport/jsonp-polling.js", "../../../../node_modules/sockjs-client/lib/transport-list.js", "../../../../node_modules/sockjs-client/lib/shims.js", "../../../../node_modules/sockjs-client/lib/utils/escape.js", "../../../../node_modules/sockjs-client/lib/utils/transport.js", "../../../../node_modules/sockjs-client/lib/utils/log.js", "../../../../node_modules/sockjs-client/lib/event/event.js", "../../../../node_modules/sockjs-client/lib/location.js", "../../../../node_modules/sockjs-client/lib/event/close.js", "../../../../node_modules/sockjs-client/lib/event/trans-message.js", "../../../../node_modules/sockjs-client/lib/transport/sender/xhr-fake.js", "../../../../node_modules/sockjs-client/lib/info-ajax.js", "../../../../node_modules/sockjs-client/lib/info-iframe-receiver.js", "../../../../node_modules/sockjs-client/lib/info-iframe.js", "../../../../node_modules/sockjs-client/lib/info-receiver.js", "../../../../node_modules/sockjs-client/lib/facade.js", "../../../../node_modules/sockjs-client/lib/iframe-bootstrap.js", "../../../../node_modules/sockjs-client/lib/main.js", "../../../../node_modules/sockjs-client/lib/entry.js", "../src/index.ts", "../src/event-target.ts", "../src/message.ts", "../src/rpc-error.ts", "../src/client.ts", "../src/crossframe-messenger.ts"],
"sourcesContent": ["'use strict';\n\nif (global.crypto && global.crypto.getRandomValues) {\n module.exports.randomBytes = function(length) {\n var bytes = new Uint8Array(length);\n global.crypto.getRandomValues(bytes);\n return bytes;\n };\n} else {\n module.exports.randomBytes = function(length) {\n var bytes = new Array(length);\n for (var i = 0; i < length; i++) {\n bytes[i] = Math.floor(Math.random() * 256);\n }\n return bytes;\n };\n}\n", "'use strict';\n\nvar crypto = require('crypto');\n\n// This string has length 32, a power of 2, so the modulus doesn't introduce a\n// bias.\nvar _randomStringChars = 'abcdefghijklmnopqrstuvwxyz012345';\nmodule.exports = {\n string: function(length) {\n var max = _randomStringChars.length;\n var bytes = crypto.randomBytes(length);\n var ret = [];\n for (var i = 0; i < length; i++) {\n ret.push(_randomStringChars.substr(bytes[i] % max, 1));\n }\n return ret.join('');\n }\n\n, number: function(max) {\n return Math.floor(Math.random() * max);\n }\n\n, numberString: function(max) {\n var t = ('' + (max - 1)).length;\n var p = new Array(t + 1).join('0');\n return (p + this.number(max)).slice(-t);\n }\n};\n", "'use strict';\n\nvar random = require('./random');\n\nvar onUnload = {}\n , afterUnload = false\n // detect google chrome packaged apps because they don't allow the 'unload' event\n , isChromePackagedApp = global.chrome && global.chrome.app && global.chrome.app.runtime\n ;\n\nmodule.exports = {\n attachEvent: function(event, listener) {\n if (typeof global.addEventListener !== 'undefined') {\n global.addEventListener(event, listener, false);\n } else if (global.document && global.attachEvent) {\n // IE quirks.\n // According to: http://stevesouders.com/misc/test-postmessage.php\n // the message gets delivered only to 'document', not 'window'.\n global.document.attachEvent('on' + event, listener);\n // I get 'window' for ie8.\n global.attachEvent('on' + event, listener);\n }\n }\n\n, detachEvent: function(event, listener) {\n if (typeof global.addEventListener !== 'undefined') {\n global.removeEventListener(event, listener, false);\n } else if (global.document && global.detachEvent) {\n global.document.detachEvent('on' + event, listener);\n global.detachEvent('on' + event, listener);\n }\n }\n\n, unloadAdd: function(listener) {\n if (isChromePackagedApp) {\n return null;\n }\n\n var ref = random.string(8);\n onUnload[ref] = listener;\n if (afterUnload) {\n setTimeout(this.triggerUnloadCallbacks, 0);\n }\n return ref;\n }\n\n, unloadDel: function(ref) {\n if (ref in onUnload) {\n delete onUnload[ref];\n }\n }\n\n, triggerUnloadCallbacks: function() {\n for (var ref in onUnload) {\n onUnload[ref]();\n delete onUnload[ref];\n }\n }\n};\n\nvar unloadTriggered = function() {\n if (afterUnload) {\n return;\n }\n afterUnload = true;\n module.exports.triggerUnloadCallbacks();\n};\n\n// 'unload' alone is not reliable in opera within an iframe, but we\n// can't use `beforeunload` as IE fires it on javascript: links.\nif (!isChromePackagedApp) {\n module.exports.attachEvent('unload', unloadTriggered);\n}\n", "'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n protocol = protocol.split(':')[0];\n port = +port;\n\n if (!port) return false;\n\n switch (protocol) {\n case 'http':\n case 'ws':\n return port !== 80;\n\n case 'https':\n case 'wss':\n return port !== 443;\n\n case 'ftp':\n return port !== 21;\n\n case 'gopher':\n return port !== 70;\n\n case 'file':\n return false;\n }\n\n return port !== 0;\n};\n", "'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g\n , result = {}\n , part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1])\n , value = decode(part[2]);\n\n //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n\n var pairs = []\n , value\n , key;\n\n //\n // Optionally prefix with a '?' if needed\n //\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key];\n\n //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value);\n\n //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n if (key === null || value === null) continue;\n pairs.push(key +'='+ value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n", "'use strict';\n\nvar required = require('requires-port')\n , qs = require('querystringify')\n , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n , CRHTLF = /[\\n\\r\\t]/g\n , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n , port = /:\\d+$/\n , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n * characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n * indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n * the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n ['#', 'hash'], // Extract from the back.\n ['?', 'query'], // Extract from the back.\n function sanitize(address, url) { // Sanitize what is left of the address\n return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n },\n ['/', 'pathname'], // Extract from the back.\n ['@', 'auth', 1], // Extract from the front.\n [NaN, 'host', undefined, 1, 1], // Set left over value.\n [/:(\\d*)$/, 'port', undefined, 1], // RegExp the back.\n [NaN, 'hostname', undefined, 1, 1] // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n var globalVar;\n\n if (typeof window !== 'undefined') globalVar = window;\n else if (typeof global !== 'undefined') globalVar = global;\n else if (typeof self !== 'undefined') globalVar = self;\n else globalVar = {};\n\n var location = globalVar.location || {};\n loc = loc || location;\n\n var finaldestination = {}\n , type = typeof loc\n , key;\n\n if ('blob:' === loc.protocol) {\n finaldestination = new Url(unescape(loc.pathname), {});\n } else if ('string' === type) {\n finaldestination = new Url(loc, {});\n for (key in ignore) delete finaldestination[key];\n } else if ('object' === type) {\n for (key in loc) {\n if (key in ignore) continue;\n finaldestination[key] = loc[key];\n }\n\n if (finaldestination.slashes === undefined) {\n finaldestination.slashes = slashes.test(loc.href);\n }\n }\n\n return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n return (\n scheme === 'file:' ||\n scheme === 'ftp:' ||\n scheme === 'http:' ||\n scheme === 'https:' ||\n scheme === 'ws:' ||\n scheme === 'wss:'\n );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n location = location || {};\n\n var match = protocolre.exec(address);\n var protocol = match[1] ? match[1].toLowerCase() : '';\n var forwardSlashes = !!match[2];\n var otherSlashes = !!match[3];\n var slashesCount = 0;\n var rest;\n\n if (forwardSlashes) {\n if (otherSlashes) {\n rest = match[2] + match[3] + match[4];\n slashesCount = match[2].length + match[3].length;\n } else {\n rest = match[2] + match[4];\n slashesCount = match[2].length;\n }\n } else {\n if (otherSlashes) {\n rest = match[3] + match[4];\n slashesCount = match[3].length;\n } else {\n rest = match[4]\n }\n }\n\n if (protocol === 'file:') {\n if (slashesCount >= 2) {\n rest = rest.slice(2);\n }\n } else if (isSpecial(protocol)) {\n rest = match[4];\n } else if (protocol) {\n if (forwardSlashes) {\n rest = rest.slice(2);\n }\n } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n rest = match[4];\n }\n\n return {\n protocol: protocol,\n slashes: forwardSlashes || isSpecial(protocol),\n slashesCount: slashesCount,\n rest: rest\n };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n if (relative === '') return base;\n\n var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n , i = path.length\n , last = path[i - 1]\n , unshift = false\n , up = 0;\n\n while (i--) {\n if (path[i] === '.') {\n path.splice(i, 1);\n } else if (path[i] === '..') {\n path.splice(i, 1);\n up++;\n } else if (up) {\n if (i === 0) unshift = true;\n path.splice(i, 1);\n up--;\n }\n }\n\n if (unshift) path.unshift('');\n if (last === '.' || last === '..') path.push('');\n\n return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n address = trimLeft(address);\n address = address.replace(CRHTLF, '');\n\n if (!(this instanceof Url)) {\n return new Url(address, location, parser);\n }\n\n var relative, extracted, parse, instruction, index, key\n , instructions = rules.slice()\n , type = typeof location\n , url = this\n , i = 0;\n\n //\n // The following if statements allows this module two have compatibility with\n // 2 different API:\n //\n // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n // where the boolean indicates that the query string should also be parsed.\n //\n // 2. The `URL` interface of the browser which accepts a URL, object as\n // arguments. The supplied object will be used as default values / fall-back\n // for relative paths.\n //\n if ('object' !== type && 'string' !== type) {\n parser = location;\n location = null;\n }\n\n if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n location = lolcation(location);\n\n //\n // Extract protocol information before running the instructions.\n //\n extracted = extractProtocol(address || '', location);\n relative = !extracted.protocol && !extracted.slashes;\n url.slashes = extracted.slashes || relative && location.slashes;\n url.protocol = extracted.protocol || location.protocol || '';\n address = extracted.rest;\n\n //\n // When the authority component is absent the URL starts with a path\n // component.\n //\n if (\n extracted.protocol === 'file:' && (\n extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n (!extracted.slashes &&\n (extracted.protocol ||\n extracted.slashesCount < 2 ||\n !isSpecial(url.protocol)))\n ) {\n instructions[3] = [/(.*)/, 'pathname'];\n }\n\n for (; i < instructions.length; i++) {\n instruction = instructions[i];\n\n if (typeof instruction === 'function') {\n address = instruction(address, url);\n continue;\n }\n\n parse = instruction[0];\n key = instruction[1];\n\n if (parse !== parse) {\n url[key] = address;\n } else if ('string' === typeof parse) {\n index = parse === '@'\n ? address.lastIndexOf(parse)\n : address.indexOf(parse);\n\n if (~index) {\n if ('number' === typeof instruction[2]) {\n url[key] = address.slice(0, index);\n address = address.slice(index + instruction[2]);\n } else {\n url[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else if ((index = parse.exec(address))) {\n url[key] = index[1];\n address = address.slice(0, index.index);\n }\n\n url[key] = url[key] || (\n relative && instruction[3] ? location[key] || '' : ''\n );\n\n //\n // Hostname, host and protocol should be lowercased so they can be used to\n // create a proper `origin`.\n //\n if (instruction[4]) url[key] = url[key].toLowerCase();\n }\n\n //\n // Also parse the supplied query string in to an object. If we're supplied\n // with a custom parser as function use that instead of the default build-in\n // parser.\n //\n if (parser) url.query = parser(url.query);\n\n //\n // If the URL is relative, resolve the pathname against the base URL.\n //\n if (\n relative\n && location.slashes\n && url.pathname.charAt(0) !== '/'\n && (url.pathname !== '' || location.pathname !== '')\n ) {\n url.pathname = resolve(url.pathname, location.pathname);\n }\n\n //\n // Default to a / for pathname if none exists. This normalizes the URL\n // to always have a /\n //\n if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n url.pathname = '/' + url.pathname;\n }\n\n //\n // We should not add port numbers if they are already the default port number\n // for a given protocol. As the host also contains the port number we're going\n // override it with the hostname which contains no port number.\n //\n if (!required(url.port, url.protocol)) {\n url.host = url.hostname;\n url.port = '';\n }\n\n //\n // Parse down the `auth` for the username and password.\n //\n url.username = url.password = '';\n\n if (url.auth) {\n index = url.auth.indexOf(':');\n\n if (~index) {\n url.username = url.auth.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = url.auth.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password))\n } else {\n url.username = encodeURIComponent(decodeURIComponent(url.auth));\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n }\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n //\n // The href is just the compiled result.\n //\n url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part Property we need to adjust.\n * @param {Mixed} value The newly assigned value.\n * @param {Boolean|Function} fn When setting the query, it will be the function\n * used to parse the query.\n * When setting the protocol, double slash will be\n * removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n var url = this;\n\n switch (part) {\n case 'query':\n if ('string' === typeof value && value.length) {\n value = (fn || qs.parse)(value);\n }\n\n url[part] = value;\n break;\n\n case 'port':\n url[part] = value;\n\n if (!required(value, url.protocol)) {\n url.host = url.hostname;\n url[part] = '';\n } else if (value) {\n url.host = url.hostname +':'+ value;\n }\n\n break;\n\n case 'hostname':\n url[part] = value;\n\n if (url.port) value += ':'+ url.port;\n url.host = value;\n break;\n\n case 'host':\n url[part] = value;\n\n if (port.test(value)) {\n value = value.split(':');\n url.port = value.pop();\n url.hostname = value.join(':');\n } else {\n url.hostname = value;\n url.port = '';\n }\n\n break;\n\n case 'protocol':\n url.protocol = value.toLowerCase();\n url.slashes = !fn;\n break;\n\n case 'pathname':\n case 'hash':\n if (value) {\n var char = part === 'pathname' ? '/' : '#';\n url[part] = value.charAt(0) !== char ? char + value : value;\n } else {\n url[part] = value;\n }\n break;\n\n case 'username':\n case 'password':\n url[part] = encodeURIComponent(value);\n break;\n\n case 'auth':\n var index = value.indexOf(':');\n\n if (~index) {\n url.username = value.slice(0, index);\n url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n url.password = value.slice(index + 1);\n url.password = encodeURIComponent(decodeURIComponent(url.password));\n } else {\n url.username = encodeURIComponent(decodeURIComponent(value));\n }\n }\n\n for (var i = 0; i < rules.length; i++) {\n var ins = rules[i];\n\n if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n }\n\n url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n ? url.protocol +'//'+ url.host\n : 'null';\n\n url.href = url.toString();\n\n return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n var query\n , url = this\n , host = url.host\n , protocol = url.protocol;\n\n if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n var result =\n protocol +\n ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n if (url.username) {\n result += url.username;\n if (url.password) result += ':'+ url.password;\n result += '@';\n } else if (url.password) {\n result += ':'+ url.password;\n result += '@';\n } else if (\n url.protocol !== 'file:' &&\n isSpecial(url.protocol) &&\n !host &&\n url.pathname !== '/'\n ) {\n //\n // Add back the empty userinfo, otherwise the original invalid URL\n // might be transformed into a valid one with `url.pathname` as host.\n //\n result += '@';\n }\n\n //\n // Trailing colon is removed from `url.host` when it is parsed. If it still\n // ends with a colon, then add back the trailing colon that was removed. This\n // prevents an invalid URL from being transformed into a valid one.\n //\n if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n host += ':';\n }\n\n result += host + url.pathname;\n\n query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n if (url.hash) result += url.hash;\n\n return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\"use strict\";\n\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\nfunction setup(env) {\n createDebug.debug = createDebug;\n createDebug.default = createDebug;\n createDebug.coerce = coerce;\n createDebug.disable = disable;\n createDebug.enable = enable;\n createDebug.enabled = enabled;\n createDebug.humanize = require('ms');\n Object.keys(env).forEach(function (key) {\n createDebug[key] = env[key];\n });\n /**\n * Active `debug` instances.\n */\n\n createDebug.instances = [];\n /**\n * The currently active debug mode names, and names to skip.\n */\n\n createDebug.names = [];\n createDebug.skips = [];\n /**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\n createDebug.formatters = {};\n /**\n * Selects a color for a debug namespace\n * @param {String} namespace The namespace string for the for the debug instance to be colored\n * @return {Number|String} An ANSI color code for the given namespace\n * @api private\n */\n\n function selectColor(namespace) {\n var hash = 0;\n\n for (var i = 0; i < namespace.length; i++) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n }\n\n createDebug.selectColor = selectColor;\n /**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n function createDebug(namespace) {\n var prevTime;\n\n function debug() {\n // Disabled?\n if (!debug.enabled) {\n return;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var self = debug; // Set `diff` timestamp\n\n var curr = Number(new Date());\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n args[0] = createDebug.coerce(args[0]);\n\n if (typeof args[0] !== 'string') {\n // Anything else let's inspect with %O\n args.unshift('%O');\n } // Apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // If we encounter an escaped % then don't increase the array index\n if (match === '%%') {\n return match;\n }\n\n index++;\n var formatter = createDebug.formatters[format];\n\n if (typeof formatter === 'function') {\n var val = args[index];\n match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // Apply env-specific formatting (colors, etc.)\n\n createDebug.formatArgs.call(self, args);\n var logFn = self.log || createDebug.log;\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = createDebug.enabled(namespace);\n debug.useColors = createDebug.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n debug.extend = extend; // Debug.formatArgs = formatArgs;\n // debug.rawLog = rawLog;\n // env-specific initialization logic for debug instances\n\n if (typeof createDebug.init === 'function') {\n createDebug.init(debug);\n }\n\n createDebug.instances.push(debug);\n return debug;\n }\n\n function destroy() {\n var index = createDebug.instances.indexOf(this);\n\n if (index !== -1) {\n createDebug.instances.splice(index, 1);\n return true;\n }\n\n return false;\n }\n\n function extend(namespace, delimiter) {\n return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n }\n /**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\n function enable(namespaces) {\n createDebug.save(namespaces);\n createDebug.names = [];\n createDebug.skips = [];\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) {\n // ignore empty strings\n continue;\n }\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n createDebug.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < createDebug.instances.length; i++) {\n var instance = createDebug.instances[i];\n instance.enabled = createDebug.enabled(instance.namespace);\n }\n }\n /**\n * Disable debug output.\n *\n * @api public\n */\n\n\n function disable() {\n createDebug.enable('');\n }\n /**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\n function enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n\n var i;\n var len;\n\n for (i = 0, len = createDebug.skips.length; i < len; i++) {\n if (createDebug.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = createDebug.names.length; i < len; i++) {\n if (createDebug.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\n function coerce(val) {\n if (val instanceof Error) {\n return val.stack || val.message;\n }\n\n return val;\n }\n\n createDebug.enable(createDebug.load());\n return createDebug;\n}\n\nmodule.exports = setup;\n\n", "\"use strict\";\n\nfunction _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); }\n\n/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n// eslint-disable-next-line complexity\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n return true;\n } // Internet Explorer and Edge do not support colors.\n\n\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n } // Is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);\n\n if (!this.useColors) {\n return;\n }\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // The final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if (match === '%%') {\n return;\n }\n\n index++;\n\n if (match === '%c') {\n // We only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n var _console;\n\n // This hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return (typeof console === \"undefined\" ? \"undefined\" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (namespaces) {\n exports.storage.setItem('debug', namespaces);\n } else {\n exports.storage.removeItem('debug');\n }\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.getItem('debug');\n } catch (error) {} // Swallow\n // XXX (@Qix-) should we be logging these?\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\n\nfunction localstorage() {\n try {\n // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n // The Browser also has localStorage in the global context.\n return localStorage;\n } catch (error) {// Swallow\n // XXX (@Qix-) should we be logging these?\n }\n}\n\nmodule.exports = require('./common')(exports);\nvar formatters = module.exports.formatters;\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (error) {\n return '[UnexpectedJSONParseError]: ' + error.message;\n }\n};\n\n", "'use strict';\n\nvar URL = require('url-parse');\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:utils:url');\n}\n\nmodule.exports = {\n getOrigin: function(url) {\n if (!url) {\n return null;\n }\n\n var p = new URL(url);\n if (p.protocol === 'file:') {\n return null;\n }\n\n var port = p.port;\n if (!port) {\n port = (p.protocol === 'https:') ? '443' : '80';\n }\n\n return p.protocol + '//' + p.hostname + ':' + port;\n }\n\n, isOriginEqual: function(a, b) {\n var res = this.getOrigin(a) === this.getOrigin(b);\n debug('same', a, b, res);\n return res;\n }\n\n, isSchemeEqual: function(a, b) {\n return (a.split(':')[0] === b.split(':')[0]);\n }\n\n, addPath: function (url, path) {\n var qs = url.split('?');\n return qs[0] + path + (qs[1] ? '?' + qs[1] : '');\n }\n\n, addQuery: function (url, q) {\n return url + (url.indexOf('?') === -1 ? ('?' + q) : ('&' + q));\n }\n\n, isLoopbackAddr: function (addr) {\n return /^127\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})$/i.test(addr) || /^\\[::1\\]$/.test(addr);\n }\n};\n", "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n", "'use strict';\n\n/* Simplified implementation of DOM2 EventTarget.\n * http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget\n */\n\nfunction EventTarget() {\n this._listeners = {};\n}\n\nEventTarget.prototype.addEventListener = function(eventType, listener) {\n if (!(eventType in this._listeners)) {\n this._listeners[eventType] = [];\n }\n var arr = this._listeners[eventType];\n // #4\n if (arr.indexOf(listener) === -1) {\n // Make a copy so as not to interfere with a current dispatchEvent.\n arr = arr.concat([listener]);\n }\n this._listeners[eventType] = arr;\n};\n\nEventTarget.prototype.removeEventListener = function(eventType, listener) {\n var arr = this._listeners[eventType];\n if (!arr) {\n return;\n }\n var idx = arr.indexOf(listener);\n if (idx !== -1) {\n if (arr.length > 1) {\n // Make a copy so as not to interfere with a current dispatchEvent.\n this._listeners[eventType] = arr.slice(0, idx).concat(arr.slice(idx + 1));\n } else {\n delete this._listeners[eventType];\n }\n return;\n }\n};\n\nEventTarget.prototype.dispatchEvent = function() {\n var event = arguments[0];\n var t = event.type;\n // equivalent of Array.prototype.slice.call(arguments, 0);\n var args = arguments.length === 1 ? [event] : Array.apply(null, arguments);\n // TODO: This doesn't match the real behavior; per spec, onfoo get\n // their place in line from the /first/ time they're set from\n // non-null. Although WebKit bumps it to the end every time it's\n // set.\n if (this['on' + t]) {\n this['on' + t].apply(this, args);\n }\n if (t in this._listeners) {\n // Grab a reference to the listeners list. removeEventListener may alter the list.\n var listeners = this._listeners[t];\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].apply(this, args);\n }\n }\n};\n\nmodule.exports = EventTarget;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventTarget = require('./eventtarget')\n ;\n\nfunction EventEmitter() {\n EventTarget.call(this);\n}\n\ninherits(EventEmitter, EventTarget);\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n if (type) {\n delete this._listeners[type];\n } else {\n this._listeners = {};\n }\n};\n\nEventEmitter.prototype.once = function(type, listener) {\n var self = this\n , fired = false;\n\n function g() {\n self.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n this.on(type, g);\n};\n\nEventEmitter.prototype.emit = function() {\n var type = arguments[0];\n var listeners = this._listeners[type];\n if (!listeners) {\n return;\n }\n // equivalent of Array.prototype.slice.call(arguments, 1);\n var l = arguments.length;\n var args = new Array(l - 1);\n for (var ai = 1; ai < l; ai++) {\n args[ai - 1] = arguments[ai];\n }\n for (var i = 0; i < listeners.length; i++) {\n listeners[i].apply(this, args);\n }\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener = EventTarget.prototype.addEventListener;\nEventEmitter.prototype.removeListener = EventTarget.prototype.removeEventListener;\n\nmodule.exports.EventEmitter = EventEmitter;\n", "'use strict';\n\nvar Driver = global.WebSocket || global.MozWebSocket;\nif (Driver) {\n\tmodule.exports = function WebSocketBrowserDriver(url) {\n\t\treturn new Driver(url);\n\t};\n} else {\n\tmodule.exports = undefined;\n}\n", "'use strict';\n\nvar utils = require('../utils/event')\n , urlUtils = require('../utils/url')\n , inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , WebsocketDriver = require('./driver/websocket')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:websocket');\n}\n\nfunction WebSocketTransport(transUrl, ignore, options) {\n if (!WebSocketTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n\n EventEmitter.call(this);\n debug('constructor', transUrl);\n\n var self = this;\n var url = urlUtils.addPath(transUrl, '/websocket');\n if (url.slice(0, 5) === 'https') {\n url = 'wss' + url.slice(5);\n } else {\n url = 'ws' + url.slice(4);\n }\n this.url = url;\n\n this.ws = new WebsocketDriver(this.url, [], options);\n this.ws.onmessage = function(e) {\n debug('message event', e.data);\n self.emit('message', e.data);\n };\n // Firefox has an interesting bug. If a websocket connection is\n // created after onunload, it stays alive even when user\n // navigates away from the page. In such situation let's lie -\n // let's not open the ws connection at all. See:\n // https://github.com/sockjs/sockjs-client/issues/28\n // https://bugzilla.mozilla.org/show_bug.cgi?id=696085\n this.unloadRef = utils.unloadAdd(function() {\n debug('unload');\n self.ws.close();\n });\n this.ws.onclose = function(e) {\n debug('close event', e.code, e.reason);\n self.emit('close', e.code, e.reason);\n self._cleanup();\n };\n this.ws.onerror = function(e) {\n debug('error event', e);\n self.emit('close', 1006, 'WebSocket connection broken');\n self._cleanup();\n };\n}\n\ninherits(WebSocketTransport, EventEmitter);\n\nWebSocketTransport.prototype.send = function(data) {\n var msg = '[' + data + ']';\n debug('send', msg);\n this.ws.send(msg);\n};\n\nWebSocketTransport.prototype.close = function() {\n debug('close');\n var ws = this.ws;\n this._cleanup();\n if (ws) {\n ws.close();\n }\n};\n\nWebSocketTransport.prototype._cleanup = function() {\n debug('_cleanup');\n var ws = this.ws;\n if (ws) {\n ws.onmessage = ws.onclose = ws.onerror = null;\n }\n utils.unloadDel(this.unloadRef);\n this.unloadRef = this.ws = null;\n this.removeAllListeners();\n};\n\nWebSocketTransport.enabled = function() {\n debug('enabled');\n return !!WebsocketDriver;\n};\nWebSocketTransport.transportName = 'websocket';\n\n// In theory, ws should require 1 round trip. But in chrome, this is\n// not very stable over SSL. Most likely a ws connection requires a\n// separate SSL connection, in which case 2 round trips are an\n// absolute minumum.\nWebSocketTransport.roundTrips = 2;\n\nmodule.exports = WebSocketTransport;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:buffered-sender');\n}\n\nfunction BufferedSender(url, sender) {\n debug(url);\n EventEmitter.call(this);\n this.sendBuffer = [];\n this.sender = sender;\n this.url = url;\n}\n\ninherits(BufferedSender, EventEmitter);\n\nBufferedSender.prototype.send = function(message) {\n debug('send', message);\n this.sendBuffer.push(message);\n if (!this.sendStop) {\n this.sendSchedule();\n }\n};\n\n// For polling transports in a situation when in the message callback,\n// new message is being send. If the sending connection was started\n// before receiving one, it is possible to saturate the network and\n// timeout due to the lack of receiving socket. To avoid that we delay\n// sending messages by some small time, in order to let receiving\n// connection be started beforehand. This is only a halfmeasure and\n// does not fix the big problem, but it does make the tests go more\n// stable on slow networks.\nBufferedSender.prototype.sendScheduleWait = function() {\n debug('sendScheduleWait');\n var self = this;\n var tref;\n this.sendStop = function() {\n debug('sendStop');\n self.sendStop = null;\n clearTimeout(tref);\n };\n tref = setTimeout(function() {\n debug('timeout');\n self.sendStop = null;\n self.sendSchedule();\n }, 25);\n};\n\nBufferedSender.prototype.sendSchedule = function() {\n debug('sendSchedule', this.sendBuffer.length);\n var self = this;\n if (this.sendBuffer.length > 0) {\n var payload = '[' + this.sendBuffer.join(',') + ']';\n this.sendStop = this.sender(this.url, payload, function(err) {\n self.sendStop = null;\n if (err) {\n debug('error', err);\n self.emit('close', err.code || 1006, 'Sending error: ' + err);\n self.close();\n } else {\n self.sendScheduleWait();\n }\n });\n this.sendBuffer = [];\n }\n};\n\nBufferedSender.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nBufferedSender.prototype.close = function() {\n debug('close');\n this._cleanup();\n if (this.sendStop) {\n this.sendStop();\n this.sendStop = null;\n }\n};\n\nmodule.exports = BufferedSender;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:polling');\n}\n\nfunction Polling(Receiver, receiveUrl, AjaxObject) {\n debug(receiveUrl);\n EventEmitter.call(this);\n this.Receiver = Receiver;\n this.receiveUrl = receiveUrl;\n this.AjaxObject = AjaxObject;\n this._scheduleReceiver();\n}\n\ninherits(Polling, EventEmitter);\n\nPolling.prototype._scheduleReceiver = function() {\n debug('_scheduleReceiver');\n var self = this;\n var poll = this.poll = new this.Receiver(this.receiveUrl, this.AjaxObject);\n\n poll.on('message', function(msg) {\n debug('message', msg);\n self.emit('message', msg);\n });\n\n poll.once('close', function(code, reason) {\n debug('close', code, reason, self.pollIsClosing);\n self.poll = poll = null;\n\n if (!self.pollIsClosing) {\n if (reason === 'network') {\n self._scheduleReceiver();\n } else {\n self.emit('close', code || 1006, reason);\n self.removeAllListeners();\n }\n }\n });\n};\n\nPolling.prototype.abort = function() {\n debug('abort');\n this.removeAllListeners();\n this.pollIsClosing = true;\n if (this.poll) {\n this.poll.abort();\n }\n};\n\nmodule.exports = Polling;\n", "'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , BufferedSender = require('./buffered-sender')\n , Polling = require('./polling')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender-receiver');\n}\n\nfunction SenderReceiver(transUrl, urlSuffix, senderFunc, Receiver, AjaxObject) {\n var pollUrl = urlUtils.addPath(transUrl, urlSuffix);\n debug(pollUrl);\n var self = this;\n BufferedSender.call(this, transUrl, senderFunc);\n\n this.poll = new Polling(Receiver, pollUrl, AjaxObject);\n this.poll.on('message', function(msg) {\n debug('poll message', msg);\n self.emit('message', msg);\n });\n this.poll.once('close', function(code, reason) {\n debug('poll close', code, reason);\n self.poll = null;\n self.emit('close', code, reason);\n self.close();\n });\n}\n\ninherits(SenderReceiver, BufferedSender);\n\nSenderReceiver.prototype.close = function() {\n BufferedSender.prototype.close.call(this);\n debug('close');\n this.removeAllListeners();\n if (this.poll) {\n this.poll.abort();\n this.poll = null;\n }\n};\n\nmodule.exports = SenderReceiver;\n", "'use strict';\n\nvar inherits = require('inherits')\n , urlUtils = require('../../utils/url')\n , SenderReceiver = require('./sender-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:ajax-based');\n}\n\nfunction createAjaxSender(AjaxObject) {\n return function(url, payload, callback) {\n debug('create ajax sender', url, payload);\n var opt = {};\n if (typeof payload === 'string') {\n opt.headers = {'Content-type': 'text/plain'};\n }\n var ajaxUrl = urlUtils.addPath(url, '/xhr_send');\n var xo = new AjaxObject('POST', ajaxUrl, payload, opt);\n xo.once('finish', function(status) {\n debug('finish', status);\n xo = null;\n\n if (status !== 200 && status !== 204) {\n return callback(new Error('http status ' + status));\n }\n callback();\n });\n return function() {\n debug('abort');\n xo.close();\n xo = null;\n\n var err = new Error('Aborted');\n err.code = 1000;\n callback(err);\n };\n };\n}\n\nfunction AjaxBasedTransport(transUrl, urlSuffix, Receiver, AjaxObject) {\n SenderReceiver.call(this, transUrl, urlSuffix, createAjaxSender(AjaxObject), Receiver, AjaxObject);\n}\n\ninherits(AjaxBasedTransport, SenderReceiver);\n\nmodule.exports = AjaxBasedTransport;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:xhr');\n}\n\nfunction XhrReceiver(url, AjaxObject) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n\n this.bufferPosition = 0;\n\n this.xo = new AjaxObject('POST', url, null);\n this.xo.on('chunk', this._chunkHandler.bind(this));\n this.xo.once('finish', function(status, text) {\n debug('finish', status, text);\n self._chunkHandler(status, text);\n self.xo = null;\n var reason = status === 200 ? 'network' : 'permanent';\n debug('close', reason);\n self.emit('close', null, reason);\n self._cleanup();\n });\n}\n\ninherits(XhrReceiver, EventEmitter);\n\nXhrReceiver.prototype._chunkHandler = function(status, text) {\n debug('_chunkHandler', status);\n if (status !== 200 || !text) {\n return;\n }\n\n for (var idx = -1; ; this.bufferPosition += idx + 1) {\n var buf = text.slice(this.bufferPosition);\n idx = buf.indexOf('\\n');\n if (idx === -1) {\n break;\n }\n var msg = buf.slice(0, idx);\n if (msg) {\n debug('message', msg);\n this.emit('message', msg);\n }\n }\n};\n\nXhrReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n this.removeAllListeners();\n};\n\nXhrReceiver.prototype.abort = function() {\n debug('abort');\n if (this.xo) {\n this.xo.close();\n debug('close');\n this.emit('close', null, 'user');\n this.xo = null;\n }\n this._cleanup();\n};\n\nmodule.exports = XhrReceiver;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , utils = require('../../utils/event')\n , urlUtils = require('../../utils/url')\n , XHR = global.XMLHttpRequest\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:browser:xhr');\n}\n\nfunction AbstractXHRObject(method, url, payload, opts) {\n debug(method, url);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function () {\n self._start(method, url, payload, opts);\n }, 0);\n}\n\ninherits(AbstractXHRObject, EventEmitter);\n\nAbstractXHRObject.prototype._start = function(method, url, payload, opts) {\n var self = this;\n\n try {\n this.xhr = new XHR();\n } catch (x) {\n // intentionally empty\n }\n\n if (!this.xhr) {\n debug('no xhr');\n this.emit('finish', 0, 'no xhr support');\n this._cleanup();\n return;\n }\n\n // several browsers cache POSTs\n url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n // Explorer tends to keep connection open, even after the\n // tab gets closed: http://bugs.jquery.com/ticket/5280\n this.unloadRef = utils.unloadAdd(function() {\n debug('unload cleanup');\n self._cleanup(true);\n });\n try {\n this.xhr.open(method, url, true);\n if (this.timeout && 'timeout' in this.xhr) {\n this.xhr.timeout = this.timeout;\n this.xhr.ontimeout = function() {\n debug('xhr timeout');\n self.emit('finish', 0, '');\n self._cleanup(false);\n };\n }\n } catch (e) {\n debug('exception', e);\n // IE raises an exception on wrong port.\n this.emit('finish', 0, '');\n this._cleanup(false);\n return;\n }\n\n if ((!opts || !opts.noCredentials) && AbstractXHRObject.supportsCORS) {\n debug('withCredentials');\n // Mozilla docs says https://developer.mozilla.org/en/XMLHttpRequest :\n // \"This never affects same-site requests.\"\n\n this.xhr.withCredentials = true;\n }\n if (opts && opts.headers) {\n for (var key in opts.headers) {\n this.xhr.setRequestHeader(key, opts.headers[key]);\n }\n }\n\n this.xhr.onreadystatechange = function() {\n if (self.xhr) {\n var x = self.xhr;\n var text, status;\n debug('readyState', x.readyState);\n switch (x.readyState) {\n case 3:\n // IE doesn't like peeking into responseText or status\n // on Microsoft.XMLHTTP and readystate=3\n try {\n status = x.status;\n text = x.responseText;\n } catch (e) {\n // intentionally empty\n }\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n\n // IE does return readystate == 3 for 404 answers.\n if (status === 200 && text && text.length > 0) {\n debug('chunk');\n self.emit('chunk', status, text);\n }\n break;\n case 4:\n status = x.status;\n debug('status', status);\n // IE returns 1223 for 204: http://bugs.jquery.com/ticket/1450\n if (status === 1223) {\n status = 204;\n }\n // IE returns this for a bad port\n // http://msdn.microsoft.com/en-us/library/windows/desktop/aa383770(v=vs.85).aspx\n if (status === 12005 || status === 12029) {\n status = 0;\n }\n\n debug('finish', status, x.responseText);\n self.emit('finish', status, x.responseText);\n self._cleanup(false);\n break;\n }\n }\n };\n\n try {\n self.xhr.send(payload);\n } catch (e) {\n self.emit('finish', 0, '');\n self._cleanup(false);\n }\n};\n\nAbstractXHRObject.prototype._cleanup = function(abort) {\n debug('cleanup');\n if (!this.xhr) {\n return;\n }\n this.removeAllListeners();\n utils.unloadDel(this.unloadRef);\n\n // IE needs this field to be a function\n this.xhr.onreadystatechange = function() {};\n if (this.xhr.ontimeout) {\n this.xhr.ontimeout = null;\n }\n\n if (abort) {\n try {\n this.xhr.abort();\n } catch (x) {\n // intentionally empty\n }\n }\n this.unloadRef = this.xhr = null;\n};\n\nAbstractXHRObject.prototype.close = function() {\n debug('close');\n this._cleanup(true);\n};\n\nAbstractXHRObject.enabled = !!XHR;\n// override XMLHttpRequest for IE6/7\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (!AbstractXHRObject.enabled && (axo in global)) {\n debug('overriding xmlhttprequest');\n XHR = function() {\n try {\n return new global[axo]('Microsoft.XMLHTTP');\n } catch (e) {\n return null;\n }\n };\n AbstractXHRObject.enabled = !!new XHR();\n}\n\nvar cors = false;\ntry {\n cors = 'withCredentials' in new XHR();\n} catch (ignored) {\n // intentionally empty\n}\n\nAbstractXHRObject.supportsCORS = cors;\n\nmodule.exports = AbstractXHRObject;\n", "'use strict';\n\nvar inherits = require('inherits')\n , XhrDriver = require('../driver/xhr')\n ;\n\nfunction XHRCorsObject(method, url, payload, opts) {\n XhrDriver.call(this, method, url, payload, opts);\n}\n\ninherits(XHRCorsObject, XhrDriver);\n\nXHRCorsObject.enabled = XhrDriver.enabled && XhrDriver.supportsCORS;\n\nmodule.exports = XHRCorsObject;\n", "'use strict';\n\nvar inherits = require('inherits')\n , XhrDriver = require('../driver/xhr')\n ;\n\nfunction XHRLocalObject(method, url, payload /*, opts */) {\n XhrDriver.call(this, method, url, payload, {\n noCredentials: true\n });\n}\n\ninherits(XHRLocalObject, XhrDriver);\n\nXHRLocalObject.enabled = XhrDriver.enabled;\n\nmodule.exports = XHRLocalObject;\n", "'use strict';\n\nmodule.exports = {\n isOpera: function() {\n return global.navigator &&\n /opera/i.test(global.navigator.userAgent);\n }\n\n, isKonqueror: function() {\n return global.navigator &&\n /konqueror/i.test(global.navigator.userAgent);\n }\n\n // #187 wrap document.domain in try/catch because of WP8 from file:///\n, hasDomain: function () {\n // non-browser client always has a domain\n if (!global.document) {\n return true;\n }\n\n try {\n return !!global.document.domain;\n } catch (e) {\n return false;\n }\n }\n};\n", "'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , XhrReceiver = require('./receiver/xhr')\n , XHRCorsObject = require('./sender/xhr-cors')\n , XHRLocalObject = require('./sender/xhr-local')\n , browser = require('../utils/browser')\n ;\n\nfunction XhrStreamingTransport(transUrl) {\n if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XHRCorsObject);\n}\n\ninherits(XhrStreamingTransport, AjaxBasedTransport);\n\nXhrStreamingTransport.enabled = function(info) {\n if (info.nullOrigin) {\n return false;\n }\n // Opera doesn't support xhr-streaming #60\n // But it might be able to #92\n if (browser.isOpera()) {\n return false;\n }\n\n return XHRCorsObject.enabled;\n};\n\nXhrStreamingTransport.transportName = 'xhr-streaming';\nXhrStreamingTransport.roundTrips = 2; // preflight, ajax\n\n// Safari gets confused when a streaming ajax request is started\n// before onload. This causes the load indicator to spin indefinetely.\n// Only require body when used in a browser\nXhrStreamingTransport.needBody = !!global.document;\n\nmodule.exports = XhrStreamingTransport;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , eventUtils = require('../../utils/event')\n , browser = require('../../utils/browser')\n , urlUtils = require('../../utils/url')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender:xdr');\n}\n\n// References:\n// http://ajaxian.com/archives/100-line-ajax-wrapper\n// http://msdn.microsoft.com/en-us/library/cc288060(v=VS.85).aspx\n\nfunction XDRObject(method, url, payload) {\n debug(method, url);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function() {\n self._start(method, url, payload);\n }, 0);\n}\n\ninherits(XDRObject, EventEmitter);\n\nXDRObject.prototype._start = function(method, url, payload) {\n debug('_start');\n var self = this;\n var xdr = new global.XDomainRequest();\n // IE caches even POSTs\n url = urlUtils.addQuery(url, 't=' + (+new Date()));\n\n xdr.onerror = function() {\n debug('onerror');\n self._error();\n };\n xdr.ontimeout = function() {\n debug('ontimeout');\n self._error();\n };\n xdr.onprogress = function() {\n debug('progress', xdr.responseText);\n self.emit('chunk', 200, xdr.responseText);\n };\n xdr.onload = function() {\n debug('load');\n self.emit('finish', 200, xdr.responseText);\n self._cleanup(false);\n };\n this.xdr = xdr;\n this.unloadRef = eventUtils.unloadAdd(function() {\n self._cleanup(true);\n });\n try {\n // Fails with AccessDenied if port number is bogus\n this.xdr.open(method, url);\n if (this.timeout) {\n this.xdr.timeout = this.timeout;\n }\n this.xdr.send(payload);\n } catch (x) {\n this._error();\n }\n};\n\nXDRObject.prototype._error = function() {\n this.emit('finish', 0, '');\n this._cleanup(false);\n};\n\nXDRObject.prototype._cleanup = function(abort) {\n debug('cleanup', abort);\n if (!this.xdr) {\n return;\n }\n this.removeAllListeners();\n eventUtils.unloadDel(this.unloadRef);\n\n this.xdr.ontimeout = this.xdr.onerror = this.xdr.onprogress = this.xdr.onload = null;\n if (abort) {\n try {\n this.xdr.abort();\n } catch (x) {\n // intentionally empty\n }\n }\n this.unloadRef = this.xdr = null;\n};\n\nXDRObject.prototype.close = function() {\n debug('close');\n this._cleanup(true);\n};\n\n// IE 8/9 if the request target uses the same scheme - #79\nXDRObject.enabled = !!(global.XDomainRequest && browser.hasDomain());\n\nmodule.exports = XDRObject;\n", "'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , XhrReceiver = require('./receiver/xhr')\n , XDRObject = require('./sender/xdr')\n ;\n\n// According to:\n// http://stackoverflow.com/questions/1641507/detect-browser-support-for-cross-domain-xmlhttprequests\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n\nfunction XdrStreamingTransport(transUrl) {\n if (!XDRObject.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/xhr_streaming', XhrReceiver, XDRObject);\n}\n\ninherits(XdrStreamingTransport, AjaxBasedTransport);\n\nXdrStreamingTransport.enabled = function(info) {\n if (info.cookie_needed || info.nullOrigin) {\n return false;\n }\n return XDRObject.enabled && info.sameScheme;\n};\n\nXdrStreamingTransport.transportName = 'xdr-streaming';\nXdrStreamingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XdrStreamingTransport;\n", "module.exports = global.EventSource;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , EventSourceDriver = require('eventsource')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:eventsource');\n}\n\nfunction EventSourceReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n\n var self = this;\n var es = this.es = new EventSourceDriver(url);\n es.onmessage = function(e) {\n debug('message', e.data);\n self.emit('message', decodeURI(e.data));\n };\n es.onerror = function(e) {\n debug('error', es.readyState, e);\n // ES on reconnection has readyState = 0 or 1.\n // on network error it's CLOSED = 2\n var reason = (es.readyState !== 2 ? 'network' : 'permanent');\n self._cleanup();\n self._close(reason);\n };\n}\n\ninherits(EventSourceReceiver, EventEmitter);\n\nEventSourceReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nEventSourceReceiver.prototype._cleanup = function() {\n debug('cleanup');\n var es = this.es;\n if (es) {\n es.onmessage = es.onerror = null;\n es.close();\n this.es = null;\n }\n};\n\nEventSourceReceiver.prototype._close = function(reason) {\n debug('close', reason);\n var self = this;\n // Safari and chrome < 15 crash if we close window before\n // waiting for ES cleanup. See:\n // https://code.google.com/p/chromium/issues/detail?id=89155\n setTimeout(function() {\n self.emit('close', null, reason);\n self.removeAllListeners();\n }, 200);\n};\n\nmodule.exports = EventSourceReceiver;\n", "'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , EventSourceReceiver = require('./receiver/eventsource')\n , XHRCorsObject = require('./sender/xhr-cors')\n , EventSourceDriver = require('eventsource')\n ;\n\nfunction EventSourceTransport(transUrl) {\n if (!EventSourceTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n\n AjaxBasedTransport.call(this, transUrl, '/eventsource', EventSourceReceiver, XHRCorsObject);\n}\n\ninherits(EventSourceTransport, AjaxBasedTransport);\n\nEventSourceTransport.enabled = function() {\n return !!EventSourceDriver;\n};\n\nEventSourceTransport.transportName = 'eventsource';\nEventSourceTransport.roundTrips = 2;\n\nmodule.exports = EventSourceTransport;\n", "module.exports = '1.6.1';\n", "'use strict';\n\nvar eventUtils = require('./event')\n , browser = require('./browser')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:utils:iframe');\n}\n\nmodule.exports = {\n WPrefix: '_jp'\n, currentWindowId: null\n\n, polluteGlobalNamespace: function() {\n if (!(module.exports.WPrefix in global)) {\n global[module.exports.WPrefix] = {};\n }\n }\n\n, postMessage: function(type, data) {\n if (global.parent !== global) {\n global.parent.postMessage(JSON.stringify({\n windowId: module.exports.currentWindowId\n , type: type\n , data: data || ''\n }), '*');\n } else {\n debug('Cannot postMessage, no parent window.', type, data);\n }\n }\n\n, createIframe: function(iframeUrl, errorCallback) {\n var iframe = global.document.createElement('iframe');\n var tref, unloadRef;\n var unattach = function() {\n debug('unattach');\n clearTimeout(tref);\n // Explorer had problems with that.\n try {\n iframe.onload = null;\n } catch (x) {\n // intentionally empty\n }\n iframe.onerror = null;\n };\n var cleanup = function() {\n debug('cleanup');\n if (iframe) {\n unattach();\n // This timeout makes chrome fire onbeforeunload event\n // within iframe. Without the timeout it goes straight to\n // onunload.\n setTimeout(function() {\n if (iframe) {\n iframe.parentNode.removeChild(iframe);\n }\n iframe = null;\n }, 0);\n eventUtils.unloadDel(unloadRef);\n }\n };\n var onerror = function(err) {\n debug('onerror', err);\n if (iframe) {\n cleanup();\n errorCallback(err);\n }\n };\n var post = function(msg, origin) {\n debug('post', msg, origin);\n setTimeout(function() {\n try {\n // When the iframe is not loaded, IE raises an exception\n // on 'contentWindow'.\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage(msg, origin);\n }\n } catch (x) {\n // intentionally empty\n }\n }, 0);\n };\n\n iframe.src = iframeUrl;\n iframe.style.display = 'none';\n iframe.style.position = 'absolute';\n iframe.onerror = function() {\n onerror('onerror');\n };\n iframe.onload = function() {\n debug('onload');\n // `onload` is triggered before scripts on the iframe are\n // executed. Give it few seconds to actually load stuff.\n clearTimeout(tref);\n tref = setTimeout(function() {\n onerror('onload timeout');\n }, 2000);\n };\n global.document.body.appendChild(iframe);\n tref = setTimeout(function() {\n onerror('timeout');\n }, 15000);\n unloadRef = eventUtils.unloadAdd(cleanup);\n return {\n post: post\n , cleanup: cleanup\n , loaded: unattach\n };\n }\n\n/* eslint no-undef: \"off\", new-cap: \"off\" */\n, createHtmlfile: function(iframeUrl, errorCallback) {\n var axo = ['Active'].concat('Object').join('X');\n var doc = new global[axo]('htmlfile');\n var tref, unloadRef;\n var iframe;\n var unattach = function() {\n clearTimeout(tref);\n iframe.onerror = null;\n };\n var cleanup = function() {\n if (doc) {\n unattach();\n eventUtils.unloadDel(unloadRef);\n iframe.parentNode.removeChild(iframe);\n iframe = doc = null;\n CollectGarbage();\n }\n };\n var onerror = function(r) {\n debug('onerror', r);\n if (doc) {\n cleanup();\n errorCallback(r);\n }\n };\n var post = function(msg, origin) {\n try {\n // When the iframe is not loaded, IE raises an exception\n // on 'contentWindow'.\n setTimeout(function() {\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage(msg, origin);\n }\n }, 0);\n } catch (x) {\n // intentionally empty\n }\n };\n\n doc.open();\n doc.write('<html><s' + 'cript>' +\n 'document.domain=\"' + global.document.domain + '\";' +\n '</s' + 'cript></html>');\n doc.close();\n doc.parentWindow[module.exports.WPrefix] = global[module.exports.WPrefix];\n var c = doc.createElement('div');\n doc.body.appendChild(c);\n iframe = doc.createElement('iframe');\n c.appendChild(iframe);\n iframe.src = iframeUrl;\n iframe.onerror = function() {\n onerror('onerror');\n };\n tref = setTimeout(function() {\n onerror('timeout');\n }, 15000);\n unloadRef = eventUtils.unloadAdd(cleanup);\n return {\n post: post\n , cleanup: cleanup\n , loaded: unattach\n };\n }\n};\n\nmodule.exports.iframeEnabled = false;\nif (global.document) {\n // postMessage misbehaves in konqueror 4.6.5 - the messages are delivered with\n // huge delay, or not at all.\n module.exports.iframeEnabled = (typeof global.postMessage === 'function' ||\n typeof global.postMessage === 'object') && (!browser.isKonqueror());\n}\n", "'use strict';\n\n// Few cool transports do work only for same-origin. In order to make\n// them work cross-domain we shall use iframe, served from the\n// remote domain. New browsers have capabilities to communicate with\n// cross domain iframe using postMessage(). In IE it was implemented\n// from IE 8+, but of course, IE got some details wrong:\n// http://msdn.microsoft.com/en-us/library/cc197015(v=VS.85).aspx\n// http://stevesouders.com/misc/test-postmessage.php\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , version = require('../version')\n , urlUtils = require('../utils/url')\n , iframeUtils = require('../utils/iframe')\n , eventUtils = require('../utils/event')\n , random = require('../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:transport:iframe');\n}\n\nfunction IframeTransport(transport, transUrl, baseUrl) {\n if (!IframeTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n EventEmitter.call(this);\n\n var self = this;\n this.origin = urlUtils.getOrigin(baseUrl);\n this.baseUrl = baseUrl;\n this.transUrl = transUrl;\n this.transport = transport;\n this.windowId = random.string(8);\n\n var iframeUrl = urlUtils.addPath(baseUrl, '/iframe.html') + '#' + this.windowId;\n debug(transport, transUrl, iframeUrl);\n\n this.iframeObj = iframeUtils.createIframe(iframeUrl, function(r) {\n debug('err callback');\n self.emit('close', 1006, 'Unable to load an iframe (' + r + ')');\n self.close();\n });\n\n this.onmessageCallback = this._message.bind(this);\n eventUtils.attachEvent('message', this.onmessageCallback);\n}\n\ninherits(IframeTransport, EventEmitter);\n\nIframeTransport.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n if (this.iframeObj) {\n eventUtils.detachEvent('message', this.onmessageCallback);\n try {\n // When the iframe is not loaded, IE raises an exception\n // on 'contentWindow'.\n this.postMessage('c');\n } catch (x) {\n // intentionally empty\n }\n this.iframeObj.cleanup();\n this.iframeObj = null;\n this.onmessageCallback = this.iframeObj = null;\n }\n};\n\nIframeTransport.prototype._message = function(e) {\n debug('message', e.data);\n if (!urlUtils.isOriginEqual(e.origin, this.origin)) {\n debug('not same origin', e.origin, this.origin);\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== this.windowId) {\n debug('mismatched window id', iframeMessage.windowId, this.windowId);\n return;\n }\n\n switch (iframeMessage.type) {\n case 's':\n this.iframeObj.loaded();\n // window global dependency\n this.postMessage('s', JSON.stringify([\n version\n , this.transport\n , this.transUrl\n , this.baseUrl\n ]));\n break;\n case 't':\n this.emit('message', iframeMessage.data);\n break;\n case 'c':\n var cdata;\n try {\n cdata = JSON.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n return;\n }\n this.emit('close', cdata[0], cdata[1]);\n this.close();\n break;\n }\n};\n\nIframeTransport.prototype.postMessage = function(type, data) {\n debug('postMessage', type, data);\n this.iframeObj.post(JSON.stringify({\n windowId: this.windowId\n , type: type\n , data: data || ''\n }), this.origin);\n};\n\nIframeTransport.prototype.send = function(message) {\n debug('send', message);\n this.postMessage('m', message);\n};\n\nIframeTransport.enabled = function() {\n return iframeUtils.iframeEnabled;\n};\n\nIframeTransport.transportName = 'iframe';\nIframeTransport.roundTrips = 2;\n\nmodule.exports = IframeTransport;\n", "'use strict';\n\nmodule.exports = {\n isObject: function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n }\n\n, extend: function(obj) {\n if (!this.isObject(obj)) {\n return obj;\n }\n var source, prop;\n for (var i = 1, length = arguments.length; i < length; i++) {\n source = arguments[i];\n for (prop in source) {\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\n obj[prop] = source[prop];\n }\n }\n }\n return obj;\n }\n};\n", "'use strict';\n\nvar inherits = require('inherits')\n , IframeTransport = require('../iframe')\n , objectUtils = require('../../utils/object')\n ;\n\nmodule.exports = function(transport) {\n\n function IframeWrapTransport(transUrl, baseUrl) {\n IframeTransport.call(this, transport.transportName, transUrl, baseUrl);\n }\n\n inherits(IframeWrapTransport, IframeTransport);\n\n IframeWrapTransport.enabled = function(url, info) {\n if (!global.document) {\n return false;\n }\n\n var iframeInfo = objectUtils.extend({}, info);\n iframeInfo.sameOrigin = true;\n return transport.enabled(iframeInfo) && IframeTransport.enabled();\n };\n\n IframeWrapTransport.transportName = 'iframe-' + transport.transportName;\n IframeWrapTransport.needBody = true;\n IframeWrapTransport.roundTrips = IframeTransport.roundTrips + transport.roundTrips - 1; // html, javascript (2) + transport - no CORS (1)\n\n IframeWrapTransport.facadeTransport = transport;\n\n return IframeWrapTransport;\n};\n", "'use strict';\n\nvar inherits = require('inherits')\n , iframeUtils = require('../../utils/iframe')\n , urlUtils = require('../../utils/url')\n , EventEmitter = require('events').EventEmitter\n , random = require('../../utils/random')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:htmlfile');\n}\n\nfunction HtmlfileReceiver(url) {\n debug(url);\n EventEmitter.call(this);\n var self = this;\n iframeUtils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n url = urlUtils.addQuery(url, 'c=' + decodeURIComponent(iframeUtils.WPrefix + '.' + this.id));\n\n debug('using htmlfile', HtmlfileReceiver.htmlfileEnabled);\n var constructFunc = HtmlfileReceiver.htmlfileEnabled ?\n iframeUtils.createHtmlfile : iframeUtils.createIframe;\n\n global[iframeUtils.WPrefix][this.id] = {\n start: function() {\n debug('start');\n self.iframeObj.loaded();\n }\n , message: function(data) {\n debug('message', data);\n self.emit('message', data);\n }\n , stop: function() {\n debug('stop');\n self._cleanup();\n self._close('network');\n }\n };\n this.iframeObj = constructFunc(url, function() {\n debug('callback');\n self._cleanup();\n self._close('permanent');\n });\n}\n\ninherits(HtmlfileReceiver, EventEmitter);\n\nHtmlfileReceiver.prototype.abort = function() {\n debug('abort');\n this._cleanup();\n this._close('user');\n};\n\nHtmlfileReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n if (this.iframeObj) {\n this.iframeObj.cleanup();\n this.iframeObj = null;\n }\n delete global[iframeUtils.WPrefix][this.id];\n};\n\nHtmlfileReceiver.prototype._close = function(reason) {\n debug('_close', reason);\n this.emit('close', null, reason);\n this.removeAllListeners();\n};\n\nHtmlfileReceiver.htmlfileEnabled = false;\n\n// obfuscate to avoid firewalls\nvar axo = ['Active'].concat('Object').join('X');\nif (axo in global) {\n try {\n HtmlfileReceiver.htmlfileEnabled = !!new global[axo]('htmlfile');\n } catch (x) {\n // intentionally empty\n }\n}\n\nHtmlfileReceiver.enabled = HtmlfileReceiver.htmlfileEnabled || iframeUtils.iframeEnabled;\n\nmodule.exports = HtmlfileReceiver;\n", "'use strict';\n\nvar inherits = require('inherits')\n , HtmlfileReceiver = require('./receiver/htmlfile')\n , XHRLocalObject = require('./sender/xhr-local')\n , AjaxBasedTransport = require('./lib/ajax-based')\n ;\n\nfunction HtmlFileTransport(transUrl) {\n if (!HtmlfileReceiver.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/htmlfile', HtmlfileReceiver, XHRLocalObject);\n}\n\ninherits(HtmlFileTransport, AjaxBasedTransport);\n\nHtmlFileTransport.enabled = function(info) {\n return HtmlfileReceiver.enabled && info.sameOrigin;\n};\n\nHtmlFileTransport.transportName = 'htmlfile';\nHtmlFileTransport.roundTrips = 2;\n\nmodule.exports = HtmlFileTransport;\n", "'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , XhrReceiver = require('./receiver/xhr')\n , XHRCorsObject = require('./sender/xhr-cors')\n , XHRLocalObject = require('./sender/xhr-local')\n ;\n\nfunction XhrPollingTransport(transUrl) {\n if (!XHRLocalObject.enabled && !XHRCorsObject.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XHRCorsObject);\n}\n\ninherits(XhrPollingTransport, AjaxBasedTransport);\n\nXhrPollingTransport.enabled = function(info) {\n if (info.nullOrigin) {\n return false;\n }\n\n if (XHRLocalObject.enabled && info.sameOrigin) {\n return true;\n }\n return XHRCorsObject.enabled;\n};\n\nXhrPollingTransport.transportName = 'xhr-polling';\nXhrPollingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XhrPollingTransport;\n", "'use strict';\n\nvar inherits = require('inherits')\n , AjaxBasedTransport = require('./lib/ajax-based')\n , XdrStreamingTransport = require('./xdr-streaming')\n , XhrReceiver = require('./receiver/xhr')\n , XDRObject = require('./sender/xdr')\n ;\n\nfunction XdrPollingTransport(transUrl) {\n if (!XDRObject.enabled) {\n throw new Error('Transport created when disabled');\n }\n AjaxBasedTransport.call(this, transUrl, '/xhr', XhrReceiver, XDRObject);\n}\n\ninherits(XdrPollingTransport, AjaxBasedTransport);\n\nXdrPollingTransport.enabled = XdrStreamingTransport.enabled;\nXdrPollingTransport.transportName = 'xdr-polling';\nXdrPollingTransport.roundTrips = 2; // preflight, ajax\n\nmodule.exports = XdrPollingTransport;\n", "'use strict';\n\nvar utils = require('../../utils/iframe')\n , random = require('../../utils/random')\n , browser = require('../../utils/browser')\n , urlUtils = require('../../utils/url')\n , inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:receiver:jsonp');\n}\n\nfunction JsonpReceiver(url) {\n debug(url);\n var self = this;\n EventEmitter.call(this);\n\n utils.polluteGlobalNamespace();\n\n this.id = 'a' + random.string(6);\n var urlWithId = urlUtils.addQuery(url, 'c=' + encodeURIComponent(utils.WPrefix + '.' + this.id));\n\n global[utils.WPrefix][this.id] = this._callback.bind(this);\n this._createScript(urlWithId);\n\n // Fallback mostly for Konqueror - stupid timer, 35 seconds shall be plenty.\n this.timeoutId = setTimeout(function() {\n debug('timeout');\n self._abort(new Error('JSONP script loaded abnormally (timeout)'));\n }, JsonpReceiver.timeout);\n}\n\ninherits(JsonpReceiver, EventEmitter);\n\nJsonpReceiver.prototype.abort = function() {\n debug('abort');\n if (global[utils.WPrefix][this.id]) {\n var err = new Error('JSONP user aborted read');\n err.code = 1000;\n this._abort(err);\n }\n};\n\nJsonpReceiver.timeout = 35000;\nJsonpReceiver.scriptErrorTimeout = 1000;\n\nJsonpReceiver.prototype._callback = function(data) {\n debug('_callback', data);\n this._cleanup();\n\n if (this.aborting) {\n return;\n }\n\n if (data) {\n debug('message', data);\n this.emit('message', data);\n }\n this.emit('close', null, 'network');\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._abort = function(err) {\n debug('_abort', err);\n this._cleanup();\n this.aborting = true;\n this.emit('close', err.code, err.message);\n this.removeAllListeners();\n};\n\nJsonpReceiver.prototype._cleanup = function() {\n debug('_cleanup');\n clearTimeout(this.timeoutId);\n if (this.script2) {\n this.script2.parentNode.removeChild(this.script2);\n this.script2 = null;\n }\n if (this.script) {\n var script = this.script;\n // Unfortunately, you can't really abort script loading of\n // the script.\n script.parentNode.removeChild(script);\n script.onreadystatechange = script.onerror =\n script.onload = script.onclick = null;\n this.script = null;\n }\n delete global[utils.WPrefix][this.id];\n};\n\nJsonpReceiver.prototype._scriptError = function() {\n debug('_scriptError');\n var self = this;\n if (this.errorTimer) {\n return;\n }\n\n this.errorTimer = setTimeout(function() {\n if (!self.loadedOkay) {\n self._abort(new Error('JSONP script loaded abnormally (onerror)'));\n }\n }, JsonpReceiver.scriptErrorTimeout);\n};\n\nJsonpReceiver.prototype._createScript = function(url) {\n debug('_createScript', url);\n var self = this;\n var script = this.script = global.document.createElement('script');\n var script2; // Opera synchronous load trick.\n\n script.id = 'a' + random.string(8);\n script.src = url;\n script.type = 'text/javascript';\n script.charset = 'UTF-8';\n script.onerror = this._scriptError.bind(this);\n script.onload = function() {\n debug('onload');\n self._abort(new Error('JSONP script loaded abnormally (onload)'));\n };\n\n // IE9 fires 'error' event after onreadystatechange or before, in random order.\n // Use loadedOkay to determine if actually errored\n script.onreadystatechange = function() {\n debug('onreadystatechange', script.readyState);\n if (/loaded|closed/.test(script.readyState)) {\n if (script && script.htmlFor && script.onclick) {\n self.loadedOkay = true;\n try {\n // In IE, actually execute the script.\n script.onclick();\n } catch (x) {\n // intentionally empty\n }\n }\n if (script) {\n self._abort(new Error('JSONP script loaded abnormally (onreadystatechange)'));\n }\n }\n };\n // IE: event/htmlFor/onclick trick.\n // One can't rely on proper order for onreadystatechange. In order to\n // make sure, set a 'htmlFor' and 'event' properties, so that\n // script code will be installed as 'onclick' handler for the\n // script object. Later, onreadystatechange, manually execute this\n // code. FF and Chrome doesn't work with 'event' and 'htmlFor'\n // set. For reference see:\n // http://jaubourg.net/2010/07/loading-script-as-onclick-handler-of.html\n // Also, read on that about script ordering:\n // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order\n if (typeof script.async === 'undefined' && global.document.attachEvent) {\n // According to mozilla docs, in recent browsers script.async defaults\n // to 'true', so we may use it to detect a good browser:\n // https://developer.mozilla.org/en/HTML/Element/script\n if (!browser.isOpera()) {\n // Naively assume we're in IE\n try {\n script.htmlFor = script.id;\n script.event = 'onclick';\n } catch (x) {\n // intentionally empty\n }\n script.async = true;\n } else {\n // Opera, second sync script hack\n script2 = this.script2 = global.document.createElement('script');\n script2.text = \"try{var a = document.getElementById('\" + script.id + \"'); if(a)a.onerror();}catch(x){};\";\n script.async = script2.async = false;\n }\n }\n if (typeof script.async !== 'undefined') {\n script.async = true;\n }\n\n var head = global.document.getElementsByTagName('head')[0];\n head.insertBefore(script, head.firstChild);\n if (script2) {\n head.insertBefore(script2, head.firstChild);\n }\n};\n\nmodule.exports = JsonpReceiver;\n", "'use strict';\n\nvar random = require('../../utils/random')\n , urlUtils = require('../../utils/url')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:sender:jsonp');\n}\n\nvar form, area;\n\nfunction createIframe(id) {\n debug('createIframe', id);\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n return global.document.createElement('<iframe name=\"' + id + '\">');\n } catch (x) {\n var iframe = global.document.createElement('iframe');\n iframe.name = id;\n return iframe;\n }\n}\n\nfunction createForm() {\n debug('createForm');\n form = global.document.createElement('form');\n form.style.display = 'none';\n form.style.position = 'absolute';\n form.method = 'POST';\n form.enctype = 'application/x-www-form-urlencoded';\n form.acceptCharset = 'UTF-8';\n\n area = global.document.createElement('textarea');\n area.name = 'd';\n form.appendChild(area);\n\n global.document.body.appendChild(form);\n}\n\nmodule.exports = function(url, payload, callback) {\n debug(url, payload);\n if (!form) {\n createForm();\n }\n var id = 'a' + random.string(8);\n form.target = id;\n form.action = urlUtils.addQuery(urlUtils.addPath(url, '/jsonp_send'), 'i=' + id);\n\n var iframe = createIframe(id);\n iframe.id = id;\n iframe.style.display = 'none';\n form.appendChild(iframe);\n\n try {\n area.value = payload;\n } catch (e) {\n // seriously broken browsers get here\n }\n form.submit();\n\n var completed = function(err) {\n debug('completed', id, err);\n if (!iframe.onerror) {\n return;\n }\n iframe.onreadystatechange = iframe.onerror = iframe.onload = null;\n // Opera mini doesn't like if we GC iframe\n // immediately, thus this timeout.\n setTimeout(function() {\n debug('cleaning up', id);\n iframe.parentNode.removeChild(iframe);\n iframe = null;\n }, 500);\n area.value = '';\n // It is not possible to detect if the iframe succeeded or\n // failed to submit our form.\n callback(err);\n };\n iframe.onerror = function() {\n debug('onerror', id);\n completed();\n };\n iframe.onload = function() {\n debug('onload', id);\n completed();\n };\n iframe.onreadystatechange = function(e) {\n debug('onreadystatechange', id, iframe.readyState, e);\n if (iframe.readyState === 'complete') {\n completed();\n }\n };\n return function() {\n debug('aborted', id);\n completed(new Error('Aborted'));\n };\n};\n", "'use strict';\n\n// The simplest and most robust transport, using the well-know cross\n// domain hack - JSONP. This transport is quite inefficient - one\n// message could use up to one http request. But at least it works almost\n// everywhere.\n// Known limitations:\n// o you will get a spinning cursor\n// o for Konqueror a dumb timer is needed to detect errors\n\nvar inherits = require('inherits')\n , SenderReceiver = require('./lib/sender-receiver')\n , JsonpReceiver = require('./receiver/jsonp')\n , jsonpSender = require('./sender/jsonp')\n ;\n\nfunction JsonPTransport(transUrl) {\n if (!JsonPTransport.enabled()) {\n throw new Error('Transport created when disabled');\n }\n SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver);\n}\n\ninherits(JsonPTransport, SenderReceiver);\n\nJsonPTransport.enabled = function() {\n return !!global.document;\n};\n\nJsonPTransport.transportName = 'jsonp-polling';\nJsonPTransport.roundTrips = 1;\nJsonPTransport.needBody = true;\n\nmodule.exports = JsonPTransport;\n", "'use strict';\n\nmodule.exports = [\n // streaming transports\n require('./transport/websocket')\n, require('./transport/xhr-streaming')\n, require('./transport/xdr-streaming')\n, require('./transport/eventsource')\n, require('./transport/lib/iframe-wrap')(require('./transport/eventsource'))\n\n // polling transports\n, require('./transport/htmlfile')\n, require('./transport/lib/iframe-wrap')(require('./transport/htmlfile'))\n, require('./transport/xhr-polling')\n, require('./transport/xdr-polling')\n, require('./transport/lib/iframe-wrap')(require('./transport/xhr-polling'))\n, require('./transport/jsonp-polling')\n];\n", "/* eslint-disable */\n/* jscs: disable */\n'use strict';\n\n// pulled specific shims from https://github.com/es-shims/es5-shim\n\nvar ArrayPrototype = Array.prototype;\nvar ObjectPrototype = Object.prototype;\nvar FunctionPrototype = Function.prototype;\nvar StringPrototype = String.prototype;\nvar array_slice = ArrayPrototype.slice;\n\nvar _toString = ObjectPrototype.toString;\nvar isFunction = function (val) {\n return ObjectPrototype.toString.call(val) === '[object Function]';\n};\nvar isArray = function isArray(obj) {\n return _toString.call(obj) === '[object Array]';\n};\nvar isString = function isString(obj) {\n return _toString.call(obj) === '[object String]';\n};\n\nvar supportsDescriptors = Object.defineProperty && (function () {\n try {\n Object.defineProperty({}, 'x', {});\n return true;\n } catch (e) { /* this is ES3 */\n return false;\n }\n}());\n\n// Define configurable, writable and non-enumerable props\n// if they don't exist.\nvar defineProperty;\nif (supportsDescriptors) {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n Object.defineProperty(object, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: method\n });\n };\n} else {\n defineProperty = function (object, name, method, forceAssign) {\n if (!forceAssign && (name in object)) { return; }\n object[name] = method;\n };\n}\nvar defineProperties = function (object, map, forceAssign) {\n for (var name in map) {\n if (ObjectPrototype.hasOwnProperty.call(map, name)) {\n defineProperty(object, name, map[name], forceAssign);\n }\n }\n};\n\nvar toObject = function (o) {\n if (o == null) { // this matches both null and undefined\n throw new TypeError(\"can't convert \" + o + ' to object');\n }\n return Object(o);\n};\n\n//\n// Util\n// ======\n//\n\n// ES5 9.4\n// http://es5.github.com/#x9.4\n// http://jsperf.com/to-integer\n\nfunction toInteger(num) {\n var n = +num;\n if (n !== n) { // isNaN\n n = 0;\n } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) {\n n = (n > 0 || -1) * Math.floor(Math.abs(n));\n }\n return n;\n}\n\nfunction ToUint32(x) {\n return x >>> 0;\n}\n\n//\n// Function\n// ========\n//\n\n// ES-5 15.3.4.5\n// http://es5.github.com/#x15.3.4.5\n\nfunction Empty() {}\n\ndefineProperties(FunctionPrototype, {\n bind: function bind(that) { // .length is 1\n // 1. Let Target be the this value.\n var target = this;\n // 2. If IsCallable(Target) is false, throw a TypeError exception.\n if (!isFunction(target)) {\n throw new TypeError('Function.prototype.bind called on incompatible ' + target);\n }\n // 3. Let A be a new (possibly empty) internal list of all of the\n // argument values provided after thisArg (arg1, arg2 etc), in order.\n // XXX slicedArgs will stand in for \"A\" if used\n var args = array_slice.call(arguments, 1); // for normal call\n // 4. Let F be a new native ECMAScript object.\n // 11. Set the [[Prototype]] internal property of F to the standard\n // built-in Function prototype object as specified in 15.3.3.1.\n // 12. Set the [[Call]] internal property of F as described in\n // 15.3.4.5.1.\n // 13. Set the [[Construct]] internal property of F as described in\n // 15.3.4.5.2.\n // 14. Set the [[HasInstance]] internal property of F as described in\n // 15.3.4.5.3.\n var binder = function () {\n\n if (this instanceof bound) {\n // 15.3.4.5.2 [[Construct]]\n // When the [[Construct]] internal method of a function object,\n // F that was created using the bind function is called with a\n // list of arguments ExtraArgs, the following steps are taken:\n // 1. Let target be the value of F's [[TargetFunction]]\n // internal property.\n // 2. If target has no [[Construct]] internal method, a\n // TypeError exception is thrown.\n // 3. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Construct]] internal\n // method of target providing args as the arguments.\n\n var result = target.apply(\n this,\n args.concat(array_slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n\n } else {\n // 15.3.4.5.1 [[Call]]\n // When the [[Call]] internal method of a function object, F,\n // which was created using the bind function is called with a\n // this value and a list of arguments ExtraArgs, the following\n // steps are taken:\n // 1. Let boundArgs be the value of F's [[BoundArgs]] internal\n // property.\n // 2. Let boundThis be the value of F's [[BoundThis]] internal\n // property.\n // 3. Let target be the value of F's [[TargetFunction]] internal\n // property.\n // 4. Let args be a new list containing the same values as the\n // list boundArgs in the same order followed by the same\n // values as the list ExtraArgs in the same order.\n // 5. Return the result of calling the [[Call]] internal method\n // of target providing boundThis as the this value and\n // providing args as the arguments.\n\n // equiv: target.call(this, ...boundArgs, ...args)\n return target.apply(\n that,\n args.concat(array_slice.call(arguments))\n );\n\n }\n\n };\n\n // 15. If the [[Class]] internal property of Target is \"Function\", then\n // a. Let L be the length property of Target minus the length of A.\n // b. Set the length own property of F to either 0 or L, whichever is\n // larger.\n // 16. Else set the length own property of F to 0.\n\n var boundLength = Math.max(0, target.length - args.length);\n\n // 17. Set the attributes of the length own property of F to the values\n // specified in 15.3.5.1.\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n // XXX Build a dynamic function with desired amount of arguments is the only\n // way to set the length property of a function.\n // In environments where Content Security Policies enabled (Chrome extensions,\n // for ex.) all use of eval or Function costructor throws an exception.\n // However in all of these environments Function.prototype.bind exists\n // and so this code will never be executed.\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this, arguments); }')(binder);\n\n if (target.prototype) {\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n // Clean up dangling references.\n Empty.prototype = null;\n }\n\n // TODO\n // 18. Set the [[Extensible]] internal property of F to true.\n\n // TODO\n // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3).\n // 20. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"caller\", PropertyDescriptor {[[Get]]: thrower, [[Set]]:\n // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and\n // false.\n // 21. Call the [[DefineOwnProperty]] internal method of F with\n // arguments \"arguments\", PropertyDescriptor {[[Get]]: thrower,\n // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false},\n // and false.\n\n // TODO\n // NOTE Function objects created using Function.prototype.bind do not\n // have a prototype property or the [[Code]], [[FormalParameters]], and\n // [[Scope]] internal properties.\n // XXX can't delete prototype in pure-js.\n\n // 22. Return F.\n return bound;\n }\n});\n\n//\n// Array\n// =====\n//\n\n// ES5 15.4.3.2\n// http://es5.github.com/#x15.4.3.2\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray\ndefineProperties(Array, { isArray: isArray });\n\n\nvar boxedString = Object('a');\nvar splitString = boxedString[0] !== 'a' || !(0 in boxedString);\n\nvar properlyBoxesContext = function properlyBoxed(method) {\n // Check node 0.6.21 bug where third parameter is not boxed\n var properlyBoxesNonStrict = true;\n var properlyBoxesStrict = true;\n if (method) {\n method.call('foo', function (_, __, context) {\n if (typeof context !== 'object') { properlyBoxesNonStrict = false; }\n });\n\n method.call([1], function () {\n 'use strict';\n properlyBoxesStrict = typeof this === 'string';\n }, 'x');\n }\n return !!method && properlyBoxesNonStrict && properlyBoxesStrict;\n};\n\ndefineProperties(ArrayPrototype, {\n forEach: function forEach(fun /*, thisp*/) {\n var object = toObject(this),\n self = splitString && isString(this) ? this.split('') : object,\n thisp = arguments[1],\n i = -1,\n length = self.length >>> 0;\n\n // If no callback function or if callback is not a callable function\n if (!isFunction(fun)) {\n throw new TypeError(); // TODO message\n }\n\n while (++i < length) {\n if (i in self) {\n // Invoke the callback function with call, passing arguments:\n // context, property value, property key, thisArg object\n // context\n fun.call(thisp, self[i], i, object);\n }\n }\n }\n}, !properlyBoxesContext(ArrayPrototype.forEach));\n\n// ES5 15.4.4.14\n// http://es5.github.com/#x15.4.4.14\n// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf\nvar hasFirefox2IndexOfBug = Array.prototype.indexOf && [0, 1].indexOf(1, 2) !== -1;\ndefineProperties(ArrayPrototype, {\n indexOf: function indexOf(sought /*, fromIndex */ ) {\n var self = splitString && isString(this) ? this.split('') : toObject(this),\n length = self.length >>> 0;\n\n if (!length) {\n return -1;\n }\n\n var i = 0;\n if (arguments.length > 1) {\n i = toInteger(arguments[1]);\n }\n\n // handle negative indices\n i = i >= 0 ? i : Math.max(0, length + i);\n for (; i < length; i++) {\n if (i in self && self[i] === sought) {\n return i;\n }\n }\n return -1;\n }\n}, hasFirefox2IndexOfBug);\n\n//\n// String\n// ======\n//\n\n// ES5 15.5.4.14\n// http://es5.github.com/#x15.5.4.14\n\n// [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers]\n// Many browsers do not split properly with regular expressions or they\n// do not perform the split correctly under obscure conditions.\n// See http://blog.stevenlevithan.com/archives/cross-browser-split\n// I've tested in many browsers and this seems to cover the deviant ones:\n// 'ab'.split(/(?:ab)*/) should be [\"\", \"\"], not [\"\"]\n// '.'.split(/(.?)(.?)/) should be [\"\", \".\", \"\", \"\"], not [\"\", \"\"]\n// 'tesst'.split(/(s)*/) should be [\"t\", undefined, \"e\", \"s\", \"t\"], not\n// [undefined, \"t\", undefined, \"e\", ...]\n// ''.split(/.?/) should be [], not [\"\"]\n// '.'.split(/()()/) should be [\".\"], not [\"\", \"\", \".\"]\n\nvar string_split = StringPrototype.split;\nif (\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n 'tesst'.split(/(s)*/)[1] === 't' ||\n 'test'.split(/(?:)/, -1).length !== 4 ||\n ''.split(/.?/).length ||\n '.'.split(/()()/).length > 1\n) {\n (function () {\n var compliantExecNpcg = /()??/.exec('')[1] === void 0; // NPCG: nonparticipating capturing group\n\n StringPrototype.split = function (separator, limit) {\n var string = this;\n if (separator === void 0 && limit === 0) {\n return [];\n }\n\n // If `separator` is not a regex, use native split\n if (_toString.call(separator) !== '[object RegExp]') {\n return string_split.call(this, separator, limit);\n }\n\n var output = [],\n flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.extended ? 'x' : '') + // Proposed for ES6\n (separator.sticky ? 'y' : ''), // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator2, match, lastIndex, lastLength;\n separator = new RegExp(separator.source, flags + 'g');\n string += ''; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp('^' + separator.source + '$(?!\\\\s)', flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n limit = limit === void 0 ?\n -1 >>> 0 : // Math.pow(2, 32) - 1\n ToUint32(limit);\n while (match = separator.exec(string)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function () {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === void 0) {\n match[i] = void 0;\n }\n }\n });\n }\n if (match.length > 1 && match.index < string.length) {\n ArrayPrototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separator.test('')) {\n output.push('');\n }\n } else {\n output.push(string.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n }());\n\n// [bugfix, chrome]\n// If separator is undefined, then the result array contains just one String,\n// which is the this value (converted to a String). If limit is not undefined,\n// then the output array is truncated so that it contains no more than limit\n// elements.\n// \"0\".split(undefined, 0) -> []\n} else if ('0'.split(void 0, 0).length) {\n StringPrototype.split = function split(separator, limit) {\n if (separator === void 0 && limit === 0) { return []; }\n return string_split.call(this, separator, limit);\n };\n}\n\n// ECMA-262, 3rd B.2.3\n// Not an ECMAScript standard, although ECMAScript 3rd Edition has a\n// non-normative section suggesting uniform semantics and it should be\n// normalized across all browsers\n// [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE\nvar string_substr = StringPrototype.substr;\nvar hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b';\ndefineProperties(StringPrototype, {\n substr: function substr(start, length) {\n return string_substr.call(\n this,\n start < 0 ? ((start = this.length + start) < 0 ? 0 : start) : start,\n length\n );\n }\n}, hasNegativeSubstrBug);\n", "'use strict';\n\n// Some extra characters that Chrome gets wrong, and substitutes with\n// something else on the wire.\n// eslint-disable-next-line no-control-regex, no-misleading-character-class\nvar extraEscapable = /[\\x00-\\x1f\\ud800-\\udfff\\ufffe\\uffff\\u0300-\\u0333\\u033d-\\u0346\\u034a-\\u034c\\u0350-\\u0352\\u0357-\\u0358\\u035c-\\u0362\\u0374\\u037e\\u0387\\u0591-\\u05af\\u05c4\\u0610-\\u0617\\u0653-\\u0654\\u0657-\\u065b\\u065d-\\u065e\\u06df-\\u06e2\\u06eb-\\u06ec\\u0730\\u0732-\\u0733\\u0735-\\u0736\\u073a\\u073d\\u073f-\\u0741\\u0743\\u0745\\u0747\\u07eb-\\u07f1\\u0951\\u0958-\\u095f\\u09dc-\\u09dd\\u09df\\u0a33\\u0a36\\u0a59-\\u0a5b\\u0a5e\\u0b5c-\\u0b5d\\u0e38-\\u0e39\\u0f43\\u0f4d\\u0f52\\u0f57\\u0f5c\\u0f69\\u0f72-\\u0f76\\u0f78\\u0f80-\\u0f83\\u0f93\\u0f9d\\u0fa2\\u0fa7\\u0fac\\u0fb9\\u1939-\\u193a\\u1a17\\u1b6b\\u1cda-\\u1cdb\\u1dc0-\\u1dcf\\u1dfc\\u1dfe\\u1f71\\u1f73\\u1f75\\u1f77\\u1f79\\u1f7b\\u1f7d\\u1fbb\\u1fbe\\u1fc9\\u1fcb\\u1fd3\\u1fdb\\u1fe3\\u1feb\\u1fee-\\u1fef\\u1ff9\\u1ffb\\u1ffd\\u2000-\\u2001\\u20d0-\\u20d1\\u20d4-\\u20d7\\u20e7-\\u20e9\\u2126\\u212a-\\u212b\\u2329-\\u232a\\u2adc\\u302b-\\u302c\\uaab2-\\uaab3\\uf900-\\ufa0d\\ufa10\\ufa12\\ufa15-\\ufa1e\\ufa20\\ufa22\\ufa25-\\ufa26\\ufa2a-\\ufa2d\\ufa30-\\ufa6d\\ufa70-\\ufad9\\ufb1d\\ufb1f\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4e\\ufff0-\\uffff]/g\n , extraLookup;\n\n// This may be quite slow, so let's delay until user actually uses bad\n// characters.\nvar unrollLookup = function(escapable) {\n var i;\n var unrolled = {};\n var c = [];\n for (i = 0; i < 65536; i++) {\n c.push( String.fromCharCode(i) );\n }\n escapable.lastIndex = 0;\n c.join('').replace(escapable, function(a) {\n unrolled[ a ] = '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n return '';\n });\n escapable.lastIndex = 0;\n return unrolled;\n};\n\n// Quote string, also taking care of unicode characters that browsers\n// often break. Especially, take care of unicode surrogates:\n// http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Surrogates\nmodule.exports = {\n quote: function(string) {\n var quoted = JSON.stringify(string);\n\n // In most cases this should be very fast and good enough.\n extraEscapable.lastIndex = 0;\n if (!extraEscapable.test(quoted)) {\n return quoted;\n }\n\n if (!extraLookup) {\n extraLookup = unrollLookup(extraEscapable);\n }\n\n return quoted.replace(extraEscapable, function(a) {\n return extraLookup[a];\n });\n }\n};\n", "'use strict';\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:utils:transport');\n}\n\nmodule.exports = function(availableTransports) {\n return {\n filterToEnabled: function(transportsWhitelist, info) {\n var transports = {\n main: []\n , facade: []\n };\n if (!transportsWhitelist) {\n transportsWhitelist = [];\n } else if (typeof transportsWhitelist === 'string') {\n transportsWhitelist = [transportsWhitelist];\n }\n\n availableTransports.forEach(function(trans) {\n if (!trans) {\n return;\n }\n\n if (trans.transportName === 'websocket' && info.websocket === false) {\n debug('disabled from server', 'websocket');\n return;\n }\n\n if (transportsWhitelist.length &&\n transportsWhitelist.indexOf(trans.transportName) === -1) {\n debug('not in whitelist', trans.transportName);\n return;\n }\n\n if (trans.enabled(info)) {\n debug('enabled', trans.transportName);\n transports.main.push(trans);\n if (trans.facadeTransport) {\n transports.facade.push(trans.facadeTransport);\n }\n } else {\n debug('disabled', trans.transportName);\n }\n });\n return transports;\n }\n };\n};\n", "'use strict';\n\nvar logObject = {};\n['log', 'debug', 'warn'].forEach(function (level) {\n var levelExists;\n\n try {\n levelExists = global.console && global.console[level] && global.console[level].apply;\n } catch(e) {\n // do nothing\n }\n\n logObject[level] = levelExists ? function () {\n return global.console[level].apply(global.console, arguments);\n } : (level === 'log' ? function () {} : logObject.log);\n});\n\nmodule.exports = logObject;\n", "'use strict';\n\nfunction Event(eventType) {\n this.type = eventType;\n}\n\nEvent.prototype.initEvent = function(eventType, canBubble, cancelable) {\n this.type = eventType;\n this.bubbles = canBubble;\n this.cancelable = cancelable;\n this.timeStamp = +new Date();\n return this;\n};\n\nEvent.prototype.stopPropagation = function() {};\nEvent.prototype.preventDefault = function() {};\n\nEvent.CAPTURING_PHASE = 1;\nEvent.AT_TARGET = 2;\nEvent.BUBBLING_PHASE = 3;\n\nmodule.exports = Event;\n", "'use strict';\n\nmodule.exports = global.location || {\n origin: 'http://localhost:80'\n, protocol: 'http:'\n, host: 'localhost'\n, port: 80\n, href: 'http://localhost/'\n, hash: ''\n};\n", "'use strict';\n\nvar inherits = require('inherits')\n , Event = require('./event')\n ;\n\nfunction CloseEvent() {\n Event.call(this);\n this.initEvent('close', false, false);\n this.wasClean = false;\n this.code = 0;\n this.reason = '';\n}\n\ninherits(CloseEvent, Event);\n\nmodule.exports = CloseEvent;\n", "'use strict';\n\nvar inherits = require('inherits')\n , Event = require('./event')\n ;\n\nfunction TransportMessageEvent(data) {\n Event.call(this);\n this.initEvent('message', false, false);\n this.data = data;\n}\n\ninherits(TransportMessageEvent, Event);\n\nmodule.exports = TransportMessageEvent;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n ;\n\nfunction XHRFake(/* method, url, payload, opts */) {\n var self = this;\n EventEmitter.call(this);\n\n this.to = setTimeout(function() {\n self.emit('finish', 200, '{}');\n }, XHRFake.timeout);\n}\n\ninherits(XHRFake, EventEmitter);\n\nXHRFake.prototype.close = function() {\n clearTimeout(this.to);\n};\n\nXHRFake.timeout = 2000;\n\nmodule.exports = XHRFake;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , objectUtils = require('./utils/object')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-ajax');\n}\n\nfunction InfoAjax(url, AjaxObject) {\n EventEmitter.call(this);\n\n var self = this;\n var t0 = +new Date();\n this.xo = new AjaxObject('GET', url);\n\n this.xo.once('finish', function(status, text) {\n var info, rtt;\n if (status === 200) {\n rtt = (+new Date()) - t0;\n if (text) {\n try {\n info = JSON.parse(text);\n } catch (e) {\n debug('bad json', text);\n }\n }\n\n if (!objectUtils.isObject(info)) {\n info = {};\n }\n }\n self.emit('finish', info, rtt);\n self.removeAllListeners();\n });\n}\n\ninherits(InfoAjax, EventEmitter);\n\nInfoAjax.prototype.close = function() {\n this.removeAllListeners();\n this.xo.close();\n};\n\nmodule.exports = InfoAjax;\n", "'use strict';\n\nvar inherits = require('inherits')\n , EventEmitter = require('events').EventEmitter\n , XHRLocalObject = require('./transport/sender/xhr-local')\n , InfoAjax = require('./info-ajax')\n ;\n\nfunction InfoReceiverIframe(transUrl) {\n var self = this;\n EventEmitter.call(this);\n\n this.ir = new InfoAjax(transUrl, XHRLocalObject);\n this.ir.once('finish', function(info, rtt) {\n self.ir = null;\n self.emit('message', JSON.stringify([info, rtt]));\n });\n}\n\ninherits(InfoReceiverIframe, EventEmitter);\n\nInfoReceiverIframe.transportName = 'iframe-info-receiver';\n\nInfoReceiverIframe.prototype.close = function() {\n if (this.ir) {\n this.ir.close();\n this.ir = null;\n }\n this.removeAllListeners();\n};\n\nmodule.exports = InfoReceiverIframe;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , utils = require('./utils/event')\n , IframeTransport = require('./transport/iframe')\n , InfoReceiverIframe = require('./info-iframe-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-iframe');\n}\n\nfunction InfoIframe(baseUrl, url) {\n var self = this;\n EventEmitter.call(this);\n\n var go = function() {\n var ifr = self.ifr = new IframeTransport(InfoReceiverIframe.transportName, url, baseUrl);\n\n ifr.once('message', function(msg) {\n if (msg) {\n var d;\n try {\n d = JSON.parse(msg);\n } catch (e) {\n debug('bad json', msg);\n self.emit('finish');\n self.close();\n return;\n }\n\n var info = d[0], rtt = d[1];\n self.emit('finish', info, rtt);\n }\n self.close();\n });\n\n ifr.once('close', function() {\n self.emit('finish');\n self.close();\n });\n };\n\n // TODO this seems the same as the 'needBody' from transports\n if (!global.document.body) {\n utils.attachEvent('load', go);\n } else {\n go();\n }\n}\n\ninherits(InfoIframe, EventEmitter);\n\nInfoIframe.enabled = function() {\n return IframeTransport.enabled();\n};\n\nInfoIframe.prototype.close = function() {\n if (this.ifr) {\n this.ifr.close();\n }\n this.removeAllListeners();\n this.ifr = null;\n};\n\nmodule.exports = InfoIframe;\n", "'use strict';\n\nvar EventEmitter = require('events').EventEmitter\n , inherits = require('inherits')\n , urlUtils = require('./utils/url')\n , XDR = require('./transport/sender/xdr')\n , XHRCors = require('./transport/sender/xhr-cors')\n , XHRLocal = require('./transport/sender/xhr-local')\n , XHRFake = require('./transport/sender/xhr-fake')\n , InfoIframe = require('./info-iframe')\n , InfoAjax = require('./info-ajax')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:info-receiver');\n}\n\nfunction InfoReceiver(baseUrl, urlInfo) {\n debug(baseUrl);\n var self = this;\n EventEmitter.call(this);\n\n setTimeout(function() {\n self.doXhr(baseUrl, urlInfo);\n }, 0);\n}\n\ninherits(InfoReceiver, EventEmitter);\n\n// TODO this is currently ignoring the list of available transports and the whitelist\n\nInfoReceiver._getReceiver = function(baseUrl, url, urlInfo) {\n // determine method of CORS support (if needed)\n if (urlInfo.sameOrigin) {\n return new InfoAjax(url, XHRLocal);\n }\n if (XHRCors.enabled) {\n return new InfoAjax(url, XHRCors);\n }\n if (XDR.enabled && urlInfo.sameScheme) {\n return new InfoAjax(url, XDR);\n }\n if (InfoIframe.enabled()) {\n return new InfoIframe(baseUrl, url);\n }\n return new InfoAjax(url, XHRFake);\n};\n\nInfoReceiver.prototype.doXhr = function(baseUrl, urlInfo) {\n var self = this\n , url = urlUtils.addPath(baseUrl, '/info')\n ;\n debug('doXhr', url);\n\n this.xo = InfoReceiver._getReceiver(baseUrl, url, urlInfo);\n\n this.timeoutRef = setTimeout(function() {\n debug('timeout');\n self._cleanup(false);\n self.emit('finish');\n }, InfoReceiver.timeout);\n\n this.xo.once('finish', function(info, rtt) {\n debug('finish', info, rtt);\n self._cleanup(true);\n self.emit('finish', info, rtt);\n });\n};\n\nInfoReceiver.prototype._cleanup = function(wasClean) {\n debug('_cleanup');\n clearTimeout(this.timeoutRef);\n this.timeoutRef = null;\n if (!wasClean && this.xo) {\n this.xo.close();\n }\n this.xo = null;\n};\n\nInfoReceiver.prototype.close = function() {\n debug('close');\n this.removeAllListeners();\n this._cleanup(false);\n};\n\nInfoReceiver.timeout = 8000;\n\nmodule.exports = InfoReceiver;\n", "'use strict';\n\nvar iframeUtils = require('./utils/iframe')\n ;\n\nfunction FacadeJS(transport) {\n this._transport = transport;\n transport.on('message', this._transportMessage.bind(this));\n transport.on('close', this._transportClose.bind(this));\n}\n\nFacadeJS.prototype._transportClose = function(code, reason) {\n iframeUtils.postMessage('c', JSON.stringify([code, reason]));\n};\nFacadeJS.prototype._transportMessage = function(frame) {\n iframeUtils.postMessage('t', frame);\n};\nFacadeJS.prototype._send = function(data) {\n this._transport.send(data);\n};\nFacadeJS.prototype._close = function() {\n this._transport.close();\n this._transport.removeAllListeners();\n};\n\nmodule.exports = FacadeJS;\n", "'use strict';\n\nvar urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , FacadeJS = require('./facade')\n , InfoIframeReceiver = require('./info-iframe-receiver')\n , iframeUtils = require('./utils/iframe')\n , loc = require('./location')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:iframe-bootstrap');\n}\n\nmodule.exports = function(SockJS, availableTransports) {\n var transportMap = {};\n availableTransports.forEach(function(at) {\n if (at.facadeTransport) {\n transportMap[at.facadeTransport.transportName] = at.facadeTransport;\n }\n });\n\n // hard-coded for the info iframe\n // TODO see if we can make this more dynamic\n transportMap[InfoIframeReceiver.transportName] = InfoIframeReceiver;\n var parentOrigin;\n\n /* eslint-disable camelcase */\n SockJS.bootstrap_iframe = function() {\n /* eslint-enable camelcase */\n var facade;\n iframeUtils.currentWindowId = loc.hash.slice(1);\n var onMessage = function(e) {\n if (e.source !== parent) {\n return;\n }\n if (typeof parentOrigin === 'undefined') {\n parentOrigin = e.origin;\n }\n if (e.origin !== parentOrigin) {\n return;\n }\n\n var iframeMessage;\n try {\n iframeMessage = JSON.parse(e.data);\n } catch (ignored) {\n debug('bad json', e.data);\n return;\n }\n\n if (iframeMessage.windowId !== iframeUtils.currentWindowId) {\n return;\n }\n switch (iframeMessage.type) {\n case 's':\n var p;\n try {\n p = JSON.parse(iframeMessage.data);\n } catch (ignored) {\n debug('bad json', iframeMessage.data);\n break;\n }\n var version = p[0];\n var transport = p[1];\n var transUrl = p[2];\n var baseUrl = p[3];\n debug(version, transport, transUrl, baseUrl);\n // change this to semver logic\n if (version !== SockJS.version) {\n throw new Error('Incompatible SockJS! Main site uses:' +\n ' \"' + version + '\", the iframe:' +\n ' \"' + SockJS.version + '\".');\n }\n\n if (!urlUtils.isOriginEqual(transUrl, loc.href) ||\n !urlUtils.isOriginEqual(baseUrl, loc.href)) {\n throw new Error('Can\\'t connect to different domain from within an ' +\n 'iframe. (' + loc.href + ', ' + transUrl + ', ' + baseUrl + ')');\n }\n facade = new FacadeJS(new transportMap[transport](transUrl, baseUrl));\n break;\n case 'm':\n facade._send(iframeMessage.data);\n break;\n case 'c':\n if (facade) {\n facade._close();\n }\n facade = null;\n break;\n }\n };\n\n eventUtils.attachEvent('message', onMessage);\n\n // Start\n iframeUtils.postMessage('s');\n };\n};\n", "'use strict';\n\nrequire('./shims');\n\nvar URL = require('url-parse')\n , inherits = require('inherits')\n , random = require('./utils/random')\n , escape = require('./utils/escape')\n , urlUtils = require('./utils/url')\n , eventUtils = require('./utils/event')\n , transport = require('./utils/transport')\n , objectUtils = require('./utils/object')\n , browser = require('./utils/browser')\n , log = require('./utils/log')\n , Event = require('./event/event')\n , EventTarget = require('./event/eventtarget')\n , loc = require('./location')\n , CloseEvent = require('./event/close')\n , TransportMessageEvent = require('./event/trans-message')\n , InfoReceiver = require('./info-receiver')\n ;\n\nvar debug = function() {};\nif (process.env.NODE_ENV !== 'production') {\n debug = require('debug')('sockjs-client:main');\n}\n\nvar transports;\n\n// follow constructor steps defined at http://dev.w3.org/html5/websockets/#the-websocket-interface\nfunction SockJS(url, protocols, options) {\n if (!(this instanceof SockJS)) {\n return new SockJS(url, protocols, options);\n }\n if (arguments.length < 1) {\n throw new TypeError(\"Failed to construct 'SockJS: 1 argument required, but only 0 present\");\n }\n EventTarget.call(this);\n\n this.readyState = SockJS.CONNECTING;\n this.extensions = '';\n this.protocol = '';\n\n // non-standard extension\n options = options || {};\n if (options.protocols_whitelist) {\n log.warn(\"'protocols_whitelist' is DEPRECATED. Use 'transports' instead.\");\n }\n this._transportsWhitelist = options.transports;\n this._transportOptions = options.transportOptions || {};\n this._timeout = options.timeout || 0;\n\n var sessionId = options.sessionId || 8;\n if (typeof sessionId === 'function') {\n this._generateSessionId = sessionId;\n } else if (typeof sessionId === 'number') {\n this._generateSessionId = function() {\n return random.string(sessionId);\n };\n } else {\n throw new TypeError('If sessionId is used in the options, it needs to be a number or a function.');\n }\n\n this._server = options.server || random.numberString(1000);\n\n // Step 1 of WS spec - parse and validate the url. Issue #8\n var parsedUrl = new URL(url);\n if (!parsedUrl.host || !parsedUrl.protocol) {\n throw new SyntaxError(\"The URL '\" + url + \"' is invalid\");\n } else if (parsedUrl.hash) {\n throw new SyntaxError('The URL must not contain a fragment');\n } else if (parsedUrl.protocol !== 'http:' && parsedUrl.protocol !== 'https:') {\n throw new SyntaxError(\"The URL's scheme must be either 'http:' or 'https:'. '\" + parsedUrl.protocol + \"' is not allowed.\");\n }\n\n var secure = parsedUrl.protocol === 'https:';\n // Step 2 - don't allow secure origin with an insecure protocol\n if (loc.protocol === 'https:' && !secure) {\n // exception is 127.0.0.0/8 and ::1 urls\n if (!urlUtils.isLoopbackAddr(parsedUrl.hostname)) {\n throw new Error('SecurityError: An insecure SockJS connection may not be initiated from a page loaded over HTTPS');\n }\n }\n\n // Step 3 - check port access - no need here\n // Step 4 - parse protocols argument\n if (!protocols) {\n protocols = [];\n } else if (!Array.isArray(protocols)) {\n protocols = [protocols];\n }\n\n // Step 5 - check protocols argument\n var sortedProtocols = protocols.sort();\n sortedProtocols.forEach(function(proto, i) {\n if (!proto) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is invalid.\");\n }\n if (i < (sortedProtocols.length - 1) && proto === sortedProtocols[i + 1]) {\n throw new SyntaxError(\"The protocols entry '\" + proto + \"' is duplicated.\");\n }\n });\n\n // Step 6 - convert origin\n var o = urlUtils.getOrigin(loc.href);\n this._origin = o ? o.toLowerCase() : null;\n\n // remove the trailing slash\n parsedUrl.set('pathname', parsedUrl.pathname.replace(/\\/+$/, ''));\n\n // store the sanitized url\n this.url = parsedUrl.href;\n debug('using url', this.url);\n\n // Step 7 - start connection in background\n // obtain server info\n // http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html#section-26\n this._urlInfo = {\n nullOrigin: !browser.hasDomain()\n , sameOrigin: urlUtils.isOriginEqual(this.url, loc.href)\n , sameScheme: urlUtils.isSchemeEqual(this.url, loc.href)\n };\n\n this._ir = new InfoReceiver(this.url, this._urlInfo);\n this._ir.once('finish', this._receiveInfo.bind(this));\n}\n\ninherits(SockJS, EventTarget);\n\nfunction userSetCode(code) {\n return code === 1000 || (code >= 3000 && code <= 4999);\n}\n\nSockJS.prototype.close = function(code, reason) {\n // Step 1\n if (code && !userSetCode(code)) {\n throw new Error('InvalidAccessError: Invalid code');\n }\n // Step 2.4 states the max is 123 bytes, but we are just checking length\n if (reason && reason.length > 123) {\n throw new SyntaxError('reason argument has an invalid length');\n }\n\n // Step 3.1\n if (this.readyState === SockJS.CLOSING || this.readyState === SockJS.CLOSED) {\n return;\n }\n\n // TODO look at docs to determine how to set this\n var wasClean = true;\n this._close(code || 1000, reason || 'Normal closure', wasClean);\n};\n\nSockJS.prototype.send = function(data) {\n // #13 - convert anything non-string to string\n // TODO this currently turns objects into [object Object]\n if (typeof data !== 'string') {\n data = '' + data;\n }\n if (this.readyState === SockJS.CONNECTING) {\n throw new Error('InvalidStateError: The connection has not been established yet');\n }\n if (this.readyState !== SockJS.OPEN) {\n return;\n }\n this._transport.send(escape.quote(data));\n};\n\nSockJS.version = require('./version');\n\nSockJS.CONNECTING = 0;\nSockJS.OPEN = 1;\nSockJS.CLOSING = 2;\nSockJS.CLOSED = 3;\n\nSockJS.prototype._receiveInfo = function(info, rtt) {\n debug('_receiveInfo', rtt);\n this._ir = null;\n if (!info) {\n this._close(1002, 'Cannot connect to server');\n return;\n }\n\n // establish a round-trip timeout (RTO) based on the\n // round-trip time (RTT)\n this._rto = this.countRTO(rtt);\n // allow server to override url used for the actual transport\n this._transUrl = info.base_url ? info.base_url : this.url;\n info = objectUtils.extend(info, this._urlInfo);\n debug('info', info);\n // determine list of desired and supported transports\n var enabledTransports = transports.filterToEnabled(this._transportsWhitelist, info);\n this._transports = enabledTransports.main;\n debug(this._transports.length + ' enabled transports');\n\n this._connect();\n};\n\nSockJS.prototype._connect = function() {\n for (var Transport = this._transports.shift(); Transport; Transport = this._transports.shift()) {\n debug('attempt', Transport.transportName);\n if (Transport.needBody) {\n if (!global.document.body ||\n (typeof global.document.readyState !== 'undefined' &&\n global.document.readyState !== 'complete' &&\n global.document.readyState !== 'interactive')) {\n debug('waiting for body');\n this._transports.unshift(Transport);\n eventUtils.attachEvent('load', this._connect.bind(this));\n return;\n }\n }\n\n // calculate timeout based on RTO and round trips. Default to 5s\n var timeoutMs = Math.max(this._timeout, (this._rto * Transport.roundTrips) || 5000);\n this._transportTimeoutId = setTimeout(this._transportTimeout.bind(this), timeoutMs);\n debug('using timeout', timeoutMs);\n\n var transportUrl = urlUtils.addPath(this._transUrl, '/' + this._server + '/' + this._generateSessionId());\n var options = this._transportOptions[Transport.transportName];\n debug('transport url', transportUrl);\n var transportObj = new Transport(transportUrl, this._transUrl, options);\n transportObj.on('message', this._transportMessage.bind(this));\n transportObj.once('close', this._transportClose.bind(this));\n transportObj.transportName = Transport.transportName;\n this._transport = transportObj;\n\n return;\n }\n this._close(2000, 'All transports failed', false);\n};\n\nSockJS.prototype._transportTimeout = function() {\n debug('_transportTimeout');\n if (this.readyState === SockJS.CONNECTING) {\n if (this._transport) {\n this._transport.close();\n }\n\n this._transportClose(2007, 'Transport timed out');\n }\n};\n\nSockJS.prototype._transportMessage = function(msg) {\n debug('_transportMessage', msg);\n var self = this\n , type = msg.slice(0, 1)\n , content = msg.slice(1)\n , payload\n ;\n\n // first check for messages that don't need a payload\n switch (type) {\n case 'o':\n this._open();\n return;\n case 'h':\n this.dispatchEvent(new Event('heartbeat'));\n debug('heartbeat', this.transport);\n return;\n }\n\n if (content) {\n try {\n payload = JSON.parse(content);\n } catch (e) {\n debug('bad json', content);\n }\n }\n\n if (typeof payload === 'undefined') {\n debug('empty payload', content);\n return;\n }\n\n switch (type) {\n case 'a':\n if (Array.isArray(payload)) {\n payload.forEach(function(p) {\n debug('message', self.transport, p);\n self.dispatchEvent(new TransportMessageEvent(p));\n });\n }\n break;\n case 'm':\n debug('message', this.transport, payload);\n this.dispatchEvent(new TransportMessageEvent(payload));\n break;\n case 'c':\n if (Array.isArray(payload) && payload.length === 2) {\n this._close(payload[0], payload[1], true);\n }\n break;\n }\n};\n\nSockJS.prototype._transportClose = function(code, reason) {\n debug('_transportClose', this.transport, code, reason);\n if (this._transport) {\n this._transport.removeAllListeners();\n this._transport = null;\n this.transport = null;\n }\n\n if (!userSetCode(code) && code !== 2000 && this.readyState === SockJS.CONNECTING) {\n this._connect();\n return;\n }\n\n this._close(code, reason);\n};\n\nSockJS.prototype._open = function() {\n debug('_open', this._transport && this._transport.transportName, this.readyState);\n if (this.readyState === SockJS.CONNECTING) {\n if (this._transportTimeoutId) {\n clearTimeout(this._transportTimeoutId);\n this._transportTimeoutId = null;\n }\n this.readyState = SockJS.OPEN;\n this.transport = this._transport.transportName;\n this.dispatchEvent(new Event('open'));\n debug('connected', this.transport);\n } else {\n // The server might have been restarted, and lost track of our\n // connection.\n this._close(1006, 'Server lost session');\n }\n};\n\nSockJS.prototype._close = function(code, reason, wasClean) {\n debug('_close', this.transport, code, reason, wasClean, this.readyState);\n var forceFail = false;\n\n if (this._ir) {\n forceFail = true;\n this._ir.close();\n this._ir = null;\n }\n if (this._transport) {\n this._transport.close();\n this._transport = null;\n this.transport = null;\n }\n\n if (this.readyState === SockJS.CLOSED) {\n throw new Error('InvalidStateError: SockJS has already been closed');\n }\n\n this.readyState = SockJS.CLOSING;\n setTimeout(function() {\n this.readyState = SockJS.CLOSED;\n\n if (forceFail) {\n this.dispatchEvent(new Event('error'));\n }\n\n var e = new CloseEvent('close');\n e.wasClean = wasClean || false;\n e.code = code || 1000;\n e.reason = reason;\n\n this.dispatchEvent(e);\n this.onmessage = this.onclose = this.onerror = null;\n debug('disconnected');\n }.bind(this), 0);\n};\n\n// See: http://www.erg.abdn.ac.uk/~gerrit/dccp/notes/ccid2/rto_estimator/\n// and RFC 2988.\nSockJS.prototype.countRTO = function(rtt) {\n // In a local environment, when using IE8/9 and the `jsonp-polling`\n // transport the time needed to establish a connection (the time that pass\n // from the opening of the transport to the call of `_dispatchOpen`) is\n // around 200msec (the lower bound used in the article above) and this\n // causes spurious timeouts. For this reason we calculate a value slightly\n // larger than that used in the article.\n if (rtt > 100) {\n return 4 * rtt; // rto > 400msec\n }\n return 300 + rtt; // 300msec < rto <= 400msec\n};\n\nmodule.exports = function(availableTransports) {\n transports = transport(availableTransports);\n require('./iframe-bootstrap')(SockJS, availableTransports);\n return SockJS;\n};\n", "'use strict';\n\nvar transportList = require('./transport-list');\n\nmodule.exports = require('./main')(transportList);\n\n// TODO can't get rid of this until all servers do\nif ('_sockjs_onload' in global) {\n setTimeout(global._sockjs_onload, 1);\n}\n", "import { Client } from './client.js';\nimport { CrossFrameMessenger } from './crossframe-messenger.js';\n\nexport const client = new Client();\nexport const crossFrameMessenger = new CrossFrameMessenger();", "export class EventTarget {\n listeners: {\n [type: string]: Function[] \n }\n\n constructor() {\n this.listeners = {};\n }\n \n addEventListener(type: string, callback: Function) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n this.listeners[type].push(callback);\n };\n \n removeEventListener(type: string, callback: Function) {\n if (!(type in this.listeners)) {\n return;\n }\n const stack = this.listeners[type];\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i] === callback){\n stack.splice(i, 1);\n return;\n }\n }\n };\n \n dispatchEvent(event: Event) {\n if (!(event.type in this.listeners)) {\n return true;\n }\n\n const stack = this.listeners[event.type].slice();\n \n for (let i = 0, l = stack.length; i < l; i++) {\n stack[i].call(this, event);\n if (event.cancelBubble) return;\n }\n return !event.defaultPrevented;\n };\n\n}", "\nexport const TypeMessage = \"message\"\n\nexport class Message {\n _type: string\n _payload: any\n\n constructor(type, payload) {\n this._type = type;\n this._payload = payload;\n }\n\n getType() {\n return this._type;\n }\n\n getPayload() {\n return this._payload;\n }\n\n toJSON() {\n return {\n t: this._type,\n p: this._payload\n };\n }\n\n}\n\nexport function messageFrom(raw) {\n return new Message(raw.t, raw.p);\n}\n", "export class RPCError extends Error {\n code: string\n data: any\n\n constructor(code, message, data) {\n super(message);\n this.code = code;\n this.data = data;\n if((Error as any).captureStackTrace) (Error as any).captureStackTrace(this, RPCError);\n }\n}", "import { EventTarget } from \"./event-target\";\nimport { messageFrom, Message, TypeMessage } from \"./message\";\nimport { RPCError } from \"./rpc-error\";\nimport SockJS from 'sockjs-client';\n\nconst EventTypeMessage = \"message\";\nconst EdgeAuth = \"edge-auth\"\nconst EdgeAuthTokenRequest = \"edge_auth_token_request\"\nconst EdgeAuthTokenResponse = \"edge_auth_token_reponse\"\n\nexport class Client extends EventTarget {\n\n _conn: any\n _rpcID: number\n _pendingRPC: {}\n _queue: Message[]\n _reconnectionDelay: number\n _autoReconnect: boolean\n debug: boolean\n\n constructor(autoReconnect = true) {\n super();\n this._conn = null;\n\n this._onConnectionClose = this._onConnectionClose.bind(this);\n this._onConnectionMessage = this._onConnectionMessage.bind(this);\n this._handleRPCResponse = this._handleRPCResponse.bind(this);\n this._handleEdgeAuthTokenRequest = this._handleEdgeAuthTokenRequest.bind(this);\n\n this._rpcID = 0;\n this._pendingRPC = {};\n this._queue = [];\n this._reconnectionDelay = 250;\n this._autoReconnect = autoReconnect;\n this.debug = false;\n\n this.connect = this.connect.bind(this);\n this.disconnect = this.disconnect.bind(this);\n this.rpc = this.rpc.bind(this);\n this.send = this.send.bind(this);\n this.upload = this.upload.bind(this);\n \n\n this.addEventListener(EventTypeMessage, this._handleRPCResponse);\n window.addEventListener('message', this._handleEdgeAuthTokenRequest);\n }\n\n connect(token = \"\"): Promise<Client> {\n let getToken: Promise<string>\n\n if (token) {\n getToken = Promise.resolve(token)\n } else {\n getToken = this._retrieveToken()\n }\n\n return getToken.then(token => this._connect(token))\n }\n\n disconnect() {\n this._cleanupConnection();\n }\n\n _connect(token: string): Promise<Client> {\n return new Promise((resolve, reject) => {\n const url = `//${document.location.host}/edge/sock?${EdgeAuth}=${token}`;\n this._log(\"opening connection to\", url);\n const conn: any = new SockJS(url);\n\n const onOpen = () => {\n this._log('client connected');\n resetHandlers();\n conn.onclose = this._onConnectionClose;\n conn.onmessage = this._onConnectionMessage;\n this._conn = conn;\n this._sendQueued();\n setTimeout(() => {\n this._dispatchConnect();\n }, 0);\n return resolve(this);\n };\n\n const onError = (evt) => {\n resetHandlers();\n this._scheduleReconnection();\n return reject(evt);\n };\n\n const resetHandlers = () => {\n conn.removeEventListener('open', onOpen);\n conn.removeEventListener('close', onError);\n conn.removeEventListener('error', onError);\n };\n\n conn.addEventListener('open', onOpen);\n conn.addEventListener('error', onError);\n conn.addEventListener('close', onError);\n })\n }\n\n _retrieveToken(): Promise<string> {\n let token = this._getAuthCookieToken();\n if (token) {\n return Promise.resolve(token);\n }\n\n return this._getParentFrameToken();;\n }\n\n _getAuthCookieToken(): string {\n const cookie = document.cookie.split(\"; \")\n .find((row) => row.startsWith(EdgeAuth));\n\n let token = \"\";\n\n if (cookie) {\n token = cookie.split(\"=\")[1];\n }\n\n return token;\n }\n\n _getParentFrameToken(timeout = 5000): Promise<string> {\n if (!window.parent || window.parent === window) {\n return Promise.resolve(\"\");\n }\n\n return new Promise((resolve, reject) => {\n let timedOut = false;\n const timeoutId = setTimeout(() => {\n timedOut = true;\n reject(new Error(\"Edge auth token request timed out !\"));\n }, timeout);\n\n const listener = (evt) => {\n const message = evt.data;\n\n if (!message || !message.type || !message.data) {\n return\n }\n\n if (message.type !== EdgeAuthTokenResponse) {\n return;\n }\n\n window.removeEventListener('message', listener);\n clearTimeout(timeoutId);\n\n if (timedOut) return;\n\n if (!message.data) {\n reject(\"Unexpected auth token request response !\");\n return;\n }\n\n resolve(message.data?.token || \"\");\n }\n\n window.addEventListener('message', listener);\n \n const message = { type: EdgeAuthTokenRequest };\n window.parent.postMessage(message, '*');\n })\n }\n\n _handleEdgeAuthTokenRequest(evt: MessageEvent) {\n const message = evt.data;\n if (!message || !message.type || message.type !== EdgeAuthTokenRequest) {\n return;\n }\n\n if (!evt.source) {\n return;\n }\n\n const token = this._getAuthCookieToken();\n // @ts-ignore\n evt.source.postMessage({ type: EdgeAuthTokenResponse, data: { token }}, evt.origin);\n }\n\n _onConnectionMessage(evt) {\n const rawMessage = JSON.parse(evt.data);\n const message = messageFrom(rawMessage);\n const event = new CustomEvent(message.getType(), {\n cancelable: true,\n detail: message.getPayload()\n });\n this.dispatchEvent(event);\n }\n\n _handleRPCResponse(evt) {\n const { jsonrpc, id, error, result } = evt.detail;\n\n if (jsonrpc !== '2.0' || id === undefined) return;\n if (!evt.detail.hasOwnProperty(\"error\") && !evt.detail.hasOwnProperty(\"result\")) return;\n\n // Prevent additional handlers to catch this event\n evt.stopImmediatePropagation();\n\n const pending = this._pendingRPC[id];\n if (!pending) return;\n\n delete this._pendingRPC[id];\n\n if (error) {\n pending.reject(new RPCError(error.code, error.message, error.data));\n return;\n }\n\n pending.resolve(result);\n }\n\n _onConnectionClose(evt) {\n this._log('client disconnected');\n this._dispatchDisconnect();\n this._cleanupConnection();\n this._scheduleReconnection();\n }\n\n _dispatchDisconnect() {\n const event = new CustomEvent('disconnect');\n this.dispatchEvent(event);\n }\n\n _dispatchConnect() {\n const event = new CustomEvent('connect');\n this.dispatchEvent(event);\n }\n\n _scheduleReconnection() {\n if (!this._autoReconnect) return;\n\n this._reconnectionDelay = this._reconnectionDelay * 2 + Math.random();\n this._log('client will try to reconnect in %dms', this._reconnectionDelay);\n setTimeout(this.connect.bind(this), this._reconnectionDelay);\n }\n\n _cleanupConnection() {\n if (!this._conn) return;\n this._conn.onopen = null;\n this._conn.onerror = null;\n this._conn.onclose = null;\n this._conn.onmessage = null;\n this._conn.close();\n this._conn = null;\n }\n\n _send(message) {\n if (!this._conn) return false;\n this._log('sending message', message);\n this._conn.send(JSON.stringify(message));\n return true;\n }\n\n _sendQueued() {\n this._log(\"sending queued messages\", this._queue.length);\n let msg = this._queue.shift();\n while (msg) {\n const sent = this._send(msg);\n if (!sent) return;\n msg = this._queue.shift();\n }\n }\n\n _log(...args) {\n if (!this.debug) return;\n console.log(...args);\n }\n\n _sendOrQueue(msg) {\n if (this.isConnected()) {\n this._sendQueued();\n this._send(msg);\n } else {\n this._log('queuing message', msg);\n this._queue.push(msg);\n }\n }\n\n send(data) {\n const msg = new Message(TypeMessage, data);\n this._sendOrQueue(msg);\n }\n\n rpc(method, params) {\n return new Promise((resolve, reject) => {\n const id = this._rpcID++;\n const rpc = new Message(TypeMessage, {\n jsonrpc: '2.0',\n id, method, params\n });\n this._sendOrQueue(rpc);\n this._pendingRPC[id.toString()] = { resolve, reject };\n });\n }\n\n isConnected() {\n return this._conn !== null;\n }\n\n upload(blob: string | Blob, metadata: any) {\n return new Promise((resolve, reject) => {\n const formData = new FormData();\n formData.set(\"file\", blob);\n\n if (metadata) {\n try {\n formData.set(\"metadata\", JSON.stringify(metadata));\n } catch (err) {\n return reject(err);\n }\n }\n const xhr = new XMLHttpRequest();\n\n const result = {\n onProgress: null,\n abort: () => xhr.abort(),\n result: () => {\n return new Promise((resolve, reject) => {\n xhr.onload = () => {\n let data;\n try {\n data = JSON.parse(xhr.responseText);\n } catch (err) {\n reject(err);\n return;\n }\n resolve(data);\n };\n xhr.onerror = reject;\n xhr.onabort = reject;\n });\n }\n };\n\n xhr.upload.onprogress = evt => {\n if (typeof result.onProgress !== 'function') return;\n (result as any).onProgress(evt.loaded, evt.total);\n };\n xhr.onabort = reject;\n xhr.onerror = reject;\n\n xhr.open('POST', `/edge/api/v1/upload`);\n xhr.send(formData);\n\n resolve(result);\n });\n }\n\n blobUrl(bucket: string, blobId: string): string {\n return `/edge/api/v1/download/${bucket}/${blobId}`;\n }\n\n externalUrl(url: string): string {\n return `/edge/api/v1/fetch?url=${encodeURIComponent(url)}`\n }\n}", "import { EventTarget } from \"./event-target\";\n\nenum CrossFrameMessageType {\n SIZE_CHANGED = \"size_changed\",\n TITLE_CHANGED = \"title_changed\"\n}\n\ninterface CrossFrameMessage {\n type: CrossFrameMessageType\n data: { [key: string]: any }\n}\n\nexport class CrossFrameMessenger extends EventTarget {\n debug: boolean;\n\n constructor() {\n super()\n this.debug = false;\n\n this._handleWindowMessage = this._handleWindowMessage.bind(this);\n this._initObservers = this._initObservers.bind(this);\n\n window.addEventListener('load', this._initObservers);\n window.addEventListener('message', this._handleWindowMessage)\n }\n\n post(message: CrossFrameMessage, target: Window = window.parent) {\n if (!target) return;\n this._log(\"sending crossframe message\", message);\n target.postMessage(message, '*');\n }\n\n _log(...args) {\n if (!this.debug) return;\n console.log(...args);\n }\n\n _handleWindowMessage(evt: MessageEvent) {\n const message = evt.data;\n if (!message || !message.type || !message.data) {\n return;\n }\n \n const event = new CustomEvent(message.type, {\n cancelable: true,\n detail: message.data\n });\n \n this.dispatchEvent(event);\n }\n\n _initObservers() {\n this._initResizeObserver();\n this._initTitleMutationObserver();\n }\n\n _initTitleMutationObserver() {\n const titleObserver = new MutationObserver((mutations) => {\n const title = mutations[0].target.textContent;\n this.post({ type: CrossFrameMessageType.TITLE_CHANGED, data: { title }});\n });\n\n const title = document.querySelector('title');\n\n if (!title) return;\n\n this.post({ type: CrossFrameMessageType.TITLE_CHANGED, data: { title: title.textContent }});\n \n titleObserver.observe(title, { subtree: true, characterData: true, childList: true });\n }\n\n _initResizeObserver() {\n const resizeObserver = new ResizeObserver(() => {\n const rect = document.documentElement.getBoundingClientRect();\n const height = rect.height;\n const width = rect.width;\n\n this.post({ type: CrossFrameMessageType.SIZE_CHANGED, data: { height, width }});\n });\n\n const body = document.body;\n\n if (!body) return;\n\n resizeObserver.observe(document.documentElement);\n }\n}"],
"mappings": "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",
"names": ["self", "_typeof", "obj", "EventTarget", "EventTarget", "self", "require_websocket", "self", "self", "self", "self", "self", "self", "require_browser", "self", "require_eventsource", "self", "require_eventsource", "require_iframe", "self", "self", "require_htmlfile", "self", "require_jsonp", "isArray", "isString", "self", "require_event", "self", "self", "self", "self", "self", "SockJS", "EventTarget", "SockJS", "self", "token", "SockJS", "message", "resolve", "reject", "title"]
}