@camstack/addon-provider-rtsp 1.2.141 → 1.2.142
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 +116 -67
- package/dist/addon.mjs +116 -67
- package/i18n/en.json +2 -4
- package/i18n/it.json +2 -4
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
//#endregion
|
|
24
24
|
let node_net = require("node:net");
|
|
25
25
|
node_net = __toESM(node_net);
|
|
26
|
-
//#region ../types/dist/event-category-
|
|
26
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
27
27
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
28
28
|
EventCategory["SystemBoot"] = "system.boot";
|
|
29
29
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -340,6 +340,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
340
340
|
*/
|
|
341
341
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
342
342
|
/**
|
|
343
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
344
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
345
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
346
|
+
* {@link PipelineMotionCalm}.
|
|
347
|
+
*/
|
|
348
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
349
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
350
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
351
|
+
/**
|
|
343
352
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
344
353
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
345
354
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5446,7 +5455,7 @@ var ZodIssueCode = {
|
|
|
5446
5455
|
var ZodFirstPartyTypeKind;
|
|
5447
5456
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5448
5457
|
//#endregion
|
|
5449
|
-
//#region ../types/dist/sleep-
|
|
5458
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5450
5459
|
/**
|
|
5451
5460
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5452
5461
|
* window to float samples (D455).
|
|
@@ -7975,7 +7984,7 @@ var EntryDescriptorSchema = object({
|
|
|
7975
7984
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7976
7985
|
fields: record(string(), unknown())
|
|
7977
7986
|
}).strict();
|
|
7978
|
-
/** What crosses the wire
|
|
7987
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7979
7988
|
var RecordKindDeclarationSchema = object({
|
|
7980
7989
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7981
7990
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7994,14 +8003,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7994
8003
|
secretPaths: array(string().min(1)).default([]),
|
|
7995
8004
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7996
8005
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7997
|
-
/**
|
|
7998
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7999
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8000
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8001
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8002
|
-
* removal still sends it. Never set it.
|
|
8003
|
-
*/
|
|
8004
|
-
adoptsFrom: string().min(1).optional(),
|
|
8005
8006
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8006
8007
|
transactFamily: string().min(1).optional(),
|
|
8007
8008
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12800,17 +12801,6 @@ object({
|
|
|
12800
12801
|
createdAt: number(),
|
|
12801
12802
|
updatedAt: number()
|
|
12802
12803
|
});
|
|
12803
|
-
object({
|
|
12804
|
-
id: string(),
|
|
12805
|
-
label: string(),
|
|
12806
|
-
isAdmin: boolean().default(false),
|
|
12807
|
-
allowedProviders: AllowedProviderSchema,
|
|
12808
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12809
|
-
tokenHash: string(),
|
|
12810
|
-
tokenPrefix: string(),
|
|
12811
|
-
createdAt: number(),
|
|
12812
|
-
lastUsedAt: number().optional()
|
|
12813
|
-
});
|
|
12814
12804
|
object({
|
|
12815
12805
|
id: string(),
|
|
12816
12806
|
userId: string(),
|
|
@@ -16792,16 +16782,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16792
16782
|
var DeclareKindResultSchema = object({
|
|
16793
16783
|
kindId: number().int(),
|
|
16794
16784
|
state: RecordKindStateSchema,
|
|
16795
|
-
createdIndexes: array(string())
|
|
16796
|
-
/**
|
|
16797
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16798
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16799
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16800
|
-
*/
|
|
16801
|
-
adoptionPending: _null()
|
|
16785
|
+
createdIndexes: array(string())
|
|
16802
16786
|
});
|
|
16803
16787
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16804
16788
|
var SecretRefsList = array(string());
|
|
16789
|
+
/**
|
|
16790
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16791
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16792
|
+
*/
|
|
16793
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16794
|
+
object({
|
|
16795
|
+
op: literal("put"),
|
|
16796
|
+
kind: RecordKindNameSchema,
|
|
16797
|
+
record: RecordInputSchema,
|
|
16798
|
+
ifRev: number().int().min(0).optional()
|
|
16799
|
+
}),
|
|
16800
|
+
object({
|
|
16801
|
+
op: literal("patch"),
|
|
16802
|
+
kind: RecordKindNameSchema,
|
|
16803
|
+
id: RecordIdSchema,
|
|
16804
|
+
data: RecordBodySchema,
|
|
16805
|
+
at: number().int().nullable().optional(),
|
|
16806
|
+
expiresAt: number().int().nullable().optional(),
|
|
16807
|
+
ifRev: number().int().min(1).optional()
|
|
16808
|
+
}),
|
|
16809
|
+
object({
|
|
16810
|
+
op: literal("delete"),
|
|
16811
|
+
kind: RecordKindNameSchema,
|
|
16812
|
+
id: RecordIdSchema
|
|
16813
|
+
})
|
|
16814
|
+
]);
|
|
16805
16815
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16806
16816
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16807
16817
|
kind: "mutation",
|
|
@@ -16908,6 +16918,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16908
16918
|
}), {
|
|
16909
16919
|
kind: "mutation",
|
|
16910
16920
|
auth: "admin"
|
|
16921
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16922
|
+
results: array(object({
|
|
16923
|
+
rev: number().int().nullable(),
|
|
16924
|
+
deleted: boolean()
|
|
16925
|
+
})),
|
|
16926
|
+
releasedRefs: SecretRefsList,
|
|
16927
|
+
secretRefs: SecretRefsList
|
|
16928
|
+
}), {
|
|
16929
|
+
kind: "mutation",
|
|
16930
|
+
auth: "admin"
|
|
16911
16931
|
}), method(object({
|
|
16912
16932
|
deviceId: number().int(),
|
|
16913
16933
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42502,9 +42522,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42502
42522
|
"node-updating",
|
|
42503
42523
|
"node-inference-unavailable",
|
|
42504
42524
|
"detection-blind",
|
|
42525
|
+
"motion-noisy",
|
|
42526
|
+
"motion-calm",
|
|
42505
42527
|
"recording-stalled",
|
|
42506
42528
|
"recording-healthy",
|
|
42507
42529
|
"recording-degraded",
|
|
42530
|
+
"device-attention-required",
|
|
42531
|
+
"device-attention-resolved",
|
|
42508
42532
|
"storage-location-low",
|
|
42509
42533
|
"storage-location-critical",
|
|
42510
42534
|
"storage-location-ok",
|
|
@@ -55940,6 +55964,16 @@ var DishwasherStatusSchema = object({
|
|
|
55940
55964
|
powerState: string().nullable(),
|
|
55941
55965
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55942
55966
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55967
|
+
/**
|
|
55968
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55969
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55970
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55971
|
+
*/
|
|
55972
|
+
filterCleaningDue: boolean().nullable(),
|
|
55973
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55974
|
+
machineCareDue: boolean().nullable(),
|
|
55975
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55976
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55943
55977
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55944
55978
|
halfLoad: boolean().nullable(),
|
|
55945
55979
|
hygienePlus: boolean().nullable(),
|
|
@@ -64590,16 +64624,6 @@ var UpdateUserInputSchema = object({
|
|
|
64590
64624
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64591
64625
|
scopes: array(TokenScopeSchema).optional()
|
|
64592
64626
|
});
|
|
64593
|
-
var ApiKeySummarySchema = object({
|
|
64594
|
-
id: string(),
|
|
64595
|
-
label: string(),
|
|
64596
|
-
isAdmin: boolean().default(false),
|
|
64597
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64598
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64599
|
-
tokenPrefix: string(),
|
|
64600
|
-
createdAt: number(),
|
|
64601
|
-
lastUsedAt: number().optional()
|
|
64602
|
-
});
|
|
64603
64627
|
var OauthSessionSummarySchema = object({
|
|
64604
64628
|
id: string(),
|
|
64605
64629
|
userId: string(),
|
|
@@ -64621,8 +64645,7 @@ var TotpStatusSchema = object({
|
|
|
64621
64645
|
confirmedAt: number().nullable()
|
|
64622
64646
|
});
|
|
64623
64647
|
/**
|
|
64624
|
-
* user-management — singleton capability for user accounts
|
|
64625
|
-
* legacy API-key rows.
|
|
64648
|
+
* user-management — singleton capability for user accounts.
|
|
64626
64649
|
*
|
|
64627
64650
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64628
64651
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64678,10 +64701,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64678
64701
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64679
64702
|
kind: "mutation",
|
|
64680
64703
|
access: "view"
|
|
64681
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64682
|
-
kind: "mutation",
|
|
64683
|
-
auth: "admin",
|
|
64684
|
-
access: "delete"
|
|
64685
64704
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64686
64705
|
kind: "mutation",
|
|
64687
64706
|
auth: "admin",
|
|
@@ -74137,6 +74156,12 @@ Object.freeze({
|
|
|
74137
74156
|
addonId: null,
|
|
74138
74157
|
access: "view"
|
|
74139
74158
|
},
|
|
74159
|
+
"records.transact": {
|
|
74160
|
+
capName: "records",
|
|
74161
|
+
capScope: "system",
|
|
74162
|
+
addonId: null,
|
|
74163
|
+
access: "create"
|
|
74164
|
+
},
|
|
74140
74165
|
"sceneMonitor.captureReference": {
|
|
74141
74166
|
capName: "scene-monitor",
|
|
74142
74167
|
capScope: "device",
|
|
@@ -75469,12 +75494,6 @@ Object.freeze({
|
|
|
75469
75494
|
addonId: null,
|
|
75470
75495
|
access: "view"
|
|
75471
75496
|
},
|
|
75472
|
-
"userManagement.listApiKeys": {
|
|
75473
|
-
capName: "user-management",
|
|
75474
|
-
capScope: "system",
|
|
75475
|
-
addonId: null,
|
|
75476
|
-
access: "view"
|
|
75477
|
-
},
|
|
75478
75497
|
"userManagement.listExternalIdentities": {
|
|
75479
75498
|
capName: "user-management",
|
|
75480
75499
|
capScope: "system",
|
|
@@ -75529,12 +75548,6 @@ Object.freeze({
|
|
|
75529
75548
|
addonId: null,
|
|
75530
75549
|
access: "create"
|
|
75531
75550
|
},
|
|
75532
|
-
"userManagement.revokeApiKey": {
|
|
75533
|
-
capName: "user-management",
|
|
75534
|
-
capScope: "system",
|
|
75535
|
-
addonId: null,
|
|
75536
|
-
access: "delete"
|
|
75537
|
-
},
|
|
75538
75551
|
"userManagement.revokeOauthSession": {
|
|
75539
75552
|
capName: "user-management",
|
|
75540
75553
|
capScope: "system",
|
|
@@ -78965,9 +78978,13 @@ new Map(Object.entries({
|
|
|
78965
78978
|
"stream-online": "device-events",
|
|
78966
78979
|
"stream-offline": "device-events",
|
|
78967
78980
|
"detection-blind": "device-events",
|
|
78981
|
+
"motion-noisy": "device-events",
|
|
78982
|
+
"motion-calm": "device-events",
|
|
78968
78983
|
"recording-stalled": "device-events",
|
|
78969
78984
|
"recording-healthy": "device-events",
|
|
78970
78985
|
"recording-degraded": "device-events",
|
|
78986
|
+
"device-attention-required": "device-events",
|
|
78987
|
+
"device-attention-resolved": "device-events",
|
|
78971
78988
|
"node-online": "system",
|
|
78972
78989
|
"node-offline": "system",
|
|
78973
78990
|
"node-restarting": "system",
|
|
@@ -79050,6 +79067,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79050
79067
|
label: "Detecting nothing",
|
|
79051
79068
|
kinds: ["detection-blind"]
|
|
79052
79069
|
},
|
|
79070
|
+
{
|
|
79071
|
+
id: "motion-noise",
|
|
79072
|
+
family: "device-events",
|
|
79073
|
+
label: "Motion without a subject",
|
|
79074
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79075
|
+
},
|
|
79053
79076
|
{
|
|
79054
79077
|
id: "recording",
|
|
79055
79078
|
family: "device-events",
|
|
@@ -79060,6 +79083,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79060
79083
|
"recording-degraded"
|
|
79061
79084
|
]
|
|
79062
79085
|
},
|
|
79086
|
+
{
|
|
79087
|
+
id: "device-attention",
|
|
79088
|
+
family: "device-events",
|
|
79089
|
+
label: "Needs attention",
|
|
79090
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79091
|
+
},
|
|
79063
79092
|
{
|
|
79064
79093
|
id: "nodes",
|
|
79065
79094
|
family: "system",
|
|
@@ -79199,6 +79228,7 @@ var ALERT_EPISODE = [
|
|
|
79199
79228
|
"alert-error",
|
|
79200
79229
|
"alert-critical-resolved"
|
|
79201
79230
|
];
|
|
79231
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79202
79232
|
var UPDATES = [
|
|
79203
79233
|
"addon-update-available",
|
|
79204
79234
|
"server-update-available",
|
|
@@ -79228,9 +79258,12 @@ var DEVICE_EVENTS = [
|
|
|
79228
79258
|
"stream-online",
|
|
79229
79259
|
"stream-offline",
|
|
79230
79260
|
"detection-blind",
|
|
79261
|
+
"motion-noisy",
|
|
79262
|
+
"motion-calm",
|
|
79231
79263
|
"recording-stalled",
|
|
79232
79264
|
"recording-healthy",
|
|
79233
79265
|
"recording-degraded",
|
|
79266
|
+
...DEVICE_ATTENTION,
|
|
79234
79267
|
...ALARM
|
|
79235
79268
|
];
|
|
79236
79269
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79398,7 +79431,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79398
79431
|
[...RULE_TEXT],
|
|
79399
79432
|
[...RULE_TEXT],
|
|
79400
79433
|
[...RULE_TEXT],
|
|
79401
|
-
|
|
79434
|
+
[...RULE_TEXT],
|
|
79435
|
+
[...RULE_TEXT],
|
|
79436
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79402
79437
|
[...RULE_TEXT],
|
|
79403
79438
|
[...RULE_TEXT],
|
|
79404
79439
|
[...RULE_TEXT],
|
|
@@ -79420,11 +79455,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79420
79455
|
[...RULE_TEXT],
|
|
79421
79456
|
[...RULE_TEXT],
|
|
79422
79457
|
[...RULE_TEXT],
|
|
79458
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79423
79459
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79460
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79424
79461
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79425
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79426
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79427
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79462
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79428
79463
|
[...RULE_TEXT],
|
|
79429
79464
|
[...RULE_TEXT],
|
|
79430
79465
|
[...RULE_TEXT],
|
|
@@ -79500,6 +79535,15 @@ new Map([
|
|
|
79500
79535
|
snapshotLabel: "Tanks low or full now",
|
|
79501
79536
|
snapshotSection: "tanks"
|
|
79502
79537
|
},
|
|
79538
|
+
{
|
|
79539
|
+
id: "motion-noise",
|
|
79540
|
+
family: "device-events",
|
|
79541
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79542
|
+
bad: ["motion-noisy"],
|
|
79543
|
+
recovery: ["motion-calm"],
|
|
79544
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79545
|
+
snapshotSection: null
|
|
79546
|
+
},
|
|
79503
79547
|
{
|
|
79504
79548
|
id: "recording-health",
|
|
79505
79549
|
family: "device-events",
|
|
@@ -79509,6 +79553,15 @@ new Map([
|
|
|
79509
79553
|
snapshotLabel: "Recordings stalled now",
|
|
79510
79554
|
snapshotSection: null
|
|
79511
79555
|
},
|
|
79556
|
+
{
|
|
79557
|
+
id: "device-attention",
|
|
79558
|
+
family: "device-events",
|
|
79559
|
+
label: "Device needs attention (raised / resolved)",
|
|
79560
|
+
bad: ["device-attention-required"],
|
|
79561
|
+
recovery: ["device-attention-resolved"],
|
|
79562
|
+
snapshotLabel: "Devices needing attention now",
|
|
79563
|
+
snapshotSection: null
|
|
79564
|
+
},
|
|
79512
79565
|
{
|
|
79513
79566
|
id: "node-connectivity",
|
|
79514
79567
|
family: "system",
|
|
@@ -80328,7 +80381,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80328
80381
|
id: "streams",
|
|
80329
80382
|
title: "RTSP Streams",
|
|
80330
80383
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80331
|
-
description: "
|
|
80384
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80332
80385
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80333
80386
|
columns: 1,
|
|
80334
80387
|
fields: [{
|
|
@@ -80358,8 +80411,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80358
80411
|
key: "snapshotUrl",
|
|
80359
80412
|
label: "Snapshot URL",
|
|
80360
80413
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80361
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80362
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80363
80414
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80364
80415
|
inputType: "url"
|
|
80365
80416
|
}]
|
|
@@ -80613,7 +80664,7 @@ function buildCreationFormSchema() {
|
|
|
80613
80664
|
id: "streams",
|
|
80614
80665
|
title: "RTSP Streams",
|
|
80615
80666
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80616
|
-
description: "
|
|
80667
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80617
80668
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80618
80669
|
columns: 1,
|
|
80619
80670
|
fields: [{
|
|
@@ -80643,8 +80694,6 @@ function buildCreationFormSchema() {
|
|
|
80643
80694
|
key: "snapshotUrl",
|
|
80644
80695
|
label: "Snapshot URL",
|
|
80645
80696
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80646
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80647
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80648
80697
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80649
80698
|
inputType: "url"
|
|
80650
80699
|
}]
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -316,6 +316,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
316
316
|
*/
|
|
317
317
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
318
318
|
/**
|
|
319
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
320
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
321
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
322
|
+
* {@link PipelineMotionCalm}.
|
|
323
|
+
*/
|
|
324
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
325
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
|
+
/**
|
|
319
328
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
320
329
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
321
330
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5422,7 +5431,7 @@ var ZodIssueCode = {
|
|
|
5422
5431
|
var ZodFirstPartyTypeKind;
|
|
5423
5432
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5424
5433
|
//#endregion
|
|
5425
|
-
//#region ../types/dist/sleep-
|
|
5434
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5426
5435
|
/**
|
|
5427
5436
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5428
5437
|
* window to float samples (D455).
|
|
@@ -7951,7 +7960,7 @@ var EntryDescriptorSchema = object({
|
|
|
7951
7960
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7952
7961
|
fields: record(string(), unknown())
|
|
7953
7962
|
}).strict();
|
|
7954
|
-
/** What crosses the wire
|
|
7963
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7955
7964
|
var RecordKindDeclarationSchema = object({
|
|
7956
7965
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7957
7966
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7970,14 +7979,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7970
7979
|
secretPaths: array(string().min(1)).default([]),
|
|
7971
7980
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7972
7981
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7973
|
-
/**
|
|
7974
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7975
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7976
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7977
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7978
|
-
* removal still sends it. Never set it.
|
|
7979
|
-
*/
|
|
7980
|
-
adoptsFrom: string().min(1).optional(),
|
|
7981
7982
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7982
7983
|
transactFamily: string().min(1).optional(),
|
|
7983
7984
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12776,17 +12777,6 @@ object({
|
|
|
12776
12777
|
createdAt: number(),
|
|
12777
12778
|
updatedAt: number()
|
|
12778
12779
|
});
|
|
12779
|
-
object({
|
|
12780
|
-
id: string(),
|
|
12781
|
-
label: string(),
|
|
12782
|
-
isAdmin: boolean().default(false),
|
|
12783
|
-
allowedProviders: AllowedProviderSchema,
|
|
12784
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12785
|
-
tokenHash: string(),
|
|
12786
|
-
tokenPrefix: string(),
|
|
12787
|
-
createdAt: number(),
|
|
12788
|
-
lastUsedAt: number().optional()
|
|
12789
|
-
});
|
|
12790
12780
|
object({
|
|
12791
12781
|
id: string(),
|
|
12792
12782
|
userId: string(),
|
|
@@ -16768,16 +16758,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16768
16758
|
var DeclareKindResultSchema = object({
|
|
16769
16759
|
kindId: number().int(),
|
|
16770
16760
|
state: RecordKindStateSchema,
|
|
16771
|
-
createdIndexes: array(string())
|
|
16772
|
-
/**
|
|
16773
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16774
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16775
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16776
|
-
*/
|
|
16777
|
-
adoptionPending: _null()
|
|
16761
|
+
createdIndexes: array(string())
|
|
16778
16762
|
});
|
|
16779
16763
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16780
16764
|
var SecretRefsList = array(string());
|
|
16765
|
+
/**
|
|
16766
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16767
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16768
|
+
*/
|
|
16769
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16770
|
+
object({
|
|
16771
|
+
op: literal("put"),
|
|
16772
|
+
kind: RecordKindNameSchema,
|
|
16773
|
+
record: RecordInputSchema,
|
|
16774
|
+
ifRev: number().int().min(0).optional()
|
|
16775
|
+
}),
|
|
16776
|
+
object({
|
|
16777
|
+
op: literal("patch"),
|
|
16778
|
+
kind: RecordKindNameSchema,
|
|
16779
|
+
id: RecordIdSchema,
|
|
16780
|
+
data: RecordBodySchema,
|
|
16781
|
+
at: number().int().nullable().optional(),
|
|
16782
|
+
expiresAt: number().int().nullable().optional(),
|
|
16783
|
+
ifRev: number().int().min(1).optional()
|
|
16784
|
+
}),
|
|
16785
|
+
object({
|
|
16786
|
+
op: literal("delete"),
|
|
16787
|
+
kind: RecordKindNameSchema,
|
|
16788
|
+
id: RecordIdSchema
|
|
16789
|
+
})
|
|
16790
|
+
]);
|
|
16781
16791
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16782
16792
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16783
16793
|
kind: "mutation",
|
|
@@ -16884,6 +16894,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16884
16894
|
}), {
|
|
16885
16895
|
kind: "mutation",
|
|
16886
16896
|
auth: "admin"
|
|
16897
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16898
|
+
results: array(object({
|
|
16899
|
+
rev: number().int().nullable(),
|
|
16900
|
+
deleted: boolean()
|
|
16901
|
+
})),
|
|
16902
|
+
releasedRefs: SecretRefsList,
|
|
16903
|
+
secretRefs: SecretRefsList
|
|
16904
|
+
}), {
|
|
16905
|
+
kind: "mutation",
|
|
16906
|
+
auth: "admin"
|
|
16887
16907
|
}), method(object({
|
|
16888
16908
|
deviceId: number().int(),
|
|
16889
16909
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42478,9 +42498,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42478
42498
|
"node-updating",
|
|
42479
42499
|
"node-inference-unavailable",
|
|
42480
42500
|
"detection-blind",
|
|
42501
|
+
"motion-noisy",
|
|
42502
|
+
"motion-calm",
|
|
42481
42503
|
"recording-stalled",
|
|
42482
42504
|
"recording-healthy",
|
|
42483
42505
|
"recording-degraded",
|
|
42506
|
+
"device-attention-required",
|
|
42507
|
+
"device-attention-resolved",
|
|
42484
42508
|
"storage-location-low",
|
|
42485
42509
|
"storage-location-critical",
|
|
42486
42510
|
"storage-location-ok",
|
|
@@ -55916,6 +55940,16 @@ var DishwasherStatusSchema = object({
|
|
|
55916
55940
|
powerState: string().nullable(),
|
|
55917
55941
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55918
55942
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55943
|
+
/**
|
|
55944
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55945
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55946
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55947
|
+
*/
|
|
55948
|
+
filterCleaningDue: boolean().nullable(),
|
|
55949
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55950
|
+
machineCareDue: boolean().nullable(),
|
|
55951
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55952
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55919
55953
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55920
55954
|
halfLoad: boolean().nullable(),
|
|
55921
55955
|
hygienePlus: boolean().nullable(),
|
|
@@ -64566,16 +64600,6 @@ var UpdateUserInputSchema = object({
|
|
|
64566
64600
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64567
64601
|
scopes: array(TokenScopeSchema).optional()
|
|
64568
64602
|
});
|
|
64569
|
-
var ApiKeySummarySchema = object({
|
|
64570
|
-
id: string(),
|
|
64571
|
-
label: string(),
|
|
64572
|
-
isAdmin: boolean().default(false),
|
|
64573
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64574
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64575
|
-
tokenPrefix: string(),
|
|
64576
|
-
createdAt: number(),
|
|
64577
|
-
lastUsedAt: number().optional()
|
|
64578
|
-
});
|
|
64579
64603
|
var OauthSessionSummarySchema = object({
|
|
64580
64604
|
id: string(),
|
|
64581
64605
|
userId: string(),
|
|
@@ -64597,8 +64621,7 @@ var TotpStatusSchema = object({
|
|
|
64597
64621
|
confirmedAt: number().nullable()
|
|
64598
64622
|
});
|
|
64599
64623
|
/**
|
|
64600
|
-
* user-management — singleton capability for user accounts
|
|
64601
|
-
* legacy API-key rows.
|
|
64624
|
+
* user-management — singleton capability for user accounts.
|
|
64602
64625
|
*
|
|
64603
64626
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64604
64627
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64654,10 +64677,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64654
64677
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64655
64678
|
kind: "mutation",
|
|
64656
64679
|
access: "view"
|
|
64657
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64658
|
-
kind: "mutation",
|
|
64659
|
-
auth: "admin",
|
|
64660
|
-
access: "delete"
|
|
64661
64680
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64662
64681
|
kind: "mutation",
|
|
64663
64682
|
auth: "admin",
|
|
@@ -74113,6 +74132,12 @@ Object.freeze({
|
|
|
74113
74132
|
addonId: null,
|
|
74114
74133
|
access: "view"
|
|
74115
74134
|
},
|
|
74135
|
+
"records.transact": {
|
|
74136
|
+
capName: "records",
|
|
74137
|
+
capScope: "system",
|
|
74138
|
+
addonId: null,
|
|
74139
|
+
access: "create"
|
|
74140
|
+
},
|
|
74116
74141
|
"sceneMonitor.captureReference": {
|
|
74117
74142
|
capName: "scene-monitor",
|
|
74118
74143
|
capScope: "device",
|
|
@@ -75445,12 +75470,6 @@ Object.freeze({
|
|
|
75445
75470
|
addonId: null,
|
|
75446
75471
|
access: "view"
|
|
75447
75472
|
},
|
|
75448
|
-
"userManagement.listApiKeys": {
|
|
75449
|
-
capName: "user-management",
|
|
75450
|
-
capScope: "system",
|
|
75451
|
-
addonId: null,
|
|
75452
|
-
access: "view"
|
|
75453
|
-
},
|
|
75454
75473
|
"userManagement.listExternalIdentities": {
|
|
75455
75474
|
capName: "user-management",
|
|
75456
75475
|
capScope: "system",
|
|
@@ -75505,12 +75524,6 @@ Object.freeze({
|
|
|
75505
75524
|
addonId: null,
|
|
75506
75525
|
access: "create"
|
|
75507
75526
|
},
|
|
75508
|
-
"userManagement.revokeApiKey": {
|
|
75509
|
-
capName: "user-management",
|
|
75510
|
-
capScope: "system",
|
|
75511
|
-
addonId: null,
|
|
75512
|
-
access: "delete"
|
|
75513
|
-
},
|
|
75514
75527
|
"userManagement.revokeOauthSession": {
|
|
75515
75528
|
capName: "user-management",
|
|
75516
75529
|
capScope: "system",
|
|
@@ -78941,9 +78954,13 @@ new Map(Object.entries({
|
|
|
78941
78954
|
"stream-online": "device-events",
|
|
78942
78955
|
"stream-offline": "device-events",
|
|
78943
78956
|
"detection-blind": "device-events",
|
|
78957
|
+
"motion-noisy": "device-events",
|
|
78958
|
+
"motion-calm": "device-events",
|
|
78944
78959
|
"recording-stalled": "device-events",
|
|
78945
78960
|
"recording-healthy": "device-events",
|
|
78946
78961
|
"recording-degraded": "device-events",
|
|
78962
|
+
"device-attention-required": "device-events",
|
|
78963
|
+
"device-attention-resolved": "device-events",
|
|
78947
78964
|
"node-online": "system",
|
|
78948
78965
|
"node-offline": "system",
|
|
78949
78966
|
"node-restarting": "system",
|
|
@@ -79026,6 +79043,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79026
79043
|
label: "Detecting nothing",
|
|
79027
79044
|
kinds: ["detection-blind"]
|
|
79028
79045
|
},
|
|
79046
|
+
{
|
|
79047
|
+
id: "motion-noise",
|
|
79048
|
+
family: "device-events",
|
|
79049
|
+
label: "Motion without a subject",
|
|
79050
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79051
|
+
},
|
|
79029
79052
|
{
|
|
79030
79053
|
id: "recording",
|
|
79031
79054
|
family: "device-events",
|
|
@@ -79036,6 +79059,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79036
79059
|
"recording-degraded"
|
|
79037
79060
|
]
|
|
79038
79061
|
},
|
|
79062
|
+
{
|
|
79063
|
+
id: "device-attention",
|
|
79064
|
+
family: "device-events",
|
|
79065
|
+
label: "Needs attention",
|
|
79066
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79067
|
+
},
|
|
79039
79068
|
{
|
|
79040
79069
|
id: "nodes",
|
|
79041
79070
|
family: "system",
|
|
@@ -79175,6 +79204,7 @@ var ALERT_EPISODE = [
|
|
|
79175
79204
|
"alert-error",
|
|
79176
79205
|
"alert-critical-resolved"
|
|
79177
79206
|
];
|
|
79207
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79178
79208
|
var UPDATES = [
|
|
79179
79209
|
"addon-update-available",
|
|
79180
79210
|
"server-update-available",
|
|
@@ -79204,9 +79234,12 @@ var DEVICE_EVENTS = [
|
|
|
79204
79234
|
"stream-online",
|
|
79205
79235
|
"stream-offline",
|
|
79206
79236
|
"detection-blind",
|
|
79237
|
+
"motion-noisy",
|
|
79238
|
+
"motion-calm",
|
|
79207
79239
|
"recording-stalled",
|
|
79208
79240
|
"recording-healthy",
|
|
79209
79241
|
"recording-degraded",
|
|
79242
|
+
...DEVICE_ATTENTION,
|
|
79210
79243
|
...ALARM
|
|
79211
79244
|
];
|
|
79212
79245
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79374,7 +79407,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79374
79407
|
[...RULE_TEXT],
|
|
79375
79408
|
[...RULE_TEXT],
|
|
79376
79409
|
[...RULE_TEXT],
|
|
79377
|
-
|
|
79410
|
+
[...RULE_TEXT],
|
|
79411
|
+
[...RULE_TEXT],
|
|
79412
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79378
79413
|
[...RULE_TEXT],
|
|
79379
79414
|
[...RULE_TEXT],
|
|
79380
79415
|
[...RULE_TEXT],
|
|
@@ -79396,11 +79431,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79396
79431
|
[...RULE_TEXT],
|
|
79397
79432
|
[...RULE_TEXT],
|
|
79398
79433
|
[...RULE_TEXT],
|
|
79434
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79399
79435
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79436
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79400
79437
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79401
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79402
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79403
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79438
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79404
79439
|
[...RULE_TEXT],
|
|
79405
79440
|
[...RULE_TEXT],
|
|
79406
79441
|
[...RULE_TEXT],
|
|
@@ -79476,6 +79511,15 @@ new Map([
|
|
|
79476
79511
|
snapshotLabel: "Tanks low or full now",
|
|
79477
79512
|
snapshotSection: "tanks"
|
|
79478
79513
|
},
|
|
79514
|
+
{
|
|
79515
|
+
id: "motion-noise",
|
|
79516
|
+
family: "device-events",
|
|
79517
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79518
|
+
bad: ["motion-noisy"],
|
|
79519
|
+
recovery: ["motion-calm"],
|
|
79520
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79521
|
+
snapshotSection: null
|
|
79522
|
+
},
|
|
79479
79523
|
{
|
|
79480
79524
|
id: "recording-health",
|
|
79481
79525
|
family: "device-events",
|
|
@@ -79485,6 +79529,15 @@ new Map([
|
|
|
79485
79529
|
snapshotLabel: "Recordings stalled now",
|
|
79486
79530
|
snapshotSection: null
|
|
79487
79531
|
},
|
|
79532
|
+
{
|
|
79533
|
+
id: "device-attention",
|
|
79534
|
+
family: "device-events",
|
|
79535
|
+
label: "Device needs attention (raised / resolved)",
|
|
79536
|
+
bad: ["device-attention-required"],
|
|
79537
|
+
recovery: ["device-attention-resolved"],
|
|
79538
|
+
snapshotLabel: "Devices needing attention now",
|
|
79539
|
+
snapshotSection: null
|
|
79540
|
+
},
|
|
79488
79541
|
{
|
|
79489
79542
|
id: "node-connectivity",
|
|
79490
79543
|
family: "system",
|
|
@@ -80304,7 +80357,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80304
80357
|
id: "streams",
|
|
80305
80358
|
title: "RTSP Streams",
|
|
80306
80359
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80307
|
-
description: "
|
|
80360
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80308
80361
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80309
80362
|
columns: 1,
|
|
80310
80363
|
fields: [{
|
|
@@ -80334,8 +80387,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80334
80387
|
key: "snapshotUrl",
|
|
80335
80388
|
label: "Snapshot URL",
|
|
80336
80389
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80337
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80338
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80339
80390
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80340
80391
|
inputType: "url"
|
|
80341
80392
|
}]
|
|
@@ -80589,7 +80640,7 @@ function buildCreationFormSchema() {
|
|
|
80589
80640
|
id: "streams",
|
|
80590
80641
|
title: "RTSP Streams",
|
|
80591
80642
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80592
|
-
description: "
|
|
80643
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80593
80644
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80594
80645
|
columns: 1,
|
|
80595
80646
|
fields: [{
|
|
@@ -80619,8 +80670,6 @@ function buildCreationFormSchema() {
|
|
|
80619
80670
|
key: "snapshotUrl",
|
|
80620
80671
|
label: "Snapshot URL",
|
|
80621
80672
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80622
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80623
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80624
80673
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80625
80674
|
inputType: "url"
|
|
80626
80675
|
}]
|
package/i18n/en.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Camera",
|
|
3
3
|
"creation.s_identity.name.label": "Name",
|
|
4
4
|
"creation.s_streams.title": "RTSP Streams",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
6
6
|
"creation.s_streams.streams.label": "RTSP stream URL",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
10
9
|
"creation.s_credentials.title": "Credentials",
|
|
11
10
|
"creation.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
12
11
|
"creation.s_credentials.username.label": "Username",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "RTSP Streams",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
16
15
|
"schema.s_streams.streams.label": "RTSP stream URL",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
20
18
|
"schema.s_credentials.title": "Credentials",
|
|
21
19
|
"schema.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
22
20
|
"schema.s_credentials.username.label": "Username",
|
package/i18n/it.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Telecamera",
|
|
3
3
|
"creation.s_identity.name.label": "Nome",
|
|
4
4
|
"creation.s_streams.title": "Flussi RTSP",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
6
6
|
"creation.s_streams.streams.label": "URL del flusso RTSP",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
10
9
|
"creation.s_credentials.title": "Credenziali",
|
|
11
10
|
"creation.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
12
11
|
"creation.s_credentials.username.label": "Nome utente",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "Flussi RTSP",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
16
15
|
"schema.s_streams.streams.label": "URL del flusso RTSP",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
20
18
|
"schema.s_credentials.title": "Credenziali",
|
|
21
19
|
"schema.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
22
20
|
"schema.s_credentials.username.label": "Nome utente",
|