Socket
Socket
Sign inDemoInstall

graphql-ws

Package Overview
Dependencies
Maintainers
1
Versions
103
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

graphql-ws - npm Package Compare versions

Comparing version 5.5.2 to 5.5.3

6

lib/client.js

@@ -184,3 +184,3 @@ "use strict";

catch (err) {
socket.close(common_1.CloseCode.BadRequest, err instanceof Error ? err.message : new Error(err).message);
socket.close(common_1.CloseCode.InternalClientError, err instanceof Error ? err.message : new Error(err).message);
}

@@ -229,3 +229,3 @@ };

socket.onmessage = null; // stop reading messages as soon as reading breaks once
socket.close(common_1.CloseCode.BadRequest, err instanceof Error ? err.message : new Error(err).message);
socket.close(common_1.CloseCode.BadResponse, err instanceof Error ? err.message : new Error(err).message);
}

@@ -279,3 +279,5 @@ };

common_1.CloseCode.InternalServerError,
common_1.CloseCode.InternalClientError,
common_1.CloseCode.BadRequest,
common_1.CloseCode.BadResponse,
common_1.CloseCode.Unauthorized,

@@ -282,0 +284,0 @@ // CloseCode.Forbidden, might grant access out after retry

@@ -20,3 +20,5 @@ /**

InternalServerError = 4500,
InternalClientError = 4005,
BadRequest = 4400,
BadResponse = 4004,
/** Tried subscribing before connect ack */

@@ -23,0 +25,0 @@ Unauthorized = 4401,

@@ -24,3 +24,5 @@ "use strict";

CloseCode[CloseCode["InternalServerError"] = 4500] = "InternalServerError";
CloseCode[CloseCode["InternalClientError"] = 4005] = "InternalClientError";
CloseCode[CloseCode["BadRequest"] = 4400] = "BadRequest";
CloseCode[CloseCode["BadResponse"] = 4004] = "BadResponse";
/** Tried subscribing before connect ack */

@@ -27,0 +29,0 @@ CloseCode[CloseCode["Unauthorized"] = 4401] = "Unauthorized";

