@camstack/types 1.2.164 → 1.2.165
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/capabilities/data-store-provider.cap.d.ts +6 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +59 -4
- package/dist/capabilities/settings-store.cap.d.ts +8 -0
- package/dist/index.js +17 -7
- package/dist/index.mjs +17 -7
- package/dist/interfaces/storage.d.ts +19 -0
- package/package.json +1 -1
|
@@ -93,6 +93,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
93
93
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
94
94
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
95
95
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
96
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
96
97
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
97
98
|
field: z.ZodString;
|
|
98
99
|
direction: z.ZodEnum<{
|
|
@@ -150,6 +151,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
150
151
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
151
152
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
152
153
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
154
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
153
155
|
}, z.core.$strip>;
|
|
154
156
|
}, z.core.$strip>, z.ZodObject<{
|
|
155
157
|
deleted: z.ZodNumber;
|
|
@@ -163,6 +165,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
163
165
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
164
166
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
165
167
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
168
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
166
169
|
}, z.core.$strip>;
|
|
167
170
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
168
171
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -177,6 +180,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
177
180
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
178
181
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
179
182
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
183
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
180
184
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
181
185
|
field: z.ZodString;
|
|
182
186
|
direction: z.ZodEnum<{
|
|
@@ -208,6 +212,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
208
212
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
209
213
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
210
214
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
215
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
211
216
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
212
217
|
field: z.ZodString;
|
|
213
218
|
direction: z.ZodEnum<{
|
|
@@ -234,6 +239,7 @@ export declare const dataStoreProviderCapability: {
|
|
|
234
239
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
235
240
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
236
241
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
242
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
237
243
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
238
244
|
field: z.ZodString;
|
|
239
245
|
direction: z.ZodEnum<{
|
|
@@ -247,6 +247,44 @@ export declare const TrackSourceSchema: z.ZodEnum<{
|
|
|
247
247
|
pipeline: "pipeline";
|
|
248
248
|
}>;
|
|
249
249
|
export type TrackSource = z.infer<typeof TrackSourceSchema>;
|
|
250
|
+
/**
|
|
251
|
+
* The `excludeSources` filter on `listTracks` / `listRecentTracks`: track
|
|
252
|
+
* SOURCES to leave out. ABSENT or EMPTY excludes nothing.
|
|
253
|
+
*
|
|
254
|
+
* ## Why the query needs a source dimension at all
|
|
255
|
+
*
|
|
256
|
+
* `classes` cannot express it, and trying made a filter that lies. A synthetic
|
|
257
|
+
* row carries no accumulated `classes[]`, and `whereJsonArrayAny` is a
|
|
258
|
+
* deliberate SUPERSET — an unreadable column keeps its row. So on the live hub
|
|
259
|
+
* every class selection returned every synthetic row: `classes: ['person']`
|
|
260
|
+
* came back with 66 contact markers and 29 audio markers attached, and a class
|
|
261
|
+
* that exists nowhere at all still answered 116 rows, all of them synthetic.
|
|
262
|
+
* "Sensor" and "Audio" selected the identical set, because neither selected
|
|
263
|
+
* anything — they merely failed to exclude the rows the escape hatch keeps.
|
|
264
|
+
*
|
|
265
|
+
* Provenance is `source`, never a class name (D189 put every audio row on
|
|
266
|
+
* `className: 'audio'` precisely so the audio VOCABULARY could stop colliding
|
|
267
|
+
* with the detection one). This is the filter that speaks it.
|
|
268
|
+
*
|
|
269
|
+
* ## Why EXCLUDE and not an allow-list
|
|
270
|
+
*
|
|
271
|
+
* A stored client preference outlives this enum. An allow-list persisted by a
|
|
272
|
+
* viewer that has never heard of a source added next year would hide it
|
|
273
|
+
* forever, silently — the same shape as the `!== 'sensor'` check this file
|
|
274
|
+
* already warns about. An exclusion list can only ever hide what it names.
|
|
275
|
+
*
|
|
276
|
+
* ## NULL is `pipeline`
|
|
277
|
+
*
|
|
278
|
+
* Pipeline rows carry no `source` at all (the column is nullable and the
|
|
279
|
+
* completed-track persist omits it), so the provider compiles this as a
|
|
280
|
+
* NULL-safe `whereNotIn` when `pipeline` is NOT excluded, and as a positive
|
|
281
|
+
* `whereIn` over the surviving sources when it is. Both are exact; neither
|
|
282
|
+
* leaves a row's fate to a default.
|
|
283
|
+
*
|
|
284
|
+
* It is a REAL query filter, not a post-read drop: paging must tell the truth
|
|
285
|
+
* about how much is left.
|
|
286
|
+
*/
|
|
287
|
+
export type ExcludeSourcesDoc = readonly TrackSource[];
|
|
250
288
|
/**
|
|
251
289
|
* Where a track sits in the RETRAIN lifecycle (D81).
|
|
252
290
|
*
|
|
@@ -261,10 +299,12 @@ export type TrackSource = z.infer<typeof TrackSourceSchema>;
|
|
|
261
299
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
262
300
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
263
301
|
*
|
|
264
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
302
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
303
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
304
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
305
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
306
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
307
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
268
308
|
*/
|
|
269
309
|
export declare const RetrainStatusSchema: z.ZodEnum<{
|
|
270
310
|
none: "none";
|
|
@@ -1121,6 +1161,11 @@ declare const RecentTracksQueryInput: z.ZodObject<{
|
|
|
1121
1161
|
}>>;
|
|
1122
1162
|
includeStationary: z.ZodOptional<z.ZodBoolean>;
|
|
1123
1163
|
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1164
|
+
excludeSources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1165
|
+
sensor: "sensor";
|
|
1166
|
+
audio: "audio";
|
|
1167
|
+
pipeline: "pipeline";
|
|
1168
|
+
}>>>;
|
|
1124
1169
|
}, z.core.$strip>;
|
|
1125
1170
|
export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
|
|
1126
1171
|
/**
|
|
@@ -1854,6 +1899,11 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1854
1899
|
}>>;
|
|
1855
1900
|
includeStationary: z.ZodOptional<z.ZodBoolean>;
|
|
1856
1901
|
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1902
|
+
excludeSources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
1903
|
+
sensor: "sensor";
|
|
1904
|
+
audio: "audio";
|
|
1905
|
+
pipeline: "pipeline";
|
|
1906
|
+
}>>>;
|
|
1857
1907
|
}, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1858
1908
|
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
1859
1909
|
none: "none";
|
|
@@ -1972,6 +2022,11 @@ export declare const pipelineAnalyticsCapability: {
|
|
|
1972
2022
|
}>>;
|
|
1973
2023
|
includeStationary: z.ZodOptional<z.ZodBoolean>;
|
|
1974
2024
|
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
2025
|
+
excludeSources: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
2026
|
+
sensor: "sensor";
|
|
2027
|
+
audio: "audio";
|
|
2028
|
+
pipeline: "pipeline";
|
|
2029
|
+
}>>>;
|
|
1975
2030
|
}, z.core.$strip>, z.ZodObject<{
|
|
1976
2031
|
tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
|
|
1977
2032
|
retrainStatus: z.ZodOptional<z.ZodEnum<{
|
|
@@ -8,6 +8,7 @@ declare const QueryFilterSchema: z.ZodObject<{
|
|
|
8
8
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
9
9
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
10
10
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
11
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
11
12
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
12
13
|
field: z.ZodString;
|
|
13
14
|
direction: z.ZodEnum<{
|
|
@@ -32,6 +33,7 @@ declare const MutationFilterSchema: z.ZodObject<{
|
|
|
32
33
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
33
34
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
34
35
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
36
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
35
37
|
}, z.core.$strip>;
|
|
36
38
|
/**
|
|
37
39
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -177,6 +179,7 @@ export declare const settingsStoreCapability: {
|
|
|
177
179
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
178
180
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
179
181
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
182
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
180
183
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
181
184
|
field: z.ZodString;
|
|
182
185
|
direction: z.ZodEnum<{
|
|
@@ -269,6 +272,7 @@ export declare const settingsStoreCapability: {
|
|
|
269
272
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
270
273
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
271
274
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
275
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
272
276
|
}, z.core.$strip>;
|
|
273
277
|
}, z.core.$strip>, z.ZodObject<{
|
|
274
278
|
deleted: z.ZodNumber;
|
|
@@ -286,6 +290,7 @@ export declare const settingsStoreCapability: {
|
|
|
286
290
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
287
291
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
288
292
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
293
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
289
294
|
}, z.core.$strip>;
|
|
290
295
|
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
291
296
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -300,6 +305,7 @@ export declare const settingsStoreCapability: {
|
|
|
300
305
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
301
306
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
302
307
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
308
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
303
309
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
304
310
|
field: z.ZodString;
|
|
305
311
|
direction: z.ZodEnum<{
|
|
@@ -348,6 +354,7 @@ export declare const settingsStoreCapability: {
|
|
|
348
354
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
349
355
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
350
356
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
357
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
351
358
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
352
359
|
field: z.ZodString;
|
|
353
360
|
direction: z.ZodEnum<{
|
|
@@ -374,6 +381,7 @@ export declare const settingsStoreCapability: {
|
|
|
374
381
|
whereIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
375
382
|
whereBetween: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodUnknown, z.ZodUnknown], null>>>;
|
|
376
383
|
whereNot: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
384
|
+
whereNotIn: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnknown>>>;
|
|
377
385
|
orderBy: z.ZodOptional<z.ZodObject<{
|
|
378
386
|
field: z.ZodString;
|
|
379
387
|
direction: z.ZodEnum<{
|
package/dist/index.js
CHANGED
|
@@ -9137,6 +9137,9 @@ var QueryFilterSchema = zod.z.object({
|
|
|
9137
9137
|
whereBetween: zod.z.record(zod.z.string(), zod.z.tuple([zod.z.unknown(), zod.z.unknown()])).optional(),
|
|
9138
9138
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
9139
9139
|
whereNot: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
9140
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
9141
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
9142
|
+
whereNotIn: zod.z.record(zod.z.string(), zod.z.array(zod.z.unknown())).optional(),
|
|
9140
9143
|
orderBy: zod.z.object({
|
|
9141
9144
|
field: zod.z.string(),
|
|
9142
9145
|
direction: zod.z.enum(["asc", "desc"])
|
|
@@ -9157,7 +9160,8 @@ var MutationFilterSchema = zod.z.object({
|
|
|
9157
9160
|
where: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
9158
9161
|
whereIn: zod.z.record(zod.z.string(), zod.z.array(zod.z.unknown())).optional(),
|
|
9159
9162
|
whereBetween: zod.z.record(zod.z.string(), zod.z.tuple([zod.z.unknown(), zod.z.unknown()])).optional(),
|
|
9160
|
-
whereNot: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
|
|
9163
|
+
whereNot: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
9164
|
+
whereNotIn: zod.z.record(zod.z.string(), zod.z.array(zod.z.unknown())).optional()
|
|
9161
9165
|
});
|
|
9162
9166
|
/**
|
|
9163
9167
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18649,10 +18653,12 @@ var TrackSourceSchema = zod.z.enum([
|
|
|
18649
18653
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18650
18654
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18651
18655
|
*
|
|
18652
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18653
|
-
*
|
|
18654
|
-
*
|
|
18655
|
-
*
|
|
18656
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18657
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18658
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18659
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18660
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18661
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18656
18662
|
*/
|
|
18657
18663
|
var RetrainStatusSchema = zod.z.enum([
|
|
18658
18664
|
"none",
|
|
@@ -19433,7 +19439,9 @@ var RecentTracksQueryInput = zod.z.object({
|
|
|
19433
19439
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19434
19440
|
* exact one.
|
|
19435
19441
|
*/
|
|
19436
|
-
classes: zod.z.array(zod.z.string()).optional()
|
|
19442
|
+
classes: zod.z.array(zod.z.string()).optional(),
|
|
19443
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19444
|
+
excludeSources: zod.z.array(TrackSourceSchema).optional()
|
|
19437
19445
|
});
|
|
19438
19446
|
/**
|
|
19439
19447
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19893,7 +19901,9 @@ var pipelineAnalyticsCapability = {
|
|
|
19893
19901
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19894
19902
|
* timeline would read as a camera that saw nothing.
|
|
19895
19903
|
*/
|
|
19896
|
-
classes: zod.z.array(zod.z.string()).optional()
|
|
19904
|
+
classes: zod.z.array(zod.z.string()).optional(),
|
|
19905
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19906
|
+
excludeSources: zod.z.array(TrackSourceSchema).optional()
|
|
19897
19907
|
}), zod.z.array(TrackSchema).readonly()),
|
|
19898
19908
|
/**
|
|
19899
19909
|
* Batched cluster-wide track listing — ONE call for the events page /
|
package/dist/index.mjs
CHANGED
|
@@ -9136,6 +9136,9 @@ var QueryFilterSchema = z.object({
|
|
|
9136
9136
|
whereBetween: z.record(z.string(), z.tuple([z.unknown(), z.unknown()])).optional(),
|
|
9137
9137
|
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
9138
9138
|
whereNot: z.record(z.string(), z.unknown()).optional(),
|
|
9139
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
9140
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
9141
|
+
whereNotIn: z.record(z.string(), z.array(z.unknown())).optional(),
|
|
9139
9142
|
orderBy: z.object({
|
|
9140
9143
|
field: z.string(),
|
|
9141
9144
|
direction: z.enum(["asc", "desc"])
|
|
@@ -9156,7 +9159,8 @@ var MutationFilterSchema = z.object({
|
|
|
9156
9159
|
where: z.record(z.string(), z.unknown()).optional(),
|
|
9157
9160
|
whereIn: z.record(z.string(), z.array(z.unknown())).optional(),
|
|
9158
9161
|
whereBetween: z.record(z.string(), z.tuple([z.unknown(), z.unknown()])).optional(),
|
|
9159
|
-
whereNot: z.record(z.string(), z.unknown()).optional()
|
|
9162
|
+
whereNot: z.record(z.string(), z.unknown()).optional(),
|
|
9163
|
+
whereNotIn: z.record(z.string(), z.array(z.unknown())).optional()
|
|
9160
9164
|
});
|
|
9161
9165
|
/**
|
|
9162
9166
|
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
@@ -18648,10 +18652,12 @@ var TrackSourceSchema = z.enum([
|
|
|
18648
18652
|
* Terminal for the plain `markForTrain` toggle: returning it to `staging` is
|
|
18649
18653
|
* a deliberate action of the retrain page, not a side effect of a checkbox.
|
|
18650
18654
|
*
|
|
18651
|
-
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'`
|
|
18652
|
-
*
|
|
18653
|
-
*
|
|
18654
|
-
*
|
|
18655
|
+
* There is no `null`. The state is stored `TEXT NOT NULL DEFAULT 'none'` so that
|
|
18656
|
+
* every row is selectable by a positive predicate. (The filter language has
|
|
18657
|
+
* since grown the NULL-safe `whereNot` / `whereNotIn` and an `IS NULL` reading
|
|
18658
|
+
* of `where: { f: null }`, which is how {@link TrackSourceSchema} can be
|
|
18659
|
+
* filtered on a NULLABLE column — see `excludeSources`. It did not when this
|
|
18660
|
+
* column was designed, and a NOT NULL column is still the better shape.)
|
|
18655
18661
|
*/
|
|
18656
18662
|
var RetrainStatusSchema = z.enum([
|
|
18657
18663
|
"none",
|
|
@@ -19432,7 +19438,9 @@ var RecentTracksQueryInput = z.object({
|
|
|
19432
19438
|
* whose class list is unreadable are kept, and the client's rule stays the
|
|
19433
19439
|
* exact one.
|
|
19434
19440
|
*/
|
|
19435
|
-
classes: z.array(z.string()).optional()
|
|
19441
|
+
classes: z.array(z.string()).optional(),
|
|
19442
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19443
|
+
excludeSources: z.array(TrackSourceSchema).optional()
|
|
19436
19444
|
});
|
|
19437
19445
|
/**
|
|
19438
19446
|
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
@@ -19892,7 +19900,9 @@ var pipelineAnalyticsCapability = {
|
|
|
19892
19900
|
* selected is an operator who has not narrowed anything, and an empty
|
|
19893
19901
|
* timeline would read as a camera that saw nothing.
|
|
19894
19902
|
*/
|
|
19895
|
-
classes: z.array(z.string()).optional()
|
|
19903
|
+
classes: z.array(z.string()).optional(),
|
|
19904
|
+
/** See {@link ExcludeSourcesDoc}. */
|
|
19905
|
+
excludeSources: z.array(TrackSourceSchema).optional()
|
|
19896
19906
|
}), z.array(TrackSchema).readonly()),
|
|
19897
19907
|
/**
|
|
19898
19908
|
* Batched cluster-wide track listing — ONE call for the events page /
|
|
@@ -208,6 +208,25 @@ export interface QueryFilter {
|
|
|
208
208
|
* kind-exclusion must KEEP).
|
|
209
209
|
*/
|
|
210
210
|
whereNot?: Record<string, unknown>;
|
|
211
|
+
/**
|
|
212
|
+
* NULL-safe exclusion of SEVERAL values — `whereNot` for a set.
|
|
213
|
+
*
|
|
214
|
+
* A row matches when its field is NULL OR not one of the listed values, for
|
|
215
|
+
* the same reason `whereNot` is NULL-safe: on a nullable column the NULL
|
|
216
|
+
* rows are the ones written before the column existed, and a "not these
|
|
217
|
+
* kinds" filter must keep them.
|
|
218
|
+
*
|
|
219
|
+
* It exists because `whereNot` is a `Record` keyed by field, so ONE field
|
|
220
|
+
* can carry exactly one excluded value. Excluding two members of a small
|
|
221
|
+
* enum (the case that produced it: `Track.source`, hiding the synthetic
|
|
222
|
+
* `audio` and `sensor` projections at once) was otherwise inexpressible —
|
|
223
|
+
* and the alternative, dropping the rows in the caller after the read, makes
|
|
224
|
+
* paging lie about how much is left.
|
|
225
|
+
*
|
|
226
|
+
* An EMPTY list is no filter, never "matches nothing": it is a chip row with
|
|
227
|
+
* nothing selected. Same rule as `whereJsonArrayAny`.
|
|
228
|
+
*/
|
|
229
|
+
whereNotIn?: Record<string, unknown[]>;
|
|
211
230
|
/**
|
|
212
231
|
* "This JSON array column contains at least one of these values."
|
|
213
232
|
*
|