@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 +2 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +8 -10
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
|
-
[](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
|
|
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
|
|
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.
|
|
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.
|
|
51
|
-
"@fishjam-cloud/fishjam-proto": "0.1.
|
|
52
|
-
"axios": "^1.
|
|
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": "^
|
|
57
|
+
"@types/node": "^22.4.1",
|
|
58
58
|
"@types/websocket": "^1.0.10",
|
|
59
|
-
"prettier": "3.
|
|
60
|
-
"tsup": "^8.
|
|
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
|
}
|