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