@camstack/addon-smtp-nodemailer 1.2.11 → 1.2.12
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/smtp.addon.js +316 -31
- package/dist/smtp.addon.mjs +316 -31
- package/package.json +1 -1
package/dist/smtp.addon.js
CHANGED
|
@@ -7572,12 +7572,11 @@ var RecordingConfigSchema = object({
|
|
|
7572
7572
|
/**
|
|
7573
7573
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7574
7574
|
*
|
|
7575
|
-
* One shape shared by the recorder
|
|
7576
|
-
*
|
|
7577
|
-
*
|
|
7578
|
-
*
|
|
7579
|
-
*
|
|
7580
|
-
* row on the owning addon's surface.
|
|
7575
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7576
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7577
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7578
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7579
|
+
* addon surface.
|
|
7581
7580
|
*/
|
|
7582
7581
|
var RelocateJobStateSchema = _enum([
|
|
7583
7582
|
"running",
|
|
@@ -7604,19 +7603,100 @@ var RelocateJobSchema = object({
|
|
|
7604
7603
|
finishedAt: number().nullable(),
|
|
7605
7604
|
error: string().nullable()
|
|
7606
7605
|
});
|
|
7606
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7607
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7608
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7607
7609
|
var RelocateFootageInputSchema = object({
|
|
7608
|
-
deviceId: number().optional(),
|
|
7609
7610
|
fromLocationId: string(),
|
|
7610
7611
|
toLocationId: string(),
|
|
7611
7612
|
entities: array(_enum(["segments"])).optional(),
|
|
7613
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7614
|
+
* pre-orchestration compatibility path. */
|
|
7615
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7612
7616
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7613
7617
|
* never allowed to starve live writers. */
|
|
7614
7618
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7615
7619
|
});
|
|
7616
|
-
|
|
7617
|
-
|
|
7620
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7621
|
+
* from persistent recording settings: a migration never changes
|
|
7622
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7623
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7624
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7625
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7618
7626
|
toLocationId: string(),
|
|
7619
7627
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7628
|
+
}).extend({ leaseId: string().min(1) });
|
|
7629
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7630
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7631
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7632
|
+
var StorageMigrationClassSchema = _enum([
|
|
7633
|
+
"recordings",
|
|
7634
|
+
"recordingsLow",
|
|
7635
|
+
"eventMedia"
|
|
7636
|
+
]);
|
|
7637
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7638
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7639
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7640
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7641
|
+
recordings: string().min(1).optional(),
|
|
7642
|
+
recordingsLow: string().min(1).optional(),
|
|
7643
|
+
eventMedia: string().min(1).optional()
|
|
7644
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7645
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7646
|
+
var StorageMigrationInputSchema = object({
|
|
7647
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7648
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7649
|
+
});
|
|
7650
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7651
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7652
|
+
* verified. */
|
|
7653
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7654
|
+
"planning",
|
|
7655
|
+
"pausing",
|
|
7656
|
+
"moving",
|
|
7657
|
+
"verifying",
|
|
7658
|
+
"repointing",
|
|
7659
|
+
"refreshing",
|
|
7660
|
+
"resuming",
|
|
7661
|
+
"done",
|
|
7662
|
+
"failed",
|
|
7663
|
+
"cancelled"
|
|
7664
|
+
]);
|
|
7665
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7666
|
+
"pipeline",
|
|
7667
|
+
"recorder",
|
|
7668
|
+
"analytics"
|
|
7669
|
+
]);
|
|
7670
|
+
var StorageMigrationMoveSchema = object({
|
|
7671
|
+
storageClass: StorageMigrationClassSchema,
|
|
7672
|
+
fromLocationId: string(),
|
|
7673
|
+
toLocationId: string(),
|
|
7674
|
+
moverJobId: string().nullable(),
|
|
7675
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7676
|
+
error: string().nullable()
|
|
7677
|
+
});
|
|
7678
|
+
var StorageMigrationJobSchema = object({
|
|
7679
|
+
jobId: string(),
|
|
7680
|
+
phase: StorageMigrationPhaseSchema,
|
|
7681
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7682
|
+
throttleMbps: number(),
|
|
7683
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7684
|
+
pauseLeaseId: string().nullable(),
|
|
7685
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7686
|
+
repointed: boolean(),
|
|
7687
|
+
cancelRequested: boolean(),
|
|
7688
|
+
startedAt: number(),
|
|
7689
|
+
updatedAt: number(),
|
|
7690
|
+
finishedAt: number().nullable(),
|
|
7691
|
+
error: string().nullable()
|
|
7692
|
+
});
|
|
7693
|
+
var StorageMigrationPlanSchema = object({
|
|
7694
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7695
|
+
moves: array(object({
|
|
7696
|
+
storageClass: StorageMigrationClassSchema,
|
|
7697
|
+
fromLocationId: string(),
|
|
7698
|
+
toLocationId: string()
|
|
7699
|
+
}))
|
|
7620
7700
|
});
|
|
7621
7701
|
/**
|
|
7622
7702
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15992,13 +16072,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15992
16072
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15993
16073
|
kind: "mutation",
|
|
15994
16074
|
auth: "admin"
|
|
15995
|
-
}), method(
|
|
16075
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15996
16076
|
kind: "mutation",
|
|
15997
16077
|
auth: "admin"
|
|
15998
|
-
}), method(object({
|
|
15999
|
-
kind: "
|
|
16078
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16079
|
+
kind: "mutation",
|
|
16080
|
+
auth: "admin"
|
|
16081
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16082
|
+
kind: "mutation",
|
|
16083
|
+
auth: "admin"
|
|
16084
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16085
|
+
kind: "mutation",
|
|
16000
16086
|
auth: "admin"
|
|
16001
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16087
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16002
16088
|
kind: "mutation",
|
|
16003
16089
|
auth: "admin"
|
|
16004
16090
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17495,7 +17581,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17495
17581
|
reachable: boolean(),
|
|
17496
17582
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17497
17583
|
});
|
|
17498
|
-
method(object({
|
|
17584
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17585
|
+
kind: "mutation",
|
|
17586
|
+
auth: "admin"
|
|
17587
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17588
|
+
kind: "mutation",
|
|
17589
|
+
auth: "admin"
|
|
17590
|
+
}), method(object({
|
|
17499
17591
|
deviceId: number(),
|
|
17500
17592
|
agentNodeId: string()
|
|
17501
17593
|
}), object({ success: literal(true) }), {
|
|
@@ -18182,6 +18274,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18182
18274
|
locationId: string(),
|
|
18183
18275
|
targetBytes: number().int().positive()
|
|
18184
18276
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18277
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18278
|
+
kind: "mutation",
|
|
18279
|
+
auth: "admin"
|
|
18280
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18281
|
+
kind: "mutation",
|
|
18282
|
+
auth: "admin"
|
|
18283
|
+
});
|
|
18185
18284
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18186
18285
|
providerId: string().min(1),
|
|
18187
18286
|
displayName: string().min(1),
|
|
@@ -18285,6 +18384,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18285
18384
|
label: string(),
|
|
18286
18385
|
description: string().optional()
|
|
18287
18386
|
});
|
|
18387
|
+
/**
|
|
18388
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18389
|
+
* an instance declares a camera.
|
|
18390
|
+
*/
|
|
18391
|
+
var TerminalInstanceInfoSchema = object({
|
|
18392
|
+
instanceId: string(),
|
|
18393
|
+
cameraStableId: string(),
|
|
18394
|
+
nodeId: string(),
|
|
18395
|
+
profileId: string(),
|
|
18396
|
+
profileLabel: string(),
|
|
18397
|
+
name: string(),
|
|
18398
|
+
enabled: boolean()
|
|
18399
|
+
});
|
|
18400
|
+
var TerminalLegacyCameraSchema = object({
|
|
18401
|
+
stableId: string(),
|
|
18402
|
+
nodeId: string(),
|
|
18403
|
+
profileId: string(),
|
|
18404
|
+
profileLabel: string(),
|
|
18405
|
+
name: string(),
|
|
18406
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18407
|
+
adoptable: boolean()
|
|
18408
|
+
});
|
|
18288
18409
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18289
18410
|
seq: number().int().positive(),
|
|
18290
18411
|
kind: literal("data"),
|
|
@@ -18301,7 +18422,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18301
18422
|
snapshot: string().optional(),
|
|
18302
18423
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18303
18424
|
});
|
|
18304
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18425
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18426
|
+
targetNodeId: string().min(1),
|
|
18427
|
+
profileId: string().min(1),
|
|
18428
|
+
name: string().trim().min(1).max(160).optional()
|
|
18429
|
+
}), TerminalInstanceInfoSchema, {
|
|
18430
|
+
kind: "mutation",
|
|
18431
|
+
auth: "admin"
|
|
18432
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18433
|
+
kind: "mutation",
|
|
18434
|
+
auth: "admin"
|
|
18435
|
+
}), method(object({
|
|
18436
|
+
instanceId: string().min(1),
|
|
18437
|
+
enabled: boolean()
|
|
18438
|
+
}), TerminalInstanceInfoSchema, {
|
|
18439
|
+
kind: "mutation",
|
|
18440
|
+
auth: "admin"
|
|
18441
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18442
|
+
stableId: string().min(1),
|
|
18443
|
+
name: string().trim().min(1).max(160).optional()
|
|
18444
|
+
}), TerminalInstanceInfoSchema, {
|
|
18445
|
+
kind: "mutation",
|
|
18446
|
+
auth: "admin"
|
|
18447
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18305
18448
|
profileId: string(),
|
|
18306
18449
|
cols: number().int().positive(),
|
|
18307
18450
|
rows: number().int().positive()
|
|
@@ -18318,7 +18461,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18318
18461
|
}), method(object({
|
|
18319
18462
|
sessionId: string(),
|
|
18320
18463
|
afterSeq: number().int().nonnegative(),
|
|
18321
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18464
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18465
|
+
/**
|
|
18466
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18467
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18468
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18469
|
+
*/
|
|
18470
|
+
waitForOutput: boolean().optional()
|
|
18322
18471
|
}), TerminalOutputBatchSchema, {
|
|
18323
18472
|
kind: "mutation",
|
|
18324
18473
|
auth: "admin",
|
|
@@ -20259,6 +20408,7 @@ var FaceInfoSchema = object({
|
|
|
20259
20408
|
var FaceFilterEnum = _enum([
|
|
20260
20409
|
"unassigned",
|
|
20261
20410
|
"recognized",
|
|
20411
|
+
"identified",
|
|
20262
20412
|
"all"
|
|
20263
20413
|
]);
|
|
20264
20414
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20287,6 +20437,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20287
20437
|
kind: "mutation",
|
|
20288
20438
|
auth: "admin"
|
|
20289
20439
|
}), method(object({
|
|
20440
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20441
|
+
deviceId: number().int().optional(),
|
|
20290
20442
|
limit: number().int().positive().optional(),
|
|
20291
20443
|
filter: FaceFilterEnum.optional(),
|
|
20292
20444
|
/**
|
|
@@ -22052,6 +22204,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22052
22204
|
capName: string().min(1).max(64),
|
|
22053
22205
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22054
22206
|
valuePath: string().min(1).max(64)
|
|
22207
|
+
}),
|
|
22208
|
+
object({
|
|
22209
|
+
kind: literal("latest-recognition"),
|
|
22210
|
+
recognition: _enum(["person", "plate"])
|
|
22055
22211
|
})
|
|
22056
22212
|
]);
|
|
22057
22213
|
var OsdSlotBindingSchema = object({
|
|
@@ -22157,6 +22313,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22157
22313
|
}), object({ success: literal(true) }), {
|
|
22158
22314
|
kind: "mutation",
|
|
22159
22315
|
auth: "admin"
|
|
22316
|
+
}), method(object({
|
|
22317
|
+
sourceDeviceId: number().int(),
|
|
22318
|
+
targetDeviceId: number().int()
|
|
22319
|
+
}), object({
|
|
22320
|
+
copied: number().int().nonnegative(),
|
|
22321
|
+
skipped: number().int().nonnegative()
|
|
22322
|
+
}), {
|
|
22323
|
+
kind: "mutation",
|
|
22324
|
+
auth: "admin"
|
|
22160
22325
|
}), method(object({
|
|
22161
22326
|
deviceId: number().int(),
|
|
22162
22327
|
slotId: string().min(1),
|
|
@@ -23042,13 +23207,19 @@ method(object({
|
|
|
23042
23207
|
}), {
|
|
23043
23208
|
kind: "mutation",
|
|
23044
23209
|
auth: "admin"
|
|
23045
|
-
}), method(
|
|
23210
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23046
23211
|
kind: "mutation",
|
|
23047
23212
|
auth: "admin"
|
|
23048
|
-
}), method(object({
|
|
23049
|
-
kind: "
|
|
23213
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23214
|
+
kind: "mutation",
|
|
23050
23215
|
auth: "admin"
|
|
23051
|
-
}), method(
|
|
23216
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23217
|
+
kind: "mutation",
|
|
23218
|
+
auth: "admin"
|
|
23219
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23220
|
+
kind: "mutation",
|
|
23221
|
+
auth: "admin"
|
|
23222
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23052
23223
|
kind: "mutation",
|
|
23053
23224
|
auth: "admin"
|
|
23054
23225
|
});
|
|
@@ -27170,6 +27341,12 @@ Object.freeze({
|
|
|
27170
27341
|
addonId: null,
|
|
27171
27342
|
access: "delete"
|
|
27172
27343
|
},
|
|
27344
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27345
|
+
capName: "osd-manager",
|
|
27346
|
+
capScope: "system",
|
|
27347
|
+
addonId: null,
|
|
27348
|
+
access: "create"
|
|
27349
|
+
},
|
|
27173
27350
|
"osdManager.getConditionSupport": {
|
|
27174
27351
|
capName: "osd-manager",
|
|
27175
27352
|
capScope: "system",
|
|
@@ -27266,7 +27443,7 @@ Object.freeze({
|
|
|
27266
27443
|
addonId: null,
|
|
27267
27444
|
access: "create"
|
|
27268
27445
|
},
|
|
27269
|
-
"pipelineAnalytics.
|
|
27446
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27270
27447
|
capName: "pipeline-analytics",
|
|
27271
27448
|
capScope: "device",
|
|
27272
27449
|
addonId: null,
|
|
@@ -27338,12 +27515,6 @@ Object.freeze({
|
|
|
27338
27515
|
addonId: null,
|
|
27339
27516
|
access: "view"
|
|
27340
27517
|
},
|
|
27341
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27342
|
-
capName: "pipeline-analytics",
|
|
27343
|
-
capScope: "device",
|
|
27344
|
-
addonId: null,
|
|
27345
|
-
access: "view"
|
|
27346
|
-
},
|
|
27347
27518
|
"pipelineAnalytics.getMotionEvents": {
|
|
27348
27519
|
capName: "pipeline-analytics",
|
|
27349
27520
|
capScope: "device",
|
|
@@ -27380,6 +27551,12 @@ Object.freeze({
|
|
|
27380
27551
|
addonId: null,
|
|
27381
27552
|
access: "view"
|
|
27382
27553
|
},
|
|
27554
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27555
|
+
capName: "pipeline-analytics",
|
|
27556
|
+
capScope: "device",
|
|
27557
|
+
addonId: null,
|
|
27558
|
+
access: "view"
|
|
27559
|
+
},
|
|
27383
27560
|
"pipelineAnalytics.getTrack": {
|
|
27384
27561
|
capName: "pipeline-analytics",
|
|
27385
27562
|
capScope: "device",
|
|
@@ -27458,6 +27635,12 @@ Object.freeze({
|
|
|
27458
27635
|
addonId: null,
|
|
27459
27636
|
access: "view"
|
|
27460
27637
|
},
|
|
27638
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27639
|
+
capName: "pipeline-analytics",
|
|
27640
|
+
capScope: "device",
|
|
27641
|
+
addonId: null,
|
|
27642
|
+
access: "create"
|
|
27643
|
+
},
|
|
27461
27644
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27462
27645
|
capName: "pipeline-analytics",
|
|
27463
27646
|
capScope: "device",
|
|
@@ -27488,7 +27671,7 @@ Object.freeze({
|
|
|
27488
27671
|
addonId: null,
|
|
27489
27672
|
access: "create"
|
|
27490
27673
|
},
|
|
27491
|
-
"pipelineAnalytics.
|
|
27674
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27492
27675
|
capName: "pipeline-analytics",
|
|
27493
27676
|
capScope: "device",
|
|
27494
27677
|
addonId: null,
|
|
@@ -27500,6 +27683,12 @@ Object.freeze({
|
|
|
27500
27683
|
addonId: null,
|
|
27501
27684
|
access: "create"
|
|
27502
27685
|
},
|
|
27686
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27687
|
+
capName: "pipeline-analytics",
|
|
27688
|
+
capScope: "device",
|
|
27689
|
+
addonId: null,
|
|
27690
|
+
access: "create"
|
|
27691
|
+
},
|
|
27503
27692
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27504
27693
|
capName: "pipeline-analytics",
|
|
27505
27694
|
capScope: "device",
|
|
@@ -27524,6 +27713,12 @@ Object.freeze({
|
|
|
27524
27713
|
addonId: null,
|
|
27525
27714
|
access: "create"
|
|
27526
27715
|
},
|
|
27716
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27717
|
+
capName: "pipeline-analytics",
|
|
27718
|
+
capScope: "device",
|
|
27719
|
+
addonId: null,
|
|
27720
|
+
access: "create"
|
|
27721
|
+
},
|
|
27527
27722
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27528
27723
|
capName: "pipeline-analytics",
|
|
27529
27724
|
capScope: "device",
|
|
@@ -27890,6 +28085,12 @@ Object.freeze({
|
|
|
27890
28085
|
addonId: null,
|
|
27891
28086
|
access: "view"
|
|
27892
28087
|
},
|
|
28088
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28089
|
+
capName: "pipeline-orchestrator",
|
|
28090
|
+
capScope: "system",
|
|
28091
|
+
addonId: null,
|
|
28092
|
+
access: "create"
|
|
28093
|
+
},
|
|
27893
28094
|
"pipelineOrchestrator.rebalance": {
|
|
27894
28095
|
capName: "pipeline-orchestrator",
|
|
27895
28096
|
capScope: "system",
|
|
@@ -27914,6 +28115,12 @@ Object.freeze({
|
|
|
27914
28115
|
addonId: null,
|
|
27915
28116
|
access: "view"
|
|
27916
28117
|
},
|
|
28118
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28119
|
+
capName: "pipeline-orchestrator",
|
|
28120
|
+
capScope: "system",
|
|
28121
|
+
addonId: null,
|
|
28122
|
+
access: "create"
|
|
28123
|
+
},
|
|
27917
28124
|
"pipelineOrchestrator.saveTemplate": {
|
|
27918
28125
|
capName: "pipeline-orchestrator",
|
|
27919
28126
|
capScope: "system",
|
|
@@ -28310,7 +28517,7 @@ Object.freeze({
|
|
|
28310
28517
|
addonId: null,
|
|
28311
28518
|
access: "create"
|
|
28312
28519
|
},
|
|
28313
|
-
"recording.
|
|
28520
|
+
"recording.cancelStorageMigrationMove": {
|
|
28314
28521
|
capName: "recording",
|
|
28315
28522
|
capScope: "system",
|
|
28316
28523
|
addonId: null,
|
|
@@ -28346,7 +28553,7 @@ Object.freeze({
|
|
|
28346
28553
|
addonId: null,
|
|
28347
28554
|
access: "view"
|
|
28348
28555
|
},
|
|
28349
|
-
"recording.
|
|
28556
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28350
28557
|
capName: "recording",
|
|
28351
28558
|
capScope: "system",
|
|
28352
28559
|
addonId: null,
|
|
@@ -28370,6 +28577,12 @@ Object.freeze({
|
|
|
28370
28577
|
addonId: null,
|
|
28371
28578
|
access: "view"
|
|
28372
28579
|
},
|
|
28580
|
+
"recording.pauseForStorageMigration": {
|
|
28581
|
+
capName: "recording",
|
|
28582
|
+
capScope: "system",
|
|
28583
|
+
addonId: null,
|
|
28584
|
+
access: "create"
|
|
28585
|
+
},
|
|
28373
28586
|
"recording.pruneFootage": {
|
|
28374
28587
|
capName: "recording",
|
|
28375
28588
|
capScope: "system",
|
|
@@ -28388,7 +28601,7 @@ Object.freeze({
|
|
|
28388
28601
|
addonId: null,
|
|
28389
28602
|
access: "view"
|
|
28390
28603
|
},
|
|
28391
|
-
"recording.
|
|
28604
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28392
28605
|
capName: "recording",
|
|
28393
28606
|
capScope: "system",
|
|
28394
28607
|
addonId: null,
|
|
@@ -28412,12 +28625,24 @@ Object.freeze({
|
|
|
28412
28625
|
addonId: null,
|
|
28413
28626
|
access: "create"
|
|
28414
28627
|
},
|
|
28628
|
+
"recording.resumeForStorageMigration": {
|
|
28629
|
+
capName: "recording",
|
|
28630
|
+
capScope: "system",
|
|
28631
|
+
addonId: null,
|
|
28632
|
+
access: "create"
|
|
28633
|
+
},
|
|
28415
28634
|
"recording.setDeviceConfig": {
|
|
28416
28635
|
capName: "recording",
|
|
28417
28636
|
capScope: "system",
|
|
28418
28637
|
addonId: null,
|
|
28419
28638
|
access: "create"
|
|
28420
28639
|
},
|
|
28640
|
+
"recording.startStorageMigrationMove": {
|
|
28641
|
+
capName: "recording",
|
|
28642
|
+
capScope: "system",
|
|
28643
|
+
addonId: null,
|
|
28644
|
+
access: "create"
|
|
28645
|
+
},
|
|
28421
28646
|
"recordingExport.cancelExport": {
|
|
28422
28647
|
capName: "recordingExport",
|
|
28423
28648
|
capScope: "system",
|
|
@@ -28808,6 +29033,30 @@ Object.freeze({
|
|
|
28808
29033
|
addonId: null,
|
|
28809
29034
|
access: "view"
|
|
28810
29035
|
},
|
|
29036
|
+
"storageMigration.cancel": {
|
|
29037
|
+
capName: "storage-migration",
|
|
29038
|
+
capScope: "system",
|
|
29039
|
+
addonId: null,
|
|
29040
|
+
access: "create"
|
|
29041
|
+
},
|
|
29042
|
+
"storageMigration.plan": {
|
|
29043
|
+
capName: "storage-migration",
|
|
29044
|
+
capScope: "system",
|
|
29045
|
+
addonId: null,
|
|
29046
|
+
access: "view"
|
|
29047
|
+
},
|
|
29048
|
+
"storageMigration.start": {
|
|
29049
|
+
capName: "storage-migration",
|
|
29050
|
+
capScope: "system",
|
|
29051
|
+
addonId: null,
|
|
29052
|
+
access: "create"
|
|
29053
|
+
},
|
|
29054
|
+
"storageMigration.status": {
|
|
29055
|
+
capName: "storage-migration",
|
|
29056
|
+
capScope: "system",
|
|
29057
|
+
addonId: null,
|
|
29058
|
+
access: "view"
|
|
29059
|
+
},
|
|
28811
29060
|
"storageProvider.abortUpload": {
|
|
28812
29061
|
capName: "storage-provider",
|
|
28813
29062
|
capScope: "system",
|
|
@@ -29186,12 +29435,42 @@ Object.freeze({
|
|
|
29186
29435
|
addonId: null,
|
|
29187
29436
|
access: "create"
|
|
29188
29437
|
},
|
|
29438
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29439
|
+
capName: "terminal-session",
|
|
29440
|
+
capScope: "system",
|
|
29441
|
+
addonId: null,
|
|
29442
|
+
access: "create"
|
|
29443
|
+
},
|
|
29189
29444
|
"terminalSession.close": {
|
|
29190
29445
|
capName: "terminal-session",
|
|
29191
29446
|
capScope: "system",
|
|
29192
29447
|
addonId: null,
|
|
29193
29448
|
access: "create"
|
|
29194
29449
|
},
|
|
29450
|
+
"terminalSession.createInstance": {
|
|
29451
|
+
capName: "terminal-session",
|
|
29452
|
+
capScope: "system",
|
|
29453
|
+
addonId: null,
|
|
29454
|
+
access: "create"
|
|
29455
|
+
},
|
|
29456
|
+
"terminalSession.deleteInstance": {
|
|
29457
|
+
capName: "terminal-session",
|
|
29458
|
+
capScope: "system",
|
|
29459
|
+
addonId: null,
|
|
29460
|
+
access: "delete"
|
|
29461
|
+
},
|
|
29462
|
+
"terminalSession.listInstances": {
|
|
29463
|
+
capName: "terminal-session",
|
|
29464
|
+
capScope: "system",
|
|
29465
|
+
addonId: null,
|
|
29466
|
+
access: "view"
|
|
29467
|
+
},
|
|
29468
|
+
"terminalSession.listLegacyCameras": {
|
|
29469
|
+
capName: "terminal-session",
|
|
29470
|
+
capScope: "system",
|
|
29471
|
+
addonId: null,
|
|
29472
|
+
access: "view"
|
|
29473
|
+
},
|
|
29195
29474
|
"terminalSession.listProfiles": {
|
|
29196
29475
|
capName: "terminal-session",
|
|
29197
29476
|
capScope: "system",
|
|
@@ -29222,6 +29501,12 @@ Object.freeze({
|
|
|
29222
29501
|
addonId: null,
|
|
29223
29502
|
access: "create"
|
|
29224
29503
|
},
|
|
29504
|
+
"terminalSession.setInstanceEnabled": {
|
|
29505
|
+
capName: "terminal-session",
|
|
29506
|
+
capScope: "system",
|
|
29507
|
+
addonId: null,
|
|
29508
|
+
access: "create"
|
|
29509
|
+
},
|
|
29225
29510
|
"terminalSession.writeInput": {
|
|
29226
29511
|
capName: "terminal-session",
|
|
29227
29512
|
capScope: "system",
|
package/dist/smtp.addon.mjs
CHANGED
|
@@ -7570,12 +7570,11 @@ var RecordingConfigSchema = object({
|
|
|
7570
7570
|
/**
|
|
7571
7571
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7572
7572
|
*
|
|
7573
|
-
* One shape shared by the recorder
|
|
7574
|
-
*
|
|
7575
|
-
*
|
|
7576
|
-
*
|
|
7577
|
-
*
|
|
7578
|
-
* row on the owning addon's surface.
|
|
7573
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7574
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7575
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7576
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7577
|
+
* addon surface.
|
|
7579
7578
|
*/
|
|
7580
7579
|
var RelocateJobStateSchema = _enum([
|
|
7581
7580
|
"running",
|
|
@@ -7602,19 +7601,100 @@ var RelocateJobSchema = object({
|
|
|
7602
7601
|
finishedAt: number().nullable(),
|
|
7603
7602
|
error: string().nullable()
|
|
7604
7603
|
});
|
|
7604
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7605
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7606
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7605
7607
|
var RelocateFootageInputSchema = object({
|
|
7606
|
-
deviceId: number().optional(),
|
|
7607
7608
|
fromLocationId: string(),
|
|
7608
7609
|
toLocationId: string(),
|
|
7609
7610
|
entities: array(_enum(["segments"])).optional(),
|
|
7611
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7612
|
+
* pre-orchestration compatibility path. */
|
|
7613
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7610
7614
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7611
7615
|
* never allowed to starve live writers. */
|
|
7612
7616
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7613
7617
|
});
|
|
7614
|
-
|
|
7615
|
-
|
|
7618
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7619
|
+
* from persistent recording settings: a migration never changes
|
|
7620
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7621
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7622
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7623
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7616
7624
|
toLocationId: string(),
|
|
7617
7625
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7626
|
+
}).extend({ leaseId: string().min(1) });
|
|
7627
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7628
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7629
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7630
|
+
var StorageMigrationClassSchema = _enum([
|
|
7631
|
+
"recordings",
|
|
7632
|
+
"recordingsLow",
|
|
7633
|
+
"eventMedia"
|
|
7634
|
+
]);
|
|
7635
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7636
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7637
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7638
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7639
|
+
recordings: string().min(1).optional(),
|
|
7640
|
+
recordingsLow: string().min(1).optional(),
|
|
7641
|
+
eventMedia: string().min(1).optional()
|
|
7642
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7643
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7644
|
+
var StorageMigrationInputSchema = object({
|
|
7645
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7646
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7647
|
+
});
|
|
7648
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7649
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7650
|
+
* verified. */
|
|
7651
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7652
|
+
"planning",
|
|
7653
|
+
"pausing",
|
|
7654
|
+
"moving",
|
|
7655
|
+
"verifying",
|
|
7656
|
+
"repointing",
|
|
7657
|
+
"refreshing",
|
|
7658
|
+
"resuming",
|
|
7659
|
+
"done",
|
|
7660
|
+
"failed",
|
|
7661
|
+
"cancelled"
|
|
7662
|
+
]);
|
|
7663
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7664
|
+
"pipeline",
|
|
7665
|
+
"recorder",
|
|
7666
|
+
"analytics"
|
|
7667
|
+
]);
|
|
7668
|
+
var StorageMigrationMoveSchema = object({
|
|
7669
|
+
storageClass: StorageMigrationClassSchema,
|
|
7670
|
+
fromLocationId: string(),
|
|
7671
|
+
toLocationId: string(),
|
|
7672
|
+
moverJobId: string().nullable(),
|
|
7673
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7674
|
+
error: string().nullable()
|
|
7675
|
+
});
|
|
7676
|
+
var StorageMigrationJobSchema = object({
|
|
7677
|
+
jobId: string(),
|
|
7678
|
+
phase: StorageMigrationPhaseSchema,
|
|
7679
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7680
|
+
throttleMbps: number(),
|
|
7681
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7682
|
+
pauseLeaseId: string().nullable(),
|
|
7683
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7684
|
+
repointed: boolean(),
|
|
7685
|
+
cancelRequested: boolean(),
|
|
7686
|
+
startedAt: number(),
|
|
7687
|
+
updatedAt: number(),
|
|
7688
|
+
finishedAt: number().nullable(),
|
|
7689
|
+
error: string().nullable()
|
|
7690
|
+
});
|
|
7691
|
+
var StorageMigrationPlanSchema = object({
|
|
7692
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7693
|
+
moves: array(object({
|
|
7694
|
+
storageClass: StorageMigrationClassSchema,
|
|
7695
|
+
fromLocationId: string(),
|
|
7696
|
+
toLocationId: string()
|
|
7697
|
+
}))
|
|
7618
7698
|
});
|
|
7619
7699
|
/**
|
|
7620
7700
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15990,13 +16070,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15990
16070
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15991
16071
|
kind: "mutation",
|
|
15992
16072
|
auth: "admin"
|
|
15993
|
-
}), method(
|
|
16073
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15994
16074
|
kind: "mutation",
|
|
15995
16075
|
auth: "admin"
|
|
15996
|
-
}), method(object({
|
|
15997
|
-
kind: "
|
|
16076
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16077
|
+
kind: "mutation",
|
|
16078
|
+
auth: "admin"
|
|
16079
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16080
|
+
kind: "mutation",
|
|
16081
|
+
auth: "admin"
|
|
16082
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16083
|
+
kind: "mutation",
|
|
15998
16084
|
auth: "admin"
|
|
15999
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16085
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16000
16086
|
kind: "mutation",
|
|
16001
16087
|
auth: "admin"
|
|
16002
16088
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17493,7 +17579,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17493
17579
|
reachable: boolean(),
|
|
17494
17580
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17495
17581
|
});
|
|
17496
|
-
method(object({
|
|
17582
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17583
|
+
kind: "mutation",
|
|
17584
|
+
auth: "admin"
|
|
17585
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17586
|
+
kind: "mutation",
|
|
17587
|
+
auth: "admin"
|
|
17588
|
+
}), method(object({
|
|
17497
17589
|
deviceId: number(),
|
|
17498
17590
|
agentNodeId: string()
|
|
17499
17591
|
}), object({ success: literal(true) }), {
|
|
@@ -18180,6 +18272,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18180
18272
|
locationId: string(),
|
|
18181
18273
|
targetBytes: number().int().positive()
|
|
18182
18274
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18275
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18276
|
+
kind: "mutation",
|
|
18277
|
+
auth: "admin"
|
|
18278
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18279
|
+
kind: "mutation",
|
|
18280
|
+
auth: "admin"
|
|
18281
|
+
});
|
|
18183
18282
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18184
18283
|
providerId: string().min(1),
|
|
18185
18284
|
displayName: string().min(1),
|
|
@@ -18283,6 +18382,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18283
18382
|
label: string(),
|
|
18284
18383
|
description: string().optional()
|
|
18285
18384
|
});
|
|
18385
|
+
/**
|
|
18386
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18387
|
+
* an instance declares a camera.
|
|
18388
|
+
*/
|
|
18389
|
+
var TerminalInstanceInfoSchema = object({
|
|
18390
|
+
instanceId: string(),
|
|
18391
|
+
cameraStableId: string(),
|
|
18392
|
+
nodeId: string(),
|
|
18393
|
+
profileId: string(),
|
|
18394
|
+
profileLabel: string(),
|
|
18395
|
+
name: string(),
|
|
18396
|
+
enabled: boolean()
|
|
18397
|
+
});
|
|
18398
|
+
var TerminalLegacyCameraSchema = object({
|
|
18399
|
+
stableId: string(),
|
|
18400
|
+
nodeId: string(),
|
|
18401
|
+
profileId: string(),
|
|
18402
|
+
profileLabel: string(),
|
|
18403
|
+
name: string(),
|
|
18404
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18405
|
+
adoptable: boolean()
|
|
18406
|
+
});
|
|
18286
18407
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18287
18408
|
seq: number().int().positive(),
|
|
18288
18409
|
kind: literal("data"),
|
|
@@ -18299,7 +18420,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18299
18420
|
snapshot: string().optional(),
|
|
18300
18421
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18301
18422
|
});
|
|
18302
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18423
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18424
|
+
targetNodeId: string().min(1),
|
|
18425
|
+
profileId: string().min(1),
|
|
18426
|
+
name: string().trim().min(1).max(160).optional()
|
|
18427
|
+
}), TerminalInstanceInfoSchema, {
|
|
18428
|
+
kind: "mutation",
|
|
18429
|
+
auth: "admin"
|
|
18430
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18431
|
+
kind: "mutation",
|
|
18432
|
+
auth: "admin"
|
|
18433
|
+
}), method(object({
|
|
18434
|
+
instanceId: string().min(1),
|
|
18435
|
+
enabled: boolean()
|
|
18436
|
+
}), TerminalInstanceInfoSchema, {
|
|
18437
|
+
kind: "mutation",
|
|
18438
|
+
auth: "admin"
|
|
18439
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18440
|
+
stableId: string().min(1),
|
|
18441
|
+
name: string().trim().min(1).max(160).optional()
|
|
18442
|
+
}), TerminalInstanceInfoSchema, {
|
|
18443
|
+
kind: "mutation",
|
|
18444
|
+
auth: "admin"
|
|
18445
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18303
18446
|
profileId: string(),
|
|
18304
18447
|
cols: number().int().positive(),
|
|
18305
18448
|
rows: number().int().positive()
|
|
@@ -18316,7 +18459,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18316
18459
|
}), method(object({
|
|
18317
18460
|
sessionId: string(),
|
|
18318
18461
|
afterSeq: number().int().nonnegative(),
|
|
18319
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18462
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18463
|
+
/**
|
|
18464
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18465
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18466
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18467
|
+
*/
|
|
18468
|
+
waitForOutput: boolean().optional()
|
|
18320
18469
|
}), TerminalOutputBatchSchema, {
|
|
18321
18470
|
kind: "mutation",
|
|
18322
18471
|
auth: "admin",
|
|
@@ -20257,6 +20406,7 @@ var FaceInfoSchema = object({
|
|
|
20257
20406
|
var FaceFilterEnum = _enum([
|
|
20258
20407
|
"unassigned",
|
|
20259
20408
|
"recognized",
|
|
20409
|
+
"identified",
|
|
20260
20410
|
"all"
|
|
20261
20411
|
]);
|
|
20262
20412
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20285,6 +20435,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20285
20435
|
kind: "mutation",
|
|
20286
20436
|
auth: "admin"
|
|
20287
20437
|
}), method(object({
|
|
20438
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20439
|
+
deviceId: number().int().optional(),
|
|
20288
20440
|
limit: number().int().positive().optional(),
|
|
20289
20441
|
filter: FaceFilterEnum.optional(),
|
|
20290
20442
|
/**
|
|
@@ -22050,6 +22202,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22050
22202
|
capName: string().min(1).max(64),
|
|
22051
22203
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22052
22204
|
valuePath: string().min(1).max(64)
|
|
22205
|
+
}),
|
|
22206
|
+
object({
|
|
22207
|
+
kind: literal("latest-recognition"),
|
|
22208
|
+
recognition: _enum(["person", "plate"])
|
|
22053
22209
|
})
|
|
22054
22210
|
]);
|
|
22055
22211
|
var OsdSlotBindingSchema = object({
|
|
@@ -22155,6 +22311,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22155
22311
|
}), object({ success: literal(true) }), {
|
|
22156
22312
|
kind: "mutation",
|
|
22157
22313
|
auth: "admin"
|
|
22314
|
+
}), method(object({
|
|
22315
|
+
sourceDeviceId: number().int(),
|
|
22316
|
+
targetDeviceId: number().int()
|
|
22317
|
+
}), object({
|
|
22318
|
+
copied: number().int().nonnegative(),
|
|
22319
|
+
skipped: number().int().nonnegative()
|
|
22320
|
+
}), {
|
|
22321
|
+
kind: "mutation",
|
|
22322
|
+
auth: "admin"
|
|
22158
22323
|
}), method(object({
|
|
22159
22324
|
deviceId: number().int(),
|
|
22160
22325
|
slotId: string().min(1),
|
|
@@ -23040,13 +23205,19 @@ method(object({
|
|
|
23040
23205
|
}), {
|
|
23041
23206
|
kind: "mutation",
|
|
23042
23207
|
auth: "admin"
|
|
23043
|
-
}), method(
|
|
23208
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23044
23209
|
kind: "mutation",
|
|
23045
23210
|
auth: "admin"
|
|
23046
|
-
}), method(object({
|
|
23047
|
-
kind: "
|
|
23211
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23212
|
+
kind: "mutation",
|
|
23048
23213
|
auth: "admin"
|
|
23049
|
-
}), method(
|
|
23214
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23215
|
+
kind: "mutation",
|
|
23216
|
+
auth: "admin"
|
|
23217
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23218
|
+
kind: "mutation",
|
|
23219
|
+
auth: "admin"
|
|
23220
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23050
23221
|
kind: "mutation",
|
|
23051
23222
|
auth: "admin"
|
|
23052
23223
|
});
|
|
@@ -27168,6 +27339,12 @@ Object.freeze({
|
|
|
27168
27339
|
addonId: null,
|
|
27169
27340
|
access: "delete"
|
|
27170
27341
|
},
|
|
27342
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27343
|
+
capName: "osd-manager",
|
|
27344
|
+
capScope: "system",
|
|
27345
|
+
addonId: null,
|
|
27346
|
+
access: "create"
|
|
27347
|
+
},
|
|
27171
27348
|
"osdManager.getConditionSupport": {
|
|
27172
27349
|
capName: "osd-manager",
|
|
27173
27350
|
capScope: "system",
|
|
@@ -27264,7 +27441,7 @@ Object.freeze({
|
|
|
27264
27441
|
addonId: null,
|
|
27265
27442
|
access: "create"
|
|
27266
27443
|
},
|
|
27267
|
-
"pipelineAnalytics.
|
|
27444
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27268
27445
|
capName: "pipeline-analytics",
|
|
27269
27446
|
capScope: "device",
|
|
27270
27447
|
addonId: null,
|
|
@@ -27336,12 +27513,6 @@ Object.freeze({
|
|
|
27336
27513
|
addonId: null,
|
|
27337
27514
|
access: "view"
|
|
27338
27515
|
},
|
|
27339
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27340
|
-
capName: "pipeline-analytics",
|
|
27341
|
-
capScope: "device",
|
|
27342
|
-
addonId: null,
|
|
27343
|
-
access: "view"
|
|
27344
|
-
},
|
|
27345
27516
|
"pipelineAnalytics.getMotionEvents": {
|
|
27346
27517
|
capName: "pipeline-analytics",
|
|
27347
27518
|
capScope: "device",
|
|
@@ -27378,6 +27549,12 @@ Object.freeze({
|
|
|
27378
27549
|
addonId: null,
|
|
27379
27550
|
access: "view"
|
|
27380
27551
|
},
|
|
27552
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27553
|
+
capName: "pipeline-analytics",
|
|
27554
|
+
capScope: "device",
|
|
27555
|
+
addonId: null,
|
|
27556
|
+
access: "view"
|
|
27557
|
+
},
|
|
27381
27558
|
"pipelineAnalytics.getTrack": {
|
|
27382
27559
|
capName: "pipeline-analytics",
|
|
27383
27560
|
capScope: "device",
|
|
@@ -27456,6 +27633,12 @@ Object.freeze({
|
|
|
27456
27633
|
addonId: null,
|
|
27457
27634
|
access: "view"
|
|
27458
27635
|
},
|
|
27636
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27637
|
+
capName: "pipeline-analytics",
|
|
27638
|
+
capScope: "device",
|
|
27639
|
+
addonId: null,
|
|
27640
|
+
access: "create"
|
|
27641
|
+
},
|
|
27459
27642
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27460
27643
|
capName: "pipeline-analytics",
|
|
27461
27644
|
capScope: "device",
|
|
@@ -27486,7 +27669,7 @@ Object.freeze({
|
|
|
27486
27669
|
addonId: null,
|
|
27487
27670
|
access: "create"
|
|
27488
27671
|
},
|
|
27489
|
-
"pipelineAnalytics.
|
|
27672
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27490
27673
|
capName: "pipeline-analytics",
|
|
27491
27674
|
capScope: "device",
|
|
27492
27675
|
addonId: null,
|
|
@@ -27498,6 +27681,12 @@ Object.freeze({
|
|
|
27498
27681
|
addonId: null,
|
|
27499
27682
|
access: "create"
|
|
27500
27683
|
},
|
|
27684
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27685
|
+
capName: "pipeline-analytics",
|
|
27686
|
+
capScope: "device",
|
|
27687
|
+
addonId: null,
|
|
27688
|
+
access: "create"
|
|
27689
|
+
},
|
|
27501
27690
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27502
27691
|
capName: "pipeline-analytics",
|
|
27503
27692
|
capScope: "device",
|
|
@@ -27522,6 +27711,12 @@ Object.freeze({
|
|
|
27522
27711
|
addonId: null,
|
|
27523
27712
|
access: "create"
|
|
27524
27713
|
},
|
|
27714
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27715
|
+
capName: "pipeline-analytics",
|
|
27716
|
+
capScope: "device",
|
|
27717
|
+
addonId: null,
|
|
27718
|
+
access: "create"
|
|
27719
|
+
},
|
|
27525
27720
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27526
27721
|
capName: "pipeline-analytics",
|
|
27527
27722
|
capScope: "device",
|
|
@@ -27888,6 +28083,12 @@ Object.freeze({
|
|
|
27888
28083
|
addonId: null,
|
|
27889
28084
|
access: "view"
|
|
27890
28085
|
},
|
|
28086
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28087
|
+
capName: "pipeline-orchestrator",
|
|
28088
|
+
capScope: "system",
|
|
28089
|
+
addonId: null,
|
|
28090
|
+
access: "create"
|
|
28091
|
+
},
|
|
27891
28092
|
"pipelineOrchestrator.rebalance": {
|
|
27892
28093
|
capName: "pipeline-orchestrator",
|
|
27893
28094
|
capScope: "system",
|
|
@@ -27912,6 +28113,12 @@ Object.freeze({
|
|
|
27912
28113
|
addonId: null,
|
|
27913
28114
|
access: "view"
|
|
27914
28115
|
},
|
|
28116
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28117
|
+
capName: "pipeline-orchestrator",
|
|
28118
|
+
capScope: "system",
|
|
28119
|
+
addonId: null,
|
|
28120
|
+
access: "create"
|
|
28121
|
+
},
|
|
27915
28122
|
"pipelineOrchestrator.saveTemplate": {
|
|
27916
28123
|
capName: "pipeline-orchestrator",
|
|
27917
28124
|
capScope: "system",
|
|
@@ -28308,7 +28515,7 @@ Object.freeze({
|
|
|
28308
28515
|
addonId: null,
|
|
28309
28516
|
access: "create"
|
|
28310
28517
|
},
|
|
28311
|
-
"recording.
|
|
28518
|
+
"recording.cancelStorageMigrationMove": {
|
|
28312
28519
|
capName: "recording",
|
|
28313
28520
|
capScope: "system",
|
|
28314
28521
|
addonId: null,
|
|
@@ -28344,7 +28551,7 @@ Object.freeze({
|
|
|
28344
28551
|
addonId: null,
|
|
28345
28552
|
access: "view"
|
|
28346
28553
|
},
|
|
28347
|
-
"recording.
|
|
28554
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28348
28555
|
capName: "recording",
|
|
28349
28556
|
capScope: "system",
|
|
28350
28557
|
addonId: null,
|
|
@@ -28368,6 +28575,12 @@ Object.freeze({
|
|
|
28368
28575
|
addonId: null,
|
|
28369
28576
|
access: "view"
|
|
28370
28577
|
},
|
|
28578
|
+
"recording.pauseForStorageMigration": {
|
|
28579
|
+
capName: "recording",
|
|
28580
|
+
capScope: "system",
|
|
28581
|
+
addonId: null,
|
|
28582
|
+
access: "create"
|
|
28583
|
+
},
|
|
28371
28584
|
"recording.pruneFootage": {
|
|
28372
28585
|
capName: "recording",
|
|
28373
28586
|
capScope: "system",
|
|
@@ -28386,7 +28599,7 @@ Object.freeze({
|
|
|
28386
28599
|
addonId: null,
|
|
28387
28600
|
access: "view"
|
|
28388
28601
|
},
|
|
28389
|
-
"recording.
|
|
28602
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28390
28603
|
capName: "recording",
|
|
28391
28604
|
capScope: "system",
|
|
28392
28605
|
addonId: null,
|
|
@@ -28410,12 +28623,24 @@ Object.freeze({
|
|
|
28410
28623
|
addonId: null,
|
|
28411
28624
|
access: "create"
|
|
28412
28625
|
},
|
|
28626
|
+
"recording.resumeForStorageMigration": {
|
|
28627
|
+
capName: "recording",
|
|
28628
|
+
capScope: "system",
|
|
28629
|
+
addonId: null,
|
|
28630
|
+
access: "create"
|
|
28631
|
+
},
|
|
28413
28632
|
"recording.setDeviceConfig": {
|
|
28414
28633
|
capName: "recording",
|
|
28415
28634
|
capScope: "system",
|
|
28416
28635
|
addonId: null,
|
|
28417
28636
|
access: "create"
|
|
28418
28637
|
},
|
|
28638
|
+
"recording.startStorageMigrationMove": {
|
|
28639
|
+
capName: "recording",
|
|
28640
|
+
capScope: "system",
|
|
28641
|
+
addonId: null,
|
|
28642
|
+
access: "create"
|
|
28643
|
+
},
|
|
28419
28644
|
"recordingExport.cancelExport": {
|
|
28420
28645
|
capName: "recordingExport",
|
|
28421
28646
|
capScope: "system",
|
|
@@ -28806,6 +29031,30 @@ Object.freeze({
|
|
|
28806
29031
|
addonId: null,
|
|
28807
29032
|
access: "view"
|
|
28808
29033
|
},
|
|
29034
|
+
"storageMigration.cancel": {
|
|
29035
|
+
capName: "storage-migration",
|
|
29036
|
+
capScope: "system",
|
|
29037
|
+
addonId: null,
|
|
29038
|
+
access: "create"
|
|
29039
|
+
},
|
|
29040
|
+
"storageMigration.plan": {
|
|
29041
|
+
capName: "storage-migration",
|
|
29042
|
+
capScope: "system",
|
|
29043
|
+
addonId: null,
|
|
29044
|
+
access: "view"
|
|
29045
|
+
},
|
|
29046
|
+
"storageMigration.start": {
|
|
29047
|
+
capName: "storage-migration",
|
|
29048
|
+
capScope: "system",
|
|
29049
|
+
addonId: null,
|
|
29050
|
+
access: "create"
|
|
29051
|
+
},
|
|
29052
|
+
"storageMigration.status": {
|
|
29053
|
+
capName: "storage-migration",
|
|
29054
|
+
capScope: "system",
|
|
29055
|
+
addonId: null,
|
|
29056
|
+
access: "view"
|
|
29057
|
+
},
|
|
28809
29058
|
"storageProvider.abortUpload": {
|
|
28810
29059
|
capName: "storage-provider",
|
|
28811
29060
|
capScope: "system",
|
|
@@ -29184,12 +29433,42 @@ Object.freeze({
|
|
|
29184
29433
|
addonId: null,
|
|
29185
29434
|
access: "create"
|
|
29186
29435
|
},
|
|
29436
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29437
|
+
capName: "terminal-session",
|
|
29438
|
+
capScope: "system",
|
|
29439
|
+
addonId: null,
|
|
29440
|
+
access: "create"
|
|
29441
|
+
},
|
|
29187
29442
|
"terminalSession.close": {
|
|
29188
29443
|
capName: "terminal-session",
|
|
29189
29444
|
capScope: "system",
|
|
29190
29445
|
addonId: null,
|
|
29191
29446
|
access: "create"
|
|
29192
29447
|
},
|
|
29448
|
+
"terminalSession.createInstance": {
|
|
29449
|
+
capName: "terminal-session",
|
|
29450
|
+
capScope: "system",
|
|
29451
|
+
addonId: null,
|
|
29452
|
+
access: "create"
|
|
29453
|
+
},
|
|
29454
|
+
"terminalSession.deleteInstance": {
|
|
29455
|
+
capName: "terminal-session",
|
|
29456
|
+
capScope: "system",
|
|
29457
|
+
addonId: null,
|
|
29458
|
+
access: "delete"
|
|
29459
|
+
},
|
|
29460
|
+
"terminalSession.listInstances": {
|
|
29461
|
+
capName: "terminal-session",
|
|
29462
|
+
capScope: "system",
|
|
29463
|
+
addonId: null,
|
|
29464
|
+
access: "view"
|
|
29465
|
+
},
|
|
29466
|
+
"terminalSession.listLegacyCameras": {
|
|
29467
|
+
capName: "terminal-session",
|
|
29468
|
+
capScope: "system",
|
|
29469
|
+
addonId: null,
|
|
29470
|
+
access: "view"
|
|
29471
|
+
},
|
|
29193
29472
|
"terminalSession.listProfiles": {
|
|
29194
29473
|
capName: "terminal-session",
|
|
29195
29474
|
capScope: "system",
|
|
@@ -29220,6 +29499,12 @@ Object.freeze({
|
|
|
29220
29499
|
addonId: null,
|
|
29221
29500
|
access: "create"
|
|
29222
29501
|
},
|
|
29502
|
+
"terminalSession.setInstanceEnabled": {
|
|
29503
|
+
capName: "terminal-session",
|
|
29504
|
+
capScope: "system",
|
|
29505
|
+
addonId: null,
|
|
29506
|
+
access: "create"
|
|
29507
|
+
},
|
|
29223
29508
|
"terminalSession.writeInput": {
|
|
29224
29509
|
capName: "terminal-session",
|
|
29225
29510
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-smtp-nodemailer",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.12",
|
|
4
4
|
"description": "SMTP email provider addon for CamStack — wraps `nodemailer` and registers a `smtp-provider` cap collection entry. Used by magic-link login + notifier addons.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|