{"version":3,"file":"index-DTWGp5HP.js","sources":["../../../node_modules/@open-rpc/client-js/build/RequestManager.js","../../../node_modules/@open-rpc/client-js/build/Error.js","../../../node_modules/@open-rpc/client-js/build/transports/TransportRequestManager.js","../../../node_modules/@open-rpc/client-js/build/transports/Transport.js","../../../node_modules/@open-rpc/client-js/build/Request.js","../../../node_modules/@open-rpc/client-js/build/transports/EventEmitterTransport.js","../../../node_modules/whatwg-fetch/fetch.js","../../../node_modules/isomorphic-fetch/fetch-npm-browserify.js","../../../node_modules/@open-rpc/client-js/build/transports/HTTPTransport.js","../../../node_modules/isomorphic-ws/browser.js","../../../node_modules/@open-rpc/client-js/build/transports/WebSocketTransport.js","../../../node_modules/@open-rpc/client-js/build/transports/PostMessageWindowTransport.js","../../../node_modules/@open-rpc/client-js/build/transports/PostMessageIframeTransport.js","../../../node_modules/@open-rpc/client-js/build/Client.js","../../../node_modules/@open-rpc/client-js/build/index.js"],"sourcesContent":["\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultNextRequest = void 0;\nvar events_1 = require(\"events\");\nexports.defaultNextRequest = function () {\n var lastId = -1;\n return function () { return ++lastId; };\n};\n/*\n** Naive Request Manager, only use 1st transport.\n * A more complex request manager could try each transport.\n * If a transport fails, or times out, move on to the next.\n */\nvar RequestManager = /** @class */ (function () {\n function RequestManager(transports, nextID) {\n if (nextID === void 0) { nextID = exports.defaultNextRequest(); }\n this.batch = [];\n this.batchStarted = false;\n this.lastId = -1;\n this.transports = transports;\n this.requests = {};\n this.connectPromise = this.connect();\n this.requestChannel = new events_1.EventEmitter();\n this.nextID = nextID;\n }\n RequestManager.prototype.connect = function () {\n var _this = this;\n return Promise.all(this.transports.map(function (transport) { return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n transport.subscribe(\"error\", this.handleError.bind(this));\n transport.subscribe(\"notification\", this.handleNotification.bind(this));\n return [4 /*yield*/, transport.connect()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n }); }));\n };\n RequestManager.prototype.getPrimaryTransport = function () {\n return this.transports[0];\n };\n RequestManager.prototype.request = function (requestObject, notification, timeout) {\n if (notification === void 0) { notification = false; }\n return __awaiter(this, void 0, void 0, function () {\n var internalID, id, payload, result;\n var _this = this;\n return __generator(this, function (_a) {\n internalID = this.nextID().toString();\n id = notification ? null : internalID;\n payload = { request: this.makeRequest(requestObject.method, requestObject.params || [], id), internalID: internalID };\n if (this.batchStarted) {\n result = new Promise(function (resolve, reject) {\n _this.batch.push({ resolve: resolve, reject: reject, request: payload });\n });\n return [2 /*return*/, result];\n }\n return [2 /*return*/, this.getPrimaryTransport().sendData(payload, timeout)];\n });\n });\n };\n RequestManager.prototype.close = function () {\n this.requestChannel.removeAllListeners();\n this.transports.forEach(function (transport) {\n transport.unsubscribe();\n transport.close();\n });\n };\n /**\n * Begins a batch call by setting the [[RequestManager.batchStarted]] flag to `true`.\n *\n * [[RequestManager.batch]] is a singleton - only one batch can exist at a given time, per [[RequestManager]].\n *\n */\n RequestManager.prototype.startBatch = function () {\n this.batchStarted = true;\n };\n RequestManager.prototype.stopBatch = function () {\n if (this.batchStarted === false) {\n throw new Error(\"cannot end that which has never started\");\n }\n if (this.batch.length === 0) {\n this.batchStarted = false;\n return;\n }\n this.getPrimaryTransport().sendData(this.batch);\n this.batch = [];\n this.batchStarted = false;\n };\n RequestManager.prototype.makeRequest = function (method, params, id) {\n if (id) {\n return { jsonrpc: \"2.0\", id: id, method: method, params: params };\n }\n return { jsonrpc: \"2.0\", method: method, params: params };\n };\n RequestManager.prototype.handleError = function (data) {\n this.requestChannel.emit(\"error\", data);\n };\n RequestManager.prototype.handleNotification = function (data) {\n this.requestChannel.emit(\"notification\", data);\n };\n return RequestManager;\n}());\nexports.default = RequestManager;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertJSONToRPCError = exports.JSONRPCError = exports.ERR_UNKNOWN = exports.ERR_MISSIING_ID = exports.ERR_TIMEOUT = void 0;\nexports.ERR_TIMEOUT = 7777;\nexports.ERR_MISSIING_ID = 7878;\nexports.ERR_UNKNOWN = 7979;\nvar JSONRPCError = /** @class */ (function (_super) {\n __extends(JSONRPCError, _super);\n function JSONRPCError(message, code, data) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.code = code;\n _this.data = data;\n Object.setPrototypeOf(_this, _newTarget.prototype); // restore prototype chain: see https://github.com/open-rpc/client-js/issues/209\n return _this;\n }\n return JSONRPCError;\n}(Error));\nexports.JSONRPCError = JSONRPCError;\nexports.convertJSONToRPCError = function (payload) {\n if (payload.error) {\n var _a = payload.error, message = _a.message, code = _a.code, data = _a.data;\n return new JSONRPCError(message, code, data);\n }\n return new JSONRPCError(\"Unknown error\", exports.ERR_UNKNOWN, payload);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TransportRequestManager = void 0;\nvar events_1 = require(\"events\");\nvar Error_1 = require(\"../Error\");\nvar TransportRequestManager = /** @class */ (function () {\n function TransportRequestManager() {\n this.pendingRequest = {};\n this.pendingBatchRequest = {};\n this.transportEventChannel = new events_1.EventEmitter();\n }\n TransportRequestManager.prototype.addRequest = function (data, timeout) {\n this.transportEventChannel.emit(\"pending\", data);\n if (data instanceof Array) {\n this.addBatchReq(data, timeout);\n return Promise.resolve();\n }\n return this.addReq(data.internalID, timeout);\n };\n TransportRequestManager.prototype.settlePendingRequest = function (request, error) {\n var _this = this;\n request.forEach(function (req) {\n var resolver = _this.pendingRequest[req.internalID];\n delete _this.pendingBatchRequest[req.internalID];\n if (resolver === undefined) {\n return;\n }\n if (error) {\n resolver.reject(error);\n return;\n }\n resolver.resolve();\n // Notifications have no response and should clear their own pending requests\n if (req.request.id === null || req.request.id === undefined) {\n delete _this.pendingRequest[req.internalID];\n }\n });\n };\n TransportRequestManager.prototype.isPendingRequest = function (id) {\n return this.pendingRequest.hasOwnProperty(id);\n };\n TransportRequestManager.prototype.resolveResponse = function (payload, emitError) {\n if (emitError === void 0) { emitError = true; }\n var data = payload;\n try {\n data = JSON.parse(payload);\n if (this.checkJSONRPC(data) === false) {\n return; // ignore messages that are not conforming to JSON-RPC\n }\n if (data instanceof Array) {\n return this.resolveBatch(data, emitError);\n }\n return this.resolveRes(data, emitError);\n }\n catch (e) {\n var err = new Error_1.JSONRPCError(\"Bad response format\", Error_1.ERR_UNKNOWN, payload);\n if (emitError) {\n this.transportEventChannel.emit(\"error\", err);\n }\n return err;\n }\n };\n TransportRequestManager.prototype.addBatchReq = function (batches, timeout) {\n var _this = this;\n batches.forEach(function (batch) {\n var resolve = batch.resolve, reject = batch.reject;\n var internalID = batch.request.internalID;\n _this.pendingBatchRequest[internalID] = true;\n _this.pendingRequest[internalID] = { resolve: resolve, reject: reject };\n });\n return Promise.resolve();\n };\n TransportRequestManager.prototype.addReq = function (id, timeout) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n if (timeout !== null && timeout) {\n _this.setRequestTimeout(id, timeout, reject);\n }\n _this.pendingRequest[id] = { resolve: resolve, reject: reject };\n });\n };\n TransportRequestManager.prototype.checkJSONRPC = function (data) {\n var payload = [data];\n if (data instanceof Array) {\n payload = data;\n }\n return payload.every(function (datum) { return (datum.result !== undefined || datum.error !== undefined || datum.method !== undefined); });\n };\n TransportRequestManager.prototype.processResult = function (payload, prom) {\n if (payload.error) {\n var err = Error_1.convertJSONToRPCError(payload);\n prom.reject(err);\n return;\n }\n prom.resolve(payload.result);\n };\n TransportRequestManager.prototype.resolveBatch = function (payload, emitError) {\n var _this = this;\n var results = payload.map(function (datum) {\n return _this.resolveRes(datum, emitError);\n });\n var errors = results.filter(function (result) { return result; });\n if (errors.length > 0) {\n return errors[0];\n }\n return undefined;\n };\n TransportRequestManager.prototype.resolveRes = function (data, emitError) {\n var id = data.id, error = data.error;\n var status = this.pendingRequest[id];\n if (status) {\n delete this.pendingRequest[id];\n this.processResult(data, status);\n this.transportEventChannel.emit(\"response\", data);\n return;\n }\n if (id === undefined && error === undefined) {\n this.transportEventChannel.emit(\"notification\", data);\n return;\n }\n var err;\n if (error) {\n err = Error_1.convertJSONToRPCError(data);\n }\n if (emitError && error && err) {\n this.transportEventChannel.emit(\"error\", err);\n }\n return err;\n };\n TransportRequestManager.prototype.setRequestTimeout = function (id, timeout, reject) {\n var _this = this;\n setTimeout(function () {\n delete _this.pendingRequest[id];\n reject(new Error_1.JSONRPCError(\"Request timeout request took longer than \" + timeout + \" ms to resolve\", Error_1.ERR_TIMEOUT));\n }, timeout);\n };\n return TransportRequestManager;\n}());\nexports.TransportRequestManager = TransportRequestManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Transport = void 0;\nvar TransportRequestManager_1 = require(\"./TransportRequestManager\");\nvar Transport = /** @class */ (function () {\n function Transport() {\n this.transportRequestManager = new TransportRequestManager_1.TransportRequestManager();\n // add a noop for the error event to not require handling the error event\n // tslint:disable-next-line:no-empty\n this.transportRequestManager.transportEventChannel.on(\"error\", function () { });\n }\n Transport.prototype.subscribe = function (event, handler) {\n this.transportRequestManager.transportEventChannel.addListener(event, handler);\n };\n Transport.prototype.unsubscribe = function (event, handler) {\n if (!event) {\n return this.transportRequestManager.transportEventChannel.removeAllListeners();\n }\n if (event && handler) {\n this.transportRequestManager.transportEventChannel.removeListener(event, handler);\n }\n };\n Transport.prototype.parseData = function (data) {\n if (data instanceof Array) {\n return data.map(function (batch) { return batch.request.request; });\n }\n return data.request;\n };\n return Transport;\n}());\nexports.Transport = Transport;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNotifications = exports.getBatchRequests = exports.isNotification = void 0;\nexports.isNotification = function (data) {\n return (data.request.id === undefined || data.request.id === null);\n};\nexports.getBatchRequests = function (data) {\n if (data instanceof Array) {\n return data.filter(function (datum) {\n var id = datum.request.request.id;\n return id !== null && id !== undefined;\n }).map(function (batchRequest) {\n return batchRequest.request;\n });\n }\n return [];\n};\nexports.getNotifications = function (data) {\n if (data instanceof Array) {\n return data.filter(function (datum) {\n return exports.isNotification(datum.request);\n }).map(function (batchRequest) {\n return batchRequest.request;\n });\n }\n if (exports.isNotification(data)) {\n return [data];\n }\n return [];\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Transport_1 = require(\"./Transport\");\nvar Request_1 = require(\"../Request\");\nvar Error_1 = require(\"../Error\");\nvar EventEmitterTransport = /** @class */ (function (_super) {\n __extends(EventEmitterTransport, _super);\n function EventEmitterTransport(destEmitter, reqUri, resUri) {\n var _this = _super.call(this) || this;\n _this.connection = destEmitter;\n _this.reqUri = reqUri;\n _this.resUri = resUri;\n return _this;\n }\n EventEmitterTransport.prototype.connect = function () {\n var _this = this;\n this.connection.on(this.resUri, function (data) {\n _this.transportRequestManager.resolveResponse(data);\n });\n return Promise.resolve();\n };\n EventEmitterTransport.prototype.sendData = function (data, timeout) {\n if (timeout === void 0) { timeout = null; }\n var prom = this.transportRequestManager.addRequest(data, timeout);\n var notifications = Request_1.getNotifications(data);\n var parsedData = this.parseData(data);\n try {\n this.connection.emit(this.reqUri, parsedData);\n this.transportRequestManager.settlePendingRequest(notifications);\n return prom;\n }\n catch (e) {\n var responseErr = new Error_1.JSONRPCError(e.message, Error_1.ERR_UNKNOWN, e);\n this.transportRequestManager.settlePendingRequest(notifications, responseErr);\n return Promise.reject(responseErr);\n }\n };\n EventEmitterTransport.prototype.close = function () {\n this.connection.removeAllListeners();\n };\n return EventEmitterTransport;\n}(Transport_1.Transport));\nexports.default = EventEmitterTransport;\n","/* eslint-disable no-prototype-builtins */\nvar g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global) ||\n {}\n\nvar support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body._noBody) return\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type)\n var encoding = match ? match[1] : 'utf-8'\n reader.readAsText(blob, encoding)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._noBody = true;\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n try {\n headers.append(key, value)\n } catch (error) {\n console.warn('Response ' + error.message)\n }\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 200, statusText: ''})\n response.ok = false\n response.status = 0\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = g.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name))\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value)\n }\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!g.fetch) {\n g.fetch = fetch\n g.Headers = Headers\n g.Request = Request\n g.Response = Response\n}\n","// the whatwg-fetch polyfill installs the fetch() function\n// on the global object (window or self)\n//\n// Return that as the export for use in Webpack, Browserify etc.\nrequire('whatwg-fetch');\nmodule.exports = self.fetch.bind(self);\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HTTPTransport = void 0;\nvar isomorphic_fetch_1 = __importDefault(require(\"isomorphic-fetch\"));\nvar Transport_1 = require(\"./Transport\");\nvar Request_1 = require(\"../Request\");\nvar Error_1 = require(\"../Error\");\nvar HTTPTransport = /** @class */ (function (_super) {\n __extends(HTTPTransport, _super);\n function HTTPTransport(uri, options) {\n var _this = _super.call(this) || this;\n _this.onlyNotifications = function (data) {\n if (data instanceof Array) {\n return data.every(function (datum) {\n return datum.request.request.id === null ||\n datum.request.request.id === undefined;\n });\n }\n return data.request.id === null || data.request.id === undefined;\n };\n _this.uri = uri;\n _this.credentials = options && options.credentials;\n _this.headers = HTTPTransport.setupHeaders(options && options.headers);\n _this.injectedFetcher = options === null || options === void 0 ? void 0 : options.fetcher;\n return _this;\n }\n HTTPTransport.prototype.connect = function () {\n return Promise.resolve();\n };\n HTTPTransport.prototype.sendData = function (data, timeout) {\n if (timeout === void 0) { timeout = null; }\n return __awaiter(this, void 0, void 0, function () {\n var prom, notifications, batch, fetcher, result, body, responseErr, e_1, responseErr;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n prom = this.transportRequestManager.addRequest(data, timeout);\n notifications = Request_1.getNotifications(data);\n batch = Request_1.getBatchRequests(data);\n fetcher = this.injectedFetcher || isomorphic_fetch_1.default;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetcher(this.uri, {\n method: \"POST\",\n headers: this.headers,\n body: JSON.stringify(this.parseData(data)),\n credentials: this.credentials,\n })];\n case 2:\n result = _a.sent();\n // requirements are that notifications are successfully sent\n this.transportRequestManager.settlePendingRequest(notifications);\n if (this.onlyNotifications(data)) {\n return [2 /*return*/, Promise.resolve()];\n }\n return [4 /*yield*/, result.text()];\n case 3:\n body = _a.sent();\n responseErr = this.transportRequestManager.resolveResponse(body);\n if (responseErr) {\n // requirements are that batch requuests are successfully resolved\n // this ensures that individual requests within the batch request are settled\n this.transportRequestManager.settlePendingRequest(batch, responseErr);\n return [2 /*return*/, Promise.reject(responseErr)];\n }\n return [3 /*break*/, 5];\n case 4:\n e_1 = _a.sent();\n responseErr = new Error_1.JSONRPCError(e_1.message, Error_1.ERR_UNKNOWN, e_1);\n this.transportRequestManager.settlePendingRequest(notifications, responseErr);\n this.transportRequestManager.settlePendingRequest(Request_1.getBatchRequests(data), responseErr);\n return [2 /*return*/, Promise.reject(responseErr)];\n case 5: return [2 /*return*/, prom];\n }\n });\n });\n };\n // tslint:disable-next-line:no-empty\n HTTPTransport.prototype.close = function () { };\n HTTPTransport.setupHeaders = function (headerOptions) {\n var headers = new Headers(headerOptions);\n // Overwrite header options to ensure correct content type.\n headers.set(\"Content-Type\", \"application/json\");\n return headers;\n };\n return HTTPTransport;\n}(Transport_1.Transport));\nexports.HTTPTransport = HTTPTransport;\nexports.default = HTTPTransport;\n","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nexport default ws\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isomorphic_ws_1 = __importDefault(require(\"isomorphic-ws\"));\nvar Transport_1 = require(\"./Transport\");\nvar Request_1 = require(\"../Request\");\nvar Error_1 = require(\"../Error\");\nvar WebSocketTransport = /** @class */ (function (_super) {\n __extends(WebSocketTransport, _super);\n function WebSocketTransport(uri) {\n var _this = _super.call(this) || this;\n _this.uri = uri;\n _this.connection = new isomorphic_ws_1.default(uri);\n return _this;\n }\n WebSocketTransport.prototype.connect = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var cb = function () {\n _this.connection.removeEventListener(\"open\", cb);\n resolve();\n };\n _this.connection.addEventListener(\"open\", cb);\n _this.connection.addEventListener(\"message\", function (message) {\n var data = message.data;\n _this.transportRequestManager.resolveResponse(data);\n });\n });\n };\n WebSocketTransport.prototype.sendData = function (data, timeout) {\n if (timeout === void 0) { timeout = 5000; }\n return __awaiter(this, void 0, void 0, function () {\n var prom, notifications, jsonError;\n return __generator(this, function (_a) {\n prom = this.transportRequestManager.addRequest(data, timeout);\n notifications = Request_1.getNotifications(data);\n try {\n this.connection.send(JSON.stringify(this.parseData(data)));\n this.transportRequestManager.settlePendingRequest(notifications);\n }\n catch (err) {\n jsonError = new Error_1.JSONRPCError(err.message, Error_1.ERR_UNKNOWN, err);\n this.transportRequestManager.settlePendingRequest(notifications, jsonError);\n this.transportRequestManager.settlePendingRequest(Request_1.getBatchRequests(data), jsonError);\n prom = Promise.reject(jsonError);\n }\n return [2 /*return*/, prom];\n });\n });\n };\n WebSocketTransport.prototype.close = function () {\n this.connection.close();\n };\n return WebSocketTransport;\n}(Transport_1.Transport));\nexports.default = WebSocketTransport;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Transport_1 = require(\"./Transport\");\nvar Request_1 = require(\"../Request\");\nvar openPopup = function (url) {\n var width = 400;\n var height = window.screen.height;\n var left = 0;\n var top = 0;\n return window.open(url, \"inspector:popup\", \"left=\" + left + \",top=\" + top + \",width=\" + width + \",height=\" + height + \",resizable,scrollbars=yes,status=1\");\n};\nvar PostMessageTransport = /** @class */ (function (_super) {\n __extends(PostMessageTransport, _super);\n function PostMessageTransport(uri) {\n var _this = _super.call(this) || this;\n _this.messageHandler = function (ev) {\n _this.transportRequestManager.resolveResponse(JSON.stringify(ev.data));\n };\n _this.uri = uri;\n _this.postMessageID = \"post-message-transport-\" + Math.random();\n return _this;\n }\n PostMessageTransport.prototype.createWindow = function (uri) {\n return new Promise(function (resolve, reject) {\n var frame;\n frame = openPopup(uri);\n setTimeout(function () {\n resolve(frame);\n }, 3000);\n });\n };\n PostMessageTransport.prototype.connect = function () {\n var _this = this;\n var urlRegex = /^(http|https):\\/\\/.*$/;\n return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!urlRegex.test(this.uri)) {\n reject(new Error(\"Bad URI\"));\n }\n _a = this;\n return [4 /*yield*/, this.createWindow(this.uri)];\n case 1:\n _a.frame = _b.sent();\n window.addEventListener(\"message\", this.messageHandler);\n resolve();\n return [2 /*return*/];\n }\n });\n }); });\n };\n PostMessageTransport.prototype.sendData = function (data, timeout) {\n if (timeout === void 0) { timeout = 5000; }\n return __awaiter(this, void 0, void 0, function () {\n var prom, notifications;\n return __generator(this, function (_a) {\n prom = this.transportRequestManager.addRequest(data, null);\n notifications = Request_1.getNotifications(data);\n if (this.frame) {\n this.frame.postMessage(data.request, this.uri);\n this.transportRequestManager.settlePendingRequest(notifications);\n }\n return [2 /*return*/, prom];\n });\n });\n };\n PostMessageTransport.prototype.close = function () {\n if (this.frame) {\n window.removeEventListener(\"message\", this.messageHandler);\n this.frame.close();\n }\n };\n return PostMessageTransport;\n}(Transport_1.Transport));\nexports.default = PostMessageTransport;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Transport_1 = require(\"./Transport\");\nvar Request_1 = require(\"../Request\");\nvar PostMessageIframeTransport = /** @class */ (function (_super) {\n __extends(PostMessageIframeTransport, _super);\n function PostMessageIframeTransport(uri) {\n var _this = _super.call(this) || this;\n _this.messageHandler = function (ev) {\n _this.transportRequestManager.resolveResponse(JSON.stringify(ev.data));\n };\n _this.uri = uri;\n _this.postMessageID = \"post-message-transport-\" + Math.random();\n return _this;\n }\n PostMessageIframeTransport.prototype.createWindow = function (uri) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var frame;\n var iframe = document.createElement(\"iframe\");\n iframe.setAttribute(\"id\", _this.postMessageID);\n iframe.setAttribute(\"width\", \"0px\");\n iframe.setAttribute(\"height\", \"0px\");\n iframe.setAttribute(\"style\", \"visiblity:hidden;border:none;outline:none;\");\n iframe.addEventListener(\"load\", function () {\n resolve(frame);\n });\n iframe.setAttribute(\"src\", uri);\n window.document.body.appendChild(iframe);\n frame = iframe.contentWindow;\n });\n };\n PostMessageIframeTransport.prototype.connect = function () {\n var _this = this;\n var urlRegex = /^(http|https):\\/\\/.*$/;\n return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (!urlRegex.test(this.uri)) {\n reject(new Error(\"Bad URI\"));\n }\n _a = this;\n return [4 /*yield*/, this.createWindow(this.uri)];\n case 1:\n _a.frame = _b.sent();\n window.addEventListener(\"message\", this.messageHandler);\n resolve();\n return [2 /*return*/];\n }\n });\n }); });\n };\n PostMessageIframeTransport.prototype.sendData = function (data, timeout) {\n if (timeout === void 0) { timeout = 5000; }\n return __awaiter(this, void 0, void 0, function () {\n var prom, notifications;\n return __generator(this, function (_a) {\n prom = this.transportRequestManager.addRequest(data, null);\n notifications = Request_1.getNotifications(data);\n if (this.frame) {\n this.frame.postMessage(data.request, \"*\");\n this.transportRequestManager.settlePendingRequest(notifications);\n }\n return [2 /*return*/, prom];\n });\n });\n };\n PostMessageIframeTransport.prototype.close = function () {\n var el = document.getElementById(this.postMessageID);\n el === null || el === void 0 ? void 0 : el.remove();\n window.removeEventListener(\"message\", this.messageHandler);\n };\n return PostMessageIframeTransport;\n}(Transport_1.Transport));\nexports.default = PostMessageIframeTransport;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * OpenRPC Client JS is a browser-compatible JSON-RPC client with multiple transports and\n * multiple request managers to enable features like round-robin or fallback-by-position.\n *\n * @example\n * ```typescript\n * import { RequestManager, HTTPTransport, Client } from '@open-rpc/client-js';\n * const transport = new HTTPTransport('http://localhost:3333');\n * const client = new Client(new RequestManager([transport]));\n * const result = await client.request({method: 'addition', params: [2, 2]});\n * // => { jsonrpc: '2.0', id: 1, result: 4 }\n * ```\n *\n */\nvar Client = /** @class */ (function () {\n function Client(requestManager) {\n this.requestManager = requestManager;\n }\n /**\n * Initiates [[RequestManager.startBatch]] in order to build a batch call.\n *\n * Subsequent calls to [[Client.request]] will be added to the batch. Once [[Client.stopBatch]] is called, the\n * promises for the [[Client.request]] will then be resolved. If the [[RequestManager]] already has a batch in\n * progress, this method is a noop.\n *\n * @example\n * myClient.startBatch();\n * myClient.request({method: \"foo\", params: [\"bar\"]}).then(() => console.log('foobar'));\n * myClient.request({method: \"foo\", params: [\"baz\"]}).then(() => console.log('foobaz'));\n * myClient.stopBatch();\n */\n Client.prototype.startBatch = function () {\n return this.requestManager.startBatch();\n };\n /**\n * Initiates [[RequestManager.stopBatch]] in order to finalize and send the batch to the underlying transport.\n *\n * [[Client.stopBatch]] will send the [[Client.request]] calls made since the last [[Client.startBatch]] call. For\n * that reason, [[Client.startBatch]] MUST be called before [[Client.stopBatch]].\n *\n * @example\n * myClient.startBatch();\n * myClient.request({method: \"foo\", params: [\"bar\"]}).then(() => console.log('foobar'));\n * myClient.request({method: \"foo\", params: [\"baz\"]}).then(() => console.log('foobaz'));\n * myClient.stopBatch();\n */\n Client.prototype.stopBatch = function () {\n return this.requestManager.stopBatch();\n };\n /**\n * A JSON-RPC call is represented by sending a Request object to a Server.\n *\n * @param requestObject.method A String containing the name of the method to be invoked. Method names that begin with the word rpc\n * followed by a period character (U+002E or ASCII 46) are reserved for rpc-internal methods and extensions and\n * MUST NOT be used for anything else.\n * @param requestObject.params A Structured value that holds the parameter values to be used during the invocation of the method.\n *\n * @example\n * myClient.request({method: \"foo\", params: [\"bar\"]}).then(() => console.log('foobar'));\n */\n Client.prototype.request = function (requestObject, timeout) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.requestManager.connectPromise) return [3 /*break*/, 2];\n return [4 /*yield*/, this.requestManager.connectPromise];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, this.requestManager.request(requestObject, false, timeout)];\n }\n });\n });\n };\n Client.prototype.notify = function (requestObject) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.requestManager.connectPromise) return [3 /*break*/, 2];\n return [4 /*yield*/, this.requestManager.connectPromise];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/, this.requestManager.request(requestObject, true, null)];\n }\n });\n });\n };\n Client.prototype.onNotification = function (callback) {\n this.requestManager.requestChannel.addListener(\"notification\", callback);\n };\n Client.prototype.onError = function (callback) {\n this.requestManager.requestChannel.addListener(\"error\", callback);\n };\n /**\n * Close connection\n */\n Client.prototype.close = function () {\n this.requestManager.close();\n };\n return Client;\n}());\nexports.default = Client;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PostMessageIframeTransport = exports.PostMessageWindowTransport = exports.JSONRPCError = exports.WebSocketTransport = exports.EventEmitterTransport = exports.HTTPTransport = exports.RequestManager = exports.Client = void 0;\nvar RequestManager_1 = __importDefault(require(\"./RequestManager\"));\nexports.RequestManager = RequestManager_1.default;\nvar EventEmitterTransport_1 = __importDefault(require(\"./transports/EventEmitterTransport\"));\nexports.EventEmitterTransport = EventEmitterTransport_1.default;\nvar HTTPTransport_1 = __importDefault(require(\"./transports/HTTPTransport\"));\nexports.HTTPTransport = HTTPTransport_1.default;\nvar WebSocketTransport_1 = __importDefault(require(\"./transports/WebSocketTransport\"));\nexports.WebSocketTransport = WebSocketTransport_1.default;\nvar PostMessageWindowTransport_1 = __importDefault(require(\"./transports/PostMessageWindowTransport\"));\nexports.PostMessageWindowTransport = PostMessageWindowTransport_1.default;\nvar PostMessageIframeTransport_1 = __importDefault(require(\"./transports/PostMessageIframeTransport\"));\nexports.PostMessageIframeTransport = PostMessageIframeTransport_1.default;\nvar Error_1 = require(\"./Error\");\nObject.defineProperty(exports, \"JSONRPCError\", { enumerable: true, get: function () { return Error_1.JSONRPCError; } });\nvar Client_1 = __importDefault(require(\"./Client\"));\nexports.Client = Client_1.default;\nexports.default = Client_1.default;\n"],"names":["__awaiter","this","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","__generator","body","_","t","f","y","g","verb","n","v","op","exports","events_1","require$$0","lastId","RequestManager","transports","nextID","_this","transport","_a","requestObject","notification","timeout","internalID","id","payload","method","params","data","__extends","extendStatics","d","b","p","__","JSONRPCError","_super","message","code","_newTarget","TransportRequestManager_1","Error_1","require$$1","TransportRequestManager","request","error","req","resolver","emitError","err","batches","batch","datum","prom","results","errors","status","Transport_1","Transport","event","handler","batchRequest","EventEmitterTransport_1","Request_1","require$$2","EventEmitterTransport","destEmitter","reqUri","resUri","notifications","parsedData","responseErr","support","isDataView","obj","viewClasses","isArrayBufferView","normalizeName","name","normalizeValue","iteratorFor","items","iterator","Headers","headers","header","oldValue","callback","consumed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","promise","readBlobAsText","match","encoding","readArrayBufferAsText","buf","view","chars","i","bufferClone","Body","isConsumed","decode","methods","normalizeMethod","upcased","Request","input","options","ctrl","reParamSearch","reQueryString","form","bytes","split","parseHeaders","rawHeaders","preProcessedHeaders","line","parts","key","Response","bodyInit","response","redirectStatuses","url","DOMException","fetch","init","xhr","abortXhr","fixUrl","names","fetchNpmBrowserify","__importDefault","mod","HTTPTransport_1","isomorphic_fetch_1","require$$3","HTTPTransport","uri","fetcher","e_1","headerOptions","ws","ws$1","WebSocketTransport_1","isomorphic_ws_1","WebSocketTransport","cb","jsonError","PostMessageWindowTransport","openPopup","width","height","left","top","PostMessageTransport","ev","frame","urlRegex","_b","PostMessageIframeTransport_1","PostMessageIframeTransport","iframe","el","Client_1","Client","requestManager","RequestManager_1","PostMessageWindowTransport_1","require$$4","require$$5","require$$6","require$$7"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]}