{"version":3,"sources":["webpack:///./node_modules/@aspnet/signalr/dist/esm/XhrHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/IHubProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/DefaultHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ITransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/AbortController.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/LongPollingTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ServerSentEventsTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/WebSocketTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/JsonHubProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnectionBuilder.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/index.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ILogger.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Errors.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Utils.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Loggers.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/TextMessageFormat.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/NodeHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HandshakeProtocol.js"],"names":["extendStatics","MessageType","__extends","Object","setPrototypeOf","__proto__","Array","d","b","p","hasOwnProperty","__","this","constructor","prototype","create","_super","XhrHttpClient","logger","_this","call","send","request","abortSignal","aborted","Promise","reject","method","url","resolve","xhr","XMLHttpRequest","open","withCredentials","setRequestHeader","headers","keys","forEach","header","responseType","onabort","abort","timeout","onload","status","statusText","response","responseText","onerror","log","Warning","ontimeout","content","Error","HttpClient","DefaultHttpClient","httpClient","NodeHttpClient","getCookieString","HubConnectionState","__awaiter","thisArg","_arguments","P","generator","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","n","v","op","TypeError","pop","length","push","HttpTransportType","TransferFormat","HubConnection","connection","protocol","isRequired","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","HandshakeProtocol","onreceive","data","processIncomingData","onclose","error","connectionClosed","callbacks","methods","closedCallbacks","id","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","type","Ping","defineProperty","get","enumerable","configurable","start","handshakeRequest","handshakePromise","_a","name","version","Debug","handshakeResolver","handshakeRejecter","transferFormat","sendMessage","writeHandshakeRequest","Information","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","Connected","stop","cleanupPingTimer","stream","methodName","args","_i","arguments","promiseQueue","invocationDescriptor","createStreamInvocation","subject","cancelCallback","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","invocationEvent","Completion","complete","message","catch","createInvocation","invoke","on","newMethod","toLowerCase","indexOf","off","handlers","removeIdx","splice","callback","processHandshakeResponse","messages_1","parseMessages","Invocation","invokeClientMethod","StreamItem","Close","undefined","responseMessage","remainingData","parseHandshakeResponse","pingServerHandle","setTimeout","_b","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","target","m","key","c","clearTimeout","nonblocking","toString","StreamInvocation","CancelInvocation","AbortController","isAborted","LongPollingTransport","accessTokenFactory","logMessageContent","pollAbort","running","connect","pollOptions","token","pollUrl","isIn","Trace","Binary","signal","getAccessToken","updateHeaderToken","Date","now","statusCode","closeError","receiving","poll","e_1","pollAborted","raiseOnClose","deleteOptions","delete","logMessage","ServerSentEventsTransport","eventSourceConstructor","encodeURIComponent","opened","Text","eventSource","window","cookies","Cookie","onmessage","close","onopen","WebSocketTransport","webSocketConstructor","webSocket","replace","binaryType","_event","event","ErrorEvent","readyState","OPEN","wasClean","code","reason","WebSocketModule","EventSourceModule","requireFunc","HttpConnection","options","baseUrl","resolveUrl","isNode","WebSocket","EventSource","startPromise","startInternal","transport","stopError","negotiateResponse","redirects","_loop_1","this_1","state_1","e_2","skipNegotiation","WebSockets","constructTransport","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","stopConnection","changeState","negotiateUrl","e_3","resolveNegotiateUrl","post","JSON","parse","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","transports","transports_1","endpoint","ex_1","isITransport","availableTransports","resolveTransport","ServerSentEvents","LongPolling","transferFormats","map","s","actualTransport","transportMatches","from","to","lastIndexOf","document","aTag","createElement","href","index","substring","JsonHubProtocol","input","instance","hubMessages","TextMessageFormat","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","write","stringify","assertNotEmptyString","item","errorMessage","HubConnectionBuilder","configureLogging","logging","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","build","VERSION","LogLevel","HttpError","trueProto","TimeoutError","AbortError","Arg","val","values","getDataDetail","includeContent","detail","isArrayBuffer","byteLength","view","Uint8Array","str","num","substr","formatArrayBuffer","ArrayBuffer","transportName","createLogger","ConsoleLogger","Subject","observers","err","observer","subscribe","SubjectSubscription","dispose","minimumLogLevel","logLevel","Critical","console","toISOString","warn","info","__assign","assign","i","HttpResponse","NullLogger","_logLevel","_message","output","RecordSeparator","messages","split","RecordSeparatorCode","String","fromCharCode","requestModule","cookieJar","jar","defaults","httpRequest","requestBody","Buffer","currentRequest","encoding","statusMessage","messageData","binaryData","separatorIndex","responseLength","slice","buffer","textData"],"mappings":"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","file":"chunks/vendors~signalR.chunk.a116cdc158f21906db67.js","sourcesContent":["// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nvar XhrHttpClient = /** @class */ (function (_super) {\r\n __extends(XhrHttpClient, _super);\r\n function XhrHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n _this.logger = logger;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n XhrHttpClient.prototype.send = function (request) {\r\n var _this = this;\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = true;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n var headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach(function (header) {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = function () {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = function () {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + xhr.status + \": \" + xhr.statusText + \".\");\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = function () {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n };\r\n return XhrHttpClient;\r\n}(HttpClient));\r\nexport { XhrHttpClient };\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @aspnet/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @aspnet/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @aspnet/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @aspnet/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @aspnet/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @aspnet/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @aspnet/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError } from \"./Errors\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { NodeHttpClient } from \"./NodeHttpClient\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @aspnet/signalr.HttpClient}. */\r\nvar DefaultHttpClient = /** @class */ (function (_super) {\r\n __extends(DefaultHttpClient, _super);\r\n /** Creates a new instance of the {@link @aspnet/signalr.DefaultHttpClient}, using the provided {@link @aspnet/signalr.ILogger} to log messages. */\r\n function DefaultHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof XMLHttpRequest !== \"undefined\") {\r\n _this.httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n _this.httpClient = new NodeHttpClient(logger);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n DefaultHttpClient.prototype.send = function (request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this.httpClient.send(request);\r\n };\r\n DefaultHttpClient.prototype.getCookieString = function (url) {\r\n return this.httpClient.getCookieString(url);\r\n };\r\n return DefaultHttpClient;\r\n}(HttpClient));\r\nexport { DefaultHttpClient };\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Arg, Subject } from \"./Utils\";\r\nvar DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nvar DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[HubConnectionState[\"Disconnected\"] = 0] = \"Disconnected\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[HubConnectionState[\"Connected\"] = 1] = \"Connected\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nvar HubConnection = /** @class */ (function () {\r\n function HubConnection(connection, logger, protocol) {\r\n var _this = this;\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this.logger = logger;\r\n this.protocol = protocol;\r\n this.connection = connection;\r\n this.handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = function (data) { return _this.processIncomingData(data); };\r\n this.connection.onclose = function (error) { return _this.connectionClosed(error); };\r\n this.callbacks = {};\r\n this.methods = {};\r\n this.closedCallbacks = [];\r\n this.id = 0;\r\n this.receivedHandshakeResponse = false;\r\n this.connectionState = HubConnectionState.Disconnected;\r\n this.cachedPingMessage = this.protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n HubConnection.create = function (connection, logger, protocol) {\r\n return new HubConnection(connection, logger, protocol);\r\n };\r\n Object.defineProperty(HubConnection.prototype, \"state\", {\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get: function () {\r\n return this.connectionState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n HubConnection.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var handshakeRequest, handshakePromise;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n handshakeRequest = {\r\n protocol: this.protocol.name,\r\n version: this.protocol.version,\r\n };\r\n this.logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n this.receivedHandshakeResponse = false;\r\n handshakePromise = new Promise(function (resolve, reject) {\r\n _this.handshakeResolver = resolve;\r\n _this.handshakeRejecter = reject;\r\n });\r\n return [4 /*yield*/, this.connection.start(this.protocol.transferFormat)];\r\n case 1:\r\n _a.sent();\r\n this.logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n return [4 /*yield*/, this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest))];\r\n case 2:\r\n _a.sent();\r\n this.logger.log(LogLevel.Information, \"Using HubProtocol '\" + this.protocol.name + \"'.\");\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this.cleanupTimeout();\r\n this.resetTimeoutPeriod();\r\n this.resetKeepAliveInterval();\r\n // Wait for the handshake to complete before marking connection as connected\r\n return [4 /*yield*/, handshakePromise];\r\n case 3:\r\n // Wait for the handshake to complete before marking connection as connected\r\n _a.sent();\r\n this.connectionState = HubConnectionState.Connected;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n HubConnection.prototype.stop = function () {\r\n this.logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n return this.connection.stop();\r\n };\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n HubConnection.prototype.stream = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createStreamInvocation(methodName, args);\r\n var promiseQueue;\r\n var subject = new Subject();\r\n subject.cancelCallback = function () {\r\n var cancelInvocation = _this.createCancelInvocation(invocationDescriptor.invocationId);\r\n var cancelMessage = _this.protocol.writeMessage(cancelInvocation);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(function () {\r\n return _this.sendMessage(cancelMessage);\r\n });\r\n };\r\n this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n promiseQueue = this.sendMessage(message)\r\n .catch(function (e) {\r\n subject.error(e);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n return subject;\r\n };\r\n HubConnection.prototype.sendMessage = function (message) {\r\n this.resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n HubConnection.prototype.send = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, true);\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n return this.sendMessage(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n HubConnection.prototype.invoke = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, false);\r\n var p = new Promise(function (resolve, reject) {\r\n // invocationId will always have a value for a non-blocking invocation\r\n _this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(\"Unexpected message type: \" + invocationEvent.type));\r\n }\r\n }\r\n };\r\n var message = _this.protocol.writeMessage(invocationDescriptor);\r\n _this.sendMessage(message)\r\n .catch(function (e) {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n });\r\n return p;\r\n };\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n HubConnection.prototype.on = function (methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this.methods[methodName]) {\r\n this.methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this.methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this.methods[methodName].push(newMethod);\r\n };\r\n HubConnection.prototype.off = function (methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n var handlers = this.methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n var removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this.methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this.methods[methodName];\r\n }\r\n };\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n HubConnection.prototype.onclose = function (callback) {\r\n if (callback) {\r\n this.closedCallbacks.push(callback);\r\n }\r\n };\r\n HubConnection.prototype.processIncomingData = function (data) {\r\n this.cleanupTimeout();\r\n if (!this.receivedHandshakeResponse) {\r\n data = this.processHandshakeResponse(data);\r\n this.receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n var messages = this.protocol.parseMessages(data, this.logger);\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this.invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n var callback = this.callbacks[message.invocationId];\r\n if (callback != null) {\r\n if (message.type === MessageType.Completion) {\r\n delete this.callbacks[message.invocationId];\r\n }\r\n callback(message);\r\n }\r\n break;\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close:\r\n this.logger.log(LogLevel.Information, \"Close message received from server.\");\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined);\r\n break;\r\n default:\r\n this.logger.log(LogLevel.Warning, \"Invalid message type: \" + message.type + \".\");\r\n break;\r\n }\r\n }\r\n }\r\n this.resetTimeoutPeriod();\r\n };\r\n HubConnection.prototype.processHandshakeResponse = function (data) {\r\n var _a;\r\n var responseMessage;\r\n var remainingData;\r\n try {\r\n _a = this.handshakeProtocol.parseHandshakeResponse(data), remainingData = _a[0], responseMessage = _a[1];\r\n }\r\n catch (e) {\r\n var message = \"Error parsing handshake response: \" + e;\r\n this.logger.log(LogLevel.Error, message);\r\n var error = new Error(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(error);\r\n this.handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n var message = \"Server returned handshake error: \" + responseMessage.error;\r\n this.logger.log(LogLevel.Error, message);\r\n this.handshakeRejecter(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n throw new Error(message);\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this.handshakeResolver();\r\n return remainingData;\r\n };\r\n HubConnection.prototype.resetKeepAliveInterval = function () {\r\n var _this = this;\r\n this.cleanupPingTimer();\r\n this.pingServerHandle = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!(this.connectionState === HubConnectionState.Connected)) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.sendMessage(this.cachedPingMessage)];\r\n case 2:\r\n _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a = _b.sent();\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this.cleanupPingTimer();\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); }, this.keepAliveIntervalInMilliseconds);\r\n };\r\n HubConnection.prototype.resetTimeoutPeriod = function () {\r\n var _this = this;\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this.timeoutHandle = setTimeout(function () { return _this.serverTimeout(); }, this.serverTimeoutInMilliseconds);\r\n }\r\n };\r\n HubConnection.prototype.serverTimeout = function () {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n };\r\n HubConnection.prototype.invokeClientMethod = function (invocationMessage) {\r\n var _this = this;\r\n var methods = this.methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n methods.forEach(function (m) { return m.apply(_this, invocationMessage.arguments); });\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n var message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this.logger.log(LogLevel.Error, message);\r\n // We don't need to wait on this Promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Warning, \"No client method with the name '\" + invocationMessage.target + \"' found.\");\r\n }\r\n };\r\n HubConnection.prototype.connectionClosed = function (error) {\r\n var _this = this;\r\n var callbacks = this.callbacks;\r\n this.callbacks = {};\r\n this.connectionState = HubConnectionState.Disconnected;\r\n // if handshake is in progress start will be waiting for the handshake promise, so we complete it\r\n // if it has already completed this should just noop\r\n if (this.handshakeRejecter) {\r\n this.handshakeRejecter(error);\r\n }\r\n Object.keys(callbacks)\r\n .forEach(function (key) {\r\n var callback = callbacks[key];\r\n callback(null, error ? error : new Error(\"Invocation canceled due to connection being closed.\"));\r\n });\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n this.closedCallbacks.forEach(function (c) { return c.apply(_this, [error]); });\r\n };\r\n HubConnection.prototype.cleanupPingTimer = function () {\r\n if (this.pingServerHandle) {\r\n clearTimeout(this.pingServerHandle);\r\n }\r\n };\r\n HubConnection.prototype.cleanupTimeout = function () {\r\n if (this.timeoutHandle) {\r\n clearTimeout(this.timeoutHandle);\r\n }\r\n };\r\n HubConnection.prototype.createInvocation = function (methodName, args, nonblocking) {\r\n if (nonblocking) {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n };\r\n HubConnection.prototype.createStreamInvocation = function (methodName, args) {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n };\r\n HubConnection.prototype.createCancelInvocation = function (id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n };\r\n return HubConnection;\r\n}());\r\nexport { HubConnection };\r\n//# sourceMappingURL=HubConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nvar AbortController = /** @class */ (function () {\r\n function AbortController() {\r\n this.isAborted = false;\r\n this.onabort = null;\r\n }\r\n AbortController.prototype.abort = function () {\r\n if (!this.isAborted) {\r\n this.isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AbortController.prototype, \"signal\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbortController.prototype, \"aborted\", {\r\n get: function () {\r\n return this.isAborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbortController;\r\n}());\r\nexport { AbortController };\r\n//# sourceMappingURL=AbortController.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nvar LongPollingTransport = /** @class */ (function () {\r\n function LongPollingTransport(httpClient, accessTokenFactory, logger, logMessageContent) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.pollAbort = new AbortController();\r\n this.logMessageContent = logMessageContent;\r\n this.running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n Object.defineProperty(LongPollingTransport.prototype, \"pollAborted\", {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get: function () {\r\n return this.pollAbort.aborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LongPollingTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pollOptions, token, pollUrl, response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.url = url;\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n pollOptions = {\r\n abortSignal: this.pollAbort.signal,\r\n headers: {},\r\n timeout: 100000,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 1:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 2:\r\n response = _a.sent();\r\n if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n this.running = true;\r\n }\r\n this.receiving = this.poll(this.url, pollOptions);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.getAccessToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.updateHeaderToken = function (request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n // tslint:disable-next-line:no-string-literal\r\n request.headers[\"Authorization\"] = \"Bearer \" + token;\r\n return;\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (request.headers[\"Authorization\"]) {\r\n // tslint:disable-next-line:no-string-literal\r\n delete request.headers[\"Authorization\"];\r\n }\r\n };\r\n LongPollingTransport.prototype.poll = function (url, pollOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token, pollUrl, response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, , 8, 9]);\r\n _a.label = 1;\r\n case 1:\r\n if (!this.running) return [3 /*break*/, 7];\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 2:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 4:\r\n response = _a.sent();\r\n if (response.statusCode === 204) {\r\n this.logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this.running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Unexpected status code\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) data received. \" + getDataDetail(response.content, this.logMessageContent) + \".\");\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (!this.running) {\r\n // Log but disregard errors that occur after stopping\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll errored after shutdown: \" + e_1.message);\r\n }\r\n else {\r\n if (e_1 instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this.closeError = e_1;\r\n this.running = false;\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 6: return [3 /*break*/, 1];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this.raiseOnClose();\r\n }\r\n return [7 /*endfinally*/];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.running) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"LongPolling\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var deleteOptions, token;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this.running = false;\r\n this.pollAbort.abort();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 5, 6]);\r\n return [4 /*yield*/, this.receiving];\r\n case 2:\r\n _a.sent();\r\n // Send DELETE to clean up long polling on the server\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) sending DELETE request to \" + this.url + \".\");\r\n deleteOptions = {\r\n headers: {},\r\n };\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 3:\r\n token = _a.sent();\r\n this.updateHeaderToken(deleteOptions, token);\r\n return [4 /*yield*/, this.httpClient.delete(this.url, deleteOptions)];\r\n case 4:\r\n _a.sent();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this.raiseOnClose();\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.raiseOnClose = function () {\r\n if (this.onclose) {\r\n var logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this.closeError) {\r\n logMessage += \" Error: \" + this.closeError;\r\n }\r\n this.logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this.closeError);\r\n }\r\n };\r\n return LongPollingTransport;\r\n}());\r\nexport { LongPollingTransport };\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n/** @private */\r\nvar ServerSentEventsTransport = /** @class */ (function () {\r\n function ServerSentEventsTransport(httpClient, accessTokenFactory, logger, logMessageContent, eventSourceConstructor) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.logMessageContent = logMessageContent;\r\n this.eventSourceConstructor = eventSourceConstructor;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n ServerSentEventsTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this.url = url;\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n var eventSource;\r\n if (typeof window !== \"undefined\") {\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n var cookies = _this.httpClient.getCookieString(url);\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true, headers: { Cookie: cookies } });\r\n }\r\n try {\r\n eventSource.onmessage = function (e) {\r\n if (_this.onreceive) {\r\n try {\r\n _this.logger.log(LogLevel.Trace, \"(SSE transport) data received. \" + getDataDetail(e.data, _this.logMessageContent) + \".\");\r\n _this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n _this.close(error);\r\n return;\r\n }\r\n }\r\n };\r\n eventSource.onerror = function (e) {\r\n var error = new Error(e.data || \"Error occurred\");\r\n if (opened) {\r\n _this.close(error);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n };\r\n eventSource.onopen = function () {\r\n _this.logger.log(LogLevel.Information, \"SSE connected to \" + _this.url);\r\n _this.eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.eventSource) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"SSE\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.stop = function () {\r\n this.close();\r\n return Promise.resolve();\r\n };\r\n ServerSentEventsTransport.prototype.close = function (e) {\r\n if (this.eventSource) {\r\n this.eventSource.close();\r\n this.eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n };\r\n return ServerSentEventsTransport;\r\n}());\r\nexport { ServerSentEventsTransport };\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail } from \"./Utils\";\r\n/** @private */\r\nvar WebSocketTransport = /** @class */ (function () {\r\n function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor) {\r\n this.logger = logger;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logMessageContent = logMessageContent;\r\n this.webSocketConstructor = webSocketConstructor;\r\n this.httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n WebSocketTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n url = url.replace(/^http/, \"ws\");\r\n var webSocket;\r\n var cookies = _this.httpClient.getCookieString(url);\r\n if (typeof window === \"undefined\" && cookies) {\r\n // Only pass cookies when in non-browser environments\r\n webSocket = new _this.webSocketConstructor(url, undefined, {\r\n headers: {\r\n Cookie: \"\" + cookies,\r\n },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new _this.webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n // tslint:disable-next-line:variable-name\r\n webSocket.onopen = function (_event) {\r\n _this.logger.log(LogLevel.Information, \"WebSocket connected to \" + url + \".\");\r\n _this.webSocket = webSocket;\r\n resolve();\r\n };\r\n webSocket.onerror = function (event) {\r\n var error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n reject(error);\r\n };\r\n webSocket.onmessage = function (message) {\r\n _this.logger.log(LogLevel.Trace, \"(WebSockets transport) data received. \" + getDataDetail(message.data, _this.logMessageContent) + \".\");\r\n if (_this.onreceive) {\r\n _this.onreceive(message.data);\r\n }\r\n };\r\n webSocket.onclose = function (event) { return _this.close(event); };\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n WebSocketTransport.prototype.send = function (data) {\r\n if (this.webSocket && this.webSocket.readyState === this.webSocketConstructor.OPEN) {\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) sending data. \" + getDataDetail(data, this.logMessageContent) + \".\");\r\n this.webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n };\r\n WebSocketTransport.prototype.stop = function () {\r\n if (this.webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this.webSocket.onclose = function () { };\r\n this.webSocket.onmessage = function () { };\r\n this.webSocket.onerror = function () { };\r\n this.webSocket.close();\r\n this.webSocket = undefined;\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this.close(undefined);\r\n }\r\n return Promise.resolve();\r\n };\r\n WebSocketTransport.prototype.close = function (event) {\r\n // webSocket will be null if the transport did not start successfully\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (event && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(\"WebSocket closed with status code: \" + event.code + \" (\" + event.reason + \").\"));\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n return WebSocketTransport;\r\n}());\r\nexport { WebSocketTransport };\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nvar MAX_REDIRECTS = 100;\r\nvar WebSocketModule = null;\r\nvar EventSourceModule = null;\r\nif (typeof window === \"undefined\" && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n WebSocketModule = requireFunc(\"ws\");\r\n EventSourceModule = requireFunc(\"eventsource\");\r\n}\r\n/** @private */\r\nvar HttpConnection = /** @class */ (function () {\r\n function HttpConnection(url, options) {\r\n if (options === void 0) { options = {}; }\r\n this.features = {};\r\n Arg.isRequired(url, \"url\");\r\n this.logger = createLogger(options.logger);\r\n this.baseUrl = this.resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent || false;\r\n var isNode = typeof window === \"undefined\";\r\n if (!isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (isNode && !options.WebSocket) {\r\n if (WebSocketModule) {\r\n options.WebSocket = WebSocketModule;\r\n }\r\n }\r\n if (!isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (isNode && !options.EventSource) {\r\n if (typeof EventSourceModule !== \"undefined\") {\r\n options.EventSource = EventSourceModule;\r\n }\r\n }\r\n this.httpClient = options.httpClient || new DefaultHttpClient(this.logger);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n HttpConnection.prototype.start = function (transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Debug, \"Starting connection with transfer format '\" + TransferFormat[transferFormat] + \"'.\");\r\n if (this.connectionState !== 2 /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start a connection that is not in the 'Disconnected' state.\"));\r\n }\r\n this.connectionState = 0 /* Connecting */;\r\n this.startPromise = this.startInternal(transferFormat);\r\n return this.startPromise;\r\n };\r\n HttpConnection.prototype.send = function (data) {\r\n if (this.connectionState !== 1 /* Connected */) {\r\n throw new Error(\"Cannot send data if the connection is not in the 'Connected' State.\");\r\n }\r\n // Transport will not be null if state is connected\r\n return this.transport.send(data);\r\n };\r\n HttpConnection.prototype.stop = function (error) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.connectionState = 2 /* Disconnected */;\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this.stopError = error;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.startPromise];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (!this.transport) return [3 /*break*/, 6];\r\n return [4 /*yield*/, this.transport.stop()];\r\n case 5:\r\n _a.sent();\r\n this.transport = undefined;\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.startInternal = function (transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, negotiateResponse, redirects, _loop_1, this_1, state_1, e_2;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = this.baseUrl;\r\n this.accessTokenFactory = this.options.accessTokenFactory;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 12, , 13]);\r\n if (!this.options.skipNegotiation) return [3 /*break*/, 5];\r\n if (!(this.options.transport === HttpTransportType.WebSockets)) return [3 /*break*/, 3];\r\n // No need to add a connection ID in this case\r\n this.transport = this.constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n return [4 /*yield*/, this.transport.connect(url, transferFormat)];\r\n case 2:\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3: throw Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n case 4: return [3 /*break*/, 11];\r\n case 5:\r\n negotiateResponse = null;\r\n redirects = 0;\r\n _loop_1 = function () {\r\n var accessToken_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this_1.getNegotiationResponse(url)];\r\n case 1:\r\n negotiateResponse = _a.sent();\r\n // the user tries to stop the connection when it is being started\r\n if (this_1.connectionState === 2 /* Disconnected */) {\r\n return [2 /*return*/, { value: void 0 }];\r\n }\r\n if (negotiateResponse.error) {\r\n throw Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n accessToken_1 = negotiateResponse.accessToken;\r\n this_1.accessTokenFactory = function () { return accessToken_1; };\r\n }\r\n redirects++;\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n _a.label = 6;\r\n case 6: return [5 /*yield**/, _loop_1()];\r\n case 7:\r\n state_1 = _a.sent();\r\n if (typeof state_1 === \"object\")\r\n return [2 /*return*/, state_1.value];\r\n _a.label = 8;\r\n case 8:\r\n if (negotiateResponse.url && redirects < MAX_REDIRECTS) return [3 /*break*/, 6];\r\n _a.label = 9;\r\n case 9:\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n return [4 /*yield*/, this.createTransport(url, this.options.transport, negotiateResponse, transferFormat)];\r\n case 10:\r\n _a.sent();\r\n _a.label = 11;\r\n case 11:\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = function (e) { return _this.stopConnection(e); };\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [3 /*break*/, 13];\r\n case 12:\r\n e_2 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the connection: \" + e_2);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.transport = undefined;\r\n throw e_2;\r\n case 13: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.getNegotiationResponse = function (url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, negotiateUrl, response, e_3;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n negotiateUrl = this.resolveNegotiateUrl(url);\r\n this.logger.log(LogLevel.Debug, \"Sending negotiation request: \" + negotiateUrl + \".\");\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n return [4 /*yield*/, this.httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: headers,\r\n })];\r\n case 4:\r\n response = _b.sent();\r\n if (response.statusCode !== 200) {\r\n throw Error(\"Unexpected status code returned from negotiate \" + response.statusCode);\r\n }\r\n return [2 /*return*/, JSON.parse(response.content)];\r\n case 5:\r\n e_3 = _b.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to complete negotiation with the server: \" + e_3);\r\n throw e_3;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.createConnectUrl = function (url, connectionId) {\r\n if (!connectionId) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + (\"id=\" + connectionId);\r\n };\r\n HttpConnection.prototype.createTransport = function (url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var connectUrl, transports, _i, transports_1, endpoint, transport, ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n if (!this.isITransport(requestedTransport)) return [3 /*break*/, 2];\r\n this.logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 1:\r\n _a.sent();\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 2:\r\n transports = negotiateResponse.availableTransports || [];\r\n _i = 0, transports_1 = transports;\r\n _a.label = 3;\r\n case 3:\r\n if (!(_i < transports_1.length)) return [3 /*break*/, 9];\r\n endpoint = transports_1[_i];\r\n this.connectionState = 0 /* Connecting */;\r\n transport = this.resolveTransport(endpoint, requestedTransport, requestedTransferFormat);\r\n if (!(typeof transport === \"number\")) return [3 /*break*/, 8];\r\n this.transport = this.constructTransport(transport);\r\n if (!!negotiateResponse.connectionId) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getNegotiationResponse(url)];\r\n case 4:\r\n negotiateResponse = _a.sent();\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 6:\r\n _a.sent();\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 7:\r\n ex_1 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the transport '\" + HttpTransportType[transport] + \"': \" + ex_1);\r\n this.connectionState = 2 /* Disconnected */;\r\n negotiateResponse.connectionId = undefined;\r\n return [3 /*break*/, 8];\r\n case 8:\r\n _i++;\r\n return [3 /*break*/, 3];\r\n case 9: throw new Error(\"Unable to initialize any of the available transports.\");\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.constructTransport = function (transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this.options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.WebSocket);\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this.options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.EventSource);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false);\r\n default:\r\n throw new Error(\"Unknown transport: \" + transport + \".\");\r\n }\r\n };\r\n HttpConnection.prototype.resolveTransport = function (endpoint, requestedTransport, requestedTransferFormat) {\r\n var transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + endpoint.transport + \"' because it is not supported by this client.\");\r\n }\r\n else {\r\n var transferFormats = endpoint.transferFormats.map(function (s) { return TransferFormat[s]; });\r\n if (transportMatches(requestedTransport, transport)) {\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this.options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this.options.EventSource)) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it is not supported in your environment.'\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Selecting transport '\" + HttpTransportType[transport] + \"'.\");\r\n return transport;\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it does not support the requested transfer format '\" + TransferFormat[requestedTransferFormat] + \"'.\");\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it was disabled by the client.\");\r\n }\r\n }\r\n return null;\r\n };\r\n HttpConnection.prototype.isITransport = function (transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n };\r\n HttpConnection.prototype.changeState = function (from, to) {\r\n if (this.connectionState === from) {\r\n this.connectionState = to;\r\n return true;\r\n }\r\n return false;\r\n };\r\n HttpConnection.prototype.stopConnection = function (error) {\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this.stopError || error;\r\n if (error) {\r\n this.logger.log(LogLevel.Error, \"Connection disconnected with error '\" + error + \"'.\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n this.connectionState = 2 /* Disconnected */;\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n };\r\n HttpConnection.prototype.resolveUrl = function (url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (typeof window === \"undefined\" || !window || !window.document) {\r\n throw new Error(\"Cannot resolve '\" + url + \"'.\");\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n var aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this.logger.log(LogLevel.Information, \"Normalizing '\" + url + \"' to '\" + aTag.href + \"'.\");\r\n return aTag.href;\r\n };\r\n HttpConnection.prototype.resolveNegotiateUrl = function (url) {\r\n var index = url.indexOf(\"?\");\r\n var negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n return negotiateUrl;\r\n };\r\n return HttpConnection;\r\n}());\r\nexport { HttpConnection };\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nvar JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nvar JsonHubProtocol = /** @class */ (function () {\r\n function JsonHubProtocol() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n JsonHubProtocol.prototype.parseMessages = function (input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n var messages = TextMessageFormat.parse(input);\r\n var hubMessages = [];\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n var parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this.isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this.isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this.isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n };\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n JsonHubProtocol.prototype.writeMessage = function (message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n };\r\n JsonHubProtocol.prototype.isInvocationMessage = function (message) {\r\n this.assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isStreamItemMessage = function (message) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isCompletionMessage = function (message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this.assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n };\r\n JsonHubProtocol.prototype.assertNotEmptyString = function (value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n };\r\n return JsonHubProtocol;\r\n}());\r\nexport { JsonHubProtocol };\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n/** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */\r\nvar HubConnectionBuilder = /** @class */ (function () {\r\n function HubConnectionBuilder() {\r\n }\r\n HubConnectionBuilder.prototype.configureLogging = function (logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n };\r\n HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = transportTypeOrOptions;\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n };\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.\r\n */\r\n HubConnectionBuilder.prototype.withHubProtocol = function (protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n };\r\n /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.\r\n */\r\n HubConnectionBuilder.prototype.build = function () {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n var httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n var connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol());\r\n };\r\n return HubConnectionBuilder;\r\n}());\r\nexport { HubConnectionBuilder };\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport var VERSION = \"1.1.4\";\r\nexport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nexport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nexport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nexport { HubConnection, HubConnectionState } from \"./HubConnection\";\r\nexport { HubConnectionBuilder } from \"./HubConnectionBuilder\";\r\nexport { MessageType } from \"./IHubProtocol\";\r\nexport { LogLevel } from \"./ILogger\";\r\nexport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nexport { NullLogger } from \"./Loggers\";\r\nexport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\n//# sourceMappingURL=index.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/** Error thrown when an HTTP request fails. */\r\nvar HttpError = /** @class */ (function (_super) {\r\n __extends(HttpError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n function HttpError(errorMessage, statusCode) {\r\n var _newTarget = this.constructor;\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n _this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return HttpError;\r\n}(Error));\r\nexport { HttpError };\r\n/** Error thrown when a timeout elapses. */\r\nvar TimeoutError = /** @class */ (function (_super) {\r\n __extends(TimeoutError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function TimeoutError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"A timeout occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return TimeoutError;\r\n}(Error));\r\nexport { TimeoutError };\r\n/** Error thrown when an action is aborted. */\r\nvar AbortError = /** @class */ (function (_super) {\r\n __extends(AbortError, _super);\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function AbortError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"An abort occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return AbortError;\r\n}(Error));\r\nexport { AbortError };\r\n//# sourceMappingURL=Errors.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n/** @private */\r\nvar Arg = /** @class */ (function () {\r\n function Arg() {\r\n }\r\n Arg.isRequired = function (val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(\"The '\" + name + \"' argument is required.\");\r\n }\r\n };\r\n Arg.isIn = function (val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(\"Unknown \" + name + \" value: \" + val + \".\");\r\n }\r\n };\r\n return Arg;\r\n}());\r\nexport { Arg };\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n var detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = \"Binary data of length \" + data.byteLength;\r\n if (includeContent) {\r\n detail += \". Content: '\" + formatArrayBuffer(data) + \"'\";\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = \"String data of length \" + data.length;\r\n if (includeContent) {\r\n detail += \". Content: '\" + data + \"'\";\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n var view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n var str = \"\";\r\n view.forEach(function (num) {\r\n var pad = num < 16 ? \"0\" : \"\";\r\n str += \"0x\" + pad + num.toString(16) + \" \";\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, logMessageContent) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, responseType, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) sending data. \" + getDataDetail(content, logMessageContent) + \".\");\r\n responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n return [4 /*yield*/, httpClient.post(url, {\r\n content: content,\r\n headers: headers,\r\n responseType: responseType,\r\n })];\r\n case 3:\r\n response = _b.sent();\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) request complete. Response status: \" + response.statusCode + \".\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nvar Subject = /** @class */ (function () {\r\n function Subject() {\r\n this.observers = [];\r\n }\r\n Subject.prototype.next = function (item) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n observer.next(item);\r\n }\r\n };\r\n Subject.prototype.error = function (err) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n };\r\n Subject.prototype.complete = function () {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n };\r\n Subject.prototype.subscribe = function (observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n };\r\n return Subject;\r\n}());\r\nexport { Subject };\r\n/** @private */\r\nvar SubjectSubscription = /** @class */ (function () {\r\n function SubjectSubscription(subject, observer) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n SubjectSubscription.prototype.dispose = function () {\r\n var index = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n if (this.subject.observers.length === 0 && this.subject.cancelCallback) {\r\n this.subject.cancelCallback().catch(function (_) { });\r\n }\r\n };\r\n return SubjectSubscription;\r\n}());\r\nexport { SubjectSubscription };\r\n/** @private */\r\nvar ConsoleLogger = /** @class */ (function () {\r\n function ConsoleLogger(minimumLogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n }\r\n ConsoleLogger.prototype.log = function (logLevel, message) {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n console.error(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Warning:\r\n console.warn(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Information:\r\n console.info(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n console.log(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n }\r\n }\r\n };\r\n return ConsoleLogger;\r\n}());\r\nexport { ConsoleLogger };\r\n//# sourceMappingURL=Utils.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n/** Represents an HTTP response. */\r\nvar HttpResponse = /** @class */ (function () {\r\n function HttpResponse(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n return HttpResponse;\r\n}());\r\nexport { HttpResponse };\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nvar HttpClient = /** @class */ (function () {\r\n function HttpClient() {\r\n }\r\n HttpClient.prototype.get = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"GET\", url: url }));\r\n };\r\n HttpClient.prototype.post = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"POST\", url: url }));\r\n };\r\n HttpClient.prototype.delete = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"DELETE\", url: url }));\r\n };\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n HttpClient.prototype.getCookieString = function (url) {\r\n return \"\";\r\n };\r\n return HttpClient;\r\n}());\r\nexport { HttpClient };\r\n//# sourceMappingURL=HttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nvar NullLogger = /** @class */ (function () {\r\n function NullLogger() {\r\n }\r\n /** @inheritDoc */\r\n // tslint:disable-next-line\r\n NullLogger.prototype.log = function (_logLevel, _message) {\r\n };\r\n /** The singleton instance of the {@link @aspnet/signalr.NullLogger}. */\r\n NullLogger.instance = new NullLogger();\r\n return NullLogger;\r\n}());\r\nexport { NullLogger };\r\n//# sourceMappingURL=Loggers.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Not exported from index\r\n/** @private */\r\nvar TextMessageFormat = /** @class */ (function () {\r\n function TextMessageFormat() {\r\n }\r\n TextMessageFormat.write = function (output) {\r\n return \"\" + output + TextMessageFormat.RecordSeparator;\r\n };\r\n TextMessageFormat.parse = function (input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n var messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n };\r\n TextMessageFormat.RecordSeparatorCode = 0x1e;\r\n TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n return TextMessageFormat;\r\n}());\r\nexport { TextMessageFormat };\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nvar requestModule;\r\nif (typeof XMLHttpRequest === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n requestModule = requireFunc(\"request\");\r\n}\r\nvar NodeHttpClient = /** @class */ (function (_super) {\r\n __extends(NodeHttpClient, _super);\r\n function NodeHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof requestModule === \"undefined\") {\r\n throw new Error(\"The 'request' module could not be loaded.\");\r\n }\r\n _this.logger = logger;\r\n _this.cookieJar = requestModule.jar();\r\n _this.request = requestModule.defaults({ jar: _this.cookieJar });\r\n return _this;\r\n }\r\n NodeHttpClient.prototype.send = function (httpRequest) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var requestBody;\r\n if (isArrayBuffer(httpRequest.content)) {\r\n requestBody = Buffer.from(httpRequest.content);\r\n }\r\n else {\r\n requestBody = httpRequest.content || \"\";\r\n }\r\n var currentRequest = _this.request(httpRequest.url, {\r\n body: requestBody,\r\n // If binary is expected 'null' should be used, otherwise for text 'utf8'\r\n encoding: httpRequest.responseType === \"arraybuffer\" ? null : \"utf8\",\r\n headers: __assign({ \r\n // Tell auth middleware to 401 instead of redirecting\r\n \"X-Requested-With\": \"XMLHttpRequest\" }, httpRequest.headers),\r\n method: httpRequest.method,\r\n timeout: httpRequest.timeout,\r\n }, function (error, response, body) {\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = null;\r\n }\r\n if (error) {\r\n if (error.code === \"ETIMEDOUT\") {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n }\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + error);\r\n reject(error);\r\n return;\r\n }\r\n if (response.statusCode >= 200 && response.statusCode < 300) {\r\n resolve(new HttpResponse(response.statusCode, response.statusMessage || \"\", body));\r\n }\r\n else {\r\n reject(new HttpError(response.statusMessage || \"\", response.statusCode || 0));\r\n }\r\n });\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = function () {\r\n currentRequest.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n });\r\n };\r\n NodeHttpClient.prototype.getCookieString = function (url) {\r\n return this.cookieJar.getCookieString(url);\r\n };\r\n return NodeHttpClient;\r\n}(HttpClient));\r\nexport { NodeHttpClient };\r\n//# sourceMappingURL=NodeHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nvar HandshakeProtocol = /** @class */ (function () {\r\n function HandshakeProtocol() {\r\n }\r\n // Handshake request is always JSON\r\n HandshakeProtocol.prototype.writeHandshakeRequest = function (handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n };\r\n HandshakeProtocol.prototype.parseHandshakeResponse = function (data) {\r\n var responseMessage;\r\n var messageData;\r\n var remainingData;\r\n if (isArrayBuffer(data) || (typeof Buffer !== \"undefined\" && data instanceof Buffer)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n var binaryData = new Uint8Array(data);\r\n var separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n var textData = data;\r\n var separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n var messages = TextMessageFormat.parse(messageData);\r\n var response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n };\r\n return HandshakeProtocol;\r\n}());\r\nexport { HandshakeProtocol };\r\n//# sourceMappingURL=HandshakeProtocol.js.map"],"sourceRoot":""}