@camstack/addon-terminal 0.1.111 → 0.1.112

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
@@ -13615,6 +13615,70 @@ var LocationIconAssignmentSchema = object({
13615
13615
  locationKey: string(),
13616
13616
  icon: LocationIconIdSchema
13617
13617
  });
13618
+ /**
13619
+ * One (location, description) assignment as it travels.
13620
+ *
13621
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
13622
+ * reason: this lived for a while in the post-analysis addon's own settings,
13623
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
13624
+ * the Locations page carried the icon and silently orphaned the description —
13625
+ * two authorities for one thing, joined by two different rules. Now both hang
13626
+ * off the location itself, on `locationIconKey`.
13627
+ */
13628
+ var LocationDescriptionAssignmentSchema = object({
13629
+ locationKey: string(),
13630
+ description: string()
13631
+ });
13632
+ /**
13633
+ * A SITE ZONE — a named part of the property that several locations belong to.
13634
+ *
13635
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
13636
+ * kitchen. A camera belongs to exactly one location, and a location to at most
13637
+ * one zone, so a camera's zone is derived and never stored on the device: the
13638
+ * whole point of this entity is that grouping rooms touches no device row.
13639
+ *
13640
+ * ## Why not `zone`
13641
+ *
13642
+ * Because `zone` is already the most loaded word in this product: 612 source
13643
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
13644
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
13645
+ * set of rooms — and a reader who confuses them will look for a camera's
13646
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
13647
+ * word by calling the drawn one what it actually is: a detection zone.
13648
+ *
13649
+ * ## The key
13650
+ *
13651
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
13652
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
13653
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
13654
+ * silently-dropped location description.
13655
+ *
13656
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
13657
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
13658
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
13659
+ */
13660
+ /**
13661
+ * One zone as it travels: its key, the label the operator typed, its icon and
13662
+ * the locations inside it.
13663
+ *
13664
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
13665
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
13666
+ * here, rather than left to a second call, because every consumer wants both
13667
+ * at once and a viewer that asked twice could render a zone whose membership
13668
+ * it has not fetched yet.
13669
+ *
13670
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
13671
+ * of those two is a choice, and a picker has to draw them differently.
13672
+ */
13673
+ var SiteZoneSchema = object({
13674
+ zoneKey: string(),
13675
+ label: string(),
13676
+ icon: LocationIconIdSchema.nullable(),
13677
+ /** Folded location keys, sorted. A location listed here need not be
13678
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
13679
+ * the ones that most want grouping. */
13680
+ locationKeys: array(string())
13681
+ });
13618
13682
  var ProviderStatusSchema = object({
13619
13683
  connected: boolean(),
13620
13684
  deviceCount: number(),
@@ -14132,6 +14196,33 @@ method(object({
14132
14196
  }), _void(), {
14133
14197
  kind: "mutation",
14134
14198
  auth: "admin"
14199
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
14200
+ location: string(),
14201
+ description: string().max(400).nullable()
14202
+ }), _void(), {
14203
+ kind: "mutation",
14204
+ auth: "admin"
14205
+ }), method(_void(), array(SiteZoneSchema)), method(object({
14206
+ name: string(),
14207
+ icon: LocationIconIdSchema.nullable().optional()
14208
+ }), _void(), {
14209
+ kind: "mutation",
14210
+ auth: "admin"
14211
+ }), method(object({ name: string() }), _void(), {
14212
+ kind: "mutation",
14213
+ auth: "admin"
14214
+ }), method(object({
14215
+ from: string(),
14216
+ to: string()
14217
+ }), _void(), {
14218
+ kind: "mutation",
14219
+ auth: "admin"
14220
+ }), method(object({
14221
+ location: string(),
14222
+ zone: string().nullable()
14223
+ }), _void(), {
14224
+ kind: "mutation",
14225
+ auth: "admin"
14135
14226
  }), method(object({
14136
14227
  deviceId: number(),
14137
14228
  disabled: boolean()
@@ -36772,6 +36863,12 @@ Object.freeze({
36772
36863
  addonId: null,
36773
36864
  access: "view"
36774
36865
  },
36866
+ "deviceManager.listLocationDescriptions": {
36867
+ capName: "device-manager",
36868
+ capScope: "system",
36869
+ addonId: null,
36870
+ access: "view"
36871
+ },
36775
36872
  "deviceManager.listLocationIcons": {
36776
36873
  capName: "device-manager",
36777
36874
  capScope: "system",
@@ -36790,6 +36887,12 @@ Object.freeze({
36790
36887
  addonId: null,
36791
36888
  access: "view"
36792
36889
  },
36890
+ "deviceManager.listSiteZones": {
36891
+ capName: "device-manager",
36892
+ capScope: "system",
36893
+ addonId: null,
36894
+ access: "view"
36895
+ },
36793
36896
  "deviceManager.listWrappersForCap": {
36794
36897
  capName: "device-manager",
36795
36898
  capScope: "system",
@@ -36874,12 +36977,24 @@ Object.freeze({
36874
36977
  addonId: null,
36875
36978
  access: "delete"
36876
36979
  },
36980
+ "deviceManager.removeSiteZone": {
36981
+ capName: "device-manager",
36982
+ capScope: "system",
36983
+ addonId: null,
36984
+ access: "delete"
36985
+ },
36877
36986
  "deviceManager.renameLocation": {
36878
36987
  capName: "device-manager",
36879
36988
  capScope: "system",
36880
36989
  addonId: null,
36881
36990
  access: "create"
36882
36991
  },
36992
+ "deviceManager.renameSiteZone": {
36993
+ capName: "device-manager",
36994
+ capScope: "system",
36995
+ addonId: null,
36996
+ access: "create"
36997
+ },
36883
36998
  "deviceManager.runDeviceAction": {
36884
36999
  capName: "device-manager",
36885
37000
  capScope: "system",
@@ -36922,12 +37037,24 @@ Object.freeze({
36922
37037
  addonId: null,
36923
37038
  access: "create"
36924
37039
  },
37040
+ "deviceManager.setLocationDescription": {
37041
+ capName: "device-manager",
37042
+ capScope: "system",
37043
+ addonId: null,
37044
+ access: "create"
37045
+ },
36925
37046
  "deviceManager.setLocationIcon": {
36926
37047
  capName: "device-manager",
36927
37048
  capScope: "system",
36928
37049
  addonId: null,
36929
37050
  access: "create"
36930
37051
  },
37052
+ "deviceManager.setLocationZone": {
37053
+ capName: "device-manager",
37054
+ capScope: "system",
37055
+ addonId: null,
37056
+ access: "create"
37057
+ },
36931
37058
  "deviceManager.setMetadata": {
36932
37059
  capName: "device-manager",
36933
37060
  capScope: "system",
@@ -36958,6 +37085,12 @@ Object.freeze({
36958
37085
  addonId: null,
36959
37086
  access: "create"
36960
37087
  },
37088
+ "deviceManager.setSiteZone": {
37089
+ capName: "device-manager",
37090
+ capScope: "system",
37091
+ addonId: null,
37092
+ access: "create"
37093
+ },
36961
37094
  "deviceManager.setStreamProfileMap": {
36962
37095
  capName: "device-manager",
36963
37096
  capScope: "system",
package/dist/addon.mjs CHANGED
@@ -13592,6 +13592,70 @@ var LocationIconAssignmentSchema = object({
13592
13592
  locationKey: string(),
13593
13593
  icon: LocationIconIdSchema
13594
13594
  });
13595
+ /**
13596
+ * One (location, description) assignment as it travels.
13597
+ *
13598
+ * Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
13599
+ * reason: this lived for a while in the post-analysis addon's own settings,
13600
+ * keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
13601
+ * the Locations page carried the icon and silently orphaned the description —
13602
+ * two authorities for one thing, joined by two different rules. Now both hang
13603
+ * off the location itself, on `locationIconKey`.
13604
+ */
13605
+ var LocationDescriptionAssignmentSchema = object({
13606
+ locationKey: string(),
13607
+ description: string()
13608
+ });
13609
+ /**
13610
+ * A SITE ZONE — a named part of the property that several locations belong to.
13611
+ *
13612
+ * "Zona notte" holds every bedroom; "Zona giorno" the living room and the
13613
+ * kitchen. A camera belongs to exactly one location, and a location to at most
13614
+ * one zone, so a camera's zone is derived and never stored on the device: the
13615
+ * whole point of this entity is that grouping rooms touches no device row.
13616
+ *
13617
+ * ## Why not `zone`
13618
+ *
13619
+ * Because `zone` is already the most loaded word in this product: 612 source
13620
+ * files and 24 Italian strings where it means a DETECTION zone drawn on a
13621
+ * camera. The two are unrelated — one is a polygon in a frame, the other is a
13622
+ * set of rooms — and a reader who confuses them will look for a camera's
13623
+ * bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
13624
+ * word by calling the drawn one what it actually is: a detection zone.
13625
+ *
13626
+ * ## The key
13627
+ *
13628
+ * `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
13629
+ * use (`locationIconKey`). Membership and the icon both hang off it, so a
13630
+ * case-only rename keeps them, which is exactly the orphaning that cost us a
13631
+ * silently-dropped location description.
13632
+ *
13633
+ * The icon vocabulary is the location one, unchanged: a zone is drawn on the
13634
+ * same two surfaces by the same glyph map, so a second vocabulary would be a
13635
+ * second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
13636
+ */
13637
+ /**
13638
+ * One zone as it travels: its key, the label the operator typed, its icon and
13639
+ * the locations inside it.
13640
+ *
13641
+ * The LABEL is carried alongside the key because the key is lossy on purpose —
13642
+ * a surface must show "Zona notte", not "zona notte". Locations are carried
13643
+ * here, rather than left to a second call, because every consumer wants both
13644
+ * at once and a viewer that asked twice could render a zone whose membership
13645
+ * it has not fetched yet.
13646
+ *
13647
+ * `icon: null` means nobody chose one, which is NOT the fallback pin: only one
13648
+ * of those two is a choice, and a picker has to draw them differently.
13649
+ */
13650
+ var SiteZoneSchema = object({
13651
+ zoneKey: string(),
13652
+ label: string(),
13653
+ icon: LocationIconIdSchema.nullable(),
13654
+ /** Folded location keys, sorted. A location listed here need not be
13655
+ * REGISTERED — devices carry labels nobody registered, and those rooms are
13656
+ * the ones that most want grouping. */
13657
+ locationKeys: array(string())
13658
+ });
13595
13659
  var ProviderStatusSchema = object({
13596
13660
  connected: boolean(),
13597
13661
  deviceCount: number(),
@@ -14109,6 +14173,33 @@ method(object({
14109
14173
  }), _void(), {
14110
14174
  kind: "mutation",
14111
14175
  auth: "admin"
14176
+ }), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
14177
+ location: string(),
14178
+ description: string().max(400).nullable()
14179
+ }), _void(), {
14180
+ kind: "mutation",
14181
+ auth: "admin"
14182
+ }), method(_void(), array(SiteZoneSchema)), method(object({
14183
+ name: string(),
14184
+ icon: LocationIconIdSchema.nullable().optional()
14185
+ }), _void(), {
14186
+ kind: "mutation",
14187
+ auth: "admin"
14188
+ }), method(object({ name: string() }), _void(), {
14189
+ kind: "mutation",
14190
+ auth: "admin"
14191
+ }), method(object({
14192
+ from: string(),
14193
+ to: string()
14194
+ }), _void(), {
14195
+ kind: "mutation",
14196
+ auth: "admin"
14197
+ }), method(object({
14198
+ location: string(),
14199
+ zone: string().nullable()
14200
+ }), _void(), {
14201
+ kind: "mutation",
14202
+ auth: "admin"
14112
14203
  }), method(object({
14113
14204
  deviceId: number(),
14114
14205
  disabled: boolean()
@@ -36749,6 +36840,12 @@ Object.freeze({
36749
36840
  addonId: null,
36750
36841
  access: "view"
36751
36842
  },
36843
+ "deviceManager.listLocationDescriptions": {
36844
+ capName: "device-manager",
36845
+ capScope: "system",
36846
+ addonId: null,
36847
+ access: "view"
36848
+ },
36752
36849
  "deviceManager.listLocationIcons": {
36753
36850
  capName: "device-manager",
36754
36851
  capScope: "system",
@@ -36767,6 +36864,12 @@ Object.freeze({
36767
36864
  addonId: null,
36768
36865
  access: "view"
36769
36866
  },
36867
+ "deviceManager.listSiteZones": {
36868
+ capName: "device-manager",
36869
+ capScope: "system",
36870
+ addonId: null,
36871
+ access: "view"
36872
+ },
36770
36873
  "deviceManager.listWrappersForCap": {
36771
36874
  capName: "device-manager",
36772
36875
  capScope: "system",
@@ -36851,12 +36954,24 @@ Object.freeze({
36851
36954
  addonId: null,
36852
36955
  access: "delete"
36853
36956
  },
36957
+ "deviceManager.removeSiteZone": {
36958
+ capName: "device-manager",
36959
+ capScope: "system",
36960
+ addonId: null,
36961
+ access: "delete"
36962
+ },
36854
36963
  "deviceManager.renameLocation": {
36855
36964
  capName: "device-manager",
36856
36965
  capScope: "system",
36857
36966
  addonId: null,
36858
36967
  access: "create"
36859
36968
  },
36969
+ "deviceManager.renameSiteZone": {
36970
+ capName: "device-manager",
36971
+ capScope: "system",
36972
+ addonId: null,
36973
+ access: "create"
36974
+ },
36860
36975
  "deviceManager.runDeviceAction": {
36861
36976
  capName: "device-manager",
36862
36977
  capScope: "system",
@@ -36899,12 +37014,24 @@ Object.freeze({
36899
37014
  addonId: null,
36900
37015
  access: "create"
36901
37016
  },
37017
+ "deviceManager.setLocationDescription": {
37018
+ capName: "device-manager",
37019
+ capScope: "system",
37020
+ addonId: null,
37021
+ access: "create"
37022
+ },
36902
37023
  "deviceManager.setLocationIcon": {
36903
37024
  capName: "device-manager",
36904
37025
  capScope: "system",
36905
37026
  addonId: null,
36906
37027
  access: "create"
36907
37028
  },
37029
+ "deviceManager.setLocationZone": {
37030
+ capName: "device-manager",
37031
+ capScope: "system",
37032
+ addonId: null,
37033
+ access: "create"
37034
+ },
36908
37035
  "deviceManager.setMetadata": {
36909
37036
  capName: "device-manager",
36910
37037
  capScope: "system",
@@ -36935,6 +37062,12 @@ Object.freeze({
36935
37062
  addonId: null,
36936
37063
  access: "create"
36937
37064
  },
37065
+ "deviceManager.setSiteZone": {
37066
+ capName: "device-manager",
37067
+ capScope: "system",
37068
+ addonId: null,
37069
+ access: "create"
37070
+ },
36938
37071
  "deviceManager.setStreamProfileMap": {
36939
37072
  capName: "device-manager",
36940
37073
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-terminal",
3
- "version": "0.1.111",
3
+ "version": "0.1.112",
4
4
  "description": "Interactive terminal sessions (pty + xterm) as a CamStack addon",
5
5
  "keywords": [
6
6
  "camstack",