@camstack/addon-provider-dreame 0.2.107 → 0.2.108

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
@@ -66310,6 +66310,70 @@ var LocationIconAssignmentSchema = object({
66310
66310
  locationKey: string(),
66311
66311
  icon: LocationIconIdSchema
66312
66312
  });
66313
+ /**
66314
+ * One (location, description) assignment as it travels.
66315
+ *
66316
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
66317
+ * reason: this lived for a while in the post-analysis addon's own settings,
66318
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
66319
+ * the Locations page carried the icon and silently orphaned the description —
66320
+ * two authorities for one thing, joined by two different rules. Now both hang
66321
+ * off the location itself, on `locationIconKey`.
66322
+ */
66323
+ var LocationDescriptionAssignmentSchema = object({
66324
+ locationKey: string(),
66325
+ description: string()
66326
+ });
66327
+ /**
66328
+ * A SITE ZONE — a named part of the property that several locations belong to.
66329
+ *
66330
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
66331
+ * kitchen. A camera belongs to exactly one location, and a location to at most
66332
+ * one zone, so a camera's zone is derived and never stored on the device: the
66333
+ * whole point of this entity is that grouping rooms touches no device row.
66334
+ *
66335
+ * ## Why not `zone`
66336
+ *
66337
+ * Because `zone` is already the most loaded word in this product: 612 source
66338
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
66339
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
66340
+ * set of rooms — and a reader who confuses them will look for a camera's
66341
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
66342
+ * word by calling the drawn one what it actually is: a detection zone.
66343
+ *
66344
+ * ## The key
66345
+ *
66346
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
66347
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
66348
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
66349
+ * silently-dropped location description.
66350
+ *
66351
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
66352
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
66353
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
66354
+ */
66355
+ /**
66356
+ * One zone as it travels: its key, the label the operator typed, its icon and
66357
+ * the locations inside it.
66358
+ *
66359
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
66360
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
66361
+ * here, rather than left to a second call, because every consumer wants both
66362
+ * at once and a viewer that asked twice could render a zone whose membership
66363
+ * it has not fetched yet.
66364
+ *
66365
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
66366
+ * of those two is a choice, and a picker has to draw them differently.
66367
+ */
66368
+ var SiteZoneSchema = object({
66369
+ zoneKey: string(),
66370
+ label: string(),
66371
+ icon: LocationIconIdSchema.nullable(),
66372
+ /** Folded location keys, sorted. A location listed here need not be
66373
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
66374
+ * the ones that most want grouping. */
66375
+ locationKeys: array(string())
66376
+ });
66313
66377
  var ProviderStatusSchema = object({
66314
66378
  connected: boolean(),
66315
66379
  deviceCount: number(),
@@ -66908,6 +66972,33 @@ method(object({
66908
66972
  }), _void(), {
66909
66973
  kind: "mutation",
66910
66974
  auth: "admin"
66975
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
66976
+ location: string(),
66977
+ description: string().max(400).nullable()
66978
+ }), _void(), {
66979
+ kind: "mutation",
66980
+ auth: "admin"
66981
+ }), method(_void(), array(SiteZoneSchema)), method(object({
66982
+ name: string(),
66983
+ icon: LocationIconIdSchema.nullable().optional()
66984
+ }), _void(), {
66985
+ kind: "mutation",
66986
+ auth: "admin"
66987
+ }), method(object({ name: string() }), _void(), {
66988
+ kind: "mutation",
66989
+ auth: "admin"
66990
+ }), method(object({
66991
+ from: string(),
66992
+ to: string()
66993
+ }), _void(), {
66994
+ kind: "mutation",
66995
+ auth: "admin"
66996
+ }), method(object({
66997
+ location: string(),
66998
+ zone: string().nullable()
66999
+ }), _void(), {
67000
+ kind: "mutation",
67001
+ auth: "admin"
66911
67002
  }), method(object({
66912
67003
  deviceId: number(),
66913
67004
  disabled: boolean()
@@ -89991,6 +90082,12 @@ Object.freeze({
89991
90082
  addonId: null,
89992
90083
  access: "view"
89993
90084
  },
90085
+ "deviceManager.listLocationDescriptions": {
90086
+ capName: "device-manager",
90087
+ capScope: "system",
90088
+ addonId: null,
90089
+ access: "view"
90090
+ },
89994
90091
  "deviceManager.listLocationIcons": {
89995
90092
  capName: "device-manager",
89996
90093
  capScope: "system",
@@ -90009,6 +90106,12 @@ Object.freeze({
90009
90106
  addonId: null,
90010
90107
  access: "view"
90011
90108
  },
90109
+ "deviceManager.listSiteZones": {
90110
+ capName: "device-manager",
90111
+ capScope: "system",
90112
+ addonId: null,
90113
+ access: "view"
90114
+ },
90012
90115
  "deviceManager.listWrappersForCap": {
90013
90116
  capName: "device-manager",
90014
90117
  capScope: "system",
@@ -90093,12 +90196,24 @@ Object.freeze({
90093
90196
  addonId: null,
90094
90197
  access: "delete"
90095
90198
  },
90199
+ "deviceManager.removeSiteZone": {
90200
+ capName: "device-manager",
90201
+ capScope: "system",
90202
+ addonId: null,
90203
+ access: "delete"
90204
+ },
90096
90205
  "deviceManager.renameLocation": {
90097
90206
  capName: "device-manager",
90098
90207
  capScope: "system",
90099
90208
  addonId: null,
90100
90209
  access: "create"
90101
90210
  },
90211
+ "deviceManager.renameSiteZone": {
90212
+ capName: "device-manager",
90213
+ capScope: "system",
90214
+ addonId: null,
90215
+ access: "create"
90216
+ },
90102
90217
  "deviceManager.runDeviceAction": {
90103
90218
  capName: "device-manager",
90104
90219
  capScope: "system",
@@ -90141,12 +90256,24 @@ Object.freeze({
90141
90256
  addonId: null,
90142
90257
  access: "create"
90143
90258
  },
90259
+ "deviceManager.setLocationDescription": {
90260
+ capName: "device-manager",
90261
+ capScope: "system",
90262
+ addonId: null,
90263
+ access: "create"
90264
+ },
90144
90265
  "deviceManager.setLocationIcon": {
90145
90266
  capName: "device-manager",
90146
90267
  capScope: "system",
90147
90268
  addonId: null,
90148
90269
  access: "create"
90149
90270
  },
90271
+ "deviceManager.setLocationZone": {
90272
+ capName: "device-manager",
90273
+ capScope: "system",
90274
+ addonId: null,
90275
+ access: "create"
90276
+ },
90150
90277
  "deviceManager.setMetadata": {
90151
90278
  capName: "device-manager",
90152
90279
  capScope: "system",
@@ -90177,6 +90304,12 @@ Object.freeze({
90177
90304
  addonId: null,
90178
90305
  access: "create"
90179
90306
  },
90307
+ "deviceManager.setSiteZone": {
90308
+ capName: "device-manager",
90309
+ capScope: "system",
90310
+ addonId: null,
90311
+ access: "create"
90312
+ },
90180
90313
  "deviceManager.setStreamProfileMap": {
90181
90314
  capName: "device-manager",
90182
90315
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -66307,6 +66307,70 @@ var LocationIconAssignmentSchema = object({
66307
66307
  locationKey: string(),
66308
66308
  icon: LocationIconIdSchema
66309
66309
  });
66310
+ /**
66311
+ * One (location, description) assignment as it travels.
66312
+ *
66313
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
66314
+ * reason: this lived for a while in the post-analysis addon's own settings,
66315
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
66316
+ * the Locations page carried the icon and silently orphaned the description —
66317
+ * two authorities for one thing, joined by two different rules. Now both hang
66318
+ * off the location itself, on `locationIconKey`.
66319
+ */
66320
+ var LocationDescriptionAssignmentSchema = object({
66321
+ locationKey: string(),
66322
+ description: string()
66323
+ });
66324
+ /**
66325
+ * A SITE ZONE — a named part of the property that several locations belong to.
66326
+ *
66327
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
66328
+ * kitchen. A camera belongs to exactly one location, and a location to at most
66329
+ * one zone, so a camera's zone is derived and never stored on the device: the
66330
+ * whole point of this entity is that grouping rooms touches no device row.
66331
+ *
66332
+ * ## Why not `zone`
66333
+ *
66334
+ * Because `zone` is already the most loaded word in this product: 612 source
66335
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
66336
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
66337
+ * set of rooms — and a reader who confuses them will look for a camera's
66338
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
66339
+ * word by calling the drawn one what it actually is: a detection zone.
66340
+ *
66341
+ * ## The key
66342
+ *
66343
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
66344
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
66345
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
66346
+ * silently-dropped location description.
66347
+ *
66348
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
66349
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
66350
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
66351
+ */
66352
+ /**
66353
+ * One zone as it travels: its key, the label the operator typed, its icon and
66354
+ * the locations inside it.
66355
+ *
66356
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
66357
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
66358
+ * here, rather than left to a second call, because every consumer wants both
66359
+ * at once and a viewer that asked twice could render a zone whose membership
66360
+ * it has not fetched yet.
66361
+ *
66362
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
66363
+ * of those two is a choice, and a picker has to draw them differently.
66364
+ */
66365
+ var SiteZoneSchema = object({
66366
+ zoneKey: string(),
66367
+ label: string(),
66368
+ icon: LocationIconIdSchema.nullable(),
66369
+ /** Folded location keys, sorted. A location listed here need not be
66370
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
66371
+ * the ones that most want grouping. */
66372
+ locationKeys: array(string())
66373
+ });
66310
66374
  var ProviderStatusSchema = object({
66311
66375
  connected: boolean(),
66312
66376
  deviceCount: number(),
@@ -66905,6 +66969,33 @@ method(object({
66905
66969
  }), _void(), {
66906
66970
  kind: "mutation",
66907
66971
  auth: "admin"
66972
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
66973
+ location: string(),
66974
+ description: string().max(400).nullable()
66975
+ }), _void(), {
66976
+ kind: "mutation",
66977
+ auth: "admin"
66978
+ }), method(_void(), array(SiteZoneSchema)), method(object({
66979
+ name: string(),
66980
+ icon: LocationIconIdSchema.nullable().optional()
66981
+ }), _void(), {
66982
+ kind: "mutation",
66983
+ auth: "admin"
66984
+ }), method(object({ name: string() }), _void(), {
66985
+ kind: "mutation",
66986
+ auth: "admin"
66987
+ }), method(object({
66988
+ from: string(),
66989
+ to: string()
66990
+ }), _void(), {
66991
+ kind: "mutation",
66992
+ auth: "admin"
66993
+ }), method(object({
66994
+ location: string(),
66995
+ zone: string().nullable()
66996
+ }), _void(), {
66997
+ kind: "mutation",
66998
+ auth: "admin"
66908
66999
  }), method(object({
66909
67000
  deviceId: number(),
66910
67001
  disabled: boolean()
@@ -89988,6 +90079,12 @@ Object.freeze({
89988
90079
  addonId: null,
89989
90080
  access: "view"
89990
90081
  },
90082
+ "deviceManager.listLocationDescriptions": {
90083
+ capName: "device-manager",
90084
+ capScope: "system",
90085
+ addonId: null,
90086
+ access: "view"
90087
+ },
89991
90088
  "deviceManager.listLocationIcons": {
89992
90089
  capName: "device-manager",
89993
90090
  capScope: "system",
@@ -90006,6 +90103,12 @@ Object.freeze({
90006
90103
  addonId: null,
90007
90104
  access: "view"
90008
90105
  },
90106
+ "deviceManager.listSiteZones": {
90107
+ capName: "device-manager",
90108
+ capScope: "system",
90109
+ addonId: null,
90110
+ access: "view"
90111
+ },
90009
90112
  "deviceManager.listWrappersForCap": {
90010
90113
  capName: "device-manager",
90011
90114
  capScope: "system",
@@ -90090,12 +90193,24 @@ Object.freeze({
90090
90193
  addonId: null,
90091
90194
  access: "delete"
90092
90195
  },
90196
+ "deviceManager.removeSiteZone": {
90197
+ capName: "device-manager",
90198
+ capScope: "system",
90199
+ addonId: null,
90200
+ access: "delete"
90201
+ },
90093
90202
  "deviceManager.renameLocation": {
90094
90203
  capName: "device-manager",
90095
90204
  capScope: "system",
90096
90205
  addonId: null,
90097
90206
  access: "create"
90098
90207
  },
90208
+ "deviceManager.renameSiteZone": {
90209
+ capName: "device-manager",
90210
+ capScope: "system",
90211
+ addonId: null,
90212
+ access: "create"
90213
+ },
90099
90214
  "deviceManager.runDeviceAction": {
90100
90215
  capName: "device-manager",
90101
90216
  capScope: "system",
@@ -90138,12 +90253,24 @@ Object.freeze({
90138
90253
  addonId: null,
90139
90254
  access: "create"
90140
90255
  },
90256
+ "deviceManager.setLocationDescription": {
90257
+ capName: "device-manager",
90258
+ capScope: "system",
90259
+ addonId: null,
90260
+ access: "create"
90261
+ },
90141
90262
  "deviceManager.setLocationIcon": {
90142
90263
  capName: "device-manager",
90143
90264
  capScope: "system",
90144
90265
  addonId: null,
90145
90266
  access: "create"
90146
90267
  },
90268
+ "deviceManager.setLocationZone": {
90269
+ capName: "device-manager",
90270
+ capScope: "system",
90271
+ addonId: null,
90272
+ access: "create"
90273
+ },
90147
90274
  "deviceManager.setMetadata": {
90148
90275
  capName: "device-manager",
90149
90276
  capScope: "system",
@@ -90174,6 +90301,12 @@ Object.freeze({
90174
90301
  addonId: null,
90175
90302
  access: "create"
90176
90303
  },
90304
+ "deviceManager.setSiteZone": {
90305
+ capName: "device-manager",
90306
+ capScope: "system",
90307
+ addonId: null,
90308
+ access: "create"
90309
+ },
90177
90310
  "deviceManager.setStreamProfileMap": {
90178
90311
  capName: "device-manager",
90179
90312
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-dreame",
3
- "version": "0.2.107",
3
+ "version": "0.2.108",
4
4
  "description": "Dreame robot-vacuum / lawn-mower device-provider addon for CamStack — wraps the @apocaliss92/nodedreame Dreamehome cloud client",
5
5
  "keywords": [
6
6
  "camstack",