@camstack/addon-provider-hikvision 1.2.114 → 1.2.115
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
|
@@ -13804,6 +13804,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13804
13804
|
locationKey: string(),
|
|
13805
13805
|
icon: LocationIconIdSchema
|
|
13806
13806
|
});
|
|
13807
|
+
/**
|
|
13808
|
+
* One (location, description) assignment as it travels.
|
|
13809
|
+
*
|
|
13810
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13811
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13812
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13813
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13814
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13815
|
+
* off the location itself, on `locationIconKey`.
|
|
13816
|
+
*/
|
|
13817
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13818
|
+
locationKey: string(),
|
|
13819
|
+
description: string()
|
|
13820
|
+
});
|
|
13821
|
+
/**
|
|
13822
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13823
|
+
*
|
|
13824
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13825
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13826
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13827
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13828
|
+
*
|
|
13829
|
+
* ## Why not `zone`
|
|
13830
|
+
*
|
|
13831
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13832
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13833
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13834
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13835
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13836
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13837
|
+
*
|
|
13838
|
+
* ## The key
|
|
13839
|
+
*
|
|
13840
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13841
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13842
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13843
|
+
* silently-dropped location description.
|
|
13844
|
+
*
|
|
13845
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13846
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13847
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13848
|
+
*/
|
|
13849
|
+
/**
|
|
13850
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13851
|
+
* the locations inside it.
|
|
13852
|
+
*
|
|
13853
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13854
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13855
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13856
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13857
|
+
* it has not fetched yet.
|
|
13858
|
+
*
|
|
13859
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13860
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13861
|
+
*/
|
|
13862
|
+
var SiteZoneSchema = object({
|
|
13863
|
+
zoneKey: string(),
|
|
13864
|
+
label: string(),
|
|
13865
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13866
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13867
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13868
|
+
* the ones that most want grouping. */
|
|
13869
|
+
locationKeys: array(string())
|
|
13870
|
+
});
|
|
13807
13871
|
var ProviderStatusSchema = object({
|
|
13808
13872
|
connected: boolean(),
|
|
13809
13873
|
deviceCount: number(),
|
|
@@ -14402,6 +14466,33 @@ method(object({
|
|
|
14402
14466
|
}), _void(), {
|
|
14403
14467
|
kind: "mutation",
|
|
14404
14468
|
auth: "admin"
|
|
14469
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14470
|
+
location: string(),
|
|
14471
|
+
description: string().max(400).nullable()
|
|
14472
|
+
}), _void(), {
|
|
14473
|
+
kind: "mutation",
|
|
14474
|
+
auth: "admin"
|
|
14475
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14476
|
+
name: string(),
|
|
14477
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14478
|
+
}), _void(), {
|
|
14479
|
+
kind: "mutation",
|
|
14480
|
+
auth: "admin"
|
|
14481
|
+
}), method(object({ name: string() }), _void(), {
|
|
14482
|
+
kind: "mutation",
|
|
14483
|
+
auth: "admin"
|
|
14484
|
+
}), method(object({
|
|
14485
|
+
from: string(),
|
|
14486
|
+
to: string()
|
|
14487
|
+
}), _void(), {
|
|
14488
|
+
kind: "mutation",
|
|
14489
|
+
auth: "admin"
|
|
14490
|
+
}), method(object({
|
|
14491
|
+
location: string(),
|
|
14492
|
+
zone: string().nullable()
|
|
14493
|
+
}), _void(), {
|
|
14494
|
+
kind: "mutation",
|
|
14495
|
+
auth: "admin"
|
|
14405
14496
|
}), method(object({
|
|
14406
14497
|
deviceId: number(),
|
|
14407
14498
|
disabled: boolean()
|
|
@@ -38024,6 +38115,12 @@ Object.freeze({
|
|
|
38024
38115
|
addonId: null,
|
|
38025
38116
|
access: "view"
|
|
38026
38117
|
},
|
|
38118
|
+
"deviceManager.listLocationDescriptions": {
|
|
38119
|
+
capName: "device-manager",
|
|
38120
|
+
capScope: "system",
|
|
38121
|
+
addonId: null,
|
|
38122
|
+
access: "view"
|
|
38123
|
+
},
|
|
38027
38124
|
"deviceManager.listLocationIcons": {
|
|
38028
38125
|
capName: "device-manager",
|
|
38029
38126
|
capScope: "system",
|
|
@@ -38042,6 +38139,12 @@ Object.freeze({
|
|
|
38042
38139
|
addonId: null,
|
|
38043
38140
|
access: "view"
|
|
38044
38141
|
},
|
|
38142
|
+
"deviceManager.listSiteZones": {
|
|
38143
|
+
capName: "device-manager",
|
|
38144
|
+
capScope: "system",
|
|
38145
|
+
addonId: null,
|
|
38146
|
+
access: "view"
|
|
38147
|
+
},
|
|
38045
38148
|
"deviceManager.listWrappersForCap": {
|
|
38046
38149
|
capName: "device-manager",
|
|
38047
38150
|
capScope: "system",
|
|
@@ -38126,12 +38229,24 @@ Object.freeze({
|
|
|
38126
38229
|
addonId: null,
|
|
38127
38230
|
access: "delete"
|
|
38128
38231
|
},
|
|
38232
|
+
"deviceManager.removeSiteZone": {
|
|
38233
|
+
capName: "device-manager",
|
|
38234
|
+
capScope: "system",
|
|
38235
|
+
addonId: null,
|
|
38236
|
+
access: "delete"
|
|
38237
|
+
},
|
|
38129
38238
|
"deviceManager.renameLocation": {
|
|
38130
38239
|
capName: "device-manager",
|
|
38131
38240
|
capScope: "system",
|
|
38132
38241
|
addonId: null,
|
|
38133
38242
|
access: "create"
|
|
38134
38243
|
},
|
|
38244
|
+
"deviceManager.renameSiteZone": {
|
|
38245
|
+
capName: "device-manager",
|
|
38246
|
+
capScope: "system",
|
|
38247
|
+
addonId: null,
|
|
38248
|
+
access: "create"
|
|
38249
|
+
},
|
|
38135
38250
|
"deviceManager.runDeviceAction": {
|
|
38136
38251
|
capName: "device-manager",
|
|
38137
38252
|
capScope: "system",
|
|
@@ -38174,12 +38289,24 @@ Object.freeze({
|
|
|
38174
38289
|
addonId: null,
|
|
38175
38290
|
access: "create"
|
|
38176
38291
|
},
|
|
38292
|
+
"deviceManager.setLocationDescription": {
|
|
38293
|
+
capName: "device-manager",
|
|
38294
|
+
capScope: "system",
|
|
38295
|
+
addonId: null,
|
|
38296
|
+
access: "create"
|
|
38297
|
+
},
|
|
38177
38298
|
"deviceManager.setLocationIcon": {
|
|
38178
38299
|
capName: "device-manager",
|
|
38179
38300
|
capScope: "system",
|
|
38180
38301
|
addonId: null,
|
|
38181
38302
|
access: "create"
|
|
38182
38303
|
},
|
|
38304
|
+
"deviceManager.setLocationZone": {
|
|
38305
|
+
capName: "device-manager",
|
|
38306
|
+
capScope: "system",
|
|
38307
|
+
addonId: null,
|
|
38308
|
+
access: "create"
|
|
38309
|
+
},
|
|
38183
38310
|
"deviceManager.setMetadata": {
|
|
38184
38311
|
capName: "device-manager",
|
|
38185
38312
|
capScope: "system",
|
|
@@ -38210,6 +38337,12 @@ Object.freeze({
|
|
|
38210
38337
|
addonId: null,
|
|
38211
38338
|
access: "create"
|
|
38212
38339
|
},
|
|
38340
|
+
"deviceManager.setSiteZone": {
|
|
38341
|
+
capName: "device-manager",
|
|
38342
|
+
capScope: "system",
|
|
38343
|
+
addonId: null,
|
|
38344
|
+
access: "create"
|
|
38345
|
+
},
|
|
38213
38346
|
"deviceManager.setStreamProfileMap": {
|
|
38214
38347
|
capName: "device-manager",
|
|
38215
38348
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -13805,6 +13805,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13805
13805
|
locationKey: string(),
|
|
13806
13806
|
icon: LocationIconIdSchema
|
|
13807
13807
|
});
|
|
13808
|
+
/**
|
|
13809
|
+
* One (location, description) assignment as it travels.
|
|
13810
|
+
*
|
|
13811
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13812
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13813
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13814
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13815
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13816
|
+
* off the location itself, on `locationIconKey`.
|
|
13817
|
+
*/
|
|
13818
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13819
|
+
locationKey: string(),
|
|
13820
|
+
description: string()
|
|
13821
|
+
});
|
|
13822
|
+
/**
|
|
13823
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13824
|
+
*
|
|
13825
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13826
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13827
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13828
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13829
|
+
*
|
|
13830
|
+
* ## Why not `zone`
|
|
13831
|
+
*
|
|
13832
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13833
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13834
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13835
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13836
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13837
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13838
|
+
*
|
|
13839
|
+
* ## The key
|
|
13840
|
+
*
|
|
13841
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13842
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13843
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13844
|
+
* silently-dropped location description.
|
|
13845
|
+
*
|
|
13846
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13847
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13848
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13849
|
+
*/
|
|
13850
|
+
/**
|
|
13851
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13852
|
+
* the locations inside it.
|
|
13853
|
+
*
|
|
13854
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13855
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13856
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13857
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13858
|
+
* it has not fetched yet.
|
|
13859
|
+
*
|
|
13860
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13861
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13862
|
+
*/
|
|
13863
|
+
var SiteZoneSchema = object({
|
|
13864
|
+
zoneKey: string(),
|
|
13865
|
+
label: string(),
|
|
13866
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13867
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13868
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13869
|
+
* the ones that most want grouping. */
|
|
13870
|
+
locationKeys: array(string())
|
|
13871
|
+
});
|
|
13808
13872
|
var ProviderStatusSchema = object({
|
|
13809
13873
|
connected: boolean(),
|
|
13810
13874
|
deviceCount: number(),
|
|
@@ -14403,6 +14467,33 @@ method(object({
|
|
|
14403
14467
|
}), _void(), {
|
|
14404
14468
|
kind: "mutation",
|
|
14405
14469
|
auth: "admin"
|
|
14470
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14471
|
+
location: string(),
|
|
14472
|
+
description: string().max(400).nullable()
|
|
14473
|
+
}), _void(), {
|
|
14474
|
+
kind: "mutation",
|
|
14475
|
+
auth: "admin"
|
|
14476
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14477
|
+
name: string(),
|
|
14478
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14479
|
+
}), _void(), {
|
|
14480
|
+
kind: "mutation",
|
|
14481
|
+
auth: "admin"
|
|
14482
|
+
}), method(object({ name: string() }), _void(), {
|
|
14483
|
+
kind: "mutation",
|
|
14484
|
+
auth: "admin"
|
|
14485
|
+
}), method(object({
|
|
14486
|
+
from: string(),
|
|
14487
|
+
to: string()
|
|
14488
|
+
}), _void(), {
|
|
14489
|
+
kind: "mutation",
|
|
14490
|
+
auth: "admin"
|
|
14491
|
+
}), method(object({
|
|
14492
|
+
location: string(),
|
|
14493
|
+
zone: string().nullable()
|
|
14494
|
+
}), _void(), {
|
|
14495
|
+
kind: "mutation",
|
|
14496
|
+
auth: "admin"
|
|
14406
14497
|
}), method(object({
|
|
14407
14498
|
deviceId: number(),
|
|
14408
14499
|
disabled: boolean()
|
|
@@ -38025,6 +38116,12 @@ Object.freeze({
|
|
|
38025
38116
|
addonId: null,
|
|
38026
38117
|
access: "view"
|
|
38027
38118
|
},
|
|
38119
|
+
"deviceManager.listLocationDescriptions": {
|
|
38120
|
+
capName: "device-manager",
|
|
38121
|
+
capScope: "system",
|
|
38122
|
+
addonId: null,
|
|
38123
|
+
access: "view"
|
|
38124
|
+
},
|
|
38028
38125
|
"deviceManager.listLocationIcons": {
|
|
38029
38126
|
capName: "device-manager",
|
|
38030
38127
|
capScope: "system",
|
|
@@ -38043,6 +38140,12 @@ Object.freeze({
|
|
|
38043
38140
|
addonId: null,
|
|
38044
38141
|
access: "view"
|
|
38045
38142
|
},
|
|
38143
|
+
"deviceManager.listSiteZones": {
|
|
38144
|
+
capName: "device-manager",
|
|
38145
|
+
capScope: "system",
|
|
38146
|
+
addonId: null,
|
|
38147
|
+
access: "view"
|
|
38148
|
+
},
|
|
38046
38149
|
"deviceManager.listWrappersForCap": {
|
|
38047
38150
|
capName: "device-manager",
|
|
38048
38151
|
capScope: "system",
|
|
@@ -38127,12 +38230,24 @@ Object.freeze({
|
|
|
38127
38230
|
addonId: null,
|
|
38128
38231
|
access: "delete"
|
|
38129
38232
|
},
|
|
38233
|
+
"deviceManager.removeSiteZone": {
|
|
38234
|
+
capName: "device-manager",
|
|
38235
|
+
capScope: "system",
|
|
38236
|
+
addonId: null,
|
|
38237
|
+
access: "delete"
|
|
38238
|
+
},
|
|
38130
38239
|
"deviceManager.renameLocation": {
|
|
38131
38240
|
capName: "device-manager",
|
|
38132
38241
|
capScope: "system",
|
|
38133
38242
|
addonId: null,
|
|
38134
38243
|
access: "create"
|
|
38135
38244
|
},
|
|
38245
|
+
"deviceManager.renameSiteZone": {
|
|
38246
|
+
capName: "device-manager",
|
|
38247
|
+
capScope: "system",
|
|
38248
|
+
addonId: null,
|
|
38249
|
+
access: "create"
|
|
38250
|
+
},
|
|
38136
38251
|
"deviceManager.runDeviceAction": {
|
|
38137
38252
|
capName: "device-manager",
|
|
38138
38253
|
capScope: "system",
|
|
@@ -38175,12 +38290,24 @@ Object.freeze({
|
|
|
38175
38290
|
addonId: null,
|
|
38176
38291
|
access: "create"
|
|
38177
38292
|
},
|
|
38293
|
+
"deviceManager.setLocationDescription": {
|
|
38294
|
+
capName: "device-manager",
|
|
38295
|
+
capScope: "system",
|
|
38296
|
+
addonId: null,
|
|
38297
|
+
access: "create"
|
|
38298
|
+
},
|
|
38178
38299
|
"deviceManager.setLocationIcon": {
|
|
38179
38300
|
capName: "device-manager",
|
|
38180
38301
|
capScope: "system",
|
|
38181
38302
|
addonId: null,
|
|
38182
38303
|
access: "create"
|
|
38183
38304
|
},
|
|
38305
|
+
"deviceManager.setLocationZone": {
|
|
38306
|
+
capName: "device-manager",
|
|
38307
|
+
capScope: "system",
|
|
38308
|
+
addonId: null,
|
|
38309
|
+
access: "create"
|
|
38310
|
+
},
|
|
38184
38311
|
"deviceManager.setMetadata": {
|
|
38185
38312
|
capName: "device-manager",
|
|
38186
38313
|
capScope: "system",
|
|
@@ -38211,6 +38338,12 @@ Object.freeze({
|
|
|
38211
38338
|
addonId: null,
|
|
38212
38339
|
access: "create"
|
|
38213
38340
|
},
|
|
38341
|
+
"deviceManager.setSiteZone": {
|
|
38342
|
+
capName: "device-manager",
|
|
38343
|
+
capScope: "system",
|
|
38344
|
+
addonId: null,
|
|
38345
|
+
access: "create"
|
|
38346
|
+
},
|
|
38214
38347
|
"deviceManager.setStreamProfileMap": {
|
|
38215
38348
|
capName: "device-manager",
|
|
38216
38349
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-hikvision",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.115",
|
|
4
4
|
"description": "Hikvision camera device provider addon for CamStack — ISAPI over HTTP(S) with digest auth (snapshot, alarm stream, RTSP discovery)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|