@camstack/sdk 1.2.128 → 1.2.131

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Re-export AppRouter type from @camstack/types (pre-generated from server router).
3
- * Type-only — no runtime dependency on the backend package.
4
- */
5
- export type { AppRouter as BackendAppRouter } from '@camstack/types';
2
+ * Re-export AppRouter type from @camstack/types (pre-generated from server router).
3
+ * Type-only — no runtime dependency on the backend package.
4
+ */
5
+ export type { AppRouter as BackendAppRouter } from "@camstack/types";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @deprecated Import BaseDevice from '@camstack/types' instead.
3
- * This re-export is kept for backwards compatibility.
4
- */
5
- export { BaseDevice } from '@camstack/types';
2
+ * @deprecated Import BaseDevice from '@camstack/types' instead.
3
+ * This re-export is kept for backwards compatibility.
4
+ */
5
+ export { BaseDevice } from "@camstack/types";
package/dist/camera.d.ts CHANGED
@@ -1,35 +1,35 @@
1
1
  /**
2
- * Camera & PTZ types — shared between CamStack app and proxy.
3
- */
2
+ * Camera & PTZ types — shared between CamStack app and proxy.
3
+ */
4
4
  /** Streaming method. */
5
- export type StreamMethod = 'webrtc' | 'mjpeg';
5
+ export type StreamMethod = "webrtc" | "mjpeg";
6
6
  /** PTZ command. */
7
7
  export interface PanTiltZoomCommand {
8
- movement?: 'Relative' | 'Absolute' | 'Continuous' | 'Home' | 'Preset';
9
- pan?: number;
10
- tilt?: number;
11
- zoom?: number;
12
- preset?: string;
13
- timeout?: number;
8
+ movement?: "Relative" | "Absolute" | "Continuous" | "Home" | "Preset";
9
+ pan?: number;
10
+ tilt?: number;
11
+ zoom?: number;
12
+ preset?: string;
13
+ timeout?: number;
14
14
  }
15
15
  /** PTZ capabilities reported by the device. */
16
16
  export interface PanTiltZoomCapabilities {
17
- pan?: boolean;
18
- tilt?: boolean;
19
- zoom?: boolean;
20
- presets?: Record<string, string>;
17
+ pan?: boolean;
18
+ tilt?: boolean;
19
+ zoom?: boolean;
20
+ presets?: Record<string, string>;
21
21
  }
22
22
  /** Accessory switch kinds exposed by the Advanced Notifier plugin. */
23
- export type CameraAccessorySwitchKind = 'siren_on_motion' | 'siren' | 'light_on_motion' | 'light' | 'pir' | 'autotracking';
23
+ export type CameraAccessorySwitchKind = "siren_on_motion" | "siren" | "light_on_motion" | "light" | "pir" | "autotracking";
24
24
  /** Extended camera status with accessory switches (from AN plugin). */
25
25
  export interface CameraStatusEntry {
26
- notificationsEnabled: boolean;
27
- isRecording: boolean;
28
- isSnapshotsEnabled: boolean;
29
- isRebroadcastEnabled: boolean;
30
- accessorySwitchStates: Partial<Record<CameraAccessorySwitchKind, boolean>>;
26
+ notificationsEnabled: boolean;
27
+ isRecording: boolean;
28
+ isSnapshotsEnabled: boolean;
29
+ isRebroadcastEnabled: boolean;
30
+ accessorySwitchStates: Partial<Record<CameraAccessorySwitchKind, boolean>>;
31
31
  }
32
32
  /** Batch camera status response. */
33
33
  export interface CamerasStatusResult {
34
- cameras: Record<string, CameraStatusEntry>;
34
+ cameras: Record<string, CameraStatusEntry>;
35
35
  }
@@ -1,32 +1,32 @@
1
1
  /**
2
- * Detection classes — shared between CamStack app and proxy.
3
- * Aligned with the shared detection-class taxonomy.
4
- */
2
+ * Detection classes — shared between CamStack app and proxy.
3
+ * Aligned with the shared detection-class taxonomy.
4
+ */
5
5
  export declare enum DetectionClass {
6
- Motion = "motion",
7
- Person = "person",
8
- Vehicle = "vehicle",
9
- Animal = "animal",
10
- Audio = "audio",
11
- Face = "face",
12
- Plate = "plate",
13
- Package = "package",
14
- Doorbell = "doorbell",
15
- Sensor = "sensor"
6
+ Motion = "motion",
7
+ Person = "person",
8
+ Vehicle = "vehicle",
9
+ Animal = "animal",
10
+ Audio = "audio",
11
+ Face = "face",
12
+ Plate = "plate",
13
+ Package = "package",
14
+ Doorbell = "doorbell",
15
+ Sensor = "sensor"
16
16
  }
17
- export declare const animalClasses: string[];
18
- export declare const personClasses: string[];
19
- export declare const vehicleClasses: string[];
20
- export declare const faceClasses: string[];
21
- export declare const licensePlateClasses: string[];
22
- export declare const motionClasses: string[];
23
- export declare const packageClasses: string[];
24
- export declare const audioClasses: string[];
17
+ export declare const animalClasses: readonly string[];
18
+ export declare const personClasses: readonly string[];
19
+ export declare const vehicleClasses: readonly string[];
20
+ export declare const faceClasses: readonly string[];
21
+ export declare const licensePlateClasses: readonly string[];
22
+ export declare const motionClasses: readonly string[];
23
+ export declare const packageClasses: readonly string[];
24
+ export declare const audioClasses: readonly string[];
25
25
  /** Common YAMNet audio labels (advanced-notifier). Parent: Audio. */
26
- export declare const audioLabelClasses: string[];
27
- export declare const doorbellClasses: string[];
26
+ export declare const audioLabelClasses: readonly string[];
27
+ export declare const doorbellClasses: readonly string[];
28
28
  /** Sensor types (advanced-notifier SupportedSensorType). Parent: Sensor. */
29
- export declare const sensorLabelClasses: string[];
29
+ export declare const sensorLabelClasses: readonly string[];
30
30
  export declare const detectionClassesDefaultMap: Record<string, DetectionClass>;
31
31
  export declare const isFaceClassname: (c: string) => boolean;
32
32
  export declare const isPlateClassname: (c: string) => boolean;
@@ -41,13 +41,13 @@ export declare const isSensorLabelClassname: (c: string) => boolean;
41
41
  export declare const isLabelDetection: (c: string) => boolean;
42
42
  export declare const getParentClass: (className: string) => DetectionClass | undefined;
43
43
  export declare const getParentDetectionClass: (det: {
44
- label?: string;
45
- className: string;
44
+ label?: string;
45
+ className: string;
46
46
  }) => DetectionClass | undefined;
47
47
  export declare const defaultDetectionClasses: DetectionClass[];
48
48
  /** Default enabled classes: all except Motion. */
49
- export declare const DEFAULT_ENABLED_CLASSES: (DetectionClass.Person | DetectionClass.Vehicle | DetectionClass.Animal | DetectionClass.Audio | DetectionClass.Face | DetectionClass.Plate | DetectionClass.Package | DetectionClass.Doorbell | DetectionClass.Sensor)[];
50
- export type TimelineEventPreset = 'all' | 'important' | 'critical' | 'custom';
49
+ export declare const DEFAULT_ENABLED_CLASSES: DetectionClass[];
50
+ export type TimelineEventPreset = "all" | "important" | "critical" | "custom";
51
51
  /** Classes for "critical" preset: security-relevant only (person, doorbell, package). */
52
52
  export declare const TIMELINE_PRESET_CRITICAL: string[];
53
53
  /** Classes for "important" preset: critical + vehicle, animal, audio, face, plate. */
package/dist/index.cjs CHANGED
@@ -1777,6 +1777,9 @@ var sensorLabelClasses = [
1777
1777
  "flooded",
1778
1778
  "entry_open"
1779
1779
  ];
1780
+ function listIncludes(list, value) {
1781
+ return list.includes(value);
1782
+ }
1780
1783
  var detectionClassesDefaultMap = {
1781
1784
  ...animalClasses.reduce((tot, curr) => ({
1782
1785
  ...tot,
@@ -1823,16 +1826,16 @@ var detectionClassesDefaultMap = {
1823
1826
  [curr]: "sensor"
1824
1827
  }), {})
1825
1828
  };
1826
- var isFaceClassname = (c) => faceClasses.includes(c);
1827
- var isPlateClassname = (c) => licensePlateClasses.includes(c);
1828
- var isAnimalClassname = (c) => animalClasses.includes(c);
1829
- var isPersonClassname = (c) => personClasses.includes(c);
1830
- var isVehicleClassname = (c) => vehicleClasses.includes(c);
1831
- var isMotionClassname = (c) => motionClasses.includes(c);
1832
- var isDoorbellClassname = (c) => doorbellClasses.includes(c);
1833
- var isPackageClassname = (c) => packageClasses.includes(c);
1834
- var isAudioClassname = (c) => audioClasses.includes(c) || audioLabelClasses.includes(c);
1835
- var isSensorLabelClassname = (c) => sensorLabelClasses.includes(c);
1829
+ var isFaceClassname = (c) => listIncludes(faceClasses, c);
1830
+ var isPlateClassname = (c) => listIncludes(licensePlateClasses, c);
1831
+ var isAnimalClassname = (c) => listIncludes(animalClasses, c);
1832
+ var isPersonClassname = (c) => listIncludes(personClasses, c);
1833
+ var isVehicleClassname = (c) => listIncludes(vehicleClasses, c);
1834
+ var isMotionClassname = (c) => listIncludes(motionClasses, c);
1835
+ var isDoorbellClassname = (c) => listIncludes(doorbellClasses, c);
1836
+ var isPackageClassname = (c) => listIncludes(packageClasses, c);
1837
+ var isAudioClassname = (c) => listIncludes(audioClasses, c) || listIncludes(audioLabelClasses, c);
1838
+ var isSensorLabelClassname = (c) => listIncludes(sensorLabelClasses, c);
1836
1839
  var isLabelDetection = (c) => isFaceClassname(c) || isPlateClassname(c);
1837
1840
  var getParentClass = (className) => detectionClassesDefaultMap[className];
1838
1841
  var getParentDetectionClass = (det) => {
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export { System, createSystem, raceFastestEndpoint } from './system.js';
2
- export type { LoginOptions, LoginOutcome, RefreshedSession } from './system.js';
3
- export { isSessionRefusal, jwtExpiresAt, SessionKeeper, type SessionKeeperOptions, type SessionTokens, } from './session-keeper.js';
4
- export type { SystemConfig, UserInfo, SystemLiveEvent, SystemLiveEventListener, SecondFactorKind, } from './system.js';
5
- export type { DeviceInfo } from '@camstack/types';
6
- export type { BackendAppRouter } from './backend-router.js';
7
- export type { BackendAppRouter as AppRouter } from './backend-router.js';
8
- export type { BackendConnectionState } from './types.js';
9
- export { DetectionClass, animalClasses, personClasses, vehicleClasses, faceClasses, licensePlateClasses, motionClasses, packageClasses, audioClasses, audioLabelClasses, doorbellClasses, sensorLabelClasses, detectionClassesDefaultMap, isFaceClassname, isPlateClassname, isAnimalClassname, isPersonClassname, isVehicleClassname, isMotionClassname, isDoorbellClassname, isPackageClassname, isAudioClassname, isSensorLabelClassname, isLabelDetection, getParentClass, getParentDetectionClass, defaultDetectionClasses, DEFAULT_ENABLED_CLASSES, TIMELINE_PRESET_CRITICAL, TIMELINE_PRESET_IMPORTANT, TIMELINE_PRESET_ALL, getClassesForTimelinePreset, } from './detection.js';
10
- export type { TimelineEventPreset } from './detection.js';
11
- export type { TimelineEventSeverity, MotionFragmentType, DetectionEvent, MotionItem, TimelineArtifact, AudioLevelSegment, TimelineRecordingSegment, CameraDayDataResponse, ClusteredDayDataResponse, TimelineCluster, DetectionGroup, ClusteredDayDataQuery, GroupedEventsQuery, GroupedEventsResult, ClusterEventsQuery, ClusterEventsResult, ReelEvent, ReelEventsQuery, ReelEventsResult, } from './timeline.js';
12
- export type { StreamMethod, PanTiltZoomCommand, PanTiltZoomCapabilities, CameraAccessorySwitchKind, CameraStatusEntry, CamerasStatusResult, } from './camera.js';
13
- export type { StreamSourceEntry, NvrCamera, CameraAccessory, StreamInfo, NormalizedBoundingBox, DetectionData, EventSnapshotData, NvrEvent, RecordingSegment, MotionBucket, LiveDetection, LiveMotionData, LiveDetectionData, LiveAudioData, LiveMotionEvent, LiveDetectionEvent, LiveAudioEvent, LiveGenericEvent, LiveReviewEvent, LiveEvent, LiveEventType, VideoClipsQuery, NvrVideoClip, VideoClipsResult, VideoClipUrlResult, CameraDayData, CameraStatus, EventsQuery, MotionQuery, RecordingsQuery, NvrConfig, ProviderConfigs, } from './nvr.js';
1
+ export { System, createSystem, raceFastestEndpoint } from "./system.js";
2
+ export type { LoginOptions, LoginOutcome, RefreshedSession } from "./system.js";
3
+ export { isSessionRefusal, jwtExpiresAt, SessionKeeper, type SessionKeeperOptions, type SessionTokens } from "./session-keeper.js";
4
+ export type { SystemConfig, UserInfo, SystemLiveEvent, SystemLiveEventListener, SecondFactorKind } from "./system.js";
5
+ export type { DeviceInfo } from "@camstack/types";
6
+ export type { BackendAppRouter } from "./backend-router.js";
7
+ export type { BackendAppRouter as AppRouter } from "./backend-router.js";
8
+ export type { BackendConnectionState } from "./types.js";
9
+ export { DetectionClass, animalClasses, personClasses, vehicleClasses, faceClasses, licensePlateClasses, motionClasses, packageClasses, audioClasses, audioLabelClasses, doorbellClasses, sensorLabelClasses, detectionClassesDefaultMap, isFaceClassname, isPlateClassname, isAnimalClassname, isPersonClassname, isVehicleClassname, isMotionClassname, isDoorbellClassname, isPackageClassname, isAudioClassname, isSensorLabelClassname, isLabelDetection, getParentClass, getParentDetectionClass, defaultDetectionClasses, DEFAULT_ENABLED_CLASSES, TIMELINE_PRESET_CRITICAL, TIMELINE_PRESET_IMPORTANT, TIMELINE_PRESET_ALL, getClassesForTimelinePreset } from "./detection.js";
10
+ export type { TimelineEventPreset } from "./detection.js";
11
+ export type { TimelineEventSeverity, MotionFragmentType, DetectionEvent, MotionItem, TimelineArtifact, AudioLevelSegment, TimelineRecordingSegment, CameraDayDataResponse, ClusteredDayDataResponse, TimelineCluster, DetectionGroup, ClusteredDayDataQuery, GroupedEventsQuery, GroupedEventsResult, ClusterEventsQuery, ClusterEventsResult, ReelEvent, ReelEventsQuery, ReelEventsResult } from "./timeline.js";
12
+ export type { StreamMethod, PanTiltZoomCommand, PanTiltZoomCapabilities, CameraAccessorySwitchKind, CameraStatusEntry, CamerasStatusResult } from "./camera.js";
13
+ export type { StreamSourceEntry, NvrCamera, CameraAccessory, StreamInfo, NormalizedBoundingBox, DetectionData, EventSnapshotData, NvrEvent, RecordingSegment, MotionBucket, LiveDetection, LiveMotionData, LiveDetectionData, LiveAudioData, LiveMotionEvent, LiveDetectionEvent, LiveAudioEvent, LiveGenericEvent, LiveReviewEvent, LiveEvent, LiveEventType, VideoClipsQuery, NvrVideoClip, VideoClipsResult, VideoClipUrlResult, CameraDayData, CameraStatus, EventsQuery, MotionQuery, RecordingsQuery, NvrConfig, ProviderConfigs } from "./nvr.js";
package/dist/index.js CHANGED
@@ -1776,6 +1776,9 @@ var sensorLabelClasses = [
1776
1776
  "flooded",
1777
1777
  "entry_open"
1778
1778
  ];
1779
+ function listIncludes(list, value) {
1780
+ return list.includes(value);
1781
+ }
1779
1782
  var detectionClassesDefaultMap = {
1780
1783
  ...animalClasses.reduce((tot, curr) => ({
1781
1784
  ...tot,
@@ -1822,16 +1825,16 @@ var detectionClassesDefaultMap = {
1822
1825
  [curr]: "sensor"
1823
1826
  }), {})
1824
1827
  };
1825
- var isFaceClassname = (c) => faceClasses.includes(c);
1826
- var isPlateClassname = (c) => licensePlateClasses.includes(c);
1827
- var isAnimalClassname = (c) => animalClasses.includes(c);
1828
- var isPersonClassname = (c) => personClasses.includes(c);
1829
- var isVehicleClassname = (c) => vehicleClasses.includes(c);
1830
- var isMotionClassname = (c) => motionClasses.includes(c);
1831
- var isDoorbellClassname = (c) => doorbellClasses.includes(c);
1832
- var isPackageClassname = (c) => packageClasses.includes(c);
1833
- var isAudioClassname = (c) => audioClasses.includes(c) || audioLabelClasses.includes(c);
1834
- var isSensorLabelClassname = (c) => sensorLabelClasses.includes(c);
1828
+ var isFaceClassname = (c) => listIncludes(faceClasses, c);
1829
+ var isPlateClassname = (c) => listIncludes(licensePlateClasses, c);
1830
+ var isAnimalClassname = (c) => listIncludes(animalClasses, c);
1831
+ var isPersonClassname = (c) => listIncludes(personClasses, c);
1832
+ var isVehicleClassname = (c) => listIncludes(vehicleClasses, c);
1833
+ var isMotionClassname = (c) => listIncludes(motionClasses, c);
1834
+ var isDoorbellClassname = (c) => listIncludes(doorbellClasses, c);
1835
+ var isPackageClassname = (c) => listIncludes(packageClasses, c);
1836
+ var isAudioClassname = (c) => listIncludes(audioClasses, c) || listIncludes(audioLabelClasses, c);
1837
+ var isSensorLabelClassname = (c) => listIncludes(sensorLabelClasses, c);
1835
1838
  var isLabelDetection = (c) => isFaceClassname(c) || isPlateClassname(c);
1836
1839
  var getParentClass = (className) => detectionClassesDefaultMap[className];
1837
1840
  var getParentDetectionClass = (det) => {