@camstack/addon-provider-reolink 1.2.134 → 1.2.135

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
@@ -14120,6 +14120,70 @@ var LocationIconAssignmentSchema = object({
14120
14120
  locationKey: string(),
14121
14121
  icon: LocationIconIdSchema
14122
14122
  });
14123
+ /**
14124
+ * One (location, description) assignment as it travels.
14125
+ *
14126
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
14127
+ * reason: this lived for a while in the post-analysis addon's own settings,
14128
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
14129
+ * the Locations page carried the icon and silently orphaned the description —
14130
+ * two authorities for one thing, joined by two different rules. Now both hang
14131
+ * off the location itself, on `locationIconKey`.
14132
+ */
14133
+ var LocationDescriptionAssignmentSchema = object({
14134
+ locationKey: string(),
14135
+ description: string()
14136
+ });
14137
+ /**
14138
+ * A SITE ZONE — a named part of the property that several locations belong to.
14139
+ *
14140
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
14141
+ * kitchen. A camera belongs to exactly one location, and a location to at most
14142
+ * one zone, so a camera's zone is derived and never stored on the device: the
14143
+ * whole point of this entity is that grouping rooms touches no device row.
14144
+ *
14145
+ * ## Why not `zone`
14146
+ *
14147
+ * Because `zone` is already the most loaded word in this product: 612 source
14148
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
14149
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
14150
+ * set of rooms — and a reader who confuses them will look for a camera's
14151
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
14152
+ * word by calling the drawn one what it actually is: a detection zone.
14153
+ *
14154
+ * ## The key
14155
+ *
14156
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
14157
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
14158
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
14159
+ * silently-dropped location description.
14160
+ *
14161
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
14162
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
14163
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
14164
+ */
14165
+ /**
14166
+ * One zone as it travels: its key, the label the operator typed, its icon and
14167
+ * the locations inside it.
14168
+ *
14169
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
14170
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
14171
+ * here, rather than left to a second call, because every consumer wants both
14172
+ * at once and a viewer that asked twice could render a zone whose membership
14173
+ * it has not fetched yet.
14174
+ *
14175
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
14176
+ * of those two is a choice, and a picker has to draw them differently.
14177
+ */
14178
+ var SiteZoneSchema = object({
14179
+ zoneKey: string(),
14180
+ label: string(),
14181
+ icon: LocationIconIdSchema.nullable(),
14182
+ /** Folded location keys, sorted. A location listed here need not be
14183
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
14184
+ * the ones that most want grouping. */
14185
+ locationKeys: array(string())
14186
+ });
14123
14187
  var ProviderStatusSchema = object({
14124
14188
  connected: boolean(),
14125
14189
  deviceCount: number(),
@@ -14718,6 +14782,33 @@ method(object({
14718
14782
  }), _void(), {
14719
14783
  kind: "mutation",
14720
14784
  auth: "admin"
14785
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
14786
+ location: string(),
14787
+ description: string().max(400).nullable()
14788
+ }), _void(), {
14789
+ kind: "mutation",
14790
+ auth: "admin"
14791
+ }), method(_void(), array(SiteZoneSchema)), method(object({
14792
+ name: string(),
14793
+ icon: LocationIconIdSchema.nullable().optional()
14794
+ }), _void(), {
14795
+ kind: "mutation",
14796
+ auth: "admin"
14797
+ }), method(object({ name: string() }), _void(), {
14798
+ kind: "mutation",
14799
+ auth: "admin"
14800
+ }), method(object({
14801
+ from: string(),
14802
+ to: string()
14803
+ }), _void(), {
14804
+ kind: "mutation",
14805
+ auth: "admin"
14806
+ }), method(object({
14807
+ location: string(),
14808
+ zone: string().nullable()
14809
+ }), _void(), {
14810
+ kind: "mutation",
14811
+ auth: "admin"
14721
14812
  }), method(object({
14722
14813
  deviceId: number(),
14723
14814
  disabled: boolean()
@@ -38255,6 +38346,12 @@ Object.freeze({
38255
38346
  addonId: null,
38256
38347
  access: "view"
38257
38348
  },
38349
+ "deviceManager.listLocationDescriptions": {
38350
+ capName: "device-manager",
38351
+ capScope: "system",
38352
+ addonId: null,
38353
+ access: "view"
38354
+ },
38258
38355
  "deviceManager.listLocationIcons": {
38259
38356
  capName: "device-manager",
38260
38357
  capScope: "system",
@@ -38273,6 +38370,12 @@ Object.freeze({
38273
38370
  addonId: null,
38274
38371
  access: "view"
38275
38372
  },
38373
+ "deviceManager.listSiteZones": {
38374
+ capName: "device-manager",
38375
+ capScope: "system",
38376
+ addonId: null,
38377
+ access: "view"
38378
+ },
38276
38379
  "deviceManager.listWrappersForCap": {
38277
38380
  capName: "device-manager",
38278
38381
  capScope: "system",
@@ -38357,12 +38460,24 @@ Object.freeze({
38357
38460
  addonId: null,
38358
38461
  access: "delete"
38359
38462
  },
38463
+ "deviceManager.removeSiteZone": {
38464
+ capName: "device-manager",
38465
+ capScope: "system",
38466
+ addonId: null,
38467
+ access: "delete"
38468
+ },
38360
38469
  "deviceManager.renameLocation": {
38361
38470
  capName: "device-manager",
38362
38471
  capScope: "system",
38363
38472
  addonId: null,
38364
38473
  access: "create"
38365
38474
  },
38475
+ "deviceManager.renameSiteZone": {
38476
+ capName: "device-manager",
38477
+ capScope: "system",
38478
+ addonId: null,
38479
+ access: "create"
38480
+ },
38366
38481
  "deviceManager.runDeviceAction": {
38367
38482
  capName: "device-manager",
38368
38483
  capScope: "system",
@@ -38405,12 +38520,24 @@ Object.freeze({
38405
38520
  addonId: null,
38406
38521
  access: "create"
38407
38522
  },
38523
+ "deviceManager.setLocationDescription": {
38524
+ capName: "device-manager",
38525
+ capScope: "system",
38526
+ addonId: null,
38527
+ access: "create"
38528
+ },
38408
38529
  "deviceManager.setLocationIcon": {
38409
38530
  capName: "device-manager",
38410
38531
  capScope: "system",
38411
38532
  addonId: null,
38412
38533
  access: "create"
38413
38534
  },
38535
+ "deviceManager.setLocationZone": {
38536
+ capName: "device-manager",
38537
+ capScope: "system",
38538
+ addonId: null,
38539
+ access: "create"
38540
+ },
38414
38541
  "deviceManager.setMetadata": {
38415
38542
  capName: "device-manager",
38416
38543
  capScope: "system",
@@ -38441,6 +38568,12 @@ Object.freeze({
38441
38568
  addonId: null,
38442
38569
  access: "create"
38443
38570
  },
38571
+ "deviceManager.setSiteZone": {
38572
+ capName: "device-manager",
38573
+ capScope: "system",
38574
+ addonId: null,
38575
+ access: "create"
38576
+ },
38444
38577
  "deviceManager.setStreamProfileMap": {
38445
38578
  capName: "device-manager",
38446
38579
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -14115,6 +14115,70 @@ var LocationIconAssignmentSchema = object({
14115
14115
  locationKey: string(),
14116
14116
  icon: LocationIconIdSchema
14117
14117
  });
14118
+ /**
14119
+ * One (location, description) assignment as it travels.
14120
+ *
14121
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
14122
+ * reason: this lived for a while in the post-analysis addon's own settings,
14123
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
14124
+ * the Locations page carried the icon and silently orphaned the description —
14125
+ * two authorities for one thing, joined by two different rules. Now both hang
14126
+ * off the location itself, on `locationIconKey`.
14127
+ */
14128
+ var LocationDescriptionAssignmentSchema = object({
14129
+ locationKey: string(),
14130
+ description: string()
14131
+ });
14132
+ /**
14133
+ * A SITE ZONE — a named part of the property that several locations belong to.
14134
+ *
14135
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
14136
+ * kitchen. A camera belongs to exactly one location, and a location to at most
14137
+ * one zone, so a camera's zone is derived and never stored on the device: the
14138
+ * whole point of this entity is that grouping rooms touches no device row.
14139
+ *
14140
+ * ## Why not `zone`
14141
+ *
14142
+ * Because `zone` is already the most loaded word in this product: 612 source
14143
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
14144
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
14145
+ * set of rooms — and a reader who confuses them will look for a camera's
14146
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
14147
+ * word by calling the drawn one what it actually is: a detection zone.
14148
+ *
14149
+ * ## The key
14150
+ *
14151
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
14152
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
14153
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
14154
+ * silently-dropped location description.
14155
+ *
14156
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
14157
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
14158
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
14159
+ */
14160
+ /**
14161
+ * One zone as it travels: its key, the label the operator typed, its icon and
14162
+ * the locations inside it.
14163
+ *
14164
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
14165
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
14166
+ * here, rather than left to a second call, because every consumer wants both
14167
+ * at once and a viewer that asked twice could render a zone whose membership
14168
+ * it has not fetched yet.
14169
+ *
14170
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
14171
+ * of those two is a choice, and a picker has to draw them differently.
14172
+ */
14173
+ var SiteZoneSchema = object({
14174
+ zoneKey: string(),
14175
+ label: string(),
14176
+ icon: LocationIconIdSchema.nullable(),
14177
+ /** Folded location keys, sorted. A location listed here need not be
14178
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
14179
+ * the ones that most want grouping. */
14180
+ locationKeys: array(string())
14181
+ });
14118
14182
  var ProviderStatusSchema = object({
14119
14183
  connected: boolean(),
14120
14184
  deviceCount: number(),
@@ -14713,6 +14777,33 @@ method(object({
14713
14777
  }), _void(), {
14714
14778
  kind: "mutation",
14715
14779
  auth: "admin"
14780
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
14781
+ location: string(),
14782
+ description: string().max(400).nullable()
14783
+ }), _void(), {
14784
+ kind: "mutation",
14785
+ auth: "admin"
14786
+ }), method(_void(), array(SiteZoneSchema)), method(object({
14787
+ name: string(),
14788
+ icon: LocationIconIdSchema.nullable().optional()
14789
+ }), _void(), {
14790
+ kind: "mutation",
14791
+ auth: "admin"
14792
+ }), method(object({ name: string() }), _void(), {
14793
+ kind: "mutation",
14794
+ auth: "admin"
14795
+ }), method(object({
14796
+ from: string(),
14797
+ to: string()
14798
+ }), _void(), {
14799
+ kind: "mutation",
14800
+ auth: "admin"
14801
+ }), method(object({
14802
+ location: string(),
14803
+ zone: string().nullable()
14804
+ }), _void(), {
14805
+ kind: "mutation",
14806
+ auth: "admin"
14716
14807
  }), method(object({
14717
14808
  deviceId: number(),
14718
14809
  disabled: boolean()
@@ -38250,6 +38341,12 @@ Object.freeze({
38250
38341
  addonId: null,
38251
38342
  access: "view"
38252
38343
  },
38344
+ "deviceManager.listLocationDescriptions": {
38345
+ capName: "device-manager",
38346
+ capScope: "system",
38347
+ addonId: null,
38348
+ access: "view"
38349
+ },
38253
38350
  "deviceManager.listLocationIcons": {
38254
38351
  capName: "device-manager",
38255
38352
  capScope: "system",
@@ -38268,6 +38365,12 @@ Object.freeze({
38268
38365
  addonId: null,
38269
38366
  access: "view"
38270
38367
  },
38368
+ "deviceManager.listSiteZones": {
38369
+ capName: "device-manager",
38370
+ capScope: "system",
38371
+ addonId: null,
38372
+ access: "view"
38373
+ },
38271
38374
  "deviceManager.listWrappersForCap": {
38272
38375
  capName: "device-manager",
38273
38376
  capScope: "system",
@@ -38352,12 +38455,24 @@ Object.freeze({
38352
38455
  addonId: null,
38353
38456
  access: "delete"
38354
38457
  },
38458
+ "deviceManager.removeSiteZone": {
38459
+ capName: "device-manager",
38460
+ capScope: "system",
38461
+ addonId: null,
38462
+ access: "delete"
38463
+ },
38355
38464
  "deviceManager.renameLocation": {
38356
38465
  capName: "device-manager",
38357
38466
  capScope: "system",
38358
38467
  addonId: null,
38359
38468
  access: "create"
38360
38469
  },
38470
+ "deviceManager.renameSiteZone": {
38471
+ capName: "device-manager",
38472
+ capScope: "system",
38473
+ addonId: null,
38474
+ access: "create"
38475
+ },
38361
38476
  "deviceManager.runDeviceAction": {
38362
38477
  capName: "device-manager",
38363
38478
  capScope: "system",
@@ -38400,12 +38515,24 @@ Object.freeze({
38400
38515
  addonId: null,
38401
38516
  access: "create"
38402
38517
  },
38518
+ "deviceManager.setLocationDescription": {
38519
+ capName: "device-manager",
38520
+ capScope: "system",
38521
+ addonId: null,
38522
+ access: "create"
38523
+ },
38403
38524
  "deviceManager.setLocationIcon": {
38404
38525
  capName: "device-manager",
38405
38526
  capScope: "system",
38406
38527
  addonId: null,
38407
38528
  access: "create"
38408
38529
  },
38530
+ "deviceManager.setLocationZone": {
38531
+ capName: "device-manager",
38532
+ capScope: "system",
38533
+ addonId: null,
38534
+ access: "create"
38535
+ },
38409
38536
  "deviceManager.setMetadata": {
38410
38537
  capName: "device-manager",
38411
38538
  capScope: "system",
@@ -38436,6 +38563,12 @@ Object.freeze({
38436
38563
  addonId: null,
38437
38564
  access: "create"
38438
38565
  },
38566
+ "deviceManager.setSiteZone": {
38567
+ capName: "device-manager",
38568
+ capScope: "system",
38569
+ addonId: null,
38570
+ access: "create"
38571
+ },
38439
38572
  "deviceManager.setStreamProfileMap": {
38440
38573
  capName: "device-manager",
38441
38574
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-reolink",
3
- "version": "1.2.134",
3
+ "version": "1.2.135",
4
4
  "description": "Reolink camera device provider addon for CamStack — native Baichuan protocol",
5
5
  "keywords": [
6
6
  "camstack",