@camstack/addon-provider-onvif 1.2.91 → 1.2.93

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/addon.js CHANGED
@@ -16222,6 +16222,7 @@ var NcSystemEventKindSchema = _enum([
16222
16222
  "addon-crash-loop",
16223
16223
  "addon-update-available",
16224
16224
  "server-update-available",
16225
+ "wrapper-update-available",
16225
16226
  "alarm-triggered",
16226
16227
  "alarm-armed",
16227
16228
  "alarm-disarmed",
@@ -19627,7 +19628,17 @@ var EventDensityBucketSchema = object({
19627
19628
  bucketStart: number(),
19628
19629
  motion: number().int(),
19629
19630
  object: number().int(),
19630
- audio: number().int()
19631
+ audio: number().int(),
19632
+ /**
19633
+ * Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
19634
+ * as opposed to `audio`, which is their COUNT (D431).
19635
+ *
19636
+ * ABSENT when the bucket holds no audio event. Absence means "nothing was
19637
+ * measured", which is not the same claim as silence, and a lane that cannot
19638
+ * tell them apart paints a quiet hour at full scale — which is exactly what
19639
+ * the count-on-a-level-meter did.
19640
+ */
19641
+ audioDbfs: number().optional()
19631
19642
  });
19632
19643
  /**
19633
19644
  * One camera's row in a `getEventDensityBatch` answer.
@@ -21728,6 +21739,53 @@ var ImageContractSchema = object({
21728
21739
  /** One operator-grade sentence: this node runs image X; the contract says Y. */
21729
21740
  message: string()
21730
21741
  });
