{"version":3,"sources":["webpack:///./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/index.js","webpack:///./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js"],"names":["__extends","extendStatics","Object","setPrototypeOf","__proto__","Array","d","b","p","hasOwnProperty","__","this","constructor","prototype","create","XhrHttpClient","_super","logger","_this","call","send","request","abortSignal","aborted","Promise","reject","method","url","resolve","xhr","XMLHttpRequest","open","withCredentials","undefined","setRequestHeader","headers","keys","forEach","header","responseType","onabort","abort","timeout","onload","status","statusText","response","responseText","onerror","log","Warning","ontimeout","content","Error","__assign","assign","t","s","i","n","arguments","length","__awaiter","thisArg","_arguments","P","generator","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","push","WebSocketTransport","httpClient","accessTokenFactory","logMessageContent","webSocketConstructor","onreceive","onclose","connect","transferFormat","token","_a","isRequired","isIn","Trace","indexOf","encodeURIComponent","webSocket","replace","cookies","getCookieString","opened","isNode","name_1","Binary","binaryType","onopen","_event","Information","event","error","ErrorEvent","onmessage","message","data","close","readyState","OPEN","stop","isCloseEvent","wasClean","code","reason"],"mappings":"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","file":"js/chunk-vendors~3e2f24f5.cdb6c532.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 = request.withCredentials === undefined ? true : request.withCredentials;\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\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\nexport { Subject } from \"./Subject\";\r\nexport { VERSION } from \"./Utils\";\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\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\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, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nvar WebSocketTransport = /** @class */ (function () {\r\n function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\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 this.headers = headers;\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 var opened = false;\r\n if (Platform.isNode) {\r\n var headers = {};\r\n var _a = getUserAgentHeader(), name_1 = _a[0], value = _a[1];\r\n headers[name_1] = value;\r\n if (cookies) {\r\n headers[\"Cookie\"] = \"\" + cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new _this.webSocketConstructor(url, undefined, {\r\n headers: __assign({}, headers, _this.headers),\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 opened = true;\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 else {\r\n error = new Error(\"There was an error with the transport.\");\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 try {\r\n _this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n _this.close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = function (event) {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n _this.close(event);\r\n }\r\n else {\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 else {\r\n error = new Error(\"There was an error with the transport.\");\r\n }\r\n reject(error);\r\n }\r\n };\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 // 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 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 }\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this.isCloseEvent(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 if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n WebSocketTransport.prototype.isCloseEvent = function (event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n };\r\n return WebSocketTransport;\r\n}());\r\nexport { WebSocketTransport };\r\n//# sourceMappingURL=WebSocketTransport.js.map"],"sourceRoot":""}