@camstack/types 1.2.54 → 1.2.56
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 +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/auth/principal-scope.d.ts +123 -0
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/notification-rules.cap.d.ts +274 -0
- package/dist/capabilities/oauth-integration.cap.d.ts +25 -12
- package/dist/capabilities/osd-manager.cap.d.ts +93 -0
- package/dist/capabilities/sso-bridge.cap.d.ts +4 -1
- package/dist/capabilities/user-management.cap.d.ts +1 -0
- package/dist/enums/event-category.d.ts +7 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-41fKf-q9.mjs → event-category-Cv9dO26A.mjs} +7 -0
- package/dist/{event-category-BE4PDZ_3.js → event-category-DxZbWydC.js} +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +270 -25
- package/dist/index.mjs +264 -26
- package/dist/interfaces/event-bus.d.ts +8 -0
- package/dist/{sleep-CT4lN1ij.mjs → sleep-CeuvKr4N.mjs} +1 -1
- package/dist/{sleep-DfF6vKCf.js → sleep-EX1-qUVR.js} +1 -1
- package/package.json +1 -1
|
@@ -50,8 +50,46 @@ export declare const NcDeliverySchema: z.ZodEnum<{
|
|
|
50
50
|
immediate: "immediate";
|
|
51
51
|
"track-end": "track-end";
|
|
52
52
|
"package-event": "package-event";
|
|
53
|
+
"system-event": "system-event";
|
|
53
54
|
}>;
|
|
54
55
|
export type NcDelivery = z.infer<typeof NcDeliverySchema>;
|
|
56
|
+
/**
|
|
57
|
+
* Stable Notification Center vocabulary over infrastructure/liveness events.
|
|
58
|
+
* Bus categories are normalized into these intent-level kinds so rules do not
|
|
59
|
+
* depend on a provider's raw event name or payload shape.
|
|
60
|
+
*/
|
|
61
|
+
export declare const NcSystemEventKindSchema: z.ZodEnum<{
|
|
62
|
+
"camera-online": "camera-online";
|
|
63
|
+
"camera-offline": "camera-offline";
|
|
64
|
+
"stream-online": "stream-online";
|
|
65
|
+
"stream-offline": "stream-offline";
|
|
66
|
+
"node-online": "node-online";
|
|
67
|
+
"node-offline": "node-offline";
|
|
68
|
+
"addon-update-available": "addon-update-available";
|
|
69
|
+
"server-update-available": "server-update-available";
|
|
70
|
+
}>;
|
|
71
|
+
export type NcSystemEventKind = z.infer<typeof NcSystemEventKindSchema>;
|
|
72
|
+
/**
|
|
73
|
+
* One coherent system-event condition. `kinds` is the required opt-in safety
|
|
74
|
+
* gate; the remaining lists are optional narrowing filters relevant to the
|
|
75
|
+
* selected kinds.
|
|
76
|
+
*/
|
|
77
|
+
export declare const NcSystemEventConditionSchema: z.ZodObject<{
|
|
78
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
79
|
+
"camera-online": "camera-online";
|
|
80
|
+
"camera-offline": "camera-offline";
|
|
81
|
+
"stream-online": "stream-online";
|
|
82
|
+
"stream-offline": "stream-offline";
|
|
83
|
+
"node-online": "node-online";
|
|
84
|
+
"node-offline": "node-offline";
|
|
85
|
+
"addon-update-available": "addon-update-available";
|
|
86
|
+
"server-update-available": "server-update-available";
|
|
87
|
+
}>>;
|
|
88
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
89
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
90
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
91
|
+
}, z.core.$strip>;
|
|
92
|
+
export type NcSystemEventCondition = z.infer<typeof NcSystemEventConditionSchema>;
|
|
55
93
|
/**
|
|
56
94
|
* `maxPerTrack` for `immediate` rules is FIXED at 1 (D-3): a single track
|
|
57
95
|
* fires an immediate rule at most once, enforced durably by the outbox
|
|
@@ -347,6 +385,21 @@ export declare const NcConditionsSchema: z.ZodObject<{
|
|
|
347
385
|
delivered: "delivered";
|
|
348
386
|
"picked-up": "picked-up";
|
|
349
387
|
}>>;
|
|
388
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
389
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
390
|
+
"camera-online": "camera-online";
|
|
391
|
+
"camera-offline": "camera-offline";
|
|
392
|
+
"stream-online": "stream-online";
|
|
393
|
+
"stream-offline": "stream-offline";
|
|
394
|
+
"node-online": "node-online";
|
|
395
|
+
"node-offline": "node-offline";
|
|
396
|
+
"addon-update-available": "addon-update-available";
|
|
397
|
+
"server-update-available": "server-update-available";
|
|
398
|
+
}>>;
|
|
399
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
400
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
401
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
402
|
+
}, z.core.$strip>>;
|
|
350
403
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
351
404
|
kind: z.ZodLiteral<"polygon">;
|
|
352
405
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -467,6 +520,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
467
520
|
immediate: "immediate";
|
|
468
521
|
"track-end": "track-end";
|
|
469
522
|
"package-event": "package-event";
|
|
523
|
+
"system-event": "system-event";
|
|
470
524
|
}>;
|
|
471
525
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
472
526
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -514,6 +568,21 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
514
568
|
delivered: "delivered";
|
|
515
569
|
"picked-up": "picked-up";
|
|
516
570
|
}>>;
|
|
571
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
572
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
573
|
+
"camera-online": "camera-online";
|
|
574
|
+
"camera-offline": "camera-offline";
|
|
575
|
+
"stream-online": "stream-online";
|
|
576
|
+
"stream-offline": "stream-offline";
|
|
577
|
+
"node-online": "node-online";
|
|
578
|
+
"node-offline": "node-offline";
|
|
579
|
+
"addon-update-available": "addon-update-available";
|
|
580
|
+
"server-update-available": "server-update-available";
|
|
581
|
+
}>>;
|
|
582
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
583
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
584
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
585
|
+
}, z.core.$strip>>;
|
|
517
586
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
518
587
|
kind: z.ZodLiteral<"polygon">;
|
|
519
588
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -647,6 +716,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
647
716
|
immediate: "immediate";
|
|
648
717
|
"track-end": "track-end";
|
|
649
718
|
"package-event": "package-event";
|
|
719
|
+
"system-event": "system-event";
|
|
650
720
|
}>>;
|
|
651
721
|
conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
652
722
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -694,6 +764,21 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
694
764
|
delivered: "delivered";
|
|
695
765
|
"picked-up": "picked-up";
|
|
696
766
|
}>>;
|
|
767
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
768
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
769
|
+
"camera-online": "camera-online";
|
|
770
|
+
"camera-offline": "camera-offline";
|
|
771
|
+
"stream-online": "stream-online";
|
|
772
|
+
"stream-offline": "stream-offline";
|
|
773
|
+
"node-online": "node-online";
|
|
774
|
+
"node-offline": "node-offline";
|
|
775
|
+
"addon-update-available": "addon-update-available";
|
|
776
|
+
"server-update-available": "server-update-available";
|
|
777
|
+
}>>;
|
|
778
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
779
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
780
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
781
|
+
}, z.core.$strip>>;
|
|
697
782
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
698
783
|
kind: z.ZodLiteral<"polygon">;
|
|
699
784
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -820,6 +905,7 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
820
905
|
immediate: "immediate";
|
|
821
906
|
"track-end": "track-end";
|
|
822
907
|
"package-event": "package-event";
|
|
908
|
+
"system-event": "system-event";
|
|
823
909
|
}>;
|
|
824
910
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
825
911
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -867,6 +953,21 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
867
953
|
delivered: "delivered";
|
|
868
954
|
"picked-up": "picked-up";
|
|
869
955
|
}>>;
|
|
956
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
957
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
958
|
+
"camera-online": "camera-online";
|
|
959
|
+
"camera-offline": "camera-offline";
|
|
960
|
+
"stream-online": "stream-online";
|
|
961
|
+
"stream-offline": "stream-offline";
|
|
962
|
+
"node-online": "node-online";
|
|
963
|
+
"node-offline": "node-offline";
|
|
964
|
+
"addon-update-available": "addon-update-available";
|
|
965
|
+
"server-update-available": "server-update-available";
|
|
966
|
+
}>>;
|
|
967
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
968
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
969
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
970
|
+
}, z.core.$strip>>;
|
|
870
971
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
871
972
|
kind: z.ZodLiteral<"polygon">;
|
|
872
973
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -993,6 +1094,7 @@ export declare const NcTestResultSchema: z.ZodObject<{
|
|
|
993
1094
|
recordKind: z.ZodEnum<{
|
|
994
1095
|
"device-event": "device-event";
|
|
995
1096
|
"package-event": "package-event";
|
|
1097
|
+
"system-event": "system-event";
|
|
996
1098
|
"object-event": "object-event";
|
|
997
1099
|
track: "track";
|
|
998
1100
|
}>;
|
|
@@ -1007,6 +1109,7 @@ export type NcTestResult = z.infer<typeof NcTestResultSchema>;
|
|
|
1007
1109
|
export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
1008
1110
|
id: z.ZodString;
|
|
1009
1111
|
group: z.ZodEnum<{
|
|
1112
|
+
system: "system";
|
|
1010
1113
|
device: "device";
|
|
1011
1114
|
label: "label";
|
|
1012
1115
|
scope: "scope";
|
|
@@ -1023,6 +1126,7 @@ export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
|
1023
1126
|
deviceState: "deviceState";
|
|
1024
1127
|
schedule: "schedule";
|
|
1025
1128
|
packagePhase: "packagePhase";
|
|
1129
|
+
systemEvent: "systemEvent";
|
|
1026
1130
|
occupancy: "occupancy";
|
|
1027
1131
|
deviceIdList: "deviceIdList";
|
|
1028
1132
|
stringList: "stringList";
|
|
@@ -1048,6 +1152,7 @@ export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
|
1048
1152
|
immediate: "immediate";
|
|
1049
1153
|
"track-end": "track-end";
|
|
1050
1154
|
"package-event": "package-event";
|
|
1155
|
+
"system-event": "system-event";
|
|
1051
1156
|
}>>;
|
|
1052
1157
|
phase: z.ZodString;
|
|
1053
1158
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -1086,6 +1191,7 @@ export declare const NcHistoryRecordKindSchema: z.ZodEnum<{
|
|
|
1086
1191
|
"device-event": "device-event";
|
|
1087
1192
|
"track-end": "track-end";
|
|
1088
1193
|
"package-event": "package-event";
|
|
1194
|
+
"system-event": "system-event";
|
|
1089
1195
|
"object-event": "object-event";
|
|
1090
1196
|
}>;
|
|
1091
1197
|
export type NcHistoryRecordKind = z.infer<typeof NcHistoryRecordKindSchema>;
|
|
@@ -1096,6 +1202,22 @@ export declare const NcHistorySubjectSchema: z.ZodObject<{
|
|
|
1096
1202
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
1097
1203
|
zones: z.ZodArray<z.ZodString>;
|
|
1098
1204
|
timestamp: z.ZodNumber;
|
|
1205
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
1206
|
+
kind: z.ZodEnum<{
|
|
1207
|
+
"camera-online": "camera-online";
|
|
1208
|
+
"camera-offline": "camera-offline";
|
|
1209
|
+
"stream-online": "stream-online";
|
|
1210
|
+
"stream-offline": "stream-offline";
|
|
1211
|
+
"node-online": "node-online";
|
|
1212
|
+
"node-offline": "node-offline";
|
|
1213
|
+
"addon-update-available": "addon-update-available";
|
|
1214
|
+
"server-update-available": "server-update-available";
|
|
1215
|
+
}>;
|
|
1216
|
+
subject: z.ZodString;
|
|
1217
|
+
title: z.ZodString;
|
|
1218
|
+
body: z.ZodString;
|
|
1219
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
1220
|
+
}, z.core.$strip>>;
|
|
1099
1221
|
}, z.core.$strip>;
|
|
1100
1222
|
export type NcHistorySubject = z.infer<typeof NcHistorySubjectSchema>;
|
|
1101
1223
|
/**
|
|
@@ -1118,6 +1240,7 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
|
1118
1240
|
immediate: "immediate";
|
|
1119
1241
|
"track-end": "track-end";
|
|
1120
1242
|
"package-event": "package-event";
|
|
1243
|
+
"system-event": "system-event";
|
|
1121
1244
|
}>;
|
|
1122
1245
|
targetId: z.ZodString;
|
|
1123
1246
|
deviceId: z.ZodNumber;
|
|
@@ -1125,6 +1248,7 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
|
1125
1248
|
"device-event": "device-event";
|
|
1126
1249
|
"track-end": "track-end";
|
|
1127
1250
|
"package-event": "package-event";
|
|
1251
|
+
"system-event": "system-event";
|
|
1128
1252
|
"object-event": "object-event";
|
|
1129
1253
|
}>;
|
|
1130
1254
|
recordId: z.ZodString;
|
|
@@ -1144,6 +1268,22 @@ export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
|
1144
1268
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
1145
1269
|
zones: z.ZodArray<z.ZodString>;
|
|
1146
1270
|
timestamp: z.ZodNumber;
|
|
1271
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
1272
|
+
kind: z.ZodEnum<{
|
|
1273
|
+
"camera-online": "camera-online";
|
|
1274
|
+
"camera-offline": "camera-offline";
|
|
1275
|
+
"stream-online": "stream-online";
|
|
1276
|
+
"stream-offline": "stream-offline";
|
|
1277
|
+
"node-online": "node-online";
|
|
1278
|
+
"node-offline": "node-offline";
|
|
1279
|
+
"addon-update-available": "addon-update-available";
|
|
1280
|
+
"server-update-available": "server-update-available";
|
|
1281
|
+
}>;
|
|
1282
|
+
subject: z.ZodString;
|
|
1283
|
+
title: z.ZodString;
|
|
1284
|
+
body: z.ZodString;
|
|
1285
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
1286
|
+
}, z.core.$strip>>;
|
|
1147
1287
|
}, z.core.$strip>;
|
|
1148
1288
|
}, z.core.$strip>;
|
|
1149
1289
|
export type NcHistoryEntry = z.infer<typeof NcHistoryEntrySchema>;
|
|
@@ -1313,6 +1453,7 @@ export declare const notificationRulesCapability: {
|
|
|
1313
1453
|
immediate: "immediate";
|
|
1314
1454
|
"track-end": "track-end";
|
|
1315
1455
|
"package-event": "package-event";
|
|
1456
|
+
"system-event": "system-event";
|
|
1316
1457
|
}>;
|
|
1317
1458
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
1318
1459
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -1360,6 +1501,21 @@ export declare const notificationRulesCapability: {
|
|
|
1360
1501
|
delivered: "delivered";
|
|
1361
1502
|
"picked-up": "picked-up";
|
|
1362
1503
|
}>>;
|
|
1504
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
1505
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
1506
|
+
"camera-online": "camera-online";
|
|
1507
|
+
"camera-offline": "camera-offline";
|
|
1508
|
+
"stream-online": "stream-online";
|
|
1509
|
+
"stream-offline": "stream-offline";
|
|
1510
|
+
"node-online": "node-online";
|
|
1511
|
+
"node-offline": "node-offline";
|
|
1512
|
+
"addon-update-available": "addon-update-available";
|
|
1513
|
+
"server-update-available": "server-update-available";
|
|
1514
|
+
}>>;
|
|
1515
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1516
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1517
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1518
|
+
}, z.core.$strip>>;
|
|
1363
1519
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1364
1520
|
kind: z.ZodLiteral<"polygon">;
|
|
1365
1521
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -1492,6 +1648,7 @@ export declare const notificationRulesCapability: {
|
|
|
1492
1648
|
immediate: "immediate";
|
|
1493
1649
|
"track-end": "track-end";
|
|
1494
1650
|
"package-event": "package-event";
|
|
1651
|
+
"system-event": "system-event";
|
|
1495
1652
|
}>;
|
|
1496
1653
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
1497
1654
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -1539,6 +1696,21 @@ export declare const notificationRulesCapability: {
|
|
|
1539
1696
|
delivered: "delivered";
|
|
1540
1697
|
"picked-up": "picked-up";
|
|
1541
1698
|
}>>;
|
|
1699
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
1700
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
1701
|
+
"camera-online": "camera-online";
|
|
1702
|
+
"camera-offline": "camera-offline";
|
|
1703
|
+
"stream-online": "stream-online";
|
|
1704
|
+
"stream-offline": "stream-offline";
|
|
1705
|
+
"node-online": "node-online";
|
|
1706
|
+
"node-offline": "node-offline";
|
|
1707
|
+
"addon-update-available": "addon-update-available";
|
|
1708
|
+
"server-update-available": "server-update-available";
|
|
1709
|
+
}>>;
|
|
1710
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1711
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1712
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1713
|
+
}, z.core.$strip>>;
|
|
1542
1714
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1543
1715
|
kind: z.ZodLiteral<"polygon">;
|
|
1544
1716
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -1669,6 +1841,7 @@ export declare const notificationRulesCapability: {
|
|
|
1669
1841
|
immediate: "immediate";
|
|
1670
1842
|
"track-end": "track-end";
|
|
1671
1843
|
"package-event": "package-event";
|
|
1844
|
+
"system-event": "system-event";
|
|
1672
1845
|
}>;
|
|
1673
1846
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
1674
1847
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -1716,6 +1889,21 @@ export declare const notificationRulesCapability: {
|
|
|
1716
1889
|
delivered: "delivered";
|
|
1717
1890
|
"picked-up": "picked-up";
|
|
1718
1891
|
}>>;
|
|
1892
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
1893
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
1894
|
+
"camera-online": "camera-online";
|
|
1895
|
+
"camera-offline": "camera-offline";
|
|
1896
|
+
"stream-online": "stream-online";
|
|
1897
|
+
"stream-offline": "stream-offline";
|
|
1898
|
+
"node-online": "node-online";
|
|
1899
|
+
"node-offline": "node-offline";
|
|
1900
|
+
"addon-update-available": "addon-update-available";
|
|
1901
|
+
"server-update-available": "server-update-available";
|
|
1902
|
+
}>>;
|
|
1903
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1904
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1905
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1906
|
+
}, z.core.$strip>>;
|
|
1719
1907
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1720
1908
|
kind: z.ZodLiteral<"polygon">;
|
|
1721
1909
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -1840,6 +2028,7 @@ export declare const notificationRulesCapability: {
|
|
|
1840
2028
|
immediate: "immediate";
|
|
1841
2029
|
"track-end": "track-end";
|
|
1842
2030
|
"package-event": "package-event";
|
|
2031
|
+
"system-event": "system-event";
|
|
1843
2032
|
}>;
|
|
1844
2033
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
1845
2034
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -1887,6 +2076,21 @@ export declare const notificationRulesCapability: {
|
|
|
1887
2076
|
delivered: "delivered";
|
|
1888
2077
|
"picked-up": "picked-up";
|
|
1889
2078
|
}>>;
|
|
2079
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
2080
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
2081
|
+
"camera-online": "camera-online";
|
|
2082
|
+
"camera-offline": "camera-offline";
|
|
2083
|
+
"stream-online": "stream-online";
|
|
2084
|
+
"stream-offline": "stream-offline";
|
|
2085
|
+
"node-online": "node-online";
|
|
2086
|
+
"node-offline": "node-offline";
|
|
2087
|
+
"addon-update-available": "addon-update-available";
|
|
2088
|
+
"server-update-available": "server-update-available";
|
|
2089
|
+
}>>;
|
|
2090
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2091
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2092
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2093
|
+
}, z.core.$strip>>;
|
|
1890
2094
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1891
2095
|
kind: z.ZodLiteral<"polygon">;
|
|
1892
2096
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -2020,6 +2224,7 @@ export declare const notificationRulesCapability: {
|
|
|
2020
2224
|
immediate: "immediate";
|
|
2021
2225
|
"track-end": "track-end";
|
|
2022
2226
|
"package-event": "package-event";
|
|
2227
|
+
"system-event": "system-event";
|
|
2023
2228
|
}>>;
|
|
2024
2229
|
conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
2025
2230
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -2067,6 +2272,21 @@ export declare const notificationRulesCapability: {
|
|
|
2067
2272
|
delivered: "delivered";
|
|
2068
2273
|
"picked-up": "picked-up";
|
|
2069
2274
|
}>>;
|
|
2275
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
2276
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
2277
|
+
"camera-online": "camera-online";
|
|
2278
|
+
"camera-offline": "camera-offline";
|
|
2279
|
+
"stream-online": "stream-online";
|
|
2280
|
+
"stream-offline": "stream-offline";
|
|
2281
|
+
"node-online": "node-online";
|
|
2282
|
+
"node-offline": "node-offline";
|
|
2283
|
+
"addon-update-available": "addon-update-available";
|
|
2284
|
+
"server-update-available": "server-update-available";
|
|
2285
|
+
}>>;
|
|
2286
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2287
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2288
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2289
|
+
}, z.core.$strip>>;
|
|
2070
2290
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2071
2291
|
kind: z.ZodLiteral<"polygon">;
|
|
2072
2292
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -2192,6 +2412,7 @@ export declare const notificationRulesCapability: {
|
|
|
2192
2412
|
immediate: "immediate";
|
|
2193
2413
|
"track-end": "track-end";
|
|
2194
2414
|
"package-event": "package-event";
|
|
2415
|
+
"system-event": "system-event";
|
|
2195
2416
|
}>;
|
|
2196
2417
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
2197
2418
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -2239,6 +2460,21 @@ export declare const notificationRulesCapability: {
|
|
|
2239
2460
|
delivered: "delivered";
|
|
2240
2461
|
"picked-up": "picked-up";
|
|
2241
2462
|
}>>;
|
|
2463
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
2464
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
2465
|
+
"camera-online": "camera-online";
|
|
2466
|
+
"camera-offline": "camera-offline";
|
|
2467
|
+
"stream-online": "stream-online";
|
|
2468
|
+
"stream-offline": "stream-offline";
|
|
2469
|
+
"node-online": "node-online";
|
|
2470
|
+
"node-offline": "node-offline";
|
|
2471
|
+
"addon-update-available": "addon-update-available";
|
|
2472
|
+
"server-update-available": "server-update-available";
|
|
2473
|
+
}>>;
|
|
2474
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2475
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2476
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2477
|
+
}, z.core.$strip>>;
|
|
2242
2478
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2243
2479
|
kind: z.ZodLiteral<"polygon">;
|
|
2244
2480
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -2417,6 +2653,7 @@ export declare const notificationRulesCapability: {
|
|
|
2417
2653
|
immediate: "immediate";
|
|
2418
2654
|
"track-end": "track-end";
|
|
2419
2655
|
"package-event": "package-event";
|
|
2656
|
+
"system-event": "system-event";
|
|
2420
2657
|
}>;
|
|
2421
2658
|
conditions: z.ZodDefault<z.ZodObject<{
|
|
2422
2659
|
deviceState: z.ZodOptional<z.ZodObject<{
|
|
@@ -2464,6 +2701,21 @@ export declare const notificationRulesCapability: {
|
|
|
2464
2701
|
delivered: "delivered";
|
|
2465
2702
|
"picked-up": "picked-up";
|
|
2466
2703
|
}>>;
|
|
2704
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
2705
|
+
kinds: z.ZodArray<z.ZodEnum<{
|
|
2706
|
+
"camera-online": "camera-online";
|
|
2707
|
+
"camera-offline": "camera-offline";
|
|
2708
|
+
"stream-online": "stream-online";
|
|
2709
|
+
"stream-offline": "stream-offline";
|
|
2710
|
+
"node-online": "node-online";
|
|
2711
|
+
"node-offline": "node-offline";
|
|
2712
|
+
"addon-update-available": "addon-update-available";
|
|
2713
|
+
"server-update-available": "server-update-available";
|
|
2714
|
+
}>>;
|
|
2715
|
+
deviceIds: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2716
|
+
nodeIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2717
|
+
packageNames: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2718
|
+
}, z.core.$strip>>;
|
|
2467
2719
|
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2468
2720
|
kind: z.ZodLiteral<"polygon">;
|
|
2469
2721
|
points: z.ZodArray<z.ZodObject<{
|
|
@@ -2586,6 +2838,7 @@ export declare const notificationRulesCapability: {
|
|
|
2586
2838
|
recordKind: z.ZodEnum<{
|
|
2587
2839
|
"device-event": "device-event";
|
|
2588
2840
|
"package-event": "package-event";
|
|
2841
|
+
"system-event": "system-event";
|
|
2589
2842
|
"object-event": "object-event";
|
|
2590
2843
|
track: "track";
|
|
2591
2844
|
}>;
|
|
@@ -2611,6 +2864,7 @@ export declare const notificationRulesCapability: {
|
|
|
2611
2864
|
catalog: z.ZodArray<z.ZodObject<{
|
|
2612
2865
|
id: z.ZodString;
|
|
2613
2866
|
group: z.ZodEnum<{
|
|
2867
|
+
system: "system";
|
|
2614
2868
|
device: "device";
|
|
2615
2869
|
label: "label";
|
|
2616
2870
|
scope: "scope";
|
|
@@ -2627,6 +2881,7 @@ export declare const notificationRulesCapability: {
|
|
|
2627
2881
|
deviceState: "deviceState";
|
|
2628
2882
|
schedule: "schedule";
|
|
2629
2883
|
packagePhase: "packagePhase";
|
|
2884
|
+
systemEvent: "systemEvent";
|
|
2630
2885
|
occupancy: "occupancy";
|
|
2631
2886
|
deviceIdList: "deviceIdList";
|
|
2632
2887
|
stringList: "stringList";
|
|
@@ -2652,6 +2907,7 @@ export declare const notificationRulesCapability: {
|
|
|
2652
2907
|
immediate: "immediate";
|
|
2653
2908
|
"track-end": "track-end";
|
|
2654
2909
|
"package-event": "package-event";
|
|
2910
|
+
"system-event": "system-event";
|
|
2655
2911
|
}>>;
|
|
2656
2912
|
phase: z.ZodString;
|
|
2657
2913
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -2711,6 +2967,7 @@ export declare const notificationRulesCapability: {
|
|
|
2711
2967
|
immediate: "immediate";
|
|
2712
2968
|
"track-end": "track-end";
|
|
2713
2969
|
"package-event": "package-event";
|
|
2970
|
+
"system-event": "system-event";
|
|
2714
2971
|
}>;
|
|
2715
2972
|
targetId: z.ZodString;
|
|
2716
2973
|
deviceId: z.ZodNumber;
|
|
@@ -2718,6 +2975,7 @@ export declare const notificationRulesCapability: {
|
|
|
2718
2975
|
"device-event": "device-event";
|
|
2719
2976
|
"track-end": "track-end";
|
|
2720
2977
|
"package-event": "package-event";
|
|
2978
|
+
"system-event": "system-event";
|
|
2721
2979
|
"object-event": "object-event";
|
|
2722
2980
|
}>;
|
|
2723
2981
|
recordId: z.ZodString;
|
|
@@ -2737,6 +2995,22 @@ export declare const notificationRulesCapability: {
|
|
|
2737
2995
|
confidence: z.ZodOptional<z.ZodNumber>;
|
|
2738
2996
|
zones: z.ZodArray<z.ZodString>;
|
|
2739
2997
|
timestamp: z.ZodNumber;
|
|
2998
|
+
systemEvent: z.ZodOptional<z.ZodObject<{
|
|
2999
|
+
kind: z.ZodEnum<{
|
|
3000
|
+
"camera-online": "camera-online";
|
|
3001
|
+
"camera-offline": "camera-offline";
|
|
3002
|
+
"stream-online": "stream-online";
|
|
3003
|
+
"stream-offline": "stream-offline";
|
|
3004
|
+
"node-online": "node-online";
|
|
3005
|
+
"node-offline": "node-offline";
|
|
3006
|
+
"addon-update-available": "addon-update-available";
|
|
3007
|
+
"server-update-available": "server-update-available";
|
|
3008
|
+
}>;
|
|
3009
|
+
subject: z.ZodString;
|
|
3010
|
+
title: z.ZodString;
|
|
3011
|
+
body: z.ZodString;
|
|
3012
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
3013
|
+
}, z.core.$strip>>;
|
|
2740
3014
|
}, z.core.$strip>;
|
|
2741
3015
|
}, z.core.$strip>>;
|
|
2742
3016
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
@@ -40,21 +40,32 @@ import { type InferProvider } from './capability-definition.js';
|
|
|
40
40
|
* core, and no per-integration branch anywhere: `/api/oauth2/authorize` and
|
|
41
41
|
* `/api/oauth2/integrations` are built from this collection alone.
|
|
42
42
|
*
|
|
43
|
-
* **Scopes
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
43
|
+
* **Scopes. `requestedScopes` has exactly ONE meaning: what the integration
|
|
44
|
+
* NEEDS to function.** Not a blast radius, not a conservative
|
|
45
|
+
* under-declaration, not a description of some other path the addon happens to
|
|
46
|
+
* have. Derive it from what the client actually calls **with this token** —
|
|
47
|
+
* every tRPC path against `METHOD_ACCESS_MAP`, plus an `addon:` grant for every
|
|
48
|
+
* addon HTTP route it posts to — and write the call that justifies each entry
|
|
49
|
+
* next to it. Two integrations once used this field to mean two different
|
|
50
|
+
* things; the operator ruled there is one meaning, and any third integration
|
|
51
|
+
* inherits it (2026-08-09).
|
|
52
|
+
*
|
|
53
|
+
* This is not documentation, it is the ENFORCEMENT INPUT. Since
|
|
54
|
+
* [D103](../../../../docs/decisions/adr-0103.md) the `/addon/:addonId/*` gate
|
|
55
|
+
* checks an integration token's grant before letting it reach an
|
|
56
|
+
* `access: 'authenticated'` route, so an **under-declaration is an integration
|
|
57
|
+
* that stops working** — a missing `addon:` entry means `403 Token scope
|
|
58
|
+
* mismatch` on every control the client tries to actuate. Widen the descriptor
|
|
59
|
+
* honestly rather than weakening a check to make a route pass.
|
|
60
|
+
*
|
|
61
|
+
* Prefer a narrow `capability:` scope to a `category:` one unless the client
|
|
62
|
+
* genuinely needs a whole family; a category scope grants every future member
|
|
48
63
|
* of that category too. `category:system [create]` has been rejected once and
|
|
49
64
|
* should stay rejected: it hands `addons.installPackage` to an integration.
|
|
50
65
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* the addon does the work, while the Home Assistant component calls tRPC
|
|
55
|
-
* directly with the token. So `requestedScopes` describes the blast radius of
|
|
56
|
-
* the GRANT, not the reach of the integration; do not widen one to describe the
|
|
57
|
-
* other.
|
|
66
|
+
* Calls the ADDON itself makes over `ctx.api` run as the addon and are not
|
|
67
|
+
* scope-checked, so they are not what this field describes — but reaching the
|
|
68
|
+
* addon's route in the first place IS, and that is the entry to declare.
|
|
58
69
|
*
|
|
59
70
|
* **The boot window.** An addon registers its provider after its runner forks
|
|
60
71
|
* and initialises, so between hub start and that moment this collection is
|
|
@@ -109,6 +120,7 @@ declare const OauthIntegrationDescriptorSchema: z.ZodObject<{
|
|
|
109
120
|
allowedPrivateHostPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
110
121
|
requiresPkce: z.ZodOptional<z.ZodBoolean>;
|
|
111
122
|
hubUrl: z.ZodOptional<z.ZodString>;
|
|
123
|
+
refreshTokenTtlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
|
|
112
124
|
}, z.core.$strip>;
|
|
113
125
|
export declare const oauthIntegrationCapability: {
|
|
114
126
|
readonly name: "oauth-integration";
|
|
@@ -159,6 +171,7 @@ export declare const oauthIntegrationCapability: {
|
|
|
159
171
|
allowedPrivateHostPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
160
172
|
requiresPkce: z.ZodOptional<z.ZodBoolean>;
|
|
161
173
|
hubUrl: z.ZodOptional<z.ZodString>;
|
|
174
|
+
refreshTokenTtlSec: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"never">]>>;
|
|
162
175
|
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
163
176
|
};
|
|
164
177
|
};
|