@camstack/addon-provider-rtsp 1.2.92 → 1.2.94
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
|
@@ -16526,6 +16526,7 @@ var NcSystemEventKindSchema = _enum([
|
|
|
16526
16526
|
"addon-crash-loop",
|
|
16527
16527
|
"addon-update-available",
|
|
16528
16528
|
"server-update-available",
|
|
16529
|
+
"wrapper-update-available",
|
|
16529
16530
|
"alarm-triggered",
|
|
16530
16531
|
"alarm-armed",
|
|
16531
16532
|
"alarm-disarmed",
|
|
@@ -19971,7 +19972,17 @@ var EventDensityBucketSchema = object({
|
|
|
19971
19972
|
bucketStart: number(),
|
|
19972
19973
|
motion: number().int(),
|
|
19973
19974
|
object: number().int(),
|
|
19974
|
-
audio: number().int()
|
|
19975
|
+
audio: number().int(),
|
|
19976
|
+
/**
|
|
19977
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19978
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19979
|
+
*
|
|
19980
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19981
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19982
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19983
|
+
* the count-on-a-level-meter did.
|
|
19984
|
+
*/
|
|
19985
|
+
audioDbfs: number().optional()
|
|
19975
19986
|
});
|
|
19976
19987
|
/**
|
|
19977
19988
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -22072,6 +22083,53 @@ var ImageContractSchema = object({
|
|
|
22072
22083
|
/** One operator-grade sentence: this node runs image X; the contract says Y. */
|
|
22073
22084
|
message: string()
|
|
22074
22085
|
});
|
|
22086
|
+
/**
|
|
22087
|
+
* The shell verdict (see {@link WrapperKindSchema}) with the proofs that
|
|
22088
|
+
* produced it.
|
|
22089
|
+
*
|
|
22090
|
+
* There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
|
|
22091
|
+
* update is an ANNOUNCEMENT. The notification body carries the exact command
|
|
22092
|
+
* for a `docker` shell and says the app restarts into the new build for
|
|
22093
|
+
* `electron`, and that sentence is chosen from `kind` alone — a boolean
|
|
22094
|
+
* nothing reads is the defect this repo keeps paying for.
|
|
22095
|
+
*/
|
|
22096
|
+
var WrapperIdentitySchema = object({
|
|
22097
|
+
kind: _enum([
|
|
22098
|
+
"docker",
|
|
22099
|
+
"electron",
|
|
22100
|
+
"native",
|
|
22101
|
+
"contradictory",
|
|
22102
|
+
"unknown"
|
|
22103
|
+
]),
|
|
22104
|
+
/** Every probe that ran, in a stable order. Never empty. */
|
|
22105
|
+
evidence: array(object({
|
|
22106
|
+
/** Which probe this row reports. */
|
|
22107
|
+
fact: _enum([
|
|
22108
|
+
"dockerenv-file",
|
|
22109
|
+
"proc-1-cgroup",
|
|
22110
|
+
"platform",
|
|
22111
|
+
"electron-app-version-env"
|
|
22112
|
+
]),
|
|
22113
|
+
/**
|
|
22114
|
+
* `observed` — this process read it itself. `declared` — the shell told the
|
|
22115
|
+
* process and nothing here can check it. Only the Electron app version is
|
|
22116
|
+
* ever `declared`, and only because a child cannot see its parent.
|
|
22117
|
+
*/
|
|
22118
|
+
mode: _enum(["observed", "declared"]),
|
|
22119
|
+
/** Did the probe support the fact it names? A `false` row is still evidence. */
|
|
22120
|
+
holds: boolean(),
|
|
22121
|
+
/** What was actually read, verbatim enough for an operator to argue with. */
|
|
22122
|
+
detail: string()
|
|
22123
|
+
})),
|
|
22124
|
+
/**
|
|
22125
|
+
* The version of the SHELL, when the shell has one it can state: the
|
|
22126
|
+
* Electron app version it declared, or the baked seed closure that
|
|
22127
|
+
* fingerprints a container / app bundle. `null` for `contradictory` and
|
|
22128
|
+
* `unknown` — which version belongs to the shell is precisely what is not
|
|
22129
|
+
* known there.
|
|
22130
|
+
*/
|
|
22131
|
+
currentVersion: string().nullable()
|
|
22132
|
+
});
|
|
22075
22133
|
var ServerRollbackInfoSchema = object({
|
|
22076
22134
|
/** The version that failed (or was manually rolled back). */
|
|
22077
22135
|
fromVersion: string(),
|
|
@@ -22113,7 +22171,13 @@ var ServerPackageStatusSchema = object({
|
|
|
22113
22171
|
* Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
|
|
22114
22172
|
* version skew: an older provider's payload simply omits it.
|
|
22115
22173
|
*/
|
|
22116
|
-
imageContract: ImageContractSchema.optional()
|
|
22174
|
+
imageContract: ImageContractSchema.optional(),
|
|
22175
|
+
/**
|
|
22176
|
+
* What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
|
|
22177
|
+
* for version skew: an older provider's payload simply omits it, and an
|
|
22178
|
+
* absent wrapper is unknown — never `native`.
|
|
22179
|
+
*/
|
|
22180
|
+
wrapper: WrapperIdentitySchema.optional()
|
|
22117
22181
|
});
|
|
22118
22182
|
var ServerUpdateCheckResultSchema = object({
|
|
22119
22183
|
packageName: string(),
|
|
@@ -30098,7 +30162,23 @@ var RecordingRangeSchema = object({
|
|
|
30098
30162
|
});
|
|
30099
30163
|
var RecordingAvailabilitySchema = object({
|
|
30100
30164
|
deviceId: number(),
|
|
30101
|
-
ranges: array(RecordingRangeSchema)
|
|
30165
|
+
ranges: array(RecordingRangeSchema),
|
|
30166
|
+
/**
|
|
30167
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
30168
|
+
* describes (D433).
|
|
30169
|
+
*
|
|
30170
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
30171
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
30172
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
30173
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
30174
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
30175
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
30176
|
+
* UI could not see it.
|
|
30177
|
+
*
|
|
30178
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
30179
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
30180
|
+
*/
|
|
30181
|
+
profilesWithFootage: array(string())
|
|
30102
30182
|
});
|
|
30103
30183
|
var RecordingDaysSchema = object({
|
|
30104
30184
|
deviceId: number(),
|
|
@@ -30124,7 +30204,11 @@ var RecordingDaysSchema = object({
|
|
|
30124
30204
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
30125
30205
|
deviceId: number(),
|
|
30126
30206
|
read: _enum(["read", "unreadable"]),
|
|
30127
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
30207
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
30208
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
30209
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
30210
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
30211
|
+
profilesWithFootage: array(string()).readonly()
|
|
30128
30212
|
});
|
|
30129
30213
|
/**
|
|
30130
30214
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -30414,7 +30498,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
30414
30498
|
method(object({
|
|
30415
30499
|
deviceId: number(),
|
|
30416
30500
|
fromMs: number(),
|
|
30417
|
-
toMs: number()
|
|
30501
|
+
toMs: number(),
|
|
30502
|
+
/**
|
|
30503
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
30504
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
30505
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
30506
|
+
* for.
|
|
30507
|
+
*/
|
|
30508
|
+
profile: string().optional()
|
|
30418
30509
|
}), RecordingAvailabilitySchema, {
|
|
30419
30510
|
kind: "query",
|
|
30420
30511
|
auth: "protected"
|
package/dist/addon.mjs
CHANGED
|
@@ -16502,6 +16502,7 @@ var NcSystemEventKindSchema = _enum([
|
|
|
16502
16502
|
"addon-crash-loop",
|
|
16503
16503
|
"addon-update-available",
|
|
16504
16504
|
"server-update-available",
|
|
16505
|
+
"wrapper-update-available",
|
|
16505
16506
|
"alarm-triggered",
|
|
16506
16507
|
"alarm-armed",
|
|
16507
16508
|
"alarm-disarmed",
|
|
@@ -19947,7 +19948,17 @@ var EventDensityBucketSchema = object({
|
|
|
19947
19948
|
bucketStart: number(),
|
|
19948
19949
|
motion: number().int(),
|
|
19949
19950
|
object: number().int(),
|
|
19950
|
-
audio: number().int()
|
|
19951
|
+
audio: number().int(),
|
|
19952
|
+
/**
|
|
19953
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19954
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19955
|
+
*
|
|
19956
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19957
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19958
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19959
|
+
* the count-on-a-level-meter did.
|
|
19960
|
+
*/
|
|
19961
|
+
audioDbfs: number().optional()
|
|
19951
19962
|
});
|
|
19952
19963
|
/**
|
|
19953
19964
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -22048,6 +22059,53 @@ var ImageContractSchema = object({
|
|
|
22048
22059
|
/** One operator-grade sentence: this node runs image X; the contract says Y. */
|
|
22049
22060
|
message: string()
|
|
22050
22061
|
});
|
|
22062
|
+
/**
|
|
22063
|
+
* The shell verdict (see {@link WrapperKindSchema}) with the proofs that
|
|
22064
|
+
* produced it.
|
|
22065
|
+
*
|
|
22066
|
+
* There is deliberately NO `canSelfUpdate` and no apply action: a wrapper
|
|
22067
|
+
* update is an ANNOUNCEMENT. The notification body carries the exact command
|
|
22068
|
+
* for a `docker` shell and says the app restarts into the new build for
|
|
22069
|
+
* `electron`, and that sentence is chosen from `kind` alone — a boolean
|
|
22070
|
+
* nothing reads is the defect this repo keeps paying for.
|
|
22071
|
+
*/
|
|
22072
|
+
var WrapperIdentitySchema = object({
|
|
22073
|
+
kind: _enum([
|
|
22074
|
+
"docker",
|
|
22075
|
+
"electron",
|
|
22076
|
+
"native",
|
|
22077
|
+
"contradictory",
|
|
22078
|
+
"unknown"
|
|
22079
|
+
]),
|
|
22080
|
+
/** Every probe that ran, in a stable order. Never empty. */
|
|
22081
|
+
evidence: array(object({
|
|
22082
|
+
/** Which probe this row reports. */
|
|
22083
|
+
fact: _enum([
|
|
22084
|
+
"dockerenv-file",
|
|
22085
|
+
"proc-1-cgroup",
|
|
22086
|
+
"platform",
|
|
22087
|
+
"electron-app-version-env"
|
|
22088
|
+
]),
|
|
22089
|
+
/**
|
|
22090
|
+
* `observed` — this process read it itself. `declared` — the shell told the
|
|
22091
|
+
* process and nothing here can check it. Only the Electron app version is
|
|
22092
|
+
* ever `declared`, and only because a child cannot see its parent.
|
|
22093
|
+
*/
|
|
22094
|
+
mode: _enum(["observed", "declared"]),
|
|
22095
|
+
/** Did the probe support the fact it names? A `false` row is still evidence. */
|
|
22096
|
+
holds: boolean(),
|
|
22097
|
+
/** What was actually read, verbatim enough for an operator to argue with. */
|
|
22098
|
+
detail: string()
|
|
22099
|
+
})),
|
|
22100
|
+
/**
|
|
22101
|
+
* The version of the SHELL, when the shell has one it can state: the
|
|
22102
|
+
* Electron app version it declared, or the baked seed closure that
|
|
22103
|
+
* fingerprints a container / app bundle. `null` for `contradictory` and
|
|
22104
|
+
* `unknown` — which version belongs to the shell is precisely what is not
|
|
22105
|
+
* known there.
|
|
22106
|
+
*/
|
|
22107
|
+
currentVersion: string().nullable()
|
|
22108
|
+
});
|
|
22051
22109
|
var ServerRollbackInfoSchema = object({
|
|
22052
22110
|
/** The version that failed (or was manually rolled back). */
|
|
22053
22111
|
fromVersion: string(),
|
|
@@ -22089,7 +22147,13 @@ var ServerPackageStatusSchema = object({
|
|
|
22089
22147
|
* Seed-vs-contract verdict (see {@link ImageContractSchema}). Optional for
|
|
22090
22148
|
* version skew: an older provider's payload simply omits it.
|
|
22091
22149
|
*/
|
|
22092
|
-
imageContract: ImageContractSchema.optional()
|
|
22150
|
+
imageContract: ImageContractSchema.optional(),
|
|
22151
|
+
/**
|
|
22152
|
+
* What this node runs INSIDE (see {@link WrapperIdentitySchema}). Optional
|
|
22153
|
+
* for version skew: an older provider's payload simply omits it, and an
|
|
22154
|
+
* absent wrapper is unknown — never `native`.
|
|
22155
|
+
*/
|
|
22156
|
+
wrapper: WrapperIdentitySchema.optional()
|
|
22093
22157
|
});
|
|
22094
22158
|
var ServerUpdateCheckResultSchema = object({
|
|
22095
22159
|
packageName: string(),
|
|
@@ -30074,7 +30138,23 @@ var RecordingRangeSchema = object({
|
|
|
30074
30138
|
});
|
|
30075
30139
|
var RecordingAvailabilitySchema = object({
|
|
30076
30140
|
deviceId: number(),
|
|
30077
|
-
ranges: array(RecordingRangeSchema)
|
|
30141
|
+
ranges: array(RecordingRangeSchema),
|
|
30142
|
+
/**
|
|
30143
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
30144
|
+
* describes (D433).
|
|
30145
|
+
*
|
|
30146
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
30147
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
30148
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
30149
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
30150
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
30151
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
30152
|
+
* UI could not see it.
|
|
30153
|
+
*
|
|
30154
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
30155
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
30156
|
+
*/
|
|
30157
|
+
profilesWithFootage: array(string())
|
|
30078
30158
|
});
|
|
30079
30159
|
var RecordingDaysSchema = object({
|
|
30080
30160
|
deviceId: number(),
|
|
@@ -30100,7 +30180,11 @@ var RecordingDaysSchema = object({
|
|
|
30100
30180
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
30101
30181
|
deviceId: number(),
|
|
30102
30182
|
read: _enum(["read", "unreadable"]),
|
|
30103
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
30183
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
30184
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
30185
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
30186
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
30187
|
+
profilesWithFootage: array(string()).readonly()
|
|
30104
30188
|
});
|
|
30105
30189
|
/**
|
|
30106
30190
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -30390,7 +30474,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
30390
30474
|
method(object({
|
|
30391
30475
|
deviceId: number(),
|
|
30392
30476
|
fromMs: number(),
|
|
30393
|
-
toMs: number()
|
|
30477
|
+
toMs: number(),
|
|
30478
|
+
/**
|
|
30479
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
30480
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
30481
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
30482
|
+
* for.
|
|
30483
|
+
*/
|
|
30484
|
+
profile: string().optional()
|
|
30394
30485
|
}), RecordingAvailabilitySchema, {
|
|
30395
30486
|
kind: "query",
|
|
30396
30487
|
auth: "protected"
|