@camstack/addon-matter-broker 0.2.105 → 0.2.106
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
|
@@ -13596,6 +13596,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13596
13596
|
locationKey: string$2(),
|
|
13597
13597
|
icon: LocationIconIdSchema
|
|
13598
13598
|
});
|
|
13599
|
+
/**
|
|
13600
|
+
* One (location, description) assignment as it travels.
|
|
13601
|
+
*
|
|
13602
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13603
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13604
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13605
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13606
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13607
|
+
* off the location itself, on `locationIconKey`.
|
|
13608
|
+
*/
|
|
13609
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13610
|
+
locationKey: string$2(),
|
|
13611
|
+
description: string$2()
|
|
13612
|
+
});
|
|
13613
|
+
/**
|
|
13614
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13615
|
+
*
|
|
13616
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13617
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13618
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13619
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13620
|
+
*
|
|
13621
|
+
* ## Why not `zone`
|
|
13622
|
+
*
|
|
13623
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13624
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13625
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13626
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13627
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13628
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13629
|
+
*
|
|
13630
|
+
* ## The key
|
|
13631
|
+
*
|
|
13632
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13633
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13634
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13635
|
+
* silently-dropped location description.
|
|
13636
|
+
*
|
|
13637
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13638
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13639
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13640
|
+
*/
|
|
13641
|
+
/**
|
|
13642
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13643
|
+
* the locations inside it.
|
|
13644
|
+
*
|
|
13645
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13646
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13647
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13648
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13649
|
+
* it has not fetched yet.
|
|
13650
|
+
*
|
|
13651
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13652
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13653
|
+
*/
|
|
13654
|
+
var SiteZoneSchema = object({
|
|
13655
|
+
zoneKey: string$2(),
|
|
13656
|
+
label: string$2(),
|
|
13657
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13658
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13659
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13660
|
+
* the ones that most want grouping. */
|
|
13661
|
+
locationKeys: array(string$2())
|
|
13662
|
+
});
|
|
13599
13663
|
var ProviderStatusSchema = object({
|
|
13600
13664
|
connected: boolean(),
|
|
13601
13665
|
deviceCount: number(),
|
|
@@ -14194,6 +14258,33 @@ method(object({
|
|
|
14194
14258
|
}), _void(), {
|
|
14195
14259
|
kind: "mutation",
|
|
14196
14260
|
auth: "admin"
|
|
14261
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14262
|
+
location: string$2(),
|
|
14263
|
+
description: string$2().max(400).nullable()
|
|
14264
|
+
}), _void(), {
|
|
14265
|
+
kind: "mutation",
|
|
14266
|
+
auth: "admin"
|
|
14267
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14268
|
+
name: string$2(),
|
|
14269
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14270
|
+
}), _void(), {
|
|
14271
|
+
kind: "mutation",
|
|
14272
|
+
auth: "admin"
|
|
14273
|
+
}), method(object({ name: string$2() }), _void(), {
|
|
14274
|
+
kind: "mutation",
|
|
14275
|
+
auth: "admin"
|
|
14276
|
+
}), method(object({
|
|
14277
|
+
from: string$2(),
|
|
14278
|
+
to: string$2()
|
|
14279
|
+
}), _void(), {
|
|
14280
|
+
kind: "mutation",
|
|
14281
|
+
auth: "admin"
|
|
14282
|
+
}), method(object({
|
|
14283
|
+
location: string$2(),
|
|
14284
|
+
zone: string$2().nullable()
|
|
14285
|
+
}), _void(), {
|
|
14286
|
+
kind: "mutation",
|
|
14287
|
+
auth: "admin"
|
|
14197
14288
|
}), method(object({
|
|
14198
14289
|
deviceId: number(),
|
|
14199
14290
|
disabled: boolean()
|
|
@@ -37121,6 +37212,12 @@ Object.freeze({
|
|
|
37121
37212
|
addonId: null,
|
|
37122
37213
|
access: "view"
|
|
37123
37214
|
},
|
|
37215
|
+
"deviceManager.listLocationDescriptions": {
|
|
37216
|
+
capName: "device-manager",
|
|
37217
|
+
capScope: "system",
|
|
37218
|
+
addonId: null,
|
|
37219
|
+
access: "view"
|
|
37220
|
+
},
|
|
37124
37221
|
"deviceManager.listLocationIcons": {
|
|
37125
37222
|
capName: "device-manager",
|
|
37126
37223
|
capScope: "system",
|
|
@@ -37139,6 +37236,12 @@ Object.freeze({
|
|
|
37139
37236
|
addonId: null,
|
|
37140
37237
|
access: "view"
|
|
37141
37238
|
},
|
|
37239
|
+
"deviceManager.listSiteZones": {
|
|
37240
|
+
capName: "device-manager",
|
|
37241
|
+
capScope: "system",
|
|
37242
|
+
addonId: null,
|
|
37243
|
+
access: "view"
|
|
37244
|
+
},
|
|
37142
37245
|
"deviceManager.listWrappersForCap": {
|
|
37143
37246
|
capName: "device-manager",
|
|
37144
37247
|
capScope: "system",
|
|
@@ -37223,12 +37326,24 @@ Object.freeze({
|
|
|
37223
37326
|
addonId: null,
|
|
37224
37327
|
access: "delete"
|
|
37225
37328
|
},
|
|
37329
|
+
"deviceManager.removeSiteZone": {
|
|
37330
|
+
capName: "device-manager",
|
|
37331
|
+
capScope: "system",
|
|
37332
|
+
addonId: null,
|
|
37333
|
+
access: "delete"
|
|
37334
|
+
},
|
|
37226
37335
|
"deviceManager.renameLocation": {
|
|
37227
37336
|
capName: "device-manager",
|
|
37228
37337
|
capScope: "system",
|
|
37229
37338
|
addonId: null,
|
|
37230
37339
|
access: "create"
|
|
37231
37340
|
},
|
|
37341
|
+
"deviceManager.renameSiteZone": {
|
|
37342
|
+
capName: "device-manager",
|
|
37343
|
+
capScope: "system",
|
|
37344
|
+
addonId: null,
|
|
37345
|
+
access: "create"
|
|
37346
|
+
},
|
|
37232
37347
|
"deviceManager.runDeviceAction": {
|
|
37233
37348
|
capName: "device-manager",
|
|
37234
37349
|
capScope: "system",
|
|
@@ -37271,12 +37386,24 @@ Object.freeze({
|
|
|
37271
37386
|
addonId: null,
|
|
37272
37387
|
access: "create"
|
|
37273
37388
|
},
|
|
37389
|
+
"deviceManager.setLocationDescription": {
|
|
37390
|
+
capName: "device-manager",
|
|
37391
|
+
capScope: "system",
|
|
37392
|
+
addonId: null,
|
|
37393
|
+
access: "create"
|
|
37394
|
+
},
|
|
37274
37395
|
"deviceManager.setLocationIcon": {
|
|
37275
37396
|
capName: "device-manager",
|
|
37276
37397
|
capScope: "system",
|
|
37277
37398
|
addonId: null,
|
|
37278
37399
|
access: "create"
|
|
37279
37400
|
},
|
|
37401
|
+
"deviceManager.setLocationZone": {
|
|
37402
|
+
capName: "device-manager",
|
|
37403
|
+
capScope: "system",
|
|
37404
|
+
addonId: null,
|
|
37405
|
+
access: "create"
|
|
37406
|
+
},
|
|
37280
37407
|
"deviceManager.setMetadata": {
|
|
37281
37408
|
capName: "device-manager",
|
|
37282
37409
|
capScope: "system",
|
|
@@ -37307,6 +37434,12 @@ Object.freeze({
|
|
|
37307
37434
|
addonId: null,
|
|
37308
37435
|
access: "create"
|
|
37309
37436
|
},
|
|
37437
|
+
"deviceManager.setSiteZone": {
|
|
37438
|
+
capName: "device-manager",
|
|
37439
|
+
capScope: "system",
|
|
37440
|
+
addonId: null,
|
|
37441
|
+
access: "create"
|
|
37442
|
+
},
|
|
37310
37443
|
"deviceManager.setStreamProfileMap": {
|
|
37311
37444
|
capName: "device-manager",
|
|
37312
37445
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -13594,6 +13594,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13594
13594
|
locationKey: string$2(),
|
|
13595
13595
|
icon: LocationIconIdSchema
|
|
13596
13596
|
});
|
|
13597
|
+
/**
|
|
13598
|
+
* One (location, description) assignment as it travels.
|
|
13599
|
+
*
|
|
13600
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13601
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13602
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13603
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13604
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13605
|
+
* off the location itself, on `locationIconKey`.
|
|
13606
|
+
*/
|
|
13607
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13608
|
+
locationKey: string$2(),
|
|
13609
|
+
description: string$2()
|
|
13610
|
+
});
|
|
13611
|
+
/**
|
|
13612
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13613
|
+
*
|
|
13614
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13615
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13616
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13617
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13618
|
+
*
|
|
13619
|
+
* ## Why not `zone`
|
|
13620
|
+
*
|
|
13621
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13622
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13623
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13624
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13625
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13626
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13627
|
+
*
|
|
13628
|
+
* ## The key
|
|
13629
|
+
*
|
|
13630
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13631
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13632
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13633
|
+
* silently-dropped location description.
|
|
13634
|
+
*
|
|
13635
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13636
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13637
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13638
|
+
*/
|
|
13639
|
+
/**
|
|
13640
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13641
|
+
* the locations inside it.
|
|
13642
|
+
*
|
|
13643
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13644
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13645
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13646
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13647
|
+
* it has not fetched yet.
|
|
13648
|
+
*
|
|
13649
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13650
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13651
|
+
*/
|
|
13652
|
+
var SiteZoneSchema = object({
|
|
13653
|
+
zoneKey: string$2(),
|
|
13654
|
+
label: string$2(),
|
|
13655
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13656
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13657
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13658
|
+
* the ones that most want grouping. */
|
|
13659
|
+
locationKeys: array(string$2())
|
|
13660
|
+
});
|
|
13597
13661
|
var ProviderStatusSchema = object({
|
|
13598
13662
|
connected: boolean(),
|
|
13599
13663
|
deviceCount: number(),
|
|
@@ -14192,6 +14256,33 @@ method(object({
|
|
|
14192
14256
|
}), _void(), {
|
|
14193
14257
|
kind: "mutation",
|
|
14194
14258
|
auth: "admin"
|
|
14259
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14260
|
+
location: string$2(),
|
|
14261
|
+
description: string$2().max(400).nullable()
|
|
14262
|
+
}), _void(), {
|
|
14263
|
+
kind: "mutation",
|
|
14264
|
+
auth: "admin"
|
|
14265
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14266
|
+
name: string$2(),
|
|
14267
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14268
|
+
}), _void(), {
|
|
14269
|
+
kind: "mutation",
|
|
14270
|
+
auth: "admin"
|
|
14271
|
+
}), method(object({ name: string$2() }), _void(), {
|
|
14272
|
+
kind: "mutation",
|
|
14273
|
+
auth: "admin"
|
|
14274
|
+
}), method(object({
|
|
14275
|
+
from: string$2(),
|
|
14276
|
+
to: string$2()
|
|
14277
|
+
}), _void(), {
|
|
14278
|
+
kind: "mutation",
|
|
14279
|
+
auth: "admin"
|
|
14280
|
+
}), method(object({
|
|
14281
|
+
location: string$2(),
|
|
14282
|
+
zone: string$2().nullable()
|
|
14283
|
+
}), _void(), {
|
|
14284
|
+
kind: "mutation",
|
|
14285
|
+
auth: "admin"
|
|
14195
14286
|
}), method(object({
|
|
14196
14287
|
deviceId: number(),
|
|
14197
14288
|
disabled: boolean()
|
|
@@ -37119,6 +37210,12 @@ Object.freeze({
|
|
|
37119
37210
|
addonId: null,
|
|
37120
37211
|
access: "view"
|
|
37121
37212
|
},
|
|
37213
|
+
"deviceManager.listLocationDescriptions": {
|
|
37214
|
+
capName: "device-manager",
|
|
37215
|
+
capScope: "system",
|
|
37216
|
+
addonId: null,
|
|
37217
|
+
access: "view"
|
|
37218
|
+
},
|
|
37122
37219
|
"deviceManager.listLocationIcons": {
|
|
37123
37220
|
capName: "device-manager",
|
|
37124
37221
|
capScope: "system",
|
|
@@ -37137,6 +37234,12 @@ Object.freeze({
|
|
|
37137
37234
|
addonId: null,
|
|
37138
37235
|
access: "view"
|
|
37139
37236
|
},
|
|
37237
|
+
"deviceManager.listSiteZones": {
|
|
37238
|
+
capName: "device-manager",
|
|
37239
|
+
capScope: "system",
|
|
37240
|
+
addonId: null,
|
|
37241
|
+
access: "view"
|
|
37242
|
+
},
|
|
37140
37243
|
"deviceManager.listWrappersForCap": {
|
|
37141
37244
|
capName: "device-manager",
|
|
37142
37245
|
capScope: "system",
|
|
@@ -37221,12 +37324,24 @@ Object.freeze({
|
|
|
37221
37324
|
addonId: null,
|
|
37222
37325
|
access: "delete"
|
|
37223
37326
|
},
|
|
37327
|
+
"deviceManager.removeSiteZone": {
|
|
37328
|
+
capName: "device-manager",
|
|
37329
|
+
capScope: "system",
|
|
37330
|
+
addonId: null,
|
|
37331
|
+
access: "delete"
|
|
37332
|
+
},
|
|
37224
37333
|
"deviceManager.renameLocation": {
|
|
37225
37334
|
capName: "device-manager",
|
|
37226
37335
|
capScope: "system",
|
|
37227
37336
|
addonId: null,
|
|
37228
37337
|
access: "create"
|
|
37229
37338
|
},
|
|
37339
|
+
"deviceManager.renameSiteZone": {
|
|
37340
|
+
capName: "device-manager",
|
|
37341
|
+
capScope: "system",
|
|
37342
|
+
addonId: null,
|
|
37343
|
+
access: "create"
|
|
37344
|
+
},
|
|
37230
37345
|
"deviceManager.runDeviceAction": {
|
|
37231
37346
|
capName: "device-manager",
|
|
37232
37347
|
capScope: "system",
|
|
@@ -37269,12 +37384,24 @@ Object.freeze({
|
|
|
37269
37384
|
addonId: null,
|
|
37270
37385
|
access: "create"
|
|
37271
37386
|
},
|
|
37387
|
+
"deviceManager.setLocationDescription": {
|
|
37388
|
+
capName: "device-manager",
|
|
37389
|
+
capScope: "system",
|
|
37390
|
+
addonId: null,
|
|
37391
|
+
access: "create"
|
|
37392
|
+
},
|
|
37272
37393
|
"deviceManager.setLocationIcon": {
|
|
37273
37394
|
capName: "device-manager",
|
|
37274
37395
|
capScope: "system",
|
|
37275
37396
|
addonId: null,
|
|
37276
37397
|
access: "create"
|
|
37277
37398
|
},
|
|
37399
|
+
"deviceManager.setLocationZone": {
|
|
37400
|
+
capName: "device-manager",
|
|
37401
|
+
capScope: "system",
|
|
37402
|
+
addonId: null,
|
|
37403
|
+
access: "create"
|
|
37404
|
+
},
|
|
37278
37405
|
"deviceManager.setMetadata": {
|
|
37279
37406
|
capName: "device-manager",
|
|
37280
37407
|
capScope: "system",
|
|
@@ -37305,6 +37432,12 @@ Object.freeze({
|
|
|
37305
37432
|
addonId: null,
|
|
37306
37433
|
access: "create"
|
|
37307
37434
|
},
|
|
37435
|
+
"deviceManager.setSiteZone": {
|
|
37436
|
+
capName: "device-manager",
|
|
37437
|
+
capScope: "system",
|
|
37438
|
+
addonId: null,
|
|
37439
|
+
access: "create"
|
|
37440
|
+
},
|
|
37308
37441
|
"deviceManager.setStreamProfileMap": {
|
|
37309
37442
|
capName: "device-manager",
|
|
37310
37443
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-matter-broker",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.106",
|
|
4
4
|
"description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|