camstack 1.2.72 → 1.2.74
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.
|
@@ -14522,7 +14522,7 @@ function date4(params) {
|
|
|
14522
14522
|
// ../../node_modules/zod/v4/classic/external.js
|
|
14523
14523
|
config(en_default());
|
|
14524
14524
|
|
|
14525
|
-
// ../types/dist/sleep-
|
|
14525
|
+
// ../types/dist/sleep-C1mz-ocE.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -23717,6 +23717,8 @@ var NcSystemEventKindSchema = external_exports.enum([
|
|
|
23717
23717
|
"device-offline",
|
|
23718
23718
|
"device-disabled",
|
|
23719
23719
|
"device-enabled",
|
|
23720
|
+
"device-battery-low",
|
|
23721
|
+
"device-battery-normal",
|
|
23720
23722
|
"stream-online",
|
|
23721
23723
|
"stream-offline",
|
|
23722
23724
|
"node-online",
|
|
@@ -26467,6 +26469,17 @@ var KeyEventsForDeviceSchema = external_exports.object({
|
|
|
26467
26469
|
deviceId: external_exports.number(),
|
|
26468
26470
|
events: external_exports.array(KeyEventSchema).readonly()
|
|
26469
26471
|
});
|
|
26472
|
+
var EventDensityBucketSchema = external_exports.object({
|
|
26473
|
+
bucketStart: external_exports.number(),
|
|
26474
|
+
motion: external_exports.number().int(),
|
|
26475
|
+
object: external_exports.number().int(),
|
|
26476
|
+
audio: external_exports.number().int()
|
|
26477
|
+
});
|
|
26478
|
+
var EventDensityForDeviceSchema = external_exports.object({
|
|
26479
|
+
deviceId: external_exports.number(),
|
|
26480
|
+
read: external_exports.enum(["read", "unreadable"]),
|
|
26481
|
+
buckets: external_exports.array(EventDensityBucketSchema).readonly()
|
|
26482
|
+
});
|
|
26470
26483
|
var TrackedDetectionSchema = external_exports.object({
|
|
26471
26484
|
trackId: external_exports.string(),
|
|
26472
26485
|
className: external_exports.string(),
|
|
@@ -26804,12 +26817,31 @@ var pipelineAnalyticsCapability = {
|
|
|
26804
26817
|
since: external_exports.number(),
|
|
26805
26818
|
until: external_exports.number(),
|
|
26806
26819
|
bucketMs: external_exports.number().int().positive()
|
|
26807
|
-
}), external_exports.array(
|
|
26808
|
-
|
|
26809
|
-
|
|
26810
|
-
|
|
26811
|
-
|
|
26812
|
-
|
|
26820
|
+
}), external_exports.array(EventDensityBucketSchema).readonly()),
|
|
26821
|
+
/**
|
|
26822
|
+
* The same histogram, for a SET of cameras, in one round trip.
|
|
26823
|
+
*
|
|
26824
|
+
* A multi-camera timeline (the tablet grid) re-asks this of every camera in
|
|
26825
|
+
* the grid on every day change — N browser → hub → post-analysis round
|
|
26826
|
+
* trips for N independent, already-indexed store queries. The queries are
|
|
26827
|
+
* unchanged and still run per camera (`densityByKind`, one per deviceId,
|
|
26828
|
+
* concurrently INSIDE the owner); only the transport collapses.
|
|
26829
|
+
*
|
|
26830
|
+
* Deliberately per-device rather than pre-merged: a timeline lane belongs
|
|
26831
|
+
* to a camera, and a caller that merged would have to un-merge.
|
|
26832
|
+
* `getEventDensity` stays for single-camera callers.
|
|
26833
|
+
*
|
|
26834
|
+
* Every requested id gets a row, marked — see
|
|
26835
|
+
* {@link EventDensityForDeviceSchema}. `deviceIds` is capped at
|
|
26836
|
+
* {@link EVENT_DENSITY_BATCH_MAX}, and an over-cap ask is refused rather
|
|
26837
|
+
* than truncated.
|
|
26838
|
+
*/
|
|
26839
|
+
getEventDensityBatch: method(external_exports.object({
|
|
26840
|
+
deviceIds: external_exports.array(external_exports.number()).min(1).max(200),
|
|
26841
|
+
since: external_exports.number(),
|
|
26842
|
+
until: external_exports.number(),
|
|
26843
|
+
bucketMs: external_exports.number().int().positive()
|
|
26844
|
+
}), external_exports.array(EventDensityForDeviceSchema).readonly()),
|
|
26813
26845
|
/**
|
|
26814
26846
|
* @deprecated Prefer `pruneTracksBefore` — the track is the ROOT of the
|
|
26815
26847
|
* analytics model and retention must cascade from it (design §5.1). This
|
|
@@ -36520,6 +36552,17 @@ var RecordingDaysSchema = external_exports.object({
|
|
|
36520
36552
|
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
36521
36553
|
days: external_exports.array(external_exports.number())
|
|
36522
36554
|
});
|
|
36555
|
+
var RecordingAvailabilityForDeviceSchema = external_exports.object({
|
|
36556
|
+
deviceId: external_exports.number(),
|
|
36557
|
+
read: external_exports.enum(["read", "unreadable"]),
|
|
36558
|
+
ranges: external_exports.array(RecordingRangeSchema).readonly()
|
|
36559
|
+
});
|
|
36560
|
+
var RecordingDaysForDeviceSchema = external_exports.object({
|
|
36561
|
+
deviceId: external_exports.number(),
|
|
36562
|
+
read: external_exports.enum(["read", "unreadable"]),
|
|
36563
|
+
/** Local-midnight epochs (UTC ms) of days that have ≥1 recorded segment. */
|
|
36564
|
+
days: external_exports.array(external_exports.number()).readonly()
|
|
36565
|
+
});
|
|
36523
36566
|
var RecordingManifestSchema = external_exports.object({
|
|
36524
36567
|
deviceId: external_exports.number(),
|
|
36525
36568
|
/** Local filesystem path to the master playlist; null when no recording exists for the requested range. */
|
|
@@ -36702,6 +36745,32 @@ var recordingCapability = {
|
|
|
36702
36745
|
kind: "query",
|
|
36703
36746
|
auth: "protected"
|
|
36704
36747
|
}),
|
|
36748
|
+
/**
|
|
36749
|
+
* `getAvailability` for a SET of cameras, in one round trip.
|
|
36750
|
+
*
|
|
36751
|
+
* A multi-camera timeline re-asks availability for every camera in the grid
|
|
36752
|
+
* on every day change; fanned out that is one request per camera for N
|
|
36753
|
+
* independent calendar walks. The per-camera work is IDENTICAL (the same
|
|
36754
|
+
* `availabilityProfileFor` + `rangesIn`, run concurrently inside the
|
|
36755
|
+
* recorder) — only the transport collapses.
|
|
36756
|
+
*
|
|
36757
|
+
* `protected` for the same reason the singular method is: every id in
|
|
36758
|
+
* `deviceIds` is a device reference, so the F1 #3 gate refuses any camera
|
|
36759
|
+
* outside the caller's scope — one id out of scope refuses the CALL, it
|
|
36760
|
+
* does not quietly drop a row.
|
|
36761
|
+
*
|
|
36762
|
+
* Every requested id gets a row, marked — see
|
|
36763
|
+
* {@link RecordingAvailabilityForDeviceSchema}. `deviceIds` is capped at
|
|
36764
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
36765
|
+
*/
|
|
36766
|
+
getAvailabilityBatch: method(external_exports.object({
|
|
36767
|
+
deviceIds: external_exports.array(external_exports.number()).min(1).max(200),
|
|
36768
|
+
fromMs: external_exports.number(),
|
|
36769
|
+
toMs: external_exports.number()
|
|
36770
|
+
}), external_exports.array(RecordingAvailabilityForDeviceSchema).readonly(), {
|
|
36771
|
+
kind: "query",
|
|
36772
|
+
auth: "protected"
|
|
36773
|
+
}),
|
|
36705
36774
|
/** Which calendar days in [fromMs,toMs) have ≥1 recorded segment, bucketed by
|
|
36706
36775
|
* the client's local day (`tzOffsetMinutes` = minutes to add to UTC). Drives
|
|
36707
36776
|
* the theater date-picker's day dots. */
|
|
@@ -36714,6 +36783,26 @@ var recordingCapability = {
|
|
|
36714
36783
|
kind: "query",
|
|
36715
36784
|
auth: "protected"
|
|
36716
36785
|
}),
|
|
36786
|
+
/**
|
|
36787
|
+
* `getDaysWithRecordings` for a SET of cameras, in one round trip.
|
|
36788
|
+
*
|
|
36789
|
+
* The cheapest question in the product, asked once per camera per month
|
|
36790
|
+
* change. One directory read per day per camera at the owner, unchanged;
|
|
36791
|
+
* what collapses is the N requests it took to ask.
|
|
36792
|
+
*
|
|
36793
|
+
* Every requested id gets a row, marked — see
|
|
36794
|
+
* {@link RecordingDaysForDeviceSchema}. `deviceIds` is capped at
|
|
36795
|
+
* {@link RECORDING_TIMELINE_BATCH_MAX} and an over-cap ask is refused.
|
|
36796
|
+
*/
|
|
36797
|
+
getDaysWithRecordingsBatch: method(external_exports.object({
|
|
36798
|
+
deviceIds: external_exports.array(external_exports.number()).min(1).max(200),
|
|
36799
|
+
fromMs: external_exports.number(),
|
|
36800
|
+
toMs: external_exports.number(),
|
|
36801
|
+
tzOffsetMinutes: external_exports.number()
|
|
36802
|
+
}), external_exports.array(RecordingDaysForDeviceSchema).readonly(), {
|
|
36803
|
+
kind: "query",
|
|
36804
|
+
auth: "protected"
|
|
36805
|
+
}),
|
|
36717
36806
|
getPlaybackManifest: method(external_exports.object({
|
|
36718
36807
|
deviceId: external_exports.number(),
|
|
36719
36808
|
fromMs: external_exports.number(),
|
|
@@ -42300,6 +42389,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
42300
42389
|
addonId: null,
|
|
42301
42390
|
access: "view"
|
|
42302
42391
|
},
|
|
42392
|
+
"pipelineAnalytics.getEventDensityBatch": {
|
|
42393
|
+
capName: "pipeline-analytics",
|
|
42394
|
+
capScope: "device",
|
|
42395
|
+
addonId: null,
|
|
42396
|
+
access: "view"
|
|
42397
|
+
},
|
|
42303
42398
|
"pipelineAnalytics.getEventMedia": {
|
|
42304
42399
|
capName: "pipeline-analytics",
|
|
42305
42400
|
capScope: "device",
|
|
@@ -43422,12 +43517,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43422
43517
|
addonId: null,
|
|
43423
43518
|
access: "view"
|
|
43424
43519
|
},
|
|
43520
|
+
"recording.getAvailabilityBatch": {
|
|
43521
|
+
capName: "recording",
|
|
43522
|
+
capScope: "system",
|
|
43523
|
+
addonId: null,
|
|
43524
|
+
access: "view"
|
|
43525
|
+
},
|
|
43425
43526
|
"recording.getDaysWithRecordings": {
|
|
43426
43527
|
capName: "recording",
|
|
43427
43528
|
capScope: "system",
|
|
43428
43529
|
addonId: null,
|
|
43429
43530
|
access: "view"
|
|
43430
43531
|
},
|
|
43532
|
+
"recording.getDaysWithRecordingsBatch": {
|
|
43533
|
+
capName: "recording",
|
|
43534
|
+
capScope: "system",
|
|
43535
|
+
addonId: null,
|
|
43536
|
+
access: "view"
|
|
43537
|
+
},
|
|
43431
43538
|
"recording.getDeviceConfig": {
|
|
43432
43539
|
capName: "recording",
|
|
43433
43540
|
capScope: "system",
|
|
@@ -46032,6 +46139,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
46032
46139
|
form: "single",
|
|
46033
46140
|
optional: false
|
|
46034
46141
|
}],
|
|
46142
|
+
"pipelineAnalytics.getEventDensityBatch": [{
|
|
46143
|
+
name: "deviceIds",
|
|
46144
|
+
form: "array",
|
|
46145
|
+
optional: false
|
|
46146
|
+
}],
|
|
46035
46147
|
"pipelineAnalytics.getEventMedia": [{
|
|
46036
46148
|
name: "deviceId",
|
|
46037
46149
|
form: "single",
|
|
@@ -46447,11 +46559,21 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
46447
46559
|
form: "single",
|
|
46448
46560
|
optional: false
|
|
46449
46561
|
}],
|
|
46562
|
+
"recording.getAvailabilityBatch": [{
|
|
46563
|
+
name: "deviceIds",
|
|
46564
|
+
form: "array",
|
|
46565
|
+
optional: false
|
|
46566
|
+
}],
|
|
46450
46567
|
"recording.getDaysWithRecordings": [{
|
|
46451
46568
|
name: "deviceId",
|
|
46452
46569
|
form: "single",
|
|
46453
46570
|
optional: false
|
|
46454
46571
|
}],
|
|
46572
|
+
"recording.getDaysWithRecordingsBatch": [{
|
|
46573
|
+
name: "deviceIds",
|
|
46574
|
+
form: "array",
|
|
46575
|
+
optional: false
|
|
46576
|
+
}],
|
|
46455
46577
|
"recording.getDeviceConfig": [{
|
|
46456
46578
|
name: "deviceId",
|
|
46457
46579
|
form: "single",
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-U3GHKSOG.js";
|
|
5
5
|
import "./chunk-LMMQX4CK.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
@@ -38,7 +38,7 @@ async function runServe(args) {
|
|
|
38
38
|
...typeof values.data === "string" ? { data: values.data } : {}
|
|
39
39
|
};
|
|
40
40
|
Object.assign(process.env, buildServeEnv(opts));
|
|
41
|
-
await import("./launcher-
|
|
41
|
+
await import("./launcher-MNT6I6VY.js");
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
// src/commands/agent.ts
|
|
@@ -83,7 +83,7 @@ async function runAgent(args) {
|
|
|
83
83
|
...typeof values.port === "string" ? { port: values.port } : {}
|
|
84
84
|
};
|
|
85
85
|
Object.assign(process.env, buildAgentEnv(opts));
|
|
86
|
-
await import("./launcher-
|
|
86
|
+
await import("./launcher-MNT6I6VY.js");
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// src/commands/setup.ts
|
|
@@ -1130,7 +1130,7 @@ function isUnknown(_value) {
|
|
|
1130
1130
|
return true;
|
|
1131
1131
|
}
|
|
1132
1132
|
async function resolveServerInteractive(presetNamespace) {
|
|
1133
|
-
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-
|
|
1133
|
+
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-OD7ECRSD.js");
|
|
1134
1134
|
if (presetNamespace) {
|
|
1135
1135
|
const spinner4 = clack.spinner();
|
|
1136
1136
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|