@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 +96 -5
- package/dist/addon.mjs +96 -5
- package/package.json +1 -1
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"
|