@cubejs-client/ws-transport 1.6.16 → 1.6.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,17 +35,17 @@ var WebSocketTransportResult = /*#__PURE__*/function () {
35
35
  function WebSocketTransportResult(_ref) {
36
36
  var status = _ref.status,
37
37
  message = _ref.message;
38
- _classCallCheck__default['default'](this, WebSocketTransportResult);
39
- _defineProperty__default['default'](this, "status", void 0);
40
- _defineProperty__default['default'](this, "result", void 0);
38
+ _classCallCheck__default["default"](this, WebSocketTransportResult);
39
+ _defineProperty__default["default"](this, "status", void 0);
40
+ _defineProperty__default["default"](this, "result", void 0);
41
41
  this.status = status;
42
42
  this.result = message;
43
43
  }
44
- return _createClass__default['default'](WebSocketTransportResult, [{
44
+ return _createClass__default["default"](WebSocketTransportResult, [{
45
45
  key: "json",
46
46
  value: function () {
47
- var _json = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
48
- return _regeneratorRuntime__default['default'].wrap(function (_context) {
47
+ var _json = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
48
+ return _regeneratorRuntime__default["default"].wrap(function (_context) {
49
49
  while (1) switch (_context.prev = _context.next) {
50
50
  case 0:
51
51
  return _context.abrupt("return", this.result);
@@ -69,8 +69,8 @@ var WebSocketTransportResult = /*#__PURE__*/function () {
69
69
  }, {
70
70
  key: "text",
71
71
  value: function () {
72
- var _text = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
73
- return _regeneratorRuntime__default['default'].wrap(function (_context2) {
72
+ var _text = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
73
+ return _regeneratorRuntime__default["default"].wrap(function (_context2) {
74
74
  while (1) switch (_context2.prev = _context2.next) {
75
75
  case 0:
76
76
  return _context2.abrupt("return", typeof this.result === 'string' ? this.result : JSON.stringify(this.result));
@@ -93,14 +93,14 @@ var WebSocketTransport = /*#__PURE__*/function () {
93
93
  apiUrl = _ref2.apiUrl,
94
94
  heartBeatInterval = _ref2.heartBeatInterval,
95
95
  hearBeatInterval = _ref2.hearBeatInterval;
96
- _classCallCheck__default['default'](this, WebSocketTransport);
97
- _defineProperty__default['default'](this, "apiUrl", void 0);
98
- _defineProperty__default['default'](this, "heartBeatInterval", 60);
99
- _defineProperty__default['default'](this, "token", void 0);
100
- _defineProperty__default['default'](this, "ws", null);
101
- _defineProperty__default['default'](this, "messageCounter", 1);
102
- _defineProperty__default['default'](this, "messageIdToSubscription", {});
103
- _defineProperty__default['default'](this, "messageQueue", []);
96
+ _classCallCheck__default["default"](this, WebSocketTransport);
97
+ _defineProperty__default["default"](this, "apiUrl", void 0);
98
+ _defineProperty__default["default"](this, "heartBeatInterval", 60);
99
+ _defineProperty__default["default"](this, "token", void 0);
100
+ _defineProperty__default["default"](this, "ws", null);
101
+ _defineProperty__default["default"](this, "messageCounter", 1);
102
+ _defineProperty__default["default"](this, "messageIdToSubscription", {});
103
+ _defineProperty__default["default"](this, "messageQueue", []);
104
104
  this.token = authorization;
105
105
  this.apiUrl = apiUrl;
106
106
  if (heartBeatInterval) {
@@ -110,7 +110,7 @@ var WebSocketTransport = /*#__PURE__*/function () {
110
110
  this.heartBeatInterval = hearBeatInterval;
111
111
  }
112
112
  }
113
- return _createClass__default['default'](WebSocketTransport, [{
113
+ return _createClass__default["default"](WebSocketTransport, [{
114
114
  key: "authorization",
115
115
  get: function get() {
116
116
  return this.token;
@@ -124,8 +124,8 @@ var WebSocketTransport = /*#__PURE__*/function () {
124
124
  }, {
125
125
  key: "close",
126
126
  value: function () {
127
- var _close = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3() {
128
- return _regeneratorRuntime__default['default'].wrap(function (_context3) {
127
+ var _close = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
128
+ return _regeneratorRuntime__default["default"].wrap(function (_context3) {
129
129
  while (1) switch (_context3.prev = _context3.next) {
130
130
  case 0:
131
131
  if (this.ws) {
@@ -151,7 +151,7 @@ var WebSocketTransport = /*#__PURE__*/function () {
151
151
  if (this.ws) {
152
152
  return this.ws.initPromise;
153
153
  }
154
- var ws = new WebSocket__default['default'](this.apiUrl);
154
+ var ws = new WebSocket__default["default"](this.apiUrl);
155
155
  ws.messageIdSent = {};
156
156
  ws.sendMessage = function (message) {
157
157
  if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {
@@ -199,7 +199,7 @@ var WebSocketTransport = /*#__PURE__*/function () {
199
199
  ws.sendQueue();
200
200
  };
201
201
  ws.onclose = function (event) {
202
- if (ws && ws.readyState !== WebSocket__default['default'].CLOSED && ws.readyState !== WebSocket__default['default'].CLOSING) {
202
+ if (ws && ws.readyState !== WebSocket__default["default"].CLOSED && ws.readyState !== WebSocket__default["default"].CLOSING) {
203
203
  ws.close();
204
204
  }
205
205
  if (ws.reconcileTimer) {
@@ -248,8 +248,8 @@ var WebSocketTransport = /*#__PURE__*/function () {
248
248
  } else {
249
249
  this.messageQueue.push(message);
250
250
  }
251
- setTimeout(/*#__PURE__*/_asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4() {
252
- return _regeneratorRuntime__default['default'].wrap(function (_context4) {
251
+ setTimeout(/*#__PURE__*/_asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4() {
252
+ return _regeneratorRuntime__default["default"].wrap(function (_context4) {
253
253
  while (1) switch (_context4.prev = _context4.next) {
254
254
  case 0:
255
255
  _context4.next = 1;
@@ -267,7 +267,7 @@ var WebSocketTransport = /*#__PURE__*/function () {
267
267
  key: "request",
268
268
  value: function request(method, _ref4) {
269
269
  var baseRequestId = _ref4.baseRequestId,
270
- params = _objectWithoutProperties__default['default'](_ref4, _excluded);
270
+ params = _objectWithoutProperties__default["default"](_ref4, _excluded);
271
271
  var message = {
272
272
  messageId: this.messageCounter++,
273
273
  requestId: baseRequestId,
@@ -293,9 +293,9 @@ var WebSocketTransport = /*#__PURE__*/function () {
293
293
  return {
294
294
  subscribe: function subscribe(callback) {
295
295
  var _this3 = this;
296
- return _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5() {
296
+ return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5() {
297
297
  var result;
298
- return _regeneratorRuntime__default['default'].wrap(function (_context5) {
298
+ return _regeneratorRuntime__default["default"].wrap(function (_context5) {
299
299
  while (1) switch (_context5.prev = _context5.next) {
300
300
  case 0:
301
301
  transport.sendMessage(message);
@@ -319,8 +319,8 @@ var WebSocketTransport = /*#__PURE__*/function () {
319
319
  }))();
320
320
  },
321
321
  unsubscribe: function unsubscribe() {
322
- return _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6() {
323
- return _regeneratorRuntime__default['default'].wrap(function (_context6) {
322
+ return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6() {
323
+ return _regeneratorRuntime__default["default"].wrap(function (_context6) {
324
324
  while (1) switch (_context6.prev = _context6.next) {
325
325
  case 0:
326
326
  transport.sendMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-ws-transport.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","_ref","status","message","_classCallCheck","_defineProperty","result","_createClass","key","value","_json","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","json","apply","arguments","clone","_text","_callee2","_context2","JSON","stringify","text","WebSocketTransport","_ref2","authorization","apiUrl","heartBeatInterval","hearBeatInterval","token","console","warn","get","set","ws","close","_close","_callee3","_context3","sendQueue","initSocket","_this","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","messageQueue","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","messageIdToSubscription","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","_this2","unsubscribe","find","m","filter","push","setTimeout","_callee4","_context4","request","method","_ref4","baseRequestId","params","_objectWithoutProperties","_excluded","messageCounter","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe","_this3","_callee5","_context5","sent","_callee6","_context6"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAsC,IAKhCA,wBAAwB;EAK5B,SAAAA,yBAAAC,IAAA,EAA+E;IAAA,IAA1DC,MAAM,GAAAD,IAAA,CAANC,MAAM;MAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAAC,mCAAA,OAAAJ,wBAAA;IAAAK,mCAAA;IAAAA,mCAAA;IAClC,IAAI,CAACH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACI,MAAM,GAAGH,OAAO;;EACtB,OAAAI,gCAAA,CAAAP,wBAAA;IAAAQ,GAAA;IAAAC,KAAA;MAAA,IAAAC,KAAA,GAAAC,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,CAED,SAAAC;QAAA,OAAAF,uCAAA,CAAAG,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAA,OAAAF,QAAA,CAAAG,MAAA,WACS,IAAI,CAACb,MAAM;YAAA;YAAA;cAAA,OAAAU,QAAA,CAAAI,IAAA;;WAAAN,OAAA;OACnB;MAAA,SAFYO,IAAIA;QAAA,OAAAX,KAAA,CAAAY,KAAA,OAAAC,SAAA;;MAAA,OAAJF,IAAI;;;IAAAb,GAAA;IAAAC,KAAA,EAIjB,SAAOe,KAAKA,GAAG;;MAEb,OAAO,IAAI;;;IACZhB,GAAA;IAAAC,KAAA;MAAA,IAAAgB,KAAA,GAAAd,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,CAED,SAAAa;QAAA,OAAAd,uCAAA,CAAAG,IAAA,WAAAY,SAAA;UAAA,kBAAAA,SAAA,CAAAV,IAAA,GAAAU,SAAA,CAAAT,IAAA;YAAA;cAAA,OAAAS,SAAA,CAAAR,MAAA,WACS,OAAO,IAAI,CAACb,MAAM,KAAK,QAAQ,GAAG,IAAI,CAACA,MAAM,GAAGsB,IAAI,CAACC,SAAS,CAAC,IAAI,CAACvB,MAAM,CAAC;YAAA;YAAA;cAAA,OAAAqB,SAAA,CAAAP,IAAA;;WAAAM,QAAA;OACnF;MAAA,SAFYI,IAAIA;QAAA,OAAAL,KAAA,CAAAH,KAAA,OAAAC,SAAA;;MAAA,OAAJO,IAAI;;;AAAA;IAyBbC,kBAAkB;EAetB,SAAAA,mBAAAC,KAAA,EAA8G;IAAA,IAAzFC,aAAa,GAAAD,KAAA,CAAbC,aAAa;MAAEC,MAAM,GAAAF,KAAA,CAANE,MAAM;MAAEC,iBAAiB,GAAAH,KAAA,CAAjBG,iBAAiB;MAAEC,gBAAgB,GAAAJ,KAAA,CAAhBI,gBAAgB;IAAAhC,mCAAA,OAAA2B,kBAAA;IAAA1B,mCAAA;IAAAA,mCAAA,4BAZhC,EAAE;IAAAA,mCAAA;IAAAA,mCAAA,aAI7B,IAAI;IAAAA,mCAAA,yBAEW,CAAC;IAAAA,mCAAA,kCAE8B,EAAE;IAAAA,mCAAA,uBAEhC,EAAE;IAGpC,IAAI,CAACgC,KAAK,GAAGJ,aAAa;IAC1B,IAAI,CAACC,MAAM,GAAGA,MAAM;IAEpB,IAAIC,iBAAiB,EAAE;MACrB,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;KAC3C,MAAM,IAAIC,gBAAgB,EAAE;MAC3BE,OAAO,CAACC,IAAI,CAAC,8EAA8E,CAAC;MAC5F,IAAI,CAACJ,iBAAiB,GAAGC,gBAAgB;;;EAE5C,OAAA7B,gCAAA,CAAAwB,kBAAA;IAAAvB,GAAA;IAAAgC,GAAA,EAmBD,SAAAA,MAA2B;MACzB,OAAO,IAAI,CAACH,KAAK;KAClB;IAAAI,GAAA,EAnBD,SAAAA,IAAyBJ,KAAK,EAAE;MAC9B,IAAI,CAACA,KAAK,GAAGA,KAAK;MAElB,IAAI,IAAI,CAACK,EAAE,EAAE;QACX,IAAI,CAACA,EAAE,CAACC,KAAK,EAAE;;;;IAElBnC,GAAA;IAAAC,KAAA;MAAA,IAAAmC,MAAA,GAAAjC,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,CAED,SAAAgC;QAAA,OAAAjC,uCAAA,CAAAG,IAAA,WAAA+B,SAAA;UAAA,kBAAAA,SAAA,CAAA7B,IAAA,GAAA6B,SAAA,CAAA5B,IAAA;YAAA;cACE,IAAI,IAAI,CAACwB,EAAE,EAAE;;gBAEX,IAAI,CAACA,EAAE,CAACK,SAAS,EAAE;gBAEnB,IAAI,CAACL,EAAE,CAACC,KAAK,EAAE;;YAChB;YAAA;cAAA,OAAAG,SAAA,CAAA1B,IAAA;;WAAAyB,QAAA;OACF;MAAA,SAPYF,KAAKA;QAAA,OAAAC,MAAA,CAAAtB,KAAA,OAAAC,SAAA;;MAAA,OAALoB,KAAK;;;IAAAnC,GAAA;IAAAC,KAAA,EAalB,SAAUuC,UAAUA,GAAG;MAAA,IAAAC,KAAA;MACrB,IAAI,IAAI,CAACP,EAAE,EAAE;QACX,OAAO,IAAI,CAACA,EAAE,CAACQ,WAAW;;MAG5B,IAAMR,EAAO,GAAG,IAAIS,6BAAS,CAAC,IAAI,CAACjB,MAAM,CAAC;MAE1CQ,EAAE,CAACU,aAAa,GAAG,EAAE;MAErBV,EAAE,CAACW,WAAW,GAAG,UAAClD,OAAY,EAAK;QACjC,IAAI,CAACA,OAAO,CAACmD,SAAS,IAAInD,OAAO,CAACmD,SAAS,IAAI,CAACZ,EAAE,CAACU,aAAa,CAACjD,OAAO,CAACmD,SAAS,CAAC,EAAE;UACnFZ,EAAE,CAACa,IAAI,CAAC3B,IAAI,CAACC,SAAS,CAAC1B,OAAO,CAAC,CAAC;UAChCuC,EAAE,CAACU,aAAa,CAACjD,OAAO,CAACmD,SAAS,CAAC,GAAG,IAAI;;OAE7C;MAEDZ,EAAE,CAACK,SAAS,GAAG,YAAM;QACnBE,KAAI,CAACO,YAAY,CAACC,OAAO,CAAC,UAAAtD,OAAO;UAAA,OAAIuC,EAAE,CAACW,WAAW,CAAClD,OAAO,CAAC;UAAC;QAC7D8C,KAAI,CAACO,YAAY,GAAG,EAAE;OACvB;MAEDd,EAAE,CAACgB,SAAS,GAAG,YAAM;QACnB,IAAI,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,GAAGlB,EAAE,CAACmB,oBAAoB,CAACD,OAAO,EAAE,GAAG,CAAC,GAAGX,KAAI,CAACd,iBAAiB,GAAG,IAAI,EAAE;UAChGO,EAAE,CAACC,KAAK,EAAE;SACX,MAAM;UACLmB,MAAM,CAACC,IAAI,CAACd,KAAI,CAACe,uBAAuB,CAAC,CAACP,OAAO,CAAC,UAAAH,SAAS,EAAI;;YAE7DZ,EAAE,CAACW,WAAW,CAACJ,KAAI,CAACe,uBAAuB,CAACV,SAAS,CAAC,CAACnD,OAAO,CAAC;WAChE,CAAC;;OAEL;MAEDuC,EAAE,CAACmB,oBAAoB,GAAG,IAAIF,IAAI,EAAE;MAEpCjB,EAAE,CAACQ,WAAW,GAAG,IAAIe,OAAO,CAAO,UAAAC,OAAO,EAAI;QAC5CxB,EAAE,CAACyB,MAAM,GAAG,YAAM;UAChBzB,EAAE,CAACW,WAAW,CAAC;YAAEpB,aAAa,EAAEgB,KAAI,CAAChB;WAAe,CAAC;SACtD;QAEDS,EAAE,CAAC0B,SAAS,GAAG,UAACC,KAAmB,EAAK;UACtC3B,EAAE,CAACmB,oBAAoB,GAAG,IAAIF,IAAI,EAAE;UAEpC,IAAMxD,OAAY,GAAGyB,IAAI,CAAC0C,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,CAAC;UACtD,IAAIrE,OAAO,CAACsE,SAAS,EAAE;YACrB/B,EAAE,CAACgB,SAAS,EAAE;YACdhB,EAAE,CAACgC,cAAc,GAAGC,WAAW,CAAC,YAAM;cACpCjC,EAAE,CAACU,aAAa,GAAG,EAAE;cACrBV,EAAE,CAACgB,SAAS,EAAE;aACf,EAAET,KAAI,CAACd,iBAAiB,GAAG,IAAI,CAAC;YACjC+B,OAAO,EAAE;;UAGX,IAAIjB,KAAI,CAACe,uBAAuB,CAAC7D,OAAO,CAACmD,SAAS,CAAC,EAAE;YACnDL,KAAI,CAACe,uBAAuB,CAAC7D,OAAO,CAACmD,SAAS,CAAC,CAACsB,QAAQ,CACtD,IAAI5E,wBAAwB,CAACG,OAAO,CACtC,CAAC;;UAGHuC,EAAE,CAACK,SAAS,EAAE;SACf;QAEDL,EAAE,CAACmC,OAAO,GAAG,UAACR,KAAiB,EAAK;UAClC,IAAI3B,EAAE,IAAIA,EAAE,CAACoC,UAAU,KAAK3B,6BAAS,CAAC4B,MAAM,IAAIrC,EAAE,CAACoC,UAAU,KAAK3B,6BAAS,CAAC6B,OAAO,EAAE;YACnFtC,EAAE,CAACC,KAAK,EAAE;;UAGZ,IAAID,EAAE,CAACgC,cAAc,EAAE;YACrBO,aAAa,CAACvC,EAAE,CAACgC,cAAc,CAAC;YAChChC,EAAE,CAACgC,cAAc,GAAG,IAAI;;UAG1B,IAAIzB,KAAI,CAACP,EAAE,KAAKA,EAAE,EAAE;YAClBO,KAAI,CAACP,EAAE,GAAG,IAAI;;;;;YAKd,IAAI,CAAA2B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEa,IAAI,MAAK,IAAI,EAAE;cACxB,IAAMC,KAAK,GAAG,IAAInF,wBAAwB,CAAC;gBACzCE,MAAM,EAAE,GAAG;gBACXC,OAAO,EAAE;kBAAEgF,KAAK,EAAE,CAAAd,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEe,MAAM,KAAI;;eACpC,CAAC;cAEFtB,MAAM,CAACuB,MAAM,CAACpC,KAAI,CAACe,uBAAuB,CAAC,CAACP,OAAO,CAAC,UAAA6B,GAAG,EAAI;gBACzDA,GAAG,CAACV,QAAQ,CAACO,KAAK,CAAC;eACpB,CAAC;cAEFlC,KAAI,CAACe,uBAAuB,GAAG,EAAE;cAEjC;;YAGF,IAAIF,MAAM,CAACC,IAAI,CAACd,KAAI,CAACe,uBAAuB,CAAC,CAACuB,MAAM,EAAE;cACpDtC,KAAI,CAACD,UAAU,EAAE;;;SAGtB;QAEDN,EAAE,CAAC8C,OAAO,GAAG9C,EAAE,CAACmC,OAAO;OACxB,CAAC;MAEF,IAAI,CAACnC,EAAE,GAAGA,EAAE;MAEZ,OAAO,IAAI,CAACA,EAAE,CAACQ,WAAW;;;IAC3B1C,GAAA;IAAAC,KAAA,EAED,SAAU4C,WAAWA,CAAClD,OAAY,EAAE;MAAA,IAAAsF,MAAA;MAClC,IAAItF,OAAO,CAACuF,WAAW,IAAI,IAAI,CAAClC,YAAY,CAACmC,IAAI,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACtC,SAAS,KAAKnD,OAAO,CAACuF,WAAW;QAAC,EAAE;QAC3F,IAAI,CAAClC,YAAY,GAAG,IAAI,CAACA,YAAY,CAACqC,MAAM,CAAC,UAAAD,CAAC;UAAA,OAAIA,CAAC,CAACtC,SAAS,KAAKnD,OAAO,CAACuF,WAAW;UAAC;OACvF,MAAM;QACL,IAAI,CAAClC,YAAY,CAACsC,IAAI,CAAC3F,OAAO,CAAC;;MAGjC4F,UAAU,cAAApF,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,CAAC,SAAAmF;QAAA,OAAApF,uCAAA,CAAAG,IAAA,WAAAkF,SAAA;UAAA,kBAAAA,SAAA,CAAAhF,IAAA,GAAAgF,SAAA,CAAA/E,IAAA;YAAA;cAAA+E,SAAA,CAAA/E,IAAA;cAAA,OACHuE,MAAI,CAACzC,UAAU,EAAE;YAAA;cACvByC,MAAI,CAAC/C,EAAE,CAACK,SAAS,EAAE;YAAC;YAAA;cAAA,OAAAkD,SAAA,CAAA7E,IAAA;;WAAA4E,QAAA;OACrB,IAAE,GAAG,CAAC;;;IACRxF,GAAA;IAAAC,KAAA,EAED,SAAOyF,OAAOA,CACZC,MAAc,EAAAC,KAAA,EAEgC;MAAA,IAD5CC,aAAa,GAAAD,KAAA,CAAbC,aAAa;QAAKC,MAAM,GAAAC,4CAAA,CAAAH,KAAA,EAAAI,SAAA;MAE1B,IAAMrG,OAAgB,GAAG;QACvBmD,SAAS,EAAE,IAAI,CAACmD,cAAc,EAAE;QAChCC,SAAS,EAAEL,aAAa;QACxBF,MAAM,EAANA,MAAM;QACNG,MAAM,EAANA;OACD;MAED,IAAMK,cAA0C,GAAG,EAAE;MACrD,IAAIC,WAA0C,GAAG,IAAI;MAErD,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,GAAS;QAC3B,IAAID,WAAW,EAAE;UACfA,WAAW,CAACD,cAAc,CAACG,GAAG,EAAE,CAAC;UACjCF,WAAW,GAAG,IAAI;;OAErB;MAED,IAAI,CAAC5C,uBAAuB,CAAC7D,OAAO,CAACmD,SAAS,CAAC,GAAG;QAChDnD,OAAO,EAAPA,OAAO;QACPyE,QAAQ,EAAE,SAAVA,QAAQA,CAAGtE,MAAM,EAAK;UACpBqG,cAAc,CAACb,IAAI,CAACxF,MAAM,CAAC;UAC3BuG,cAAc,EAAE;;OAEnB;MAED,IAAME,SAAS,GAAG,IAAI;MAEtB,OAAO;QACCC,SAAS,WAATA,SAASA,CAACpC,QAAQ,EAAE;UAAA,IAAAqC,MAAA;UAAA,OAAAtG,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,UAAAqG;YAAA,IAAA5G,MAAA;YAAA,OAAAM,uCAAA,CAAAG,IAAA,WAAAoG,SAAA;cAAA,kBAAAA,SAAA,CAAAlG,IAAA,GAAAkG,SAAA,CAAAjG,IAAA;gBAAA;kBACxB6F,SAAS,CAAC1D,WAAW,CAAClD,OAAO,CAAC;kBAACgH,SAAA,CAAAjG,IAAA;kBAAA,OAEV,IAAI+C,OAAO,CAA2B,UAACC,OAAO,EAAK;oBACtE0C,WAAW,GAAG1C,OAAO;oBACrB,IAAIyC,cAAc,CAACpB,MAAM,EAAE;sBACzBsB,cAAc,EAAE;;mBAEnB,CAAC;gBAAA;kBALIvG,MAAM,GAAA6G,SAAA,CAAAC,IAAA;kBAAA,OAAAD,SAAA,CAAAhG,MAAA,WAOLyD,QAAQ,CAACtE,MAAM,EAAE;oBAAA,OAAM2G,MAAI,CAACD,SAAS,CAACpC,QAAQ,CAAC;oBAAC;gBAAA;gBAAA;kBAAA,OAAAuC,SAAA,CAAA/F,IAAA;;eAAA8F,QAAA;;SACxD;QACKxB,WAAW,WAAXA,WAAWA,GAAG;UAAA,OAAA/E,qCAAA,cAAAC,uCAAA,CAAAC,IAAA,UAAAwG;YAAA,OAAAzG,uCAAA,CAAAG,IAAA,WAAAuG,SAAA;cAAA,kBAAAA,SAAA,CAAArG,IAAA,GAAAqG,SAAA,CAAApG,IAAA;gBAAA;kBAClB6F,SAAS,CAAC1D,WAAW,CAAC;oBAAEqC,WAAW,EAAEvF,OAAO,CAACmD;mBAAW,CAAC;kBACzD,OAAOyD,SAAS,CAAC/C,uBAAuB,CAAC7D,OAAO,CAACmD,SAAS,CAAC;gBAAC;gBAAA;kBAAA,OAAAgE,SAAA,CAAAlG,IAAA;;eAAAiG,QAAA;;;OAE/D;;;AACF;;;;"}
1
+ {"version":3,"file":"cubejs-client-ws-transport.cjs.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","_ref","status","message","_classCallCheck","_defineProperty","result","_createClass","key","value","_json","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","json","apply","arguments","clone","_text","_callee2","_context2","JSON","stringify","text","WebSocketTransport","_ref2","authorization","apiUrl","heartBeatInterval","hearBeatInterval","token","console","warn","get","set","ws","close","_close","_callee3","_context3","sendQueue","initSocket","_this","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","messageQueue","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","messageIdToSubscription","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","_this2","unsubscribe","find","m","filter","push","setTimeout","_callee4","_context4","request","method","_ref4","baseRequestId","params","_objectWithoutProperties","_excluded","messageCounter","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe","_this3","_callee5","_context5","sent","_callee6","_context6"],"mappings":"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"}
@@ -200,5 +200,5 @@ class WebSocketTransport {
200
200
  }
201
201
  }
202
202
 
203
- export default WebSocketTransport;
203
+ export { WebSocketTransport as default };
204
204
  //# sourceMappingURL=cubejs-client-ws-transport.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-ws-transport.esm.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","constructor","status","message","result","json","clone","text","JSON","stringify","WebSocketTransport","heartBeatInterval","ws","messageCounter","messageIdToSubscription","messageQueue","authorization","apiUrl","hearBeatInterval","token","console","warn","close","sendQueue","initSocket","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","unsubscribe","find","m","filter","push","setTimeout","request","method","baseRequestId","params","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-ws-transport.esm.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","constructor","status","message","result","json","clone","text","JSON","stringify","WebSocketTransport","heartBeatInterval","ws","messageCounter","messageIdToSubscription","messageQueue","authorization","apiUrl","hearBeatInterval","token","console","warn","close","sendQueue","initSocket","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","unsubscribe","find","m","filter","push","setTimeout","request","method","baseRequestId","params","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe"],"mappings":";;AAKA,MAAMA,wBAAwB,CAAC;AAKtBC,EAAAA,WAAWA,CAAC;IAAEC,MAAM;AAAEC,IAAAA,OAAAA;AAA+C,GAAC,EAAE;IAC7E,IAAI,CAACD,MAAM,GAAGA,MAAM,CAAA;IACpB,IAAI,CAACE,MAAM,GAAGD,OAAO,CAAA;AACvB,GAAA;EAEA,MAAaE,IAAIA,GAAG;IAClB,OAAO,IAAI,CAACD,MAAM,CAAA;AACpB,GAAA;AAEOE,EAAAA,KAAKA,GAAG;AACb;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,MAAaC,IAAIA,GAAG;AAClB,IAAA,OAAO,OAAO,IAAI,CAACH,MAAM,KAAK,QAAQ,GAAG,IAAI,CAACA,MAAM,GAAGI,IAAI,CAACC,SAAS,CAAC,IAAI,CAACL,MAAM,CAAC,CAAA;AACpF,GAAA;AACF,CAAA;AAsBA,MAAMM,kBAAkB,CAAiD;AAGpDC,EAAAA,iBAAiB,GAAW,EAAE,CAAA;AAIvCC,EAAAA,EAAE,GAAQ,IAAI,CAAA;AAEdC,EAAAA,cAAc,GAAW,CAAC,CAAA;EAE1BC,uBAAuB,GAAiC,EAAE,CAAA;AAE1DC,EAAAA,YAAY,GAAc,EAAE,CAAA;AAE/Bd,EAAAA,WAAWA,CAAC;IAAEe,aAAa;IAAEC,MAAM;IAAEN,iBAAiB;AAAEO,IAAAA,gBAAAA;AAA4C,GAAC,EAAE;IAC5G,IAAI,CAACC,KAAK,GAAGH,aAAa,CAAA;IAC1B,IAAI,CAACC,MAAM,GAAGA,MAAM,CAAA;AAEpB,IAAA,IAAIN,iBAAiB,EAAE;MACrB,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB,CAAA;KAC3C,MAAM,IAAIO,gBAAgB,EAAE;AAC3BE,MAAAA,OAAO,CAACC,IAAI,CAAC,8EAA8E,CAAC,CAAA;MAC5F,IAAI,CAACV,iBAAiB,GAAGO,gBAAgB,CAAA;AAC3C,KAAA;AACF,GAAA;EAEA,IAAWF,aAAaA,CAACG,KAAK,EAAE;IAC9B,IAAI,CAACA,KAAK,GAAGA,KAAK,CAAA;IAElB,IAAI,IAAI,CAACP,EAAE,EAAE;AACX,MAAA,IAAI,CAACA,EAAE,CAACU,KAAK,EAAE,CAAA;AACjB,KAAA;AACF,GAAA;EAEA,MAAaA,KAAKA,GAAkB;IAClC,IAAI,IAAI,CAACV,EAAE,EAAE;AACX;AACA,MAAA,IAAI,CAACA,EAAE,CAACW,SAAS,EAAE,CAAA;AAEnB,MAAA,IAAI,CAACX,EAAE,CAACU,KAAK,EAAE,CAAA;AACjB,KAAA;AACF,GAAA;EAEA,IAAWN,aAAaA,GAAG;IACzB,OAAO,IAAI,CAACG,KAAK,CAAA;AACnB,GAAA;AAEUK,EAAAA,UAAUA,GAAG;IACrB,IAAI,IAAI,CAACZ,EAAE,EAAE;AACX,MAAA,OAAO,IAAI,CAACA,EAAE,CAACa,WAAW,CAAA;AAC5B,KAAA;IAEA,MAAMb,EAAO,GAAG,IAAIc,SAAS,CAAC,IAAI,CAACT,MAAM,CAAC,CAAA;AAE1CL,IAAAA,EAAE,CAACe,aAAa,GAAG,EAAE,CAAA;AAErBf,IAAAA,EAAE,CAACgB,WAAW,GAAIzB,OAAY,IAAK;AACjC,MAAA,IAAI,CAACA,OAAO,CAAC0B,SAAS,IAAI1B,OAAO,CAAC0B,SAAS,IAAI,CAACjB,EAAE,CAACe,aAAa,CAACxB,OAAO,CAAC0B,SAAS,CAAC,EAAE;QACnFjB,EAAE,CAACkB,IAAI,CAACtB,IAAI,CAACC,SAAS,CAACN,OAAO,CAAC,CAAC,CAAA;QAChCS,EAAE,CAACe,aAAa,CAACxB,OAAO,CAAC0B,SAAS,CAAC,GAAG,IAAI,CAAA;AAC5C,OAAA;KACD,CAAA;IAEDjB,EAAE,CAACW,SAAS,GAAG,MAAM;AACnB,MAAA,IAAI,CAACR,YAAY,CAACgB,OAAO,CAAC5B,OAAO,IAAIS,EAAE,CAACgB,WAAW,CAACzB,OAAO,CAAC,CAAC,CAAA;MAC7D,IAAI,CAACY,YAAY,GAAG,EAAE,CAAA;KACvB,CAAA;IAEDH,EAAE,CAACoB,SAAS,GAAG,MAAM;MACnB,IAAI,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE,GAAGtB,EAAE,CAACuB,oBAAoB,CAACD,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAACvB,iBAAiB,GAAG,IAAI,EAAE;QAChGC,EAAE,CAACU,KAAK,EAAE,CAAA;AACZ,OAAC,MAAM;QACLc,MAAM,CAACC,IAAI,CAAC,IAAI,CAACvB,uBAAuB,CAAC,CAACiB,OAAO,CAACF,SAAS,IAAI;AAC7D;UACAjB,EAAE,CAACgB,WAAW,CAAC,IAAI,CAACd,uBAAuB,CAACe,SAAS,CAAC,CAAC1B,OAAO,CAAC,CAAA;AACjE,SAAC,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;AAEDS,IAAAA,EAAE,CAACuB,oBAAoB,GAAG,IAAIF,IAAI,EAAE,CAAA;AAEpCrB,IAAAA,EAAE,CAACa,WAAW,GAAG,IAAIa,OAAO,CAAOC,OAAO,IAAI;MAC5C3B,EAAE,CAAC4B,MAAM,GAAG,MAAM;QAChB5B,EAAE,CAACgB,WAAW,CAAC;UAAEZ,aAAa,EAAE,IAAI,CAACA,aAAAA;AAAc,SAAC,CAAC,CAAA;OACtD,CAAA;AAEDJ,MAAAA,EAAE,CAAC6B,SAAS,GAAIC,KAAmB,IAAK;AACtC9B,QAAAA,EAAE,CAACuB,oBAAoB,GAAG,IAAIF,IAAI,EAAE,CAAA;AAEpC,QAAA,MAAM9B,OAAY,GAAGK,IAAI,CAACmC,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,QAAQ,EAAE,CAAC,CAAA;QACtD,IAAI1C,OAAO,CAAC2C,SAAS,EAAE;UACrBlC,EAAE,CAACoB,SAAS,EAAE,CAAA;AACdpB,UAAAA,EAAE,CAACmC,cAAc,GAAGC,WAAW,CAAC,MAAM;AACpCpC,YAAAA,EAAE,CAACe,aAAa,GAAG,EAAE,CAAA;YACrBf,EAAE,CAACoB,SAAS,EAAE,CAAA;AAChB,WAAC,EAAE,IAAI,CAACrB,iBAAiB,GAAG,IAAI,CAAC,CAAA;AACjC4B,UAAAA,OAAO,EAAE,CAAA;AACX,SAAA;QAEA,IAAI,IAAI,CAACzB,uBAAuB,CAACX,OAAO,CAAC0B,SAAS,CAAC,EAAE;AACnD,UAAA,IAAI,CAACf,uBAAuB,CAACX,OAAO,CAAC0B,SAAS,CAAC,CAACoB,QAAQ,CACtD,IAAIjD,wBAAwB,CAACG,OAAO,CACtC,CAAC,CAAA;AACH,SAAA;QAEAS,EAAE,CAACW,SAAS,EAAE,CAAA;OACf,CAAA;AAEDX,MAAAA,EAAE,CAACsC,OAAO,GAAIR,KAAiB,IAAK;AAClC,QAAA,IAAI9B,EAAE,IAAIA,EAAE,CAACuC,UAAU,KAAKzB,SAAS,CAAC0B,MAAM,IAAIxC,EAAE,CAACuC,UAAU,KAAKzB,SAAS,CAAC2B,OAAO,EAAE;UACnFzC,EAAE,CAACU,KAAK,EAAE,CAAA;AACZ,SAAA;QAEA,IAAIV,EAAE,CAACmC,cAAc,EAAE;AACrBO,UAAAA,aAAa,CAAC1C,EAAE,CAACmC,cAAc,CAAC,CAAA;UAChCnC,EAAE,CAACmC,cAAc,GAAG,IAAI,CAAA;AAC1B,SAAA;AAEA,QAAA,IAAI,IAAI,CAACnC,EAAE,KAAKA,EAAE,EAAE;UAClB,IAAI,CAACA,EAAE,GAAG,IAAI,CAAA;;AAEd;AACA;AACA;AACA,UAAA,IAAI8B,KAAK,EAAEa,IAAI,KAAK,IAAI,EAAE;AACxB,YAAA,MAAMC,KAAK,GAAG,IAAIxD,wBAAwB,CAAC;AACzCE,cAAAA,MAAM,EAAE,GAAG;AACXC,cAAAA,OAAO,EAAE;AAAEqD,gBAAAA,KAAK,EAAEd,KAAK,EAAEe,MAAM,IAAI,2BAAA;AAA4B,eAAA;AACjE,aAAC,CAAC,CAAA;YAEFrB,MAAM,CAACsB,MAAM,CAAC,IAAI,CAAC5C,uBAAuB,CAAC,CAACiB,OAAO,CAAC4B,GAAG,IAAI;AACzDA,cAAAA,GAAG,CAACV,QAAQ,CAACO,KAAK,CAAC,CAAA;AACrB,aAAC,CAAC,CAAA;AAEF,YAAA,IAAI,CAAC1C,uBAAuB,GAAG,EAAE,CAAA;AAEjC,YAAA,OAAA;AACF,WAAA;UAEA,IAAIsB,MAAM,CAACC,IAAI,CAAC,IAAI,CAACvB,uBAAuB,CAAC,CAAC8C,MAAM,EAAE;YACpD,IAAI,CAACpC,UAAU,EAAE,CAAA;AACnB,WAAA;AACF,SAAA;OACD,CAAA;AAEDZ,MAAAA,EAAE,CAACiD,OAAO,GAAGjD,EAAE,CAACsC,OAAO,CAAA;AACzB,KAAC,CAAC,CAAA;IAEF,IAAI,CAACtC,EAAE,GAAGA,EAAE,CAAA;AAEZ,IAAA,OAAO,IAAI,CAACA,EAAE,CAACa,WAAW,CAAA;AAC5B,GAAA;EAEUG,WAAWA,CAACzB,OAAY,EAAE;IAClC,IAAIA,OAAO,CAAC2D,WAAW,IAAI,IAAI,CAAC/C,YAAY,CAACgD,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACnC,SAAS,KAAK1B,OAAO,CAAC2D,WAAW,CAAC,EAAE;AAC3F,MAAA,IAAI,CAAC/C,YAAY,GAAG,IAAI,CAACA,YAAY,CAACkD,MAAM,CAACD,CAAC,IAAIA,CAAC,CAACnC,SAAS,KAAK1B,OAAO,CAAC2D,WAAW,CAAC,CAAA;AACxF,KAAC,MAAM;AACL,MAAA,IAAI,CAAC/C,YAAY,CAACmD,IAAI,CAAC/D,OAAO,CAAC,CAAA;AACjC,KAAA;AAEAgE,IAAAA,UAAU,CAAC,YAAY;AACrB,MAAA,MAAM,IAAI,CAAC3C,UAAU,EAAE,CAAA;AACvB,MAAA,IAAI,CAACZ,EAAE,CAACW,SAAS,EAAE,CAAA;KACpB,EAAE,GAAG,CAAC,CAAA;AACT,GAAA;EAEO6C,OAAOA,CACZC,MAAc,EACd;IAAEC,aAAa;IAAE,GAAGC,MAAAA;AAAgC,GAAC,EACP;AAC9C,IAAA,MAAMpE,OAAgB,GAAG;AACvB0B,MAAAA,SAAS,EAAE,IAAI,CAAChB,cAAc,EAAE;AAChC2D,MAAAA,SAAS,EAAEF,aAAa;MACxBD,MAAM;AACNE,MAAAA,MAAAA;KACD,CAAA;IAED,MAAME,cAA0C,GAAG,EAAE,CAAA;IACrD,IAAIC,WAA0C,GAAG,IAAI,CAAA;IAErD,MAAMC,cAAc,GAAGA,MAAM;AAC3B,MAAA,IAAID,WAAW,EAAE;AACfA,QAAAA,WAAW,CAACD,cAAc,CAACG,GAAG,EAAE,CAAC,CAAA;AACjCF,QAAAA,WAAW,GAAG,IAAI,CAAA;AACpB,OAAA;KACD,CAAA;AAED,IAAA,IAAI,CAAC5D,uBAAuB,CAACX,OAAO,CAAC0B,SAAS,CAAC,GAAG;MAChD1B,OAAO;MACP8C,QAAQ,EAAG7C,MAAM,IAAK;AACpBqE,QAAAA,cAAc,CAACP,IAAI,CAAC9D,MAAM,CAAC,CAAA;AAC3BuE,QAAAA,cAAc,EAAE,CAAA;AAClB,OAAA;KACD,CAAA;IAED,MAAME,SAAS,GAAG,IAAI,CAAA;IAEtB,OAAO;MACL,MAAMC,SAASA,CAAC7B,QAAQ,EAAE;AACxB4B,QAAAA,SAAS,CAACjD,WAAW,CAACzB,OAAO,CAAC,CAAA;AAE9B,QAAA,MAAMC,MAAM,GAAG,MAAM,IAAIkC,OAAO,CAA4BC,OAAO,IAAK;AACtEmC,UAAAA,WAAW,GAAGnC,OAAO,CAAA;UACrB,IAAIkC,cAAc,CAACb,MAAM,EAAE;AACzBe,YAAAA,cAAc,EAAE,CAAA;AAClB,WAAA;AACF,SAAC,CAAC,CAAA;QAEF,OAAO1B,QAAQ,CAAC7C,MAAM,EAAE,MAAM,IAAI,CAAC0E,SAAS,CAAC7B,QAAQ,CAAC,CAAC,CAAA;OACxD;MACD,MAAMa,WAAWA,GAAG;QAClBe,SAAS,CAACjD,WAAW,CAAC;UAAEkC,WAAW,EAAE3D,OAAO,CAAC0B,SAAAA;AAAU,SAAC,CAAC,CAAA;AACzD,QAAA,OAAOgD,SAAS,CAAC/D,uBAAuB,CAACX,OAAO,CAAC0B,SAAS,CAAC,CAAA;AAC7D,OAAA;KACD,CAAA;AACH,GAAA;AACF;;;;"}
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@babel/runtime/helpers/objectWithoutProperties'), require('@babel/runtime/helpers/asyncToGenerator'), require('@babel/runtime/helpers/classCallCheck'), require('@babel/runtime/helpers/createClass'), require('@babel/runtime/helpers/defineProperty'), require('core-js/modules/es.array.filter.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.array.for-each.js'), require('core-js/modules/es.date.to-json.js'), require('core-js/modules/es.date.to-string.js'), require('core-js/modules/es.object.keys.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.object.values.js'), require('core-js/modules/es.promise.js'), require('core-js/modules/es.regexp.to-string.js'), require('core-js/modules/web.dom-collections.for-each.js'), require('core-js/modules/web.timers.js'), require('@babel/runtime/regenerator'), require('isomorphic-ws')) :
3
3
  typeof define === 'function' && define.amd ? define(['@babel/runtime/helpers/objectWithoutProperties', '@babel/runtime/helpers/asyncToGenerator', '@babel/runtime/helpers/classCallCheck', '@babel/runtime/helpers/createClass', '@babel/runtime/helpers/defineProperty', 'core-js/modules/es.array.filter.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.for-each.js', 'core-js/modules/es.date.to-json.js', 'core-js/modules/es.date.to-string.js', 'core-js/modules/es.object.keys.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.object.values.js', 'core-js/modules/es.promise.js', 'core-js/modules/es.regexp.to-string.js', 'core-js/modules/web.dom-collections.for-each.js', 'core-js/modules/web.timers.js', '@babel/runtime/regenerator', 'isomorphic-ws'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.CubejsWebSocketTransport = factory(global._objectWithoutProperties, global._asyncToGenerator, global._classCallCheck, global._createClass, global._defineProperty, null, null, null, null, null, null, null, null, null, null, null, null, global._regeneratorRuntime, global.WebSocket));
5
- }(this, (function (_objectWithoutProperties, _asyncToGenerator, _classCallCheck, _createClass, _defineProperty, es_array_filter_js, es_array_find_js, es_array_forEach_js, es_date_toJson_js, es_date_toString_js, es_object_keys_js, es_object_toString_js, es_object_values_js, es_promise_js, es_regexp_toString_js, web_domCollections_forEach_js, web_timers_js, _regeneratorRuntime, WebSocket) { 'use strict';
5
+ })(this, (function (_objectWithoutProperties, _asyncToGenerator, _classCallCheck, _createClass, _defineProperty, es_array_filter_js, es_array_find_js, es_array_forEach_js, es_date_toJson_js, es_date_toString_js, es_object_keys_js, es_object_toString_js, es_object_values_js, es_promise_js, es_regexp_toString_js, web_domCollections_forEach_js, web_timers_js, _regeneratorRuntime, WebSocket) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -19,17 +19,17 @@
19
19
  function WebSocketTransportResult(_ref) {
20
20
  var status = _ref.status,
21
21
  message = _ref.message;
22
- _classCallCheck__default['default'](this, WebSocketTransportResult);
23
- _defineProperty__default['default'](this, "status", void 0);
24
- _defineProperty__default['default'](this, "result", void 0);
22
+ _classCallCheck__default["default"](this, WebSocketTransportResult);
23
+ _defineProperty__default["default"](this, "status", void 0);
24
+ _defineProperty__default["default"](this, "result", void 0);
25
25
  this.status = status;
26
26
  this.result = message;
27
27
  }
28
- return _createClass__default['default'](WebSocketTransportResult, [{
28
+ return _createClass__default["default"](WebSocketTransportResult, [{
29
29
  key: "json",
30
30
  value: function () {
31
- var _json = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
32
- return _regeneratorRuntime__default['default'].wrap(function (_context) {
31
+ var _json = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
32
+ return _regeneratorRuntime__default["default"].wrap(function (_context) {
33
33
  while (1) switch (_context.prev = _context.next) {
34
34
  case 0:
35
35
  return _context.abrupt("return", this.result);
@@ -53,8 +53,8 @@
53
53
  }, {
54
54
  key: "text",
55
55
  value: function () {
56
- var _text = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
57
- return _regeneratorRuntime__default['default'].wrap(function (_context2) {
56
+ var _text = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
57
+ return _regeneratorRuntime__default["default"].wrap(function (_context2) {
58
58
  while (1) switch (_context2.prev = _context2.next) {
59
59
  case 0:
60
60
  return _context2.abrupt("return", typeof this.result === 'string' ? this.result : JSON.stringify(this.result));
@@ -77,14 +77,14 @@
77
77
  apiUrl = _ref2.apiUrl,
78
78
  heartBeatInterval = _ref2.heartBeatInterval,
79
79
  hearBeatInterval = _ref2.hearBeatInterval;
80
- _classCallCheck__default['default'](this, WebSocketTransport);
81
- _defineProperty__default['default'](this, "apiUrl", void 0);
82
- _defineProperty__default['default'](this, "heartBeatInterval", 60);
83
- _defineProperty__default['default'](this, "token", void 0);
84
- _defineProperty__default['default'](this, "ws", null);
85
- _defineProperty__default['default'](this, "messageCounter", 1);
86
- _defineProperty__default['default'](this, "messageIdToSubscription", {});
87
- _defineProperty__default['default'](this, "messageQueue", []);
80
+ _classCallCheck__default["default"](this, WebSocketTransport);
81
+ _defineProperty__default["default"](this, "apiUrl", void 0);
82
+ _defineProperty__default["default"](this, "heartBeatInterval", 60);
83
+ _defineProperty__default["default"](this, "token", void 0);
84
+ _defineProperty__default["default"](this, "ws", null);
85
+ _defineProperty__default["default"](this, "messageCounter", 1);
86
+ _defineProperty__default["default"](this, "messageIdToSubscription", {});
87
+ _defineProperty__default["default"](this, "messageQueue", []);
88
88
  this.token = authorization;
89
89
  this.apiUrl = apiUrl;
90
90
  if (heartBeatInterval) {
@@ -94,7 +94,7 @@
94
94
  this.heartBeatInterval = hearBeatInterval;
95
95
  }
96
96
  }
97
- return _createClass__default['default'](WebSocketTransport, [{
97
+ return _createClass__default["default"](WebSocketTransport, [{
98
98
  key: "authorization",
99
99
  get: function get() {
100
100
  return this.token;
@@ -108,8 +108,8 @@
108
108
  }, {
109
109
  key: "close",
110
110
  value: function () {
111
- var _close = _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee3() {
112
- return _regeneratorRuntime__default['default'].wrap(function (_context3) {
111
+ var _close = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() {
112
+ return _regeneratorRuntime__default["default"].wrap(function (_context3) {
113
113
  while (1) switch (_context3.prev = _context3.next) {
114
114
  case 0:
115
115
  if (this.ws) {
@@ -135,7 +135,7 @@
135
135
  if (this.ws) {
136
136
  return this.ws.initPromise;
137
137
  }
138
- var ws = new WebSocket__default['default'](this.apiUrl);
138
+ var ws = new WebSocket__default["default"](this.apiUrl);
139
139
  ws.messageIdSent = {};
140
140
  ws.sendMessage = function (message) {
141
141
  if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {
@@ -183,7 +183,7 @@
183
183
  ws.sendQueue();
184
184
  };
185
185
  ws.onclose = function (event) {
186
- if (ws && ws.readyState !== WebSocket__default['default'].CLOSED && ws.readyState !== WebSocket__default['default'].CLOSING) {
186
+ if (ws && ws.readyState !== WebSocket__default["default"].CLOSED && ws.readyState !== WebSocket__default["default"].CLOSING) {
187
187
  ws.close();
188
188
  }
189
189
  if (ws.reconcileTimer) {
@@ -232,8 +232,8 @@
232
232
  } else {
233
233
  this.messageQueue.push(message);
234
234
  }
235
- setTimeout(/*#__PURE__*/_asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee4() {
236
- return _regeneratorRuntime__default['default'].wrap(function (_context4) {
235
+ setTimeout(/*#__PURE__*/_asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4() {
236
+ return _regeneratorRuntime__default["default"].wrap(function (_context4) {
237
237
  while (1) switch (_context4.prev = _context4.next) {
238
238
  case 0:
239
239
  _context4.next = 1;
@@ -251,7 +251,7 @@
251
251
  key: "request",
252
252
  value: function request(method, _ref4) {
253
253
  var baseRequestId = _ref4.baseRequestId,
254
- params = _objectWithoutProperties__default['default'](_ref4, _excluded);
254
+ params = _objectWithoutProperties__default["default"](_ref4, _excluded);
255
255
  var message = {
256
256
  messageId: this.messageCounter++,
257
257
  requestId: baseRequestId,
@@ -277,9 +277,9 @@
277
277
  return {
278
278
  subscribe: function subscribe(callback) {
279
279
  var _this3 = this;
280
- return _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee5() {
280
+ return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5() {
281
281
  var result;
282
- return _regeneratorRuntime__default['default'].wrap(function (_context5) {
282
+ return _regeneratorRuntime__default["default"].wrap(function (_context5) {
283
283
  while (1) switch (_context5.prev = _context5.next) {
284
284
  case 0:
285
285
  transport.sendMessage(message);
@@ -303,8 +303,8 @@
303
303
  }))();
304
304
  },
305
305
  unsubscribe: function unsubscribe() {
306
- return _asyncToGenerator__default['default'](/*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee6() {
307
- return _regeneratorRuntime__default['default'].wrap(function (_context6) {
306
+ return _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee6() {
307
+ return _regeneratorRuntime__default["default"].wrap(function (_context6) {
308
308
  while (1) switch (_context6.prev = _context6.next) {
309
309
  case 0:
310
310
  transport.sendMessage({
@@ -325,5 +325,5 @@
325
325
 
326
326
  return WebSocketTransport;
327
327
 
328
- })));
328
+ }));
329
329
  //# sourceMappingURL=cubejs-client-ws-transport.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cubejs-client-ws-transport.umd.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","_ref","status","message","_classCallCheck","_defineProperty","result","_createClass","key","value","_json","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","json","apply","arguments","clone","_text","_callee2","_context2","JSON","stringify","text","WebSocketTransport","_ref2","authorization","apiUrl","heartBeatInterval","hearBeatInterval","token","console","warn","get","set","ws","close","_close","_callee3","_context3","sendQueue","initSocket","_this","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","messageQueue","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","messageIdToSubscription","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","_this2","unsubscribe","find","m","filter","push","setTimeout","_callee4","_context4","request","method","_ref4","baseRequestId","params","_objectWithoutProperties","_excluded","messageCounter","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe","_this3","_callee5","_context5","sent","_callee6","_context6"],"mappings":"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"}
1
+ {"version":3,"file":"cubejs-client-ws-transport.umd.js","sources":["../src/index.ts"],"sourcesContent":["import WebSocket from 'isomorphic-ws';\n\nimport type { CloseEvent, MessageEvent } from 'ws';\nimport type { ITransport, ITransportResponse } from '@cubejs-client/core';\n\nclass WebSocketTransportResult {\n protected readonly status: unknown;\n\n protected readonly result: unknown;\n\n public constructor({ status, message }: { status: unknown, message: unknown }) {\n this.status = status;\n this.result = message;\n }\n\n public async json() {\n return this.result;\n }\n\n public clone() {\n // no need to actually clone it\n return this;\n }\n\n public async text() {\n return typeof this.result === 'string' ? this.result : JSON.stringify(this.result);\n }\n}\n\ntype WebSocketTransportOptions = {\n authorization?: string,\n apiUrl: string,\n // @deprecated\n hearBeatInterval?: number,\n heartBeatInterval?: number,\n};\n\ntype Message = {\n messageId: number,\n requestId: any,\n method: string,\n params: Record<string, unknown>,\n};\n\ntype Subscription = {\n message: Message,\n callback: (result: WebSocketTransportResult) => void,\n};\n\nclass WebSocketTransport implements ITransport<WebSocketTransportResult> {\n protected readonly apiUrl: string;\n\n protected readonly heartBeatInterval: number = 60;\n\n protected token: string | undefined;\n\n protected ws: any = null;\n\n protected messageCounter: number = 1;\n\n protected messageIdToSubscription: Record<number, Subscription> = {};\n\n protected messageQueue: Message[] = [];\n\n public constructor({ authorization, apiUrl, heartBeatInterval, hearBeatInterval }: WebSocketTransportOptions) {\n this.token = authorization;\n this.apiUrl = apiUrl;\n\n if (heartBeatInterval) {\n this.heartBeatInterval = heartBeatInterval;\n } else if (hearBeatInterval) {\n console.warn('Option hearBeatInterval is deprecated. It was replaced by heartBeatInterval.');\n this.heartBeatInterval = hearBeatInterval;\n }\n }\n\n public set authorization(token) {\n this.token = token;\n\n if (this.ws) {\n this.ws.close();\n }\n }\n\n public async close(): Promise<void> {\n if (this.ws) {\n // Flush send queue before sending close frame\n this.ws.sendQueue();\n\n this.ws.close();\n }\n }\n\n public get authorization() {\n return this.token;\n }\n\n protected initSocket() {\n if (this.ws) {\n return this.ws.initPromise;\n }\n\n const ws: any = new WebSocket(this.apiUrl);\n\n ws.messageIdSent = {};\n\n ws.sendMessage = (message: any) => {\n if (!message.messageId || message.messageId && !ws.messageIdSent[message.messageId]) {\n ws.send(JSON.stringify(message));\n ws.messageIdSent[message.messageId] = true;\n }\n };\n\n ws.sendQueue = () => {\n this.messageQueue.forEach(message => ws.sendMessage(message));\n this.messageQueue = [];\n };\n\n ws.reconcile = () => {\n if (new Date().getTime() - ws.lastMessageTimestamp.getTime() > 4 * this.heartBeatInterval * 1000) {\n ws.close();\n } else {\n Object.keys(this.messageIdToSubscription).forEach(messageId => {\n // @ts-ignore\n ws.sendMessage(this.messageIdToSubscription[messageId].message);\n });\n }\n };\n\n ws.lastMessageTimestamp = new Date();\n\n ws.initPromise = new Promise<void>(resolve => {\n ws.onopen = () => {\n ws.sendMessage({ authorization: this.authorization });\n };\n\n ws.onmessage = (event: MessageEvent) => {\n ws.lastMessageTimestamp = new Date();\n\n const message: any = JSON.parse(event.data.toString());\n if (message.handshake) {\n ws.reconcile();\n ws.reconcileTimer = setInterval(() => {\n ws.messageIdSent = {};\n ws.reconcile();\n }, this.heartBeatInterval * 1000);\n resolve();\n }\n\n if (this.messageIdToSubscription[message.messageId]) {\n this.messageIdToSubscription[message.messageId].callback(\n new WebSocketTransportResult(message)\n );\n }\n\n ws.sendQueue();\n };\n\n ws.onclose = (event: CloseEvent) => {\n if (ws && ws.readyState !== WebSocket.CLOSED && ws.readyState !== WebSocket.CLOSING) {\n ws.close();\n }\n\n if (ws.reconcileTimer) {\n clearInterval(ws.reconcileTimer);\n ws.reconcileTimer = null;\n }\n\n if (this.ws === ws) {\n this.ws = null;\n\n // Close code 1009: Message Too Big. Server rejects messages exceeding maxPayload\n // without decoding. Retrying would cause an infinite loop, so we notify subscribers\n // and clear subscriptions instead.\n if (event?.code === 1009) {\n const error = new WebSocketTransportResult({\n status: 413,\n message: { error: event?.reason || 'WebSocket message too big' }\n });\n\n Object.values(this.messageIdToSubscription).forEach(sub => {\n sub.callback(error);\n });\n\n this.messageIdToSubscription = {};\n\n return;\n }\n\n if (Object.keys(this.messageIdToSubscription).length) {\n this.initSocket();\n }\n }\n };\n\n ws.onerror = ws.onclose;\n });\n\n this.ws = ws;\n\n return this.ws.initPromise;\n }\n\n protected sendMessage(message: any) {\n if (message.unsubscribe && this.messageQueue.find(m => m.messageId === message.unsubscribe)) {\n this.messageQueue = this.messageQueue.filter(m => m.messageId !== message.unsubscribe);\n } else {\n this.messageQueue.push(message);\n }\n\n setTimeout(async () => {\n await this.initSocket();\n this.ws.sendQueue();\n }, 100);\n }\n\n public request(\n method: string,\n { baseRequestId, ...params }: Record<string, unknown>\n ): ITransportResponse<WebSocketTransportResult> {\n const message: Message = {\n messageId: this.messageCounter++,\n requestId: baseRequestId,\n method,\n params\n };\n\n const pendingResults: WebSocketTransportResult[] = [];\n let nextMessage: ((value: any) => void) | null = null;\n\n const runNextMessage = () => {\n if (nextMessage) {\n nextMessage(pendingResults.pop());\n nextMessage = null;\n }\n };\n\n this.messageIdToSubscription[message.messageId] = {\n message,\n callback: (result) => {\n pendingResults.push(result);\n runNextMessage();\n }\n };\n\n const transport = this;\n\n return {\n async subscribe(callback) {\n transport.sendMessage(message);\n\n const result = await new Promise<WebSocketTransportResult>((resolve) => {\n nextMessage = resolve;\n if (pendingResults.length) {\n runNextMessage();\n }\n });\n\n return callback(result, () => this.subscribe(callback));\n },\n async unsubscribe() {\n transport.sendMessage({ unsubscribe: message.messageId });\n delete transport.messageIdToSubscription[message.messageId];\n }\n };\n }\n}\n\nexport default WebSocketTransport;\n"],"names":["WebSocketTransportResult","_ref","status","message","_classCallCheck","_defineProperty","result","_createClass","key","value","_json","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","json","apply","arguments","clone","_text","_callee2","_context2","JSON","stringify","text","WebSocketTransport","_ref2","authorization","apiUrl","heartBeatInterval","hearBeatInterval","token","console","warn","get","set","ws","close","_close","_callee3","_context3","sendQueue","initSocket","_this","initPromise","WebSocket","messageIdSent","sendMessage","messageId","send","messageQueue","forEach","reconcile","Date","getTime","lastMessageTimestamp","Object","keys","messageIdToSubscription","Promise","resolve","onopen","onmessage","event","parse","data","toString","handshake","reconcileTimer","setInterval","callback","onclose","readyState","CLOSED","CLOSING","clearInterval","code","error","reason","values","sub","length","onerror","_this2","unsubscribe","find","m","filter","push","setTimeout","_callee4","_context4","request","method","_ref4","baseRequestId","params","_objectWithoutProperties","_excluded","messageCounter","requestId","pendingResults","nextMessage","runNextMessage","pop","transport","subscribe","_this3","_callee5","_context5","sent","_callee6","_context6"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubejs-client/ws-transport",
3
- "version": "1.6.16",
3
+ "version": "1.6.18",
4
4
  "engines": {},
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@babel/runtime": "^7.1.2",
23
- "@cubejs-client/core": "1.6.16",
23
+ "@cubejs-client/core": "1.6.18",
24
24
  "core-js": "^3.6.5",
25
25
  "isomorphic-ws": "^4.0.1",
26
26
  "ws": "^7.3.1"
@@ -33,7 +33,7 @@
33
33
  "@babel/core": "^7.3.3",
34
34
  "@babel/preset-env": "^7.3.1",
35
35
  "@babel/preset-typescript": "^7.12.1",
36
- "@cubejs-backend/linter": "1.6.16",
36
+ "@cubejs-backend/linter": "1.6.18",
37
37
  "@types/ws": "^7.2.9",
38
38
  "typescript": "~5.2.2"
39
39
  },
@@ -43,5 +43,5 @@
43
43
  "eslintConfig": {
44
44
  "extends": "../cubejs-linter"
45
45
  },
46
- "gitHead": "880d52ea3e8cae08a9c03b9bb27b3b4a68988a2c"
46
+ "gitHead": "098d185fe7647c734964548ef74d2f3991ae265c"
47
47
  }