camstreamerlib 4.0.0-beta.7 → 4.0.0-beta.8
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/cjs/VapixAPI.js +13 -5
- package/cjs/errors/errors.d.ts +3 -0
- package/cjs/errors/errors.js +8 -1
- package/esm/VapixAPI.js +14 -6
- package/esm/errors/errors.d.ts +3 -0
- package/esm/errors/errors.js +6 -0
- package/package.json +1 -1
package/cjs/VapixAPI.js
CHANGED
|
@@ -51,8 +51,8 @@ class VapixAPI {
|
|
|
51
51
|
}
|
|
52
52
|
async getSupportedAudioSampleRate(proxy = null) {
|
|
53
53
|
const url = '/axis-cgi/audio/streamingcapabilities.cgi';
|
|
54
|
-
const
|
|
55
|
-
const res = await this.postJson(proxy, url,
|
|
54
|
+
const jsonData = { apiVersion: '1.0', method: 'list' };
|
|
55
|
+
const res = await this.postJson(proxy, url, jsonData);
|
|
56
56
|
const encoders = VapixAPI_1.audioSampleRatesResponseSchema.parse(await res.json()).data.encoders;
|
|
57
57
|
const data = encoders.aac ?? encoders.AAC ?? [];
|
|
58
58
|
return data.map((item) => {
|
|
@@ -78,7 +78,7 @@ class VapixAPI {
|
|
|
78
78
|
await this.postJson(proxy, '/axis-cgi/opticscontrol.cgi', data);
|
|
79
79
|
}
|
|
80
80
|
catch (err) {
|
|
81
|
-
await this.
|
|
81
|
+
await this.getUrlEncoded(proxy, '/axis-cgi/opticssetup.cgi', {
|
|
82
82
|
autofocus: 'perform',
|
|
83
83
|
source: '1',
|
|
84
84
|
});
|
|
@@ -292,14 +292,22 @@ class VapixAPI {
|
|
|
292
292
|
query: 'presetposcamdata',
|
|
293
293
|
format: 'json',
|
|
294
294
|
});
|
|
295
|
-
|
|
295
|
+
const text = await response.text();
|
|
296
|
+
if (text === '') {
|
|
297
|
+
throw new errors_1.PtzNotSupportedError();
|
|
298
|
+
}
|
|
299
|
+
return parseCameraPtzResponse(text)[camera] ?? [];
|
|
296
300
|
}
|
|
297
301
|
async listPtzVideoSourceOverview(proxy = null) {
|
|
298
302
|
const response = await this.getUrlEncoded(proxy, '/axis-cgi/com/ptz.cgi', {
|
|
299
303
|
query: 'presetposall',
|
|
300
304
|
format: 'json',
|
|
301
305
|
});
|
|
302
|
-
const
|
|
306
|
+
const text = await response.text();
|
|
307
|
+
if (text === '') {
|
|
308
|
+
throw new errors_1.PtzNotSupportedError();
|
|
309
|
+
}
|
|
310
|
+
const data = parseCameraPtzResponse(text);
|
|
303
311
|
const res = {};
|
|
304
312
|
Object.keys(data)
|
|
305
313
|
.map(Number)
|
package/cjs/errors/errors.d.ts
CHANGED
package/cjs/errors/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AddNewClipError = exports.FetchDeviceInfoError = exports.NoDeviceInfoError = exports.MaxFPSError = exports.SDCardJobError = exports.SDCardActionError = exports.ApplicationAPIError = exports.ParsingBlobError = exports.ServiceNotFoundError = exports.ServiceUnavailableError = void 0;
|
|
3
|
+
exports.PtzNotSupportedError = exports.AddNewClipError = exports.FetchDeviceInfoError = exports.NoDeviceInfoError = exports.MaxFPSError = exports.SDCardJobError = exports.SDCardActionError = exports.ApplicationAPIError = exports.ParsingBlobError = exports.ServiceNotFoundError = exports.ServiceUnavailableError = void 0;
|
|
4
4
|
class ServiceUnavailableError extends Error {
|
|
5
5
|
constructor() {
|
|
6
6
|
super('Service is unavailable.');
|
|
@@ -77,3 +77,10 @@ class AddNewClipError extends Error {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
exports.AddNewClipError = AddNewClipError;
|
|
80
|
+
class PtzNotSupportedError extends Error {
|
|
81
|
+
constructor() {
|
|
82
|
+
super('Ptz not supported.');
|
|
83
|
+
this.name = 'PtzNotSupportedError';
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.PtzNotSupportedError = PtzNotSupportedError;
|
package/esm/VapixAPI.js
CHANGED
|
@@ -2,7 +2,7 @@ import * as prettifyXml from 'prettify-xml';
|
|
|
2
2
|
import { parseStringPromise } from 'xml2js';
|
|
3
3
|
import { isNullish, responseStringify } from './internal/common';
|
|
4
4
|
import { sdCardWatchedStatuses, APP_IDS, maxFpsResponseSchema, dateTimeinfoSchema, audioDeviceRequestSchema, audioSampleRatesResponseSchema, } from './types/VapixAPI';
|
|
5
|
-
import { ApplicationAPIError, MaxFPSError, NoDeviceInfoError, SDCardActionError, SDCardJobError, } from './errors/errors';
|
|
5
|
+
import { ApplicationAPIError, MaxFPSError, NoDeviceInfoError, PtzNotSupportedError, SDCardActionError, SDCardJobError, } from './errors/errors';
|
|
6
6
|
import { ProxyClient } from './internal/ProxyClient';
|
|
7
7
|
import { arrayToUrl, paramToUrl } from './internal/utils';
|
|
8
8
|
import { z } from 'zod';
|
|
@@ -48,8 +48,8 @@ export class VapixAPI {
|
|
|
48
48
|
}
|
|
49
49
|
async getSupportedAudioSampleRate(proxy = null) {
|
|
50
50
|
const url = '/axis-cgi/audio/streamingcapabilities.cgi';
|
|
51
|
-
const
|
|
52
|
-
const res = await this.postJson(proxy, url,
|
|
51
|
+
const jsonData = { apiVersion: '1.0', method: 'list' };
|
|
52
|
+
const res = await this.postJson(proxy, url, jsonData);
|
|
53
53
|
const encoders = audioSampleRatesResponseSchema.parse(await res.json()).data.encoders;
|
|
54
54
|
const data = encoders.aac ?? encoders.AAC ?? [];
|
|
55
55
|
return data.map((item) => {
|
|
@@ -75,7 +75,7 @@ export class VapixAPI {
|
|
|
75
75
|
await this.postJson(proxy, '/axis-cgi/opticscontrol.cgi', data);
|
|
76
76
|
}
|
|
77
77
|
catch (err) {
|
|
78
|
-
await this.
|
|
78
|
+
await this.getUrlEncoded(proxy, '/axis-cgi/opticssetup.cgi', {
|
|
79
79
|
autofocus: 'perform',
|
|
80
80
|
source: '1',
|
|
81
81
|
});
|
|
@@ -289,14 +289,22 @@ export class VapixAPI {
|
|
|
289
289
|
query: 'presetposcamdata',
|
|
290
290
|
format: 'json',
|
|
291
291
|
});
|
|
292
|
-
|
|
292
|
+
const text = await response.text();
|
|
293
|
+
if (text === '') {
|
|
294
|
+
throw new PtzNotSupportedError();
|
|
295
|
+
}
|
|
296
|
+
return parseCameraPtzResponse(text)[camera] ?? [];
|
|
293
297
|
}
|
|
294
298
|
async listPtzVideoSourceOverview(proxy = null) {
|
|
295
299
|
const response = await this.getUrlEncoded(proxy, '/axis-cgi/com/ptz.cgi', {
|
|
296
300
|
query: 'presetposall',
|
|
297
301
|
format: 'json',
|
|
298
302
|
});
|
|
299
|
-
const
|
|
303
|
+
const text = await response.text();
|
|
304
|
+
if (text === '') {
|
|
305
|
+
throw new PtzNotSupportedError();
|
|
306
|
+
}
|
|
307
|
+
const data = parseCameraPtzResponse(text);
|
|
300
308
|
const res = {};
|
|
301
309
|
Object.keys(data)
|
|
302
310
|
.map(Number)
|
package/esm/errors/errors.d.ts
CHANGED
package/esm/errors/errors.js
CHANGED