21742
+ /**
21743
+ * The shell verdict (see {@link WrapperKindSchema}) with the proofs that
21744
+ * produced it.
21745
+ *
21746
+ * There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
21747
+ * update is an ANNOUNCEMENT. The notification body carries the exact command
21748
+ * for a `docker` shell and says the app restarts into the new build for
21749
+ * `electron`, and that sentence is chosen from `kind` alone — a boolean
21750
+ * nothing reads is the defect this repo keeps paying for.
21751
+ */
21752
+ var WrapperIdentitySchema = object({
21753
+ kind: _enum([
21754
+ "docker",
21755
+ "electron",
21756
+ "native",
21757
+ "contradictory",
21758
+ "unknown"
21759
+ ]),
21760
+ /** Every probe that ran, in a stable order. Never empty. */
21761
+ evidence: array(object({
21762
+ /** Which probe this row reports. */
21763
+ fact: _enum([
21764
+ "dockerenv-file",
21765
+ "proc-1-cgroup",
21766
+ "platform",
21767
+ "electron-app-version-env"
21768
+ ]),
21769
+ /**
21770
+ * `observed` — this process read it itself. `declared` — the shell told the
21771
+ * process and nothing here can check it. Only the Electron app version is
21772
+ * ever `declared`, and only because a child cannot see its parent.
21773
+ */
21774
+ mode: _enum(["observed", "declared"]),
21775
+ /** Did the probe support the fact it names? A `false` row is still evidence. */
21776
+ holds: boolean(),
21777
+ /** What was actually read, verbatim enough for an operator to argue with. */
21778
+ detail: string()
21779
+ })),
21780
+ /**
21781
+ * The version of the SHELL, when the shell has one it can state: the
21782
+ * Electron app version it declared, or the baked seed closure that
21783
+ * fingerprints a container / app bundle. `null` for `contradictory` and
21784
+ * `unknown` — which version belongs to the shell is precisely what is not
21785
+ * known there.
21786
+ */
21787
+ currentVersion: string().nullable()
21788
+ });
21731
21789
  var ServerRollbackInfoSchema = object({
21732
21790
  /** The version that failed (or was manually rolled back). */
21733
21791
  fromVersion: string(),
@@ -21769,7 +21827,13 @@ var ServerPackageStatusSchema = object({
21769
21827
  * Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
21770
21828
  * version skew: an older provider's payload simply omits it.
21771
21829
  */
21772
- imageContract: ImageContractSchema.optional()
21830
+ imageContract: ImageContractSchema.optional(),
21831
+ /**
21832
+ * What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
21833
+ * for version skew: an older provider's payload simply omits it, and an
21834
+ * absent wrapper is unknown — never `native`.
21835
+ */
21836
+ wrapper: WrapperIdentitySchema.optional()
21773
21837
  });
21774
21838
  var ServerUpdateCheckResultSchema = object({
21775
21839
  packageName: string(),
@@ -27940,7 +28004,23 @@ var RecordingRangeSchema = object({
27940
28004
  });
27941
28005
  var RecordingAvailabilitySchema = object({
27942
28006
  deviceId: number(),
27943
- ranges: array(RecordingRangeSchema)
28007
+ ranges: array(RecordingRangeSchema),
28008
+ /**
28009
+ * Every profile this camera has footage in — not only the one `ranges`
28010
+ * describes (D433).
28011
+ *
28012
+ * `ranges` answers for ONE profile by design: the timeline is a single bar,
28013
+ * and enumerating all of them triples the directory reads for a bar that
28014
+ * would look identical. But the answer used to say nothing about that, so a
28015
+ * caller asking "what can I export?" read the single preferred profile as
28016
+ * the only one that exists — on this deployment every camera records `high`
28017
+ * AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
28018
+ * UI could not see it.
28019
+ *
28020
+ * Cheap: it is the same shallow directory read the profile CHOICE already
28021
+ * makes. Ask for a specific profile's ranges with the `profile` input.
28022
+ */
28023
+ profilesWithFootage: array(string())
27944
28024
  });
27945
28025
  var RecordingDaysSchema = object({
27946
28026
  deviceId: number(),
@@ -27966,7 +28046,11 @@ var RecordingDaysSchema = object({
27966
28046
  var RecordingAvailabilityForDeviceSchema = object({
27967
28047
  deviceId: number(),
27968
28048
  read: _enum(["read", "unreadable"]),
27969
- ranges: array(RecordingRangeSchema).readonly()
28049
+ ranges: array(RecordingRangeSchema).readonly(),
28050
+ /** Same field, same meaning, as the singular answer (D433). A row that
28051
+ * dropped it would tell a grid caller the archive holds one profile.
28052
+ * Empty on an `'unreadable'` row: nobody looked. */
28053
+ profilesWithFootage: array(string()).readonly()
27970
28054
  });
27971
28055
  /**
27972
28056
  * One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
@@ -28256,7 +28340,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
28256
28340
  method(object({
28257
28341
  deviceId: number(),
28258
28342
  fromMs: number(),
28259
- toMs: number()
28343
+ toMs: number(),
28344
+ /**
28345
+ * Answer for THIS profile instead of the preferred one (D433). Absent
28346
+ * keeps the timeline's behaviour — one bar, one profile, one set of
28347
+ * reads. `profilesWithFootage` on the answer says what may be asked
28348
+ * for.
28349
+ */
28350
+ profile: string().optional()
28260
28351
  }), RecordingAvailabilitySchema, {
28261
28352
  kind: "query",
28262
28353
  auth: "protected"
package/dist/addon.mjs CHANGED
@@ -16223,6 +16223,7 @@ var NcSystemEventKindSchema = _enum([
16223
16223
  "addon-crash-loop",
16224
16224
  "addon-update-available",
16225
16225
  "server-update-available",
16226
+ "wrapper-update-available",
16226
16227
  "alarm-triggered",
16227
16228
  "alarm-armed",
16228
16229
  "alarm-disarmed",
@@ -19628,7 +19629,17 @@ var EventDensityBucketSchema = object({
19628
19629
  bucketStart: number(),
19629
19630
  motion: number().int(),
19630
19631
  object: number().int(),
19631
- audio: number().int()
19632
+ audio: number().int(),
19633
+ /**
19634
+ * Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
19635
+ * as opposed to `audio`, which is their COUNT (D431).
19636
+ *
19637
+ * ABSENT when the bucket holds no audio event. Absence means "nothing was
19638
+ * measured", which is not the same claim as silence, and a lane that cannot
19639
+ * tell them apart paints a quiet hour at full scale — which is exactly what
19640
+ * the count-on-a-level-meter did.
19641
+ */
19642
+ audioDbfs: number().optional()
19632
19643
  });
19633
19644
  /**
19634
19645
  * One camera's row in a `getEventDensityBatch` answer.
@@ -21729,6 +21740,53 @@ var ImageContractSchema = object({
21729
21740
  /** One operator-grade sentence: this node runs image X; the contract says Y. */
21730
21741
  message: string()
21731
21742
  });
21743
+ /**
21744
+ * The shell verdict (see {@link WrapperKindSchema}) with the proofs that
21745
+ * produced it.
21746
+ *
21747
+ * There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
21748
+ * update is an ANNOUNCEMENT. The notification body carries the exact command
21749
+ * for a `docker` shell and says the app restarts into the new build for
21750
+ * `electron`, and that sentence is chosen from `kind` alone — a boolean
21751
+ * nothing reads is the defect this repo keeps paying for.
21752
+ */
21753
+ var WrapperIdentitySchema = object({
21754
+ kind: _enum([
21755
+ "docker",
21756
+ "electron",
21757
+ "native",
21758
+ "contradictory",
21759
+ "unknown"
21760
+ ]),
21761
+ /** Every probe that ran, in a stable order. Never empty. */
21762
+ evidence: array(object({
21763
+ /** Which probe this row reports. */
21764
+ fact: _enum([
21765
+ "dockerenv-file",
21766
+ "proc-1-cgroup",
21767
+ "platform",
21768
+ "electron-app-version-env"
21769
+ ]),
21770
+ /**
21771
+ * `observed` — this process read it itself. `declared` — the shell told the
21772
+ * process and nothing here can check it. Only the Electron app version is
21773
+ * ever `declared`, and only because a child cannot see its parent.
21774
+ */
21775
+ mode: _enum(["observed", "declared"]),
21776
+ /** Did the probe support the fact it names? A `false` row is still evidence. */
21777
+ holds: boolean(),
21778
+ /** What was actually read, verbatim enough for an operator to argue with. */
21779
+ detail: string()
21780
+ })),
21781
+ /**
21782
+ * The version of the SHELL, when the shell has one it can state: the
21783
+ * Electron app version it declared, or the baked seed closure that
21784
+ * fingerprints a container / app bundle. `null` for `contradictory` and
21785
+ * `unknown` — which version belongs to the shell is precisely what is not
21786
+ * known there.
21787
+ */
21788
+ currentVersion: string().nullable()
21789
+ });
21732
21790
  var ServerRollbackInfoSchema = object({
21733
21791
  /** The version that failed (or was manually rolled back). */
21734
21792
  fromVersion: string(),
@@ -21770,7 +21828,13 @@ var ServerPackageStatusSchema = object({
21770
21828
  * Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
21771
21829
  * version skew: an older provider's payload simply omits it.
21772
21830
  */
21773
- imageContract: ImageContractSchema.optional()
21831
+ imageContract: ImageContractSchema.optional(),
21832
+ /**
21833
+ * What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
21834
+ * for version skew: an older provider's payload simply omits it, and an
21835
+ * absent wrapper is unknown — never `native`.
21836
+ */
21837
+ wrapper: WrapperIdentitySchema.optional()
21774
21838
  });
21775
21839
  var ServerUpdateCheckResultSchema = object({
21776
21840
  packageName: string(),
@@ -27941,7 +28005,23 @@ var RecordingRangeSchema = object({
27941
28005
  });
27942
28006
  var RecordingAvailabilitySchema = object({
27943
28007
  deviceId: number(),
27944
- ranges: array(RecordingRangeSchema)
28008
+ ranges: array(RecordingRangeSchema),
28009
+ /**
28010
+ * Every profile this camera has footage in — not only the one `ranges`
28011
+ * describes (D433).
28012
+ *
28013
+ * `ranges` answers for ONE profile by design: the timeline is a single bar,
28014
+ * and enumerating all of them triples the directory reads for a bar that
28015
+ * would look identical. But the answer used to say nothing about that, so a
28016
+ * caller asking "what can I export?" read the single preferred profile as
28017
+ * the only one that exists — on this deployment every camera records `high`
28018
+ * AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
28019
+ * UI could not see it.
28020
+ *
28021
+ * Cheap: it is the same shallow directory read the profile CHOICE already
28022
+ * makes. Ask for a specific profile's ranges with the `profile` input.
28023
+ */
28024
+ profilesWithFootage: array(string())
27945
28025
  });
27946
28026
  var RecordingDaysSchema = object({
27947
28027
  deviceId: number(),
@@ -27967,7 +28047,11 @@ var RecordingDaysSchema = object({
27967
28047
  var RecordingAvailabilityForDeviceSchema = object({
27968
28048
  deviceId: number(),
27969
28049
  read: _enum(["read", "unreadable"]),
27970
- ranges: array(RecordingRangeSchema).readonly()
28050
+ ranges: array(RecordingRangeSchema).readonly(),
28051
+ /** Same field, same meaning, as the singular answer (D433). A row that
28052
+ * dropped it would tell a grid caller the archive holds one profile.
28053
+ * Empty on an `'unreadable'` row: nobody looked. */
28054
+ profilesWithFootage: array(string()).readonly()
27971
28055
  });
27972
28056
  /**
27973
28057
  * One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
@@ -28257,7 +28341,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
28257
28341
  method(object({
28258
28342
  deviceId: number(),
28259
28343
  fromMs: number(),
28260
- toMs: number()
28344
+ toMs: number(),
28345
+ /**
28346
+ * Answer for THIS profile instead of the preferred one (D433). Absent
28347
+ * keeps the timeline's behaviour — one bar, one profile, one set of
28348
+ * reads. `profilesWithFootage` on the answer says what may be asked
28349
+ * for.
28350
+ */
28351
+ profile: string().optional()
28261
28352
  }), RecordingAvailabilitySchema, {
28262
28353
  kind: "query",
28263
28354
  auth: "protected"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-onvif",
3
- "version": "1.2.91",
3
+ "version": "1.2.93",
4
4
  "description": "ONVIF camera device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",