plugnmeet-sdk-js 2.1.3-0 → 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,4 +1,9 @@
1
- import { CreateRoomReq, CreateRoomRes, GenerateTokenReq, GenerateTokenRes, IsRoomActiveReq, IsRoomActiveRes, GetActiveRoomInfoReq, GetActiveRoomInfoRes, GetActiveRoomsInfoRes, FetchPastRoomsReq, FetchPastRoomsRes, RoomEndReq, RoomEndRes, FetchArtifactsReq, FetchArtifactsRes, DeleteArtifactReq, DeleteArtifactRes, GetArtifactDownloadTokenReq, GetArtifactDownloadTokenRes, ArtifactInfoReq, ArtifactInfoRes, FetchRecordingsReq, FetchRecordingsRes, DeleteRecordingReq, DeleteRecordingRes, GetDownloadTokenReq, GetDownloadTokenRes, RecordingInfoReq, RecordingInfoRes, UpdateRecordingMetadataReq, UpdateRecordingMetadataRes, GetClientFilesRes } from "plugnmeet-protocol-js";
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
+ }
2
7
  interface PlugNmeetAPI {
3
8
  /**
4
9
  * Create new room
@@ -41,6 +46,18 @@ interface PlugNmeetAPI {
41
46
  * @returns Promise<RoomEndRes>
42
47
  */
43
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>;
44
61
  /**
45
62
  * Fetch artifacts
46
63
  * @param params
@@ -56,7 +73,7 @@ interface PlugNmeetAPI {
56
73
  /**
57
74
  * Generate token to download Artifact
58
75
  * @param params
59
- * @returns Promise<AnalyticsDownloadTokenResponse>
76
+ * @returns Promise<GetArtifactDownloadTokenRes>
60
77
  */
61
78
  getArtifactDownloadToken(params: GetArtifactDownloadTokenReq): Promise<GetArtifactDownloadTokenRes>;
62
79
  /**
@@ -89,6 +106,12 @@ interface PlugNmeetAPI {
89
106
  * @returns Promise<UpdateRecordingMetadataRes>
90
107
  */
91
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>;
92
115
  /**
93
116
  * Get recording details
94
117
  * @param params
@@ -150,6 +173,18 @@ export class PlugNmeet implements PlugNmeetAPI {
150
173
  * @returns Promise<RoomEndRes>
151
174
  */
152
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>;
153
188
  /**
154
189
  * Fetch artifacts
155
190
  * @param params
@@ -198,6 +233,12 @@ export class PlugNmeet implements PlugNmeetAPI {
198
233
  * @returns Promise<UpdateRecordingMetadataRes>
199
234
  */
200
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>;
201
242
  /**
202
243
  * Get recording details
203
244
  * @param params
@@ -1 +1 @@
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"}
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-0",
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",