camstreamerlib 4.0.0-beta.81 → 4.0.0-beta.83

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 (29) hide show
  1. package/cjs/CamStreamerAPI.d.ts +282 -1
  2. package/cjs/CamStreamerAPI.js +30 -0
  3. package/cjs/types/CamStreamerAPI/CamStreamerAPI.d.ts +1927 -0
  4. package/cjs/types/CamStreamerAPI/CamStreamerAPI.js +27 -1
  5. package/cjs/types/CamStreamerAPI/facebookSchema.d.ts +103 -0
  6. package/cjs/types/CamStreamerAPI/hlsSchema.d.ts +103 -0
  7. package/cjs/types/CamStreamerAPI/mpegDvbSchema.d.ts +103 -0
  8. package/cjs/types/CamStreamerAPI/oldStreamSchema.d.ts +24 -24
  9. package/cjs/types/CamStreamerAPI/rtmpSchema.d.ts +103 -0
  10. package/cjs/types/CamStreamerAPI/sdCardSchema.d.ts +103 -0
  11. package/cjs/types/CamStreamerAPI/streamCommonTypes.d.ts +170 -0
  12. package/cjs/types/CamStreamerAPI/streamCommonTypes.js +20 -1
  13. package/cjs/types/CamStreamerAPI/windySchema.d.ts +103 -0
  14. package/cjs/types/CamStreamerAPI/youtubeSchema.d.ts +103 -0
  15. package/esm/CamStreamerAPI.js +31 -1
  16. package/esm/types/CamStreamerAPI/CamStreamerAPI.js +26 -0
  17. package/esm/types/CamStreamerAPI/streamCommonTypes.js +19 -0
  18. package/package.json +1 -1
  19. package/types/CamStreamerAPI.d.ts +282 -1
  20. package/types/types/CamStreamerAPI/CamStreamerAPI.d.ts +1927 -0
  21. package/types/types/CamStreamerAPI/facebookSchema.d.ts +103 -0
  22. package/types/types/CamStreamerAPI/hlsSchema.d.ts +103 -0
  23. package/types/types/CamStreamerAPI/mpegDvbSchema.d.ts +103 -0
  24. package/types/types/CamStreamerAPI/oldStreamSchema.d.ts +24 -24
  25. package/types/types/CamStreamerAPI/rtmpSchema.d.ts +103 -0
  26. package/types/types/CamStreamerAPI/sdCardSchema.d.ts +103 -0
  27. package/types/types/CamStreamerAPI/streamCommonTypes.d.ts +170 -0
  28. package/types/types/CamStreamerAPI/windySchema.d.ts +103 -0
  29. package/types/types/CamStreamerAPI/youtubeSchema.d.ts +103 -0
@@ -1,6 +1,6 @@
1
1
  import { ProxyClient } from './internal/ProxyClient';
2
2
  import { IClient, TResponse } from './internal/types';
3
- import { TStream, TStreamList } from './types/CamStreamerAPI/CamStreamerAPI';
3
+ import { TAudioFile, TAudioFileStorageType, TStream, TStreamList } from './types/CamStreamerAPI/CamStreamerAPI';
4
4
  import { THttpRequestOptions, TProxyParams } from './types/common';
5
5
  import { TOldStream, TOldStringStream } from './types/CamStreamerAPI/oldStreamSchema';
6
6
  export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
@@ -16,12 +16,50 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
16
16
  id: number;
17
17
  active: boolean;
18
18
  title: string;
