@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 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-BZL-fdNj.mjs
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-BZL-fdNj.mjs
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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-ffmpeg",
3
- "version": "1.2.68",
3
+ "version": "1.2.70",
4
4
  "description": "Standalone ffmpeg-subprocess decoder fallback addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",