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 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 formData = { apiVersion: '1.0', method: 'list' };
55
- const res = await this.postJson(proxy, url, formData);
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.postJson(proxy, '/axis-cgi/opticssetup.cgi', {
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
- return parseCameraPtzResponse(await response.text())[camera] ?? [];
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 data = parseCameraPtzResponse(await response.text());
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)
@@ -31,4 +31,7 @@ export declare class FetchDeviceInfoError extends Error {
31
31
  export declare class AddNewClipError extends Error {
32
32
  constructor(message: string);
33
33
  }
34
+ export declare class PtzNotSupportedError extends Error {
35
+ constructor();
36
+ }
34
37
  export {};
@@ -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 formData = { apiVersion: '1.0', method: 'list' };
52
- const res = await this.postJson(proxy, url, formData);
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.postJson(proxy, '/axis-cgi/opticssetup.cgi', {
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
- return parseCameraPtzResponse(await response.text())[camera] ?? [];
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 data = parseCameraPtzResponse(await response.text());
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)
@@ -31,4 +31,7 @@ export declare class FetchDeviceInfoError extends Error {
31
31
  export declare class AddNewClipError extends Error {
32
32
  constructor(message: string);
33
33
  }
34
+ export declare class PtzNotSupportedError extends Error {
35
+ constructor();
36
+ }
34
37
  export {};
@@ -64,3 +64,9 @@ export class AddNewClipError extends Error {
64
64
  this.name = 'AddNewClipError';
65
65
  }
66
66
  }
67
+ export class PtzNotSupportedError extends Error {
68
+ constructor() {
69
+ super('Ptz not supported.');
70
+ this.name = 'PtzNotSupportedError';
71
+ }
72
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "camstreamerlib",
3
- "version": "4.0.0-beta.7",
3
+ "version": "4.0.0-beta.8",
4
4
  "description": "Helper library for CamStreamer ACAP applications.",
5
5
  "prettier": "@camstreamer/prettier-config",
6
6
  "dependencies": {