plugnmeet-sdk-js 1.2.2 → 1.2.3

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.
Files changed (98) hide show
  1. package/README.md +1 -1
  2. package/dist/PlugNmeet.js +184 -137
  3. package/dist/PlugNmeet.js.map +1 -1
  4. package/dist/index.d.ts +280 -11
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/main.js +248 -0
  7. package/dist/main.js.map +1 -0
  8. package/dist/module.js +241 -0
  9. package/dist/module.js.map +1 -0
  10. package/package.json +28 -21
  11. package/dist/PlugNmeet.d.ts +0 -76
  12. package/dist/api.d.ts +0 -6
  13. package/dist/api.js +0 -67
  14. package/dist/api.js.map +0 -1
  15. package/dist/cjs/PlugNmeet.d.ts +0 -76
  16. package/dist/cjs/PlugNmeet.js +0 -231
  17. package/dist/cjs/PlugNmeet.js.map +0 -1
  18. package/dist/cjs/api.d.ts +0 -6
  19. package/dist/cjs/api.js +0 -85
  20. package/dist/cjs/api.js.map +0 -1
  21. package/dist/cjs/index.d.ts +0 -11
  22. package/dist/cjs/index.js +0 -6
  23. package/dist/cjs/index.js.map +0 -1
  24. package/dist/cjs/types/RecordingDownloadToken.d.ts +0 -8
  25. package/dist/cjs/types/RecordingDownloadToken.js +0 -3
  26. package/dist/cjs/types/RecordingDownloadToken.js.map +0 -1
  27. package/dist/cjs/types/activeRoomInfo.d.ts +0 -34
  28. package/dist/cjs/types/activeRoomInfo.js +0 -3
  29. package/dist/cjs/types/activeRoomInfo.js.map +0 -1
  30. package/dist/cjs/types/activeRoomsInfo.d.ts +0 -6
  31. package/dist/cjs/types/activeRoomsInfo.js +0 -3
  32. package/dist/cjs/types/activeRoomsInfo.js.map +0 -1
  33. package/dist/cjs/types/clientFiles.d.ts +0 -6
  34. package/dist/cjs/types/clientFiles.js +0 -3
  35. package/dist/cjs/types/clientFiles.js.map +0 -1
  36. package/dist/cjs/types/createRoom.d.ts +0 -83
  37. package/dist/cjs/types/createRoom.js +0 -3
  38. package/dist/cjs/types/createRoom.js.map +0 -1
  39. package/dist/cjs/types/deleteRecordings.d.ts +0 -7
  40. package/dist/cjs/types/deleteRecordings.js +0 -3
  41. package/dist/cjs/types/deleteRecordings.js.map +0 -1
  42. package/dist/cjs/types/endRoom.d.ts +0 -7
  43. package/dist/cjs/types/endRoom.js +0 -3
  44. package/dist/cjs/types/endRoom.js.map +0 -1
  45. package/dist/cjs/types/fetchRecordings.d.ts +0 -27
  46. package/dist/cjs/types/fetchRecordings.js +0 -3
  47. package/dist/cjs/types/fetchRecordings.js.map +0 -1
  48. package/dist/cjs/types/isRoomActive.d.ts +0 -7
  49. package/dist/cjs/types/isRoomActive.js +0 -3
  50. package/dist/cjs/types/isRoomActive.js.map +0 -1
  51. package/dist/cjs/types/joinToken.d.ts +0 -21
  52. package/dist/cjs/types/joinToken.js +0 -3
  53. package/dist/cjs/types/joinToken.js.map +0 -1
  54. package/dist/index.js +0 -2
  55. package/dist/index.js.map +0 -1
  56. package/dist/types/RecordingDownloadToken.d.ts +0 -8
  57. package/dist/types/RecordingDownloadToken.js +0 -2
  58. package/dist/types/RecordingDownloadToken.js.map +0 -1
  59. package/dist/types/activeRoomInfo.d.ts +0 -34
  60. package/dist/types/activeRoomInfo.js +0 -2
  61. package/dist/types/activeRoomInfo.js.map +0 -1
  62. package/dist/types/activeRoomsInfo.d.ts +0 -6
  63. package/dist/types/activeRoomsInfo.js +0 -2
  64. package/dist/types/activeRoomsInfo.js.map +0 -1
  65. package/dist/types/clientFiles.d.ts +0 -6
  66. package/dist/types/clientFiles.js +0 -2
  67. package/dist/types/clientFiles.js.map +0 -1
  68. package/dist/types/createRoom.d.ts +0 -83
  69. package/dist/types/createRoom.js +0 -2
  70. package/dist/types/createRoom.js.map +0 -1
  71. package/dist/types/deleteRecordings.d.ts +0 -7
  72. package/dist/types/deleteRecordings.js +0 -2
  73. package/dist/types/deleteRecordings.js.map +0 -1
  74. package/dist/types/endRoom.d.ts +0 -7
  75. package/dist/types/endRoom.js +0 -2
  76. package/dist/types/endRoom.js.map +0 -1
  77. package/dist/types/fetchRecordings.d.ts +0 -27
  78. package/dist/types/fetchRecordings.js +0 -2
  79. package/dist/types/fetchRecordings.js.map +0 -1
  80. package/dist/types/isRoomActive.d.ts +0 -7
  81. package/dist/types/isRoomActive.js +0 -2
  82. package/dist/types/isRoomActive.js.map +0 -1
  83. package/dist/types/joinToken.d.ts +0 -21
  84. package/dist/types/joinToken.js +0 -2
  85. package/dist/types/joinToken.js.map +0 -1
  86. package/src/PlugNmeet.ts +0 -255
  87. package/src/api.ts +0 -92
  88. package/src/index.ts +0 -48
  89. package/src/types/RecordingDownloadToken.ts +0 -9
  90. package/src/types/activeRoomInfo.ts +0 -38
  91. package/src/types/activeRoomsInfo.ts +0 -7
  92. package/src/types/clientFiles.ts +0 -6
  93. package/src/types/createRoom.ts +0 -95
  94. package/src/types/deleteRecordings.ts +0 -8
  95. package/src/types/endRoom.ts +0 -8
  96. package/src/types/fetchRecordings.ts +0 -30
  97. package/src/types/isRoomActive.ts +0 -8
  98. package/src/types/joinToken.ts +0 -25
