next-csrf
Version:
CSRF mitigation library for Next.js
1 lines • 82.8 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _unfetch = _interopRequireDefault(require(\"next/dist/build/polyfills/unfetch\"));\n/* eslint-disable */\n// Improved version of https://github.com/Yaffle/EventSource/\n// Available under MIT License (MIT)\n// Only tries to support IE11 and nothing below\n\n\nvar document = window.document;\nvar Response = window.Response;\nvar TextDecoder = window.TextDecoder;\nvar TextEncoder = window.TextEncoder;\nvar AbortController = window.AbortController;\n\nif (AbortController == undefined) {\n AbortController = function AbortController() {\n this.signal = null;\n\n this.abort = function () {};\n };\n}\n\nfunction TextDecoderPolyfill() {\n this.bitsNeeded = 0;\n this.codePoint = 0;\n}\n\n_c = TextDecoderPolyfill;\n\nTextDecoderPolyfill.prototype.decode = function (octets) {\n function valid(codePoint, shift, octetsCount) {\n if (octetsCount === 1) {\n return codePoint >= 0x0080 >> shift && codePoint << shift <= 0x07ff;\n }\n\n if (octetsCount === 2) {\n return codePoint >= 0x0800 >> shift && codePoint << shift <= 0xd7ff || codePoint >= 0xe000 >> shift && codePoint << shift <= 0xffff;\n }\n\n if (octetsCount === 3) {\n return codePoint >= 0x010000 >> shift && codePoint << shift <= 0x10ffff;\n }\n\n throw new Error();\n }\n\n function octetsCount(bitsNeeded, codePoint) {\n if (bitsNeeded === 6 * 1) {\n return codePoint >> 6 > 15 ? 3 : codePoint > 31 ? 2 : 1;\n }\n\n if (bitsNeeded === 6 * 2) {\n return codePoint > 15 ? 3 : 2;\n }\n\n if (bitsNeeded === 6 * 3) {\n return 3;\n }\n\n throw new Error();\n }\n\n var REPLACER = 0xfffd;\n var string = '';\n var bitsNeeded = this.bitsNeeded;\n var codePoint = this.codePoint;\n\n for (var i = 0; i < octets.length; i += 1) {\n var octet = octets[i];\n\n if (bitsNeeded !== 0) {\n if (octet < 128 || octet > 191 || !valid(codePoint << 6 | octet & 63, bitsNeeded - 6, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n string += String.fromCharCode(codePoint);\n }\n }\n\n if (bitsNeeded === 0) {\n if (octet >= 0 && octet <= 127) {\n bitsNeeded = 0;\n codePoint = octet;\n } else if (octet >= 192 && octet <= 223) {\n bitsNeeded = 6 * 1;\n codePoint = octet & 31;\n } else if (octet >= 224 && octet <= 239) {\n bitsNeeded = 6 * 2;\n codePoint = octet & 15;\n } else if (octet >= 240 && octet <= 247) {\n bitsNeeded = 6 * 3;\n codePoint = octet & 7;\n } else {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n\n if (bitsNeeded !== 0 && !valid(codePoint, bitsNeeded, octetsCount(bitsNeeded, codePoint))) {\n bitsNeeded = 0;\n codePoint = REPLACER;\n }\n } else {\n bitsNeeded -= 6;\n codePoint = codePoint << 6 | octet & 63;\n }\n\n if (bitsNeeded === 0) {\n if (codePoint <= 0xffff) {\n string += String.fromCharCode(codePoint);\n } else {\n string += String.fromCharCode(0xd800 + (codePoint - 0xffff - 1 >> 10));\n string += String.fromCharCode(0xdc00 + (codePoint - 0xffff - 1 & 0x3ff));\n }\n }\n }\n\n this.bitsNeeded = bitsNeeded;\n this.codePoint = codePoint;\n return string;\n}; // Firefox < 38 throws an error with stream option\n\n\nvar supportsStreamOption = function supportsStreamOption() {\n try {\n return new TextDecoder().decode(new TextEncoder().encode('test'), {\n stream: true\n }) === 'test';\n } catch (error) {\n console.log(error);\n }\n\n return false;\n}; // IE, Edge\n\n\nif (TextDecoder == undefined || TextEncoder == undefined || !supportsStreamOption()) {\n TextDecoder = TextDecoderPolyfill;\n}\n\nvar k = function k() {};\n\nfunction XHRWrapper(xhr) {\n this.withCredentials = false;\n this.responseType = '';\n this.readyState = 0;\n this.status = 0;\n this.statusText = '';\n this.responseText = '';\n this.onprogress = k;\n this.onreadystatechange = k;\n this._contentType = '';\n this._xhr = xhr;\n this._sendTimeout = 0;\n this._abort = k;\n}\n\n_c2 = XHRWrapper;\n\nXHRWrapper.prototype.open = function (method, url) {\n this._abort(true);\n\n var that = this;\n var xhr = this._xhr;\n var state = 1;\n var timeout = 0;\n\n this._abort = function (silent) {\n if (that._sendTimeout !== 0) {\n clearTimeout(that._sendTimeout);\n that._sendTimeout = 0;\n }\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n xhr.onload = k;\n xhr.onerror = k;\n xhr.onabort = k;\n xhr.onprogress = k;\n xhr.onreadystatechange = k; // IE 8 - 9: XDomainRequest#abort() does not fire any event\n // Opera < 10: XMLHttpRequest#abort() does not fire any event\n\n xhr.abort();\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n if (!silent) {\n that.readyState = 4;\n that.onreadystatechange();\n }\n }\n\n state = 0;\n };\n\n var onStart = function onStart() {\n if (state === 1) {\n // state = 2;\n var status = 0;\n var statusText = '';\n var contentType = undefined;\n\n if (!('contentType' in xhr)) {\n try {\n status = xhr.status;\n statusText = xhr.statusText;\n contentType = xhr.getResponseHeader('Content-Type');\n } catch (error) {\n // IE < 10 throws exception for `xhr.status` when xhr.readyState === 2 || xhr.readyState === 3\n // Opera < 11 throws exception for `xhr.status` when xhr.readyState === 2\n // https://bugs.webkit.org/show_bug.cgi?id=29121\n status = 0;\n statusText = '';\n contentType = undefined; // Firefox < 14, Chrome ?, Safari ?\n // https://bugs.webkit.org/show_bug.cgi?id=29658\n // https://bugs.webkit.org/show_bug.cgi?id=77854\n }\n } else {\n status = 200;\n statusText = 'OK';\n contentType = xhr.contentType;\n }\n\n if (status !== 0) {\n state = 2;\n that.readyState = 2;\n that.status = status;\n that.statusText = statusText;\n that._contentType = contentType;\n that.onreadystatechange();\n }\n }\n };\n\n var onProgress = function onProgress() {\n onStart();\n\n if (state === 2 || state === 3) {\n state = 3;\n var responseText = '';\n\n try {\n responseText = xhr.responseText;\n } catch (error) {// IE 8 - 9 with XMLHttpRequest\n }\n\n that.readyState = 3;\n that.responseText = responseText;\n that.onprogress();\n }\n };\n\n var onFinish = function onFinish() {\n // Firefox 52 fires \"readystatechange\" (xhr.readyState === 4) without final \"readystatechange\" (xhr.readyState === 3)\n // IE 8 fires \"onload\" without \"onprogress\"\n onProgress();\n\n if (state === 1 || state === 2 || state === 3) {\n state = 4;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n that.readyState = 4;\n that.onreadystatechange();\n }\n };\n\n var onReadyStateChange = function onReadyStateChange() {\n if (xhr != undefined) {\n // Opera 12\n if (xhr.readyState === 4) {\n onFinish();\n } else if (xhr.readyState === 3) {\n onProgress();\n } else if (xhr.readyState === 2) {\n onStart();\n }\n }\n };\n\n var onTimeout = function onTimeout() {\n timeout = setTimeout(function () {\n onTimeout();\n }, 500);\n\n if (xhr.readyState === 3) {\n onProgress();\n }\n }; // XDomainRequest#abort removes onprogress, onerror, onload\n\n\n xhr.onload = onFinish;\n xhr.onerror = onFinish; // improper fix to match Firefox behavior, but it is better than just ignore abort\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=768596\n // https://bugzilla.mozilla.org/show_bug.cgi?id=880200\n // https://code.google.com/p/chromium/issues/detail?id=153570\n // IE 8 fires \"onload\" without \"onprogress\n\n xhr.onabort = onFinish; // https://bugzilla.mozilla.org/show_bug.cgi?id=736723\n\n if (!('sendAsBinary' in XMLHttpRequest.prototype) && !('mozAnon' in XMLHttpRequest.prototype)) {\n xhr.onprogress = onProgress;\n } // IE 8 - 9 (XMLHTTPRequest)\n // Opera < 12\n // Firefox < 3.5\n // Firefox 3.5 - 3.6 - ? < 9.0\n // onprogress is not fired sometimes or delayed\n // see also #64\n\n\n xhr.onreadystatechange = onReadyStateChange;\n\n if ('contentType' in xhr) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + 'padding=true';\n }\n\n xhr.open(method, url, true);\n\n if ('readyState' in xhr) {\n // workaround for Opera 12 issue with \"progress\" events\n // #91\n timeout = setTimeout(function () {\n onTimeout();\n }, 0);\n }\n};\n\nXHRWrapper.prototype.abort = function () {\n this._abort(false);\n};\n\nXHRWrapper.prototype.getResponseHeader = function (name) {\n return this._contentType;\n};\n\nXHRWrapper.prototype.setRequestHeader = function (name, value) {\n var xhr = this._xhr;\n\n if ('setRequestHeader' in xhr) {\n xhr.setRequestHeader(name, value);\n }\n};\n\nXHRWrapper.prototype.getAllResponseHeaders = function () {\n return this._xhr.getAllResponseHeaders != undefined ? this._xhr.getAllResponseHeaders() : '';\n};\n\nXHRWrapper.prototype.send = function () {\n // loading indicator in Safari < ? (6), Chrome < 14, Firefox\n if (!('ontimeout' in XMLHttpRequest.prototype) && document != undefined && document.readyState != undefined && document.readyState !== 'complete') {\n var that = this;\n that._sendTimeout = setTimeout(function () {\n that._sendTimeout = 0;\n that.send();\n }, 4);\n return;\n }\n\n var xhr = this._xhr; // withCredentials should be set after \"open\" for Safari and Chrome (< 19 ?)\n\n xhr.withCredentials = this.withCredentials;\n xhr.responseType = this.responseType;\n\n try {\n // xhr.send(); throws \"Not enough arguments\" in Firefox 3.0\n xhr.send(undefined);\n } catch (error1) {\n // Safari 5.1.7, Opera 12\n throw error1;\n }\n};\n\nfunction toLowerCase(name) {\n return name.replace(/[A-Z]/g, function (c) {\n return String.fromCharCode(c.charCodeAt(0) + 0x20);\n });\n}\n\nfunction HeadersPolyfill(all) {\n // Get headers: implemented according to mozilla's example code: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders#Example\n var map = Object.create(null);\n var array = all.split('\\r\\n');\n\n for (var i = 0; i < array.length; i += 1) {\n var line = array[i];\n var parts = line.split(': ');\n var name = parts.shift();\n var value = parts.join(': ');\n map[toLowerCase(name)] = value;\n }\n\n this._map = map;\n}\n\n_c3 = HeadersPolyfill;\n\nHeadersPolyfill.prototype.get = function (name) {\n return this._map[toLowerCase(name)];\n};\n\nfunction XHRTransport() {}\n\n_c4 = XHRTransport;\n\nXHRTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n xhr.open('GET', url);\n var offset = 0;\n\n xhr.onprogress = function () {\n var responseText = xhr.responseText;\n var chunk = responseText.slice(offset);\n offset += chunk.length;\n onProgressCallback(chunk);\n };\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n var status = xhr.status;\n var statusText = xhr.statusText;\n var contentType = xhr.getResponseHeader('Content-Type');\n var headers = xhr.getAllResponseHeaders();\n onStartCallback(status, statusText, contentType, new HeadersPolyfill(headers), function () {\n xhr.abort();\n });\n } else if (xhr.readyState === 4) {\n onFinishCallback();\n }\n };\n\n xhr.withCredentials = withCredentials;\n xhr.responseType = 'text';\n\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n xhr.setRequestHeader(name, headers[name]);\n }\n }\n\n xhr.send();\n};\n\nfunction HeadersWrapper(headers) {\n this._headers = headers;\n}\n\n_c5 = HeadersWrapper;\n\nHeadersWrapper.prototype.get = function (name) {\n return this._headers.get(name);\n};\n\nfunction FetchTransport() {}\n\n_c6 = FetchTransport;\n\nFetchTransport.prototype.open = function (xhr, onStartCallback, onProgressCallback, onFinishCallback, url, withCredentials, headers) {\n var controller = new AbortController();\n var signal = controller.signal; // see #120\n\n var textDecoder = new TextDecoder();\n (0, _unfetch[\"default\"])(url, {\n headers: headers,\n credentials: withCredentials ? 'include' : 'same-origin',\n signal: signal,\n cache: 'no-store'\n }).then(function (response) {\n var reader = response.body.getReader();\n onStartCallback(response.status, response.statusText, response.headers.get('Content-Type'), new HeadersWrapper(response.headers), function () {\n controller.abort();\n reader.cancel();\n });\n return new Promise(function (resolve, reject) {\n var readNextChunk = function readNextChunk() {\n reader.read().then(function (result) {\n if (result.done) {\n // Note: bytes in textDecoder are ignored\n resolve(undefined);\n } else {\n var chunk = textDecoder.decode(result.value, {\n stream: true\n });\n onProgressCallback(chunk);\n readNextChunk();\n }\n })['catch'](function (error) {\n reject(error);\n });\n };\n\n readNextChunk();\n });\n }).then(function (result) {\n onFinishCallback();\n return result;\n }, function (error) {\n onFinishCallback();\n return Promise.reject(error);\n });\n};\n\nfunction EventTarget() {\n this._listeners = Object.create(null);\n}\n\n_c7 = EventTarget;\n\nfunction throwError(e) {\n setTimeout(function () {\n throw e;\n }, 0);\n}\n\nEventTarget.prototype.dispatchEvent = function (event) {\n event.target = this;\n var typeListeners = this._listeners[event.type];\n\n if (typeListeners != undefined) {\n var length = typeListeners.length;\n\n for (var i = 0; i < length; i += 1) {\n var listener = typeListeners[i];\n\n try {\n if (typeof listener.handleEvent === 'function') {\n listener.handleEvent(event);\n } else {\n listener.call(this, event);\n }\n } catch (e) {\n throwError(e);\n }\n }\n }\n};\n\nEventTarget.prototype.addEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners == undefined) {\n typeListeners = [];\n listeners[type] = typeListeners;\n }\n\n var found = false;\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] === listener) {\n found = true;\n }\n }\n\n if (!found) {\n typeListeners.push(listener);\n }\n};\n\nEventTarget.prototype.removeEventListener = function (type, listener) {\n type = String(type);\n var listeners = this._listeners;\n var typeListeners = listeners[type];\n\n if (typeListeners != undefined) {\n var filtered = [];\n\n for (var i = 0; i < typeListeners.length; i += 1) {\n if (typeListeners[i] !== listener) {\n filtered.push(typeListeners[i]);\n }\n }\n\n if (filtered.length === 0) {\n delete listeners[type];\n } else {\n listeners[type] = filtered;\n }\n }\n};\n\nfunction Event(type) {\n this.type = type;\n this.target = undefined;\n}\n\n_c8 = Event;\n\nfunction MessageEvent(type, options) {\n Event.call(this, type);\n this.data = options.data;\n this.lastEventId = options.lastEventId;\n}\n\n_c9 = MessageEvent;\nMessageEvent.prototype = Object.create(Event.prototype);\n\nfunction ConnectionEvent(type, options) {\n Event.call(this, type);\n this.status = options.status;\n this.statusText = options.statusText;\n this.headers = options.headers;\n}\n\n_c10 = ConnectionEvent;\nConnectionEvent.prototype = Object.create(Event.prototype);\nvar WAITING = -1;\nvar CONNECTING = 0;\nvar OPEN = 1;\nvar CLOSED = 2;\nvar AFTER_CR = -1;\nvar FIELD_START = 0;\nvar FIELD = 1;\nvar VALUE_START = 2;\nvar VALUE = 3;\nvar contentTypeRegExp = /^text\\/event\\-stream;?(\\s*charset\\=utf\\-8)?$/i;\nvar MINIMUM_DURATION = 1000;\nvar MAXIMUM_DURATION = 18000000;\n\nvar parseDuration = function parseDuration(value, def) {\n var n = parseInt(value, 10);\n\n if (n !== n) {\n n = def;\n }\n\n return clampDuration(n);\n};\n\nvar clampDuration = function clampDuration(n) {\n return Math.min(Math.max(n, MINIMUM_DURATION), MAXIMUM_DURATION);\n};\n\nvar fire = function fire(that, f, event) {\n try {\n if (typeof f === 'function') {\n f.call(that, event);\n }\n } catch (e) {\n throwError(e);\n }\n};\n\nfunction EventSourcePolyfill(url, options) {\n EventTarget.call(this);\n this.onopen = undefined;\n this.onmessage = undefined;\n this.onerror = undefined;\n this.url = undefined;\n this.readyState = undefined;\n this.withCredentials = undefined;\n this._close = undefined;\n start(this, url, options);\n}\n\n_c11 = EventSourcePolyfill;\nvar isFetchSupported = _unfetch[\"default\"] != undefined && Response != undefined && 'body' in Response.prototype;\n\nfunction start(es, url, options) {\n url = String(url);\n var withCredentials = options != undefined && Boolean(options.withCredentials);\n var initialRetry = clampDuration(1000);\n var heartbeatTimeout = options != undefined && options.heartbeatTimeout != undefined ? parseDuration(options.heartbeatTimeout, 45000) : clampDuration(45000);\n var lastEventId = '';\n var retry = initialRetry;\n var wasActivity = false;\n var headers = options != undefined && options.headers != undefined ? JSON.parse(JSON.stringify(options.headers)) : undefined;\n var CurrentTransport = options != undefined && options.Transport != undefined ? options.Transport : XMLHttpRequest;\n var xhr = isFetchSupported && !(options != undefined && options.Transport != undefined) ? undefined : new XHRWrapper(new CurrentTransport());\n var transport = xhr == undefined ? new FetchTransport() : new XHRTransport();\n var cancelFunction = undefined;\n var timeout = 0;\n var currentState = WAITING;\n var dataBuffer = '';\n var lastEventIdBuffer = '';\n var eventTypeBuffer = '';\n var textBuffer = '';\n var state = FIELD_START;\n var fieldStart = 0;\n var valueStart = 0;\n\n var onStart = function onStart(status, statusText, contentType, headers, cancel) {\n if (currentState === CONNECTING) {\n cancelFunction = cancel;\n\n if (status === 200 && contentType != undefined && contentTypeRegExp.test(contentType)) {\n currentState = OPEN;\n wasActivity = true;\n retry = initialRetry;\n es.readyState = OPEN;\n var event = new ConnectionEvent('open', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onopen, event);\n } else {\n var message = '';\n\n if (status !== 200) {\n if (statusText) {\n statusText = statusText.replace(/\\s+/g, ' ');\n }\n\n message = \"EventSource's response has a status \" + status + ' ' + statusText + ' that is not 200. Aborting the connection.';\n } else {\n message = \"EventSource's response has a Content-Type specifying an unsupported type: \" + (contentType == undefined ? '-' : contentType.replace(/\\s+/g, ' ')) + '. Aborting the connection.';\n }\n\n throwError(new Error(message));\n close();\n var event = new ConnectionEvent('error', {\n status: status,\n statusText: statusText,\n headers: headers\n });\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n }\n };\n\n var onProgress = function onProgress(textChunk) {\n if (currentState === OPEN) {\n var n = -1;\n\n for (var i = 0; i < textChunk.length; i += 1) {\n var c = textChunk.charCodeAt(i);\n\n if (c === '\\n'.charCodeAt(0) || c === '\\r'.charCodeAt(0)) {\n n = i;\n }\n }\n\n var chunk = (n !== -1 ? textBuffer : '') + textChunk.slice(0, n + 1);\n textBuffer = (n === -1 ? textBuffer : '') + textChunk.slice(n + 1);\n\n if (chunk !== '') {\n wasActivity = true;\n }\n\n for (var position = 0; position < chunk.length; position += 1) {\n var c = chunk.charCodeAt(position);\n\n if (state === AFTER_CR && c === '\\n'.charCodeAt(0)) {\n state = FIELD_START;\n } else {\n if (state === AFTER_CR) {\n state = FIELD_START;\n }\n\n if (c === '\\r'.charCodeAt(0) || c === '\\n'.charCodeAt(0)) {\n if (state !== FIELD_START) {\n if (state === FIELD) {\n valueStart = position + 1;\n }\n\n var field = chunk.slice(fieldStart, valueStart - 1);\n var value = chunk.slice(valueStart + (valueStart < position && chunk.charCodeAt(valueStart) === ' '.charCodeAt(0) ? 1 : 0), position);\n\n if (field === 'data') {\n dataBuffer += '\\n';\n dataBuffer += value;\n } else if (field === 'id') {\n lastEventIdBuffer = value;\n } else if (field === 'event') {\n eventTypeBuffer = value;\n } else if (field === 'retry') {\n initialRetry = parseDuration(value, initialRetry);\n retry = initialRetry;\n } else if (field === 'heartbeatTimeout') {\n heartbeatTimeout = parseDuration(value, heartbeatTimeout);\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n }\n }\n\n if (state === FIELD_START) {\n if (dataBuffer !== '') {\n lastEventId = lastEventIdBuffer;\n\n if (eventTypeBuffer === '') {\n eventTypeBuffer = 'message';\n }\n\n var event = new MessageEvent(eventTypeBuffer, {\n data: dataBuffer.slice(1),\n lastEventId: lastEventIdBuffer\n });\n es.dispatchEvent(event);\n\n if (eventTypeBuffer === 'message') {\n fire(es, es.onmessage, event);\n }\n\n if (currentState === CLOSED) {\n return;\n }\n }\n\n dataBuffer = '';\n eventTypeBuffer = '';\n }\n\n state = c === '\\r'.charCodeAt(0) ? AFTER_CR : FIELD_START;\n } else {\n if (state === FIELD_START) {\n fieldStart = position;\n state = FIELD;\n }\n\n if (state === FIELD) {\n if (c === ':'.charCodeAt(0)) {\n valueStart = position + 1;\n state = VALUE_START;\n }\n } else if (state === VALUE_START) {\n state = VALUE;\n }\n }\n }\n }\n }\n };\n\n var onFinish = function onFinish() {\n if (currentState === OPEN || currentState === CONNECTING) {\n currentState = WAITING;\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n timeout = setTimeout(function () {\n onTimeout();\n }, retry);\n retry = clampDuration(Math.min(initialRetry * 16, retry * 2));\n es.readyState = CONNECTING;\n var event = new Event('error');\n es.dispatchEvent(event);\n fire(es, es.onerror, event);\n }\n };\n\n var close = function close() {\n currentState = CLOSED;\n\n if (cancelFunction != undefined) {\n cancelFunction();\n cancelFunction = undefined;\n }\n\n if (timeout !== 0) {\n clearTimeout(timeout);\n timeout = 0;\n }\n\n es.readyState = CLOSED;\n };\n\n var onTimeout = function onTimeout() {\n timeout = 0;\n\n if (currentState !== WAITING) {\n if (!wasActivity && cancelFunction != undefined) {\n throwError(new Error('No activity within ' + heartbeatTimeout + ' milliseconds. Reconnecting.'));\n cancelFunction();\n cancelFunction = undefined;\n } else {\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n }\n\n return;\n }\n\n wasActivity = false;\n timeout = setTimeout(function () {\n onTimeout();\n }, heartbeatTimeout);\n currentState = CONNECTING;\n dataBuffer = '';\n eventTypeBuffer = '';\n lastEventIdBuffer = lastEventId;\n textBuffer = '';\n fieldStart = 0;\n valueStart = 0;\n state = FIELD_START; // https://bugzilla.mozilla.org/show_bug.cgi?id=428916\n // Request header field Last-Event-ID is not allowed by Access-Control-Allow-Headers.\n\n var requestURL = url;\n\n if (url.slice(0, 5) !== 'data:' && url.slice(0, 5) !== 'blob:') {\n if (lastEventId !== '') {\n requestURL += (url.indexOf('?') === -1 ? '?' : '&') + 'lastEventId=' + encodeURIComponent(lastEventId);\n }\n }\n\n var requestHeaders = {};\n requestHeaders['Accept'] = 'text/event-stream';\n\n if (headers != undefined) {\n for (var name in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, name)) {\n requestHeaders[name] = headers[name];\n }\n }\n }\n\n try {\n transport.open(xhr, onStart, onProgress, onFinish, requestURL, withCredentials, requestHeaders);\n } catch (error) {\n close();\n throw error;\n }\n };\n\n es.url = url;\n es.readyState = CONNECTING;\n es.withCredentials = withCredentials;\n es._close = close;\n onTimeout();\n}\n\nEventSourcePolyfill.prototype = Object.create(EventTarget.prototype);\nEventSourcePolyfill.prototype.CONNECTING = CONNECTING;\nEventSourcePolyfill.prototype.OPEN = OPEN;\nEventSourcePolyfill.prototype.CLOSED = CLOSED;\n\nEventSourcePolyfill.prototype.close = function () {\n this._close();\n};\n\nEventSourcePolyfill.CONNECTING = CONNECTING;\nEventSourcePolyfill.OPEN = OPEN;\nEventSourcePolyfill.CLOSED = CLOSED;\nEventSourcePolyfill.prototype.withCredentials = undefined;\nvar _default = EventSourcePolyfill;\nexports[\"default\"] = _default;\n\nvar _c, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11;\n\n$RefreshReg$(_c, \"TextDecoderPolyfill\");\n$RefreshReg$(_c2, \"XHRWrapper\");\n$RefreshReg$(_c3, \"HeadersPolyfill\");\n$RefreshReg$(_c4, \"XHRTransport\");\n$RefreshReg$(_c5, \"HeadersWrapper\");\n$RefreshReg$(_c6, \"FetchTransport\");\n$RefreshReg$(_c7, \"EventTarget\");\n$RefreshReg$(_c8, \"Event\");\n$RefreshReg$(_c9, \"MessageEvent\");\n$RefreshReg$(_c10, \"ConnectionEvent\");\n$RefreshReg$(_c11, \"EventSourcePolyfill\");","map":{"version":3,"sources":["../../../client/dev/event-source-polyfill.js"],"names":["document","window","Response","TextDecoder","TextEncoder","AbortController","TextDecoderPolyfill","octetsCount","codePoint","bitsNeeded","REPLACER","string","i","octets","octet","valid","String","supportsStreamOption","stream","console","k","that","xhr","state","timeout","clearTimeout","onStart","status","statusText","contentType","onProgress","responseText","onFinish","onReadyStateChange","onTimeout","setTimeout","XMLHttpRequest","url","XHRWrapper","name","c","map","Object","array","all","line","parts","value","toLowerCase","HeadersPolyfill","XHRTransport","offset","chunk","onProgressCallback","headers","onStartCallback","onFinishCallback","HeadersWrapper","controller","signal","textDecoder","credentials","withCredentials","cache","reader","response","readNextChunk","result","resolve","reject","Promise","EventTarget","event","typeListeners","length","listener","throwError","type","listeners","found","filtered","Event","options","MessageEvent","ConnectionEvent","WAITING","CONNECTING","OPEN","CLOSED","AFTER_CR","FIELD_START","FIELD","VALUE_START","VALUE","contentTypeRegExp","MINIMUM_DURATION","MAXIMUM_DURATION","parseDuration","n","parseInt","clampDuration","Math","fire","f","start","isFetchSupported","fetch","Boolean","initialRetry","heartbeatTimeout","lastEventId","retry","wasActivity","JSON","CurrentTransport","transport","cancelFunction","currentState","dataBuffer","lastEventIdBuffer","eventTypeBuffer","textBuffer","fieldStart","valueStart","es","message","close","textChunk","position","field","data","requestURL","encodeURIComponent","requestHeaders","EventSourcePolyfill"],"mappings":"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