19
+ trigger: {
20
+ type: "manual";
21
+ } | {
22
+ type: "onetime";
23
+ startTime: number;
24
+ stopTime: number;
25
+ } | {
26
+ type: "recurrent";
27
+ schedule: {
28
+ day: number;
29
+ startTimeS: number;
30
+ stopTimeS: number;
31
+ isActive: boolean;
32
+ }[];
33
+ } | {
34
+ type: "io";
35
+ ioPort: string;
36
+ triggerOn: "open" | "closed";
37
+ };
19
38
  } | {
20
39
  type: "hls";
21
40
  enabled: boolean;
22
41
  id: number;
23
42
  active: boolean;
24
43
  title: string;
44
+ trigger: {
45
+ type: "manual";
46
+ } | {
47
+ type: "onetime";
48
+ startTime: number;
49
+ stopTime: number;
50
+ } | {
51
+ type: "recurrent";
52
+ schedule: {
53
+ day: number;
54
+ startTimeS: number;
55
+ stopTimeS: number;
56
+ isActive: boolean;
57
+ }[];
58
+ } | {
59
+ type: "io";
60
+ ioPort: string;
61
+ triggerOn: "open" | "closed";
62
+ };
25
63
  } | {
26
64
  type: "mpeg_dvb";
27
65
  port: number;
@@ -29,6 +67,25 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
29
67
  id: number;
30
68
  active: boolean;
31
69
  title: string;
70
+ trigger: {
71
+ type: "manual";
72
+ } | {
73
+ type: "onetime";
74
+ startTime: number;
75
+ stopTime: number;
76
+ } | {
77
+ type: "recurrent";
78
+ schedule: {
79
+ day: number;
80
+ startTimeS: number;
81
+ stopTimeS: number;
82
+ isActive: boolean;
83
+ }[];
84
+ } | {
85
+ type: "io";
86
+ ioPort: string;
87
+ triggerOn: "open" | "closed";
88
+ };
32
89
  ipAddress: string;
33
90
  standard: "DVB" | "ATSC";
34
91
  nullPacketsPaddingEnabled: boolean;
@@ -51,24 +108,100 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
51
108
  id: number;
52
109
  active: boolean;
53
110
  title: string;
111
+ trigger: {
112
+ type: "manual";
113
+ } | {
114
+ type: "onetime";
115
+ startTime: number;
116
+ stopTime: number;
117
+ } | {
118
+ type: "recurrent";
119
+ schedule: {
120
+ day: number;
121
+ startTimeS: number;
122
+ stopTimeS: number;
123
+ isActive: boolean;
124
+ }[];
125
+ } | {
126
+ type: "io";
127
+ ioPort: string;
128
+ triggerOn: "open" | "closed";
129
+ };
54
130
  } | {
55
131
  type: "sd_card";
56
132
  enabled: boolean;
57
133
  id: number;
58
134
  active: boolean;
59
135
  title: string;
136
+ trigger: {
137
+ type: "manual";
138
+ } | {
139
+ type: "onetime";
140
+ startTime: number;
141
+ stopTime: number;
142
+ } | {
143
+ type: "recurrent";
144
+ schedule: {
145
+ day: number;
146
+ startTimeS: number;
147
+ stopTimeS: number;
148
+ isActive: boolean;
149
+ }[];
150
+ } | {
151
+ type: "io";
152
+ ioPort: string;
153
+ triggerOn: "open" | "closed";
154
+ };
60
155
  } | {
61
156
  type: "windy";
62
157
  enabled: boolean;
63
158
  id: number;
64
159
  active: boolean;
65
160
  title: string;
161
+ trigger: {
162
+ type: "manual";
163
+ } | {
164
+ type: "onetime";
165
+ startTime: number;
166
+ stopTime: number;
167
+ } | {
168
+ type: "recurrent";
169
+ schedule: {
170
+ day: number;
171
+ startTimeS: number;
172
+ stopTimeS: number;
173
+ isActive: boolean;
174
+ }[];
175
+ } | {
176
+ type: "io";
177
+ ioPort: string;
178
+ triggerOn: "open" | "closed";
179
+ };
66
180
  } | {
67
181
  type: "youtube";
68
182
  enabled: boolean;
69
183
  id: number;
70
184
  active: boolean;
71
185
  title: string;
186
+ trigger: {
187
+ type: "manual";
188
+ } | {
189
+ type: "onetime";
190
+ startTime: number;
191
+ stopTime: number;
192
+ } | {
193
+ type: "recurrent";
194
+ schedule: {
195
+ day: number;
196
+ startTimeS: number;
197
+ stopTimeS: number;
198
+ isActive: boolean;
199
+ }[];
200
+ } | {
201
+ type: "io";
202
+ ioPort: string;
203
+ triggerOn: "open" | "closed";
204
+ };
72
205
  })[]>;
73
206
  setStreamList(streamList: TStreamList['streamList'], options?: THttpRequestOptions): Promise<void>;
