plugnmeet-sdk-js 2.1.3-1 → 2.1.3-10

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/dist/index.cjs.js CHANGED
@@ -1,5 +1,7 @@
1
1
  var $8zHUo$bufbuildprotobuf = require("@bufbuild/protobuf");
2
2
  var $8zHUo$plugnmeetprotocoljs = require("plugnmeet-protocol-js");
3
+ var $8zHUo$fs = require("fs");
4
+ var $8zHUo$formdata = require("form-data");
3
5
  var $8zHUo$axios = require("axios");
4
6
  var $8zHUo$crypto = require("crypto");
5
7
 
@@ -37,6 +39,10 @@ $parcel$export(module.exports, "PlugNmeet", () => $405dcbf07186a1ff$export$1402d
37
39
 
38
40
 
39
41
 
42
+
43
+
44
+
45
+
40
46
  class $e71a992b229cccd4$export$5a82ec1641dd9681 {
41
47
  constructor(apiEndPointURL, apiKey, apiSecret){
42
48
  this.prepareHeader = (body)=>{
@@ -70,6 +76,38 @@ class $e71a992b229cccd4$export$5a82ec1641dd9681 {
70
76
  return output;
71
77
  }
72
78
  };
79
+ this.sendMultipartRequest = async (path, roomId, formData)=>{
80
+ const output = {
81
+ status: false,
82
+ response: undefined
83
+ };
84
+ const headers = {
85
+ 'Room-Id': roomId,
86
+ ...this.prepareHeader(roomId),
87
+ ...formData.getHeaders()
88
+ };
89
+ try {
90
+ const res = await this.axios.post(path, formData, {
91
+ headers: headers,
92
+ // Return the raw response string, preventing axios from decoding it.
93
+ // The protobuf `fromJson` method will handle the parsing.
94
+ transformResponse: [
95
+ (data)=>data
96
+ ]
97
+ });
98
+ output.status = true;
99
+ output.response = res.data;
100
+ return output;
101
+ } catch (error) {
102
+ output.response = error.message;
103
+ if (error.response) try {
104
+ const decode = (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema), error.response.data);
105
+ output.response = decode.msg;
106
+ // oxlint-disable-next-line
107
+ } catch (e) {}
108
+ return output;
109
+ }
110
+ };
73
111
  this.apiKey = apiKey;
74
112
  this.apiSecret = apiSecret;
75
113
  this.axios = (0, ($parcel$interopDefault($8zHUo$axios))).create({
@@ -188,6 +226,47 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
188
226
  return (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.RoomEndResSchema), res.response);
189
227
  }
190
228
  /**
229
+ * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.
230
+ * @param params
231
+ * @returns Promise<CommonResponse>
232
+ */ async broadcastToRoom(params) {
233
+ const body = (0, $8zHUo$bufbuildprotobuf.create)((0, $8zHUo$plugnmeetprotocoljs.BroadcastToRoomReqSchema), params);
234
+ const res = await this.apiTransport.sendRequest('/room/broadcastToRoom', (0, $8zHUo$bufbuildprotobuf.toJsonString)((0, $8zHUo$plugnmeetprotocoljs.BroadcastToRoomReqSchema), body));
235
+ const output = (0, $8zHUo$bufbuildprotobuf.create)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema));
236
+ if (!res.status) {
237
+ output.msg = res.response;
238
+ return output;
239
+ }
240
+ return (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema), res.response);
241
+ }
242
+ /**
243
+ * Upload a file to be used on the whiteboard.
244
+ * @param params
245
+ * @returns Promise<CommonResponse>
246
+ */ async uploadWhiteboardFile(params) {
247
+ const output = (0, $8zHUo$bufbuildprotobuf.create)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema), {
248
+ statusCode: (0, $8zHUo$plugnmeetprotocoljs.StatusCode).INVALID_PARAMETERS
249
+ });
250
+ const formData = new (0, ($parcel$interopDefault($8zHUo$formdata)))();
251
+ if (params.filePath) {
252
+ if (!(0, $8zHUo$fs.existsSync)(params.filePath)) {
253
+ output.msg = "The provided 'filePath' is not a valid file path.";
254
+ return output;
255
+ }
256
+ formData.append('document', (0, $8zHUo$fs.createReadStream)(params.filePath));
257
+ } else if (params.document_link) formData.append('document_link', params.document_link);
258
+ else {
259
+ output.msg = 'Either filePath or document_link is required';
260
+ return output;
261
+ }
262
+ const res = await this.apiTransport.sendMultipartRequest('/room/uploadWhiteboardFile', params.roomId, formData);
263
+ if (!res.status) {
264
+ output.msg = res.response;
265
+ return output;
266
+ }
267
+ return (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema), res.response);
268
+ }
269
+ /**
191
270
  * Fetch artifacts
192
271
  * @param params
193
272
  * @returns Promise<FetchArtifactsRes>
@@ -300,6 +379,20 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
300
379
  return (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.UpdateRecordingMetadataResSchema), res.response);
301
380
  }
302
381
  /**
382
+ * Merge multiple parts of a session's recording into a single new recording.
383
+ * @param params
384
+ * @returns Promise<CommonResponseSchema>
385
+ */ async mergeRecordings(params) {
386
+ const body = (0, $8zHUo$bufbuildprotobuf.create)((0, $8zHUo$plugnmeetprotocoljs.MergeRecordingsReqSchema), params);
387
+ const res = await this.apiTransport.sendRequest('/recording/mergeRecordings', (0, $8zHUo$bufbuildprotobuf.toJsonString)((0, $8zHUo$plugnmeetprotocoljs.MergeRecordingsReqSchema), body));
388
+ const output = (0, $8zHUo$bufbuildprotobuf.create)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema));
389
+ if (!res.status) {
390
+ output.msg = res.response;
391
+ return output;
392
+ }
393
+ return (0, $8zHUo$bufbuildprotobuf.fromJsonString)((0, $8zHUo$plugnmeetprotocoljs.CommonResponseSchema), res.response);
394
+ }
395
+ /**
303
396
  * Get recording details
304
397
  * @param params
305
398
  * @returns Promise<RecordingInfoRes>
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport {\n CreateRoomReq,\n CreateRoomRes,\n GenerateTokenReq,\n GenerateTokenRes,\n IsRoomActiveReq,\n IsRoomActiveRes,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoRes,\n GetActiveRoomsInfoRes,\n FetchPastRoomsReq,\n FetchPastRoomsRes,\n RoomEndReq,\n RoomEndRes,\n FetchArtifactsReq,\n FetchArtifactsRes,\n DeleteArtifactReq,\n DeleteArtifactRes,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenRes,\n ArtifactInfoReq,\n ArtifactInfoRes,\n FetchRecordingsReq,\n FetchRecordingsRes,\n DeleteRecordingReq,\n DeleteRecordingRes,\n GetDownloadTokenReq,\n GetDownloadTokenRes,\n RecordingInfoReq,\n RecordingInfoRes,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataRes,\n GetClientFilesRes,\n CreateRoomReqSchema,\n CreateRoomResSchema,\n GenerateTokenReqSchema,\n GenerateTokenResSchema,\n IsRoomActiveReqSchema,\n IsRoomActiveResSchema,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoResSchema,\n FetchPastRoomsReqSchema,\n FetchPastRoomsResSchema,\n RoomEndReqSchema,\n RoomEndResSchema,\n FetchArtifactsReqSchema,\n FetchArtifactsResSchema,\n DeleteArtifactReqSchema,\n DeleteArtifactResSchema,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenResSchema,\n ArtifactInfoReqSchema,\n ArtifactInfoResSchema,\n FetchRecordingsReqSchema,\n FetchRecordingsResSchema,\n DeleteRecordingReqSchema,\n DeleteRecordingResSchema,\n GetDownloadTokenReqSchema,\n GetDownloadTokenResSchema,\n RecordingInfoReqSchema,\n RecordingInfoResSchema,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataResSchema,\n GetClientFilesResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string) => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.cjs.js.map"}
1
+ {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport { createReadStream, existsSync } from 'fs';\nimport FormData from 'form-data';\nimport {\n ArtifactInfoReq,\n ArtifactInfoReqSchema,\n ArtifactInfoRes,\n ArtifactInfoResSchema,\n BroadcastToRoomReq,\n BroadcastToRoomReqSchema,\n CommonResponse,\n CommonResponseSchema,\n CreateRoomReq,\n CreateRoomReqSchema,\n CreateRoomRes,\n CreateRoomResSchema,\n DeleteArtifactReq,\n DeleteArtifactReqSchema,\n DeleteArtifactRes,\n DeleteArtifactResSchema,\n DeleteRecordingReq,\n DeleteRecordingReqSchema,\n DeleteRecordingRes,\n DeleteRecordingResSchema,\n FetchArtifactsReq,\n FetchArtifactsReqSchema,\n FetchArtifactsRes,\n FetchArtifactsResSchema,\n FetchPastRoomsReq,\n FetchPastRoomsReqSchema,\n FetchPastRoomsRes,\n FetchPastRoomsResSchema,\n FetchRecordingsReq,\n FetchRecordingsReqSchema,\n FetchRecordingsRes,\n FetchRecordingsResSchema,\n GenerateTokenReq,\n GenerateTokenReqSchema,\n GenerateTokenRes,\n GenerateTokenResSchema,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoRes,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoRes,\n GetActiveRoomsInfoResSchema,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenRes,\n GetArtifactDownloadTokenResSchema,\n GetClientFilesRes,\n GetClientFilesResSchema,\n GetDownloadTokenReq,\n GetDownloadTokenReqSchema,\n GetDownloadTokenRes,\n GetDownloadTokenResSchema,\n IsRoomActiveReq,\n IsRoomActiveReqSchema,\n IsRoomActiveRes,\n IsRoomActiveResSchema,\n MergeRecordingsReq,\n MergeRecordingsReqSchema,\n RecordingInfoReq,\n RecordingInfoReqSchema,\n RecordingInfoRes,\n RecordingInfoResSchema,\n RoomEndReq,\n RoomEndReqSchema,\n RoomEndRes,\n RoomEndResSchema,\n StatusCode,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataRes,\n UpdateRecordingMetadataResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI, UploadWhiteboardFileReq } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async broadcastToRoom(\n params: BroadcastToRoomReq,\n ): Promise<CommonResponse> {\n const body = create(BroadcastToRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/broadcastToRoom',\n toJsonString(BroadcastToRoomReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Upload a file to be used on the whiteboard.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async uploadWhiteboardFile(\n params: UploadWhiteboardFileReq,\n ): Promise<CommonResponse> {\n const output = create(CommonResponseSchema, {\n statusCode: StatusCode.INVALID_PARAMETERS,\n });\n const formData = new FormData();\n if (params.filePath) {\n if (!existsSync(params.filePath)) {\n output.msg = \"The provided 'filePath' is not a valid file path.\";\n return output;\n }\n formData.append('document', createReadStream(params.filePath));\n } else if (params.document_link) {\n formData.append('document_link', params.document_link);\n } else {\n output.msg = 'Either filePath or document_link is required';\n return output;\n }\n\n const res = await this.apiTransport.sendMultipartRequest(\n '/room/uploadWhiteboardFile',\n params.roomId,\n formData,\n );\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Merge multiple parts of a session's recording into a single new recording.\n * @param params\n * @returns Promise<CommonResponseSchema>\n */\n public async mergeRecordings(\n params: MergeRecordingsReq,\n ): Promise<CommonResponse> {\n const body = create(MergeRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/mergeRecordings',\n toJsonString(MergeRecordingsReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\nimport FormData from 'form-data';\nimport { fromJsonString } from '@bufbuild/protobuf';\nimport { CommonResponseSchema } from 'plugnmeet-protocol-js';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string): Record<string, string> => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n\n public sendMultipartRequest = async (\n path: string,\n roomId: string,\n formData: FormData,\n ) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = {\n 'Room-Id': roomId,\n ...this.prepareHeader(roomId),\n ...formData.getHeaders(),\n };\n\n try {\n const res = await this.axios.post(path, formData, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n try {\n const decode = fromJsonString(\n CommonResponseSchema,\n error.response.data,\n );\n output.response = decode.msg;\n // oxlint-disable-next-line\n } catch (e) {}\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.cjs.js.map"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,257 @@
1
+ import { ArtifactInfoReq, ArtifactInfoRes, BroadcastToRoomReq, CommonResponse, CreateRoomReq, CreateRoomRes, DeleteArtifactReq, DeleteArtifactRes, DeleteRecordingReq, DeleteRecordingRes, FetchArtifactsReq, FetchArtifactsRes, FetchPastRoomsReq, FetchPastRoomsRes, FetchRecordingsReq, FetchRecordingsRes, GenerateTokenReq, GenerateTokenRes, GetActiveRoomInfoReq, GetActiveRoomInfoRes, GetActiveRoomsInfoRes, GetArtifactDownloadTokenReq, GetArtifactDownloadTokenRes, GetClientFilesRes, GetDownloadTokenReq, GetDownloadTokenRes, IsRoomActiveReq, IsRoomActiveRes, MergeRecordingsReq, RecordingInfoReq, RecordingInfoRes, RoomEndReq, RoomEndRes, UpdateRecordingMetadataReq, UpdateRecordingMetadataRes } from "plugnmeet-protocol-js";
2
+ interface UploadWhiteboardFileReq {
3
+ roomId: string;
4
+ filePath?: string;
5
+ document_link?: string;
6
+ }
7
+ interface PlugNmeetAPI {
8
+ /**
9
+ * Create new room
10
+ * @returns Promise<CreateRoomRes>
11
+ * @param params
12
+ */
13
+ createRoom(params: CreateRoomReq): Promise<CreateRoomRes>;
14
+ /**
15
+ * Generate join token
16
+ * @param params
17
+ * @returns Promise<GenerateTokenRes>
18
+ */
19
+ getJoinToken(params: GenerateTokenReq): Promise<GenerateTokenRes>;
20
+ /**
21
+ * If room is active or not
22
+ * @param params
23
+ * @returns Promise<IsRoomActiveRes>
24
+ */
25
+ isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes>;
26
+ /**
27
+ * Get active room information
28
+ * @param params
29
+ * @returns Promise<GetActiveRoomInfoRes>
30
+ */
31
+ getActiveRoomInfo(params: GetActiveRoomInfoReq): Promise<GetActiveRoomInfoRes>;
32
+ /**
33
+ * Get all active rooms
34
+ * @returns Promise<GetActiveRoomsInfoRes>
35
+ */
36
+ getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes>;
37
+ /**
38
+ * Fetch info about past rooms
39
+ * @param params
40
+ * @returns Promise<FetchPastRoomsRes>
41
+ */
42
+ fetchPastRoomsInfo(params: FetchPastRoomsReq): Promise<FetchPastRoomsRes>;
43
+ /**
44
+ * End active room
45
+ * @param params
46
+ * @returns Promise<RoomEndRes>
47
+ */
48
+ endRoom(params: RoomEndReq): Promise<RoomEndRes>;
49
+ /**
50
+ * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.
51
+ * @param params
52
+ * @returns Promise<CommonResponse>
53
+ */
54
+ broadcastToRoom(params: BroadcastToRoomReq): Promise<CommonResponse>;
55
+ /**
56
+ * Upload a file to be used on the whiteboard.
57
+ * @param params
58
+ * @returns Promise<CommonResponse>
59
+ */
60
+ uploadWhiteboardFile(params: UploadWhiteboardFileReq): Promise<CommonResponse>;
61
+ /**
62
+ * Fetch artifacts
63
+ * @param params
64
+ * @returns Promise<FetchArtifactsRes>
65
+ */
66
+ fetchArtifacts(params: FetchArtifactsReq): Promise<FetchArtifactsRes>;
67
+ /**
68
+ * Delete artifact
69
+ * @param params
70
+ * @returns Promise<DeleteArtifactRes>
71
+ */
72
+ deleteArtifact(params: DeleteArtifactReq): Promise<DeleteArtifactRes>;
73
+ /**
74
+ * Generate token to download Artifact
75
+ * @param params
76
+ * @returns Promise<GetArtifactDownloadTokenRes>
77
+ */
78
+ getArtifactDownloadToken(params: GetArtifactDownloadTokenReq): Promise<GetArtifactDownloadTokenRes>;
79
+ /**
80
+ * Get Artifact details
81
+ * @param params
82
+ * @returns Promise<ArtifactInfoRes>
83
+ */
84
+ getArtifactInfo(params: ArtifactInfoReq): Promise<ArtifactInfoRes>;
85
+ /**
86
+ * Fetch recordings
87
+ * @param params
88
+ * @returns Promise<FetchRecordingsRes>
89
+ */
90
+ fetchRecordings(params: FetchRecordingsReq): Promise<FetchRecordingsRes>;
91
+ /**
92
+ * Delete recording
93
+ * @param params
94
+ * @returns Promise<DeleteRecordingRes>
95
+ */
96
+ deleteRecordings(params: DeleteRecordingReq): Promise<DeleteRecordingRes>;
97
+ /**
98
+ * Generate token to download recording
99
+ * @param params
100
+ * @returns Promise<GetDownloadTokenRes>
101
+ */
102
+ getRecordingDownloadToken(params: GetDownloadTokenReq): Promise<GetDownloadTokenRes>;
103
+ /**
104
+ * Update recording metadata info
105
+ * @param params
106
+ * @returns Promise<UpdateRecordingMetadataRes>
107
+ */
108
+ updateRecordingMetadata(params: UpdateRecordingMetadataReq): Promise<UpdateRecordingMetadataRes>;
109
+ /**
110
+ * Merge multiple parts of a session's recording into a single new recording.
111
+ * @param params
112
+ * @returns Promise<CommonResponse>
113
+ */
114
+ mergeRecordings(params: MergeRecordingsReq): Promise<CommonResponse>;
115
+ /**
116
+ * Get recording details
117
+ * @param params
118
+ * @returns Promise<RecordingInfoRes>
119
+ */
120
+ getRecordingInfo(params: RecordingInfoReq): Promise<RecordingInfoRes>;
121
+ /**
122
+ * To get JS & CSS files to build interface
123
+ * @returns Promise<GetClientFilesRes>
124
+ */
125
+ getClientFiles(): Promise<GetClientFilesRes>;
126
+ }
127
+ export class PlugNmeet implements PlugNmeetAPI {
128
+ protected defaultPath: string;
129
+ /**
130
+ * @param serverUrl plugNmeet server URL
131
+ * @param apiKey plugNmeet API_Key
132
+ * @param apiSecret plugNmeet API_Secret
133
+ */
134
+ constructor(serverUrl: string, apiKey: string, apiSecret: string);
135
+ /**
136
+ * Create new room
137
+ * @param params
138
+ * @returns Promise<CreateRoomRes>
139
+ */
140
+ createRoom(params: CreateRoomReq): Promise<CreateRoomRes>;
141
+ /**
142
+ * Generate join token
143
+ * @param params
144
+ * @returns Promise<GenerateTokenRes>
145
+ */
146
+ getJoinToken(params: GenerateTokenReq): Promise<GenerateTokenRes>;
147
+ /**
148
+ * If room is active or not
149
+ * @param params
150
+ * @returns Promise<IsRoomActiveRes>
151
+ */
152
+ isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes>;
153
+ /**
154
+ * Get active room information
155
+ * @param params
156
+ * @returns Promise<GetActiveRoomInfoRes>
157
+ */
158
+ getActiveRoomInfo(params: GetActiveRoomInfoReq): Promise<GetActiveRoomInfoRes>;
159
+ /**
160
+ * Get all active rooms
161
+ * @returns Promise<GetActiveRoomsInfoRes>
162
+ */
163
+ getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes>;
164
+ /**
165
+ * Fetch info about past rooms
166
+ * @param params
167
+ * @returns Promise<FetchPastRoomsRes>
168
+ */
169
+ fetchPastRoomsInfo(params: FetchPastRoomsReq): Promise<FetchPastRoomsRes>;
170
+ /**
171
+ * End active room
172
+ * @param params
173
+ * @returns Promise<RoomEndRes>
174
+ */
175
+ endRoom(params: RoomEndReq): Promise<RoomEndRes>;
176
+ /**
177
+ * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.
178
+ * @param params
179
+ * @returns Promise<CommonResponse>
180
+ */
181
+ broadcastToRoom(params: BroadcastToRoomReq): Promise<CommonResponse>;
182
+ /**
183
+ * Upload a file to be used on the whiteboard.
184
+ * @param params
185
+ * @returns Promise<CommonResponse>
186
+ */
187
+ uploadWhiteboardFile(params: UploadWhiteboardFileReq): Promise<CommonResponse>;
188
+ /**
189
+ * Fetch artifacts
190
+ * @param params
191
+ * @returns Promise<FetchArtifactsRes>
192
+ */
193
+ fetchArtifacts(params: FetchArtifactsReq): Promise<FetchArtifactsRes>;
194
+ /**
195
+ * Delete artifact
196
+ * @param params
197
+ * @returns Promise<DeleteArtifactRes>
198
+ */
199
+ deleteArtifact(params: DeleteArtifactReq): Promise<DeleteArtifactRes>;
200
+ /**
201
+ * Generate token to download Artifact
202
+ * @param params
203
+ * @returns Promise<GetArtifactDownloadTokenRes>
204
+ */
205
+ getArtifactDownloadToken(params: GetArtifactDownloadTokenReq): Promise<GetArtifactDownloadTokenRes>;
206
+ /**
207
+ * Get Artifact details
208
+ * @param params
209
+ * @returns Promise<ArtifactInfoRes>
210
+ */
211
+ getArtifactInfo(params: ArtifactInfoReq): Promise<ArtifactInfoRes>;
212
+ /**
213
+ * Fetch recordings
214
+ * @param params
215
+ * @returns Promise<FetchRecordingsRes>
216
+ */
217
+ fetchRecordings(params: FetchRecordingsReq): Promise<FetchRecordingsRes>;
218
+ /**
219
+ * Delete recording
220
+ * @param params
221
+ * @returns Promise<DeleteRecordingRes>
222
+ */
223
+ deleteRecordings(params: DeleteRecordingReq): Promise<DeleteRecordingRes>;
224
+ /**
225
+ * Generate token to download recording
226
+ * @param params
227
+ * @returns Promise<GetDownloadTokenRes>
228
+ */
229
+ getRecordingDownloadToken(params: GetDownloadTokenReq): Promise<GetDownloadTokenRes>;
230
+ /**
231
+ * Update recording metadata info
232
+ * @param params
233
+ * @returns Promise<UpdateRecordingMetadataRes>
234
+ */
235
+ updateRecordingMetadata(params: UpdateRecordingMetadataReq): Promise<UpdateRecordingMetadataRes>;
236
+ /**
237
+ * Merge multiple parts of a session's recording into a single new recording.
238
+ * @param params
239
+ * @returns Promise<CommonResponseSchema>
240
+ */
241
+ mergeRecordings(params: MergeRecordingsReq): Promise<CommonResponse>;
242
+ /**
243
+ * Get recording details
244
+ * @param params
245
+ * @returns Promise<RecordingInfoRes>
246
+ */
247
+ getRecordingInfo(params: RecordingInfoReq): Promise<RecordingInfoRes>;
248
+ /**
249
+ * To get JS & CSS files to build interface
250
+ * @returns Promise<GetClientFilesRes>
251
+ */
252
+ getClientFiles(): Promise<GetClientFilesRes>;
253
+ }
1
254
  export { create as createRequest } from '@bufbuild/protobuf';
2
255
  export * from 'plugnmeet-protocol-js';
3
- export { PlugNmeet } from './PlugNmeet';
4
256
 
5
257
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7D,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC","sources":["src/src/index.ts","src/index.ts"],"sourcesContent":[null,"export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":"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","sources":["src/src/ApiTransport.ts","src/src/PlugNmeetAPI.ts","src/src/PlugNmeet.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,"export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  var $cDXzb$bufbuildprotobuf = require("@bufbuild/protobuf");
2
2
  var $cDXzb$plugnmeetprotocoljs = require("plugnmeet-protocol-js");
3
+ var $cDXzb$fs = require("fs");
4
+ var $cDXzb$formdata = require("form-data");
3
5
  var $cDXzb$axios = require("axios");
4
6
  var $cDXzb$crypto = require("crypto");
5
7
 
@@ -37,6 +39,10 @@ $parcel$export(module.exports, "PlugNmeet", () => $8e30a24c4952589a$export$1402d
37
39
 
38
40
 
39
41
 
42
+
43
+
44
+
45
+
40
46
  class $3437a6ece6919767$export$5a82ec1641dd9681 {
41
47
  constructor(apiEndPointURL, apiKey, apiSecret){
42
48
  this.prepareHeader = (body)=>{
@@ -70,6 +76,38 @@ class $3437a6ece6919767$export$5a82ec1641dd9681 {
70
76
  return output;
71
77
  }
72
78
  };
79
+ this.sendMultipartRequest = async (path, roomId, formData)=>{
80
+ const output = {
81
+ status: false,
82
+ response: undefined
83
+ };
84
+ const headers = {
85
+ 'Room-Id': roomId,
86
+ ...this.prepareHeader(roomId),
87
+ ...formData.getHeaders()
88
+ };
89
+ try {
90
+ const res = await this.axios.post(path, formData, {
91
+ headers: headers,
92
+ // Return the raw response string, preventing axios from decoding it.
93
+ // The protobuf `fromJson` method will handle the parsing.
94
+ transformResponse: [
95
+ (data)=>data
96
+ ]
97
+ });
98
+ output.status = true;
99
+ output.response = res.data;
100
+ return output;
101
+ } catch (error) {
102
+ output.response = error.message;
103
+ if (error.response) try {
104
+ const decode = (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema), error.response.data);
105
+ output.response = decode.msg;
106
+ // oxlint-disable-next-line
107
+ } catch (e) {}
108
+ return output;
109
+ }
110
+ };
73
111
  this.apiKey = apiKey;
74
112
  this.apiSecret = apiSecret;
75
113
  this.axios = (0, ($parcel$interopDefault($cDXzb$axios))).create({
@@ -188,6 +226,47 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
188
226
  return (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.RoomEndResSchema), res.response);
189
227
  }
190
228
  /**
229
+ * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.
230
+ * @param params
231
+ * @returns Promise<CommonResponse>
232
+ */ async broadcastToRoom(params) {
233
+ const body = (0, $cDXzb$bufbuildprotobuf.create)((0, $cDXzb$plugnmeetprotocoljs.BroadcastToRoomReqSchema), params);
234
+ const res = await this.apiTransport.sendRequest('/room/broadcastToRoom', (0, $cDXzb$bufbuildprotobuf.toJsonString)((0, $cDXzb$plugnmeetprotocoljs.BroadcastToRoomReqSchema), body));
235
+ const output = (0, $cDXzb$bufbuildprotobuf.create)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema));
236
+ if (!res.status) {
237
+ output.msg = res.response;
238
+ return output;
239
+ }
240
+ return (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema), res.response);
241
+ }
242
+ /**
243
+ * Upload a file to be used on the whiteboard.
244
+ * @param params
245
+ * @returns Promise<CommonResponse>
246
+ */ async uploadWhiteboardFile(params) {
247
+ const output = (0, $cDXzb$bufbuildprotobuf.create)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema), {
248
+ statusCode: (0, $cDXzb$plugnmeetprotocoljs.StatusCode).INVALID_PARAMETERS
249
+ });
250
+ const formData = new (0, ($parcel$interopDefault($cDXzb$formdata)))();
251
+ if (params.filePath) {
252
+ if (!(0, $cDXzb$fs.existsSync)(params.filePath)) {
253
+ output.msg = "The provided 'filePath' is not a valid file path.";
254
+ return output;
255
+ }
256
+ formData.append('document', (0, $cDXzb$fs.createReadStream)(params.filePath));
257
+ } else if (params.document_link) formData.append('document_link', params.document_link);
258
+ else {
259
+ output.msg = 'Either filePath or document_link is required';
260
+ return output;
261
+ }
262
+ const res = await this.apiTransport.sendMultipartRequest('/room/uploadWhiteboardFile', params.roomId, formData);
263
+ if (!res.status) {
264
+ output.msg = res.response;
265
+ return output;
266
+ }
267
+ return (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema), res.response);
268
+ }
269
+ /**
191
270
  * Fetch artifacts
192
271
  * @param params
193
272
  * @returns Promise<FetchArtifactsRes>
@@ -300,6 +379,20 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
300
379
  return (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.UpdateRecordingMetadataResSchema), res.response);
301
380
  }
302
381
  /**
382
+ * Merge multiple parts of a session's recording into a single new recording.
383
+ * @param params
384
+ * @returns Promise<CommonResponseSchema>
385
+ */ async mergeRecordings(params) {
386
+ const body = (0, $cDXzb$bufbuildprotobuf.create)((0, $cDXzb$plugnmeetprotocoljs.MergeRecordingsReqSchema), params);
387
+ const res = await this.apiTransport.sendRequest('/recording/mergeRecordings', (0, $cDXzb$bufbuildprotobuf.toJsonString)((0, $cDXzb$plugnmeetprotocoljs.MergeRecordingsReqSchema), body));
388
+ const output = (0, $cDXzb$bufbuildprotobuf.create)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema));
389
+ if (!res.status) {
390
+ output.msg = res.response;
391
+ return output;
392
+ }
393
+ return (0, $cDXzb$bufbuildprotobuf.fromJsonString)((0, $cDXzb$plugnmeetprotocoljs.CommonResponseSchema), res.response);
394
+ }
395
+ /**
303
396
  * Get recording details
304
397
  * @param params
305
398
  * @returns Promise<RecordingInfoRes>
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport {\n CreateRoomReq,\n CreateRoomRes,\n GenerateTokenReq,\n GenerateTokenRes,\n IsRoomActiveReq,\n IsRoomActiveRes,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoRes,\n GetActiveRoomsInfoRes,\n FetchPastRoomsReq,\n FetchPastRoomsRes,\n RoomEndReq,\n RoomEndRes,\n FetchArtifactsReq,\n FetchArtifactsRes,\n DeleteArtifactReq,\n DeleteArtifactRes,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenRes,\n ArtifactInfoReq,\n ArtifactInfoRes,\n FetchRecordingsReq,\n FetchRecordingsRes,\n DeleteRecordingReq,\n DeleteRecordingRes,\n GetDownloadTokenReq,\n GetDownloadTokenRes,\n RecordingInfoReq,\n RecordingInfoRes,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataRes,\n GetClientFilesRes,\n CreateRoomReqSchema,\n CreateRoomResSchema,\n GenerateTokenReqSchema,\n GenerateTokenResSchema,\n IsRoomActiveReqSchema,\n IsRoomActiveResSchema,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoResSchema,\n FetchPastRoomsReqSchema,\n FetchPastRoomsResSchema,\n RoomEndReqSchema,\n RoomEndResSchema,\n FetchArtifactsReqSchema,\n FetchArtifactsResSchema,\n DeleteArtifactReqSchema,\n DeleteArtifactResSchema,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenResSchema,\n ArtifactInfoReqSchema,\n ArtifactInfoResSchema,\n FetchRecordingsReqSchema,\n FetchRecordingsResSchema,\n DeleteRecordingReqSchema,\n DeleteRecordingResSchema,\n GetDownloadTokenReqSchema,\n GetDownloadTokenResSchema,\n RecordingInfoReqSchema,\n RecordingInfoResSchema,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataResSchema,\n GetClientFilesResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string) => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport { createReadStream, existsSync } from 'fs';\nimport FormData from 'form-data';\nimport {\n ArtifactInfoReq,\n ArtifactInfoReqSchema,\n ArtifactInfoRes,\n ArtifactInfoResSchema,\n BroadcastToRoomReq,\n BroadcastToRoomReqSchema,\n CommonResponse,\n CommonResponseSchema,\n CreateRoomReq,\n CreateRoomReqSchema,\n CreateRoomRes,\n CreateRoomResSchema,\n DeleteArtifactReq,\n DeleteArtifactReqSchema,\n DeleteArtifactRes,\n DeleteArtifactResSchema,\n DeleteRecordingReq,\n DeleteRecordingReqSchema,\n DeleteRecordingRes,\n DeleteRecordingResSchema,\n FetchArtifactsReq,\n FetchArtifactsReqSchema,\n FetchArtifactsRes,\n FetchArtifactsResSchema,\n FetchPastRoomsReq,\n FetchPastRoomsReqSchema,\n FetchPastRoomsRes,\n FetchPastRoomsResSchema,\n FetchRecordingsReq,\n FetchRecordingsReqSchema,\n FetchRecordingsRes,\n FetchRecordingsResSchema,\n GenerateTokenReq,\n GenerateTokenReqSchema,\n GenerateTokenRes,\n GenerateTokenResSchema,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoRes,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoRes,\n GetActiveRoomsInfoResSchema,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenRes,\n GetArtifactDownloadTokenResSchema,\n GetClientFilesRes,\n GetClientFilesResSchema,\n GetDownloadTokenReq,\n GetDownloadTokenReqSchema,\n GetDownloadTokenRes,\n GetDownloadTokenResSchema,\n IsRoomActiveReq,\n IsRoomActiveReqSchema,\n IsRoomActiveRes,\n IsRoomActiveResSchema,\n MergeRecordingsReq,\n MergeRecordingsReqSchema,\n RecordingInfoReq,\n RecordingInfoReqSchema,\n RecordingInfoRes,\n RecordingInfoResSchema,\n RoomEndReq,\n RoomEndReqSchema,\n RoomEndRes,\n RoomEndResSchema,\n StatusCode,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataRes,\n UpdateRecordingMetadataResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI, UploadWhiteboardFileReq } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async broadcastToRoom(\n params: BroadcastToRoomReq,\n ): Promise<CommonResponse> {\n const body = create(BroadcastToRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/broadcastToRoom',\n toJsonString(BroadcastToRoomReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Upload a file to be used on the whiteboard.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async uploadWhiteboardFile(\n params: UploadWhiteboardFileReq,\n ): Promise<CommonResponse> {\n const output = create(CommonResponseSchema, {\n statusCode: StatusCode.INVALID_PARAMETERS,\n });\n const formData = new FormData();\n if (params.filePath) {\n if (!existsSync(params.filePath)) {\n output.msg = \"The provided 'filePath' is not a valid file path.\";\n return output;\n }\n formData.append('document', createReadStream(params.filePath));\n } else if (params.document_link) {\n formData.append('document_link', params.document_link);\n } else {\n output.msg = 'Either filePath or document_link is required';\n return output;\n }\n\n const res = await this.apiTransport.sendMultipartRequest(\n '/room/uploadWhiteboardFile',\n params.roomId,\n formData,\n );\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Merge multiple parts of a session's recording into a single new recording.\n * @param params\n * @returns Promise<CommonResponseSchema>\n */\n public async mergeRecordings(\n params: MergeRecordingsReq,\n ): Promise<CommonResponse> {\n const body = create(MergeRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/mergeRecordings',\n toJsonString(MergeRecordingsReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\nimport FormData from 'form-data';\nimport { fromJsonString } from '@bufbuild/protobuf';\nimport { CommonResponseSchema } from 'plugnmeet-protocol-js';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string): Record<string, string> => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n\n public sendMultipartRequest = async (\n path: string,\n roomId: string,\n formData: FormData,\n ) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = {\n 'Room-Id': roomId,\n ...this.prepareHeader(roomId),\n ...formData.getHeaders(),\n };\n\n try {\n const res = await this.axios.post(path, formData, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n try {\n const decode = fromJsonString(\n CommonResponseSchema,\n error.response.data,\n );\n output.response = decode.msg;\n // oxlint-disable-next-line\n } catch (e) {}\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/dist/index.mjs.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import {create as $149c1bd638913645$re_export$createRequest, toJsonString as $hgUW1$toJsonString, fromJsonString as $hgUW1$fromJsonString} from "@bufbuild/protobuf";
2
2
  import * as $hgUW1$plugnmeetprotocoljs from "plugnmeet-protocol-js";
3
+ import {existsSync as $hgUW1$existsSync, createReadStream as $hgUW1$createReadStream} from "fs";
4
+ import $hgUW1$formdata from "form-data";
3
5
  import $hgUW1$axios from "axios";
4
6
  import {createHmac as $hgUW1$createHmac} from "crypto";
5
7
 
@@ -9,6 +11,10 @@ import {createHmac as $hgUW1$createHmac} from "crypto";
9
11
 
10
12
 
11
13
 
14
+
15
+
16
+
17
+
12
18
  class $e666bfa8019d90ff$export$5a82ec1641dd9681 {
13
19
  constructor(apiEndPointURL, apiKey, apiSecret){
14
20
  this.prepareHeader = (body)=>{
@@ -42,6 +48,38 @@ class $e666bfa8019d90ff$export$5a82ec1641dd9681 {
42
48
  return output;
43
49
  }
44
50
  };
51
+ this.sendMultipartRequest = async (path, roomId, formData)=>{
52
+ const output = {
53
+ status: false,
54
+ response: undefined
55
+ };
56
+ const headers = {
57
+ 'Room-Id': roomId,
58
+ ...this.prepareHeader(roomId),
59
+ ...formData.getHeaders()
60
+ };
61
+ try {
62
+ const res = await this.axios.post(path, formData, {
63
+ headers: headers,
64
+ // Return the raw response string, preventing axios from decoding it.
65
+ // The protobuf `fromJson` method will handle the parsing.
66
+ transformResponse: [
67
+ (data)=>data
68
+ ]
69
+ });
70
+ output.status = true;
71
+ output.response = res.data;
72
+ return output;
73
+ } catch (error) {
74
+ output.response = error.message;
75
+ if (error.response) try {
76
+ const decode = (0, $hgUW1$fromJsonString)((0, $hgUW1$CommonResponseSchema), error.response.data);
77
+ output.response = decode.msg;
78
+ // oxlint-disable-next-line
79
+ } catch (e) {}
80
+ return output;
81
+ }
82
+ };
45
83
  this.apiKey = apiKey;
46
84
  this.apiSecret = apiSecret;
47
85
  this.axios = (0, $hgUW1$axios).create({
@@ -160,6 +198,47 @@ class $cdaf723153ba18be$export$1402da7f2870faee {
160
198
  return (0, $hgUW1$fromJsonString)((0, $hgUW1$RoomEndResSchema), res.response);
161
199
  }
162
200
  /**
201
+ * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.
202
+ * @param params
203
+ * @returns Promise<CommonResponse>
204
+ */ async broadcastToRoom(params) {
205
+ const body = (0, $149c1bd638913645$re_export$createRequest)((0, $hgUW1$BroadcastToRoomReqSchema), params);
206
+ const res = await this.apiTransport.sendRequest('/room/broadcastToRoom', (0, $hgUW1$toJsonString)((0, $hgUW1$BroadcastToRoomReqSchema), body));
207
+ const output = (0, $149c1bd638913645$re_export$createRequest)((0, $hgUW1$CommonResponseSchema));
208
+ if (!res.status) {
209
+ output.msg = res.response;
210
+ return output;
211
+ }
212
+ return (0, $hgUW1$fromJsonString)((0, $hgUW1$CommonResponseSchema), res.response);
213
+ }
214
+ /**
215
+ * Upload a file to be used on the whiteboard.
216
+ * @param params
217
+ * @returns Promise<CommonResponse>
218
+ */ async uploadWhiteboardFile(params) {
219
+ const output = (0, $149c1bd638913645$re_export$createRequest)((0, $hgUW1$CommonResponseSchema), {
220
+ statusCode: (0, $hgUW1$StatusCode).INVALID_PARAMETERS
221
+ });
222
+ const formData = new (0, $hgUW1$formdata)();
223
+ if (params.filePath) {
224
+ if (!(0, $hgUW1$existsSync)(params.filePath)) {
225
+ output.msg = "The provided 'filePath' is not a valid file path.";
226
+ return output;
227
+ }
228
+ formData.append('document', (0, $hgUW1$createReadStream)(params.filePath));
229
+ } else if (params.document_link) formData.append('document_link', params.document_link);
230
+ else {
231
+ output.msg = 'Either filePath or document_link is required';
232
+ return output;
233
+ }
234
+ const res = await this.apiTransport.sendMultipartRequest('/room/uploadWhiteboardFile', params.roomId, formData);
235
+ if (!res.status) {
236
+ output.msg = res.response;
237
+ return output;
238
+ }
239
+ return (0, $hgUW1$fromJsonString)((0, $hgUW1$CommonResponseSchema), res.response);
240
+ }
241
+ /**
163
242
  * Fetch artifacts
164
243
  * @param params
165
244
  * @returns Promise<FetchArtifactsRes>
@@ -272,6 +351,20 @@ class $cdaf723153ba18be$export$1402da7f2870faee {
272
351
  return (0, $hgUW1$fromJsonString)((0, $hgUW1$UpdateRecordingMetadataResSchema), res.response);
273
352
  }
274
353
  /**
354
+ * Merge multiple parts of a session's recording into a single new recording.
355
+ * @param params
356
+ * @returns Promise<CommonResponseSchema>
357
+ */ async mergeRecordings(params) {
358
+ const body = (0, $149c1bd638913645$re_export$createRequest)((0, $hgUW1$MergeRecordingsReqSchema), params);
359
+ const res = await this.apiTransport.sendRequest('/recording/mergeRecordings', (0, $hgUW1$toJsonString)((0, $hgUW1$MergeRecordingsReqSchema), body));
360
+ const output = (0, $149c1bd638913645$re_export$createRequest)((0, $hgUW1$CommonResponseSchema));
361
+ if (!res.status) {
362
+ output.msg = res.response;
363
+ return output;
364
+ }
365
+ return (0, $hgUW1$fromJsonString)((0, $hgUW1$CommonResponseSchema), res.response);
366
+ }
367
+ /**
275
368
  * Get recording details
276
369
  * @param params
277
370
  * @returns Promise<RecordingInfoRes>
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport {\n CreateRoomReq,\n CreateRoomRes,\n GenerateTokenReq,\n GenerateTokenRes,\n IsRoomActiveReq,\n IsRoomActiveRes,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoRes,\n GetActiveRoomsInfoRes,\n FetchPastRoomsReq,\n FetchPastRoomsRes,\n RoomEndReq,\n RoomEndRes,\n FetchArtifactsReq,\n FetchArtifactsRes,\n DeleteArtifactReq,\n DeleteArtifactRes,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenRes,\n ArtifactInfoReq,\n ArtifactInfoRes,\n FetchRecordingsReq,\n FetchRecordingsRes,\n DeleteRecordingReq,\n DeleteRecordingRes,\n GetDownloadTokenReq,\n GetDownloadTokenRes,\n RecordingInfoReq,\n RecordingInfoRes,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataRes,\n GetClientFilesRes,\n CreateRoomReqSchema,\n CreateRoomResSchema,\n GenerateTokenReqSchema,\n GenerateTokenResSchema,\n IsRoomActiveReqSchema,\n IsRoomActiveResSchema,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoResSchema,\n FetchPastRoomsReqSchema,\n FetchPastRoomsResSchema,\n RoomEndReqSchema,\n RoomEndResSchema,\n FetchArtifactsReqSchema,\n FetchArtifactsResSchema,\n DeleteArtifactReqSchema,\n DeleteArtifactResSchema,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenResSchema,\n ArtifactInfoReqSchema,\n ArtifactInfoResSchema,\n FetchRecordingsReqSchema,\n FetchRecordingsResSchema,\n DeleteRecordingReqSchema,\n DeleteRecordingResSchema,\n GetDownloadTokenReqSchema,\n GetDownloadTokenResSchema,\n RecordingInfoReqSchema,\n RecordingInfoResSchema,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataResSchema,\n GetClientFilesResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string) => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.mjs.js.map"}
1
+ {"mappings":"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","sources":["src/index.ts","src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["export { create as createRequest } from '@bufbuild/protobuf';\nexport * from 'plugnmeet-protocol-js';\n\nexport { PlugNmeet } from './PlugNmeet';\n","import { create, fromJsonString, toJsonString } from '@bufbuild/protobuf';\nimport { createReadStream, existsSync } from 'fs';\nimport FormData from 'form-data';\nimport {\n ArtifactInfoReq,\n ArtifactInfoReqSchema,\n ArtifactInfoRes,\n ArtifactInfoResSchema,\n BroadcastToRoomReq,\n BroadcastToRoomReqSchema,\n CommonResponse,\n CommonResponseSchema,\n CreateRoomReq,\n CreateRoomReqSchema,\n CreateRoomRes,\n CreateRoomResSchema,\n DeleteArtifactReq,\n DeleteArtifactReqSchema,\n DeleteArtifactRes,\n DeleteArtifactResSchema,\n DeleteRecordingReq,\n DeleteRecordingReqSchema,\n DeleteRecordingRes,\n DeleteRecordingResSchema,\n FetchArtifactsReq,\n FetchArtifactsReqSchema,\n FetchArtifactsRes,\n FetchArtifactsResSchema,\n FetchPastRoomsReq,\n FetchPastRoomsReqSchema,\n FetchPastRoomsRes,\n FetchPastRoomsResSchema,\n FetchRecordingsReq,\n FetchRecordingsReqSchema,\n FetchRecordingsRes,\n FetchRecordingsResSchema,\n GenerateTokenReq,\n GenerateTokenReqSchema,\n GenerateTokenRes,\n GenerateTokenResSchema,\n GetActiveRoomInfoReq,\n GetActiveRoomInfoReqSchema,\n GetActiveRoomInfoRes,\n GetActiveRoomInfoResSchema,\n GetActiveRoomsInfoRes,\n GetActiveRoomsInfoResSchema,\n GetArtifactDownloadTokenReq,\n GetArtifactDownloadTokenReqSchema,\n GetArtifactDownloadTokenRes,\n GetArtifactDownloadTokenResSchema,\n GetClientFilesRes,\n GetClientFilesResSchema,\n GetDownloadTokenReq,\n GetDownloadTokenReqSchema,\n GetDownloadTokenRes,\n GetDownloadTokenResSchema,\n IsRoomActiveReq,\n IsRoomActiveReqSchema,\n IsRoomActiveRes,\n IsRoomActiveResSchema,\n MergeRecordingsReq,\n MergeRecordingsReqSchema,\n RecordingInfoReq,\n RecordingInfoReqSchema,\n RecordingInfoRes,\n RecordingInfoResSchema,\n RoomEndReq,\n RoomEndReqSchema,\n RoomEndRes,\n RoomEndResSchema,\n StatusCode,\n UpdateRecordingMetadataReq,\n UpdateRecordingMetadataReqSchema,\n UpdateRecordingMetadataRes,\n UpdateRecordingMetadataResSchema,\n} from 'plugnmeet-protocol-js';\n\nimport { ApiTransport } from './ApiTransport';\nimport { PlugNmeetAPI, UploadWhiteboardFileReq } from './PlugNmeetAPI';\n\nexport class PlugNmeet implements PlugNmeetAPI {\n protected defaultPath = '/auth';\n private apiTransport: ApiTransport;\n\n /**\n * @param serverUrl plugNmeet server URL\n * @param apiKey plugNmeet API_Key\n * @param apiSecret plugNmeet API_Secret\n */\n constructor(serverUrl: string, apiKey: string, apiSecret: string) {\n this.apiTransport = new ApiTransport(\n serverUrl + this.defaultPath,\n apiKey,\n apiSecret,\n );\n }\n\n /**\n * Create new room\n * @param params\n * @returns Promise<CreateRoomRes>\n */\n public async createRoom(params: CreateRoomReq): Promise<CreateRoomRes> {\n const body = create(CreateRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/create',\n toJsonString(CreateRoomReqSchema, body),\n );\n const output = create(CreateRoomResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CreateRoomResSchema, res.response);\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<GenerateTokenRes>\n */\n public async getJoinToken(\n params: GenerateTokenReq,\n ): Promise<GenerateTokenRes> {\n const body = create(GenerateTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n toJsonString(GenerateTokenReqSchema, body),\n );\n const output = create(GenerateTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GenerateTokenResSchema, res.response);\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveRes>\n */\n public async isRoomActive(params: IsRoomActiveReq): Promise<IsRoomActiveRes> {\n const body = create(IsRoomActiveReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n toJsonString(IsRoomActiveReqSchema, body),\n );\n const output = create(IsRoomActiveResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(IsRoomActiveResSchema, res.response);\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<GetActiveRoomInfoRes>\n */\n public async getActiveRoomInfo(\n params: GetActiveRoomInfoReq,\n ): Promise<GetActiveRoomInfoRes> {\n const body = create(GetActiveRoomInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n toJsonString(GetActiveRoomInfoReqSchema, body),\n );\n const output = create(GetActiveRoomInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomInfoResSchema, res.response);\n }\n\n /**\n * Get all active rooms\n * @returns Promise<GetActiveRoomsInfoRes>\n */\n public async getActiveRoomsInfo(): Promise<GetActiveRoomsInfoRes> {\n const res = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n '{}',\n );\n const output = create(GetActiveRoomsInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetActiveRoomsInfoResSchema, res.response);\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchPastRoomsRes>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsReq,\n ): Promise<FetchPastRoomsRes> {\n const body = create(FetchPastRoomsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n toJsonString(FetchPastRoomsReqSchema, body),\n );\n const output = create(FetchPastRoomsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchPastRoomsResSchema, res.response);\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<RoomEndRes>\n */\n public async endRoom(params: RoomEndReq): Promise<RoomEndRes> {\n const body = create(RoomEndReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/endRoom',\n toJsonString(RoomEndReqSchema, body),\n );\n const output = create(RoomEndResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RoomEndResSchema, res.response);\n }\n\n /**\n * Broadcast messages or notifications directly into an active Plug-N-Meet session in real-time.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async broadcastToRoom(\n params: BroadcastToRoomReq,\n ): Promise<CommonResponse> {\n const body = create(BroadcastToRoomReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/room/broadcastToRoom',\n toJsonString(BroadcastToRoomReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Upload a file to be used on the whiteboard.\n * @param params\n * @returns Promise<CommonResponse>\n */\n public async uploadWhiteboardFile(\n params: UploadWhiteboardFileReq,\n ): Promise<CommonResponse> {\n const output = create(CommonResponseSchema, {\n statusCode: StatusCode.INVALID_PARAMETERS,\n });\n const formData = new FormData();\n if (params.filePath) {\n if (!existsSync(params.filePath)) {\n output.msg = \"The provided 'filePath' is not a valid file path.\";\n return output;\n }\n formData.append('document', createReadStream(params.filePath));\n } else if (params.document_link) {\n formData.append('document_link', params.document_link);\n } else {\n output.msg = 'Either filePath or document_link is required';\n return output;\n }\n\n const res = await this.apiTransport.sendMultipartRequest(\n '/room/uploadWhiteboardFile',\n params.roomId,\n formData,\n );\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Fetch artifacts\n * @param params\n * @returns Promise<FetchArtifactsRes>\n */\n public async fetchArtifacts(\n params: FetchArtifactsReq,\n ): Promise<FetchArtifactsRes> {\n const body = create(FetchArtifactsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/fetch',\n toJsonString(FetchArtifactsReqSchema, body),\n );\n const output = create(FetchArtifactsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchArtifactsResSchema, res.response);\n }\n\n /**\n * Delete artifact\n * @param params\n * @returns Promise<DeleteArtifactRes>\n */\n public async deleteArtifact(\n params: DeleteArtifactReq,\n ): Promise<DeleteArtifactRes> {\n const body = create(DeleteArtifactReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/delete',\n toJsonString(DeleteArtifactReqSchema, body),\n );\n const output = create(DeleteArtifactResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteArtifactResSchema, res.response);\n }\n\n /**\n * Generate token to download Artifact\n * @param params\n * @returns Promise<GetArtifactDownloadTokenRes>\n */\n public async getArtifactDownloadToken(\n params: GetArtifactDownloadTokenReq,\n ): Promise<GetArtifactDownloadTokenRes> {\n const body = create(GetArtifactDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/getDownloadToken',\n toJsonString(GetArtifactDownloadTokenReqSchema, body),\n );\n const output = create(GetArtifactDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetArtifactDownloadTokenResSchema, res.response);\n }\n\n /**\n * Get Artifact details\n * @param params\n * @returns Promise<ArtifactInfoRes>\n */\n public async getArtifactInfo(\n params: ArtifactInfoReq,\n ): Promise<ArtifactInfoRes> {\n const body = create(ArtifactInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/artifact/info',\n toJsonString(ArtifactInfoReqSchema, body),\n );\n const output = create(ArtifactInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(ArtifactInfoResSchema, res.response);\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsRes>\n */\n public async fetchRecordings(\n params: FetchRecordingsReq,\n ): Promise<FetchRecordingsRes> {\n const body = create(FetchRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/fetch',\n toJsonString(FetchRecordingsReqSchema, body),\n );\n const output = create(FetchRecordingsResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(FetchRecordingsResSchema, res.response);\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingRes>\n */\n public async deleteRecordings(\n params: DeleteRecordingReq,\n ): Promise<DeleteRecordingRes> {\n const body = create(DeleteRecordingReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/delete',\n toJsonString(DeleteRecordingReqSchema, body),\n );\n const output = create(DeleteRecordingResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(DeleteRecordingResSchema, res.response);\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<GetDownloadTokenRes>\n */\n public async getRecordingDownloadToken(\n params: GetDownloadTokenReq,\n ): Promise<GetDownloadTokenRes> {\n const body = create(GetDownloadTokenReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n toJsonString(GetDownloadTokenReqSchema, body),\n );\n const output = create(GetDownloadTokenResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetDownloadTokenResSchema, res.response);\n }\n\n /**\n * Update recording metadata info\n * @param params\n * @returns Promise<UpdateRecordingMetadataRes>\n */\n public async updateRecordingMetadata(\n params: UpdateRecordingMetadataReq,\n ): Promise<UpdateRecordingMetadataRes> {\n const body = create(UpdateRecordingMetadataReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/updateMetadata',\n toJsonString(UpdateRecordingMetadataReqSchema, body),\n );\n const output = create(UpdateRecordingMetadataResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(UpdateRecordingMetadataResSchema, res.response);\n }\n\n /**\n * Merge multiple parts of a session's recording into a single new recording.\n * @param params\n * @returns Promise<CommonResponseSchema>\n */\n public async mergeRecordings(\n params: MergeRecordingsReq,\n ): Promise<CommonResponse> {\n const body = create(MergeRecordingsReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/mergeRecordings',\n toJsonString(MergeRecordingsReqSchema, body),\n );\n const output = create(CommonResponseSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(CommonResponseSchema, res.response);\n }\n\n /**\n * Get recording details\n * @param params\n * @returns Promise<RecordingInfoRes>\n */\n public async getRecordingInfo(\n params: RecordingInfoReq,\n ): Promise<RecordingInfoRes> {\n const body = create(RecordingInfoReqSchema, params);\n const res = await this.apiTransport.sendRequest(\n '/recording/info',\n toJsonString(RecordingInfoReqSchema, body),\n );\n const output = create(RecordingInfoResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(RecordingInfoResSchema, res.response);\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<GetClientFilesRes>\n */\n public async getClientFiles(): Promise<GetClientFilesRes> {\n const res = await this.apiTransport.sendRequest('/getClientFiles', '{}');\n const output = create(GetClientFilesResSchema);\n\n if (!res.status) {\n output.msg = res.response;\n return output;\n }\n\n return fromJsonString(GetClientFilesResSchema, res.response);\n }\n}\n","import axios, { AxiosInstance } from 'axios';\nimport { createHmac } from 'crypto';\nimport FormData from 'form-data';\nimport { fromJsonString } from '@bufbuild/protobuf';\nimport { CommonResponseSchema } from 'plugnmeet-protocol-js';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n private readonly apiKey: string;\n private readonly apiSecret: string;\n private axios: AxiosInstance;\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n this.axios = axios.create({\n baseURL: apiEndPointURL,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n }\n\n private prepareHeader = (body: string): Record<string, string> => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n return {\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: string) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = this.prepareHeader(body);\n\n try {\n const res = await this.axios.post(path, body, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n output.response = error.response.data;\n }\n return output;\n }\n };\n\n public sendMultipartRequest = async (\n path: string,\n roomId: string,\n formData: FormData,\n ) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const headers = {\n 'Room-Id': roomId,\n ...this.prepareHeader(roomId),\n ...formData.getHeaders(),\n };\n\n try {\n const res = await this.axios.post(path, formData, {\n headers,\n // Return the raw response string, preventing axios from decoding it.\n // The protobuf `fromJson` method will handle the parsing.\n transformResponse: [(data) => data],\n });\n output.status = true;\n output.response = res.data;\n return output;\n } catch (error: any) {\n output.response = error.message;\n if (error.response) {\n try {\n const decode = fromJsonString(\n CommonResponseSchema,\n error.response.data,\n );\n output.response = decode.msg;\n // oxlint-disable-next-line\n } catch (e) {}\n }\n return output;\n }\n };\n}\n"],"names":[],"version":3,"file":"index.mjs.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plugnmeet-sdk-js",
3
- "version": "2.1.3-1",
3
+ "version": "2.1.3-10",
4
4
  "description": "plugNmeet JS SDK",
5
5
  "author": "Jibon L. Costa",
6
6
  "license": "MIT",
@@ -23,16 +23,17 @@
23
23
  }
24
24
  },
25
25
  "dependencies": {
26
- "@bufbuild/protobuf": "2.11.0",
27
- "axios": "1.15.2",
28
- "plugnmeet-protocol-js": "1.2.2-20"
26
+ "@bufbuild/protobuf": "2.12.0",
27
+ "axios": "1.16.1",
28
+ "form-data": "4.0.5",
29
+ "plugnmeet-protocol-js": "1.2.2-32"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@parcel/packager-ts": "2.16.4",
32
33
  "@parcel/transformer-typescript-types": "2.16.4",
33
34
  "@prettier/plugin-oxc": "0.1.4",
34
- "@types/node": "25.6.0",
35
- "oxlint": "1.61.0",
35
+ "@types/node": "25.9.1",
36
+ "oxlint": "1.66.0",
36
37
  "parcel": "2.16.4",
37
38
  "prettier": "3.8.3",
38
39
  "typedoc": "0.28.19",