@camstack/types 1.2.283 → 1.2.284
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/capabilities/device-extension.cap.d.ts +8 -25
- package/dist/capabilities/device-manager.cap.d.ts +2 -2
- package/dist/capabilities/device-state.cap.d.ts +2 -2
- package/dist/capabilities/doorbell.cap.d.ts +13 -64
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/motion.cap.d.ts +9 -8
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +147 -15
- package/dist/capabilities/pipeline-runner.cap.d.ts +2 -0
- package/dist/capabilities/ptz-autotrack.cap.d.ts +2 -3
- package/dist/catalogs/sensor-active-state.d.ts +8 -10
- package/dist/composition/presets/doorbell-feature.d.ts +1 -1
- package/dist/{composition-Dq42XWp0.mjs → composition-43aqsZQj.mjs} +6 -7
- package/dist/{composition-DG4jVTfB.js → composition-w3gBWMer.js} +6 -7
- package/dist/device/hub-motion-read.d.ts +22 -0
- package/dist/device-extension/slot-descriptor.d.ts +3 -3
- package/dist/enums/event-category.d.ts +9 -0
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-C5xZWqz6.mjs → event-category-BGmz_oxW.mjs} +9 -0
- package/dist/{event-category-MbnB-6AN.js → event-category-DmS_tLsU.js} +9 -0
- package/dist/generated/extension-slots.d.ts +2 -6
- package/dist/index.d.ts +4 -1
- package/dist/index.js +252 -201
- package/dist/index.mjs +243 -199
- package/dist/interfaces/event-bus.d.ts +5 -3
- package/dist/interfaces/pipeline-runner-capability.d.ts +2 -0
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/dist/pipeline/camera-sensors.d.ts +133 -9
- package/dist/pipeline/motion-ownership.d.ts +13 -0
- package/dist/pipeline/provider-motion.d.ts +33 -0
- package/dist/{sleep-gU6hqv4_.mjs → sleep-CDCONfkt.mjs} +1 -1
- package/dist/{sleep-DCbD8sdg.js → sleep-G4F3X9X_.js} +1 -1
- package/dist/utils/addon-id.d.ts +2 -2
- package/package.json +1 -1
|
@@ -79,6 +79,10 @@ export interface MotionAnalysisPayload {
|
|
|
79
79
|
export type MotionOnMotionChangedPayload = import('../capabilities/motion.cap.js').MotionOnMotionChangedData & {
|
|
80
80
|
[key: string]: unknown;
|
|
81
81
|
};
|
|
82
|
+
/** A camera's RAW onboard push (D673) — see `pipeline/provider-motion.ts`. */
|
|
83
|
+
export type ProviderMotionPayload = import('../pipeline/provider-motion.js').ProviderMotionData & {
|
|
84
|
+
[key: string]: unknown;
|
|
85
|
+
};
|
|
82
86
|
/** Raw motion zone from CCL (before minArea filter). */
|
|
83
87
|
export interface MotionRawZone {
|
|
84
88
|
readonly bbox: readonly [number, number, number, number];
|
|
@@ -1055,9 +1059,7 @@ export interface EventCatalog {
|
|
|
1055
1059
|
deviceId: number;
|
|
1056
1060
|
addonId?: string;
|
|
1057
1061
|
};
|
|
1058
|
-
'provider.motion':
|
|
1059
|
-
active: boolean;
|
|
1060
|
-
};
|
|
1062
|
+
'provider.motion': ProviderMotionPayload;
|
|
1061
1063
|
'provider.detection': {
|
|
1062
1064
|
detections: unknown;
|
|
1063
1065
|
};
|
|
@@ -165,6 +165,8 @@ export interface RunnerLocalLoad {
|
|
|
165
165
|
* / pre-multi-device runners. */
|
|
166
166
|
readonly devices: readonly RunnerDeviceLoad[];
|
|
167
167
|
readonly hardware: RunnerHardwareCapabilities;
|
|
168
|
+
/** D696: `'orchestrator'` = this runner never writes a camera's `motion` slice. Absent = an older runner, which does. */
|
|
169
|
+
readonly motionSliceWriter?: 'orchestrator';
|
|
168
170
|
}
|
|
169
171
|
/**
|
|
170
172
|
* Aggregate runtime metrics for a runner's whole local pool. Mirrors the
|
package/dist/node.js
CHANGED
|
@@ -21,7 +21,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
21
21
|
enumerable: true
|
|
22
22
|
}) : target, mod));
|
|
23
23
|
//#endregion
|
|
24
|
-
const require_composition = require("./composition-
|
|
24
|
+
const require_composition = require("./composition-w3gBWMer.js");
|
|
25
25
|
const require_err_msg = require("./err-msg-Dx2Kor0g.js");
|
|
26
26
|
let node_crypto = require("node:crypto");
|
|
27
27
|
let node_fs = require("node:fs");
|
package/dist/node.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ct as chooseFfmpegBinary, Dt as getFfmpegDownloadUrl, Et as getFfmpegArtifact, Lt as isSoftwareDecode, Nt as buildFfmpegArgs, Ot as canonicalHash, P as compositionSourceKey, St as FFMPEG_PATH_ENV, Tt as FFMPEG_RELEASE, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, kt as Fmp4BoxSplitter, wt as ffmpegBinaryName } from "./composition-
|
|
1
|
+
import { Ct as chooseFfmpegBinary, Dt as getFfmpegDownloadUrl, Et as getFfmpegArtifact, Lt as isSoftwareDecode, Nt as buildFfmpegArgs, Ot as canonicalHash, P as compositionSourceKey, St as FFMPEG_PATH_ENV, Tt as FFMPEG_RELEASE, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, kt as Fmp4BoxSplitter, wt as ffmpegBinaryName } from "./composition-43aqsZQj.mjs";
|
|
2
2
|
import { t as errMsg } from "./err-msg-DX6i_MY4.mjs";
|
|
3
3
|
import { createHash, createHmac, randomUUID, timingSafeEqual } from "node:crypto";
|
|
4
4
|
import * as fs from "node:fs";
|
|
@@ -28,18 +28,45 @@ export declare const CameraSensorRefSchema: z.ZodObject<{
|
|
|
28
28
|
}, z.core.$strip>;
|
|
29
29
|
export type CameraSensorRef = z.infer<typeof CameraSensorRefSchema>;
|
|
30
30
|
export declare function cameraSensorRefKey(ref: CameraSensorRef): string;
|
|
31
|
-
/**
|
|
32
|
-
|
|
31
|
+
/**
|
|
32
|
+
* A sensor's mode (D673). `in-addition`: its motion is the camera's motion too.
|
|
33
|
+
* `replace`: its motion is the camera's, and while one is READY the camera's
|
|
34
|
+
* own motion no longer counts on its own. `confirm`: while one is READY the
|
|
35
|
+
* camera's own motion counts only while a confirm sensor is active — with or
|
|
36
|
+
* without a replace sensor (spec C2, the controller's ruling on Q1).
|
|
37
|
+
*/
|
|
38
|
+
export declare const CameraSensorModeSchema: z.ZodEnum<{
|
|
33
39
|
"in-addition": "in-addition";
|
|
40
|
+
confirm: "confirm";
|
|
41
|
+
replace: "replace";
|
|
34
42
|
}>;
|
|
35
|
-
export type
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
export type CameraSensorMode = z.infer<typeof CameraSensorModeSchema>;
|
|
44
|
+
/** A stored sensor with no mode — every CS-1 row — is in addition. */
|
|
45
|
+
export declare const DEFAULT_CAMERA_SENSOR_MODE: CameraSensorMode;
|
|
46
|
+
export declare const CameraSensorEntrySchema: z.ZodObject<{
|
|
47
|
+
addonId: z.ZodString;
|
|
48
|
+
stableId: z.ZodString;
|
|
49
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
38
50
|
"in-addition": "in-addition";
|
|
39
|
-
|
|
51
|
+
confirm: "confirm";
|
|
52
|
+
replace: "replace";
|
|
53
|
+
}>>;
|
|
54
|
+
}, z.core.$strip>;
|
|
55
|
+
export type CameraSensorEntry = z.infer<typeof CameraSensorEntrySchema>;
|
|
56
|
+
/**
|
|
57
|
+
* A camera's attached sensors. A CS-1 row carried an envelope
|
|
58
|
+
* `mode: 'in-addition'`: `z.object` drops it on parse, and the PARSED value is
|
|
59
|
+
* what the write stores (D672 rule 3), so it is never written again.
|
|
60
|
+
*/
|
|
61
|
+
export declare const CameraSensorsConfigSchema: z.ZodObject<{
|
|
40
62
|
sensors: z.ZodArray<z.ZodObject<{
|
|
41
63
|
addonId: z.ZodString;
|
|
42
64
|
stableId: z.ZodString;
|
|
65
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
66
|
+
"in-addition": "in-addition";
|
|
67
|
+
confirm: "confirm";
|
|
68
|
+
replace: "replace";
|
|
69
|
+
}>>;
|
|
43
70
|
}, z.core.$strip>>;
|
|
44
71
|
}, z.core.$strip>;
|
|
45
72
|
export type CameraSensorsConfig = z.infer<typeof CameraSensorsConfigSchema>;
|
|
@@ -50,6 +77,11 @@ export declare const CameraSensorAttachmentSchema: z.ZodDiscriminatedUnion<[z.Zo
|
|
|
50
77
|
caps: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
51
78
|
addonId: z.ZodString;
|
|
52
79
|
stableId: z.ZodString;
|
|
80
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
81
|
+
"in-addition": "in-addition";
|
|
82
|
+
confirm: "confirm";
|
|
83
|
+
replace: "replace";
|
|
84
|
+
}>>;
|
|
53
85
|
}, z.core.$strip>, z.ZodObject<{
|
|
54
86
|
state: z.ZodLiteral<"offline">;
|
|
55
87
|
deviceId: z.ZodNumber;
|
|
@@ -60,11 +92,21 @@ export declare const CameraSensorAttachmentSchema: z.ZodDiscriminatedUnion<[z.Zo
|
|
|
60
92
|
}>;
|
|
61
93
|
addonId: z.ZodString;
|
|
62
94
|
stableId: z.ZodString;
|
|
95
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
96
|
+
"in-addition": "in-addition";
|
|
97
|
+
confirm: "confirm";
|
|
98
|
+
replace: "replace";
|
|
99
|
+
}>>;
|
|
63
100
|
}, z.core.$strip>, z.ZodObject<{
|
|
64
101
|
state: z.ZodLiteral<"missing">;
|
|
65
102
|
reason: z.ZodString;
|
|
66
103
|
addonId: z.ZodString;
|
|
67
104
|
stableId: z.ZodString;
|
|
105
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
106
|
+
"in-addition": "in-addition";
|
|
107
|
+
confirm: "confirm";
|
|
108
|
+
replace: "replace";
|
|
109
|
+
}>>;
|
|
68
110
|
}, z.core.$strip>, z.ZodObject<{
|
|
69
111
|
state: z.ZodLiteral<"unsupported">;
|
|
70
112
|
deviceId: z.ZodNumber;
|
|
@@ -72,11 +114,21 @@ export declare const CameraSensorAttachmentSchema: z.ZodDiscriminatedUnion<[z.Zo
|
|
|
72
114
|
reason: z.ZodString;
|
|
73
115
|
addonId: z.ZodString;
|
|
74
116
|
stableId: z.ZodString;
|
|
117
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
118
|
+
"in-addition": "in-addition";
|
|
119
|
+
confirm: "confirm";
|
|
120
|
+
replace: "replace";
|
|
121
|
+
}>>;
|
|
75
122
|
}, z.core.$strip>, z.ZodObject<{
|
|
76
123
|
state: z.ZodLiteral<"unreadable">;
|
|
77
124
|
reason: z.ZodString;
|
|
78
125
|
addonId: z.ZodString;
|
|
79
126
|
stableId: z.ZodString;
|
|
127
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
128
|
+
"in-addition": "in-addition";
|
|
129
|
+
confirm: "confirm";
|
|
130
|
+
replace: "replace";
|
|
131
|
+
}>>;
|
|
80
132
|
}, z.core.$strip>], "state">;
|
|
81
133
|
export type CameraSensorAttachment = z.infer<typeof CameraSensorAttachmentSchema>;
|
|
82
134
|
/**
|
|
@@ -91,16 +143,55 @@ export declare const CameraSensorsNotForwardedSchema: z.ZodEnum<{
|
|
|
91
143
|
"no-active-detection": "no-active-detection";
|
|
92
144
|
}>;
|
|
93
145
|
export type CameraSensorsNotForwarded = z.infer<typeof CameraSensorsNotForwardedSchema>;
|
|
146
|
+
/** Whether the camera's OWN motion counts on its own (D673 C2), from its READY sensors (C3). */
|
|
147
|
+
export declare const CameraOwnMotionSchema: z.ZodEnum<{
|
|
148
|
+
never: "never";
|
|
149
|
+
always: "always";
|
|
150
|
+
"when-confirmed": "when-confirmed";
|
|
151
|
+
}>;
|
|
152
|
+
export type CameraOwnMotion = z.infer<typeof CameraOwnMotionSchema>;
|
|
153
|
+
/** Confirm / Replace cannot suppress this camera's motion: its provider still emits it directly (D673 C13). */
|
|
154
|
+
export declare const CameraSensorsNotEnforcedSchema: z.ZodEnum<{
|
|
155
|
+
"provider-not-split": "provider-not-split";
|
|
156
|
+
}>;
|
|
157
|
+
export type CameraSensorsNotEnforced = z.infer<typeof CameraSensorsNotEnforcedSchema>;
|
|
158
|
+
/**
|
|
159
|
+
* The camera's OWN onboard motion (D696): the raw input the bridge combines,
|
|
160
|
+
* never the effective value. The camera's `motion` slice is the effective one,
|
|
161
|
+
* so a view of the camera's own row reads this.
|
|
162
|
+
* - `atMs`: when the bridge received the camera's last own edge.
|
|
163
|
+
* - `detected`: evaluated WHEN THE STATUS IS ASKED — the last edge said `true`
|
|
164
|
+
* AND it is younger than the window the bridge counts the camera's own motion
|
|
165
|
+
* for (`motionCooldownMs`, floored at two sustain ticks). A camera that never
|
|
166
|
+
* sends a clear (heartbeats only) therefore reads `false` once no push came
|
|
167
|
+
* within the window; a status read is a snapshot, so a live view re-asks.
|
|
168
|
+
* Absent = this orchestrator has not received the camera's own motion since it
|
|
169
|
+
* started (unknown, never "quiet"), or an orchestrator older than D696.
|
|
170
|
+
*/
|
|
171
|
+
export declare const CameraRawLevelSchema: z.ZodObject<{
|
|
172
|
+
detected: z.ZodBoolean;
|
|
173
|
+
atMs: z.ZodNumber;
|
|
174
|
+
}, z.core.$strip>;
|
|
175
|
+
export type CameraRawLevel = z.infer<typeof CameraRawLevelSchema>;
|
|
94
176
|
export declare const CameraSensorsStatusSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
95
177
|
state: z.ZodLiteral<"not-configured">;
|
|
178
|
+
cameraLevel: z.ZodOptional<z.ZodObject<{
|
|
179
|
+
detected: z.ZodBoolean;
|
|
180
|
+
atMs: z.ZodNumber;
|
|
181
|
+
}, z.core.$strip>>;
|
|
96
182
|
}, z.core.$strip>, z.ZodObject<{
|
|
97
183
|
state: z.ZodLiteral<"unreadable">;
|
|
98
184
|
reason: z.ZodString;
|
|
185
|
+
cameraLevel: z.ZodOptional<z.ZodObject<{
|
|
186
|
+
detected: z.ZodBoolean;
|
|
187
|
+
atMs: z.ZodNumber;
|
|
188
|
+
}, z.core.$strip>>;
|
|
99
189
|
}, z.core.$strip>, z.ZodObject<{
|
|
100
190
|
state: z.ZodLiteral<"configured">;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
191
|
+
cameraLevel: z.ZodOptional<z.ZodObject<{
|
|
192
|
+
detected: z.ZodBoolean;
|
|
193
|
+
atMs: z.ZodNumber;
|
|
194
|
+
}, z.core.$strip>>;
|
|
104
195
|
sensors: z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
105
196
|
state: z.ZodLiteral<"ready">;
|
|
106
197
|
deviceId: z.ZodNumber;
|
|
@@ -108,6 +199,11 @@ export declare const CameraSensorsStatusSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
108
199
|
caps: z.ZodReadonly<z.ZodArray<z.ZodString>>;
|
|
109
200
|
addonId: z.ZodString;
|
|
110
201
|
stableId: z.ZodString;
|
|
202
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
203
|
+
"in-addition": "in-addition";
|
|
204
|
+
confirm: "confirm";
|
|
205
|
+
replace: "replace";
|
|
206
|
+
}>>;
|
|
111
207
|
}, z.core.$strip>, z.ZodObject<{
|
|
112
208
|
state: z.ZodLiteral<"offline">;
|
|
113
209
|
deviceId: z.ZodNumber;
|
|
@@ -118,11 +214,21 @@ export declare const CameraSensorsStatusSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
118
214
|
}>;
|
|
119
215
|
addonId: z.ZodString;
|
|
120
216
|
stableId: z.ZodString;
|
|
217
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
218
|
+
"in-addition": "in-addition";
|
|
219
|
+
confirm: "confirm";
|
|
220
|
+
replace: "replace";
|
|
221
|
+
}>>;
|
|
121
222
|
}, z.core.$strip>, z.ZodObject<{
|
|
122
223
|
state: z.ZodLiteral<"missing">;
|
|
123
224
|
reason: z.ZodString;
|
|
124
225
|
addonId: z.ZodString;
|
|
125
226
|
stableId: z.ZodString;
|
|
227
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
228
|
+
"in-addition": "in-addition";
|
|
229
|
+
confirm: "confirm";
|
|
230
|
+
replace: "replace";
|
|
231
|
+
}>>;
|
|
126
232
|
}, z.core.$strip>, z.ZodObject<{
|
|
127
233
|
state: z.ZodLiteral<"unsupported">;
|
|
128
234
|
deviceId: z.ZodNumber;
|
|
@@ -130,16 +236,34 @@ export declare const CameraSensorsStatusSchema: z.ZodDiscriminatedUnion<[z.ZodOb
|
|
|
130
236
|
reason: z.ZodString;
|
|
131
237
|
addonId: z.ZodString;
|
|
132
238
|
stableId: z.ZodString;
|
|
239
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
240
|
+
"in-addition": "in-addition";
|
|
241
|
+
confirm: "confirm";
|
|
242
|
+
replace: "replace";
|
|
243
|
+
}>>;
|
|
133
244
|
}, z.core.$strip>, z.ZodObject<{
|
|
134
245
|
state: z.ZodLiteral<"unreadable">;
|
|
135
246
|
reason: z.ZodString;
|
|
136
247
|
addonId: z.ZodString;
|
|
137
248
|
stableId: z.ZodString;
|
|
249
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
250
|
+
"in-addition": "in-addition";
|
|
251
|
+
confirm: "confirm";
|
|
252
|
+
replace: "replace";
|
|
253
|
+
}>>;
|
|
138
254
|
}, z.core.$strip>], "state">>>;
|
|
255
|
+
cameraMotion: z.ZodOptional<z.ZodEnum<{
|
|
256
|
+
never: "never";
|
|
257
|
+
always: "always";
|
|
258
|
+
"when-confirmed": "when-confirmed";
|
|
259
|
+
}>>;
|
|
139
260
|
notForwarded: z.ZodOptional<z.ZodEnum<{
|
|
140
261
|
"onboard-not-listed": "onboard-not-listed";
|
|
141
262
|
"no-active-detection": "no-active-detection";
|
|
142
263
|
}>>;
|
|
264
|
+
notEnforced: z.ZodOptional<z.ZodEnum<{
|
|
265
|
+
"provider-not-split": "provider-not-split";
|
|
266
|
+
}>>;
|
|
143
267
|
}, z.core.$strip>], "state">;
|
|
144
268
|
export type CameraSensorsStatus = z.infer<typeof CameraSensorsStatusSchema>;
|
|
145
269
|
/** What a camera reads before its first settings read ANSWERED (D315). */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D475's rule, in ONE place: a camera whose `motionSources` lists anything
|
|
3
|
+
* other than `'analyzer'` (firmware `onboard`, a device's own
|
|
4
|
+
* `device-activity`) owns its motion through that SENSOR, and the analyzer
|
|
5
|
+
* never re-describes it — even when the list carries `'analyzer'` too. A
|
|
6
|
+
* camera with `['analyzer']` alone is driven by the analyzer.
|
|
7
|
+
*
|
|
8
|
+
* Read by the runner (which analyzer edge reaches its phase machine) and by
|
|
9
|
+
* the orchestrator's camera motion slice (which motion events the slice
|
|
10
|
+
* counts, D696). Two copies of the rule would be two authorities.
|
|
11
|
+
*/
|
|
12
|
+
import type { MotionSources } from '../capabilities/pipeline-runner.cap.js';
|
|
13
|
+
export declare function cameraOwnsMotionViaSensor(motionSources: MotionSources): boolean;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A camera provider's RAW onboard motion push (D673). Providers emit THIS —
|
|
3
|
+
* never `MotionOnMotionChanged` — and the orchestrator's camera-sensors bridge
|
|
4
|
+
* is the one emitter of the camera's EFFECTIVE onboard motion (a pass-through
|
|
5
|
+
* for a camera with no attached sensor). Guarded by
|
|
6
|
+
* `scripts/check-onboard-motion-emitters.ts`.
|
|
7
|
+
*/
|
|
8
|
+
import type { z } from 'zod';
|
|
9
|
+
import { EventCategory } from '../enums/event-category.js';
|
|
10
|
+
import { type EventSource, type TypedSystemEvent } from '../interfaces/event-bus.js';
|
|
11
|
+
/** The motion event's data without `triggeredBy`: only the bridge names a trigger. */
|
|
12
|
+
export declare const ProviderMotionDataSchema: z.ZodObject<{
|
|
13
|
+
timestamp: z.ZodNumber;
|
|
14
|
+
deviceId: z.ZodNumber;
|
|
15
|
+
detected: z.ZodBoolean;
|
|
16
|
+
source: z.ZodEnum<{
|
|
17
|
+
onboard: "onboard";
|
|
18
|
+
analyzer: "analyzer";
|
|
19
|
+
"device-activity": "device-activity";
|
|
20
|
+
}>;
|
|
21
|
+
regions: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
22
|
+
bbox: z.ZodObject<{
|
|
23
|
+
x: z.ZodNumber;
|
|
24
|
+
y: z.ZodNumber;
|
|
25
|
+
w: z.ZodNumber;
|
|
26
|
+
h: z.ZodNumber;
|
|
27
|
+
}, z.core.$strip>;
|
|
28
|
+
pixelCount: z.ZodNumber;
|
|
29
|
+
intensity: z.ZodNumber;
|
|
30
|
+
}, z.core.$strip>>>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export type ProviderMotionData = z.infer<typeof ProviderMotionDataSchema>;
|
|
33
|
+
export declare function providerMotionEvent(source: EventSource, data: ProviderMotionData): TypedSystemEvent<EventCategory.ProviderMotion>;
|
package/dist/utils/addon-id.d.ts
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* So `entry.providerAddonId === this.ctx.id` is silently, permanently false
|
|
18
18
|
* for a builtin — and only for a builtin, which is why it survives a green
|
|
19
19
|
* suite whose fake supplies the bare id. That is exactly how camera 615's
|
|
20
|
-
* virtual doorbell latched `unbound` for twelve hours on
|
|
21
|
-
* binding was intact ([D72](../../../../docs/decisions/adr-0072.md)).
|
|
20
|
+
* virtual doorbell (retired since, D671) latched `unbound` for twelve hours on
|
|
21
|
+
* 2026-08-07 while its binding was intact ([D72](../../../../docs/decisions/adr-0072.md)).
|
|
22
22
|
*
|
|
23
23
|
* Route every comparison between `ctx.id` and a registry/store addon id
|
|
24
24
|
* through {@link isSameAddonId}. `scripts/check-addon-id-comparison.ts`
|