@camstack/types 1.2.65 → 1.2.66
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 +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/air-quality-sensor.cap.d.ts +10 -0
- package/dist/capabilities/alarm-panel.cap.d.ts +10 -0
- package/dist/capabilities/ambient-light-sensor.cap.d.ts +10 -0
- package/dist/capabilities/audio-metrics.cap.d.ts +7 -0
- package/dist/capabilities/automation-control.cap.d.ts +7 -0
- package/dist/capabilities/battery.cap.d.ts +10 -0
- package/dist/capabilities/binary.cap.d.ts +10 -0
- package/dist/capabilities/brightness.cap.d.ts +7 -0
- package/dist/capabilities/camera-streams.cap.d.ts +7 -0
- package/dist/capabilities/capability-definition.d.ts +58 -0
- package/dist/capabilities/carbon-monoxide.cap.d.ts +10 -0
- package/dist/capabilities/climate-control.cap.d.ts +7 -0
- package/dist/capabilities/color.cap.d.ts +7 -0
- package/dist/capabilities/connectivity.cap.d.ts +10 -0
- package/dist/capabilities/consumables.cap.d.ts +7 -0
- package/dist/capabilities/contact.cap.d.ts +10 -0
- package/dist/capabilities/control.cap.d.ts +7 -0
- package/dist/capabilities/cover.cap.d.ts +10 -0
- package/dist/capabilities/day-night.cap.d.ts +10 -0
- package/dist/capabilities/device-discovery.cap.d.ts +7 -0
- package/dist/capabilities/device-status.cap.d.ts +10 -0
- package/dist/capabilities/doorbell.cap.d.ts +7 -0
- package/dist/capabilities/enum-sensor.cap.d.ts +10 -0
- package/dist/capabilities/event-emitter.cap.d.ts +7 -0
- package/dist/capabilities/fan-control.cap.d.ts +7 -0
- package/dist/capabilities/feature-probe.cap.d.ts +7 -0
- package/dist/capabilities/flood.cap.d.ts +10 -0
- package/dist/capabilities/gas.cap.d.ts +10 -0
- package/dist/capabilities/humidifier.cap.d.ts +7 -0
- package/dist/capabilities/humidity-sensor.cap.d.ts +10 -0
- package/dist/capabilities/image-settings.cap.d.ts +10 -0
- package/dist/capabilities/image.cap.d.ts +7 -0
- package/dist/capabilities/index.d.ts +3 -3
- package/dist/capabilities/lawn-mower-control.cap.d.ts +7 -0
- package/dist/capabilities/lock-control.cap.d.ts +10 -0
- package/dist/capabilities/media-player.cap.d.ts +7 -0
- package/dist/capabilities/motion-trigger.cap.d.ts +7 -0
- package/dist/capabilities/motion-zones.cap.d.ts +10 -0
- package/dist/capabilities/motion.cap.d.ts +7 -0
- package/dist/capabilities/native-object-detection.cap.d.ts +10 -0
- package/dist/capabilities/notification-output.cap.d.ts +16 -0
- package/dist/capabilities/notification-rules.cap.d.ts +35 -3
- package/dist/capabilities/notifier.cap.d.ts +7 -0
- package/dist/capabilities/numeric-sensor.cap.d.ts +10 -0
- package/dist/capabilities/osd-manager.cap.d.ts +2 -0
- package/dist/capabilities/pet-feeder.cap.d.ts +7 -0
- package/dist/capabilities/power-meter.cap.d.ts +10 -0
- package/dist/capabilities/presence.cap.d.ts +10 -0
- package/dist/capabilities/pressure-sensor.cap.d.ts +10 -0
- package/dist/capabilities/privacy-mask.cap.d.ts +10 -0
- package/dist/capabilities/ptz-autotrack.cap.d.ts +7 -0
- package/dist/capabilities/scene-monitor.cap.d.ts +7 -0
- package/dist/capabilities/script-runner.cap.d.ts +7 -0
- package/dist/capabilities/smoke.cap.d.ts +10 -0
- package/dist/capabilities/stream-params.cap.d.ts +10 -0
- package/dist/capabilities/switch.cap.d.ts +10 -0
- package/dist/capabilities/tamper.cap.d.ts +10 -0
- package/dist/capabilities/temperature-sensor.cap.d.ts +10 -0
- package/dist/capabilities/update.cap.d.ts +7 -0
- package/dist/capabilities/vacuum-control.cap.d.ts +7 -0
- package/dist/capabilities/valve.cap.d.ts +7 -0
- package/dist/capabilities/vibration.cap.d.ts +10 -0
- package/dist/capabilities/water-heater.cap.d.ts +7 -0
- package/dist/capabilities/weather.cap.d.ts +7 -0
- package/dist/capabilities/zone-analytics.cap.d.ts +7 -0
- package/dist/capabilities/zone-rules.cap.d.ts +7 -0
- package/dist/capabilities/zones.cap.d.ts +7 -0
- package/dist/generated/runtime-state-durability.d.ts +31 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1189 -72
- package/dist/index.mjs +1168 -73
- package/dist/notification/audio-condition.d.ts +118 -0
- package/dist/{sleep-BxjBLp3L.mjs → sleep-CSgK0rNX.mjs} +3 -1
- package/dist/{sleep-BszXLEvP.js → sleep-Dh1EJSqF.js} +8 -0
- package/package.json +1 -1
|
@@ -87,5 +87,15 @@ export declare const lockControlCapability: {
|
|
|
87
87
|
}>;
|
|
88
88
|
lastChangedAt: z.ZodNumber;
|
|
89
89
|
}, z.core.$strip>;
|
|
90
|
+
/**
|
|
91
|
+
* Runtime-state durability: **restored** — a lock left locked must still read locked.
|
|
92
|
+
*
|
|
93
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
94
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
95
|
+
*/
|
|
96
|
+
readonly durability: "restored";
|
|
97
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
98
|
+
* whether persisting is worth a SQLite commit. */
|
|
99
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
90
100
|
};
|
|
91
101
|
export type ILockControlProvider = InferProvider<typeof lockControlCapability>;
|
|
@@ -195,6 +195,13 @@ export declare const mediaPlayerCapability: {
|
|
|
195
195
|
}>>;
|
|
196
196
|
lastChangedAt: z.ZodNumber;
|
|
197
197
|
}, z.core.$strip>;
|
|
198
|
+
/**
|
|
199
|
+
* Runtime-state durability: **session** — a restored transport position describes a playback that stopped when the hub did.
|
|
200
|
+
*
|
|
201
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
202
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
203
|
+
*/
|
|
204
|
+
readonly durability: "session";
|
|
198
205
|
};
|
|
199
206
|
export type IMediaPlayerProvider = InferProvider<typeof mediaPlayerCapability>;
|
|
200
207
|
export {};
|
|
@@ -74,5 +74,12 @@ export declare const motionTriggerCapability: {
|
|
|
74
74
|
lastChangedAt: z.ZodNumber;
|
|
75
75
|
lastFetchedAt: z.ZodNumber;
|
|
76
76
|
}, z.core.$strip>;
|
|
77
|
+
/**
|
|
78
|
+
* Runtime-state durability: **session** — the authority for motion-trigger enablement is the provider's own config; the slice is a mirror of it, re-published on connect.
|
|
79
|
+
*
|
|
80
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
81
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
82
|
+
*/
|
|
83
|
+
readonly durability: "session";
|
|
77
84
|
};
|
|
78
85
|
export type IMotionTriggerProvider = InferProvider<typeof motionTriggerCapability>;
|
|
@@ -160,5 +160,15 @@ export declare const motionZonesCapability: {
|
|
|
160
160
|
}, z.core.$strip>>;
|
|
161
161
|
lastFetchedAt: z.ZodNumber;
|
|
162
162
|
}, z.core.$strip>;
|
|
163
|
+
/**
|
|
164
|
+
* Runtime-state durability: **restored** — the 14 KB polygon list is the single largest slice on the fleet and has not changed since the operator drew it. Highest value per byte in the table.
|
|
165
|
+
*
|
|
166
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
167
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
168
|
+
*/
|
|
169
|
+
readonly durability: "restored";
|
|
170
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
171
|
+
* whether persisting is worth a SQLite commit. */
|
|
172
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
163
173
|
};
|
|
164
174
|
export type IMotionZonesProvider = InferNativeProvider<typeof motionZonesCapability>;
|
|
@@ -129,5 +129,12 @@ export declare const motionCapability: {
|
|
|
129
129
|
lastDetectedAt: z.ZodNullable<z.ZodNumber>;
|
|
130
130
|
autoClearAfterMs: z.ZodNullable<z.ZodNumber>;
|
|
131
131
|
}, z.core.$strip>;
|
|
132
|
+
/**
|
|
133
|
+
* Runtime-state durability: **session** — self-clearing by construction (`autoClearAfterMs`); a restored `detected: true` is a frozen event, and the next frame re-publishes the real one.
|
|
134
|
+
*
|
|
135
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
136
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
137
|
+
*/
|
|
138
|
+
readonly durability: "session";
|
|
132
139
|
};
|
|
133
140
|
export type IMotionProvider = InferProvider<typeof motionCapability>;
|
|
@@ -193,5 +193,15 @@ export declare const nativeObjectDetectionCapability: {
|
|
|
193
193
|
enabled: z.ZodBoolean;
|
|
194
194
|
lastFetchedAt: z.ZodNumber;
|
|
195
195
|
}, z.core.$strip>;
|
|
196
|
+
/**
|
|
197
|
+
* Runtime-state durability: **restored** — `enabled` is an operator toggle on a camera whose refresh is a no-op and whose staleMs is Infinity. There is no hardware value to re-read — losing it loses the setting.
|
|
198
|
+
*
|
|
199
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
200
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
201
|
+
*/
|
|
202
|
+
readonly durability: "restored";
|
|
203
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
204
|
+
* whether persisting is worth a SQLite commit. */
|
|
205
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
196
206
|
};
|
|
197
207
|
export type INativeObjectDetectionProvider = InferProvider<typeof nativeObjectDetectionCapability>;
|
|
@@ -120,6 +120,10 @@ export declare const NotificationActionSchema: z.ZodObject<{
|
|
|
120
120
|
alert: "alert";
|
|
121
121
|
}>>;
|
|
122
122
|
destructive: z.ZodOptional<z.ZodBoolean>;
|
|
123
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
124
|
+
navigate: "navigate";
|
|
125
|
+
background: "background";
|
|
126
|
+
}>>;
|
|
123
127
|
}, z.core.$strip>;
|
|
124
128
|
export type NotificationAction = z.infer<typeof NotificationActionSchema>;
|
|
125
129
|
/**
|
|
@@ -174,6 +178,10 @@ export declare const NotificationSchema: z.ZodObject<{
|
|
|
174
178
|
alert: "alert";
|
|
175
179
|
}>>;
|
|
176
180
|
destructive: z.ZodOptional<z.ZodBoolean>;
|
|
181
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
182
|
+
navigate: "navigate";
|
|
183
|
+
background: "background";
|
|
184
|
+
}>>;
|
|
177
185
|
}, z.core.$strip>>>;
|
|
178
186
|
sound: z.ZodOptional<z.ZodString>;
|
|
179
187
|
ttl: z.ZodOptional<z.ZodNumber>;
|
|
@@ -499,6 +507,10 @@ export declare const notificationOutputCapability: {
|
|
|
499
507
|
alert: "alert";
|
|
500
508
|
}>>;
|
|
501
509
|
destructive: z.ZodOptional<z.ZodBoolean>;
|
|
510
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
511
|
+
navigate: "navigate";
|
|
512
|
+
background: "background";
|
|
513
|
+
}>>;
|
|
502
514
|
}, z.core.$strip>>>;
|
|
503
515
|
sound: z.ZodOptional<z.ZodString>;
|
|
504
516
|
ttl: z.ZodOptional<z.ZodNumber>;
|
|
@@ -569,6 +581,10 @@ export declare const notificationOutputCapability: {
|
|
|
569
581
|
alert: "alert";
|
|
570
582
|
}>>;
|
|
571
583
|
destructive: z.ZodOptional<z.ZodBoolean>;
|
|
584
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
585
|
+
navigate: "navigate";
|
|
586
|
+
background: "background";
|
|
587
|
+
}>>;
|
|
572
588
|
}, z.core.$strip>>>;
|
|
573
589
|
sound: z.ZodOptional<z.ZodString>;
|
|
574
590
|
ttl: z.ZodOptional<z.ZodNumber>;
|
|
@@ -137,6 +137,22 @@ export type NcSystemEventCondition = z.infer<typeof NcSystemEventConditionSchema
|
|
|
137
137
|
* unique key `(ruleId, trackId, targetId)`. Not a rule field in P1.
|
|
138
138
|
*/
|
|
139
139
|
export declare const NC_MAX_PER_TRACK_IMMEDIATE = 1;
|
|
140
|
+
/** Hard ceiling on a window (24h). A snooze that could not expire would be an
|
|
141
|
+
* outage the operator asked for once and forgot. */
|
|
142
|
+
export declare const NC_SNOOZE_MAX_MINUTES = 1440;
|
|
143
|
+
/**
|
|
144
|
+
* The durations a notification offers when its rule does not say otherwise.
|
|
145
|
+
*
|
|
146
|
+
* MINUTES, and short ones: a snooze button is answered on a lock screen, and
|
|
147
|
+
* the three choices that fit there are "the next few minutes", "the next half
|
|
148
|
+
* hour" and "the next hour". Anything longer is a decision somebody sits down
|
|
149
|
+
* to make, which is what the app's own snooze surface is for.
|
|
150
|
+
*
|
|
151
|
+
* Resolved in CODE (`snoozeChoices`), never as a Zod default — see
|
|
152
|
+
* {@link NcRuleInputSchema.shape.snoozeOptions} for why the distinction is
|
|
153
|
+
* load-bearing.
|
|
154
|
+
*/
|
|
155
|
+
export declare const NC_DEFAULT_SNOOZE_MINUTES: readonly number[];
|
|
140
156
|
/** One weekly activation window. `startMinute > endMinute` crosses midnight. */
|
|
141
157
|
export declare const NcScheduleWindowSchema: z.ZodObject<{
|
|
142
158
|
days: z.ZodArray<z.ZodNumber>;
|
|
@@ -848,6 +864,7 @@ export declare const NcRuleInputSchema: z.ZodObject<{
|
|
|
848
864
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
849
865
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
850
866
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
867
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
851
868
|
actions: z.ZodOptional<z.ZodObject<{
|
|
852
869
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
853
870
|
name: z.ZodString;
|
|
@@ -947,6 +964,7 @@ export declare const NcRulePatchSchema: z.ZodObject<{
|
|
|
947
964
|
}, z.core.$strip>>>;
|
|
948
965
|
ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
949
966
|
snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
967
|
+
snoozeOptions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
|
|
950
968
|
actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
951
969
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
952
970
|
name: z.ZodString;
|
|
@@ -1307,6 +1325,7 @@ export declare const NcRuleSchema: z.ZodObject<{
|
|
|
1307
1325
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
1308
1326
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1309
1327
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
1328
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1310
1329
|
actions: z.ZodOptional<z.ZodObject<{
|
|
1311
1330
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1312
1331
|
name: z.ZodString;
|
|
@@ -1393,6 +1412,7 @@ export type NcTestResult = z.infer<typeof NcTestResultSchema>;
|
|
|
1393
1412
|
export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
1394
1413
|
id: z.ZodString;
|
|
1395
1414
|
group: z.ZodEnum<{
|
|
1415
|
+
audio: "audio";
|
|
1396
1416
|
system: "system";
|
|
1397
1417
|
device: "device";
|
|
1398
1418
|
label: "label";
|
|
@@ -1407,6 +1427,7 @@ export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
|
1407
1427
|
label: z.ZodString;
|
|
1408
1428
|
valueType: z.ZodEnum<{
|
|
1409
1429
|
number: "number";
|
|
1430
|
+
audio: "audio";
|
|
1410
1431
|
deviceState: "deviceState";
|
|
1411
1432
|
schedule: "schedule";
|
|
1412
1433
|
packagePhase: "packagePhase";
|
|
@@ -1622,9 +1643,6 @@ export declare const NcSnoozeScopeSchema: z.ZodEnum<{
|
|
|
1622
1643
|
rule: "rule";
|
|
1623
1644
|
}>;
|
|
1624
1645
|
export type NcSnoozeScope = z.infer<typeof NcSnoozeScopeSchema>;
|
|
1625
|
-
/** Hard ceiling on a window (24h). A snooze that could not expire would be an
|
|
1626
|
-
* outage the operator asked for once and forgot. */
|
|
1627
|
-
export declare const NC_SNOOZE_MAX_MINUTES = 1440;
|
|
1628
1646
|
/**
|
|
1629
1647
|
* Client-authored snooze. The server stamps `userId`, `startedAt` and
|
|
1630
1648
|
* `expiresAt` — a DURATION is sent rather than an instant so a client with a
|
|
@@ -1638,6 +1656,7 @@ export declare const NcSnoozeInputSchema: z.ZodObject<{
|
|
|
1638
1656
|
}>;
|
|
1639
1657
|
ruleId: z.ZodOptional<z.ZodString>;
|
|
1640
1658
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
1659
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1641
1660
|
durationMinutes: z.ZodNumber;
|
|
1642
1661
|
global: z.ZodOptional<z.ZodBoolean>;
|
|
1643
1662
|
summary: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -1654,6 +1673,7 @@ export declare const NcSnoozeSchema: z.ZodObject<{
|
|
|
1654
1673
|
}>;
|
|
1655
1674
|
ruleId: z.ZodOptional<z.ZodString>;
|
|
1656
1675
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
1676
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1657
1677
|
startedAt: z.ZodNumber;
|
|
1658
1678
|
expiresAt: z.ZodNumber;
|
|
1659
1679
|
global: z.ZodBoolean;
|
|
@@ -1951,6 +1971,7 @@ export declare const notificationRulesCapability: {
|
|
|
1951
1971
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
1952
1972
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1953
1973
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
1974
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1954
1975
|
actions: z.ZodOptional<z.ZodObject<{
|
|
1955
1976
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1956
1977
|
name: z.ZodString;
|
|
@@ -2183,6 +2204,7 @@ export declare const notificationRulesCapability: {
|
|
|
2183
2204
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
2184
2205
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
2185
2206
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
2207
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2186
2208
|
actions: z.ZodOptional<z.ZodObject<{
|
|
2187
2209
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2188
2210
|
name: z.ZodString;
|
|
@@ -2413,6 +2435,7 @@ export declare const notificationRulesCapability: {
|
|
|
2413
2435
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
2414
2436
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
2415
2437
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
2438
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2416
2439
|
actions: z.ZodOptional<z.ZodObject<{
|
|
2417
2440
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2418
2441
|
name: z.ZodString;
|
|
@@ -2637,6 +2660,7 @@ export declare const notificationRulesCapability: {
|
|
|
2637
2660
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
2638
2661
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
2639
2662
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
2663
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
2640
2664
|
actions: z.ZodOptional<z.ZodObject<{
|
|
2641
2665
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2642
2666
|
name: z.ZodString;
|
|
@@ -2736,6 +2760,7 @@ export declare const notificationRulesCapability: {
|
|
|
2736
2760
|
}, z.core.$strip>>>;
|
|
2737
2761
|
ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
2738
2762
|
snoozeAllowGlobal: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
|
|
2763
|
+
snoozeOptions: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodNumber>>>;
|
|
2739
2764
|
actions: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
2740
2765
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
2741
2766
|
name: z.ZodString;
|
|
@@ -3095,6 +3120,7 @@ export declare const notificationRulesCapability: {
|
|
|
3095
3120
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
3096
3121
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
3097
3122
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
3123
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
3098
3124
|
actions: z.ZodOptional<z.ZodObject<{
|
|
3099
3125
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3100
3126
|
name: z.ZodString;
|
|
@@ -3373,6 +3399,7 @@ export declare const notificationRulesCapability: {
|
|
|
3373
3399
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
3374
3400
|
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
3375
3401
|
snoozeAllowGlobal: z.ZodOptional<z.ZodBoolean>;
|
|
3402
|
+
snoozeOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
3376
3403
|
actions: z.ZodOptional<z.ZodObject<{
|
|
3377
3404
|
onTrigger: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
3378
3405
|
name: z.ZodString;
|
|
@@ -3466,6 +3493,7 @@ export declare const notificationRulesCapability: {
|
|
|
3466
3493
|
catalog: z.ZodArray<z.ZodObject<{
|
|
3467
3494
|
id: z.ZodString;
|
|
3468
3495
|
group: z.ZodEnum<{
|
|
3496
|
+
audio: "audio";
|
|
3469
3497
|
system: "system";
|
|
3470
3498
|
device: "device";
|
|
3471
3499
|
label: "label";
|
|
@@ -3480,6 +3508,7 @@ export declare const notificationRulesCapability: {
|
|
|
3480
3508
|
label: z.ZodString;
|
|
3481
3509
|
valueType: z.ZodEnum<{
|
|
3482
3510
|
number: "number";
|
|
3511
|
+
audio: "audio";
|
|
3483
3512
|
deviceState: "deviceState";
|
|
3484
3513
|
schedule: "schedule";
|
|
3485
3514
|
packagePhase: "packagePhase";
|
|
@@ -3643,6 +3672,7 @@ export declare const notificationRulesCapability: {
|
|
|
3643
3672
|
}>;
|
|
3644
3673
|
ruleId: z.ZodOptional<z.ZodString>;
|
|
3645
3674
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
3675
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3646
3676
|
startedAt: z.ZodNumber;
|
|
3647
3677
|
expiresAt: z.ZodNumber;
|
|
3648
3678
|
global: z.ZodBoolean;
|
|
@@ -3669,6 +3699,7 @@ export declare const notificationRulesCapability: {
|
|
|
3669
3699
|
}>;
|
|
3670
3700
|
ruleId: z.ZodOptional<z.ZodString>;
|
|
3671
3701
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
3702
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3672
3703
|
durationMinutes: z.ZodNumber;
|
|
3673
3704
|
global: z.ZodOptional<z.ZodBoolean>;
|
|
3674
3705
|
summary: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -3684,6 +3715,7 @@ export declare const notificationRulesCapability: {
|
|
|
3684
3715
|
}>;
|
|
3685
3716
|
ruleId: z.ZodOptional<z.ZodString>;
|
|
3686
3717
|
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
3718
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
3687
3719
|
startedAt: z.ZodNumber;
|
|
3688
3720
|
expiresAt: z.ZodNumber;
|
|
3689
3721
|
global: z.ZodBoolean;
|
|
@@ -167,6 +167,13 @@ export declare const notifierCapability: {
|
|
|
167
167
|
recipients: z.ZodBoolean;
|
|
168
168
|
}, z.core.$strip>;
|
|
169
169
|
}, z.core.$strip>;
|
|
170
|
+
/**
|
|
171
|
+
* Runtime-state durability: **session** — live queue depth and last-send state; a restored queue depth describes a queue that no longer exists.
|
|
172
|
+
*
|
|
173
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
174
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
175
|
+
*/
|
|
176
|
+
readonly durability: "session";
|
|
170
177
|
};
|
|
171
178
|
export type INotifierProvider = InferProvider<typeof notifierCapability>;
|
|
172
179
|
export {};
|
|
@@ -47,5 +47,15 @@ export declare const numericSensorCapability: {
|
|
|
47
47
|
precision: z.ZodOptional<z.ZodNumber>;
|
|
48
48
|
lastFetchedAt: z.ZodNumber;
|
|
49
49
|
}, z.core.$strip>;
|
|
50
|
+
/**
|
|
51
|
+
* Runtime-state durability: **restored** — polled value, low churn once the clock is excluded (251 of 669 writes were the clock alone); restoring it removes the cold window before the first poll.
|
|
52
|
+
*
|
|
53
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
54
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
55
|
+
*/
|
|
56
|
+
readonly durability: "restored";
|
|
57
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
58
|
+
* whether persisting is worth a SQLite commit. */
|
|
59
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
50
60
|
};
|
|
51
61
|
export type INumericSensorProvider = InferProvider<typeof numericSensorCapability>;
|
|
@@ -587,6 +587,7 @@ export declare const osdManagerCapability: {
|
|
|
587
587
|
catalog: z.ZodArray<z.ZodObject<{
|
|
588
588
|
id: z.ZodString;
|
|
589
589
|
group: z.ZodEnum<{
|
|
590
|
+
audio: "audio";
|
|
590
591
|
system: "system";
|
|
591
592
|
device: "device";
|
|
592
593
|
label: "label";
|
|
@@ -601,6 +602,7 @@ export declare const osdManagerCapability: {
|
|
|
601
602
|
label: z.ZodString;
|
|
602
603
|
valueType: z.ZodEnum<{
|
|
603
604
|
number: "number";
|
|
605
|
+
audio: "audio";
|
|
604
606
|
deviceState: "deviceState";
|
|
605
607
|
schedule: "schedule";
|
|
606
608
|
packagePhase: "packagePhase";
|
|
@@ -181,5 +181,12 @@ export declare const petFeederCapability: {
|
|
|
181
181
|
volume: z.ZodNumber;
|
|
182
182
|
lastFetchedAt: z.ZodNumber;
|
|
183
183
|
}, z.core.$strip>;
|
|
184
|
+
/**
|
|
185
|
+
* Runtime-state durability: **session** — live appliance state re-published on connect.
|
|
186
|
+
*
|
|
187
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
188
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
189
|
+
*/
|
|
190
|
+
readonly durability: "session";
|
|
184
191
|
};
|
|
185
192
|
export type IPetFeederProvider = InferProvider<typeof petFeederCapability>;
|
|
@@ -60,5 +60,15 @@ export declare const powerMeterCapability: {
|
|
|
60
60
|
unit: z.ZodOptional<z.ZodString>;
|
|
61
61
|
precision: z.ZodOptional<z.ZodNumber>;
|
|
62
62
|
}, z.core.$strip>;
|
|
63
|
+
/**
|
|
64
|
+
* Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
|
|
65
|
+
*
|
|
66
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
67
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
68
|
+
*/
|
|
69
|
+
readonly durability: "restored";
|
|
70
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
71
|
+
* whether persisting is worth a SQLite commit. */
|
|
72
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
63
73
|
};
|
|
64
74
|
export type IPowerMeterProvider = InferProvider<typeof powerMeterCapability>;
|
|
@@ -73,6 +73,16 @@ export declare const presenceCapability: {
|
|
|
73
73
|
batteryPercent: z.ZodNullable<z.ZodNumber>;
|
|
74
74
|
lastChangedAt: z.ZodNumber;
|
|
75
75
|
}, z.core.$strip>;
|
|
76
|
+
/**
|
|
77
|
+
* Runtime-state durability: **restored** — occupancy-relevant: the restored state is what an occupancy rule compares the first post-restart observation against.
|
|
78
|
+
*
|
|
79
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
80
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
81
|
+
*/
|
|
82
|
+
readonly durability: "restored";
|
|
83
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
84
|
+
* whether persisting is worth a SQLite commit. */
|
|
85
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
76
86
|
};
|
|
77
87
|
export type IPresenceProvider = InferProvider<typeof presenceCapability>;
|
|
78
88
|
export {};
|
|
@@ -38,5 +38,15 @@ export declare const pressureSensorCapability: {
|
|
|
38
38
|
unit: z.ZodOptional<z.ZodString>;
|
|
39
39
|
precision: z.ZodOptional<z.ZodNumber>;
|
|
40
40
|
}, z.core.$strip>;
|
|
41
|
+
/**
|
|
42
|
+
* Runtime-state durability: **restored** — as `numeric-sensor`.
|
|
43
|
+
*
|
|
44
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
45
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
46
|
+
*/
|
|
47
|
+
readonly durability: "restored";
|
|
48
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
49
|
+
* whether persisting is worth a SQLite commit. */
|
|
50
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
41
51
|
};
|
|
42
52
|
export type IPressureSensorProvider = InferProvider<typeof pressureSensorCapability>;
|
|
@@ -243,6 +243,16 @@ export declare const privacyMaskCapability: {
|
|
|
243
243
|
audioEnabled: z.ZodNullable<z.ZodBoolean>;
|
|
244
244
|
lastFetchedAt: z.ZodNumber;
|
|
245
245
|
}, z.core.$strip>;
|
|
246
|
+
/**
|
|
247
|
+
* Runtime-state durability: **restored** — operator-drawn regions, zero real churn — 22 writes in 25 minutes, every one of them the clock.
|
|
248
|
+
*
|
|
249
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
250
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
251
|
+
*/
|
|
252
|
+
readonly durability: "restored";
|
|
253
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
254
|
+
* whether persisting is worth a SQLite commit. */
|
|
255
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
246
256
|
};
|
|
247
257
|
export type IPrivacyMaskProvider = InferNativeProvider<typeof privacyMaskCapability>;
|
|
248
258
|
/**
|
|
@@ -194,5 +194,12 @@ export declare const ptzAutotrackCapability: {
|
|
|
194
194
|
}, z.core.$strip>>;
|
|
195
195
|
lastFetchedAt: z.ZodNumber;
|
|
196
196
|
}, z.core.$strip>;
|
|
197
|
+
/**
|
|
198
|
+
* Runtime-state durability: **session** — mirrors the camera's own autotrack config, re-read on connect.
|
|
199
|
+
*
|
|
200
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
201
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
202
|
+
*/
|
|
203
|
+
readonly durability: "session";
|
|
197
204
|
};
|
|
198
205
|
export type IPtzAutotrackProvider = InferProvider<typeof ptzAutotrackCapability>;
|
|
@@ -479,5 +479,12 @@ export declare const sceneMonitorCapability: {
|
|
|
479
479
|
}, z.core.$strip>>;
|
|
480
480
|
lastFetchedAt: z.ZodNumber;
|
|
481
481
|
}, z.core.$strip>;
|
|
482
|
+
/**
|
|
483
|
+
* Runtime-state durability: **session** — re-derived from the current scene on the next evaluation.
|
|
484
|
+
*
|
|
485
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
486
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
487
|
+
*/
|
|
488
|
+
readonly durability: "session";
|
|
482
489
|
};
|
|
483
490
|
export type ISceneMonitorProvider = InferNativeProvider<typeof sceneMonitorCapability>;
|
|
@@ -57,5 +57,12 @@ export declare const scriptRunnerCapability: {
|
|
|
57
57
|
lastError: z.ZodNullable<z.ZodString>;
|
|
58
58
|
lastChangedAt: z.ZodNumber;
|
|
59
59
|
}, z.core.$strip>;
|
|
60
|
+
/**
|
|
61
|
+
* Runtime-state durability: **session** — a restored `isRunning: true` describes a process that died with the previous hub.
|
|
62
|
+
*
|
|
63
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
64
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
65
|
+
*/
|
|
66
|
+
readonly durability: "session";
|
|
60
67
|
};
|
|
61
68
|
export type IScriptRunnerProvider = InferProvider<typeof scriptRunnerCapability>;
|
|
@@ -33,5 +33,15 @@ export declare const smokeCapability: {
|
|
|
33
33
|
detected: z.ZodBoolean;
|
|
34
34
|
lastChangedAt: z.ZodNumber;
|
|
35
35
|
}, z.core.$strip>;
|
|
36
|
+
/**
|
|
37
|
+
* Runtime-state durability: **restored** — a safety sensor must not read "clear" merely because the hub restarted.
|
|
38
|
+
*
|
|
39
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
40
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
41
|
+
*/
|
|
42
|
+
readonly durability: "restored";
|
|
43
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
44
|
+
* whether persisting is worth a SQLite commit. */
|
|
45
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
36
46
|
};
|
|
37
47
|
export type ISmokeProvider = InferProvider<typeof smokeCapability>;
|
|
@@ -481,6 +481,16 @@ export declare const streamParamsCapability: {
|
|
|
481
481
|
}, z.core.$strip>>;
|
|
482
482
|
lastFetchedAt: z.ZodNumber;
|
|
483
483
|
}, z.core.$strip>;
|
|
484
|
+
/**
|
|
485
|
+
* Runtime-state durability: **restored** — operator-set encoder profile; mutation-driven.
|
|
486
|
+
*
|
|
487
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
488
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
489
|
+
*/
|
|
490
|
+
readonly durability: "restored";
|
|
491
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
492
|
+
* whether persisting is worth a SQLite commit. */
|
|
493
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
484
494
|
};
|
|
485
495
|
export type IStreamParamsProvider = InferNativeProvider<typeof streamParamsCapability>;
|
|
486
496
|
export { StreamProfileConfigSchema, StreamProfileOptionsSchema };
|
|
@@ -50,6 +50,16 @@ export declare const switchCapability: {
|
|
|
50
50
|
on: z.ZodBoolean;
|
|
51
51
|
lastChangedAt: z.ZodNumber;
|
|
52
52
|
}, z.core.$strip>;
|
|
53
|
+
/**
|
|
54
|
+
* Runtime-state durability: **restored** — device state an operator reads as authoritative; 55 devices, transition-driven.
|
|
55
|
+
*
|
|
56
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
57
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
58
|
+
*/
|
|
59
|
+
readonly durability: "restored";
|
|
60
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
61
|
+
* whether persisting is worth a SQLite commit. */
|
|
62
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
53
63
|
readonly settings: {
|
|
54
64
|
readonly bindings: readonly [{
|
|
55
65
|
readonly kind: "scalar";
|
|
@@ -28,5 +28,15 @@ export declare const tamperCapability: {
|
|
|
28
28
|
tampered: z.ZodBoolean;
|
|
29
29
|
lastChangedAt: z.ZodNumber;
|
|
30
30
|
}, z.core.$strip>;
|
|
31
|
+
/**
|
|
32
|
+
* Runtime-state durability: **restored** — as `smoke`.
|
|
33
|
+
*
|
|
34
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
35
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
36
|
+
*/
|
|
37
|
+
readonly durability: "restored";
|
|
38
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
39
|
+
* whether persisting is worth a SQLite commit. */
|
|
40
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
31
41
|
};
|
|
32
42
|
export type ITamperProvider = InferProvider<typeof tamperCapability>;
|
|
@@ -46,5 +46,15 @@ export declare const temperatureSensorCapability: {
|
|
|
46
46
|
unit: z.ZodOptional<z.ZodString>;
|
|
47
47
|
precision: z.ZodOptional<z.ZodNumber>;
|
|
48
48
|
}, z.core.$strip>;
|
|
49
|
+
/**
|
|
50
|
+
* Runtime-state durability: **restored** — as `numeric-sensor` (69 of 125 writes were the clock alone).
|
|
51
|
+
*
|
|
52
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
53
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
54
|
+
*/
|
|
55
|
+
readonly durability: "restored";
|
|
56
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
57
|
+
* whether persisting is worth a SQLite commit. */
|
|
58
|
+
readonly volatileStateFields: readonly ["lastFetchedAt"];
|
|
49
59
|
};
|
|
50
60
|
export type ITemperatureSensorProvider = InferProvider<typeof temperatureSensorCapability>;
|
|
@@ -44,5 +44,12 @@ export declare const updateCapability: {
|
|
|
44
44
|
state: z.ZodNullable<z.ZodString>;
|
|
45
45
|
inProgress: z.ZodBoolean;
|
|
46
46
|
}, z.core.$strip>;
|
|
47
|
+
/**
|
|
48
|
+
* Runtime-state durability: **session** — a restored `inProgress: true` describes an update that is no longer running; versions are re-probed at boot.
|
|
49
|
+
*
|
|
50
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
51
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
52
|
+
*/
|
|
53
|
+
readonly durability: "session";
|
|
47
54
|
};
|
|
48
55
|
export type IUpdateProvider = InferProvider<typeof updateCapability>;
|
|
@@ -237,5 +237,12 @@ export declare const vacuumControlCapability: {
|
|
|
237
237
|
errorLabel: z.ZodNullable<z.ZodString>;
|
|
238
238
|
lastChangedAt: z.ZodNumber;
|
|
239
239
|
}, z.core.$strip>;
|
|
240
|
+
/**
|
|
241
|
+
* Runtime-state durability: **session** — as `media-player` — a restored `state: cleaning` is a robot that is not cleaning.
|
|
242
|
+
*
|
|
243
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
244
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
245
|
+
*/
|
|
246
|
+
readonly durability: "session";
|
|
240
247
|
};
|
|
241
248
|
export type IVacuumControlProvider = InferProvider<typeof vacuumControlCapability>;
|
|
@@ -88,5 +88,12 @@ export declare const valveCapability: {
|
|
|
88
88
|
position: z.ZodNullable<z.ZodNumber>;
|
|
89
89
|
lastChangedAt: z.ZodNumber;
|
|
90
90
|
}, z.core.$strip>;
|
|
91
|
+
/**
|
|
92
|
+
* Runtime-state durability: **session** — as `brightness`.
|
|
93
|
+
*
|
|
94
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
95
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
96
|
+
*/
|
|
97
|
+
readonly durability: "session";
|
|
91
98
|
};
|
|
92
99
|
export type IValveProvider = InferProvider<typeof valveCapability>;
|
|
@@ -28,5 +28,15 @@ export declare const vibrationCapability: {
|
|
|
28
28
|
detected: z.ZodBoolean;
|
|
29
29
|
lastChangedAt: z.ZodNumber;
|
|
30
30
|
}, z.core.$strip>;
|
|
31
|
+
/**
|
|
32
|
+
* Runtime-state durability: **restored** — as `smoke`.
|
|
33
|
+
*
|
|
34
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
35
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
36
|
+
*/
|
|
37
|
+
readonly durability: "restored";
|
|
38
|
+
/** Clock fields: written, but excluded from the compare that decides
|
|
39
|
+
* whether persisting is worth a SQLite commit. */
|
|
40
|
+
readonly volatileStateFields: readonly ["lastChangedAt"];
|
|
31
41
|
};
|
|
32
42
|
export type IVibrationProvider = InferProvider<typeof vibrationCapability>;
|
|
@@ -73,5 +73,12 @@ export declare const waterHeaterCapability: {
|
|
|
73
73
|
maxTemp: z.ZodNullable<z.ZodNumber>;
|
|
74
74
|
lastChangedAt: z.ZodNumber;
|
|
75
75
|
}, z.core.$strip>;
|
|
76
|
+
/**
|
|
77
|
+
* Runtime-state durability: **session** — as `climate-control`.
|
|
78
|
+
*
|
|
79
|
+
* See `RuntimeStateDurability`. Enforced by
|
|
80
|
+
* `scripts/check-runtime-state-durability.ts`.
|
|
81
|
+
*/
|
|
82
|
+
readonly durability: "session";
|
|
76
83
|
};
|
|
77
84
|
export type IWaterHeaterProvider = InferProvider<typeof waterHeaterCapability>;
|