@camstack/addon-provider-wyze 0.2.110 → 0.2.111
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
|
@@ -13565,6 +13565,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13565
13565
|
locationKey: string(),
|
|
13566
13566
|
icon: LocationIconIdSchema
|
|
13567
13567
|
});
|
|
13568
|
+
/**
|
|
13569
|
+
* One (location, description) assignment as it travels.
|
|
13570
|
+
*
|
|
13571
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13572
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13573
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13574
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13575
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13576
|
+
* off the location itself, on `locationIconKey`.
|
|
13577
|
+
*/
|
|
13578
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13579
|
+
locationKey: string(),
|
|
13580
|
+
description: string()
|
|
13581
|
+
});
|
|
13582
|
+
/**
|
|
13583
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13584
|
+
*
|
|
13585
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13586
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13587
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13588
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13589
|
+
*
|
|
13590
|
+
* ## Why not `zone`
|
|
13591
|
+
*
|
|
13592
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13593
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13594
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13595
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13596
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13597
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13598
|
+
*
|
|
13599
|
+
* ## The key
|
|
13600
|
+
*
|
|
13601
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13602
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13603
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13604
|
+
* silently-dropped location description.
|
|
13605
|
+
*
|
|
13606
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13607
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13608
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13609
|
+
*/
|
|
13610
|
+
/**
|
|
13611
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13612
|
+
* the locations inside it.
|
|
13613
|
+
*
|
|
13614
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13615
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13616
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13617
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13618
|
+
* it has not fetched yet.
|
|
13619
|
+
*
|
|
13620
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13621
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13622
|
+
*/
|
|
13623
|
+
var SiteZoneSchema = object({
|
|
13624
|
+
zoneKey: string(),
|
|
13625
|
+
label: string(),
|
|
13626
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13627
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13628
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13629
|
+
* the ones that most want grouping. */
|
|
13630
|
+
locationKeys: array(string())
|
|
13631
|
+
});
|
|
13568
13632
|
var ProviderStatusSchema = object({
|
|
13569
13633
|
connected: boolean(),
|
|
13570
13634
|
deviceCount: number(),
|
|
@@ -14163,6 +14227,33 @@ method(object({
|
|
|
14163
14227
|
}), _void(), {
|
|
14164
14228
|
kind: "mutation",
|
|
14165
14229
|
auth: "admin"
|
|
14230
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14231
|
+
location: string(),
|
|
14232
|
+
description: string().max(400).nullable()
|
|
14233
|
+
}), _void(), {
|
|
14234
|
+
kind: "mutation",
|
|
14235
|
+
auth: "admin"
|
|
14236
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14237
|
+
name: string(),
|
|
14238
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14239
|
+
}), _void(), {
|
|
14240
|
+
kind: "mutation",
|
|
14241
|
+
auth: "admin"
|
|
14242
|
+
}), method(object({ name: string() }), _void(), {
|
|
14243
|
+
kind: "mutation",
|
|
14244
|
+
auth: "admin"
|
|
14245
|
+
}), method(object({
|
|
14246
|
+
from: string(),
|
|
14247
|
+
to: string()
|
|
14248
|
+
}), _void(), {
|
|
14249
|
+
kind: "mutation",
|
|
14250
|
+
auth: "admin"
|
|
14251
|
+
}), method(object({
|
|
14252
|
+
location: string(),
|
|
14253
|
+
zone: string().nullable()
|
|
14254
|
+
}), _void(), {
|
|
14255
|
+
kind: "mutation",
|
|
14256
|
+
auth: "admin"
|
|
14166
14257
|
}), method(object({
|
|
14167
14258
|
deviceId: number(),
|
|
14168
14259
|
disabled: boolean()
|
|
@@ -37185,6 +37276,12 @@ Object.freeze({
|
|
|
37185
37276
|
addonId: null,
|
|
37186
37277
|
access: "view"
|
|
37187
37278
|
},
|
|
37279
|
+
"deviceManager.listLocationDescriptions": {
|
|
37280
|
+
capName: "device-manager",
|
|
37281
|
+
capScope: "system",
|
|
37282
|
+
addonId: null,
|
|
37283
|
+
access: "view"
|
|
37284
|
+
},
|
|
37188
37285
|
"deviceManager.listLocationIcons": {
|
|
37189
37286
|
capName: "device-manager",
|
|
37190
37287
|
capScope: "system",
|
|
@@ -37203,6 +37300,12 @@ Object.freeze({
|
|
|
37203
37300
|
addonId: null,
|
|
37204
37301
|
access: "view"
|
|
37205
37302
|
},
|
|
37303
|
+
"deviceManager.listSiteZones": {
|
|
37304
|
+
capName: "device-manager",
|
|
37305
|
+
capScope: "system",
|
|
37306
|
+
addonId: null,
|
|
37307
|
+
access: "view"
|
|
37308
|
+
},
|
|
37206
37309
|
"deviceManager.listWrappersForCap": {
|
|
37207
37310
|
capName: "device-manager",
|
|
37208
37311
|
capScope: "system",
|
|
@@ -37287,12 +37390,24 @@ Object.freeze({
|
|
|
37287
37390
|
addonId: null,
|
|
37288
37391
|
access: "delete"
|
|
37289
37392
|
},
|
|
37393
|
+
"deviceManager.removeSiteZone": {
|
|
37394
|
+
capName: "device-manager",
|
|
37395
|
+
capScope: "system",
|
|
37396
|
+
addonId: null,
|
|
37397
|
+
access: "delete"
|
|
37398
|
+
},
|
|
37290
37399
|
"deviceManager.renameLocation": {
|
|
37291
37400
|
capName: "device-manager",
|
|
37292
37401
|
capScope: "system",
|
|
37293
37402
|
addonId: null,
|
|
37294
37403
|
access: "create"
|
|
37295
37404
|
},
|
|
37405
|
+
"deviceManager.renameSiteZone": {
|
|
37406
|
+
capName: "device-manager",
|
|
37407
|
+
capScope: "system",
|
|
37408
|
+
addonId: null,
|
|
37409
|
+
access: "create"
|
|
37410
|
+
},
|
|
37296
37411
|
"deviceManager.runDeviceAction": {
|
|
37297
37412
|
capName: "device-manager",
|
|
37298
37413
|
capScope: "system",
|
|
@@ -37335,12 +37450,24 @@ Object.freeze({
|
|
|
37335
37450
|
addonId: null,
|
|
37336
37451
|
access: "create"
|
|
37337
37452
|
},
|
|
37453
|
+
"deviceManager.setLocationDescription": {
|
|
37454
|
+
capName: "device-manager",
|
|
37455
|
+
capScope: "system",
|
|
37456
|
+
addonId: null,
|
|
37457
|
+
access: "create"
|
|
37458
|
+
},
|
|
37338
37459
|
"deviceManager.setLocationIcon": {
|
|
37339
37460
|
capName: "device-manager",
|
|
37340
37461
|
capScope: "system",
|
|
37341
37462
|
addonId: null,
|
|
37342
37463
|
access: "create"
|
|
37343
37464
|
},
|
|
37465
|
+
"deviceManager.setLocationZone": {
|
|
37466
|
+
capName: "device-manager",
|
|
37467
|
+
capScope: "system",
|
|
37468
|
+
addonId: null,
|
|
37469
|
+
access: "create"
|
|
37470
|
+
},
|
|
37344
37471
|
"deviceManager.setMetadata": {
|
|
37345
37472
|
capName: "device-manager",
|
|
37346
37473
|
capScope: "system",
|
|
@@ -37371,6 +37498,12 @@ Object.freeze({
|
|
|
37371
37498
|
addonId: null,
|
|
37372
37499
|
access: "create"
|
|
37373
37500
|
},
|
|
37501
|
+
"deviceManager.setSiteZone": {
|
|
37502
|
+
capName: "device-manager",
|
|
37503
|
+
capScope: "system",
|
|
37504
|
+
addonId: null,
|
|
37505
|
+
access: "create"
|
|
37506
|
+
},
|
|
37374
37507
|
"deviceManager.setStreamProfileMap": {
|
|
37375
37508
|
capName: "device-manager",
|
|
37376
37509
|
capScope: "system",
|
package/dist/addon.mjs
CHANGED
|
@@ -13544,6 +13544,70 @@ var LocationIconAssignmentSchema = object({
|
|
|
13544
13544
|
locationKey: string(),
|
|
13545
13545
|
icon: LocationIconIdSchema
|
|
13546
13546
|
});
|
|
13547
|
+
/**
|
|
13548
|
+
* One (location, description) assignment as it travels.
|
|
13549
|
+
*
|
|
13550
|
+
* Same key discipline as {@link LocationIconAssignmentSchema}, and for the same
|
|
13551
|
+
* reason: this lived for a while in the post-analysis addon's own settings,
|
|
13552
|
+
* keyed by a HAND-TYPED label matched exactly and case-sensitively. A rename in
|
|
13553
|
+
* the Locations page carried the icon and silently orphaned the description —
|
|
13554
|
+
* two authorities for one thing, joined by two different rules. Now both hang
|
|
13555
|
+
* off the location itself, on `locationIconKey`.
|
|
13556
|
+
*/
|
|
13557
|
+
var LocationDescriptionAssignmentSchema = object({
|
|
13558
|
+
locationKey: string(),
|
|
13559
|
+
description: string()
|
|
13560
|
+
});
|
|
13561
|
+
/**
|
|
13562
|
+
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
13563
|
+
*
|
|
13564
|
+
* "Zona notte" holds every bedroom; "Zona giorno" the living room and the
|
|
13565
|
+
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
13566
|
+
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
13567
|
+
* whole point of this entity is that grouping rooms touches no device row.
|
|
13568
|
+
*
|
|
13569
|
+
* ## Why not `zone`
|
|
13570
|
+
*
|
|
13571
|
+
* Because `zone` is already the most loaded word in this product: 612 source
|
|
13572
|
+
* files and 24 Italian strings where it means a DETECTION zone drawn on a
|
|
13573
|
+
* camera. The two are unrelated — one is a polygon in a frame, the other is a
|
|
13574
|
+
* set of rooms — and a reader who confuses them will look for a camera's
|
|
13575
|
+
* bedrooms. So the code says `siteZone` everywhere, and the UI frees the plain
|
|
13576
|
+
* word by calling the drawn one what it actually is: a detection zone.
|
|
13577
|
+
*
|
|
13578
|
+
* ## The key
|
|
13579
|
+
*
|
|
13580
|
+
* `siteZoneKey(label)` — trimmed, lower-cased, the SAME derivation locations
|
|
13581
|
+
* use (`locationIconKey`). Membership and the icon both hang off it, so a
|
|
13582
|
+
* case-only rename keeps them, which is exactly the orphaning that cost us a
|
|
13583
|
+
* silently-dropped location description.
|
|
13584
|
+
*
|
|
13585
|
+
* The icon vocabulary is the location one, unchanged: a zone is drawn on the
|
|
13586
|
+
* same two surfaces by the same glyph map, so a second vocabulary would be a
|
|
13587
|
+
* second thing to keep drawable (`scripts/check-location-icons-drawable.ts`).
|
|
13588
|
+
*/
|
|
13589
|
+
/**
|
|
13590
|
+
* One zone as it travels: its key, the label the operator typed, its icon and
|
|
13591
|
+
* the locations inside it.
|
|
13592
|
+
*
|
|
13593
|
+
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
13594
|
+
* a surface must show "Zona notte", not "zona notte". Locations are carried
|
|
13595
|
+
* here, rather than left to a second call, because every consumer wants both
|
|
13596
|
+
* at once and a viewer that asked twice could render a zone whose membership
|
|
13597
|
+
* it has not fetched yet.
|
|
13598
|
+
*
|
|
13599
|
+
* `icon: null` means nobody chose one, which is NOT the fallback pin: only one
|
|
13600
|
+
* of those two is a choice, and a picker has to draw them differently.
|
|
13601
|
+
*/
|
|
13602
|
+
var SiteZoneSchema = object({
|
|
13603
|
+
zoneKey: string(),
|
|
13604
|
+
label: string(),
|
|
13605
|
+
icon: LocationIconIdSchema.nullable(),
|
|
13606
|
+
/** Folded location keys, sorted. A location listed here need not be
|
|
13607
|
+
* REGISTERED — devices carry labels nobody registered, and those rooms are
|
|
13608
|
+
* the ones that most want grouping. */
|
|
13609
|
+
locationKeys: array(string())
|
|
13610
|
+
});
|
|
13547
13611
|
var ProviderStatusSchema = object({
|
|
13548
13612
|
connected: boolean(),
|
|
13549
13613
|
deviceCount: number(),
|
|
@@ -14142,6 +14206,33 @@ method(object({
|
|
|
14142
14206
|
}), _void(), {
|
|
14143
14207
|
kind: "mutation",
|
|
14144
14208
|
auth: "admin"
|
|
14209
|
+
}), method(_void(), array(LocationDescriptionAssignmentSchema)), method(object({
|
|
14210
|
+
location: string(),
|
|
14211
|
+
description: string().max(400).nullable()
|
|
14212
|
+
}), _void(), {
|
|
14213
|
+
kind: "mutation",
|
|
14214
|
+
auth: "admin"
|
|
14215
|
+
}), method(_void(), array(SiteZoneSchema)), method(object({
|
|
14216
|
+
name: string(),
|
|
14217
|
+
icon: LocationIconIdSchema.nullable().optional()
|
|
14218
|
+
}), _void(), {
|
|
14219
|
+
kind: "mutation",
|
|
14220
|
+
auth: "admin"
|
|
14221
|
+
}), method(object({ name: string() }), _void(), {
|
|
14222
|
+
kind: "mutation",
|
|
14223
|
+
auth: "admin"
|
|
14224
|
+
}), method(object({
|
|
14225
|
+
from: string(),
|
|
14226
|
+
to: string()
|
|
14227
|
+
}), _void(), {
|
|
14228
|
+
kind: "mutation",
|
|
14229
|
+
auth: "admin"
|
|
14230
|
+
}), method(object({
|
|
14231
|
+
location: string(),
|
|
14232
|
+
zone: string().nullable()
|
|
14233
|
+
}), _void(), {
|
|
14234
|
+
kind: "mutation",
|
|
14235
|
+
auth: "admin"
|
|
14145
14236
|
}), method(object({
|
|
14146
14237
|
deviceId: number(),
|
|
14147
14238
|
disabled: boolean()
|
|
@@ -37164,6 +37255,12 @@ Object.freeze({
|
|
|
37164
37255
|
addonId: null,
|
|
37165
37256
|
access: "view"
|
|
37166
37257
|
},
|
|
37258
|
+
"deviceManager.listLocationDescriptions": {
|
|
37259
|
+
capName: "device-manager",
|
|
37260
|
+
capScope: "system",
|
|
37261
|
+
addonId: null,
|
|
37262
|
+
access: "view"
|
|
37263
|
+
},
|
|
37167
37264
|
"deviceManager.listLocationIcons": {
|
|
37168
37265
|
capName: "device-manager",
|
|
37169
37266
|
capScope: "system",
|
|
@@ -37182,6 +37279,12 @@ Object.freeze({
|
|
|
37182
37279
|
addonId: null,
|
|
37183
37280
|
access: "view"
|
|
37184
37281
|
},
|
|
37282
|
+
"deviceManager.listSiteZones": {
|
|
37283
|
+
capName: "device-manager",
|
|
37284
|
+
capScope: "system",
|
|
37285
|
+
addonId: null,
|
|
37286
|
+
access: "view"
|
|
37287
|
+
},
|
|
37185
37288
|
"deviceManager.listWrappersForCap": {
|
|
37186
37289
|
capName: "device-manager",
|
|
37187
37290
|
capScope: "system",
|
|
@@ -37266,12 +37369,24 @@ Object.freeze({
|
|
|
37266
37369
|
addonId: null,
|
|
37267
37370
|
access: "delete"
|
|
37268
37371
|
},
|
|
37372
|
+
"deviceManager.removeSiteZone": {
|
|
37373
|
+
capName: "device-manager",
|
|
37374
|
+
capScope: "system",
|
|
37375
|
+
addonId: null,
|
|
37376
|
+
access: "delete"
|
|
37377
|
+
},
|
|
37269
37378
|
"deviceManager.renameLocation": {
|
|
37270
37379
|
capName: "device-manager",
|
|
37271
37380
|
capScope: "system",
|
|
37272
37381
|
addonId: null,
|
|
37273
37382
|
access: "create"
|
|
37274
37383
|
},
|
|
37384
|
+
"deviceManager.renameSiteZone": {
|
|
37385
|
+
capName: "device-manager",
|
|
37386
|
+
capScope: "system",
|
|
37387
|
+
addonId: null,
|
|
37388
|
+
access: "create"
|
|
37389
|
+
},
|
|
37275
37390
|
"deviceManager.runDeviceAction": {
|
|
37276
37391
|
capName: "device-manager",
|
|
37277
37392
|
capScope: "system",
|
|
@@ -37314,12 +37429,24 @@ Object.freeze({
|
|
|
37314
37429
|
addonId: null,
|
|
37315
37430
|
access: "create"
|
|
37316
37431
|
},
|
|
37432
|
+
"deviceManager.setLocationDescription": {
|
|
37433
|
+
capName: "device-manager",
|
|
37434
|
+
capScope: "system",
|
|
37435
|
+
addonId: null,
|
|
37436
|
+
access: "create"
|
|
37437
|
+
},
|
|
37317
37438
|
"deviceManager.setLocationIcon": {
|
|
37318
37439
|
capName: "device-manager",
|
|
37319
37440
|
capScope: "system",
|
|
37320
37441
|
addonId: null,
|
|
37321
37442
|
access: "create"
|
|
37322
37443
|
},
|
|
37444
|
+
"deviceManager.setLocationZone": {
|
|
37445
|
+
capName: "device-manager",
|
|
37446
|
+
capScope: "system",
|
|
37447
|
+
addonId: null,
|
|
37448
|
+
access: "create"
|
|
37449
|
+
},
|
|
37323
37450
|
"deviceManager.setMetadata": {
|
|
37324
37451
|
capName: "device-manager",
|
|
37325
37452
|
capScope: "system",
|
|
@@ -37350,6 +37477,12 @@ Object.freeze({
|
|
|
37350
37477
|
addonId: null,
|
|
37351
37478
|
access: "create"
|
|
37352
37479
|
},
|
|
37480
|
+
"deviceManager.setSiteZone": {
|
|
37481
|
+
capName: "device-manager",
|
|
37482
|
+
capScope: "system",
|
|
37483
|
+
addonId: null,
|
|
37484
|
+
access: "create"
|
|
37485
|
+
},
|
|
37353
37486
|
"deviceManager.setStreamProfileMap": {
|
|
37354
37487
|
capName: "device-manager",
|
|
37355
37488
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-wyze",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.111",
|
|
4
4
|
"description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|