@camstack/addon-smtp-nodemailer 1.2.83 → 1.2.85
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/smtp.addon.js +129 -70
- package/dist/smtp.addon.mjs +129 -70
- package/package.json +1 -1
package/dist/smtp.addon.js
CHANGED
|
@@ -15832,16 +15832,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15832
15832
|
code: string().min(1).optional()
|
|
15833
15833
|
}), _void(), {
|
|
15834
15834
|
kind: "mutation",
|
|
15835
|
-
auth: "
|
|
15835
|
+
auth: "protected"
|
|
15836
15836
|
}), method(object({
|
|
15837
15837
|
deviceId: number().int().nonnegative(),
|
|
15838
15838
|
code: string().min(1).optional()
|
|
15839
15839
|
}), _void(), {
|
|
15840
15840
|
kind: "mutation",
|
|
15841
|
-
auth: "
|
|
15841
|
+
auth: "protected"
|
|
15842
15842
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15843
15843
|
kind: "mutation",
|
|
15844
|
-
auth: "
|
|
15844
|
+
auth: "protected"
|
|
15845
15845
|
});
|
|
15846
15846
|
/**
|
|
15847
15847
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23509,7 +23509,7 @@ DeviceType.Light, method(object({
|
|
|
23509
23509
|
percentage: number().min(0).max(100)
|
|
23510
23510
|
}), _void(), {
|
|
23511
23511
|
kind: "mutation",
|
|
23512
|
-
auth: "
|
|
23512
|
+
auth: "protected"
|
|
23513
23513
|
}), object({
|
|
23514
23514
|
deviceId: number(),
|
|
23515
23515
|
percentage: number().min(0).max(100),
|
|
@@ -23517,7 +23517,7 @@ DeviceType.Light, method(object({
|
|
|
23517
23517
|
});
|
|
23518
23518
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23519
23519
|
kind: "mutation",
|
|
23520
|
-
auth: "
|
|
23520
|
+
auth: "protected"
|
|
23521
23521
|
});
|
|
23522
23522
|
/**
|
|
23523
23523
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23676,50 +23676,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23676
23676
|
mode: HvacModeSchema
|
|
23677
23677
|
}), _void(), {
|
|
23678
23678
|
kind: "mutation",
|
|
23679
|
-
auth: "
|
|
23679
|
+
auth: "protected"
|
|
23680
23680
|
}), method(object({
|
|
23681
23681
|
deviceId: number().int().nonnegative(),
|
|
23682
23682
|
fanMode: string().min(1)
|
|
23683
23683
|
}), _void(), {
|
|
23684
23684
|
kind: "mutation",
|
|
23685
|
-
auth: "
|
|
23685
|
+
auth: "protected"
|
|
23686
23686
|
}), method(object({
|
|
23687
23687
|
deviceId: number().int().nonnegative(),
|
|
23688
23688
|
preset: string().min(1)
|
|
23689
23689
|
}), _void(), {
|
|
23690
23690
|
kind: "mutation",
|
|
23691
|
-
auth: "
|
|
23691
|
+
auth: "protected"
|
|
23692
23692
|
}), method(object({
|
|
23693
23693
|
deviceId: number().int().nonnegative(),
|
|
23694
23694
|
target: number()
|
|
23695
23695
|
}), _void(), {
|
|
23696
23696
|
kind: "mutation",
|
|
23697
|
-
auth: "
|
|
23697
|
+
auth: "protected"
|
|
23698
23698
|
}), method(object({
|
|
23699
23699
|
deviceId: number().int().nonnegative(),
|
|
23700
23700
|
targetLow: number(),
|
|
23701
23701
|
targetHigh: number()
|
|
23702
23702
|
}), _void(), {
|
|
23703
23703
|
kind: "mutation",
|
|
23704
|
-
auth: "
|
|
23704
|
+
auth: "protected"
|
|
23705
23705
|
}), method(object({
|
|
23706
23706
|
deviceId: number().int().nonnegative(),
|
|
23707
23707
|
targetHumidity: number().min(0).max(100)
|
|
23708
23708
|
}), _void(), {
|
|
23709
23709
|
kind: "mutation",
|
|
23710
|
-
auth: "
|
|
23710
|
+
auth: "protected"
|
|
23711
23711
|
}), method(object({
|
|
23712
23712
|
deviceId: number().int().nonnegative(),
|
|
23713
23713
|
on: boolean()
|
|
23714
23714
|
}), _void(), {
|
|
23715
23715
|
kind: "mutation",
|
|
23716
|
-
auth: "
|
|
23716
|
+
auth: "protected"
|
|
23717
23717
|
}), method(object({
|
|
23718
23718
|
deviceId: number().int().nonnegative(),
|
|
23719
23719
|
on: boolean()
|
|
23720
23720
|
}), _void(), {
|
|
23721
23721
|
kind: "mutation",
|
|
23722
|
-
auth: "
|
|
23722
|
+
auth: "protected"
|
|
23723
23723
|
});
|
|
23724
23724
|
/**
|
|
23725
23725
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23794,7 +23794,7 @@ DeviceType.Light, method(object({
|
|
|
23794
23794
|
color: ColorInputSchema
|
|
23795
23795
|
}), _void(), {
|
|
23796
23796
|
kind: "mutation",
|
|
23797
|
-
auth: "
|
|
23797
|
+
auth: "protected"
|
|
23798
23798
|
}), object({
|
|
23799
23799
|
deviceId: number(),
|
|
23800
23800
|
mode: _enum([
|
|
@@ -23943,7 +23943,7 @@ DeviceType.Control, method(object({
|
|
|
23943
23943
|
control: ControlSetValueInputSchema
|
|
23944
23944
|
}), _void(), {
|
|
23945
23945
|
kind: "mutation",
|
|
23946
|
-
auth: "
|
|
23946
|
+
auth: "protected"
|
|
23947
23947
|
});
|
|
23948
23948
|
object({
|
|
23949
23949
|
/** Lifecycle state of the cover. */
|
|
@@ -23964,25 +23964,25 @@ object({
|
|
|
23964
23964
|
});
|
|
23965
23965
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23966
23966
|
kind: "mutation",
|
|
23967
|
-
auth: "
|
|
23967
|
+
auth: "protected"
|
|
23968
23968
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23969
23969
|
kind: "mutation",
|
|
23970
|
-
auth: "
|
|
23970
|
+
auth: "protected"
|
|
23971
23971
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23972
23972
|
kind: "mutation",
|
|
23973
|
-
auth: "
|
|
23973
|
+
auth: "protected"
|
|
23974
23974
|
}), method(object({
|
|
23975
23975
|
deviceId: number().int().nonnegative(),
|
|
23976
23976
|
position: number().min(0).max(100)
|
|
23977
23977
|
}), _void(), {
|
|
23978
23978
|
kind: "mutation",
|
|
23979
|
-
auth: "
|
|
23979
|
+
auth: "protected"
|
|
23980
23980
|
}), method(object({
|
|
23981
23981
|
deviceId: number().int().nonnegative(),
|
|
23982
23982
|
tiltPosition: number().min(0).max(100)
|
|
23983
23983
|
}), _void(), {
|
|
23984
23984
|
kind: "mutation",
|
|
23985
|
-
auth: "
|
|
23985
|
+
auth: "protected"
|
|
23986
23986
|
});
|
|
23987
23987
|
/**
|
|
23988
23988
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24187,6 +24187,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24187
24187
|
deviceId: number().int().optional(),
|
|
24188
24188
|
base64: string().optional()
|
|
24189
24189
|
});
|
|
24190
|
+
/**
|
|
24191
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24192
|
+
*
|
|
24193
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24194
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24195
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24196
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24197
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24198
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24199
|
+
*/
|
|
24200
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24201
|
+
sampleId: string(),
|
|
24202
|
+
enrolledAt: number().int(),
|
|
24203
|
+
deviceId: number().int().optional(),
|
|
24204
|
+
source: _enum(["detected", "photo"]),
|
|
24205
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24206
|
+
mediaKey: string().optional(),
|
|
24207
|
+
/**
|
|
24208
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24209
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24210
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24211
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24212
|
+
*/
|
|
24213
|
+
comparable: boolean(),
|
|
24214
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24215
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24216
|
+
selfMean: number().nullable(),
|
|
24217
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24218
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24219
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24220
|
+
bestForeign: object({
|
|
24221
|
+
identityId: string(),
|
|
24222
|
+
name: string(),
|
|
24223
|
+
score: number()
|
|
24224
|
+
}).optional(),
|
|
24225
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24226
|
+
suspicion: number()
|
|
24227
|
+
});
|
|
24228
|
+
var IdentitySampleAuditSchema = object({
|
|
24229
|
+
identityId: string(),
|
|
24230
|
+
name: string(),
|
|
24231
|
+
/** The cluster face model every comparison was made in. */
|
|
24232
|
+
modelId: string(),
|
|
24233
|
+
totalSamples: number().int(),
|
|
24234
|
+
comparableSamples: number().int(),
|
|
24235
|
+
flagged: number().int(),
|
|
24236
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24237
|
+
* only its current result. */
|
|
24238
|
+
flagThreshold: number(),
|
|
24239
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24240
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24241
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24242
|
+
});
|
|
24190
24243
|
var FaceInfoSchema = object({
|
|
24191
24244
|
faceId: string(),
|
|
24192
24245
|
deviceId: number().int(),
|
|
@@ -24338,7 +24391,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24338
24391
|
}), method(object({ id: string() }), _void(), {
|
|
24339
24392
|
kind: "mutation",
|
|
24340
24393
|
auth: "admin"
|
|
24341
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24394
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24342
24395
|
identityId: string(),
|
|
24343
24396
|
sampleId: string()
|
|
24344
24397
|
}), _void(), {
|
|
@@ -24524,25 +24577,25 @@ DeviceType.Fan, method(object({
|
|
|
24524
24577
|
percentage: number().min(0).max(100)
|
|
24525
24578
|
}), _void(), {
|
|
24526
24579
|
kind: "mutation",
|
|
24527
|
-
auth: "
|
|
24580
|
+
auth: "protected"
|
|
24528
24581
|
}), method(object({
|
|
24529
24582
|
deviceId: number().int().nonnegative(),
|
|
24530
24583
|
preset: string().min(1)
|
|
24531
24584
|
}), _void(), {
|
|
24532
24585
|
kind: "mutation",
|
|
24533
|
-
auth: "
|
|
24586
|
+
auth: "protected"
|
|
24534
24587
|
}), method(object({
|
|
24535
24588
|
deviceId: number().int().nonnegative(),
|
|
24536
24589
|
direction: FanDirectionSchema
|
|
24537
24590
|
}), _void(), {
|
|
24538
24591
|
kind: "mutation",
|
|
24539
|
-
auth: "
|
|
24592
|
+
auth: "protected"
|
|
24540
24593
|
}), method(object({
|
|
24541
24594
|
deviceId: number().int().nonnegative(),
|
|
24542
24595
|
oscillating: boolean()
|
|
24543
24596
|
}), _void(), {
|
|
24544
24597
|
kind: "mutation",
|
|
24545
|
-
auth: "
|
|
24598
|
+
auth: "protected"
|
|
24546
24599
|
});
|
|
24547
24600
|
/**
|
|
24548
24601
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24645,19 +24698,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24645
24698
|
on: boolean()
|
|
24646
24699
|
}), _void(), {
|
|
24647
24700
|
kind: "mutation",
|
|
24648
|
-
auth: "
|
|
24701
|
+
auth: "protected"
|
|
24649
24702
|
}), method(object({
|
|
24650
24703
|
deviceId: number().int().nonnegative(),
|
|
24651
24704
|
humidity: number().min(0).max(100)
|
|
24652
24705
|
}), _void(), {
|
|
24653
24706
|
kind: "mutation",
|
|
24654
|
-
auth: "
|
|
24707
|
+
auth: "protected"
|
|
24655
24708
|
}), method(object({
|
|
24656
24709
|
deviceId: number().int().nonnegative(),
|
|
24657
24710
|
mode: string().min(1)
|
|
24658
24711
|
}), _void(), {
|
|
24659
24712
|
kind: "mutation",
|
|
24660
|
-
auth: "
|
|
24713
|
+
auth: "protected"
|
|
24661
24714
|
});
|
|
24662
24715
|
object({
|
|
24663
24716
|
/** Current relative humidity, 0..100. */
|
|
@@ -25119,13 +25172,13 @@ object({
|
|
|
25119
25172
|
});
|
|
25120
25173
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25121
25174
|
kind: "mutation",
|
|
25122
|
-
auth: "
|
|
25175
|
+
auth: "protected"
|
|
25123
25176
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25124
25177
|
kind: "mutation",
|
|
25125
|
-
auth: "
|
|
25178
|
+
auth: "protected"
|
|
25126
25179
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25127
25180
|
kind: "mutation",
|
|
25128
|
-
auth: "
|
|
25181
|
+
auth: "protected"
|
|
25129
25182
|
});
|
|
25130
25183
|
/**
|
|
25131
25184
|
* local-network — hub-only singleton.
|
|
@@ -25385,16 +25438,16 @@ DeviceType.Lock, method(object({
|
|
|
25385
25438
|
code: string().min(1).optional()
|
|
25386
25439
|
}), _void(), {
|
|
25387
25440
|
kind: "mutation",
|
|
25388
|
-
auth: "
|
|
25441
|
+
auth: "protected"
|
|
25389
25442
|
}), method(object({
|
|
25390
25443
|
deviceId: number().int().nonnegative(),
|
|
25391
25444
|
code: string().min(1).optional()
|
|
25392
25445
|
}), _void(), {
|
|
25393
25446
|
kind: "mutation",
|
|
25394
|
-
auth: "
|
|
25447
|
+
auth: "protected"
|
|
25395
25448
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25396
25449
|
kind: "mutation",
|
|
25397
|
-
auth: "
|
|
25450
|
+
auth: "protected"
|
|
25398
25451
|
});
|
|
25399
25452
|
/**
|
|
25400
25453
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25468,55 +25521,55 @@ object({
|
|
|
25468
25521
|
});
|
|
25469
25522
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25470
25523
|
kind: "mutation",
|
|
25471
|
-
auth: "
|
|
25524
|
+
auth: "protected"
|
|
25472
25525
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25473
25526
|
kind: "mutation",
|
|
25474
|
-
auth: "
|
|
25527
|
+
auth: "protected"
|
|
25475
25528
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25476
25529
|
kind: "mutation",
|
|
25477
|
-
auth: "
|
|
25530
|
+
auth: "protected"
|
|
25478
25531
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25479
25532
|
kind: "mutation",
|
|
25480
|
-
auth: "
|
|
25533
|
+
auth: "protected"
|
|
25481
25534
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25482
25535
|
kind: "mutation",
|
|
25483
|
-
auth: "
|
|
25536
|
+
auth: "protected"
|
|
25484
25537
|
}), method(object({
|
|
25485
25538
|
deviceId: number().int().nonnegative(),
|
|
25486
25539
|
positionMs: number().int().nonnegative()
|
|
25487
25540
|
}), _void(), {
|
|
25488
25541
|
kind: "mutation",
|
|
25489
|
-
auth: "
|
|
25542
|
+
auth: "protected"
|
|
25490
25543
|
}), method(object({
|
|
25491
25544
|
deviceId: number().int().nonnegative(),
|
|
25492
25545
|
volumeLevel: number().min(0).max(100)
|
|
25493
25546
|
}), _void(), {
|
|
25494
25547
|
kind: "mutation",
|
|
25495
|
-
auth: "
|
|
25548
|
+
auth: "protected"
|
|
25496
25549
|
}), method(object({
|
|
25497
25550
|
deviceId: number().int().nonnegative(),
|
|
25498
25551
|
muted: boolean()
|
|
25499
25552
|
}), _void(), {
|
|
25500
25553
|
kind: "mutation",
|
|
25501
|
-
auth: "
|
|
25554
|
+
auth: "protected"
|
|
25502
25555
|
}), method(object({
|
|
25503
25556
|
deviceId: number().int().nonnegative(),
|
|
25504
25557
|
shuffle: boolean()
|
|
25505
25558
|
}), _void(), {
|
|
25506
25559
|
kind: "mutation",
|
|
25507
|
-
auth: "
|
|
25560
|
+
auth: "protected"
|
|
25508
25561
|
}), method(object({
|
|
25509
25562
|
deviceId: number().int().nonnegative(),
|
|
25510
25563
|
repeat: MediaPlayerRepeatSchema
|
|
25511
25564
|
}), _void(), {
|
|
25512
25565
|
kind: "mutation",
|
|
25513
|
-
auth: "
|
|
25566
|
+
auth: "protected"
|
|
25514
25567
|
}), method(object({
|
|
25515
25568
|
deviceId: number().int().nonnegative(),
|
|
25516
25569
|
source: string().min(1)
|
|
25517
25570
|
}), _void(), {
|
|
25518
25571
|
kind: "mutation",
|
|
25519
|
-
auth: "
|
|
25572
|
+
auth: "protected"
|
|
25520
25573
|
}), method(object({
|
|
25521
25574
|
deviceId: number().int().nonnegative(),
|
|
25522
25575
|
/** Media identifier / URL. */
|
|
@@ -25526,7 +25579,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25526
25579
|
mediaType: string().min(1)
|
|
25527
25580
|
}), _void(), {
|
|
25528
25581
|
kind: "mutation",
|
|
25529
|
-
auth: "
|
|
25582
|
+
auth: "protected"
|
|
25530
25583
|
});
|
|
25531
25584
|
/**
|
|
25532
25585
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26692,49 +26745,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26692
26745
|
hopper2: gramsPortion.optional()
|
|
26693
26746
|
}), _void(), {
|
|
26694
26747
|
kind: "mutation",
|
|
26695
|
-
auth: "
|
|
26748
|
+
auth: "protected"
|
|
26696
26749
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26697
26750
|
kind: "mutation",
|
|
26698
|
-
auth: "
|
|
26751
|
+
auth: "protected"
|
|
26699
26752
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26700
26753
|
kind: "mutation",
|
|
26701
|
-
auth: "
|
|
26754
|
+
auth: "protected"
|
|
26702
26755
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26703
26756
|
kind: "mutation",
|
|
26704
|
-
auth: "
|
|
26757
|
+
auth: "protected"
|
|
26705
26758
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26706
26759
|
kind: "mutation",
|
|
26707
|
-
auth: "
|
|
26760
|
+
auth: "protected"
|
|
26708
26761
|
}), method(object({
|
|
26709
26762
|
deviceId: number().int().nonnegative(),
|
|
26710
26763
|
soundId: number().int().nonnegative()
|
|
26711
26764
|
}), _void(), {
|
|
26712
26765
|
kind: "mutation",
|
|
26713
|
-
auth: "
|
|
26766
|
+
auth: "protected"
|
|
26714
26767
|
}), method(object({
|
|
26715
26768
|
deviceId: number().int().nonnegative(),
|
|
26716
26769
|
on: boolean()
|
|
26717
26770
|
}), _void(), {
|
|
26718
26771
|
kind: "mutation",
|
|
26719
|
-
auth: "
|
|
26772
|
+
auth: "protected"
|
|
26720
26773
|
}), method(object({
|
|
26721
26774
|
deviceId: number().int().nonnegative(),
|
|
26722
26775
|
on: boolean()
|
|
26723
26776
|
}), _void(), {
|
|
26724
26777
|
kind: "mutation",
|
|
26725
|
-
auth: "
|
|
26778
|
+
auth: "protected"
|
|
26726
26779
|
}), method(object({
|
|
26727
26780
|
deviceId: number().int().nonnegative(),
|
|
26728
26781
|
on: boolean()
|
|
26729
26782
|
}), _void(), {
|
|
26730
26783
|
kind: "mutation",
|
|
26731
|
-
auth: "
|
|
26784
|
+
auth: "protected"
|
|
26732
26785
|
}), method(object({
|
|
26733
26786
|
deviceId: number().int().nonnegative(),
|
|
26734
26787
|
level: number().int().nonnegative()
|
|
26735
26788
|
}), _void(), {
|
|
26736
26789
|
kind: "mutation",
|
|
26737
|
-
auth: "
|
|
26790
|
+
auth: "protected"
|
|
26738
26791
|
});
|
|
26739
26792
|
var VehicleSchema = object({
|
|
26740
26793
|
id: string(),
|
|
@@ -28521,7 +28574,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28521
28574
|
on: boolean()
|
|
28522
28575
|
}), _void(), {
|
|
28523
28576
|
kind: "mutation",
|
|
28524
|
-
auth: "
|
|
28577
|
+
auth: "protected"
|
|
28525
28578
|
}), object({
|
|
28526
28579
|
deviceId: number(),
|
|
28527
28580
|
on: boolean(),
|
|
@@ -29378,25 +29431,25 @@ object({
|
|
|
29378
29431
|
});
|
|
29379
29432
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29380
29433
|
kind: "mutation",
|
|
29381
|
-
auth: "
|
|
29434
|
+
auth: "protected"
|
|
29382
29435
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29383
29436
|
kind: "mutation",
|
|
29384
|
-
auth: "
|
|
29437
|
+
auth: "protected"
|
|
29385
29438
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29386
29439
|
kind: "mutation",
|
|
29387
|
-
auth: "
|
|
29440
|
+
auth: "protected"
|
|
29388
29441
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29389
29442
|
kind: "mutation",
|
|
29390
|
-
auth: "
|
|
29443
|
+
auth: "protected"
|
|
29391
29444
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29392
29445
|
kind: "mutation",
|
|
29393
|
-
auth: "
|
|
29446
|
+
auth: "protected"
|
|
29394
29447
|
}), method(object({
|
|
29395
29448
|
deviceId: number().int().nonnegative(),
|
|
29396
29449
|
speed: string().min(1)
|
|
29397
29450
|
}), _void(), {
|
|
29398
29451
|
kind: "mutation",
|
|
29399
|
-
auth: "
|
|
29452
|
+
auth: "protected"
|
|
29400
29453
|
});
|
|
29401
29454
|
object({
|
|
29402
29455
|
/** Lifecycle state of the valve. */
|
|
@@ -29415,19 +29468,19 @@ object({
|
|
|
29415
29468
|
});
|
|
29416
29469
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29417
29470
|
kind: "mutation",
|
|
29418
|
-
auth: "
|
|
29471
|
+
auth: "protected"
|
|
29419
29472
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29420
29473
|
kind: "mutation",
|
|
29421
|
-
auth: "
|
|
29474
|
+
auth: "protected"
|
|
29422
29475
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29423
29476
|
kind: "mutation",
|
|
29424
|
-
auth: "
|
|
29477
|
+
auth: "protected"
|
|
29425
29478
|
}), method(object({
|
|
29426
29479
|
deviceId: number().int().nonnegative(),
|
|
29427
29480
|
position: number().min(0).max(100)
|
|
29428
29481
|
}), _void(), {
|
|
29429
29482
|
kind: "mutation",
|
|
29430
|
-
auth: "
|
|
29483
|
+
auth: "protected"
|
|
29431
29484
|
});
|
|
29432
29485
|
object({
|
|
29433
29486
|
detected: boolean(),
|
|
@@ -29461,19 +29514,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29461
29514
|
temp: number().finite()
|
|
29462
29515
|
}), _void(), {
|
|
29463
29516
|
kind: "mutation",
|
|
29464
|
-
auth: "
|
|
29517
|
+
auth: "protected"
|
|
29465
29518
|
}), method(object({
|
|
29466
29519
|
deviceId: number().int().nonnegative(),
|
|
29467
29520
|
mode: string().min(1)
|
|
29468
29521
|
}), _void(), {
|
|
29469
29522
|
kind: "mutation",
|
|
29470
|
-
auth: "
|
|
29523
|
+
auth: "protected"
|
|
29471
29524
|
}), method(object({
|
|
29472
29525
|
deviceId: number().int().nonnegative(),
|
|
29473
29526
|
on: boolean()
|
|
29474
29527
|
}), _void(), {
|
|
29475
29528
|
kind: "mutation",
|
|
29476
|
-
auth: "
|
|
29529
|
+
auth: "protected"
|
|
29477
29530
|
});
|
|
29478
29531
|
object({
|
|
29479
29532
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31565,6 +31618,12 @@ Object.freeze({
|
|
|
31565
31618
|
addonId: null,
|
|
31566
31619
|
access: "create"
|
|
31567
31620
|
},
|
|
31621
|
+
"faceGallery.auditIdentitySamples": {
|
|
31622
|
+
capName: "face-gallery",
|
|
31623
|
+
capScope: "system",
|
|
31624
|
+
addonId: null,
|
|
31625
|
+
access: "view"
|
|
31626
|
+
},
|
|
31568
31627
|
"faceGallery.createIdentity": {
|
|
31569
31628
|
capName: "face-gallery",
|
|
31570
31629
|
capScope: "system",
|
package/dist/smtp.addon.mjs
CHANGED
|
@@ -15830,16 +15830,16 @@ DeviceType.AlarmPanel, method(object({
|
|
|
15830
15830
|
code: string().min(1).optional()
|
|
15831
15831
|
}), _void(), {
|
|
15832
15832
|
kind: "mutation",
|
|
15833
|
-
auth: "
|
|
15833
|
+
auth: "protected"
|
|
15834
15834
|
}), method(object({
|
|
15835
15835
|
deviceId: number().int().nonnegative(),
|
|
15836
15836
|
code: string().min(1).optional()
|
|
15837
15837
|
}), _void(), {
|
|
15838
15838
|
kind: "mutation",
|
|
15839
|
-
auth: "
|
|
15839
|
+
auth: "protected"
|
|
15840
15840
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
15841
15841
|
kind: "mutation",
|
|
15842
|
-
auth: "
|
|
15842
|
+
auth: "protected"
|
|
15843
15843
|
});
|
|
15844
15844
|
/**
|
|
15845
15845
|
* Shared geometry vocabulary for on-frame shape caps — privacy-mask,
|
|
@@ -23507,7 +23507,7 @@ DeviceType.Light, method(object({
|
|
|
23507
23507
|
percentage: number().min(0).max(100)
|
|
23508
23508
|
}), _void(), {
|
|
23509
23509
|
kind: "mutation",
|
|
23510
|
-
auth: "
|
|
23510
|
+
auth: "protected"
|
|
23511
23511
|
}), object({
|
|
23512
23512
|
deviceId: number(),
|
|
23513
23513
|
percentage: number().min(0).max(100),
|
|
@@ -23515,7 +23515,7 @@ DeviceType.Light, method(object({
|
|
|
23515
23515
|
});
|
|
23516
23516
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23517
23517
|
kind: "mutation",
|
|
23518
|
-
auth: "
|
|
23518
|
+
auth: "protected"
|
|
23519
23519
|
});
|
|
23520
23520
|
/**
|
|
23521
23521
|
* camera-credentials — device-scoped cap exposing the camera's network
|
|
@@ -23674,50 +23674,50 @@ DeviceType.Thermostat, DeviceType.Climate, method(object({
|
|
|
23674
23674
|
mode: HvacModeSchema
|
|
23675
23675
|
}), _void(), {
|
|
23676
23676
|
kind: "mutation",
|
|
23677
|
-
auth: "
|
|
23677
|
+
auth: "protected"
|
|
23678
23678
|
}), method(object({
|
|
23679
23679
|
deviceId: number().int().nonnegative(),
|
|
23680
23680
|
fanMode: string().min(1)
|
|
23681
23681
|
}), _void(), {
|
|
23682
23682
|
kind: "mutation",
|
|
23683
|
-
auth: "
|
|
23683
|
+
auth: "protected"
|
|
23684
23684
|
}), method(object({
|
|
23685
23685
|
deviceId: number().int().nonnegative(),
|
|
23686
23686
|
preset: string().min(1)
|
|
23687
23687
|
}), _void(), {
|
|
23688
23688
|
kind: "mutation",
|
|
23689
|
-
auth: "
|
|
23689
|
+
auth: "protected"
|
|
23690
23690
|
}), method(object({
|
|
23691
23691
|
deviceId: number().int().nonnegative(),
|
|
23692
23692
|
target: number()
|
|
23693
23693
|
}), _void(), {
|
|
23694
23694
|
kind: "mutation",
|
|
23695
|
-
auth: "
|
|
23695
|
+
auth: "protected"
|
|
23696
23696
|
}), method(object({
|
|
23697
23697
|
deviceId: number().int().nonnegative(),
|
|
23698
23698
|
targetLow: number(),
|
|
23699
23699
|
targetHigh: number()
|
|
23700
23700
|
}), _void(), {
|
|
23701
23701
|
kind: "mutation",
|
|
23702
|
-
auth: "
|
|
23702
|
+
auth: "protected"
|
|
23703
23703
|
}), method(object({
|
|
23704
23704
|
deviceId: number().int().nonnegative(),
|
|
23705
23705
|
targetHumidity: number().min(0).max(100)
|
|
23706
23706
|
}), _void(), {
|
|
23707
23707
|
kind: "mutation",
|
|
23708
|
-
auth: "
|
|
23708
|
+
auth: "protected"
|
|
23709
23709
|
}), method(object({
|
|
23710
23710
|
deviceId: number().int().nonnegative(),
|
|
23711
23711
|
on: boolean()
|
|
23712
23712
|
}), _void(), {
|
|
23713
23713
|
kind: "mutation",
|
|
23714
|
-
auth: "
|
|
23714
|
+
auth: "protected"
|
|
23715
23715
|
}), method(object({
|
|
23716
23716
|
deviceId: number().int().nonnegative(),
|
|
23717
23717
|
on: boolean()
|
|
23718
23718
|
}), _void(), {
|
|
23719
23719
|
kind: "mutation",
|
|
23720
|
-
auth: "
|
|
23720
|
+
auth: "protected"
|
|
23721
23721
|
});
|
|
23722
23722
|
/**
|
|
23723
23723
|
* Color-light cap. Coexists with `switch` (on/off) and `brightness`
|
|
@@ -23792,7 +23792,7 @@ DeviceType.Light, method(object({
|
|
|
23792
23792
|
color: ColorInputSchema
|
|
23793
23793
|
}), _void(), {
|
|
23794
23794
|
kind: "mutation",
|
|
23795
|
-
auth: "
|
|
23795
|
+
auth: "protected"
|
|
23796
23796
|
}), object({
|
|
23797
23797
|
deviceId: number(),
|
|
23798
23798
|
mode: _enum([
|
|
@@ -23941,7 +23941,7 @@ DeviceType.Control, method(object({
|
|
|
23941
23941
|
control: ControlSetValueInputSchema
|
|
23942
23942
|
}), _void(), {
|
|
23943
23943
|
kind: "mutation",
|
|
23944
|
-
auth: "
|
|
23944
|
+
auth: "protected"
|
|
23945
23945
|
});
|
|
23946
23946
|
object({
|
|
23947
23947
|
/** Lifecycle state of the cover. */
|
|
@@ -23962,25 +23962,25 @@ object({
|
|
|
23962
23962
|
});
|
|
23963
23963
|
DeviceType.Cover, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23964
23964
|
kind: "mutation",
|
|
23965
|
-
auth: "
|
|
23965
|
+
auth: "protected"
|
|
23966
23966
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23967
23967
|
kind: "mutation",
|
|
23968
|
-
auth: "
|
|
23968
|
+
auth: "protected"
|
|
23969
23969
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
23970
23970
|
kind: "mutation",
|
|
23971
|
-
auth: "
|
|
23971
|
+
auth: "protected"
|
|
23972
23972
|
}), method(object({
|
|
23973
23973
|
deviceId: number().int().nonnegative(),
|
|
23974
23974
|
position: number().min(0).max(100)
|
|
23975
23975
|
}), _void(), {
|
|
23976
23976
|
kind: "mutation",
|
|
23977
|
-
auth: "
|
|
23977
|
+
auth: "protected"
|
|
23978
23978
|
}), method(object({
|
|
23979
23979
|
deviceId: number().int().nonnegative(),
|
|
23980
23980
|
tiltPosition: number().min(0).max(100)
|
|
23981
23981
|
}), _void(), {
|
|
23982
23982
|
kind: "mutation",
|
|
23983
|
-
auth: "
|
|
23983
|
+
auth: "protected"
|
|
23984
23984
|
});
|
|
23985
23985
|
/**
|
|
23986
23986
|
* Vendor-neutral day/night (IR-cut) control — the per-camera config cap
|
|
@@ -24185,6 +24185,59 @@ var IdentitySampleInfoSchema = object({
|
|
|
24185
24185
|
deviceId: number().int().optional(),
|
|
24186
24186
|
base64: string().optional()
|
|
24187
24187
|
});
|
|
24188
|
+
/**
|
|
24189
|
+
* One enrolled sample, judged against the gallery it lives in.
|
|
24190
|
+
*
|
|
24191
|
+
* The gallery is the one input to recognition nobody re-reads: a sample
|
|
24192
|
+
* enrolled from the wrong face keeps voting forever, and because the matches it
|
|
24193
|
+
* pulls then look confident, nobody goes back. The 2026-09-08 audit found
|
|
24194
|
+
* exactly one such pair on this cluster — a sample scoring 0.61 against three
|
|
24195
|
+
* samples of ANOTHER person, enrolled from the same camera in the same minute,
|
|
24196
|
+
* where every other cross-identity pair sits under 0.50.
|
|
24197
|
+
*/
|
|
24198
|
+
var IdentitySampleAuditRowSchema = object({
|
|
24199
|
+
sampleId: string(),
|
|
24200
|
+
enrolledAt: number().int(),
|
|
24201
|
+
deviceId: number().int().optional(),
|
|
24202
|
+
source: _enum(["detected", "photo"]),
|
|
24203
|
+
/** The enrolled crop's media key, so the panel can show the evidence. */
|
|
24204
|
+
mediaKey: string().optional(),
|
|
24205
|
+
/**
|
|
24206
|
+
* False = the sample is stamped with a DIFFERENT face model, and a cosine
|
|
24207
|
+
* across feature spaces is a well-formed float with no meaning. Every number
|
|
24208
|
+
* below then says nothing — it must read as "cannot say", never as an
|
|
24209
|
+
* accusation and never as a clean bill: this list ends in a Remove button.
|
|
24210
|
+
*/
|
|
24211
|
+
comparable: boolean(),
|
|
24212
|
+
/** Mean cosine against this person's other samples. Null when there are none
|
|
24213
|
+
* to compare with — never 0, which would read as "opposite". */
|
|
24214
|
+
selfMean: number().nullable(),
|
|
24215
|
+
/** The other person this sample looks most like, when it looks like one.
|
|
24216
|
+
* This is the half that convicts: not looking like yourself can be a hard
|
|
24217
|
+
* angle; looking like someone the gallery can NAME is a mis-enrolment. */
|
|
24218
|
+
bestForeign: object({
|
|
24219
|
+
identityId: string(),
|
|
24220
|
+
name: string(),
|
|
24221
|
+
score: number()
|
|
24222
|
+
}).optional(),
|
|
24223
|
+
/** 0 = nothing to say. Higher = look at this one sooner. */
|
|
24224
|
+
suspicion: number()
|
|
24225
|
+
});
|
|
24226
|
+
var IdentitySampleAuditSchema = object({
|
|
24227
|
+
identityId: string(),
|
|
24228
|
+
name: string(),
|
|
24229
|
+
/** The cluster face model every comparison was made in. */
|
|
24230
|
+
modelId: string(),
|
|
24231
|
+
totalSamples: number().int(),
|
|
24232
|
+
comparableSamples: number().int(),
|
|
24233
|
+
flagged: number().int(),
|
|
24234
|
+
/** The bar `flagged` counts against, so the panel states the RULE and not
|
|
24235
|
+
* only its current result. */
|
|
24236
|
+
flagThreshold: number(),
|
|
24237
|
+
/** Worst first. A row with nothing to say still appears, at the bottom: the
|
|
24238
|
+
* operator asked to see the gallery, not only its accusations. */
|
|
24239
|
+
rows: array(IdentitySampleAuditRowSchema).readonly()
|
|
24240
|
+
});
|
|
24188
24241
|
var FaceInfoSchema = object({
|
|
24189
24242
|
faceId: string(),
|
|
24190
24243
|
deviceId: number().int(),
|
|
@@ -24336,7 +24389,7 @@ includeCrops: boolean().optional() }).optional(), array(IdentitySchema).readonly
|
|
|
24336
24389
|
}), method(object({ id: string() }), _void(), {
|
|
24337
24390
|
kind: "mutation",
|
|
24338
24391
|
auth: "admin"
|
|
24339
|
-
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({
|
|
24392
|
+
}), method(object({ identityId: string() }), array(IdentitySampleInfoSchema).readonly()), method(object({ identityId: string().min(1) }), IdentitySampleAuditSchema, { auth: "admin" }), method(object({
|
|
24340
24393
|
identityId: string(),
|
|
24341
24394
|
sampleId: string()
|
|
24342
24395
|
}), _void(), {
|
|
@@ -24522,25 +24575,25 @@ DeviceType.Fan, method(object({
|
|
|
24522
24575
|
percentage: number().min(0).max(100)
|
|
24523
24576
|
}), _void(), {
|
|
24524
24577
|
kind: "mutation",
|
|
24525
|
-
auth: "
|
|
24578
|
+
auth: "protected"
|
|
24526
24579
|
}), method(object({
|
|
24527
24580
|
deviceId: number().int().nonnegative(),
|
|
24528
24581
|
preset: string().min(1)
|
|
24529
24582
|
}), _void(), {
|
|
24530
24583
|
kind: "mutation",
|
|
24531
|
-
auth: "
|
|
24584
|
+
auth: "protected"
|
|
24532
24585
|
}), method(object({
|
|
24533
24586
|
deviceId: number().int().nonnegative(),
|
|
24534
24587
|
direction: FanDirectionSchema
|
|
24535
24588
|
}), _void(), {
|
|
24536
24589
|
kind: "mutation",
|
|
24537
|
-
auth: "
|
|
24590
|
+
auth: "protected"
|
|
24538
24591
|
}), method(object({
|
|
24539
24592
|
deviceId: number().int().nonnegative(),
|
|
24540
24593
|
oscillating: boolean()
|
|
24541
24594
|
}), _void(), {
|
|
24542
24595
|
kind: "mutation",
|
|
24543
|
-
auth: "
|
|
24596
|
+
auth: "protected"
|
|
24544
24597
|
});
|
|
24545
24598
|
/**
|
|
24546
24599
|
* Per-device feature/identity probe slice. Holds the runtime-resolved
|
|
@@ -24643,19 +24696,19 @@ DeviceType.Humidifier, method(object({
|
|
|
24643
24696
|
on: boolean()
|
|
24644
24697
|
}), _void(), {
|
|
24645
24698
|
kind: "mutation",
|
|
24646
|
-
auth: "
|
|
24699
|
+
auth: "protected"
|
|
24647
24700
|
}), method(object({
|
|
24648
24701
|
deviceId: number().int().nonnegative(),
|
|
24649
24702
|
humidity: number().min(0).max(100)
|
|
24650
24703
|
}), _void(), {
|
|
24651
24704
|
kind: "mutation",
|
|
24652
|
-
auth: "
|
|
24705
|
+
auth: "protected"
|
|
24653
24706
|
}), method(object({
|
|
24654
24707
|
deviceId: number().int().nonnegative(),
|
|
24655
24708
|
mode: string().min(1)
|
|
24656
24709
|
}), _void(), {
|
|
24657
24710
|
kind: "mutation",
|
|
24658
|
-
auth: "
|
|
24711
|
+
auth: "protected"
|
|
24659
24712
|
});
|
|
24660
24713
|
object({
|
|
24661
24714
|
/** Current relative humidity, 0..100. */
|
|
@@ -25117,13 +25170,13 @@ object({
|
|
|
25117
25170
|
});
|
|
25118
25171
|
DeviceType.LawnMower, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25119
25172
|
kind: "mutation",
|
|
25120
|
-
auth: "
|
|
25173
|
+
auth: "protected"
|
|
25121
25174
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25122
25175
|
kind: "mutation",
|
|
25123
|
-
auth: "
|
|
25176
|
+
auth: "protected"
|
|
25124
25177
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25125
25178
|
kind: "mutation",
|
|
25126
|
-
auth: "
|
|
25179
|
+
auth: "protected"
|
|
25127
25180
|
});
|
|
25128
25181
|
/**
|
|
25129
25182
|
* local-network — hub-only singleton.
|
|
@@ -25383,16 +25436,16 @@ DeviceType.Lock, method(object({
|
|
|
25383
25436
|
code: string().min(1).optional()
|
|
25384
25437
|
}), _void(), {
|
|
25385
25438
|
kind: "mutation",
|
|
25386
|
-
auth: "
|
|
25439
|
+
auth: "protected"
|
|
25387
25440
|
}), method(object({
|
|
25388
25441
|
deviceId: number().int().nonnegative(),
|
|
25389
25442
|
code: string().min(1).optional()
|
|
25390
25443
|
}), _void(), {
|
|
25391
25444
|
kind: "mutation",
|
|
25392
|
-
auth: "
|
|
25445
|
+
auth: "protected"
|
|
25393
25446
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25394
25447
|
kind: "mutation",
|
|
25395
|
-
auth: "
|
|
25448
|
+
auth: "protected"
|
|
25396
25449
|
});
|
|
25397
25450
|
/**
|
|
25398
25451
|
* Media-player cap. Models HA `media_player.*` (Sonos, Chromecast,
|
|
@@ -25466,55 +25519,55 @@ object({
|
|
|
25466
25519
|
});
|
|
25467
25520
|
DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25468
25521
|
kind: "mutation",
|
|
25469
|
-
auth: "
|
|
25522
|
+
auth: "protected"
|
|
25470
25523
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25471
25524
|
kind: "mutation",
|
|
25472
|
-
auth: "
|
|
25525
|
+
auth: "protected"
|
|
25473
25526
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25474
25527
|
kind: "mutation",
|
|
25475
|
-
auth: "
|
|
25528
|
+
auth: "protected"
|
|
25476
25529
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25477
25530
|
kind: "mutation",
|
|
25478
|
-
auth: "
|
|
25531
|
+
auth: "protected"
|
|
25479
25532
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
25480
25533
|
kind: "mutation",
|
|
25481
|
-
auth: "
|
|
25534
|
+
auth: "protected"
|
|
25482
25535
|
}), method(object({
|
|
25483
25536
|
deviceId: number().int().nonnegative(),
|
|
25484
25537
|
positionMs: number().int().nonnegative()
|
|
25485
25538
|
}), _void(), {
|
|
25486
25539
|
kind: "mutation",
|
|
25487
|
-
auth: "
|
|
25540
|
+
auth: "protected"
|
|
25488
25541
|
}), method(object({
|
|
25489
25542
|
deviceId: number().int().nonnegative(),
|
|
25490
25543
|
volumeLevel: number().min(0).max(100)
|
|
25491
25544
|
}), _void(), {
|
|
25492
25545
|
kind: "mutation",
|
|
25493
|
-
auth: "
|
|
25546
|
+
auth: "protected"
|
|
25494
25547
|
}), method(object({
|
|
25495
25548
|
deviceId: number().int().nonnegative(),
|
|
25496
25549
|
muted: boolean()
|
|
25497
25550
|
}), _void(), {
|
|
25498
25551
|
kind: "mutation",
|
|
25499
|
-
auth: "
|
|
25552
|
+
auth: "protected"
|
|
25500
25553
|
}), method(object({
|
|
25501
25554
|
deviceId: number().int().nonnegative(),
|
|
25502
25555
|
shuffle: boolean()
|
|
25503
25556
|
}), _void(), {
|
|
25504
25557
|
kind: "mutation",
|
|
25505
|
-
auth: "
|
|
25558
|
+
auth: "protected"
|
|
25506
25559
|
}), method(object({
|
|
25507
25560
|
deviceId: number().int().nonnegative(),
|
|
25508
25561
|
repeat: MediaPlayerRepeatSchema
|
|
25509
25562
|
}), _void(), {
|
|
25510
25563
|
kind: "mutation",
|
|
25511
|
-
auth: "
|
|
25564
|
+
auth: "protected"
|
|
25512
25565
|
}), method(object({
|
|
25513
25566
|
deviceId: number().int().nonnegative(),
|
|
25514
25567
|
source: string().min(1)
|
|
25515
25568
|
}), _void(), {
|
|
25516
25569
|
kind: "mutation",
|
|
25517
|
-
auth: "
|
|
25570
|
+
auth: "protected"
|
|
25518
25571
|
}), method(object({
|
|
25519
25572
|
deviceId: number().int().nonnegative(),
|
|
25520
25573
|
/** Media identifier / URL. */
|
|
@@ -25524,7 +25577,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
25524
25577
|
mediaType: string().min(1)
|
|
25525
25578
|
}), _void(), {
|
|
25526
25579
|
kind: "mutation",
|
|
25527
|
-
auth: "
|
|
25580
|
+
auth: "protected"
|
|
25528
25581
|
});
|
|
25529
25582
|
/**
|
|
25530
25583
|
* mesh-network — collection cap for mesh-VPN providers.
|
|
@@ -26690,49 +26743,49 @@ DeviceType.PetFeeder, method(object({
|
|
|
26690
26743
|
hopper2: gramsPortion.optional()
|
|
26691
26744
|
}), _void(), {
|
|
26692
26745
|
kind: "mutation",
|
|
26693
|
-
auth: "
|
|
26746
|
+
auth: "protected"
|
|
26694
26747
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26695
26748
|
kind: "mutation",
|
|
26696
|
-
auth: "
|
|
26749
|
+
auth: "protected"
|
|
26697
26750
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26698
26751
|
kind: "mutation",
|
|
26699
|
-
auth: "
|
|
26752
|
+
auth: "protected"
|
|
26700
26753
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26701
26754
|
kind: "mutation",
|
|
26702
|
-
auth: "
|
|
26755
|
+
auth: "protected"
|
|
26703
26756
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
26704
26757
|
kind: "mutation",
|
|
26705
|
-
auth: "
|
|
26758
|
+
auth: "protected"
|
|
26706
26759
|
}), method(object({
|
|
26707
26760
|
deviceId: number().int().nonnegative(),
|
|
26708
26761
|
soundId: number().int().nonnegative()
|
|
26709
26762
|
}), _void(), {
|
|
26710
26763
|
kind: "mutation",
|
|
26711
|
-
auth: "
|
|
26764
|
+
auth: "protected"
|
|
26712
26765
|
}), method(object({
|
|
26713
26766
|
deviceId: number().int().nonnegative(),
|
|
26714
26767
|
on: boolean()
|
|
26715
26768
|
}), _void(), {
|
|
26716
26769
|
kind: "mutation",
|
|
26717
|
-
auth: "
|
|
26770
|
+
auth: "protected"
|
|
26718
26771
|
}), method(object({
|
|
26719
26772
|
deviceId: number().int().nonnegative(),
|
|
26720
26773
|
on: boolean()
|
|
26721
26774
|
}), _void(), {
|
|
26722
26775
|
kind: "mutation",
|
|
26723
|
-
auth: "
|
|
26776
|
+
auth: "protected"
|
|
26724
26777
|
}), method(object({
|
|
26725
26778
|
deviceId: number().int().nonnegative(),
|
|
26726
26779
|
on: boolean()
|
|
26727
26780
|
}), _void(), {
|
|
26728
26781
|
kind: "mutation",
|
|
26729
|
-
auth: "
|
|
26782
|
+
auth: "protected"
|
|
26730
26783
|
}), method(object({
|
|
26731
26784
|
deviceId: number().int().nonnegative(),
|
|
26732
26785
|
level: number().int().nonnegative()
|
|
26733
26786
|
}), _void(), {
|
|
26734
26787
|
kind: "mutation",
|
|
26735
|
-
auth: "
|
|
26788
|
+
auth: "protected"
|
|
26736
26789
|
});
|
|
26737
26790
|
var VehicleSchema = object({
|
|
26738
26791
|
id: string(),
|
|
@@ -28519,7 +28572,7 @@ DeviceType.Switch, DeviceType.Siren, DeviceType.Light, method(object({
|
|
|
28519
28572
|
on: boolean()
|
|
28520
28573
|
}), _void(), {
|
|
28521
28574
|
kind: "mutation",
|
|
28522
|
-
auth: "
|
|
28575
|
+
auth: "protected"
|
|
28523
28576
|
}), object({
|
|
28524
28577
|
deviceId: number(),
|
|
28525
28578
|
on: boolean(),
|
|
@@ -29376,25 +29429,25 @@ object({
|
|
|
29376
29429
|
});
|
|
29377
29430
|
DeviceType.Vacuum, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29378
29431
|
kind: "mutation",
|
|
29379
|
-
auth: "
|
|
29432
|
+
auth: "protected"
|
|
29380
29433
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29381
29434
|
kind: "mutation",
|
|
29382
|
-
auth: "
|
|
29435
|
+
auth: "protected"
|
|
29383
29436
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29384
29437
|
kind: "mutation",
|
|
29385
|
-
auth: "
|
|
29438
|
+
auth: "protected"
|
|
29386
29439
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29387
29440
|
kind: "mutation",
|
|
29388
|
-
auth: "
|
|
29441
|
+
auth: "protected"
|
|
29389
29442
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29390
29443
|
kind: "mutation",
|
|
29391
|
-
auth: "
|
|
29444
|
+
auth: "protected"
|
|
29392
29445
|
}), method(object({
|
|
29393
29446
|
deviceId: number().int().nonnegative(),
|
|
29394
29447
|
speed: string().min(1)
|
|
29395
29448
|
}), _void(), {
|
|
29396
29449
|
kind: "mutation",
|
|
29397
|
-
auth: "
|
|
29450
|
+
auth: "protected"
|
|
29398
29451
|
});
|
|
29399
29452
|
object({
|
|
29400
29453
|
/** Lifecycle state of the valve. */
|
|
@@ -29413,19 +29466,19 @@ object({
|
|
|
29413
29466
|
});
|
|
29414
29467
|
DeviceType.Valve, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29415
29468
|
kind: "mutation",
|
|
29416
|
-
auth: "
|
|
29469
|
+
auth: "protected"
|
|
29417
29470
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29418
29471
|
kind: "mutation",
|
|
29419
|
-
auth: "
|
|
29472
|
+
auth: "protected"
|
|
29420
29473
|
}), method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
29421
29474
|
kind: "mutation",
|
|
29422
|
-
auth: "
|
|
29475
|
+
auth: "protected"
|
|
29423
29476
|
}), method(object({
|
|
29424
29477
|
deviceId: number().int().nonnegative(),
|
|
29425
29478
|
position: number().min(0).max(100)
|
|
29426
29479
|
}), _void(), {
|
|
29427
29480
|
kind: "mutation",
|
|
29428
|
-
auth: "
|
|
29481
|
+
auth: "protected"
|
|
29429
29482
|
});
|
|
29430
29483
|
object({
|
|
29431
29484
|
detected: boolean(),
|
|
@@ -29459,19 +29512,19 @@ DeviceType.WaterHeater, method(object({
|
|
|
29459
29512
|
temp: number().finite()
|
|
29460
29513
|
}), _void(), {
|
|
29461
29514
|
kind: "mutation",
|
|
29462
|
-
auth: "
|
|
29515
|
+
auth: "protected"
|
|
29463
29516
|
}), method(object({
|
|
29464
29517
|
deviceId: number().int().nonnegative(),
|
|
29465
29518
|
mode: string().min(1)
|
|
29466
29519
|
}), _void(), {
|
|
29467
29520
|
kind: "mutation",
|
|
29468
|
-
auth: "
|
|
29521
|
+
auth: "protected"
|
|
29469
29522
|
}), method(object({
|
|
29470
29523
|
deviceId: number().int().nonnegative(),
|
|
29471
29524
|
on: boolean()
|
|
29472
29525
|
}), _void(), {
|
|
29473
29526
|
kind: "mutation",
|
|
29474
|
-
auth: "
|
|
29527
|
+
auth: "protected"
|
|
29475
29528
|
});
|
|
29476
29529
|
object({
|
|
29477
29530
|
/** Verbatim HA condition state (`sunny`, `cloudy`, `rainy`, …). Null
|
|
@@ -31563,6 +31616,12 @@ Object.freeze({
|
|
|
31563
31616
|
addonId: null,
|
|
31564
31617
|
access: "create"
|
|
31565
31618
|
},
|
|
31619
|
+
"faceGallery.auditIdentitySamples": {
|
|
31620
|
+
capName: "face-gallery",
|
|
31621
|
+
capScope: "system",
|
|
31622
|
+
addonId: null,
|
|
31623
|
+
access: "view"
|
|
31624
|
+
},
|
|
31566
31625
|
"faceGallery.createIdentity": {
|
|
31567
31626
|
capName: "face-gallery",
|
|
31568
31627
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-smtp-nodemailer",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.85",
|
|
4
4
|
"description": "SMTP email provider addon for CamStack — wraps `nodemailer` and registers a `smtp-provider` cap collection entry. Used by magic-link login + notifier addons.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|