74
207
  getStream(streamId: number, options?: THttpRequestOptions): Promise<{
@@ -77,12 +210,50 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
77
210
  id: number;
78
211
  active: boolean;
79
212
  title: string;
213
+ trigger: {
214
+ type: "manual";
215
+ } | {
216
+ type: "onetime";
217
+ startTime: number;
218
+ stopTime: number;
219
+ } | {
220
+ type: "recurrent";
221
+ schedule: {
222
+ day: number;
223
+ startTimeS: number;
224
+ stopTimeS: number;
225
+ isActive: boolean;
226
+ }[];
227
+ } | {
228
+ type: "io";
229
+ ioPort: string;
230
+ triggerOn: "open" | "closed";
231
+ };
80
232
  } | {
81
233
  type: "hls";
82
234
  enabled: boolean;
83
235
  id: number;
84
236
  active: boolean;
85
237
  title: string;
238
+ trigger: {
239
+ type: "manual";
240
+ } | {
241
+ type: "onetime";
242
+ startTime: number;
243
+ stopTime: number;
244
+ } | {
245
+ type: "recurrent";
246
+ schedule: {
247
+ day: number;
248
+ startTimeS: number;
249
+ stopTimeS: number;
250
+ isActive: boolean;
251
+ }[];
252
+ } | {
253
+ type: "io";
254
+ ioPort: string;
255
+ triggerOn: "open" | "closed";
256
+ };
86
257
  } | {
87
258
  type: "mpeg_dvb";
88
259
  port: number;
@@ -90,6 +261,25 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
90
261
  id: number;
91
262
  active: boolean;
92
263
  title: string;
264
+ trigger: {
265
+ type: "manual";
266
+ } | {
267
+ type: "onetime";
268
+ startTime: number;
269
+ stopTime: number;
270
+ } | {
271
+ type: "recurrent";
272
+ schedule: {
273
+ day: number;
274
+ startTimeS: number;
275
+ stopTimeS: number;
276
+ isActive: boolean;
277
+ }[];
278
+ } | {
279
+ type: "io";
280
+ ioPort: string;
281
+ triggerOn: "open" | "closed";
282
+ };
93
283
  ipAddress: string;
94
284
  standard: "DVB" | "ATSC";
95
285
  nullPacketsPaddingEnabled: boolean;
@@ -112,28 +302,119 @@ export declare class CamStreamerAPI<Client extends IClient<TResponse, any>> {
112
302
  id: number;
113
303
  active: boolean;
114
304
  title: string;
305
+ trigger: {
306
+ type: "manual";
307
+ } | {
308
+ type: "onetime";
309
+ startTime: number;
310
+ stopTime: number;
311
+ } | {
312
+ type: "recurrent";
313
+ schedule: {
314
+ day: number;
315
+ startTimeS: number;
316
+ stopTimeS: number;
317
+ isActive: boolean;
318
+ }[];
319
+ } | {
320
+ type: "io";
321
+ ioPort: string;
322
+ triggerOn: "open" | "closed";
323
+ };
115
324
  } | {
116
325
  type: "sd_card";
117
326
  enabled: boolean;
118
327
  id: number;
119
328
  active: boolean;
120
329
  title: string;
330
+ trigger: {
331
+ type: "manual";
332
+ } | {
333
+ type: "onetime";
334
+ startTime: number;
335
+ stopTime: number;
336
+ } | {
337
+ type: "recurrent";
338
+ schedule: {
339
+ day: number;
340
+ startTimeS: number;
341
+ stopTimeS: number;
342
+ isActive: boolean;
343
+ }[];
344
+ } | {
345
+ type: "io";
346
+ ioPort: string;
347
+ triggerOn: "open" | "closed";
348
+ };
121
349
  } | {
122
350
  type: "windy";
123
351
  enabled: boolean;
124
352
  id: number;
125
353
  active: boolean;
126
354
  title: string;
355
+ trigger: {
356
+ type: "manual";
357
+ } | {
358
+ type: "onetime";
359
+ startTime: number;
360
+ stopTime: number;
361
+ } | {
362
+ type: "recurrent";
363
+ schedule: {
364
+ day: number;
365
+ startTimeS: number;
366
+ stopTimeS: number;
367
+ isActive: boolean;
368
+ }[];
369
+ } | {
370
+ type: "io";
371
+ ioPort: string;
372
+ triggerOn: "open" | "closed";
373
+ };
127
374
  } | {
128
375
  type: "youtube";
129
376
  enabled: boolean;
130
377
  id: number;
131
378
  active: boolean;
132
379
  title: string;
380
+ trigger: {
381
+ type: "manual";
382
+ } | {
383
+ type: "onetime";
384
+ startTime: number;
385
+ stopTime: number;
386
+ } | {
387
+ type: "recurrent";
388
+ schedule: {
389
+ day: number;
390
+ startTimeS: number;
391
+ stopTimeS: number;
392
+ isActive: boolean;
393
+ }[];
394
+ } | {
395
+ type: "io";
396
+ ioPort: string;
397
+ triggerOn: "open" | "closed";
398
+ };
133
399
  }>;
134
400
  setStream(streamId: number, streamData: Partial<TStream>, options?: THttpRequestOptions): Promise<void>;
135
401
  isStreaming(streamId: number, options?: THttpRequestOptions): Promise<boolean>;
402
+ listFiles(options?: THttpRequestOptions): Promise<{
403
+ path: string;
404
+ name: string;
405
+ storage: "url" | "flash" | "SD0";
406
+ }[]>;
407
+ uploadFile(formData: Parameters<Client['post']>[0]['data'], storage: TAudioFileStorageType, options?: THttpRequestOptions): Promise<void>;
408
+ removeFile(fileParams: TAudioFile, options?: THttpRequestOptions): Promise<void>;
409
+ getFileStorage(options?: THttpRequestOptions): Promise<({
410
+ type: "flash";
411
+ flash: string;
412
+ } | {
413
+ type: "SD0";
414
+ SD0: string;
415
+ })[]>;
136
416
  private _getJson;
137
417
  private _postJsonEncoded;
418
+ private _post;
138
419
  }
