@camstack/addon-provider-rtsp 1.2.106 → 1.2.107
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 +133 -0
- package/dist/addon.mjs +133 -0
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -13572,6 +13572,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13572
13572
|
locationKey: string(),
|
|
13573
13573
|
icon: LocationIconIdSchema
|
|
13574
13574
|
});
|
|
13575
|
+
/**
|
|
13576
|
+
* One (location, description) assignment as it travels.
|
|
13577
|
+
*
|
|
13578
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13579
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13580
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13581
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13582
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13583
|
+
* off the location itself, on `locationIconKey`.
|
|
13584
|
+
*/
|
|
13585
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13586
|
+
locationKey: string(),
|
|
13587
|
+
description: string()
|
|
13588
|
+
});
|
|
13589
|
+
/**
|
|
13590
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13591
|
+
*
|
|
13592
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13593
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13594
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13595
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13596
|
+
*
|
|
13597
|
+
* ## Why not `zone`
|
|
13598
|
+
*
|
|
13599
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13600
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13601
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13602
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13603
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13604
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13605
|
+
*
|
|
13606
|
+
* ## The key
|
|
13607
|
+
*
|
|
13608
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13609
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13610
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13611
|
+
* silently-dropped location description.
|
|
13612
|
+
*
|
|
13613
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13614
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13615
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13616
|
+
*/
|
|
13617
|
+
/**
|
|
13618
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13619
|
+
* the locations inside it.
|
|
13620
|
+
*
|
|
13621
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13622
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13623
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13624
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13625
|
+
* it has not fetched yet.
|
|
13626
|
+
*
|
|
13627
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13628
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13629
|
+
*/
|
|
13630
|
+
var SiteZoneSchema = object({
|
|
13631
|
+
zoneKey: string(),
|
|
13632
|
+
label: string(),
|
|
13633
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13634
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13635
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13636
|
+
* the ones that most want grouping. */
|
|
13637
|
+
locationKeys: array(string())
|
|
13638
|
+
});
|
|
13575
13639
|
var ProviderStatusSchema = object({
|
|
13576
13640
|
connected: boolean(),
|
|
13577
13641
|
deviceCount: number(),
|
|
@@ -14170,6 +14234,33 @@ method(object({
|
|
|
14170
14234
|
}), _void(), {
|
|
14171
14235
|
kind: "mutation",
|
|
14172
14236
|
auth: "admin"
|
|
14237
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14238
|
+
location: string(),
|
|
14239
|
+
description: string().max(400).nullable()
|
|
14240
|
+
}), _void(), {
|
|
14241
|
+
kind: "mutation",
|
|
14242
|
+
auth: "admin"
|
|
14243
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14244
|
+
name: string(),
|
|
14245
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14246
|
+
}), _void(), {
|
|
14247
|
+
kind: "mutation",
|
|
14248
|
+
auth: "admin"
|
|
14249
|
+
}), method(object({ name: string() }), _void(), {
|
|
14250
|
+
kind: "mutation",
|
|
14251
|
+
auth: "admin"
|
|
14252
|
+
}), method(object({
|
|
14253
|
+
from: string(),
|
|
14254
|
+
to: string()
|
|
14255
|
+
}), _void(), {
|
|
14256
|
+
kind: "mutation",
|
|
14257
|
+
auth: "admin"
|
|
14258
|
+
}), method(object({
|
|
14259
|
+
location: string(),
|
|
14260
|
+
zone: string().nullable()
|
|
14261
|
+
}), _void(), {
|
|
14262
|
+
kind: "mutation",
|
|
14263
|
+
auth: "admin"
|
|
14173
14264
|
}), method(object({
|
|
14174
14265
|
deviceId: number(),
|
|
14175
14266
|
disabled: boolean()
|
|
@@ -37258,6 +37349,12 @@ Object.freeze({
|
|
|
37258
37349
|
addonId: null,
|
|
37259
37350
|
access: "view"
|
|
37260
37351
|
},
|
|
37352
|
+
"deviceManager.listLocationDescriptions": {
|
|
37353
|
+
capName: "device-manager",
|
|
37354
|
+
capScope: "system",
|
|
37355
|
+
addonId: null,
|
|
37356
|
+
access: "view"
|
|
37357
|
+
},
|
|
37261
37358
|
"deviceManager.listLocationIcons": {
|
|
37262
37359
|
capName: "device-manager",
|
|
37263
37360
|
capScope: "system",
|
|
@@ -37276,6 +37373,12 @@ Object.freeze({
|
|
|
37276
37373
|
addonId: null,
|
|
37277
37374
|
access: "view"
|
|
37278
37375
|
},
|
|
37376
|
+
"deviceManager.listSiteZones": {
|
|
37377
|
+
capName: "device-manager",
|
|
37378
|
+
capScope: "system",
|
|
37379
|
+
addonId: null,
|
|
37380
|
+
access: "view"
|
|
37381
|
+
},
|
|
37279
37382
|
"deviceManager.listWrappersForCap": {
|
|
37280
37383
|
capName: "device-manager",
|
|
37281
37384
|
capScope: "system",
|
|
@@ -37360,12 +37463,24 @@ Object.freeze({
|
|
|
37360
37463
|
addonId: null,
|
|
37361
37464
|
access: "delete"
|
|
37362
37465
|
},
|
|
37466
|
+
"deviceManager.removeSiteZone": {
|
|
37467
|
+
capName: "device-manager",
|
|
37468
|
+
capScope: "system",
|
|
37469
|
+
addonId: null,
|
|
37470
|
+
access: "delete"
|
|
37471
|
+
},
|
|
37363
37472
|
"deviceManager.renameLocation": {
|
|
37364
37473
|
capName: "device-manager",
|
|
37365
37474
|
capScope: "system",
|
|
37366
37475
|
addonId: null,
|
|
37367
37476
|
access: "create"
|
|
37368
37477
|
},
|
|
37478
|
+
"deviceManager.renameSiteZone": {
|
|
37479
|
+
capName: "device-manager",
|
|
37480
|
+
capScope: "system",
|
|
37481
|
+
addonId: null,
|
|
37482
|
+
access: "create"
|
|
37483
|
+
},
|
|
37369
37484
|
"deviceManager.runDeviceAction": {
|
|
37370
37485
|
capName: "device-manager",
|
|
37371
37486
|
capScope: "system",
|
|
@@ -37408,12 +37523,24 @@ Object.freeze({
|
|
|
37408
37523
|
addonId: null,
|
|
37409
37524
|
access: "create"
|
|
37410
37525
|
},
|
|
37526
|
+
"deviceManager.setLocationDescription": {
|
|
37527
|
+
capName: "device-manager",
|
|
37528
|
+
capScope: "system",
|
|
37529
|
+
addonId: null,
|
|
37530
|
+
access: "create"
|
|
37531
|
+
},
|
|
37411
37532
|
"deviceManager.setLocationIcon": {
|
|
37412
37533
|
capName: "device-manager",
|
|
37413
37534
|
capScope: "system",
|
|
37414
37535
|
addonId: null,
|
|
37415
37536
|
access: "create"
|
|
37416
37537
|
},
|
|
37538
|
+
"deviceManager.setLocationZone": {
|
|
37539
|
+
capName: "device-manager",
|
|
37540
|
+
capScope: "system",
|
|
37541
|
+
addonId: null,
|
|
37542
|
+
access: "create"
|
|
37543
|
+
},
|
|
37417
37544
|
"deviceManager.setMetadata": {
|
|
37418
37545
|
capName: "device-manager",
|
|
37419
37546
|
capScope: "system",
|
|
@@ -37444,6 +37571,12 @@ Object.freeze({
|
|
|
37444
37571
|
addonId: null,
|
|
37445
37572
|
access: "create"
|
|
37446
37573
|
},
|
|
37574
|
+
"deviceManager.setSiteZone": {
|
|
37575
|
+
capName: "device-manager",
|
|
37576
|
+
capScope: "system",
|
|
37577
|
+
addonId: null,
|
|
37578
|
+
access: "create"
|
|
37579
|
+
},
|
|
37447
37580
|
"deviceManager.setStreamProfileMap": {
|
|
37448
37581
|
capName: "device-manager",
|
|
37449
37582
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -13548,6 +13548,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13548
13548
|
locationKey: string(),
|
|
13549
13549
|
icon: LocationIconIdSchema
|
|
13550
13550
|
});
|
|
13551
|
+
/**
|
|
13552
|
+
* One (location, description) assignment as it travels.
|
|
13553
|
+
*
|
|
13554
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13555
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13556
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13557
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13558
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13559
|
+
* off the location itself, on `locationIconKey`.
|
|
13560
|
+
*/
|
|
13561
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13562
|
+
locationKey: string(),
|
|
13563
|
+
description: string()
|
|
13564
|
+
});
|
|
13565
|
+
/**
|
|
13566
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13567
|
+
*
|
|
13568
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13569
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13570
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13571
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13572
|
+
*
|
|
13573
|
+
* ## Why not `zone`
|
|
13574
|
+
*
|
|
13575
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13576
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13577
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13578
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13579
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13580
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13581
|
+
*
|
|
13582
|
+
* ## The key
|
|
13583
|
+
*
|
|
13584
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13585
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13586
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13587
|
+
* silently-dropped location description.
|
|
13588
|
+
*
|
|
13589
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13590
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13591
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13592
|
+
*/
|
|
13593
|
+
/**
|
|
13594
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13595
|
+
* the locations inside it.
|
|
13596
|
+
*
|
|
13597
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13598
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13599
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13600
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13601
|
+
* it has not fetched yet.
|
|
13602
|
+
*
|
|
13603
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13604
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13605
|
+
*/
|
|
13606
|
+
var SiteZoneSchema = object({
|
|
13607
|
+
zoneKey: string(),
|
|
13608
|
+
label: string(),
|
|
13609
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13610
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13611
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13612
|
+
* the ones that most want grouping. */
|
|
13613
|
+
locationKeys: array(string())
|
|
13614
|
+
});
|
|
13551
13615
|
var ProviderStatusSchema = object({
|
|
13552
13616
|
connected: boolean(),
|
|
13553
13617
|
deviceCount: number(),
|
|
@@ -14146,6 +14210,33 @@ method(object({
|
|
|
14146
14210
|
}), _void(), {
|
|
14147
14211
|
kind: "mutation",
|
|
14148
14212
|
auth: "admin"
|
|
14213
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14214
|
+
location: string(),
|
|
14215
|
+
description: string().max(400).nullable()
|
|
14216
|
+
}), _void(), {
|
|
14217
|
+
kind: "mutation",
|
|
14218
|
+
auth: "admin"
|
|
14219
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14220
|
+
name: string(),
|
|
14221
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14222
|
+
}), _void(), {
|
|
14223
|
+
kind: "mutation",
|
|
14224
|
+
auth: "admin"
|
|
14225
|
+
}), method(object({ name: string() }), _void(), {
|
|
14226
|
+
kind: "mutation",
|
|
14227
|
+
auth: "admin"
|
|
14228
|
+
}), method(object({
|
|
14229
|
+
from: string(),
|
|
14230
|
+
to: string()
|
|
14231
|
+
}), _void(), {
|
|
14232
|
+
kind: "mutation",
|
|
14233
|
+
auth: "admin"
|
|
14234
|
+
}), method(object({
|
|
14235
|
+
location: string(),
|
|
14236
|
+
zone: string().nullable()
|
|
14237
|
+
}), _void(), {
|
|
14238
|
+
kind: "mutation",
|
|
14239
|
+
auth: "admin"
|
|
14149
14240
|
}), method(object({
|
|
14150
14241
|
deviceId: number(),
|
|
14151
14242
|
disabled: boolean()
|
|
@@ -37234,6 +37325,12 @@ Object.freeze({
|
|
|
37234
37325
|
addonId: null,
|
|
37235
37326
|
access: "view"
|
|
37236
37327
|
},
|
|
37328
|
+
"deviceManager.listLocationDescriptions": {
|
|
37329
|
+
capName: "device-manager",
|
|
37330
|
+
capScope: "system",
|
|
37331
|
+
addonId: null,
|
|
37332
|
+
access: "view"
|
|
37333
|
+
},
|
|
37237
37334
|
"deviceManager.listLocationIcons": {
|
|
37238
37335
|
capName: "device-manager",
|
|
37239
37336
|
capScope: "system",
|
|
@@ -37252,6 +37349,12 @@ Object.freeze({
|
|
|
37252
37349
|
addonId: null,
|
|
37253
37350
|
access: "view"
|
|
37254
37351
|
},
|
|
37352
|
+
"deviceManager.listSiteZones": {
|
|
37353
|
+
capName: "device-manager",
|
|
37354
|
+
capScope: "system",
|
|
37355
|
+
addonId: null,
|
|
37356
|
+
access: "view"
|
|
37357
|
+
},
|
|
37255
37358
|
"deviceManager.listWrappersForCap": {
|
|
37256
37359
|
capName: "device-manager",
|
|
37257
37360
|
capScope: "system",
|
|
@@ -37336,12 +37439,24 @@ Object.freeze({
|
|
|
37336
37439
|
addonId: null,
|
|
37337
37440
|
access: "delete"
|
|
37338
37441
|
},
|
|
37442
|
+
"deviceManager.removeSiteZone": {
|
|
37443
|
+
capName: "device-manager",
|
|
37444
|
+
capScope: "system",
|
|
37445
|
+
addonId: null,
|
|
37446
|
+
access: "delete"
|
|
37447
|
+
},
|
|
37339
37448
|
"deviceManager.renameLocation": {
|
|
37340
37449
|
capName: "device-manager",
|
|
37341
37450
|
capScope: "system",
|
|
37342
37451
|
addonId: null,
|
|
37343
37452
|
access: "create"
|
|
37344
37453
|
},
|
|
37454
|
+
"deviceManager.renameSiteZone": {
|
|
37455
|
+
capName: "device-manager",
|
|
37456
|
+
capScope: "system",
|
|
37457
|
+
addonId: null,
|
|
37458
|
+
access: "create"
|
|
37459
|
+
},
|
|
37345
37460
|
"deviceManager.runDeviceAction": {
|
|
37346
37461
|
capName: "device-manager",
|
|
37347
37462
|
capScope: "system",
|
|
@@ -37384,12 +37499,24 @@ Object.freeze({
|
|
|
37384
37499
|
addonId: null,
|
|
37385
37500
|
access: "create"
|
|
37386
37501
|
},
|
|
37502
|
+
"deviceManager.setLocationDescription": {
|
|
37503
|
+
capName: "device-manager",
|
|
37504
|
+
capScope: "system",
|
|
37505
|
+
addonId: null,
|
|
37506
|
+
access: "create"
|
|
37507
|
+
},
|
|
37387
37508
|
"deviceManager.setLocationIcon": {
|
|
37388
37509
|
capName: "device-manager",
|
|
37389
37510
|
capScope: "system",
|
|
37390
37511
|
addonId: null,
|
|
37391
37512
|
access: "create"
|
|
37392
37513
|
},
|
|
37514
|
+
"deviceManager.setLocationZone": {
|
|
37515
|
+
capName: "device-manager",
|
|
37516
|
+
capScope: "system",
|
|
37517
|
+
addonId: null,
|
|
37518
|
+
access: "create"
|
|
37519
|
+
},
|
|
37393
37520
|
"deviceManager.setMetadata": {
|
|
37394
37521
|
capName: "device-manager",
|
|
37395
37522
|
capScope: "system",
|
|
@@ -37420,6 +37547,12 @@ Object.freeze({
|
|
|
37420
37547
|
addonId: null,
|
|
37421
37548
|
access: "create"
|
|
37422
37549
|
},
|
|
37550
|
+
"deviceManager.setSiteZone": {
|
|
37551
|
+
capName: "device-manager",
|
|
37552
|
+
capScope: "system",
|
|
37553
|
+
addonId: null,
|
|
37554
|
+
access: "create"
|
|
37555
|
+
},
|
|
37423
37556
|
"deviceManager.setStreamProfileMap": {
|
|
37424
37557
|
capName: "device-manager",
|
|
37425
37558
|
capScope: "system",
|