@camstack/system 1.2.318 → 1.2.320
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/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.js +1 -1
- package/dist/builtins/addon-pages-aggregator/addon-pages-aggregator.addon.mjs +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.js +1 -1
- package/dist/builtins/addon-widgets-aggregator/addon-widgets-aggregator.addon.mjs +1 -1
- package/dist/builtins/alerts/alerts.addon.js +1 -1
- package/dist/builtins/alerts/alerts.addon.mjs +1 -1
- package/dist/builtins/autotrack/index.js +1 -1
- package/dist/builtins/autotrack/index.mjs +1 -1
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.js +3 -77
- package/dist/builtins/backup-orchestrator/backup-orchestrator.addon.mjs +3 -77
- package/dist/builtins/camera-grid/index.js +1 -1
- package/dist/builtins/camera-grid/index.mjs +1 -1
- package/dist/builtins/composer/composer-apply-waits.d.ts +21 -0
- package/dist/builtins/composer/composer-live-set.d.ts +22 -0
- package/dist/builtins/composer/composer-runtime-factory.d.ts +22 -0
- package/dist/builtins/composer/composer-seeds.d.ts +22 -0
- package/dist/builtins/composer/composer.addon.js +1905 -1809
- package/dist/builtins/composer/composer.addon.mjs +1905 -1809
- package/dist/builtins/composer/composer.d.ts +3 -15
- package/dist/builtins/console-logging/index.js +1 -1
- package/dist/builtins/console-logging/index.mjs +1 -1
- package/dist/builtins/core-blocks/core-blocks.addon.js +2 -2
- package/dist/builtins/core-blocks/core-blocks.addon.mjs +2 -2
- package/dist/builtins/device-manager/device-manager.addon.js +2 -2
- package/dist/builtins/device-manager/device-manager.addon.mjs +2 -2
- package/dist/builtins/doorbell/virtual-doorbell.addon.js +1 -1
- package/dist/builtins/doorbell/virtual-doorbell.addon.mjs +1 -1
- package/dist/builtins/hub-forwarder/index.js +1 -1
- package/dist/builtins/hub-forwarder/index.mjs +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.js +1 -1
- package/dist/builtins/liveness-monitor/liveness-monitor.addon.mjs +1 -1
- package/dist/builtins/local-auth/local-auth.addon.js +1 -1
- package/dist/builtins/local-auth/local-auth.addon.mjs +1 -1
- package/dist/builtins/local-network/local-network.addon.js +1 -1
- package/dist/builtins/local-network/local-network.addon.mjs +1 -1
- package/dist/builtins/loki-logging/index.js +1 -1
- package/dist/builtins/loki-logging/index.mjs +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.js +1 -1
- package/dist/builtins/native-metrics/native-metrics.addon.mjs +1 -1
- package/dist/builtins/platform-probe/index.js +1 -1
- package/dist/builtins/platform-probe/index.mjs +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +1 -1
- package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +1 -1
- package/dist/builtins/snapshot/index.js +1 -1
- package/dist/builtins/snapshot/index.mjs +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.js +1 -1
- package/dist/builtins/sqlite-storage/filesystem-storage.addon.mjs +1 -1
- package/dist/builtins/sqlite-storage/retired-collections.d.ts +9 -0
- package/dist/builtins/sqlite-storage/shm-lock-canary.d.ts +60 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.d.ts +1 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.js +0 -0
- package/dist/builtins/sqlite-storage/sqlite-settings.addon.mjs +0 -0
- package/dist/builtins/sqlite-storage/wal-checkpoint-policy.d.ts +115 -34
- package/dist/builtins/sqlite-storage/wal-checkpointer.d.ts +6 -0
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.js +1 -1
- package/dist/builtins/storage-orchestrator/storage-orchestrator.addon.mjs +1 -1
- package/dist/builtins/system-backup/system-backup.service.d.ts +2 -17
- package/dist/builtins/system-config/system-config.addon.js +1 -1
- package/dist/builtins/system-config/system-config.addon.mjs +1 -1
- package/dist/builtins/winston-logging/index.js +1 -1
- package/dist/builtins/winston-logging/index.mjs +1 -1
- package/dist/{composition-sources-BjRPhWtU.js → composition-sources-D4UkcIhl.js} +1 -1
- package/dist/{composition-sources-Cg2MP-qf.mjs → composition-sources-Due6vto8.mjs} +1 -1
- package/dist/{dist-Dcy0gVHu.js → dist-B0AvBZxe.js} +1 -174
- package/dist/{dist-CQ9vXSUh.mjs → dist-XfFiGX64.mjs} +1 -174
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{retired-settings-keys-pzlrLUbA.js → retired-settings-keys-AmO1MZks.js} +1 -1
- package/dist/{retired-settings-keys-DNIbyfTR.mjs → retired-settings-keys-DXI77cc8.mjs} +1 -1
- package/dist/wal-checkpoint-policy-BahrTtyD.mjs +186 -0
- package/dist/wal-checkpoint-policy-d2z2qPqx.js +233 -0
- package/dist/wal-checkpoint-worker.js +63 -57
- package/dist/wal-checkpoint-worker.mjs +63 -57
- package/package.json +1 -1
- package/dist/wal-checkpoint-policy-CAcg63o-.mjs +0 -92
- package/dist/wal-checkpoint-policy-CCJZngds.js +0 -127
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Cn as withLocationMode, D as REDACTED_SECRET, F as StorageLocationTypeSchema, Gn as BaseAddon, Ht as mayWriteToLocation, I as StorageMigrationJobSchema, N as StorageCleanupJobSchema, Ot as isLocationEnabled, P as StorageLocationModeSchema, Pt as legacyModeOf, Tt as gbToBytes, Vt as mayReadLocation, Wt as modeMayWrite, Y as collectSecretConfigKeys, fn as storageCapability, hr as EventCategory, ln as settingsStoreCapability, lr as parseJsonObject, pn as storageMigrationCapability, rn as resolveLocationMode, x as LegacyStorageLocationDefaultSchema, yt as evictionPolicyOfLocation } from "../../dist-
|
|
1
|
+
import { Cn as withLocationMode, D as REDACTED_SECRET, F as StorageLocationTypeSchema, Gn as BaseAddon, Ht as mayWriteToLocation, I as StorageMigrationJobSchema, N as StorageCleanupJobSchema, Ot as isLocationEnabled, P as StorageLocationModeSchema, Pt as legacyModeOf, Tt as gbToBytes, Vt as mayReadLocation, Wt as modeMayWrite, Y as collectSecretConfigKeys, fn as storageCapability, hr as EventCategory, ln as settingsStoreCapability, lr as parseJsonObject, pn as storageMigrationCapability, rn as resolveLocationMode, x as LegacyStorageLocationDefaultSchema, yt as evictionPolicyOfLocation } from "../../dist-XfFiGX64.mjs";
|
|
2
2
|
import { t as HUB_CAP_FWD_ACTION } from "../../hub-cap-forward-BdT320dq.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { randomUUID } from "node:crypto";
|
|
@@ -160,20 +160,6 @@ export declare class SystemBackupService {
|
|
|
160
160
|
signal?: AbortSignal;
|
|
161
161
|
onArchiveBytes?: (bytesWritten: number) => void;
|
|
162
162
|
}): Promise<CreateArchiveResult>;
|
|
163
|
-
/**
|
|
164
|
-
* Best-effort `wal_checkpoint(TRUNCATE)` on every live SQLite database
|
|
165
|
-
* under the locations about to be archived. Discovers a DB by its
|
|
166
|
-
* `-wal` sidecar (only WAL-mode DBs have one, and only those need
|
|
167
|
-
* folding), opens a short-lived second connection — SQLite permits
|
|
168
|
-
* concurrent connections, and a checkpoint is a supported concurrent
|
|
169
|
-
* operation against the hub's live writer — checkpoints, and closes.
|
|
170
|
-
*
|
|
171
|
-
* Every failure is swallowed: a `SQLITE_BUSY`, a locked file, a
|
|
172
|
-
* missing native binding, or a non-DB `.db` file must not fail the
|
|
173
|
-
* backup. A residual WAL still restores correctly; the checkpoint is a
|
|
174
|
-
* consistency *improvement*, not a precondition.
|
|
175
|
-
*/
|
|
176
|
-
private checkpointDatabasesUnder;
|
|
177
163
|
/**
|
|
178
164
|
* without extracting payload files. Streams the tar.gz, parses the
|
|
179
165
|
* one entry we care about, then aborts.
|
|
@@ -213,9 +199,8 @@ export declare class SystemBackupService {
|
|
|
213
199
|
private getRestoreMarkerPath;
|
|
214
200
|
/**
|
|
215
201
|
* Absolute-path form of {@link isExcludedFromBackup}, anchored on
|
|
216
|
-
* this service's dataDir. Shared by the manifest walk
|
|
217
|
-
* stats
|
|
218
|
-
* filter about what a backup contains.
|
|
202
|
+
* this service's dataDir. Shared by the manifest walk and the location
|
|
203
|
+
* stats so both agree with the tar filter about what a backup contains.
|
|
219
204
|
*/
|
|
220
205
|
private exclusionPredicate;
|
|
221
206
|
}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-B0AvBZxe.js");
|
|
7
7
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
8
8
|
/**
|
|
9
9
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gn as BaseAddon, Wn as errMsg, ar as hydrateSchema } from "../../dist-
|
|
1
|
+
import { Gn as BaseAddon, Wn as errMsg, ar as hydrateSchema } from "../../dist-XfFiGX64.mjs";
|
|
2
2
|
//#region src/builtins/system-config/system-config.addon.ts
|
|
3
3
|
/**
|
|
4
4
|
* Built-in `system-config` addon — Phase 4 of the settings redesign.
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../../chunk-Cek0wNdY.js");
|
|
6
|
-
const require_dist = require("../../dist-
|
|
6
|
+
const require_dist = require("../../dist-B0AvBZxe.js");
|
|
7
7
|
const require_formatter = require("../../formatter-DqAKDlvN.js");
|
|
8
8
|
let node_path = require("node:path");
|
|
9
9
|
node_path = require_chunk.__toESM(node_path);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gn as BaseAddon, Rt as logDestinationCapability } from "../../dist-
|
|
1
|
+
import { Gn as BaseAddon, Rt as logDestinationCapability } from "../../dist-XfFiGX64.mjs";
|
|
2
2
|
import { t as formatLogLine } from "../../formatter-B7qW8bPJ.mjs";
|
|
3
3
|
import * as path$1 from "node:path";
|
|
4
4
|
import path from "node:path";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { In as compositionSourceKey, Wn as errMsg } from "./dist-
|
|
1
|
+
import { In as compositionSourceKey, Wn as errMsg } from "./dist-XfFiGX64.mjs";
|
|
2
2
|
//#region src/builtins/core-blocks/composition-sources.ts
|
|
3
3
|
/**
|
|
4
4
|
* Describe what a composition reads and writes for SAVE-time validation
|
|
@@ -701,7 +701,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
701
701
|
return EventCategory;
|
|
702
702
|
}({});
|
|
703
703
|
//#endregion
|
|
704
|
-
//#region ../types/dist/sleep-
|
|
704
|
+
//#region ../types/dist/sleep-C-v96WpE.mjs
|
|
705
705
|
/**
|
|
706
706
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
707
707
|
* window to float samples (D455).
|
|
@@ -5194,7 +5194,6 @@ function featureSources(feature) {
|
|
|
5194
5194
|
}
|
|
5195
5195
|
new Set([
|
|
5196
5196
|
"track",
|
|
5197
|
-
"summary",
|
|
5198
5197
|
"face",
|
|
5199
5198
|
"identity",
|
|
5200
5199
|
"plate",
|
|
@@ -22254,141 +22253,6 @@ var RecentTracksQueryInput = zod.z.object({
|
|
|
22254
22253
|
/** See {@link ExcludeSourcesDoc}. */
|
|
22255
22254
|
excludeSources: zod.z.array(TrackSourceSchema).optional()
|
|
22256
22255
|
});
|
|
22257
|
-
/**
|
|
22258
|
-
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
22259
|
-
* `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
|
|
22260
|
-
* 'summary'`, served by the event-media plane at `/m/<id>`), null until the
|
|
22261
|
-
* first frame with a member visible has been materialised (D482 — it was the
|
|
22262
|
-
* row's composite key, which embedded the owner and could name another table's
|
|
22263
|
-
* row once event ids became per-table rowids).
|
|
22264
|
-
*/
|
|
22265
|
-
var SummarySchema = zod.z.object({
|
|
22266
|
-
id: zod.z.string(),
|
|
22267
|
-
deviceId: zod.z.number(),
|
|
22268
|
-
openedAt: zod.z.number(),
|
|
22269
|
-
lastActiveAt: zod.z.number(),
|
|
22270
|
-
sealedAt: zod.z.number().nullable(),
|
|
22271
|
-
memberCount: zod.z.number().int().nonnegative(),
|
|
22272
|
-
groupShotMediaId: zod.z.number().int().nullable()
|
|
22273
|
-
});
|
|
22274
|
-
var SummariesQueryInput = zod.z.object({
|
|
22275
|
-
deviceIds: zod.z.array(zod.z.number()).min(1),
|
|
22276
|
-
since: zod.z.number().optional(),
|
|
22277
|
-
until: zod.z.number().optional(),
|
|
22278
|
-
limit: zod.z.number().int().min(1).max(200).default(50),
|
|
22279
|
-
/** The same member-wise filter {@link listRecentSummaries} takes — one
|
|
22280
|
-
* meaning of "dog" on every summary surface. */
|
|
22281
|
-
classes: zod.z.array(zod.z.string().min(1).max(60)).max(40).optional()
|
|
22282
|
-
});
|
|
22283
|
-
/**
|
|
22284
|
-
* One member of a group, as a reader needs it.
|
|
22285
|
-
*
|
|
22286
|
-
* The class and the role travel WITH the id because every consumer that shows
|
|
22287
|
-
* a group has to say what it was made of — "two people and a dog" — and asking
|
|
22288
|
-
* `getTrack` per member to find that out turns one card into `memberCount`
|
|
22289
|
-
* round trips. The member row already holds both (they are written at the
|
|
22290
|
-
* join), so this costs the reader nothing.
|
|
22291
|
-
*/
|
|
22292
|
-
var SummaryMemberSchema = zod.z.object({
|
|
22293
|
-
trackId: zod.z.string(),
|
|
22294
|
-
/**
|
|
22295
|
-
* The track's class at the time it JOINED, or `null` when it was unresolved
|
|
22296
|
-
* and the track no longer exists to fill it.
|
|
22297
|
-
*
|
|
22298
|
-
* The join, not the latest opinion: class voting can re-decide a track's
|
|
22299
|
-
* class afterwards, and a group's composition is the history of who came
|
|
22300
|
-
* together. A consumer counts these to badge a thumbnail — "two people and a
|
|
22301
|
-
* dog" — rather than being handed a second, denormalised tally that would
|
|
22302
|
-
* drift from the members it claims to describe.
|
|
22303
|
-
*/
|
|
22304
|
-
className: zod.z.string().nullable(),
|
|
22305
|
-
/** `primary` is the one member that carries the group's identity. */
|
|
22306
|
-
role: zod.z.enum([
|
|
22307
|
-
"primary",
|
|
22308
|
-
"sibling",
|
|
22309
|
-
"child"
|
|
22310
|
-
]).nullable(),
|
|
22311
|
-
joinedAt: zod.z.number(),
|
|
22312
|
-
/** Tier 1 — the sub-class (`dog`, `van`), resolved from the member's track
|
|
22313
|
-
* at read time. Absent when nothing resolved, never an empty string. */
|
|
22314
|
-
label: zod.z.string().optional(),
|
|
22315
|
-
/** Tier 2 — the instance: a person's name, a plate. Absent when the pipeline
|
|
22316
|
-
* recognised nobody, and absent for a member whose track has been pruned —
|
|
22317
|
-
* a thumbnail that names the wrong person is worse than one naming nobody. */
|
|
22318
|
-
subLabel: zod.z.string().optional()
|
|
22319
|
-
});
|
|
22320
|
-
var SummaryDetailSchema = zod.z.object({
|
|
22321
|
-
summary: SummarySchema,
|
|
22322
|
-
/** Members in absorption order, oldest join first. */
|
|
22323
|
-
members: zod.z.array(SummaryMemberSchema).readonly()
|
|
22324
|
-
});
|
|
22325
|
-
/**
|
|
22326
|
-
* What a LIST of groups carries: the envelope plus what it is MADE OF.
|
|
22327
|
-
*
|
|
22328
|
-
* Coarse on purpose — the operator's rule is "only the rough data on the list,
|
|
22329
|
-
* we extend when we notice we need more". Enough to draw the card ("two people
|
|
22330
|
-
* and a dog") and no more. The MEMBERS, their names and the per-member links
|
|
22331
|
-
* are on {@link getSummary}: shipping every member of every group so a client
|
|
22332
|
-
* can count them turns a page of two hundred groups into a thousand records to
|
|
22333
|
-
* draw two hundred badges.
|
|
22334
|
-
*/
|
|
22335
|
-
var SummaryListItemSchema = zod.z.object({
|
|
22336
|
-
summary: SummarySchema,
|
|
22337
|
-
/** Class counts, most numerous first; `className: null` is a member whose
|
|
22338
|
-
* class never resolved, counted so the counts add up to `memberCount`. */
|
|
22339
|
-
classes: zod.z.array(zod.z.object({
|
|
22340
|
-
className: zod.z.string().nullable(),
|
|
22341
|
-
count: zod.z.number().int().positive()
|
|
22342
|
-
})).readonly()
|
|
22343
|
-
});
|
|
22344
|
-
var SummariesPageSchema = zod.z.object({ summaries: zod.z.array(SummaryListItemSchema).readonly() });
|
|
22345
|
-
/**
|
|
22346
|
-
* The paged feed, deliberately the SAME shape as {@link RecentTracksQueryInput}.
|
|
22347
|
-
*
|
|
22348
|
-
* The reel on the cameras page and the Events gallery both ride a cursor, so a
|
|
22349
|
-
* summaries feed that could only answer "the last N for these cameras"
|
|
22350
|
-
* (`listSummaries`) would make groups available in the timeline and nowhere
|
|
22351
|
-
* else. Two feeds with different ordering contracts would be two ideas of what
|
|
22352
|
-
* "newest" means, on one screen.
|
|
22353
|
-
*/
|
|
22354
|
-
var RecentSummariesQueryInput = zod.z.object({
|
|
22355
|
-
/** Devices to merge. An empty array yields an empty page. */
|
|
22356
|
-
deviceIds: zod.z.array(zod.z.number()),
|
|
22357
|
-
/** Window lower bound on `lastActiveAt` (inclusive). */
|
|
22358
|
-
since: zod.z.number().optional(),
|
|
22359
|
-
/** Window upper bound on `lastActiveAt` (inclusive). */
|
|
22360
|
-
until: zod.z.number().optional(),
|
|
22361
|
-
limit: zod.z.number().int().min(1).max(500).default(100),
|
|
22362
|
-
/** Opaque continuation cursor from a previous page's `nextCursor`. */
|
|
22363
|
-
cursor: zod.z.string().optional(),
|
|
22364
|
-
/**
|
|
22365
|
-
* Restrict to these classes — THE SAME FIELD `listRecentTracks` takes, and
|
|
22366
|
-
* deliberately the same name: the events filter tree emits one list of ticked
|
|
22367
|
-
* taxonomy nodes, and a summaries feed that called it something else would
|
|
22368
|
-
* make the operator's one filter component produce two shapes.
|
|
22369
|
-
*
|
|
22370
|
-
* A question about the MEMBERS: a group matches when ANY of them does. "Show
|
|
22371
|
-
* me the arrivals with a dog" has to return the group of four people who had
|
|
22372
|
-
* one with them; a filter on the group's own fields could only ever answer
|
|
22373
|
-
* about its primary.
|
|
22374
|
-
*
|
|
22375
|
-
* Matched against all THREE tiers of a member — the class (`animal`), the
|
|
22376
|
-
* sub-class (`dog`) and the instance (a name, a plate) — because which tier a
|
|
22377
|
-
* ticked node lives on is the taxonomy's business, not the caller's. `dog` is
|
|
22378
|
-
* an event kind in the tree and a tier-1 label on an `animal` track; a filter
|
|
22379
|
-
* that read only the class would answer "animal" and never "dog".
|
|
22380
|
-
*
|
|
22381
|
-
* ABSENT or EMPTY means no filter — absent is not a selection of none.
|
|
22382
|
-
*/
|
|
22383
|
-
classes: zod.z.array(zod.z.string().min(1).max(60)).max(40).optional()
|
|
22384
|
-
});
|
|
22385
|
-
var RecentSummariesPageSchema = zod.z.object({
|
|
22386
|
-
/** Ordered by (`lastActiveAt` DESC, id DESC). Same light item as
|
|
22387
|
-
* {@link listSummaries} — one list shape, so a card renders the same
|
|
22388
|
-
* whichever feed drew it. */
|
|
22389
|
-
summaries: zod.z.array(SummaryListItemSchema).readonly(),
|
|
22390
|
-
nextCursor: zod.z.string().nullable()
|
|
22391
|
-
});
|
|
22392
22256
|
var RecentTracksPageSchema = zod.z.object({
|
|
22393
22257
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
22394
22258
|
tracks: zod.z.array(TrackSchema).readonly(),
|
|
@@ -22926,15 +22790,6 @@ var pipelineAnalyticsCapability = {
|
|
|
22926
22790
|
* are not included (same contract as `listTracks`).
|
|
22927
22791
|
*/
|
|
22928
22792
|
listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
|
|
22929
|
-
/** Newest first by `openedAt`, for a camera set, inside an optional window. */
|
|
22930
|
-
listSummaries: method(SummariesQueryInput, SummariesPageSchema),
|
|
22931
|
-
/**
|
|
22932
|
-
* The PAGED feed — the reel and the Events gallery. Same cursor contract as
|
|
22933
|
-
* {@link listRecentTracks}, so one screen cannot hold two ideas of newest.
|
|
22934
|
-
*/
|
|
22935
|
-
listRecentSummaries: method(RecentSummariesQueryInput, RecentSummariesPageSchema),
|
|
22936
|
-
/** One summary with its member track ids; `null` for an id nobody wrote. */
|
|
22937
|
-
getSummary: method(zod.z.object({ id: zod.z.string() }), SummaryDetailSchema.nullable()),
|
|
22938
22793
|
clearTracks: method(zod.z.object({ deviceId: zod.z.number() }), zod.z.void(), {
|
|
22939
22794
|
kind: "mutation",
|
|
22940
22795
|
auth: "admin"
|
|
@@ -51060,12 +50915,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51060
50915
|
addonId: null,
|
|
51061
50916
|
access: "view"
|
|
51062
50917
|
},
|
|
51063
|
-
"pipelineAnalytics.getSummary": {
|
|
51064
|
-
capName: "pipeline-analytics",
|
|
51065
|
-
capScope: "device",
|
|
51066
|
-
addonId: null,
|
|
51067
|
-
access: "view"
|
|
51068
|
-
},
|
|
51069
50918
|
"pipelineAnalytics.getTrack": {
|
|
51070
50919
|
capName: "pipeline-analytics",
|
|
51071
50920
|
capScope: "device",
|
|
@@ -51126,12 +50975,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51126
50975
|
addonId: null,
|
|
51127
50976
|
access: "view"
|
|
51128
50977
|
},
|
|
51129
|
-
"pipelineAnalytics.listRecentSummaries": {
|
|
51130
|
-
capName: "pipeline-analytics",
|
|
51131
|
-
capScope: "device",
|
|
51132
|
-
addonId: null,
|
|
51133
|
-
access: "view"
|
|
51134
|
-
},
|
|
51135
50978
|
"pipelineAnalytics.listRecentTracks": {
|
|
51136
50979
|
capName: "pipeline-analytics",
|
|
51137
50980
|
capScope: "device",
|
|
@@ -51162,12 +51005,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51162
51005
|
addonId: null,
|
|
51163
51006
|
access: "view"
|
|
51164
51007
|
},
|
|
51165
|
-
"pipelineAnalytics.listSummaries": {
|
|
51166
|
-
capName: "pipeline-analytics",
|
|
51167
|
-
capScope: "device",
|
|
51168
|
-
addonId: null,
|
|
51169
|
-
access: "view"
|
|
51170
|
-
},
|
|
51171
51008
|
"pipelineAnalytics.listTrackMedia": {
|
|
51172
51009
|
capName: "pipeline-analytics",
|
|
51173
51010
|
capScope: "device",
|
|
@@ -55337,11 +55174,6 @@ Object.freeze({
|
|
|
55337
55174
|
form: "single",
|
|
55338
55175
|
optional: true
|
|
55339
55176
|
}],
|
|
55340
|
-
"pipelineAnalytics.listRecentSummaries": [{
|
|
55341
|
-
name: "deviceIds",
|
|
55342
|
-
form: "array",
|
|
55343
|
-
optional: false
|
|
55344
|
-
}],
|
|
55345
55177
|
"pipelineAnalytics.listRecentTracks": [{
|
|
55346
55178
|
name: "deviceIds",
|
|
55347
55179
|
form: "array",
|
|
@@ -55352,11 +55184,6 @@ Object.freeze({
|
|
|
55352
55184
|
form: "array",
|
|
55353
55185
|
optional: true
|
|
55354
55186
|
}],
|
|
55355
|
-
"pipelineAnalytics.listSummaries": [{
|
|
55356
|
-
name: "deviceIds",
|
|
55357
|
-
form: "array",
|
|
55358
|
-
optional: false
|
|
55359
|
-
}],
|
|
55360
55187
|
"pipelineAnalytics.listTrackMedia": [{
|
|
55361
55188
|
name: "deviceId",
|
|
55362
55189
|
form: "single",
|
|
@@ -701,7 +701,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
701
701
|
return EventCategory;
|
|
702
702
|
}({});
|
|
703
703
|
//#endregion
|
|
704
|
-
//#region ../types/dist/sleep-
|
|
704
|
+
//#region ../types/dist/sleep-C-v96WpE.mjs
|
|
705
705
|
/**
|
|
706
706
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
707
707
|
* window to float samples (D455).
|
|
@@ -5194,7 +5194,6 @@ function featureSources(feature) {
|
|
|
5194
5194
|
}
|
|
5195
5195
|
new Set([
|
|
5196
5196
|
"track",
|
|
5197
|
-
"summary",
|
|
5198
5197
|
"face",
|
|
5199
5198
|
"identity",
|
|
5200
5199
|
"plate",
|
|
@@ -22254,141 +22253,6 @@ var RecentTracksQueryInput = z.object({
|
|
|
22254
22253
|
/** See {@link ExcludeSourcesDoc}. */
|
|
22255
22254
|
excludeSources: z.array(TrackSourceSchema).optional()
|
|
22256
22255
|
});
|
|
22257
|
-
/**
|
|
22258
|
-
* A Summary (D359): the per-camera session envelope that references tracks.
|
|
22259
|
-
* `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
|
|
22260
|
-
* 'summary'`, served by the event-media plane at `/m/<id>`), null until the
|
|
22261
|
-
* first frame with a member visible has been materialised (D482 — it was the
|
|
22262
|
-
* row's composite key, which embedded the owner and could name another table's
|
|
22263
|
-
* row once event ids became per-table rowids).
|
|
22264
|
-
*/
|
|
22265
|
-
var SummarySchema = z.object({
|
|
22266
|
-
id: z.string(),
|
|
22267
|
-
deviceId: z.number(),
|
|
22268
|
-
openedAt: z.number(),
|
|
22269
|
-
lastActiveAt: z.number(),
|
|
22270
|
-
sealedAt: z.number().nullable(),
|
|
22271
|
-
memberCount: z.number().int().nonnegative(),
|
|
22272
|
-
groupShotMediaId: z.number().int().nullable()
|
|
22273
|
-
});
|
|
22274
|
-
var SummariesQueryInput = z.object({
|
|
22275
|
-
deviceIds: z.array(z.number()).min(1),
|
|
22276
|
-
since: z.number().optional(),
|
|
22277
|
-
until: z.number().optional(),
|
|
22278
|
-
limit: z.number().int().min(1).max(200).default(50),
|
|
22279
|
-
/** The same member-wise filter {@link listRecentSummaries} takes — one
|
|
22280
|
-
* meaning of "dog" on every summary surface. */
|
|
22281
|
-
classes: z.array(z.string().min(1).max(60)).max(40).optional()
|
|
22282
|
-
});
|
|
22283
|
-
/**
|
|
22284
|
-
* One member of a group, as a reader needs it.
|
|
22285
|
-
*
|
|
22286
|
-
* The class and the role travel WITH the id because every consumer that shows
|
|
22287
|
-
* a group has to say what it was made of — "two people and a dog" — and asking
|
|
22288
|
-
* `getTrack` per member to find that out turns one card into `memberCount`
|
|
22289
|
-
* round trips. The member row already holds both (they are written at the
|
|
22290
|
-
* join), so this costs the reader nothing.
|
|
22291
|
-
*/
|
|
22292
|
-
var SummaryMemberSchema = z.object({
|
|
22293
|
-
trackId: z.string(),
|
|
22294
|
-
/**
|
|
22295
|
-
* The track's class at the time it JOINED, or `null` when it was unresolved
|
|
22296
|
-
* and the track no longer exists to fill it.
|
|
22297
|
-
*
|
|
22298
|
-
* The join, not the latest opinion: class voting can re-decide a track's
|
|
22299
|
-
* class afterwards, and a group's composition is the history of who came
|
|
22300
|
-
* together. A consumer counts these to badge a thumbnail — "two people and a
|
|
22301
|
-
* dog" — rather than being handed a second, denormalised tally that would
|
|
22302
|
-
* drift from the members it claims to describe.
|
|
22303
|
-
*/
|
|
22304
|
-
className: z.string().nullable(),
|
|
22305
|
-
/** `primary` is the one member that carries the group's identity. */
|
|
22306
|
-
role: z.enum([
|
|
22307
|
-
"primary",
|
|
22308
|
-
"sibling",
|
|
22309
|
-
"child"
|
|
22310
|
-
]).nullable(),
|
|
22311
|
-
joinedAt: z.number(),
|
|
22312
|
-
/** Tier 1 — the sub-class (`dog`, `van`), resolved from the member's track
|
|
22313
|
-
* at read time. Absent when nothing resolved, never an empty string. */
|
|
22314
|
-
label: z.string().optional(),
|
|
22315
|
-
/** Tier 2 — the instance: a person's name, a plate. Absent when the pipeline
|
|
22316
|
-
* recognised nobody, and absent for a member whose track has been pruned —
|
|
22317
|
-
* a thumbnail that names the wrong person is worse than one naming nobody. */
|
|
22318
|
-
subLabel: z.string().optional()
|
|
22319
|
-
});
|
|
22320
|
-
var SummaryDetailSchema = z.object({
|
|
22321
|
-
summary: SummarySchema,
|
|
22322
|
-
/** Members in absorption order, oldest join first. */
|
|
22323
|
-
members: z.array(SummaryMemberSchema).readonly()
|
|
22324
|
-
});
|
|
22325
|
-
/**
|
|
22326
|
-
* What a LIST of groups carries: the envelope plus what it is MADE OF.
|
|
22327
|
-
*
|
|
22328
|
-
* Coarse on purpose — the operator's rule is "only the rough data on the list,
|
|
22329
|
-
* we extend when we notice we need more". Enough to draw the card ("two people
|
|
22330
|
-
* and a dog") and no more. The MEMBERS, their names and the per-member links
|
|
22331
|
-
* are on {@link getSummary}: shipping every member of every group so a client
|
|
22332
|
-
* can count them turns a page of two hundred groups into a thousand records to
|
|
22333
|
-
* draw two hundred badges.
|
|
22334
|
-
*/
|
|
22335
|
-
var SummaryListItemSchema = z.object({
|
|
22336
|
-
summary: SummarySchema,
|
|
22337
|
-
/** Class counts, most numerous first; `className: null` is a member whose
|
|
22338
|
-
* class never resolved, counted so the counts add up to `memberCount`. */
|
|
22339
|
-
classes: z.array(z.object({
|
|
22340
|
-
className: z.string().nullable(),
|
|
22341
|
-
count: z.number().int().positive()
|
|
22342
|
-
})).readonly()
|
|
22343
|
-
});
|
|
22344
|
-
var SummariesPageSchema = z.object({ summaries: z.array(SummaryListItemSchema).readonly() });
|
|
22345
|
-
/**
|
|
22346
|
-
* The paged feed, deliberately the SAME shape as {@link RecentTracksQueryInput}.
|
|
22347
|
-
*
|
|
22348
|
-
* The reel on the cameras page and the Events gallery both ride a cursor, so a
|
|
22349
|
-
* summaries feed that could only answer "the last N for these cameras"
|
|
22350
|
-
* (`listSummaries`) would make groups available in the timeline and nowhere
|
|
22351
|
-
* else. Two feeds with different ordering contracts would be two ideas of what
|
|
22352
|
-
* "newest" means, on one screen.
|
|
22353
|
-
*/
|
|
22354
|
-
var RecentSummariesQueryInput = z.object({
|
|
22355
|
-
/** Devices to merge. An empty array yields an empty page. */
|
|
22356
|
-
deviceIds: z.array(z.number()),
|
|
22357
|
-
/** Window lower bound on `lastActiveAt` (inclusive). */
|
|
22358
|
-
since: z.number().optional(),
|
|
22359
|
-
/** Window upper bound on `lastActiveAt` (inclusive). */
|
|
22360
|
-
until: z.number().optional(),
|
|
22361
|
-
limit: z.number().int().min(1).max(500).default(100),
|
|
22362
|
-
/** Opaque continuation cursor from a previous page's `nextCursor`. */
|
|
22363
|
-
cursor: z.string().optional(),
|
|
22364
|
-
/**
|
|
22365
|
-
* Restrict to these classes — THE SAME FIELD `listRecentTracks` takes, and
|
|
22366
|
-
* deliberately the same name: the events filter tree emits one list of ticked
|
|
22367
|
-
* taxonomy nodes, and a summaries feed that called it something else would
|
|
22368
|
-
* make the operator's one filter component produce two shapes.
|
|
22369
|
-
*
|
|
22370
|
-
* A question about the MEMBERS: a group matches when ANY of them does. "Show
|
|
22371
|
-
* me the arrivals with a dog" has to return the group of four people who had
|
|
22372
|
-
* one with them; a filter on the group's own fields could only ever answer
|
|
22373
|
-
* about its primary.
|
|
22374
|
-
*
|
|
22375
|
-
* Matched against all THREE tiers of a member — the class (`animal`), the
|
|
22376
|
-
* sub-class (`dog`) and the instance (a name, a plate) — because which tier a
|
|
22377
|
-
* ticked node lives on is the taxonomy's business, not the caller's. `dog` is
|
|
22378
|
-
* an event kind in the tree and a tier-1 label on an `animal` track; a filter
|
|
22379
|
-
* that read only the class would answer "animal" and never "dog".
|
|
22380
|
-
*
|
|
22381
|
-
* ABSENT or EMPTY means no filter — absent is not a selection of none.
|
|
22382
|
-
*/
|
|
22383
|
-
classes: z.array(z.string().min(1).max(60)).max(40).optional()
|
|
22384
|
-
});
|
|
22385
|
-
var RecentSummariesPageSchema = z.object({
|
|
22386
|
-
/** Ordered by (`lastActiveAt` DESC, id DESC). Same light item as
|
|
22387
|
-
* {@link listSummaries} — one list shape, so a card renders the same
|
|
22388
|
-
* whichever feed drew it. */
|
|
22389
|
-
summaries: z.array(SummaryListItemSchema).readonly(),
|
|
22390
|
-
nextCursor: z.string().nullable()
|
|
22391
|
-
});
|
|
22392
22256
|
var RecentTracksPageSchema = z.object({
|
|
22393
22257
|
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
22394
22258
|
tracks: z.array(TrackSchema).readonly(),
|
|
@@ -22926,15 +22790,6 @@ var pipelineAnalyticsCapability = {
|
|
|
22926
22790
|
* are not included (same contract as `listTracks`).
|
|
22927
22791
|
*/
|
|
22928
22792
|
listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
|
|
22929
|
-
/** Newest first by `openedAt`, for a camera set, inside an optional window. */
|
|
22930
|
-
listSummaries: method(SummariesQueryInput, SummariesPageSchema),
|
|
22931
|
-
/**
|
|
22932
|
-
* The PAGED feed — the reel and the Events gallery. Same cursor contract as
|
|
22933
|
-
* {@link listRecentTracks}, so one screen cannot hold two ideas of newest.
|
|
22934
|
-
*/
|
|
22935
|
-
listRecentSummaries: method(RecentSummariesQueryInput, RecentSummariesPageSchema),
|
|
22936
|
-
/** One summary with its member track ids; `null` for an id nobody wrote. */
|
|
22937
|
-
getSummary: method(z.object({ id: z.string() }), SummaryDetailSchema.nullable()),
|
|
22938
22793
|
clearTracks: method(z.object({ deviceId: z.number() }), z.void(), {
|
|
22939
22794
|
kind: "mutation",
|
|
22940
22795
|
auth: "admin"
|
|
@@ -51060,12 +50915,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51060
50915
|
addonId: null,
|
|
51061
50916
|
access: "view"
|
|
51062
50917
|
},
|
|
51063
|
-
"pipelineAnalytics.getSummary": {
|
|
51064
|
-
capName: "pipeline-analytics",
|
|
51065
|
-
capScope: "device",
|
|
51066
|
-
addonId: null,
|
|
51067
|
-
access: "view"
|
|
51068
|
-
},
|
|
51069
50918
|
"pipelineAnalytics.getTrack": {
|
|
51070
50919
|
capName: "pipeline-analytics",
|
|
51071
50920
|
capScope: "device",
|
|
@@ -51126,12 +50975,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51126
50975
|
addonId: null,
|
|
51127
50976
|
access: "view"
|
|
51128
50977
|
},
|
|
51129
|
-
"pipelineAnalytics.listRecentSummaries": {
|
|
51130
|
-
capName: "pipeline-analytics",
|
|
51131
|
-
capScope: "device",
|
|
51132
|
-
addonId: null,
|
|
51133
|
-
access: "view"
|
|
51134
|
-
},
|
|
51135
50978
|
"pipelineAnalytics.listRecentTracks": {
|
|
51136
50979
|
capName: "pipeline-analytics",
|
|
51137
50980
|
capScope: "device",
|
|
@@ -51162,12 +51005,6 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
51162
51005
|
addonId: null,
|
|
51163
51006
|
access: "view"
|
|
51164
51007
|
},
|
|
51165
|
-
"pipelineAnalytics.listSummaries": {
|
|
51166
|
-
capName: "pipeline-analytics",
|
|
51167
|
-
capScope: "device",
|
|
51168
|
-
addonId: null,
|
|
51169
|
-
access: "view"
|
|
51170
|
-
},
|
|
51171
51008
|
"pipelineAnalytics.listTrackMedia": {
|
|
51172
51009
|
capName: "pipeline-analytics",
|
|
51173
51010
|
capScope: "device",
|
|
@@ -55337,11 +55174,6 @@ Object.freeze({
|
|
|
55337
55174
|
form: "single",
|
|
55338
55175
|
optional: true
|
|
55339
55176
|
}],
|
|
55340
|
-
"pipelineAnalytics.listRecentSummaries": [{
|
|
55341
|
-
name: "deviceIds",
|
|
55342
|
-
form: "array",
|
|
55343
|
-
optional: false
|
|
55344
|
-
}],
|
|
55345
55177
|
"pipelineAnalytics.listRecentTracks": [{
|
|
55346
55178
|
name: "deviceIds",
|
|
55347
55179
|
form: "array",
|
|
@@ -55352,11 +55184,6 @@ Object.freeze({
|
|
|
55352
55184
|
form: "array",
|
|
55353
55185
|
optional: true
|
|
55354
55186
|
}],
|
|
55355
|
-
"pipelineAnalytics.listSummaries": [{
|
|
55356
|
-
name: "deviceIds",
|
|
55357
|
-
form: "array",
|
|
55358
|
-
optional: false
|
|
55359
|
-
}],
|
|
55360
55187
|
"pipelineAnalytics.listTrackMedia": [{
|
|
55361
55188
|
name: "deviceId",
|
|
55362
55189
|
form: "single",
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_chunk = require("./chunk-Cek0wNdY.js");
|
|
3
|
-
const require_dist = require("./dist-
|
|
3
|
+
const require_dist = require("./dist-B0AvBZxe.js");
|
|
4
4
|
const require_builtins_alerts_alerts_addon = require("./builtins/alerts/alerts.addon.js");
|
|
5
5
|
require("./builtins/alerts/index.js");
|
|
6
6
|
const require_builtins_composer_composer_addon = require("./builtins/composer/composer.addon.js");
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM$1, r as __exportAll, t as __commonJSMin$1 } from "./chunk-CNf5ZN-e.mjs";
|
|
2
|
-
import { $n as asNumber, Bt as looseSchema, C as METHOD_ACCESS_MAP, Dt as isCollectionArrayMethod, Et as isArrayOutputSchema, Ft as lifecycleJobSchema, Jn as DEVICE_STATUS_METHOD, Jt as objectInputDeclaresRequiredDeviceId, Kn as DATAPLANE_SECRET_HEADER$1, Mt as kebabToCamel, O as RUNTIME_DEFAULTS, Qn as asJsonObject$1, Qt as procedureAuthKey, Wn as errMsg$1, Xn as ReadinessTimeoutError, Yn as ReadinessRegistry, b as LOG_LEVEL_RANK, dr as readinessKey, er as asString$1, fr as resolveCapMount, hr as EventCategory$1, in as resolveMethodAuth, ir as expandCapMethods, jt as isVoidInput, kt as isObjectInput, lr as parseJsonObject, nr as emitDownForOwnedCaps, on as scopesAllowAddon, pr as scopeKey, qn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, qt as objectInputDeclaresAddonId, sn as scopesAllowDeviceCap, t as ALL_CAPABILITY_DEFINITIONS, tr as createEvent, ur as parseJsonUnknown, xt as extractNestedAddonId, z as addonSettingsCapability, zt as logLevelAtMost } from "./dist-
|
|
2
|
+
import { $n as asNumber, Bt as looseSchema, C as METHOD_ACCESS_MAP, Dt as isCollectionArrayMethod, Et as isArrayOutputSchema, Ft as lifecycleJobSchema, Jn as DEVICE_STATUS_METHOD, Jt as objectInputDeclaresRequiredDeviceId, Kn as DATAPLANE_SECRET_HEADER$1, Mt as kebabToCamel, O as RUNTIME_DEFAULTS, Qn as asJsonObject$1, Qt as procedureAuthKey, Wn as errMsg$1, Xn as ReadinessTimeoutError, Yn as ReadinessRegistry, b as LOG_LEVEL_RANK, dr as readinessKey, er as asString$1, fr as resolveCapMount, hr as EventCategory$1, in as resolveMethodAuth, ir as expandCapMethods, jt as isVoidInput, kt as isObjectInput, lr as parseJsonObject, nr as emitDownForOwnedCaps, on as scopesAllowAddon, pr as scopeKey, qn as DEVICE_SETTINGS_CONTRIBUTION_METHODS, qt as objectInputDeclaresAddonId, sn as scopesAllowDeviceCap, t as ALL_CAPABILITY_DEFINITIONS, tr as createEvent, ur as parseJsonUnknown, xt as extractNestedAddonId, z as addonSettingsCapability, zt as logLevelAtMost } from "./dist-XfFiGX64.mjs";
|
|
3
3
|
import { AlertCenterAddon } from "./builtins/alerts/alerts.addon.mjs";
|
|
4
4
|
import "./builtins/alerts/index.mjs";
|
|
5
5
|
import { ComposerAddon } from "./builtins/composer/composer.addon.mjs";
|