camstack 1.2.70 → 1.2.71
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.
|
@@ -15839,6 +15839,13 @@ var MediaRelocateModeSchema = external_exports.enum([
|
|
|
15839
15839
|
]);
|
|
15840
15840
|
var RelocateMediaInputSchema = external_exports.object({
|
|
15841
15841
|
toLocationId: external_exports.string(),
|
|
15842
|
+
/**
|
|
15843
|
+
* Restrict the pass to rows currently on this location. Omitted / `'*'` =
|
|
15844
|
+
* every row that is not already on `toLocationId` (the historical
|
|
15845
|
+
* behaviour). A named source is what a from→to migration needs: without it
|
|
15846
|
+
* "move events off disk 2" also emptied disk 1.
|
|
15847
|
+
*/
|
|
15848
|
+
fromLocationId: external_exports.string().optional(),
|
|
15842
15849
|
throttleMbps: external_exports.number().min(1).max(1e3).optional(),
|
|
15843
15850
|
/** Omitted = `move`, the pre-existing behaviour. */
|
|
15844
15851
|
mode: MediaRelocateModeSchema.optional()
|
|
@@ -15870,9 +15877,18 @@ var StorageMigrationDestinationsSchema = external_exports.object({
|
|
|
15870
15877
|
backups: external_exports.string().min(1).optional(),
|
|
15871
15878
|
galleryMedia: external_exports.string().min(1).optional()
|
|
15872
15879
|
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
15880
|
+
var StorageMigrationSourcesSchema = external_exports.object({
|
|
15881
|
+
recordings: external_exports.string().min(1).optional(),
|
|
15882
|
+
recordingsLow: external_exports.string().min(1).optional(),
|
|
15883
|
+
eventMedia: external_exports.string().min(1).optional(),
|
|
15884
|
+
backups: external_exports.string().min(1).optional(),
|
|
15885
|
+
galleryMedia: external_exports.string().min(1).optional()
|
|
15886
|
+
}).optional();
|
|
15873
15887
|
var StorageMigrationModeSchema = external_exports.enum(["blocking", "nonBlocking"]);
|
|
15874
15888
|
var StorageMigrationInputSchema = external_exports.object({
|
|
15875
15889
|
destinations: StorageMigrationDestinationsSchema,
|
|
15890
|
+
/** Omitted = each class's current default. */
|
|
15891
|
+
sources: StorageMigrationSourcesSchema,
|
|
15876
15892
|
throttleMbps: external_exports.number().min(1).max(1e3).optional(),
|
|
15877
15893
|
/** Omitted = `blocking`, which stays the default. */
|
|
15878
15894
|
mode: StorageMigrationModeSchema.optional()
|
|
@@ -15918,6 +15934,13 @@ var StorageMigrationMoveSchema = external_exports.object({
|
|
|
15918
15934
|
storageClass: StorageMigrationClassSchema,
|
|
15919
15935
|
fromLocationId: external_exports.string(),
|
|
15920
15936
|
toLocationId: external_exports.string(),
|
|
15937
|
+
/**
|
|
15938
|
+
* True when `from` was NOT the class default at plan time. The move still
|
|
15939
|
+
* copies bytes, but the default is left alone and the source is disabled
|
|
15940
|
+
* once the copy verifies. Absent on jobs planned before this field existed
|
|
15941
|
+
* — those jobs always repointed, which is `false`.
|
|
15942
|
+
*/
|
|
15943
|
+
freezeSource: external_exports.boolean().optional(),
|
|
15921
15944
|
moverJobId: external_exports.string().nullable(),
|
|
15922
15945
|
state: RelocateJobStateSchema.nullable(),
|
|
15923
15946
|
error: external_exports.string().nullable(),
|
|
@@ -15931,6 +15954,7 @@ var StorageMigrationJobSchema = external_exports.object({
|
|
|
15931
15954
|
* can tell a seconds-long cutover from a thirty-hour one. */
|
|
15932
15955
|
mode: StorageMigrationModeSchema,
|
|
15933
15956
|
destinations: StorageMigrationDestinationsSchema,
|
|
15957
|
+
sources: StorageMigrationSourcesSchema,
|
|
15934
15958
|
throttleMbps: external_exports.number(),
|
|
15935
15959
|
moves: external_exports.array(StorageMigrationMoveSchema),
|
|
15936
15960
|
pauseLeaseId: external_exports.string().nullable(),
|
|
@@ -15957,6 +15981,7 @@ var StorageMigrationFindingSchema = external_exports.object({
|
|
|
15957
15981
|
});
|
|
15958
15982
|
var StorageMigrationPlanSchema = external_exports.object({
|
|
15959
15983
|
destinations: StorageMigrationDestinationsSchema,
|
|
15984
|
+
sources: StorageMigrationSourcesSchema,
|
|
15960
15985
|
/** The mode this plan was built for. A plan is only valid for its mode: the
|
|
15961
15986
|
* `eventMedia` seal gate and the single-cardinality refusal both depend on
|
|
15962
15987
|
* it. */
|
|
@@ -15964,7 +15989,8 @@ var StorageMigrationPlanSchema = external_exports.object({
|
|
|
15964
15989
|
moves: external_exports.array(external_exports.object({
|
|
15965
15990
|
storageClass: StorageMigrationClassSchema,
|
|
15966
15991
|
fromLocationId: external_exports.string(),
|
|
15967
|
-
toLocationId: external_exports.string()
|
|
15992
|
+
toLocationId: external_exports.string(),
|
|
15993
|
+
freezeSource: external_exports.boolean().optional()
|
|
15968
15994
|
})),
|
|
15969
15995
|
findings: external_exports.array(StorageMigrationFindingSchema)
|
|
15970
15996
|
});
|
|
@@ -16076,9 +16102,42 @@ var LedgerWalkReportSchema = external_exports.object({
|
|
|
16076
16102
|
var RelocatableMediaCountSchema = external_exports.object({ rows: external_exports.number().int().nonnegative() }).nullable();
|
|
16077
16103
|
var RelocatableMediaCountInputSchema = external_exports.object({
|
|
16078
16104
|
toLocationId: external_exports.string().min(1),
|
|
16105
|
+
/** Restrict the count to one source; omitted / `'*'` = every non-target row. */
|
|
16106
|
+
fromLocationId: external_exports.string().optional(),
|
|
16079
16107
|
/** Omitted = `move`. */
|
|
16080
16108
|
mode: MediaRelocateModeSchema.optional()
|
|
16081
16109
|
});
|
|
16110
|
+
var StorageCleanupPhaseSchema = external_exports.enum([
|
|
16111
|
+
"orphans",
|
|
16112
|
+
"debug-media",
|
|
16113
|
+
"ghost-ledger",
|
|
16114
|
+
"done",
|
|
16115
|
+
"failed",
|
|
16116
|
+
"cancelled"
|
|
16117
|
+
]);
|
|
16118
|
+
var StorageCleanupInputSchema = external_exports.object({
|
|
16119
|
+
/** Also walk motion stills / track filmstrips. Off by default. */
|
|
16120
|
+
includeDebugMedia: external_exports.boolean().optional()
|
|
16121
|
+
});
|
|
16122
|
+
var StorageCleanupJobSchema = external_exports.object({
|
|
16123
|
+
jobId: external_exports.string(),
|
|
16124
|
+
phase: StorageCleanupPhaseSchema,
|
|
16125
|
+
includeDebugMedia: external_exports.boolean(),
|
|
16126
|
+
orphansReclaimed: external_exports.number().int().nonnegative(),
|
|
16127
|
+
orphanBytesReclaimed: external_exports.number().int().nonnegative(),
|
|
16128
|
+
debugMediaReclaimed: external_exports.number().int().nonnegative(),
|
|
16129
|
+
debugMediaBytesReclaimed: external_exports.number().int().nonnegative(),
|
|
16130
|
+
ghostsForgotten: external_exports.number().int().nonnegative(),
|
|
16131
|
+
ghostBytesForgotten: external_exports.number().int().nonnegative(),
|
|
16132
|
+
/** Short operator-facing line: current collection, pass, or location. */
|
|
16133
|
+
detail: external_exports.string().nullable(),
|
|
16134
|
+
cancelRequested: external_exports.boolean(),
|
|
16135
|
+
startedAt: external_exports.number(),
|
|
16136
|
+
updatedAt: external_exports.number(),
|
|
16137
|
+
finishedAt: external_exports.number().nullable(),
|
|
16138
|
+
error: external_exports.string().nullable()
|
|
16139
|
+
});
|
|
16140
|
+
var StorageCleanupStatusInputSchema = external_exports.object({ jobId: external_exports.string().optional() });
|
|
16082
16141
|
var StorageLocationTypeSchema = external_exports.string().regex(/^[a-z][a-zA-Z0-9-]*$/);
|
|
16083
16142
|
var StorageLocationSchema = external_exports.object({
|
|
16084
16143
|
id: external_exports.string().regex(/^[a-z][a-zA-Z0-9-]*:[a-zA-Z0-9-]+$/),
|
|
@@ -29793,7 +29852,23 @@ var storageMigrationCapability = {
|
|
|
29793
29852
|
drain: method(StorageMigrationDrainInputSchema, external_exports.object({ jobId: external_exports.string() }), {
|
|
29794
29853
|
kind: "mutation",
|
|
29795
29854
|
auth: "admin"
|
|
29796
|
-
})
|
|
29855
|
+
}),
|
|
29856
|
+
/**
|
|
29857
|
+
* One operator cleanup of leftover analytics (DB + blobs) and ghost
|
|
29858
|
+
* ledger rows on frozen footage locations. Optional debug-media sweep.
|
|
29859
|
+
* Returns immediately; poll {@link cleanupStatus}.
|
|
29860
|
+
*/
|
|
29861
|
+
cleanupStart: method(StorageCleanupInputSchema, external_exports.object({ jobId: external_exports.string() }), {
|
|
29862
|
+
kind: "mutation",
|
|
29863
|
+
auth: "admin"
|
|
29864
|
+
}),
|
|
29865
|
+
cleanupStatus: method(StorageCleanupStatusInputSchema, StorageCleanupJobSchema.nullable(), { auth: "admin" }),
|
|
29866
|
+
cleanupCancel: method(external_exports.object({ jobId: external_exports.string() }), external_exports.object({ cancelled: external_exports.boolean() }), {
|
|
29867
|
+
kind: "mutation",
|
|
29868
|
+
auth: "admin"
|
|
29869
|
+
}),
|
|
29870
|
+
/** Recent finished migration jobs, newest first. The live job is `status`. */
|
|
29871
|
+
history: method(external_exports.object({}), external_exports.array(StorageMigrationJobSchema).readonly(), { auth: "admin" })
|
|
29797
29872
|
}
|
|
29798
29873
|
};
|
|
29799
29874
|
var ProviderInfoSchema = external_exports.discriminatedUnion("shouldSaveDiskSpace", [external_exports.object({
|
|
@@ -36585,6 +36660,26 @@ var RecordingRebalanceInputSchema = external_exports.object({
|
|
|
36585
36660
|
/** Ignore piles smaller than this (default 1 GB). */
|
|
36586
36661
|
minMoveGb: external_exports.number().min(0).optional()
|
|
36587
36662
|
});
|
|
36663
|
+
var RecordingDevicePlacementSchema = external_exports.object({
|
|
36664
|
+
deviceId: external_exports.number().int(),
|
|
36665
|
+
profile: external_exports.string(),
|
|
36666
|
+
locationId: external_exports.string()
|
|
36667
|
+
});
|
|
36668
|
+
var RecordingDevicePinSchema = external_exports.object({
|
|
36669
|
+
deviceId: external_exports.number().int(),
|
|
36670
|
+
/** Recordings-class location this camera is pinned to. */
|
|
36671
|
+
locationId: external_exports.string()
|
|
36672
|
+
});
|
|
36673
|
+
var RecordingPlacementViewSchema = external_exports.object({
|
|
36674
|
+
assignments: external_exports.array(RecordingDevicePlacementSchema),
|
|
36675
|
+
pins: external_exports.array(RecordingDevicePinSchema),
|
|
36676
|
+
defaultLocations: external_exports.record(external_exports.string(), external_exports.string())
|
|
36677
|
+
});
|
|
36678
|
+
var RecordingSetDevicePlacementInputSchema = external_exports.object({
|
|
36679
|
+
deviceId: external_exports.number().int(),
|
|
36680
|
+
/** `null` = Auto. Otherwise a `recordings:*` location id. */
|
|
36681
|
+
locationId: external_exports.string().nullable()
|
|
36682
|
+
});
|
|
36588
36683
|
var LocateSegmentResultSchema = external_exports.discriminatedUnion("kind", [external_exports.object({
|
|
36589
36684
|
kind: external_exports.literal("segment"),
|
|
36590
36685
|
startMs: external_exports.number(),
|
|
@@ -36903,6 +36998,22 @@ var recordingCapability = {
|
|
|
36903
36998
|
startStorageRebalance: method(RecordingRebalanceInputSchema, RecordingRebalancePlanSchema, {
|
|
36904
36999
|
kind: "mutation",
|
|
36905
37000
|
auth: "admin"
|
|
37001
|
+
}),
|
|
37002
|
+
/**
|
|
37003
|
+
* The placement plan in force plus operator pins. Drives the Locations
|
|
37004
|
+
* admin page: Auto vs a named recordings location, per camera.
|
|
37005
|
+
*/
|
|
37006
|
+
getPlacement: method(external_exports.object({}), RecordingPlacementViewSchema, {
|
|
37007
|
+
kind: "query",
|
|
37008
|
+
auth: "admin"
|
|
37009
|
+
}),
|
|
37010
|
+
/**
|
|
37011
|
+
* Pin a camera to a recordings location, or clear the pin (Auto). High and
|
|
37012
|
+
* mid follow the pin; low stays with the recordingsLow planner.
|
|
37013
|
+
*/
|
|
37014
|
+
setDevicePlacement: method(RecordingSetDevicePlacementInputSchema, external_exports.object({ ok: external_exports.literal(true) }), {
|
|
37015
|
+
kind: "mutation",
|
|
37016
|
+
auth: "admin"
|
|
36906
37017
|
})
|
|
36907
37018
|
}
|
|
36908
37019
|
};
|
|
@@ -43360,6 +43471,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43360
43471
|
addonId: null,
|
|
43361
43472
|
access: "view"
|
|
43362
43473
|
},
|
|
43474
|
+
"recording.getPlacement": {
|
|
43475
|
+
capName: "recording",
|
|
43476
|
+
capScope: "system",
|
|
43477
|
+
addonId: null,
|
|
43478
|
+
access: "view"
|
|
43479
|
+
},
|
|
43363
43480
|
"recording.getPlaybackManifest": {
|
|
43364
43481
|
capName: "recording",
|
|
43365
43482
|
capScope: "system",
|
|
@@ -43486,6 +43603,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43486
43603
|
addonId: null,
|
|
43487
43604
|
access: "create"
|
|
43488
43605
|
},
|
|
43606
|
+
"recording.setDevicePlacement": {
|
|
43607
|
+
capName: "recording",
|
|
43608
|
+
capScope: "system",
|
|
43609
|
+
addonId: null,
|
|
43610
|
+
access: "create"
|
|
43611
|
+
},
|
|
43489
43612
|
"recording.startStorageMigrationMove": {
|
|
43490
43613
|
capName: "recording",
|
|
43491
43614
|
capScope: "system",
|
|
@@ -43930,12 +44053,36 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
43930
44053
|
addonId: null,
|
|
43931
44054
|
access: "create"
|
|
43932
44055
|
},
|
|
44056
|
+
"storageMigration.cleanupCancel": {
|
|
44057
|
+
capName: "storage-migration",
|
|
44058
|
+
capScope: "system",
|
|
44059
|
+
addonId: null,
|
|
44060
|
+
access: "create"
|
|
44061
|
+
},
|
|
44062
|
+
"storageMigration.cleanupStart": {
|
|
44063
|
+
capName: "storage-migration",
|
|
44064
|
+
capScope: "system",
|
|
44065
|
+
addonId: null,
|
|
44066
|
+
access: "create"
|
|
44067
|
+
},
|
|
44068
|
+
"storageMigration.cleanupStatus": {
|
|
44069
|
+
capName: "storage-migration",
|
|
44070
|
+
capScope: "system",
|
|
44071
|
+
addonId: null,
|
|
44072
|
+
access: "view"
|
|
44073
|
+
},
|
|
43933
44074
|
"storageMigration.drain": {
|
|
43934
44075
|
capName: "storage-migration",
|
|
43935
44076
|
capScope: "system",
|
|
43936
44077
|
addonId: null,
|
|
43937
44078
|
access: "create"
|
|
43938
44079
|
},
|
|
44080
|
+
"storageMigration.history": {
|
|
44081
|
+
capName: "storage-migration",
|
|
44082
|
+
capScope: "system",
|
|
44083
|
+
addonId: null,
|
|
44084
|
+
access: "view"
|
|
44085
|
+
},
|
|
43939
44086
|
"storageMigration.movers": {
|
|
43940
44087
|
capName: "storage-migration",
|
|
43941
44088
|
capScope: "system",
|
|
@@ -46422,6 +46569,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
46422
46569
|
form: "single",
|
|
46423
46570
|
optional: false
|
|
46424
46571
|
}],
|
|
46572
|
+
"recording.setDevicePlacement": [{
|
|
46573
|
+
name: "deviceId",
|
|
46574
|
+
form: "single",
|
|
46575
|
+
optional: false
|
|
46576
|
+
}],
|
|
46425
46577
|
"recording.startStorageMigrationMove": [{
|
|
46426
46578
|
name: "deviceId",
|
|
46427
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-TAXPJ53T.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-4QRZCB6O.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-4QRZCB6O.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-TJE5IRDV.js");
|
|
1134
1134
|
if (presetNamespace) {
|
|
1135
1135
|
const spinner4 = clack.spinner();
|
|
1136
1136
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|