139
420
  export declare const parseCameraStreamResponse: (cameraStreamData: TOldStringStream) => TOldStream;
@@ -87,6 +87,26 @@ class CamStreamerAPI {
87
87
  const res = await this._getJson(`${BASE_PATH}/get_streamstat.cgi`, { stream_id: streamId }, options);
88
88
  return res.data.is_streaming === 1;
89
89
  }
90
+ async listFiles(options) {
91
+ const res = await this._getJson(`${BASE_PATH}/upload_audio.cgi`, { action: 'list' }, options);
92
+ return CamStreamerAPI_1.audioFileListSchema.parse(res.data);
93
+ }
94
+ async uploadFile(formData, storage, options) {
95
+ await this._post(`${BASE_PATH}/upload_audio.cgi`, formData, {
96
+ action: 'upload',
97
+ storage: storage,
98
+ }, options);
99
+ }
100
+ async removeFile(fileParams, options) {
101
+ await this._getJson(`${BASE_PATH}/upload_audio.cgi`, {
102
+ action: 'remove',
103
+ ...fileParams,
104
+ }, options);
105
+ }
106
+ async getFileStorage(options) {
107
+ const res = await this._getJson(`${BASE_PATH}/upload_audio.cgi`, { action: 'get_storage' }, options);
108
+ return CamStreamerAPI_1.storageListSchema.parse(res.data);
109
+ }
90
110
  async _getJson(path, parameters, options) {
91
111
  const agent = this.getClient(options?.proxyParams);
92
112
  const res = await agent.get({ path, parameters, timeout: options?.timeout });
@@ -108,6 +128,16 @@ class CamStreamerAPI {
108
128
  headers: { ...baseHeaders, ...headers },
109
129
  });
110
130
  }
131
+ async _post(path, data, parameters, options, headers) {
132
+ const agent = this.getClient(options?.proxyParams);
133
+ const res = await agent.post({ path, data, parameters, headers, timeout: options?.timeout });
134
+ if (res.ok) {
135
+ return await res.json();
136
+ }
137
+ else {
138
+ throw new errors_1.ErrorWithResponse(res);
139
+ }
140
+ }
111
141
  }
112
142
  exports.CamStreamerAPI = CamStreamerAPI;
113
143
  const parseCameraStreamResponse = (cameraStreamData) => {