package/dist/index.d.ts CHANGED
@@ -1,11 +1,280 @@
1
- export { RooMetadata, CreateRoomParams, CreateRoomResponse, CreateRoomResponseRoomInfo, LockSettingsParams, RoomFeaturesParams, RecordingFeaturesParams, ChatFeaturesParams, SharedNotePadFeaturesParams, WhiteboardFeaturesParams, ExternalMediaPlayerFeatures, WaitingRoomFeatures, BreakoutRoomFeatures, } from './types/createRoom';
2
- export { JoinTokenParams, JoinTokenResponse, JoinTokenUserMetadata, JoinTokenUserInfo, } from './types/joinToken';
3
- export { IsRoomActiveParams, IsRoomActiveResponse } from './types/isRoomActive';
4
- export { Room, ActiveRoomInfoParams, ActiveRoomInfoResponse, ParticipantInfo, ActiveRoomInfo, } from './types/activeRoomInfo';
5
- export { ActiveRoomsInfoResponse } from './types/activeRoomsInfo';
6
- export { EndRoomParams, EndRoomResponse } from './types/endRoom';
7
- export { FetchRecordingsParams, FetchRecordingsResponse, FetchRecordingsResult, RecordingInfo, } from './types/fetchRecordings';
8
- export { DeleteRecordingsParams, DeleteRecordingsResponse, } from './types/deleteRecordings';
9
- export { RecordingDownloadTokenParams, RecordingDownloadTokenResponse, } from './types/RecordingDownloadToken';
10
- export { ClientFilesResponse } from './types/clientFiles';
11
- export { PlugNmeet } from './PlugNmeet';
1
+ type CreateRoomParams = {
2
+ room_id: string;
3
+ max_participants?: number;
4
+ empty_timeout?: number;
5
+ metadata: RooMetadata;
6
+ };
7
+ type RooMetadata = {
8
+ room_title: string;
9
+ welcome_message?: string;
10
+ webhook_url?: string;
11
+ logout_url?: string;
12
+ room_features: RoomFeaturesParams;
13
+ default_lock_settings?: LockSettingsParams;
14
+ };
15
+ type RoomFeaturesParams = {
16
+ allow_webcams: boolean;
17
+ mute_on_start: boolean;
18
+ allow_screen_share: boolean;
19
+ allow_rtmp: boolean;
20
+ admin_only_webcams: boolean;
21
+ allow_view_other_webcams: boolean;
22
+ allow_view_other_users_list: boolean;
23
+ recording_features: RecordingFeaturesParams;
24
+ chat_features: ChatFeaturesParams;
25
+ shared_note_pad_features?: SharedNotePadFeaturesParams;
26
+ whiteboard_features?: WhiteboardFeaturesParams;
27
+ external_media_player_features?: ExternalMediaPlayerFeatures;
28
+ waiting_room_features?: WaitingRoomFeatures;
29
+ breakout_room_features?: BreakoutRoomFeatures;
30
+ display_external_link_features?: DisplayExternalLinkFeatures;
31
+ ingress_features?: IngressFeatures;
32
+ };
33
+ type RecordingFeaturesParams = {
34
+ is_allow: boolean;
35
+ is_allow_cloud: boolean;
36
+ is_allow_local: boolean;
37
+ enable_auto_cloud_recording: boolean;
38
+ };
39
+ type ChatFeaturesParams = {
40
+ allow_chat: boolean;
41
+ allow_file_upload: boolean;
42
+ allowed_file_types: Array<string>;
43
+ max_file_size: number;
44
+ };
45
+ type SharedNotePadFeaturesParams = {
46
+ allowed_shared_note_pad: boolean;
47
+ };
48
+ type WhiteboardFeaturesParams = {
49
+ allowed_whiteboard: boolean;
50
+ };
51
+ type ExternalMediaPlayerFeatures = {
52
+ allowed_external_media_player: boolean;
53
+ };
54
+ type WaitingRoomFeatures = {
55
+ is_active: boolean;
56
+ waiting_room_msg?: string;
57
+ };
58
+ type BreakoutRoomFeatures = {
59
+ is_allow: boolean;
60
+ };
61
+ type DisplayExternalLinkFeatures = {
62
+ is_allow: boolean;
63
+ };
64
+ type IngressFeatures = {
65
+ is_allow: boolean;
66
+ };
67
+ type LockSettingsParams = {
68
+ lock_microphone?: boolean;
69
+ lock_webcam?: boolean;
70
+ lock_screen_sharing?: boolean;
71
+ lock_whiteboard?: boolean;
72
+ lock_shared_notepad?: boolean;
73
+ lock_chat?: boolean;
74
+ lock_chat_send_message?: boolean;
75
+ lock_chat_file_share?: boolean;
76
+ };
77
+ type CreateRoomResponse = {
78
+ status: boolean;
79
+ msg: string;
80
+ roomInfo?: CreateRoomResponseRoomInfo;
81
+ };
82
+ type CreateRoomResponseRoomInfo = {
83
+ sid: string;
84
+ name: string;
85
+ max_participants: number;
86
+ empty_timeout: number;
87
+ creation_time: number;
88
+ turn_password: string;
89
+ enabled_codecs: Array<any>;
90
+ metadata: string;
91
+ };
92
+ type JoinTokenParams = {
93
+ room_id: string;
94
+ user_info: JoinTokenUserInfo;
95
+ };
96
+ type JoinTokenUserInfo = {
97
+ name: string;
98
+ user_id: string;
99
+ is_admin: boolean;
100
+ is_hidden: boolean;
101
+ user_metadata?: JoinTokenUserMetadata;
102
+ };
103
+ type JoinTokenUserMetadata = {
104
+ profile_pic?: string;
105
+ lock_settings?: LockSettingsParams;
106
+ };
107
+ type JoinTokenResponse = {
108
+ status: boolean;
109
+ msg: string;
110
+ token?: string;
111
+ };
112
+ type IsRoomActiveParams = {
113
+ room_id: string;
114
+ };
115
+ type IsRoomActiveResponse = {
116
+ status: boolean;
117
+ msg: string;
118
+ };
119
+ type ActiveRoomInfoParams = {
120
+ room_id: string;
121
+ };
122
+ type ActiveRoomInfoResponse = {
123
+ status: boolean;
124
+ msg: string;
125
+ room?: Room;
126
+ };
127
+ type Room = {
128
+ room_info: ActiveRoomInfo;
129
+ participants_info: Array<ParticipantInfo>;
130
+ };
131
+ type ActiveRoomInfo = {
132
+ room_title: string;
133
+ room_id: string;
134
+ sid: string;
135
+ joined_participants: number;
136
+ is_running: boolean;
137
+ is_recording: boolean;
138
+ is_active_rtmp: boolean;
139
+ webhook_url: string;
140
+ creation_time: number;
141
+ metadata: string;
142
+ };
143
+ type ParticipantInfo = {
144
+ sid: string;
145
+ identity: string;
146
+ state: string;
147
+ metadata: string;
148
+ joined_at: number;
149
+ name: string;
150
+ version: number;
151
+ permission: any;
152
+ };
153
+ type ActiveRoomsInfoResponse = {
154
+ status: boolean;
155
+ msg: string;
156
+ rooms?: Array<Room>;
157
+ };
158
+ type EndRoomParams = {
159
+ room_id: string;
160
+ };
161
+ type EndRoomResponse = {
162
+ status: boolean;
163
+ msg: string;
164
+ };
165
+ type FetchRecordingsParams = {
166
+ room_ids: Array<string>;
167
+ from?: number;
168
+ limit?: number;
169
+ order_by?: 'ASC' | 'DESC';
170
+ };
171
+ type FetchRecordingsResponse = {
172
+ status: boolean;
173
+ msg: string;
174
+ result?: FetchRecordingsResult;
175
+ };
176
+ type FetchRecordingsResult = {
177
+ total_recordings: number;
178
+ from: number;
179
+ limit: number;
180
+ order_by: string;
181
+ recordings_list: Array<RecordingInfo>;
182
+ };
183
+ type RecordingInfo = {
184
+ record_id: string;
185
+ room_id: string;
186
+ room_sid: string;
187
+ file_path: string;
188
+ file_size: number;
189
+ creation_time: number;
190
+ room_creation_time: number;
191
+ };
192
+ type DeleteRecordingsParams = {
193
+ record_id: string;
194
+ };
195
+ type DeleteRecordingsResponse = {
196
+ status: boolean;
197
+ msg: string;
198
+ };
199
+ type RecordingDownloadTokenParams = {
200
+ record_id: string;
201
+ };
202
+ type RecordingDownloadTokenResponse = {
203
+ status: boolean;
204
+ msg: string;
205
+ token?: string;
206
+ };
207
+ type ClientFilesResponse = {
208
+ status: boolean;
209
+ msg: string;
210
+ css?: Array<string>;
211
+ js?: Array<string>;
212
+ };
213
+ export class PlugNmeet {
214
+ protected defaultPath: string;
215
+ /**
216
+ * @param serverUrl plugNmeet server URL
217
+ * @param apiKey plugNmeet API_Key
218
+ * @param apiSecret plugNmeet API_Secret
219
+ */
220
+ constructor(serverUrl: string, apiKey: string, apiSecret: string);
221
+ /**
222
+ * Create new room
223
+ * @param params: CreateRoomParams
224
+ * @returns Promise<CreateRoomResponse>
225
+ */
226
+ createRoom(params: CreateRoomParams): Promise<CreateRoomResponse>;
227
+ /**
228
+ * Generate join token
229
+ * @param params: JoinTokenParams
230
+ * @returns Promise<JoinTokenResponse>
231
+ */
232
+ getJoinToken(params: JoinTokenParams): Promise<JoinTokenResponse>;
233
+ /**
234
+ * If room is active or not
235
+ * @param params: IsRoomActiveParams
236
+ * @returns Promise<IsRoomActiveResponse>
237
+ */
238
+ isRoomActive(params: IsRoomActiveParams): Promise<IsRoomActiveResponse>;
239
+ /**
240
+ * Get active room information
241
+ * @param params: ActiveRoomInfoParams
242
+ * @returns Promise<ActiveRoomInfoResponse>
243
+ */
244
+ getActiveRoomInfo(params: ActiveRoomInfoParams): Promise<ActiveRoomInfoResponse>;
245
+ /**
246
+ * Get all active rooms
247
+ * @returns Promise<ActiveRoomsInfoResponse>
248
+ */
249
+ getActiveRoomsInfo(): Promise<ActiveRoomsInfoResponse>;
250
+ /**
251
+ * End active room
252
+ * @param params: EndRoomParams
253
+ * @returns Promise<EndRoomResponse>
254
+ */
255
+ endRoom(params: EndRoomParams): Promise<EndRoomResponse>;
256
+ /**
257
+ * Fetch recordings
258
+ * @param params: FetchRecordingsParams
259
+ * @returns Promise<FetchRecordingsResponse>
260
+ */
261
+ fetchRecordings(params: FetchRecordingsParams): Promise<FetchRecordingsResponse>;
262
+ /**
263
+ * Delete recording
264
+ * @param params: DeleteRecordingsParams
265
+ * @returns Promise<DeleteRecordingsResponse>
266
+ */
267
+ deleteRecordings(params: DeleteRecordingsParams): Promise<DeleteRecordingsResponse>;
268
+ /**
269
+ * @returns Promise<ClientFilesResponse>
270
+ */
271
+ getClientFiles(): Promise<ClientFilesResponse>;
272
+ /**
273
+ * Generate token to download recording
274
+ * @param params: RecordingDownloadTokenParams
275
+ * @returns Promise<RecordingDownloadTokenResponse>
276
+ */
277
+ getRecordingDownloadToken(params: RecordingDownloadTokenParams): Promise<RecordingDownloadTokenResponse>;
278
+ }
279
+
280
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":"ACAA,wBAA+B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,mBAA0B;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,CAAC;IAClC,qBAAqB,CAAC,EAAE,kBAAkB,CAAC;CAC5C,CAAC;AAEF,0BAAiC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,wBAAwB,EAAE,OAAO,CAAC;IAClC,2BAA2B,EAAE,OAAO,CAAC;IACrC,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,aAAa,EAAE,kBAAkB,CAAC;IAClC,wBAAwB,CAAC,EAAE,2BAA2B,CAAC;IACvD,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,8BAA8B,CAAC,EAAE,2BAA2B,CAAC;IAC7D,qBAAqB,CAAC,EAAE,mBAAmB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,oBAAoB,CAAC;IAC9C,8BAA8B,CAAC,EAAE,2BAA2B,CAAC;IAC7D,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF,+BAAsC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,2BAA2B,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,0BAAiC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,mCAA0C;IACxC,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,gCAAuC;IACrC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,mCAA0C;IACxC,6BAA6B,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,2BAAkC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,4BAAmC;IACjC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,mCAA0C;IACxC,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,uBAA8B;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,0BAAiC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,0BAAiC;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,0BAA0B,CAAC;CACvC,CAAC;AAEF,kCAAyC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;ACtGF,uBAA8B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAAC;AAEF,yBAAgC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,CAAC;AAEF,6BAAoC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,kBAAkB,CAAC;CACpC,CAAC;AAEF,yBAAgC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;ACxBF,0BAAiC;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,4BAAmC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;ACPF,4BAAmC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,8BAAqC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,YAAmB;IACjB,SAAS,EAAE,cAAc,CAAC;IAC1B,iBAAiB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;CAC3C,CAAC;AAEF,sBAA6B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,uBAA8B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;ACnCF,+BAAsC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;ACNF,qBAA4B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,uBAA8B;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;ACPF,6BAAoC;IAClC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B,CAAC;AAEF,+BAAsC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,6BAAoC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CACvC,CAAC;AAEF,qBAA4B;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AC7BF,8BAAqC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,gCAAuC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;ACPF,oCAA2C;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,sCAA6C;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;ACRF,2BAAkC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACpB,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC;ACmBF;IACE,SAAS,CAAC,WAAW,SAAW;IAEhC;;;;OAIG;gBACS,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAIhE;;;;OAIG;IACU,UAAU,CACrB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,kBAAkB,CAAC;IAgB9B;;;;OAIG;IACU,YAAY,CACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAgB7B;;;;OAIG;IACU,YAAY,CACvB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAehC;;;;OAIG;IACU,iBAAiB,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,sBAAsB,CAAC;IAgBlC;;;OAGG;IACU,kBAAkB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAgBnE;;;;OAIG;IACU,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAerE;;;;OAIG;IACU,eAAe,CAC1B,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;IAgBnC;;;;OAIG;IACU,gBAAgB,CAC3B,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,wBAAwB,CAAC;IAepC;;MAEE;IACW,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAiB3D;;;;OAIG;IACU,yBAAyB,CACpC,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,8BAA8B,CAAC;CAe3C","sources":["src/src/api.ts","src/src/types/createRoom.ts","src/src/types/joinToken.ts","src/src/types/isRoomActive.ts","src/src/types/activeRoomInfo.ts","src/src/types/activeRoomsInfo.ts","src/src/types/endRoom.ts","src/src/types/fetchRecordings.ts","src/src/types/deleteRecordings.ts","src/src/types/RecordingDownloadToken.ts","src/src/types/clientFiles.ts","src/src/PlugNmeet.ts","src/PlugNmeet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,"import { prepareAPI, sendRequest } from './api';\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\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 prepareAPI(serverUrl + this.defaultPath, apiKey, apiSecret);\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 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 sendRequest('/room/getJoinToken', 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 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 sendRequest('/room/isRoomActive', 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 * 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 sendRequest('/room/getActiveRoomInfo', 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 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 sendRequest('/room/getActiveRoomsInfo', {});\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 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 sendRequest('/recording/fetch', 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 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 sendRequest('/recording/delete', 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 * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await 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 sendRequest('/recording/getDownloadToken', 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 token: output.response.token,\n };\n }\n}\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/main.js ADDED
@@ -0,0 +1,248 @@
1
+ var $jMCoD$buffer = require("buffer");
2
+ var $jMCoD$http = require("http");
3
+ var $jMCoD$https = require("https");
4
+ var $jMCoD$crypto = require("crypto");
5
+
6
+ function $parcel$export(e, n, v, s) {
7
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
8
+ }
9
+ function $parcel$interopDefault(a) {
10
+ return a && a.__esModule ? a.default : a;
11
+ }
12
+
13
+ $parcel$export(module.exports, "PlugNmeet", () => $405dcbf07186a1ff$export$1402da7f2870faee);
14
+
15
+
16
+
17
+
18
+ var $74b0cf9d3dbd5b46$require$Buffer = $jMCoD$buffer.Buffer;
19
+ let $74b0cf9d3dbd5b46$var$mainOptions, $74b0cf9d3dbd5b46$var$isSecure = true, $74b0cf9d3dbd5b46$var$_apiKey = "", $74b0cf9d3dbd5b46$var$_apiSecret = "";
20
+ const $74b0cf9d3dbd5b46$export$84c28a9528d0e9cd = (apiEndPointURL, apiKey, apiSecret)=>{
21
+ $74b0cf9d3dbd5b46$var$_apiKey = apiKey;
22
+ $74b0cf9d3dbd5b46$var$_apiSecret = apiSecret;
23
+ const url = new URL(apiEndPointURL);
24
+ let port = url.protocol === "https:" ? 443 : 80;
25
+ $74b0cf9d3dbd5b46$var$isSecure = (url.protocol === "https:") ?? false;
26
+ // use port if supplied with url
27
+ if (url.port) port = Number(url.port);
28
+ $74b0cf9d3dbd5b46$var$mainOptions = {
29
+ hostname: url.hostname,
30
+ path: url.pathname,
31
+ method: "POST",
32
+ port: port
33
+ };
34
+ };
35
+ const $74b0cf9d3dbd5b46$var$prepareHeader = (body)=>{
36
+ const signature = (0, $jMCoD$crypto.createHmac)("sha256", $74b0cf9d3dbd5b46$var$_apiSecret).update(body).digest("hex");
37
+ const headers = {
38
+ "Content-Type": "application/json",
39
+ "API-KEY": $74b0cf9d3dbd5b46$var$_apiKey,
40
+ "HASH-SIGNATURE": signature
41
+ };
42
+ return headers;
43
+ };
44
+ const $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51 = async (path, body)=>{
45
+ return new Promise((resolve)=>{
46
+ const output = {
47
+ status: false,
48
+ response: undefined
49
+ };
50
+ const chunk = JSON.stringify(body);
51
+ const options = {
52
+ ...$74b0cf9d3dbd5b46$var$mainOptions
53
+ };
54
+ options.path += path;
55
+ options.headers = $74b0cf9d3dbd5b46$var$prepareHeader(chunk);
56
+ const req = ($74b0cf9d3dbd5b46$var$isSecure ? (0, ($parcel$interopDefault($jMCoD$https))) : (0, ($parcel$interopDefault($jMCoD$http)))).request(options, (res)=>{
57
+ const body = [];
58
+ res.on("data", (chunk)=>body.push(chunk));
59
+ res.on("end", ()=>{
60
+ const resString = $74b0cf9d3dbd5b46$require$Buffer.concat(body).toString();
61
+ try {
62
+ output.status = true;
63
+ output.response = JSON.parse(resString);
64
+ } catch (error) {
65
+ output.status = false;
66
+ output.response = error;
67
+ }
68
+ resolve(output);
69
+ });
70
+ });
71
+ req.on("error", (error)=>{
72
+ output.response = error.message;
73
+ resolve(output);
74
+ });
75
+ req.write(chunk);
76
+ req.end();
77
+ });
78
+ };
79
+
80
+
81
+ class $405dcbf07186a1ff$export$1402da7f2870faee {
82
+ defaultPath = "/auth";
83
+ /**
84
+ * @param serverUrl plugNmeet server URL
85
+ * @param apiKey plugNmeet API_Key
86
+ * @param apiSecret plugNmeet API_Secret
87
+ */ constructor(serverUrl, apiKey, apiSecret){
88
+ (0, $74b0cf9d3dbd5b46$export$84c28a9528d0e9cd)(serverUrl + this.defaultPath, apiKey, apiSecret);
89
+ }
90
+ /**
91
+ * Create new room
92
+ * @param params: CreateRoomParams
93
+ * @returns Promise<CreateRoomResponse>
94
+ */ async createRoom(params) {
95
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/create", params);
96
+ if (!output.status) return {
97
+ status: false,
98
+ msg: output.response
99
+ };
100
+ return {
101
+ status: output.response.status,
102
+ msg: output.response.msg,
103
+ roomInfo: output.response.roomInfo
104
+ };
105
+ }
106
+ /**
107
+ * Generate join token
108
+ * @param params: JoinTokenParams
109
+ * @returns Promise<JoinTokenResponse>
110
+ */ async getJoinToken(params) {
111
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/getJoinToken", params);
112
+ if (!output.status) return {
113
+ status: false,
114
+ msg: output.response
115
+ };
116
+ return {
117
+ status: output.response.status,
118
+ msg: output.response.msg,
119
+ token: output.response.token
120
+ };
121
+ }
122
+ /**
123
+ * If room is active or not
124
+ * @param params: IsRoomActiveParams
125
+ * @returns Promise<IsRoomActiveResponse>
126
+ */ async isRoomActive(params) {
127
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/isRoomActive", params);
128
+ if (!output.status) return {
129
+ status: false,
130
+ msg: output.response
131
+ };
132
+ return {
133
+ status: output.response.status,
134
+ msg: output.response.msg
135
+ };
136
+ }
137
+ /**
138
+ * Get active room information
139
+ * @param params: ActiveRoomInfoParams
140
+ * @returns Promise<ActiveRoomInfoResponse>
141
+ */ async getActiveRoomInfo(params) {
142
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/getActiveRoomInfo", params);
143
+ if (!output.status) return {
144
+ status: false,
145
+ msg: output.response
146
+ };
147
+ return {
148
+ status: output.response.status,
149
+ msg: output.response.msg,
150
+ room: output.response.room
151
+ };
152
+ }
153
+ /**
154
+ * Get all active rooms
155
+ * @returns Promise<ActiveRoomsInfoResponse>
156
+ */ async getActiveRoomsInfo() {
157
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/getActiveRoomsInfo", {});
158
+ if (!output.status) return {
159
+ status: false,
160
+ msg: output.response
161
+ };
162
+ return {
163
+ status: output.response.status,
164
+ msg: output.response.msg,
165
+ rooms: output.response.rooms
166
+ };
167
+ }
168
+ /**
169
+ * End active room
170
+ * @param params: EndRoomParams
171
+ * @returns Promise<EndRoomResponse>
172
+ */ async endRoom(params) {
173
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/room/endRoom", params);
174
+ if (!output.status) return {
175
+ status: false,
176
+ msg: output.response
177
+ };
178
+ return {
179
+ status: output.response.status,
180
+ msg: output.response.msg
181
+ };
182
+ }
183
+ /**
184
+ * Fetch recordings
185
+ * @param params: FetchRecordingsParams
186
+ * @returns Promise<FetchRecordingsResponse>
187
+ */ async fetchRecordings(params) {
188
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/recording/fetch", params);
189
+ if (!output.status) return {
190
+ status: false,
191
+ msg: output.response
192
+ };
193
+ return {
194
+ status: output.response.status,
195
+ msg: output.response.msg,
196
+ result: output.response.result
197
+ };
198
+ }
199
+ /**
200
+ * Delete recording
201
+ * @param params: DeleteRecordingsParams
202
+ * @returns Promise<DeleteRecordingsResponse>
203
+ */ async deleteRecordings(params) {
204
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/recording/delete", params);
205
+ if (!output.status) return {
206
+ status: false,
207
+ msg: output.response
208
+ };
209
+ return {
210
+ status: output.response.status,
211
+ msg: output.response.msg
212
+ };
213
+ }
214
+ /**
215
+ * @returns Promise<ClientFilesResponse>
216
+ */ async getClientFiles() {
217
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/getClientFiles", {});
218
+ if (!output.status) return {
219
+ status: false,
220
+ msg: output.response
221
+ };
222
+ return {
223
+ status: output.response.status,
224
+ msg: output.response.msg,
225
+ css: output.response.css,
226
+ js: output.response.js
227
+ };
228
+ }
229
+ /**
230
+ * Generate token to download recording
231
+ * @param params: RecordingDownloadTokenParams
232
+ * @returns Promise<RecordingDownloadTokenResponse>
233
+ */ async getRecordingDownloadToken(params) {
234
+ const output = await (0, $74b0cf9d3dbd5b46$export$d5a1e65f8aa21b51)("/recording/getDownloadToken", params);
235
+ if (!output.status) return {
236
+ status: false,
237
+ msg: output.response
238
+ };
239
+ return {
240
+ status: output.response.status,
241
+ msg: output.response.msg,
242
+ token: output.response.token
243
+ };
244
+ }
245
+ }
246
+
247
+
248
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","sources":["src/PlugNmeet.ts","src/api.ts"],"sourcesContent":["import { prepareAPI, sendRequest } from './api';\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\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 prepareAPI(serverUrl + this.defaultPath, apiKey, apiSecret);\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 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 sendRequest('/room/getJoinToken', 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 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 sendRequest('/room/isRoomActive', 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 * 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 sendRequest('/room/getActiveRoomInfo', 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 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 sendRequest('/room/getActiveRoomsInfo', {});\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 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 sendRequest('/recording/fetch', 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 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 sendRequest('/recording/delete', 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 * @returns Promise<ClientFilesResponse>\n */\n public async getClientFiles(): Promise<ClientFilesResponse> {\n const output = await 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 sendRequest('/recording/getDownloadToken', 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 token: output.response.token,\n };\n }\n}\n","import http from 'http';\nimport https, { RequestOptions } from 'https';\nimport { createHmac } from 'crypto';\n\nlet mainOptions: RequestOptions,\n isSecure = true, _apiKey = \"\", _apiSecret = \"\";\n\nexport type APIResponse = {\n status: boolean;\n response: any;\n};\n\nexport const prepareAPI = (\n apiEndPointURL: string,\n apiKey: string,\n apiSecret: string,\n) => {\n _apiKey = apiKey;\n _apiSecret = apiSecret;\n\n const url = new URL(apiEndPointURL);\n let port = url.protocol === 'https:' ? 443 : 80;\n 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 mainOptions = {\n hostname: url.hostname,\n path: url.pathname,\n method: 'POST',\n port,\n };\n};\n\nconst prepareHeader = (body: string) => {\n const signature = createHmac('sha256', _apiSecret)\n .update(body)\n .digest('hex');\n\n const headers = {\n 'Content-Type': 'application/json',\n 'API-KEY': _apiKey,\n 'HASH-SIGNATURE': signature,\n };\n\n return headers;\n};\n\nexport const 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 = { ...mainOptions };\n options.path += path;\n options.headers = prepareHeader(chunk);\n\n const req = (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"],"names":[],"version":3,"file":"main.js.map"}