plugnmeet-sdk-js 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -14
- package/dist/PlugNmeet.cjs.js +86 -20
- package/dist/PlugNmeet.cjs.js.map +1 -1
- package/dist/PlugNmeet.js +86 -20
- package/dist/PlugNmeet.js.map +1 -1
- package/dist/PlugNmeet.mjs.js +84 -20
- package/dist/PlugNmeet.mjs.js.map +1 -1
- package/dist/index.d.ts +203 -13
- package/dist/index.d.ts.map +1 -1
- package/package.json +16 -15
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ npm install plugnmeet-sdk-js
|
|
|
12
12
|
|
|
13
13
|
**Import**
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
CommonJS:
|
|
16
16
|
|
|
17
17
|
```js
|
|
18
18
|
const plugNmeet = require('plugnmeet-sdk-js').PlugNmeet;
|
|
@@ -25,7 +25,7 @@ const pnm = new plugNmeet(
|
|
|
25
25
|
);
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
TypeScript:
|
|
28
|
+
ES Modules/TypeScript:
|
|
29
29
|
|
|
30
30
|
```js
|
|
31
31
|
import { PlugNmeet } from 'plugnmeet-sdk-js';
|
|
@@ -41,15 +41,19 @@ Please check `examples` directory to see some examples.
|
|
|
41
41
|
|
|
42
42
|
## Methods/API
|
|
43
43
|
|
|
44
|
-
| Methods | Description
|
|
45
|
-
| ---------------------------------------------------------------------------------------------------------------------------
|
|
46
|
-
| [createRoom](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#createRoom) | To create new room
|
|
47
|
-
| [getJoinToken](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getJoinToken) | Generate join token
|
|
48
|
-
| [isRoomActive](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#isRoomActive) | To check if room is active or not
|
|
49
|
-
| [getActiveRoomInfo](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getActiveRoomInfo) | Get active room information
|
|
50
|
-
| [getActiveRoomsInfo](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getActiveRoomsInfo) | Get all active rooms
|
|
51
|
-
| [
|
|
52
|
-
| [
|
|
53
|
-
| [
|
|
54
|
-
| [
|
|
55
|
-
| [
|
|
44
|
+
| Methods | Description |
|
|
45
|
+
| --------------------------------------------------------------------------------------------------------------------------- |-------------------------------------------|
|
|
46
|
+
| [createRoom](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#createRoom) | To create new room |
|
|
47
|
+
| [getJoinToken](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getJoinToken) | Generate join token |
|
|
48
|
+
| [isRoomActive](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#isRoomActive) | To check if room is active or not |
|
|
49
|
+
| [getActiveRoomInfo](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getActiveRoomInfo) | Get active room information |
|
|
50
|
+
| [getActiveRoomsInfo](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getActiveRoomsInfo) | Get all active rooms |
|
|
51
|
+
| [fetchPastRoomsInfo](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#fetchPastRoomsInfo) | Get past rooms information |
|
|
52
|
+
| [endRoom](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#endRoom) | End active room |
|
|
53
|
+
| [fetchAnalytics](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#fetchAnalytics) | Fetch analytics |
|
|
54
|
+
| [deleteAnalytics](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#deleteAnalytics) | Delete analytics |
|
|
55
|
+
| [getAnalyticsDownloadToken](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getAnalyticsDownloadToken) | Generate token to download analytics data |
|
|
56
|
+
| [fetchRecordings](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#fetchRecordings) | Fetch recordings |
|
|
57
|
+
| [deleteRecordings](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#deleteRecordings) | Delete recording |
|
|
58
|
+
| [getRecordingDownloadToken](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getRecordingDownloadToken) | Generate token to download recording |
|
|
59
|
+
| [getClientFiles](https://mynaparrot.github.io/plugNmeet-sdk-js/classes/PlugNmeet.html#getClientFiles) | Get client's files |
|
package/dist/PlugNmeet.cjs.js
CHANGED
|
@@ -3,9 +3,11 @@ var $jMCoD$http = require("http");
|
|
|
3
3
|
var $jMCoD$https = require("https");
|
|
4
4
|
var $jMCoD$crypto = require("crypto");
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
function $parcel$export(e, n, v, s) {
|
|
7
8
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
8
9
|
}
|
|
10
|
+
|
|
9
11
|
function $parcel$interopDefault(a) {
|
|
10
12
|
return a && a.__esModule ? a.default : a;
|
|
11
13
|
}
|
|
@@ -22,12 +24,11 @@ class $e71a992b229cccd4$export$5a82ec1641dd9681 {
|
|
|
22
24
|
this.mainOptions = {};
|
|
23
25
|
this.prepareHeader = (body)=>{
|
|
24
26
|
const signature = (0, $jMCoD$crypto.createHmac)("sha256", this.apiSecret).update(body).digest("hex");
|
|
25
|
-
|
|
27
|
+
return {
|
|
26
28
|
"Content-Type": "application/json",
|
|
27
29
|
"API-KEY": this.apiKey,
|
|
28
30
|
"HASH-SIGNATURE": signature
|
|
29
31
|
};
|
|
30
|
-
return headers;
|
|
31
32
|
};
|
|
32
33
|
this.sendRequest = async (path, body)=>{
|
|
33
34
|
return new Promise((resolve)=>{
|
|
@@ -93,7 +94,7 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
96
|
* Create new room
|
|
96
|
-
* @param params
|
|
97
|
+
* @param params
|
|
97
98
|
* @returns Promise<CreateRoomResponse>
|
|
98
99
|
*/ async createRoom(params) {
|
|
99
100
|
const output = await this.apiTransport.sendRequest("/room/create", params);
|
|
@@ -109,7 +110,7 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
109
110
|
}
|
|
110
111
|
/**
|
|
111
112
|
* Generate join token
|
|
112
|
-
* @param params
|
|
113
|
+
* @param params
|
|
113
114
|
* @returns Promise<JoinTokenResponse>
|
|
114
115
|
*/ async getJoinToken(params) {
|
|
115
116
|
const output = await this.apiTransport.sendRequest("/room/getJoinToken", params);
|
|
@@ -125,7 +126,7 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
125
126
|
}
|
|
126
127
|
/**
|
|
127
128
|
* If room is active or not
|
|
128
|
-
* @param params
|
|
129
|
+
* @param params
|
|
129
130
|
* @returns Promise<IsRoomActiveResponse>
|
|
130
131
|
*/ async isRoomActive(params) {
|
|
131
132
|
const output = await this.apiTransport.sendRequest("/room/isRoomActive", params);
|
|
@@ -135,12 +136,13 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
135
136
|
};
|
|
136
137
|
return {
|
|
137
138
|
status: output.response.status,
|
|
139
|
+
is_active: output.response.is_active,
|
|
138
140
|
msg: output.response.msg
|
|
139
141
|
};
|
|
140
142
|
}
|
|
141
143
|
/**
|
|
142
144
|
* Get active room information
|
|
143
|
-
* @param params
|
|
145
|
+
* @param params
|
|
144
146
|
* @returns Promise<ActiveRoomInfoResponse>
|
|
145
147
|
*/ async getActiveRoomInfo(params) {
|
|
146
148
|
const output = await this.apiTransport.sendRequest("/room/getActiveRoomInfo", params);
|
|
@@ -170,8 +172,24 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
170
172
|
};
|
|
171
173
|
}
|
|
172
174
|
/**
|
|
175
|
+
* Fetch info about past rooms
|
|
176
|
+
* @param params
|
|
177
|
+
* @returns Promise<FetchRoomsInfoResponse>
|
|
178
|
+
*/ async fetchPastRoomsInfo(params) {
|
|
179
|
+
const output = await this.apiTransport.sendRequest("/room/fetchPastRooms", params);
|
|
180
|
+
if (!output.status) return {
|
|
181
|
+
status: false,
|
|
182
|
+
msg: output.response
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
status: output.response.status,
|
|
186
|
+
msg: output.response.msg,
|
|
187
|
+
result: output.response.result
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
173
191
|
* End active room
|
|
174
|
-
* @param params
|
|
192
|
+
* @param params
|
|
175
193
|
* @returns Promise<EndRoomResponse>
|
|
176
194
|
*/ async endRoom(params) {
|
|
177
195
|
const output = await this.apiTransport.sendRequest("/room/endRoom", params);
|
|
@@ -185,8 +203,55 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
185
203
|
};
|
|
186
204
|
}
|
|
187
205
|
/**
|
|
206
|
+
* Fetch analytics
|
|
207
|
+
* @param params
|
|
208
|
+
* @returns Promise<FetchAnalyticsResponse>
|
|
209
|
+
*/ async fetchAnalytics(params) {
|
|
210
|
+
const output = await this.apiTransport.sendRequest("/analytics/fetch", params);
|
|
211
|
+
if (!output.status) return {
|
|
212
|
+
status: false,
|
|
213
|
+
msg: output.response
|
|
214
|
+
};
|
|
215
|
+
return {
|
|
216
|
+
status: output.response.status,
|
|
217
|
+
msg: output.response.msg,
|
|
218
|
+
result: output.response.result
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Delete analytics
|
|
223
|
+
* @param params
|
|
224
|
+
* @returns Promise<DeleteAnalyticsResponse>
|
|
225
|
+
*/ async deleteAnalytics(params) {
|
|
226
|
+
const output = await this.apiTransport.sendRequest("/analytics/delete", params);
|
|
227
|
+
if (!output.status) return {
|
|
228
|
+
status: false,
|
|
229
|
+
msg: output.response
|
|
230
|
+
};
|
|
231
|
+
return {
|
|
232
|
+
status: output.response.status,
|
|
233
|
+
msg: output.response.msg
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Generate token to download recording
|
|
238
|
+
* @param params
|
|
239
|
+
* @returns Promise<AnalyticsDownloadTokenResponse>
|
|
240
|
+
*/ async getAnalyticsDownloadToken(params) {
|
|
241
|
+
const output = await this.apiTransport.sendRequest("/analytics/getDownloadToken", params);
|
|
242
|
+
if (!output.status) return {
|
|
243
|
+
status: false,
|
|
244
|
+
msg: output.response
|
|
245
|
+
};
|
|
246
|
+
return {
|
|
247
|
+
status: output.response.status,
|
|
248
|
+
msg: output.response.msg,
|
|
249
|
+
token: output.response.token
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
188
253
|
* Fetch recordings
|
|
189
|
-
* @param params
|
|
254
|
+
* @param params
|
|
190
255
|
* @returns Promise<FetchRecordingsResponse>
|
|
191
256
|
*/ async fetchRecordings(params) {
|
|
192
257
|
const output = await this.apiTransport.sendRequest("/recording/fetch", params);
|
|
@@ -202,7 +267,7 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
202
267
|
}
|
|
203
268
|
/**
|
|
204
269
|
* Delete recording
|
|
205
|
-
* @param params
|
|
270
|
+
* @param params
|
|
206
271
|
* @returns Promise<DeleteRecordingsResponse>
|
|
207
272
|
*/ async deleteRecordings(params) {
|
|
208
273
|
const output = await this.apiTransport.sendRequest("/recording/delete", params);
|
|
@@ -216,9 +281,11 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
216
281
|
};
|
|
217
282
|
}
|
|
218
283
|
/**
|
|
219
|
-
*
|
|
220
|
-
|
|
221
|
-
|
|
284
|
+
* Generate token to download recording
|
|
285
|
+
* @param params
|
|
286
|
+
* @returns Promise<RecordingDownloadTokenResponse>
|
|
287
|
+
*/ async getRecordingDownloadToken(params) {
|
|
288
|
+
const output = await this.apiTransport.sendRequest("/recording/getDownloadToken", params);
|
|
222
289
|
if (!output.status) return {
|
|
223
290
|
status: false,
|
|
224
291
|
msg: output.response
|
|
@@ -226,16 +293,14 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
226
293
|
return {
|
|
227
294
|
status: output.response.status,
|
|
228
295
|
msg: output.response.msg,
|
|
229
|
-
|
|
230
|
-
js: output.response.js
|
|
296
|
+
token: output.response.token
|
|
231
297
|
};
|
|
232
298
|
}
|
|
233
299
|
/**
|
|
234
|
-
*
|
|
235
|
-
* @
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
const output = await this.apiTransport.sendRequest("/recording/getDownloadToken", params);
|
|
300
|
+
* To get JS & CSS files to build interface
|
|
301
|
+
* @returns Promise<ClientFilesResponse>
|
|
302
|
+
*/ async getClientFiles() {
|
|
303
|
+
const output = await this.apiTransport.sendRequest("/getClientFiles", {});
|
|
239
304
|
if (!output.status) return {
|
|
240
305
|
status: false,
|
|
241
306
|
msg: output.response
|
|
@@ -243,7 +308,8 @@ class $405dcbf07186a1ff$export$1402da7f2870faee {
|
|
|
243
308
|
return {
|
|
244
309
|
status: output.response.status,
|
|
245
310
|
msg: output.response.msg,
|
|
246
|
-
|
|
311
|
+
css: output.response.css,
|
|
312
|
+
js: output.response.js
|
|
247
313
|
};
|
|
248
314
|
}
|
|
249
315
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["import { ApiTransport } from './ApiTransport';\nimport { CreateRoomParams, CreateRoomResponse } from './types/createRoom';\nimport { JoinTokenParams, JoinTokenResponse } from './types/joinToken';\nimport { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive';\nimport {\n ActiveRoomInfoParams,\n ActiveRoomInfoResponse,\n} from './types/activeRoomInfo';\nimport { ActiveRoomsInfoResponse } from './types/activeRoomsInfo';\nimport { EndRoomParams, EndRoomResponse } from './types/endRoom';\nimport {\n FetchRecordingsParams,\n FetchRecordingsResponse,\n} from './types/fetchRecordings';\nimport {\n DeleteRecordingsParams,\n DeleteRecordingsResponse,\n} from './types/deleteRecordings';\nimport {\n RecordingDownloadTokenParams,\n RecordingDownloadTokenResponse,\n} from './types/RecordingDownloadToken';\nimport { ClientFilesResponse } from './types/clientFiles';\n\nexport class PlugNmeet {\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: CreateRoomParams\n * @returns Promise<CreateRoomResponse>\n */\n public async createRoom(\n params: CreateRoomParams,\n ): Promise<CreateRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/create', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n roomInfo: output.response.roomInfo,\n };\n }\n\n /**\n * Generate join token\n * @param params: JoinTokenParams\n * @returns Promise<JoinTokenResponse>\n */\n public async getJoinToken(\n params: JoinTokenParams,\n ): Promise<JoinTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * If room is active or not\n * @param params: IsRoomActiveParams\n * @returns Promise<IsRoomActiveResponse>\n */\n public async isRoomActive(\n params: IsRoomActiveParams,\n ): Promise<IsRoomActiveResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Get active room information\n * @param params: ActiveRoomInfoParams\n * @returns Promise<ActiveRoomInfoResponse>\n */\n public async getActiveRoomInfo(\n params: ActiveRoomInfoParams,\n ): Promise<ActiveRoomInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n room: output.response.room,\n };\n }\n\n /**\n * Get all active rooms\n * @returns Promise<ActiveRoomsInfoResponse>\n */\n public async getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n {},\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n rooms: output.response.rooms,\n };\n }\n\n /**\n * End active room\n * @param params: EndRoomParams\n * @returns Promise<EndRoomResponse>\n */\n public async endRoom(params: EndRoomParams): Promise<EndRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/endRoom', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Fetch recordings\n * @param params: FetchRecordingsParams\n * @returns Promise<FetchRecordingsResponse>\n */\n public async fetchRecordings(\n params: FetchRecordingsParams,\n ): Promise<FetchRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete recording\n * @param params: DeleteRecordingsParams\n * @returns Promise<DeleteRecordingsResponse>\n */\n public async deleteRecordings(\n params: DeleteRecordingsParams,\n ): Promise<DeleteRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await this.apiTransport.sendRequest('/getClientFiles', {});\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n css: output.response.css,\n js: output.response.js,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params: RecordingDownloadTokenParams\n * @returns Promise<RecordingDownloadTokenResponse>\n */\n public async getRecordingDownloadToken(\n params: RecordingDownloadTokenParams,\n ): Promise<RecordingDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n}\n","import http from 'http';\nimport https, { RequestOptions } from 'https';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n protected apiEndPointURL: string;\n protected apiKey: string;\n protected apiSecret: string;\n\n private isSecure = false;\n private mainOptions: RequestOptions = {};\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiEndPointURL = apiEndPointURL;\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n const url = new URL(apiEndPointURL);\n let port = url.protocol === 'https:' ? 443 : 80;\n this.isSecure = url.protocol === 'https:' ?? false;\n\n // use port if supplied with url\n if (url.port) {\n port = Number(url.port);\n }\n\n this.mainOptions = {\n hostname: url.hostname,\n path: url.pathname,\n method: 'POST',\n port,\n };\n }\n\n private prepareHeader = (body: string) => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n const headers = {\n 'Content-Type': 'application/json',\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n\n return headers;\n };\n\n public sendRequest = async (path: string, body: any) => {\n return new Promise<APIResponse>((resolve) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const chunk = JSON.stringify(body);\n\n const options = { ...this.mainOptions };\n options.path += path;\n options.headers = this.prepareHeader(chunk);\n\n const req = (this.isSecure ? https : http).request(options, (res) => {\n const body: Array<Uint8Array> = [];\n res.on('data', (chunk) => body.push(chunk));\n\n res.on('end', () => {\n const resString = Buffer.concat(body).toString();\n\n try {\n output.status = true;\n output.response = JSON.parse(resString);\n } catch (error) {\n output.status = false;\n output.response = error;\n }\n\n resolve(output);\n });\n });\n\n req.on('error', (error) => {\n output.response = error.message;\n resolve(output);\n });\n\n req.write(chunk);\n req.end();\n });\n };\n}\n"],"names":[],"version":3,"file":"PlugNmeet.cjs.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["import { ApiTransport } from './ApiTransport';\nimport { CreateRoomParams, CreateRoomResponse } from './types/createRoom';\nimport { JoinTokenParams, JoinTokenResponse } from './types/joinToken';\nimport { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive';\nimport {\n ActiveRoomInfoParams,\n ActiveRoomInfoResponse,\n} from './types/activeRoomInfo';\nimport { ActiveRoomsInfoResponse } from './types/activeRoomsInfo';\nimport { EndRoomParams, EndRoomResponse } from './types/endRoom';\nimport {\n FetchRecordingsParams,\n FetchRecordingsResponse,\n} from './types/fetchRecordings';\nimport {\n DeleteRecordingsParams,\n DeleteRecordingsResponse,\n} from './types/deleteRecordings';\nimport {\n RecordingDownloadTokenParams,\n RecordingDownloadTokenResponse,\n} from './types/recordingDownloadToken';\nimport { ClientFilesResponse } from './types/clientFiles';\nimport {\n FetchRoomsInfoResponse,\n FetchPastRoomsInfoParams,\n} from './types/fetchPastRoomsInfo';\nimport {\n FetchAnalyticsParams,\n FetchAnalyticsResponse,\n} from './types/fetchAnalytics';\nimport {\n DeleteAnalyticsParams,\n DeleteAnalyticsResponse,\n} from './types/deleteAnalytics';\nimport {\n AnalyticsDownloadTokenParams,\n AnalyticsDownloadTokenResponse,\n} from './types/analyticsDownloadToken';\nimport { PlugNmeetAPI } from './types/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<CreateRoomResponse>\n */\n public async createRoom(\n params: CreateRoomParams,\n ): Promise<CreateRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/create', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n roomInfo: output.response.roomInfo,\n };\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<JoinTokenResponse>\n */\n public async getJoinToken(\n params: JoinTokenParams,\n ): Promise<JoinTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveResponse>\n */\n public async isRoomActive(\n params: IsRoomActiveParams,\n ): Promise<IsRoomActiveResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n is_active: output.response.is_active,\n msg: output.response.msg,\n };\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<ActiveRoomInfoResponse>\n */\n public async getActiveRoomInfo(\n params: ActiveRoomInfoParams,\n ): Promise<ActiveRoomInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n room: output.response.room,\n };\n }\n\n /**\n * Get all active rooms\n * @returns Promise<ActiveRoomsInfoResponse>\n */\n public async getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n {},\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n rooms: output.response.rooms,\n };\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchRoomsInfoResponse>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsInfoParams,\n ): Promise<FetchRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<EndRoomResponse>\n */\n public async endRoom(params: EndRoomParams): Promise<EndRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/endRoom', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Fetch analytics\n * @param params\n * @returns Promise<FetchAnalyticsResponse>\n */\n public async fetchAnalytics(\n params: FetchAnalyticsParams,\n ): Promise<FetchAnalyticsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete analytics\n * @param params\n * @returns Promise<DeleteAnalyticsResponse>\n */\n public async deleteAnalytics(\n params: DeleteAnalyticsParams,\n ): Promise<DeleteAnalyticsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<AnalyticsDownloadTokenResponse>\n */\n public async getAnalyticsDownloadToken(\n params: AnalyticsDownloadTokenParams,\n ): Promise<AnalyticsDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsResponse>\n */\n public async fetchRecordings(\n params: FetchRecordingsParams,\n ): Promise<FetchRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingsResponse>\n */\n public async deleteRecordings(\n params: DeleteRecordingsParams,\n ): Promise<DeleteRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<RecordingDownloadTokenResponse>\n */\n public async getRecordingDownloadToken(\n params: RecordingDownloadTokenParams,\n ): Promise<RecordingDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await this.apiTransport.sendRequest('/getClientFiles', {});\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n css: output.response.css,\n js: output.response.js,\n };\n }\n}\n","import http from 'http';\nimport https, { RequestOptions } from 'https';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n protected apiEndPointURL: string;\n protected apiKey: string;\n protected apiSecret: string;\n\n private isSecure = false;\n private mainOptions: RequestOptions = {};\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiEndPointURL = apiEndPointURL;\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n const url = new URL(apiEndPointURL);\n let port = url.protocol === 'https:' ? 443 : 80;\n this.isSecure = url.protocol === 'https:' ?? false;\n\n // use port if supplied with url\n if (url.port) {\n port = Number(url.port);\n }\n\n this.mainOptions = {\n hostname: url.hostname,\n path: url.pathname,\n method: 'POST',\n port,\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 'Content-Type': 'application/json',\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: any) => {\n return new Promise<APIResponse>((resolve) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const chunk = JSON.stringify(body);\n\n const options = { ...this.mainOptions };\n options.path += path;\n options.headers = this.prepareHeader(chunk);\n\n const req = (this.isSecure ? https : http).request(options, (res) => {\n const body: Array<Uint8Array> = [];\n res.on('data', (chunk) => body.push(chunk));\n\n res.on('end', () => {\n const resString = Buffer.concat(body).toString();\n\n try {\n output.status = true;\n output.response = JSON.parse(resString);\n } catch (error) {\n output.status = false;\n output.response = error;\n }\n\n resolve(output);\n });\n });\n\n req.on('error', (error) => {\n output.response = error.message;\n resolve(output);\n });\n\n req.write(chunk);\n req.end();\n });\n };\n}\n"],"names":[],"version":3,"file":"PlugNmeet.cjs.js.map"}
|
package/dist/PlugNmeet.js
CHANGED
|
@@ -2,9 +2,11 @@ var $d6kgz$http = require("http");
|
|
|
2
2
|
var $d6kgz$https = require("https");
|
|
3
3
|
var $d6kgz$crypto = require("crypto");
|
|
4
4
|
|
|
5
|
+
|
|
5
6
|
function $parcel$export(e, n, v, s) {
|
|
6
7
|
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
|
7
8
|
}
|
|
9
|
+
|
|
8
10
|
function $parcel$interopDefault(a) {
|
|
9
11
|
return a && a.__esModule ? a.default : a;
|
|
10
12
|
}
|
|
@@ -19,12 +21,11 @@ class $3437a6ece6919767$export$5a82ec1641dd9681 {
|
|
|
19
21
|
this.mainOptions = {};
|
|
20
22
|
this.prepareHeader = (body)=>{
|
|
21
23
|
const signature = (0, $d6kgz$crypto.createHmac)("sha256", this.apiSecret).update(body).digest("hex");
|
|
22
|
-
|
|
24
|
+
return {
|
|
23
25
|
"Content-Type": "application/json",
|
|
24
26
|
"API-KEY": this.apiKey,
|
|
25
27
|
"HASH-SIGNATURE": signature
|
|
26
28
|
};
|
|
27
|
-
return headers;
|
|
28
29
|
};
|
|
29
30
|
this.sendRequest = async (path, body)=>{
|
|
30
31
|
return new Promise((resolve)=>{
|
|
@@ -90,7 +91,7 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
93
|
* Create new room
|
|
93
|
-
* @param params
|
|
94
|
+
* @param params
|
|
94
95
|
* @returns Promise<CreateRoomResponse>
|
|
95
96
|
*/ async createRoom(params) {
|
|
96
97
|
const output = await this.apiTransport.sendRequest("/room/create", params);
|
|
@@ -106,7 +107,7 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
106
107
|
}
|
|
107
108
|
/**
|
|
108
109
|
* Generate join token
|
|
109
|
-
* @param params
|
|
110
|
+
* @param params
|
|
110
111
|
* @returns Promise<JoinTokenResponse>
|
|
111
112
|
*/ async getJoinToken(params) {
|
|
112
113
|
const output = await this.apiTransport.sendRequest("/room/getJoinToken", params);
|
|
@@ -122,7 +123,7 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
122
123
|
}
|
|
123
124
|
/**
|
|
124
125
|
* If room is active or not
|
|
125
|
-
* @param params
|
|
126
|
+
* @param params
|
|
126
127
|
* @returns Promise<IsRoomActiveResponse>
|
|
127
128
|
*/ async isRoomActive(params) {
|
|
128
129
|
const output = await this.apiTransport.sendRequest("/room/isRoomActive", params);
|
|
@@ -132,12 +133,13 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
132
133
|
};
|
|
133
134
|
return {
|
|
134
135
|
status: output.response.status,
|
|
136
|
+
is_active: output.response.is_active,
|
|
135
137
|
msg: output.response.msg
|
|
136
138
|
};
|
|
137
139
|
}
|
|
138
140
|
/**
|
|
139
141
|
* Get active room information
|
|
140
|
-
* @param params
|
|
142
|
+
* @param params
|
|
141
143
|
* @returns Promise<ActiveRoomInfoResponse>
|
|
142
144
|
*/ async getActiveRoomInfo(params) {
|
|
143
145
|
const output = await this.apiTransport.sendRequest("/room/getActiveRoomInfo", params);
|
|
@@ -167,8 +169,24 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
167
169
|
};
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
172
|
+
* Fetch info about past rooms
|
|
173
|
+
* @param params
|
|
174
|
+
* @returns Promise<FetchRoomsInfoResponse>
|
|
175
|
+
*/ async fetchPastRoomsInfo(params) {
|
|
176
|
+
const output = await this.apiTransport.sendRequest("/room/fetchPastRooms", params);
|
|
177
|
+
if (!output.status) return {
|
|
178
|
+
status: false,
|
|
179
|
+
msg: output.response
|
|
180
|
+
};
|
|
181
|
+
return {
|
|
182
|
+
status: output.response.status,
|
|
183
|
+
msg: output.response.msg,
|
|
184
|
+
result: output.response.result
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
170
188
|
* End active room
|
|
171
|
-
* @param params
|
|
189
|
+
* @param params
|
|
172
190
|
* @returns Promise<EndRoomResponse>
|
|
173
191
|
*/ async endRoom(params) {
|
|
174
192
|
const output = await this.apiTransport.sendRequest("/room/endRoom", params);
|
|
@@ -182,8 +200,55 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
182
200
|
};
|
|
183
201
|
}
|
|
184
202
|
/**
|
|
203
|
+
* Fetch analytics
|
|
204
|
+
* @param params
|
|
205
|
+
* @returns Promise<FetchAnalyticsResponse>
|
|
206
|
+
*/ async fetchAnalytics(params) {
|
|
207
|
+
const output = await this.apiTransport.sendRequest("/analytics/fetch", params);
|
|
208
|
+
if (!output.status) return {
|
|
209
|
+
status: false,
|
|
210
|
+
msg: output.response
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
status: output.response.status,
|
|
214
|
+
msg: output.response.msg,
|
|
215
|
+
result: output.response.result
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Delete analytics
|
|
220
|
+
* @param params
|
|
221
|
+
* @returns Promise<DeleteAnalyticsResponse>
|
|
222
|
+
*/ async deleteAnalytics(params) {
|
|
223
|
+
const output = await this.apiTransport.sendRequest("/analytics/delete", params);
|
|
224
|
+
if (!output.status) return {
|
|
225
|
+
status: false,
|
|
226
|
+
msg: output.response
|
|
227
|
+
};
|
|
228
|
+
return {
|
|
229
|
+
status: output.response.status,
|
|
230
|
+
msg: output.response.msg
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Generate token to download recording
|
|
235
|
+
* @param params
|
|
236
|
+
* @returns Promise<AnalyticsDownloadTokenResponse>
|
|
237
|
+
*/ async getAnalyticsDownloadToken(params) {
|
|
238
|
+
const output = await this.apiTransport.sendRequest("/analytics/getDownloadToken", params);
|
|
239
|
+
if (!output.status) return {
|
|
240
|
+
status: false,
|
|
241
|
+
msg: output.response
|
|
242
|
+
};
|
|
243
|
+
return {
|
|
244
|
+
status: output.response.status,
|
|
245
|
+
msg: output.response.msg,
|
|
246
|
+
token: output.response.token
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
185
250
|
* Fetch recordings
|
|
186
|
-
* @param params
|
|
251
|
+
* @param params
|
|
187
252
|
* @returns Promise<FetchRecordingsResponse>
|
|
188
253
|
*/ async fetchRecordings(params) {
|
|
189
254
|
const output = await this.apiTransport.sendRequest("/recording/fetch", params);
|
|
@@ -199,7 +264,7 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
199
264
|
}
|
|
200
265
|
/**
|
|
201
266
|
* Delete recording
|
|
202
|
-
* @param params
|
|
267
|
+
* @param params
|
|
203
268
|
* @returns Promise<DeleteRecordingsResponse>
|
|
204
269
|
*/ async deleteRecordings(params) {
|
|
205
270
|
const output = await this.apiTransport.sendRequest("/recording/delete", params);
|
|
@@ -213,9 +278,11 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
213
278
|
};
|
|
214
279
|
}
|
|
215
280
|
/**
|
|
216
|
-
*
|
|
217
|
-
|
|
218
|
-
|
|
281
|
+
* Generate token to download recording
|
|
282
|
+
* @param params
|
|
283
|
+
* @returns Promise<RecordingDownloadTokenResponse>
|
|
284
|
+
*/ async getRecordingDownloadToken(params) {
|
|
285
|
+
const output = await this.apiTransport.sendRequest("/recording/getDownloadToken", params);
|
|
219
286
|
if (!output.status) return {
|
|
220
287
|
status: false,
|
|
221
288
|
msg: output.response
|
|
@@ -223,16 +290,14 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
223
290
|
return {
|
|
224
291
|
status: output.response.status,
|
|
225
292
|
msg: output.response.msg,
|
|
226
|
-
|
|
227
|
-
js: output.response.js
|
|
293
|
+
token: output.response.token
|
|
228
294
|
};
|
|
229
295
|
}
|
|
230
296
|
/**
|
|
231
|
-
*
|
|
232
|
-
* @
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const output = await this.apiTransport.sendRequest("/recording/getDownloadToken", params);
|
|
297
|
+
* To get JS & CSS files to build interface
|
|
298
|
+
* @returns Promise<ClientFilesResponse>
|
|
299
|
+
*/ async getClientFiles() {
|
|
300
|
+
const output = await this.apiTransport.sendRequest("/getClientFiles", {});
|
|
236
301
|
if (!output.status) return {
|
|
237
302
|
status: false,
|
|
238
303
|
msg: output.response
|
|
@@ -240,7 +305,8 @@ class $8e30a24c4952589a$export$1402da7f2870faee {
|
|
|
240
305
|
return {
|
|
241
306
|
status: output.response.status,
|
|
242
307
|
msg: output.response.msg,
|
|
243
|
-
|
|
308
|
+
css: output.response.css,
|
|
309
|
+
js: output.response.js
|
|
244
310
|
};
|
|
245
311
|
}
|
|
246
312
|
}
|
package/dist/PlugNmeet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["import { ApiTransport } from './ApiTransport';\nimport { CreateRoomParams, CreateRoomResponse } from './types/createRoom';\nimport { JoinTokenParams, JoinTokenResponse } from './types/joinToken';\nimport { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive';\nimport {\n ActiveRoomInfoParams,\n ActiveRoomInfoResponse,\n} from './types/activeRoomInfo';\nimport { ActiveRoomsInfoResponse } from './types/activeRoomsInfo';\nimport { EndRoomParams, EndRoomResponse } from './types/endRoom';\nimport {\n FetchRecordingsParams,\n FetchRecordingsResponse,\n} from './types/fetchRecordings';\nimport {\n DeleteRecordingsParams,\n DeleteRecordingsResponse,\n} from './types/deleteRecordings';\nimport {\n RecordingDownloadTokenParams,\n RecordingDownloadTokenResponse,\n} from './types/RecordingDownloadToken';\nimport { ClientFilesResponse } from './types/clientFiles';\n\nexport class PlugNmeet {\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: CreateRoomParams\n * @returns Promise<CreateRoomResponse>\n */\n public async createRoom(\n params: CreateRoomParams,\n ): Promise<CreateRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/create', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n roomInfo: output.response.roomInfo,\n };\n }\n\n /**\n * Generate join token\n * @param params: JoinTokenParams\n * @returns Promise<JoinTokenResponse>\n */\n public async getJoinToken(\n params: JoinTokenParams,\n ): Promise<JoinTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * If room is active or not\n * @param params: IsRoomActiveParams\n * @returns Promise<IsRoomActiveResponse>\n */\n public async isRoomActive(\n params: IsRoomActiveParams,\n ): Promise<IsRoomActiveResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Get active room information\n * @param params: ActiveRoomInfoParams\n * @returns Promise<ActiveRoomInfoResponse>\n */\n public async getActiveRoomInfo(\n params: ActiveRoomInfoParams,\n ): Promise<ActiveRoomInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n room: output.response.room,\n };\n }\n\n /**\n * Get all active rooms\n * @returns Promise<ActiveRoomsInfoResponse>\n */\n public async getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n {},\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n rooms: output.response.rooms,\n };\n }\n\n /**\n * End active room\n * @param params: EndRoomParams\n * @returns Promise<EndRoomResponse>\n */\n public async endRoom(params: EndRoomParams): Promise<EndRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/endRoom', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Fetch recordings\n * @param params: FetchRecordingsParams\n * @returns Promise<FetchRecordingsResponse>\n */\n public async fetchRecordings(\n params: FetchRecordingsParams,\n ): Promise<FetchRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete recording\n * @param params: DeleteRecordingsParams\n * @returns Promise<DeleteRecordingsResponse>\n */\n public async deleteRecordings(\n params: DeleteRecordingsParams,\n ): Promise<DeleteRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await this.apiTransport.sendRequest('/getClientFiles', {});\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n css: output.response.css,\n js: output.response.js,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params: RecordingDownloadTokenParams\n * @returns Promise<RecordingDownloadTokenResponse>\n */\n public async getRecordingDownloadToken(\n params: RecordingDownloadTokenParams,\n ): Promise<RecordingDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n}\n","import http from 'http';\nimport https, { RequestOptions } from 'https';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n protected apiEndPointURL: string;\n protected apiKey: string;\n protected apiSecret: string;\n\n private isSecure = false;\n private mainOptions: RequestOptions = {};\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiEndPointURL = apiEndPointURL;\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n const url = new URL(apiEndPointURL);\n let port = url.protocol === 'https:' ? 443 : 80;\n this.isSecure = url.protocol === 'https:' ?? false;\n\n // use port if supplied with url\n if (url.port) {\n port = Number(url.port);\n }\n\n this.mainOptions = {\n hostname: url.hostname,\n path: url.pathname,\n method: 'POST',\n port,\n };\n }\n\n private prepareHeader = (body: string) => {\n const signature = createHmac('sha256', this.apiSecret)\n .update(body)\n .digest('hex');\n\n const headers = {\n 'Content-Type': 'application/json',\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n\n return headers;\n };\n\n public sendRequest = async (path: string, body: any) => {\n return new Promise<APIResponse>((resolve) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const chunk = JSON.stringify(body);\n\n const options = { ...this.mainOptions };\n options.path += path;\n options.headers = this.prepareHeader(chunk);\n\n const req = (this.isSecure ? https : http).request(options, (res) => {\n const body: Array<Uint8Array> = [];\n res.on('data', (chunk) => body.push(chunk));\n\n res.on('end', () => {\n const resString = Buffer.concat(body).toString();\n\n try {\n output.status = true;\n output.response = JSON.parse(resString);\n } catch (error) {\n output.status = false;\n output.response = error;\n }\n\n resolve(output);\n });\n });\n\n req.on('error', (error) => {\n output.response = error.message;\n resolve(output);\n });\n\n req.write(chunk);\n req.end();\n });\n };\n}\n"],"names":[],"version":3,"file":"PlugNmeet.js.map","sourceRoot":"../"}
|
|
1
|
+
{"mappings":"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","sources":["src/PlugNmeet.ts","src/ApiTransport.ts"],"sourcesContent":["import { ApiTransport } from './ApiTransport';\nimport { CreateRoomParams, CreateRoomResponse } from './types/createRoom';\nimport { JoinTokenParams, JoinTokenResponse } from './types/joinToken';\nimport { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive';\nimport {\n ActiveRoomInfoParams,\n ActiveRoomInfoResponse,\n} from './types/activeRoomInfo';\nimport { ActiveRoomsInfoResponse } from './types/activeRoomsInfo';\nimport { EndRoomParams, EndRoomResponse } from './types/endRoom';\nimport {\n FetchRecordingsParams,\n FetchRecordingsResponse,\n} from './types/fetchRecordings';\nimport {\n DeleteRecordingsParams,\n DeleteRecordingsResponse,\n} from './types/deleteRecordings';\nimport {\n RecordingDownloadTokenParams,\n RecordingDownloadTokenResponse,\n} from './types/recordingDownloadToken';\nimport { ClientFilesResponse } from './types/clientFiles';\nimport {\n FetchRoomsInfoResponse,\n FetchPastRoomsInfoParams,\n} from './types/fetchPastRoomsInfo';\nimport {\n FetchAnalyticsParams,\n FetchAnalyticsResponse,\n} from './types/fetchAnalytics';\nimport {\n DeleteAnalyticsParams,\n DeleteAnalyticsResponse,\n} from './types/deleteAnalytics';\nimport {\n AnalyticsDownloadTokenParams,\n AnalyticsDownloadTokenResponse,\n} from './types/analyticsDownloadToken';\nimport { PlugNmeetAPI } from './types/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<CreateRoomResponse>\n */\n public async createRoom(\n params: CreateRoomParams,\n ): Promise<CreateRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/create', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n roomInfo: output.response.roomInfo,\n };\n }\n\n /**\n * Generate join token\n * @param params\n * @returns Promise<JoinTokenResponse>\n */\n public async getJoinToken(\n params: JoinTokenParams,\n ): Promise<JoinTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getJoinToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * If room is active or not\n * @param params\n * @returns Promise<IsRoomActiveResponse>\n */\n public async isRoomActive(\n params: IsRoomActiveParams,\n ): Promise<IsRoomActiveResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/isRoomActive',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n is_active: output.response.is_active,\n msg: output.response.msg,\n };\n }\n\n /**\n * Get active room information\n * @param params\n * @returns Promise<ActiveRoomInfoResponse>\n */\n public async getActiveRoomInfo(\n params: ActiveRoomInfoParams,\n ): Promise<ActiveRoomInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomInfo',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n room: output.response.room,\n };\n }\n\n /**\n * Get all active rooms\n * @returns Promise<ActiveRoomsInfoResponse>\n */\n public async getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/getActiveRoomsInfo',\n {},\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n rooms: output.response.rooms,\n };\n }\n\n /**\n * Fetch info about past rooms\n * @param params\n * @returns Promise<FetchRoomsInfoResponse>\n */\n public async fetchPastRoomsInfo(\n params: FetchPastRoomsInfoParams,\n ): Promise<FetchRoomsInfoResponse> {\n const output = await this.apiTransport.sendRequest(\n '/room/fetchPastRooms',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * End active room\n * @param params\n * @returns Promise<EndRoomResponse>\n */\n public async endRoom(params: EndRoomParams): Promise<EndRoomResponse> {\n const output = await this.apiTransport.sendRequest('/room/endRoom', params);\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Fetch analytics\n * @param params\n * @returns Promise<FetchAnalyticsResponse>\n */\n public async fetchAnalytics(\n params: FetchAnalyticsParams,\n ): Promise<FetchAnalyticsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete analytics\n * @param params\n * @returns Promise<DeleteAnalyticsResponse>\n */\n public async deleteAnalytics(\n params: DeleteAnalyticsParams,\n ): Promise<DeleteAnalyticsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<AnalyticsDownloadTokenResponse>\n */\n public async getAnalyticsDownloadToken(\n params: AnalyticsDownloadTokenParams,\n ): Promise<AnalyticsDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/analytics/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * Fetch recordings\n * @param params\n * @returns Promise<FetchRecordingsResponse>\n */\n public async fetchRecordings(\n params: FetchRecordingsParams,\n ): Promise<FetchRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/fetch',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n result: output.response.result,\n };\n }\n\n /**\n * Delete recording\n * @param params\n * @returns Promise<DeleteRecordingsResponse>\n */\n public async deleteRecordings(\n params: DeleteRecordingsParams,\n ): Promise<DeleteRecordingsResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/delete',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n };\n }\n\n /**\n * Generate token to download recording\n * @param params\n * @returns Promise<RecordingDownloadTokenResponse>\n */\n public async getRecordingDownloadToken(\n params: RecordingDownloadTokenParams,\n ): Promise<RecordingDownloadTokenResponse> {\n const output = await this.apiTransport.sendRequest(\n '/recording/getDownloadToken',\n params,\n );\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n token: output.response.token,\n };\n }\n\n /**\n * To get JS & CSS files to build interface\n * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await this.apiTransport.sendRequest('/getClientFiles', {});\n if (!output.status) {\n return {\n status: false,\n msg: output.response,\n };\n }\n\n return {\n status: output.response.status,\n msg: output.response.msg,\n css: output.response.css,\n js: output.response.js,\n };\n }\n}\n","import http from 'http';\nimport https, { RequestOptions } from 'https';\nimport { createHmac } from 'crypto';\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport class ApiTransport {\n protected apiEndPointURL: string;\n protected apiKey: string;\n protected apiSecret: string;\n\n private isSecure = false;\n private mainOptions: RequestOptions = {};\n\n constructor(apiEndPointURL: string, apiKey: string, apiSecret: string) {\n this.apiEndPointURL = apiEndPointURL;\n this.apiKey = apiKey;\n this.apiSecret = apiSecret;\n\n const url = new URL(apiEndPointURL);\n let port = url.protocol === 'https:' ? 443 : 80;\n this.isSecure = url.protocol === 'https:' ?? false;\n\n // use port if supplied with url\n if (url.port) {\n port = Number(url.port);\n }\n\n this.mainOptions = {\n hostname: url.hostname,\n path: url.pathname,\n method: 'POST',\n port,\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 'Content-Type': 'application/json',\n 'API-KEY': this.apiKey,\n 'HASH-SIGNATURE': signature,\n };\n };\n\n public sendRequest = async (path: string, body: any) => {\n return new Promise<APIResponse>((resolve) => {\n const output: APIResponse = {\n status: false,\n response: undefined,\n };\n\n const chunk = JSON.stringify(body);\n\n const options = { ...this.mainOptions };\n options.path += path;\n options.headers = this.prepareHeader(chunk);\n\n const req = (this.isSecure ? https : http).request(options, (res) => {\n const body: Array<Uint8Array> = [];\n res.on('data', (chunk) => body.push(chunk));\n\n res.on('end', () => {\n const resString = Buffer.concat(body).toString();\n\n try {\n output.status = true;\n output.response = JSON.parse(resString);\n } catch (error) {\n output.status = false;\n output.response = error;\n }\n\n resolve(output);\n });\n });\n\n req.on('error', (error) => {\n output.response = error.message;\n resolve(output);\n });\n\n req.write(chunk);\n req.end();\n });\n };\n}\n"],"names":[],"version":3,"file":"PlugNmeet.js.map","sourceRoot":"../"}
|