{
"name": "graphql-ws",
"version": "5.5.2",
"version": "5.5.3",
"description": "Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client",

@@ -5,0 +5,0 @@ "keywords": [

@@ -53,3 +53,5 @@ (function (global, factory) {

CloseCode[CloseCode["InternalServerError"] = 4500] = "InternalServerError";
CloseCode[CloseCode["InternalClientError"] = 4005] = "InternalClientError";
CloseCode[CloseCode["BadRequest"] = 4400] = "BadRequest";
CloseCode[CloseCode["BadResponse"] = 4004] = "BadResponse";
/** Tried subscribing before connect ack */

@@ -331,3 +333,3 @@ CloseCode[CloseCode["Unauthorized"] = 4401] = "Unauthorized";

catch (err) {
socket.close(exports.CloseCode.BadRequest, err instanceof Error ? err.message : new Error(err).message);
socket.close(exports.CloseCode.InternalClientError, err instanceof Error ? err.message : new Error(err).message);
}

@@ -376,3 +378,3 @@ };

socket.onmessage = null; // stop reading messages as soon as reading breaks once
socket.close(exports.CloseCode.BadRequest, err instanceof Error ? err.message : new Error(err).message);
socket.close(exports.CloseCode.BadResponse, err instanceof Error ? err.message : new Error(err).message);
}

@@ -426,3 +428,5 @@ };

exports.CloseCode.InternalServerError,
exports.CloseCode.InternalClientError,
exports.CloseCode.BadRequest,
exports.CloseCode.BadResponse,
exports.CloseCode.Unauthorized,

@@ -429,0 +433,0 @@ // CloseCode.Forbidden, might grant access out after retry

@@ -1,1 +0,1 @@

!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).graphqlWs={})}(this,(function(e){"use strict";const o=Object.prototype.hasOwnProperty;function n(e){return"object"==typeof e&&null!==e}function t(e,n){return o.call(e,n)}function r(e,t){return o.call(e,t)&&n(e[t])}function i(e,n){return o.call(e,n)&&"string"==typeof e[n]}const a="graphql-transport-ws";var s,c;function l(o){if(n(o)){if(!i(o,"type"))return!1;switch(o.type){case e.MessageType.ConnectionInit:case e.MessageType.ConnectionAck:case e.MessageType.Ping:case e.MessageType.Pong:return!t(o,"payload")||void 0===o.payload||n(o.payload);case e.MessageType.Subscribe:return i(o,"id")&&r(o,"payload")&&(!t(o.payload,"operationName")||void 0===o.payload.operationName||null===o.payload.operationName||"string"==typeof o.payload.operationName)&&i(o.payload,"query")&&(!t(o.payload,"variables")||void 0===o.payload.variables||null===o.payload.variables||r(o.payload,"variables"))&&(!t(o.payload,"extensions")||void 0===o.payload.extensions||null===o.payload.extensions||r(o.payload,"extensions"));case e.MessageType.Next:return i(o,"id")&&r(o,"payload");case e.MessageType.Error:return i(o,"id")&&(a=o.payload,Array.isArray(a)&&a.length>0&&a.every((e=>"message"in e)));case e.MessageType.Complete:return i(o,"id");default:return!1}}var a;return!1}function d(e,o){if(l(e))return e;if("string"!=typeof e)throw new Error("Message not parsable");const n=JSON.parse(e,o);if(!l(n))throw new Error("Invalid message");return n}function p(e,o){if(!l(e))throw new Error("Cannot stringify invalid message");return JSON.stringify(e,o)}function u(e){return n(e)&&"code"in e&&"reason"in e}e.CloseCode=void 0,(s=e.CloseCode||(e.CloseCode={}))[s.InternalServerError=4500]="InternalServerError",s[s.BadRequest=4400]="BadRequest",s[s.Unauthorized=4401]="Unauthorized",s[s.Forbidden=4403]="Forbidden",s[s.SubprotocolNotAcceptable=4406]="SubprotocolNotAcceptable",s[s.ConnectionInitialisationTimeout=4408]="ConnectionInitialisationTimeout",s[s.ConnectionAcknowledgementTimeout=4504]="ConnectionAcknowledgementTimeout",s[s.SubscriberAlreadyExists=4409]="SubscriberAlreadyExists",s[s.TooManyInitialisationRequests=4429]="TooManyInitialisationRequests",e.MessageType=void 0,(c=e.MessageType||(e.MessageType={})).ConnectionInit="connection_init",c.ConnectionAck="connection_ack",c.Ping="ping",c.Pong="pong",c.Subscribe="subscribe",c.Next="next",c.Error="error",c.Complete="complete",e.GRAPHQL_TRANSPORT_WS_PROTOCOL=a,e.createClient=function(o){const{url:n,connectionParams:t,lazy:r=!0,onNonLazyError:i=console.error,lazyCloseTimeout:s=0,keepAlive:c=0,disablePong:l,connectionAckWaitTimeout:y=0,retryAttempts:g=5,retryWait:f=async function(e){let o=1e3;for(let n=0;n<e;n++)o*=2;await new Promise((e=>setTimeout(e,o+Math.floor(2700*Math.random()+300))))},isFatalConnectionProblem:m=(e=>!u(e)),on:C,webSocketImpl:b,generateID:w=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const o=16*Math.random()|0;return("x"==e?o:3&o|8).toString(16)}))},jsonMessageReplacer:x,jsonMessageReviver:v}=o;let T;if(b){if(!("function"==typeof(M=b)&&"constructor"in M&&"CLOSED"in M&&"CLOSING"in M&&"CONNECTING"in M&&"OPEN"in M))throw new Error("Invalid WebSocket implementation provided");T=b}else"undefined"!=typeof WebSocket?T=WebSocket:"undefined"!=typeof global?T=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(T=window.WebSocket||window.MozWebSocket);var M;if(!T)throw new Error("WebSocket implementation missing");const S=T,h=(()=>{const e=(()=>{const e={};return{on:(o,n)=>(e[o]=n,()=>{delete e[o]}),emit(o){var n;"id"in o&&(null===(n=e[o.id])||void 0===n||n.call(e,o))}}})(),o={connecting:(null==C?void 0:C.connecting)?[C.connecting]:[],opened:(null==C?void 0:C.opened)?[C.opened]:[],connected:(null==C?void 0:C.connected)?[C.connected]:[],ping:(null==C?void 0:C.ping)?[C.ping]:[],pong:(null==C?void 0:C.pong)?[C.pong]:[],message:(null==C?void 0:C.message)?[e.emit,C.message]:[e.emit],closed:(null==C?void 0:C.closed)?[C.closed]:[],error:(null==C?void 0:C.error)?[C.error]:[]};return{onMessage:e.on,on(e,n){const t=o[e];return t.push(n),()=>{t.splice(t.indexOf(n),1)}},emit(e,...n){for(const t of o[e])t(...n)}}})();let E,N=0,P=!1,A=0,k=!1;async function I(){const[o,r]=await(null!=E?E:E=new Promise(((o,r)=>(async()=>{if(P){if(await f(A),!N)return E=void 0,r({code:1e3,reason:"All Subscriptions Gone"});A++}h.emit("connecting");const i=new S("function"==typeof n?await n():n,a);let s,u;function g(){isFinite(c)&&c>0&&(clearTimeout(u),u=setTimeout((()=>{i.readyState===S.OPEN&&(i.send(p({type:e.MessageType.Ping})),h.emit("ping",!1,void 0))}),c))}i.onerror=e=>{h.emit("error",e)},i.onclose=e=>{E=void 0,clearTimeout(s),clearTimeout(u),h.emit("closed",e),r(e)},i.onopen=async()=>{try{h.emit("opened",i);const o="function"==typeof t?await t():t;i.send(p(o?{type:e.MessageType.ConnectionInit,payload:o}:{type:e.MessageType.ConnectionInit},x)),isFinite(y)&&y>0&&(s=setTimeout((()=>{i.close(e.CloseCode.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")}),y)),g()}catch(o){i.close(e.CloseCode.BadRequest,o instanceof Error?o.message:new Error(o).message)}};let m=!1;i.onmessage=({data:n})=>{try{const t=d(n,v);if(h.emit("message",t),"ping"===t.type||"pong"===t.type)return h.emit(t.type,!0,t.payload),void("pong"===t.type?g():l||(i.send(p(t.payload?{type:e.MessageType.Pong,payload:t.payload}:{type:e.MessageType.Pong})),h.emit("pong",!1,t.payload)));if(m)return;if(t.type!==e.MessageType.ConnectionAck)throw new Error(`First message cannot be of type ${t.type}`);clearTimeout(s),m=!0,h.emit("connected",i,t.payload),P=!1,A=0,o([i,new Promise(((e,o)=>i.addEventListener("close",o)))])}catch(o){i.onmessage=null,i.close(e.CloseCode.BadRequest,o instanceof Error?o.message:new Error(o).message)}}})())));o.readyState===S.CLOSING&&await r;let i=()=>{};const u=new Promise((e=>i=e));return[o,i,Promise.race([u.then((()=>{if(!N){const e=()=>o.close(1e3,"Normal Closure");isFinite(s)&&s>0?setTimeout((()=>{N||o.readyState!==S.OPEN||e()}),s):e()}})),r])]}function O(o){if(u(o)&&(n=o.code,![1e3,1001,1006,1005,1012,1013,1013].includes(n)&&n>=1e3&&n<=1999||[e.CloseCode.InternalServerError,e.CloseCode.BadRequest,e.CloseCode.Unauthorized,e.CloseCode.SubprotocolNotAcceptable,e.CloseCode.SubscriberAlreadyExists,e.CloseCode.TooManyInitialisationRequests].includes(o.code)))throw o;var n;if(k)return!1;if(u(o)&&1e3===o.code)return N>0;if(!g||A>=g)throw o;if(m(o))throw o;return P=!0}return r||(async()=>{for(N++;;)try{const[,,e]=await I();await e}catch(e){try{if(!O(e))return}catch(e){return null==i?void 0:i(e)}}})(),{on:h.on,subscribe(o,n){const t=w();let r=!1,i=!1,a=()=>{N--,r=!0};return(async()=>{for(N++;;)try{const[s,c,l]=await I();if(r)return c();const d=h.onMessage(t,(o=>{switch(o.type){case e.MessageType.Next:return void n.next(o.payload);case e.MessageType.Error:return i=!0,r=!0,n.error(o.payload),void a();case e.MessageType.Complete:return r=!0,void a()}}));return s.send(p({id:t,type:e.MessageType.Subscribe,payload:o},x)),a=()=>{r||s.readyState!==S.OPEN||s.send(p({id:t,type:e.MessageType.Complete},x)),N--,r=!0,c()},void await l.finally(d)}catch(e){if(!O(e))return}})().catch((e=>{i=!0,r=!0,n.error(e)})).then((()=>{r=!0,i||n.complete()})),()=>{r||a()}},async dispose(){if(k=!0,E){const[e]=await E;e.close(1e3,"Normal Closure")}}}},e.isMessage=l,e.parseMessage=d,e.stringifyMessage=p,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self).graphqlWs={})}(this,(function(e){"use strict";const o=Object.prototype.hasOwnProperty;function n(e){return"object"==typeof e&&null!==e}function t(e,n){return o.call(e,n)}function r(e,t){return o.call(e,t)&&n(e[t])}function i(e,n){return o.call(e,n)&&"string"==typeof e[n]}const a="graphql-transport-ws";var s,l;function c(o){if(n(o)){if(!i(o,"type"))return!1;switch(o.type){case e.MessageType.ConnectionInit:case e.MessageType.ConnectionAck:case e.MessageType.Ping:case e.MessageType.Pong:return!t(o,"payload")||void 0===o.payload||n(o.payload);case e.MessageType.Subscribe:return i(o,"id")&&r(o,"payload")&&(!t(o.payload,"operationName")||void 0===o.payload.operationName||null===o.payload.operationName||"string"==typeof o.payload.operationName)&&i(o.payload,"query")&&(!t(o.payload,"variables")||void 0===o.payload.variables||null===o.payload.variables||r(o.payload,"variables"))&&(!t(o.payload,"extensions")||void 0===o.payload.extensions||null===o.payload.extensions||r(o.payload,"extensions"));case e.MessageType.Next:return i(o,"id")&&r(o,"payload");case e.MessageType.Error:return i(o,"id")&&(a=o.payload,Array.isArray(a)&&a.length>0&&a.every((e=>"message"in e)));case e.MessageType.Complete:return i(o,"id");default:return!1}}var a;return!1}function d(e,o){if(c(e))return e;if("string"!=typeof e)throw new Error("Message not parsable");const n=JSON.parse(e,o);if(!c(n))throw new Error("Invalid message");return n}function p(e,o){if(!c(e))throw new Error("Cannot stringify invalid message");return JSON.stringify(e,o)}function u(e){return n(e)&&"code"in e&&"reason"in e}e.CloseCode=void 0,(s=e.CloseCode||(e.CloseCode={}))[s.InternalServerError=4500]="InternalServerError",s[s.InternalClientError=4005]="InternalClientError",s[s.BadRequest=4400]="BadRequest",s[s.BadResponse=4004]="BadResponse",s[s.Unauthorized=4401]="Unauthorized",s[s.Forbidden=4403]="Forbidden",s[s.SubprotocolNotAcceptable=4406]="SubprotocolNotAcceptable",s[s.ConnectionInitialisationTimeout=4408]="ConnectionInitialisationTimeout",s[s.ConnectionAcknowledgementTimeout=4504]="ConnectionAcknowledgementTimeout",s[s.SubscriberAlreadyExists=4409]="SubscriberAlreadyExists",s[s.TooManyInitialisationRequests=4429]="TooManyInitialisationRequests",e.MessageType=void 0,(l=e.MessageType||(e.MessageType={})).ConnectionInit="connection_init",l.ConnectionAck="connection_ack",l.Ping="ping",l.Pong="pong",l.Subscribe="subscribe",l.Next="next",l.Error="error",l.Complete="complete",e.GRAPHQL_TRANSPORT_WS_PROTOCOL=a,e.createClient=function(o){const{url:n,connectionParams:t,lazy:r=!0,onNonLazyError:i=console.error,lazyCloseTimeout:s=0,keepAlive:l=0,disablePong:c,connectionAckWaitTimeout:y=0,retryAttempts:g=5,retryWait:f=async function(e){let o=1e3;for(let n=0;n<e;n++)o*=2;await new Promise((e=>setTimeout(e,o+Math.floor(2700*Math.random()+300))))},isFatalConnectionProblem:m=(e=>!u(e)),on:C,webSocketImpl:b,generateID:w=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const o=16*Math.random()|0;return("x"==e?o:3&o|8).toString(16)}))},jsonMessageReplacer:x,jsonMessageReviver:v}=o;let T;if(b){if(!("function"==typeof(M=b)&&"constructor"in M&&"CLOSED"in M&&"CLOSING"in M&&"CONNECTING"in M&&"OPEN"in M))throw new Error("Invalid WebSocket implementation provided");T=b}else"undefined"!=typeof WebSocket?T=WebSocket:"undefined"!=typeof global?T=global.WebSocket||global.MozWebSocket:"undefined"!=typeof window&&(T=window.WebSocket||window.MozWebSocket);var M;if(!T)throw new Error("WebSocket implementation missing");const S=T,h=(()=>{const e=(()=>{const e={};return{on:(o,n)=>(e[o]=n,()=>{delete e[o]}),emit(o){var n;"id"in o&&(null===(n=e[o.id])||void 0===n||n.call(e,o))}}})(),o={connecting:(null==C?void 0:C.connecting)?[C.connecting]:[],opened:(null==C?void 0:C.opened)?[C.opened]:[],connected:(null==C?void 0:C.connected)?[C.connected]:[],ping:(null==C?void 0:C.ping)?[C.ping]:[],pong:(null==C?void 0:C.pong)?[C.pong]:[],message:(null==C?void 0:C.message)?[e.emit,C.message]:[e.emit],closed:(null==C?void 0:C.closed)?[C.closed]:[],error:(null==C?void 0:C.error)?[C.error]:[]};return{onMessage:e.on,on(e,n){const t=o[e];return t.push(n),()=>{t.splice(t.indexOf(n),1)}},emit(e,...n){for(const t of o[e])t(...n)}}})();let E,N=0,P=!1,I=0,A=!1;async function k(){const[o,r]=await(null!=E?E:E=new Promise(((o,r)=>(async()=>{if(P){if(await f(I),!N)return E=void 0,r({code:1e3,reason:"All Subscriptions Gone"});I++}h.emit("connecting");const i=new S("function"==typeof n?await n():n,a);let s,u;function g(){isFinite(l)&&l>0&&(clearTimeout(u),u=setTimeout((()=>{i.readyState===S.OPEN&&(i.send(p({type:e.MessageType.Ping})),h.emit("ping",!1,void 0))}),l))}i.onerror=e=>{h.emit("error",e)},i.onclose=e=>{E=void 0,clearTimeout(s),clearTimeout(u),h.emit("closed",e),r(e)},i.onopen=async()=>{try{h.emit("opened",i);const o="function"==typeof t?await t():t;i.send(p(o?{type:e.MessageType.ConnectionInit,payload:o}:{type:e.MessageType.ConnectionInit},x)),isFinite(y)&&y>0&&(s=setTimeout((()=>{i.close(e.CloseCode.ConnectionAcknowledgementTimeout,"Connection acknowledgement timeout")}),y)),g()}catch(o){i.close(e.CloseCode.InternalClientError,o instanceof Error?o.message:new Error(o).message)}};let m=!1;i.onmessage=({data:n})=>{try{const t=d(n,v);if(h.emit("message",t),"ping"===t.type||"pong"===t.type)return h.emit(t.type,!0,t.payload),void("pong"===t.type?g():c||(i.send(p(t.payload?{type:e.MessageType.Pong,payload:t.payload}:{type:e.MessageType.Pong})),h.emit("pong",!1,t.payload)));if(m)return;if(t.type!==e.MessageType.ConnectionAck)throw new Error(`First message cannot be of type ${t.type}`);clearTimeout(s),m=!0,h.emit("connected",i,t.payload),P=!1,I=0,o([i,new Promise(((e,o)=>i.addEventListener("close",o)))])}catch(o){i.onmessage=null,i.close(e.CloseCode.BadResponse,o instanceof Error?o.message:new Error(o).message)}}})())));o.readyState===S.CLOSING&&await r;let i=()=>{};const u=new Promise((e=>i=e));return[o,i,Promise.race([u.then((()=>{if(!N){const e=()=>o.close(1e3,"Normal Closure");isFinite(s)&&s>0?setTimeout((()=>{N||o.readyState!==S.OPEN||e()}),s):e()}})),r])]}function O(o){if(u(o)&&(n=o.code,![1e3,1001,1006,1005,1012,1013,1013].includes(n)&&n>=1e3&&n<=1999||[e.CloseCode.InternalServerError,e.CloseCode.InternalClientError,e.CloseCode.BadRequest,e.CloseCode.BadResponse,e.CloseCode.Unauthorized,e.CloseCode.SubprotocolNotAcceptable,e.CloseCode.SubscriberAlreadyExists,e.CloseCode.TooManyInitialisationRequests].includes(o.code)))throw o;var n;if(A)return!1;if(u(o)&&1e3===o.code)return N>0;if(!g||I>=g)throw o;if(m(o))throw o;return P=!0}return r||(async()=>{for(N++;;)try{const[,,e]=await k();await e}catch(e){try{if(!O(e))return}catch(e){return null==i?void 0:i(e)}}})(),{on:h.on,subscribe(o,n){const t=w();let r=!1,i=!1,a=()=>{N--,r=!0};return(async()=>{for(N++;;)try{const[s,l,c]=await k();if(r)return l();const d=h.onMessage(t,(o=>{switch(o.type){case e.MessageType.Next:return void n.next(o.payload);case e.MessageType.Error:return i=!0,r=!0,n.error(o.payload),void a();case e.MessageType.Complete:return r=!0,void a()}}));return s.send(p({id:t,type:e.MessageType.Subscribe,payload:o},x)),a=()=>{r||s.readyState!==S.OPEN||s.send(p({id:t,type:e.MessageType.Complete},x)),N--,r=!0,l()},void await c.finally(d)}catch(e){if(!O(e))return}})().catch((e=>{i=!0,r=!0,n.error(e)})).then((()=>{r=!0,i||n.complete()})),()=>{r||a()}},async dispose(){if(A=!0,E){const[e]=await E;e.close(1e3,"Normal Closure")}}}},e.isMessage=c,e.parseMessage=d,e.stringifyMessage=p,Object.defineProperty(e,"__esModule",{value:!0})}));

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc