@camstack/addon-decoder-nodeav 1.2.68 → 1.2.70
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/dist/index.js +86 -2
- package/dist/index.mjs +86 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
6
|
-
//#region ../types/dist/event-category-
|
|
6
|
+
//#region ../types/dist/event-category-zAv7pMUz.mjs
|
|
7
7
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
8
8
|
EventCategory["SystemBoot"] = "system.boot";
|
|
9
9
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -375,6 +375,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
375
375
|
*/
|
|
376
376
|
EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
|
|
377
377
|
/**
|
|
378
|
+
* Cap event fired by every device that registers the `network-link`
|
|
379
|
+
* capability. Mirrors the cap definition's `onStatusChanged`. Carries
|
|
380
|
+
* `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
|
|
381
|
+
* reading that moved.
|
|
382
|
+
*/
|
|
383
|
+
EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
|
|
384
|
+
/**
|
|
378
385
|
* Emitted by the battery cap provider WHEN `wakeForStream` enters the
|
|
379
386
|
* "wake in progress" window — between the Baichuan wake-up issue and
|
|
380
387
|
* the camera's first dialed-back RTP packet. The stream-broker
|
|
@@ -19151,6 +19158,33 @@ var RecentTracksQueryInput = object({
|
|
|
19151
19158
|
*/
|
|
19152
19159
|
classes: array(string()).optional()
|
|
19153
19160
|
});
|
|
19161
|
+
/**
|
|
19162
|
+
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
19163
|
+
* `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
|
|
19164
|
+
* served by the event-media plane by key), null until the first frame with a
|
|
19165
|
+
* member visible has been materialised.
|
|
19166
|
+
*/
|
|
19167
|
+
var SummarySchema = object({
|
|
19168
|
+
id: string(),
|
|
19169
|
+
deviceId: number(),
|
|
19170
|
+
openedAt: number(),
|
|
19171
|
+
lastActiveAt: number(),
|
|
19172
|
+
sealedAt: number().nullable(),
|
|
19173
|
+
memberCount: number().int().nonnegative(),
|
|
19174
|
+
groupShotKey: string().nullable()
|
|
19175
|
+
});
|
|
19176
|
+
var SummariesQueryInput = object({
|
|
19177
|
+
deviceIds: array(number()).min(1),
|
|
19178
|
+
since: number().optional(),
|
|
19179
|
+
until: number().optional(),
|
|
19180
|
+
limit: number().int().min(1).max(200).default(50)
|
|
19181
|
+
});
|
|
19182
|
+
var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
|
|
19183
|
+
var SummaryDetailSchema = object({
|
|
19184
|
+
summary: SummarySchema,
|
|
19185
|
+
/** Member track ids, in absorption order. */
|
|
19186
|
+
trackIds: array(string()).readonly()
|
|
19187
|
+
});
|
|
19154
19188
|
var RecentTracksPageSchema = object({
|
|
19155
19189
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
19156
19190
|
tracks: array(TrackSchema).readonly(),
|
|
@@ -19551,7 +19585,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19551
19585
|
* timeline would read as a camera that saw nothing.
|
|
19552
19586
|
*/
|
|
19553
19587
|
classes: array(string()).optional()
|
|
19554
|
-
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
19588
|
+
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19555
19589
|
kind: "mutation",
|
|
19556
19590
|
auth: "admin"
|
|
19557
19591
|
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
|
|
@@ -23284,6 +23318,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
|
|
|
23284
23318
|
deviceId: number(),
|
|
23285
23319
|
status: BatteryStatusSchema
|
|
23286
23320
|
});
|
|
23321
|
+
/**
|
|
23322
|
+
* Network-link snapshot. Same shape for every provider (a Reolink wifi
|
|
23323
|
+
* camera, a Home Assistant device with a signal-strength sensor, a Tapo
|
|
23324
|
+
* plug): one slice under `device.runtimeState['network-link']`, one badge,
|
|
23325
|
+
* one Home Assistant projection.
|
|
23326
|
+
*/
|
|
23327
|
+
var NetworkLinkStatusSchema = object({
|
|
23328
|
+
/** The link the device is on. `'unknown'` = not read yet, not "no link". */
|
|
23329
|
+
type: _enum([
|
|
23330
|
+
"wifi",
|
|
23331
|
+
"ethernet",
|
|
23332
|
+
"cellular",
|
|
23333
|
+
"unknown"
|
|
23334
|
+
]),
|
|
23335
|
+
/**
|
|
23336
|
+
* Link quality, 0..100 inclusive, normalised by the provider from whatever
|
|
23337
|
+
* the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
|
|
23338
|
+
* KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
|
|
23339
|
+
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
23340
|
+
* SKIP a null rather than coerce it.
|
|
23341
|
+
*/
|
|
23342
|
+
signalPercent: number().min(0).max(100).nullable(),
|
|
23343
|
+
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
23344
|
+
rssiDbm: number().optional(),
|
|
23345
|
+
/** Network name of a wireless link, when the firmware reports it. */
|
|
23346
|
+
ssid: string().optional(),
|
|
23347
|
+
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
23348
|
+
lastUpdated: number()
|
|
23349
|
+
});
|
|
23350
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
|
|
23351
|
+
deviceId: number(),
|
|
23352
|
+
status: NetworkLinkStatusSchema
|
|
23353
|
+
});
|
|
23287
23354
|
object({
|
|
23288
23355
|
on: boolean(),
|
|
23289
23356
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
@@ -32506,6 +32573,12 @@ Object.freeze({
|
|
|
32506
32573
|
addonId: null,
|
|
32507
32574
|
access: "view"
|
|
32508
32575
|
},
|
|
32576
|
+
"pipelineAnalytics.getSummary": {
|
|
32577
|
+
capName: "pipeline-analytics",
|
|
32578
|
+
capScope: "device",
|
|
32579
|
+
addonId: null,
|
|
32580
|
+
access: "view"
|
|
32581
|
+
},
|
|
32509
32582
|
"pipelineAnalytics.getTrack": {
|
|
32510
32583
|
capName: "pipeline-analytics",
|
|
32511
32584
|
capScope: "device",
|
|
@@ -32584,6 +32657,12 @@ Object.freeze({
|
|
|
32584
32657
|
addonId: null,
|
|
32585
32658
|
access: "view"
|
|
32586
32659
|
},
|
|
32660
|
+
"pipelineAnalytics.listSummaries": {
|
|
32661
|
+
capName: "pipeline-analytics",
|
|
32662
|
+
capScope: "device",
|
|
32663
|
+
addonId: null,
|
|
32664
|
+
access: "view"
|
|
32665
|
+
},
|
|
32587
32666
|
"pipelineAnalytics.listTrackMedia": {
|
|
32588
32667
|
capName: "pipeline-analytics",
|
|
32589
32668
|
capScope: "device",
|
|
@@ -36279,6 +36358,11 @@ Object.freeze({
|
|
|
36279
36358
|
form: "array",
|
|
36280
36359
|
optional: true
|
|
36281
36360
|
}],
|
|
36361
|
+
"pipelineAnalytics.listSummaries": [{
|
|
36362
|
+
name: "deviceIds",
|
|
36363
|
+
form: "array",
|
|
36364
|
+
optional: false
|
|
36365
|
+
}],
|
|
36282
36366
|
"pipelineAnalytics.listTrackMedia": [{
|
|
36283
36367
|
name: "deviceId",
|
|
36284
36368
|
form: "single",
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-zAv7pMUz.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -371,6 +371,13 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
371
371
|
*/
|
|
372
372
|
EventCategory["BatteryOnStatusChanged"] = "battery.onStatusChanged";
|
|
373
373
|
/**
|
|
374
|
+
* Cap event fired by every device that registers the `network-link`
|
|
375
|
+
* capability. Mirrors the cap definition's `onStatusChanged`. Carries
|
|
376
|
+
* `{ deviceId, status: NetworkLinkStatus }` — a link switch or a signal
|
|
377
|
+
* reading that moved.
|
|
378
|
+
*/
|
|
379
|
+
EventCategory["NetworkLinkOnStatusChanged"] = "network-link.onStatusChanged";
|
|
380
|
+
/**
|
|
374
381
|
* Emitted by the battery cap provider WHEN `wakeForStream` enters the
|
|
375
382
|
* "wake in progress" window — between the Baichuan wake-up issue and
|
|
376
383
|
* the camera's first dialed-back RTP packet. The stream-broker
|
|
@@ -19147,6 +19154,33 @@ var RecentTracksQueryInput = object({
|
|
|
19147
19154
|
*/
|
|
19148
19155
|
classes: array(string()).optional()
|
|
19149
19156
|
});
|
|
19157
|
+
/**
|
|
19158
|
+
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
19159
|
+
* `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
|
|
19160
|
+
* served by the event-media plane by key), null until the first frame with a
|
|
19161
|
+
* member visible has been materialised.
|
|
19162
|
+
*/
|
|
19163
|
+
var SummarySchema = object({
|
|
19164
|
+
id: string(),
|
|
19165
|
+
deviceId: number(),
|
|
19166
|
+
openedAt: number(),
|
|
19167
|
+
lastActiveAt: number(),
|
|
19168
|
+
sealedAt: number().nullable(),
|
|
19169
|
+
memberCount: number().int().nonnegative(),
|
|
19170
|
+
groupShotKey: string().nullable()
|
|
19171
|
+
});
|
|
19172
|
+
var SummariesQueryInput = object({
|
|
19173
|
+
deviceIds: array(number()).min(1),
|
|
19174
|
+
since: number().optional(),
|
|
19175
|
+
until: number().optional(),
|
|
19176
|
+
limit: number().int().min(1).max(200).default(50)
|
|
19177
|
+
});
|
|
19178
|
+
var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
|
|
19179
|
+
var SummaryDetailSchema = object({
|
|
19180
|
+
summary: SummarySchema,
|
|
19181
|
+
/** Member track ids, in absorption order. */
|
|
19182
|
+
trackIds: array(string()).readonly()
|
|
19183
|
+
});
|
|
19150
19184
|
var RecentTracksPageSchema = object({
|
|
19151
19185
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
19152
19186
|
tracks: array(TrackSchema).readonly(),
|
|
@@ -19547,7 +19581,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
19547
19581
|
* timeline would read as a camera that saw nothing.
|
|
19548
19582
|
*/
|
|
19549
19583
|
classes: array(string()).optional()
|
|
19550
|
-
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
|
|
19584
|
+
}), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
|
|
19551
19585
|
kind: "mutation",
|
|
19552
19586
|
auth: "admin"
|
|
19553
19587
|
}), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
|
|
@@ -23280,6 +23314,39 @@ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, meth
|
|
|
23280
23314
|
deviceId: number(),
|
|
23281
23315
|
status: BatteryStatusSchema
|
|
23282
23316
|
});
|
|
23317
|
+
/**
|
|
23318
|
+
* Network-link snapshot. Same shape for every provider (a Reolink wifi
|
|
23319
|
+
* camera, a Home Assistant device with a signal-strength sensor, a Tapo
|
|
23320
|
+
* plug): one slice under `device.runtimeState['network-link']`, one badge,
|
|
23321
|
+
* one Home Assistant projection.
|
|
23322
|
+
*/
|
|
23323
|
+
var NetworkLinkStatusSchema = object({
|
|
23324
|
+
/** The link the device is on. `'unknown'` = not read yet, not "no link". */
|
|
23325
|
+
type: _enum([
|
|
23326
|
+
"wifi",
|
|
23327
|
+
"ethernet",
|
|
23328
|
+
"cellular",
|
|
23329
|
+
"unknown"
|
|
23330
|
+
]),
|
|
23331
|
+
/**
|
|
23332
|
+
* Link quality, 0..100 inclusive, normalised by the provider from whatever
|
|
23333
|
+
* the firmware reports (bars, RSSI, a vendor scale). **`null` means NOT
|
|
23334
|
+
* KNOWN or NOT APPLICABLE** — a wired link has no signal, and a wireless
|
|
23335
|
+
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
23336
|
+
* SKIP a null rather than coerce it.
|
|
23337
|
+
*/
|
|
23338
|
+
signalPercent: number().min(0).max(100).nullable(),
|
|
23339
|
+
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
23340
|
+
rssiDbm: number().optional(),
|
|
23341
|
+
/** Network name of a wireless link, when the firmware reports it. */
|
|
23342
|
+
ssid: string().optional(),
|
|
23343
|
+
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
23344
|
+
lastUpdated: number()
|
|
23345
|
+
});
|
|
23346
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.Light, DeviceType.Lock, DeviceType.Siren, object({
|
|
23347
|
+
deviceId: number(),
|
|
23348
|
+
status: NetworkLinkStatusSchema
|
|
23349
|
+
});
|
|
23283
23350
|
object({
|
|
23284
23351
|
on: boolean(),
|
|
23285
23352
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
@@ -32502,6 +32569,12 @@ Object.freeze({
|
|
|
32502
32569
|
addonId: null,
|
|
32503
32570
|
access: "view"
|
|
32504
32571
|
},
|
|
32572
|
+
"pipelineAnalytics.getSummary": {
|
|
32573
|
+
capName: "pipeline-analytics",
|
|
32574
|
+
capScope: "device",
|
|
32575
|
+
addonId: null,
|
|
32576
|
+
access: "view"
|
|
32577
|
+
},
|
|
32505
32578
|
"pipelineAnalytics.getTrack": {
|
|
32506
32579
|
capName: "pipeline-analytics",
|
|
32507
32580
|
capScope: "device",
|
|
@@ -32580,6 +32653,12 @@ Object.freeze({
|
|
|
32580
32653
|
addonId: null,
|
|
32581
32654
|
access: "view"
|
|
32582
32655
|
},
|
|
32656
|
+
"pipelineAnalytics.listSummaries": {
|
|
32657
|
+
capName: "pipeline-analytics",
|
|
32658
|
+
capScope: "device",
|
|
32659
|
+
addonId: null,
|
|
32660
|
+
access: "view"
|
|
32661
|
+
},
|
|
32583
32662
|
"pipelineAnalytics.listTrackMedia": {
|
|
32584
32663
|
capName: "pipeline-analytics",
|
|
32585
32664
|
capScope: "device",
|
|
@@ -36275,6 +36354,11 @@ Object.freeze({
|
|
|
36275
36354
|
form: "array",
|
|
36276
36355
|
optional: true
|
|
36277
36356
|
}],
|
|
36357
|
+
"pipelineAnalytics.listSummaries": [{
|
|
36358
|
+
name: "deviceIds",
|
|
36359
|
+
form: "array",
|
|
36360
|
+
optional: false
|
|
36361
|
+
}],
|
|
36278
36362
|
"pipelineAnalytics.listTrackMedia": [{
|
|
36279
36363
|
name: "deviceId",
|
|
36280
36364
|
form: "single",
|