@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 +133 -0
- package/dist/addon.mjs +133 -0
- package/package.json +1 -1
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",
|