@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 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.105",
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",