@fishjam-cloud/js-server-sdk 0.1.1 → 0.1.2

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.
package/README.md CHANGED
@@ -31,8 +31,8 @@ See [examples](https://github.com/fishjam-cloud/js-server-sdk/tree/main/examples
31
31
 
32
32
  ## Copyright and License
33
33
 
34
- Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=fishjam)
34
+ Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=fishjam-js-server-sdk)
35
35
 
36
- [![Software Mansion](https://logo.swmansion.com/logo?color=white&variant=desktop&width=200&tag=membrane-github)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=fishjam)
36
+ [![Software Mansion](https://logo.swmansion.com/logo?color=white&variant=desktop&width=200&tag=fishjam-github)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=fishjam-js-server-sdk)
37
37
 
38
38
  Licensed under the [Apache License, Version 2.0](LICENSE)
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var C=Object.create;var v=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var _=(t,e)=>{for(var o in e)v(t,o,{get:e[o],enumerable:!0})},y=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of N(e))!M.call(t,s)&&s!==o&&v(t,s,{get:()=>e[s],enumerable:!(r=S(e,s))||r.enumerable});return t};var E=(t,e,o)=>(o=t!=null?C(T(t)):{},y(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t)),j=t=>y(v({},"__esModule",{value:!0}),t);var H={};_(H,{BadRequestException:()=>m,FishjamClient:()=>w,FishjamWSNotifier:()=>g,Peer:()=>i.Peer,PeerNotFoundException:()=>f,PeerOptions:()=>i.PeerOptions,PeerStatus:()=>i.PeerStatus,RoomConfig:()=>i.RoomConfig,RoomNotFoundException:()=>u,ServiceUnavailableException:()=>h,UnauthorizedException:()=>l});module.exports=j(H);var i=require("@fishjam-cloud/fishjam-openapi");var x=E(require("websocket")),b=require("events");var n=require("@fishjam-cloud/fishjam-proto");var F=["roomCreated","roomDeleted","roomCrashed","peerAdded","peerDeleted","peerConnected","peerDisconnected","peerMetadataUpdated","peerCrashed","trackAdded","trackRemoved","trackMetadataUpdated"],g=class extends b.EventEmitter{client;constructor(e,o,r,s){super(),this.client=new x.client;let R=`${e.fishjamUrl.replace("http","ws")}/socket/server/websocket`;this.client.on("connectFailed",p=>s(p)),this.client.on("connect",p=>this.setupConnection(p,e.serverToken,o,r)),this.client.connect(R)}dispatchNotification(e){if(e.type=="utf8"){console.warn("UTF-8 is an invalid notification type");return}try{let o=n.ServerMessage.toJSON(n.ServerMessage.decode(e.binaryData)),[r]=Object.keys(o);if(!this.isAllowedNotification(r))return;this.emit(r,o)}catch(o){console.error("Couldn't decode websocket server message."),console.error(o),console.error(e)}}setupConnection(e,o,r,s){let R=n.ServerMessage.encode({authRequest:{token:o}}).finish(),p=n.ServerMessage.encode({subscribeRequest:{eventType:n.ServerMessage_EventType.EVENT_TYPE_SERVER_NOTIFICATION}}).finish();e.send(R),e.send(p),e.on("message",d=>this.dispatchNotification(d)),e.on("error",d=>r(d)),e.on("close",(d,k)=>s(d,k))}isAllowedNotification(e){return F.includes(e)}};var P=E(require("axios")),A=require("@fishjam-cloud/fishjam-openapi");var a=class extends Error{constructor(e){super(e),this.name=this.constructor.name}},m=class extends a{constructor(){super("Invalid request body structure")}},l=class extends a{constructor(){super("Unauthorized")}},u=class extends a{constructor(){super("Room not found")}},f=class extends a{constructor(){super("Peer not found")}},h=class extends a{constructor(){super("Service unavailable")}};var c=(t,e)=>{switch(t){case 400:throw new m;case 401:throw new l;case 404:switch(e){case"peer":throw new f;case"room":throw new u;default:return}case 503:throw new h;default:return}};var w=class{roomApi;constructor(e){let o=P.default.create({validateStatus:r=>[200,201,400,401,404,503].includes(r),headers:{Authorization:`Bearer ${e.serverToken}`}});this.roomApi=new A.RoomApi(void 0,e.fishjamUrl,o)}async createPeer(e,o={}){let r=await this.roomApi.addPeer(e,{type:"webrtc",options:o});c(r.status);let{data:{data:s}}=r;return{peer:s.peer,token:s.token}}async createRoom(e={}){let o=await this.roomApi.createRoom(e);c(o.status);let{data:{data:{room:{components:r,...s}}}}=o;return s}async getAllRooms(){let e=await this.roomApi.getAllRooms();return c(e.status),e.data.data.map(({components:o,...r})=>r)??[]}async getRoom(e){let o=await this.roomApi.getRoom(e);c(o.status,"room");let{components:r,...s}=o.data.data;return s}async deletePeer(e,o){let r=await this.roomApi.deletePeer(e,o);c(r.status,"peer")}async deleteRoom(e){let o=await this.roomApi.deleteRoom(e);c(o.status,"room")}};0&&(module.exports={BadRequestException,FishjamClient,FishjamWSNotifier,Peer,PeerNotFoundException,PeerOptions,PeerStatus,RoomConfig,RoomNotFoundException,ServiceUnavailableException,UnauthorizedException});
1
+ "use strict";var S=Object.create;var v=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var j=(t,e)=>{for(var o in e)v(t,o,{get:e[o],enumerable:!0})},y=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of T(e))!_.call(t,s)&&s!==o&&v(t,s,{get:()=>e[s],enumerable:!(r=N(e,s))||r.enumerable});return t};var E=(t,e,o)=>(o=t!=null?S(M(t)):{},y(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t)),U=t=>y(v({},"__esModule",{value:!0}),t);var H={};j(H,{BadRequestException:()=>d,FishjamClient:()=>w,FishjamWSNotifier:()=>g,Peer:()=>i.Peer,PeerNotFoundException:()=>f,PeerOptions:()=>i.PeerOptions,PeerStatus:()=>i.PeerStatus,RoomConfig:()=>i.RoomConfig,RoomNotFoundException:()=>u,ServiceUnavailableException:()=>h,UnauthorizedException:()=>l});module.exports=U(H);var i=require("@fishjam-cloud/fishjam-openapi");var x=E(require("websocket")),P=require("events");var n=require("@fishjam-cloud/fishjam-proto");var b=t=>{let e=new URL(t);return e.protocol=e.protocol.replace("http","ws"),e.href};var F=["roomCreated","roomDeleted","roomCrashed","peerAdded","peerDeleted","peerConnected","peerDisconnected","peerMetadataUpdated","peerCrashed","trackAdded","trackRemoved","trackMetadataUpdated"],g=class extends P.EventEmitter{client;constructor(e,o,r,s){super(),this.client=new x.client;let R=`${b(e.fishjamUrl)}/socket/server/websocket`;this.client.on("connectFailed",p=>s(p)),this.client.on("connect",p=>this.setupConnection(p,e.serverToken,o,r)),this.client.connect(R)}dispatchNotification(e){if(e.type=="utf8"){console.warn("UTF-8 is an invalid notification type");return}try{let o=n.ServerMessage.toJSON(n.ServerMessage.decode(e.binaryData)),[r]=Object.keys(o);if(!this.isAllowedNotification(r))return;this.emit(r,o)}catch(o){console.error("Couldn't decode websocket server message."),console.error(o),console.error(e)}}setupConnection(e,o,r,s){let R=n.ServerMessage.encode({authRequest:{token:o}}).finish(),p=n.ServerMessage.encode({subscribeRequest:{eventType:n.ServerMessage_EventType.EVENT_TYPE_SERVER_NOTIFICATION}}).finish();e.send(R),e.send(p),e.on("message",m=>this.dispatchNotification(m)),e.on("error",m=>r(m)),e.on("close",(m,C)=>s(m,C))}isAllowedNotification(e){return F.includes(e)}};var k=E(require("axios")),A=require("@fishjam-cloud/fishjam-openapi");var a=class extends Error{constructor(e){super(e),this.name=this.constructor.name}},d=class extends a{constructor(){super("Invalid request body structure")}},l=class extends a{constructor(){super("Unauthorized")}},u=class extends a{constructor(){super("Room not found")}},f=class extends a{constructor(){super("Peer not found")}},h=class extends a{constructor(){super("Service unavailable")}};var c=(t,e)=>{switch(t){case 400:throw new d;case 401:throw new l;case 404:switch(e){case"peer":throw new f;case"room":throw new u;default:return}case 503:throw new h;default:return}};var w=class{roomApi;constructor(e){let o=k.default.create({validateStatus:r=>[200,201,400,401,404,503].includes(r),headers:{Authorization:`Bearer ${e.serverToken}`}});this.roomApi=new A.RoomApi(void 0,e.fishjamUrl,o)}async createPeer(e,o={}){let r=await this.roomApi.addPeer(e,{type:"webrtc",options:o});c(r.status);let{data:{data:s}}=r;return{peer:s.peer,token:s.token}}async createRoom(e={}){let o=await this.roomApi.createRoom(e);c(o.status);let{data:{data:{room:{components:r,...s}}}}=o;return s}async getAllRooms(){let e=await this.roomApi.getAllRooms();return c(e.status),e.data.data.map(({components:o,...r})=>r)??[]}async getRoom(e){let o=await this.roomApi.getRoom(e);c(o.status,"room");let{components:r,...s}=o.data.data;return s}async deletePeer(e,o){let r=await this.roomApi.deletePeer(e,o);c(r.status,"peer")}async deleteRoom(e){let o=await this.roomApi.deleteRoom(e);c(o.status,"room")}};0&&(module.exports={BadRequestException,FishjamClient,FishjamWSNotifier,Peer,PeerNotFoundException,PeerOptions,PeerStatus,RoomConfig,RoomNotFoundException,ServiceUnavailableException,UnauthorizedException});
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{a as d,c as g}from"./chunk-PVJVFZZS.mjs";import{Peer as I,PeerStatus as q,RoomConfig as z,PeerOptions as V}from"@fishjam-cloud/fishjam-openapi";import*as R from"websocket";import{EventEmitter as E}from"events";var b=["roomCreated","roomDeleted","roomCrashed","peerAdded","peerDeleted","peerConnected","peerDisconnected","peerMetadataUpdated","peerCrashed","trackAdded","trackRemoved","trackMetadataUpdated"],v=class extends E{client;constructor(e,o,t,r){super(),this.client=new R.client;let h=`${e.fishjamUrl.replace("http","ws")}/socket/server/websocket`;this.client.on("connectFailed",a=>r(a)),this.client.on("connect",a=>this.setupConnection(a,e.serverToken,o,t)),this.client.connect(h)}dispatchNotification(e){if(e.type=="utf8"){console.warn("UTF-8 is an invalid notification type");return}try{let o=d.toJSON(d.decode(e.binaryData)),[t]=Object.keys(o);if(!this.isAllowedNotification(t))return;this.emit(t,o)}catch(o){console.error("Couldn't decode websocket server message."),console.error(o),console.error(e)}}setupConnection(e,o,t,r){let h=d.encode({authRequest:{token:o}}).finish(),a=d.encode({subscribeRequest:{eventType:g.EVENT_TYPE_SERVER_NOTIFICATION}}).finish();e.send(h),e.send(a),e.on("message",c=>this.dispatchNotification(c)),e.on("error",c=>t(c)),e.on("close",(c,y)=>r(c,y))}isAllowedNotification(e){return b.includes(e)}};import x from"axios";import{RoomApi as P}from"@fishjam-cloud/fishjam-openapi";var n=class extends Error{constructor(e){super(e),this.name=this.constructor.name}},p=class extends n{constructor(){super("Invalid request body structure")}},m=class extends n{constructor(){super("Unauthorized")}},l=class extends n{constructor(){super("Room not found")}},u=class extends n{constructor(){super("Peer not found")}},f=class extends n{constructor(){super("Service unavailable")}};var i=(s,e)=>{switch(s){case 400:throw new p;case 401:throw new m;case 404:switch(e){case"peer":throw new u;case"room":throw new l;default:return}case 503:throw new f;default:return}};var w=class{roomApi;constructor(e){let o=x.create({validateStatus:t=>[200,201,400,401,404,503].includes(t),headers:{Authorization:`Bearer ${e.serverToken}`}});this.roomApi=new P(void 0,e.fishjamUrl,o)}async createPeer(e,o={}){let t=await this.roomApi.addPeer(e,{type:"webrtc",options:o});i(t.status);let{data:{data:r}}=t;return{peer:r.peer,token:r.token}}async createRoom(e={}){let o=await this.roomApi.createRoom(e);i(o.status);let{data:{data:{room:{components:t,...r}}}}=o;return r}async getAllRooms(){let e=await this.roomApi.getAllRooms();return i(e.status),e.data.data.map(({components:o,...t})=>t)??[]}async getRoom(e){let o=await this.roomApi.getRoom(e);i(o.status,"room");let{components:t,...r}=o.data.data;return r}async deletePeer(e,o){let t=await this.roomApi.deletePeer(e,o);i(t.status,"peer")}async deleteRoom(e){let o=await this.roomApi.deleteRoom(e);i(o.status,"room")}};export{p as BadRequestException,w as FishjamClient,v as FishjamWSNotifier,I as Peer,u as PeerNotFoundException,V as PeerOptions,q as PeerStatus,z as RoomConfig,l as RoomNotFoundException,f as ServiceUnavailableException,m as UnauthorizedException};
1
+ import{a as p,c as g}from"./chunk-PVJVFZZS.mjs";import{Peer as V,PeerStatus as $,RoomConfig as J,PeerOptions as L}from"@fishjam-cloud/fishjam-openapi";import*as y from"websocket";import{EventEmitter as b}from"events";var R=r=>{let e=new URL(r);return e.protocol=e.protocol.replace("http","ws"),e.href};var x=["roomCreated","roomDeleted","roomCrashed","peerAdded","peerDeleted","peerConnected","peerDisconnected","peerMetadataUpdated","peerCrashed","trackAdded","trackRemoved","trackMetadataUpdated"],v=class extends b{client;constructor(e,o,t,s){super(),this.client=new y.client;let h=`${R(e.fishjamUrl)}/socket/server/websocket`;this.client.on("connectFailed",a=>s(a)),this.client.on("connect",a=>this.setupConnection(a,e.serverToken,o,t)),this.client.connect(h)}dispatchNotification(e){if(e.type=="utf8"){console.warn("UTF-8 is an invalid notification type");return}try{let o=p.toJSON(p.decode(e.binaryData)),[t]=Object.keys(o);if(!this.isAllowedNotification(t))return;this.emit(t,o)}catch(o){console.error("Couldn't decode websocket server message."),console.error(o),console.error(e)}}setupConnection(e,o,t,s){let h=p.encode({authRequest:{token:o}}).finish(),a=p.encode({subscribeRequest:{eventType:g.EVENT_TYPE_SERVER_NOTIFICATION}}).finish();e.send(h),e.send(a),e.on("message",c=>this.dispatchNotification(c)),e.on("error",c=>t(c)),e.on("close",(c,E)=>s(c,E))}isAllowedNotification(e){return x.includes(e)}};import P from"axios";import{RoomApi as k}from"@fishjam-cloud/fishjam-openapi";var n=class extends Error{constructor(e){super(e),this.name=this.constructor.name}},m=class extends n{constructor(){super("Invalid request body structure")}},d=class extends n{constructor(){super("Unauthorized")}},l=class extends n{constructor(){super("Room not found")}},u=class extends n{constructor(){super("Peer not found")}},f=class extends n{constructor(){super("Service unavailable")}};var i=(r,e)=>{switch(r){case 400:throw new m;case 401:throw new d;case 404:switch(e){case"peer":throw new u;case"room":throw new l;default:return}case 503:throw new f;default:return}};var w=class{roomApi;constructor(e){let o=P.create({validateStatus:t=>[200,201,400,401,404,503].includes(t),headers:{Authorization:`Bearer ${e.serverToken}`}});this.roomApi=new k(void 0,e.fishjamUrl,o)}async createPeer(e,o={}){let t=await this.roomApi.addPeer(e,{type:"webrtc",options:o});i(t.status);let{data:{data:s}}=t;return{peer:s.peer,token:s.token}}async createRoom(e={}){let o=await this.roomApi.createRoom(e);i(o.status);let{data:{data:{room:{components:t,...s}}}}=o;return s}async getAllRooms(){let e=await this.roomApi.getAllRooms();return i(e.status),e.data.data.map(({components:o,...t})=>t)??[]}async getRoom(e){let o=await this.roomApi.getRoom(e);i(o.status,"room");let{components:t,...s}=o.data.data;return s}async deletePeer(e,o){let t=await this.roomApi.deletePeer(e,o);i(t.status,"peer")}async deleteRoom(e){let o=await this.roomApi.deleteRoom(e);i(o.status,"room")}};export{m as BadRequestException,w as FishjamClient,v as FishjamWSNotifier,V as Peer,u as PeerNotFoundException,L as PeerOptions,$ as PeerStatus,J as RoomConfig,l as RoomNotFoundException,f as ServiceUnavailableException,d as UnauthorizedException};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishjam-cloud/js-server-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Fishjam server SDK for JavaScript",
5
5
  "homepage": "https://github.com/fishjam-cloud/js-server-sdk",
6
6
  "author": "Fishjam Cloud Team",
@@ -47,19 +47,17 @@
47
47
  "outDir": "dist"
48
48
  },
49
49
  "dependencies": {
50
- "@fishjam-cloud/fishjam-openapi": "0.1.1",
51
- "@fishjam-cloud/fishjam-proto": "0.1.0",
52
- "axios": "^1.6.8",
50
+ "@fishjam-cloud/fishjam-openapi": "0.1.2",
51
+ "@fishjam-cloud/fishjam-proto": "0.1.2",
52
+ "axios": "^1.7.4",
53
53
  "websocket": "^1.0.35"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@openapitools/openapi-generator-cli": "^2.13.4",
57
- "@types/node": "^20.12.7",
57
+ "@types/node": "^22.4.1",
58
58
  "@types/websocket": "^1.0.10",
59
- "prettier": "3.2.5",
60
- "tsup": "^8.1.0",
61
- "typed-emitter": "^2.1.0",
62
- "typedoc": "^0.25.13",
63
- "typescript": "~5.4.5"
59
+ "prettier": "3.3.3",
60
+ "tsup": "^8.2.4",
61
+ "typed-emitter": "^2.1.0"
64
62
  }
65
63
  }