@camstack/addon-smtp-nodemailer 1.2.10 → 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 +357 -30
- package/dist/smtp.addon.mjs +357 -30
- 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",
|
|
16000
16080
|
auth: "admin"
|
|
16001
|
-
}), method(
|
|
16081
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16082
|
+
kind: "mutation",
|
|
16083
|
+
auth: "admin"
|
|
16084
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16085
|
+
kind: "mutation",
|
|
16086
|
+
auth: "admin"
|
|
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,7 +18384,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18285
18384
|
label: string(),
|
|
18286
18385
|
description: string().optional()
|
|
18287
18386
|
});
|
|
18288
|
-
|
|
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
|
+
});
|
|
18409
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18410
|
+
seq: number().int().positive(),
|
|
18411
|
+
kind: literal("data"),
|
|
18412
|
+
data: string()
|
|
18413
|
+
}), object({
|
|
18414
|
+
seq: number().int().positive(),
|
|
18415
|
+
kind: literal("exit"),
|
|
18416
|
+
exitCode: number().int(),
|
|
18417
|
+
signal: number().int().optional()
|
|
18418
|
+
})]);
|
|
18419
|
+
var TerminalOutputBatchSchema = object({
|
|
18420
|
+
cursor: number().int().nonnegative(),
|
|
18421
|
+
reset: boolean(),
|
|
18422
|
+
snapshot: string().optional(),
|
|
18423
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18424
|
+
});
|
|
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({
|
|
18289
18448
|
profileId: string(),
|
|
18290
18449
|
cols: number().int().positive(),
|
|
18291
18450
|
rows: number().int().positive()
|
|
@@ -18299,6 +18458,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18299
18458
|
}), _void(), {
|
|
18300
18459
|
kind: "mutation",
|
|
18301
18460
|
auth: "admin"
|
|
18461
|
+
}), method(object({
|
|
18462
|
+
sessionId: string(),
|
|
18463
|
+
afterSeq: number().int().nonnegative(),
|
|
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()
|
|
18471
|
+
}), TerminalOutputBatchSchema, {
|
|
18472
|
+
kind: "mutation",
|
|
18473
|
+
auth: "admin",
|
|
18474
|
+
timeoutMs: 15e3
|
|
18475
|
+
}), method(object({
|
|
18476
|
+
sessionId: string(),
|
|
18477
|
+
data: string().max(64 * 1024)
|
|
18478
|
+
}), _void(), {
|
|
18479
|
+
kind: "mutation",
|
|
18480
|
+
auth: "admin"
|
|
18302
18481
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18303
18482
|
kind: "mutation",
|
|
18304
18483
|
auth: "admin"
|
|
@@ -20229,6 +20408,7 @@ var FaceInfoSchema = object({
|
|
|
20229
20408
|
var FaceFilterEnum = _enum([
|
|
20230
20409
|
"unassigned",
|
|
20231
20410
|
"recognized",
|
|
20411
|
+
"identified",
|
|
20232
20412
|
"all"
|
|
20233
20413
|
]);
|
|
20234
20414
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20257,6 +20437,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20257
20437
|
kind: "mutation",
|
|
20258
20438
|
auth: "admin"
|
|
20259
20439
|
}), method(object({
|
|
20440
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20441
|
+
deviceId: number().int().optional(),
|
|
20260
20442
|
limit: number().int().positive().optional(),
|
|
20261
20443
|
filter: FaceFilterEnum.optional(),
|
|
20262
20444
|
/**
|
|
@@ -22022,6 +22204,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22022
22204
|
capName: string().min(1).max(64),
|
|
22023
22205
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22024
22206
|
valuePath: string().min(1).max(64)
|
|
22207
|
+
}),
|
|
22208
|
+
object({
|
|
22209
|
+
kind: literal("latest-recognition"),
|
|
22210
|
+
recognition: _enum(["person", "plate"])
|
|
22025
22211
|
})
|
|
22026
22212
|
]);
|
|
22027
22213
|
var OsdSlotBindingSchema = object({
|
|
@@ -22127,6 +22313,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22127
22313
|
}), object({ success: literal(true) }), {
|
|
22128
22314
|
kind: "mutation",
|
|
22129
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"
|
|
22130
22325
|
}), method(object({
|
|
22131
22326
|
deviceId: number().int(),
|
|
22132
22327
|
slotId: string().min(1),
|
|
@@ -23012,13 +23207,19 @@ method(object({
|
|
|
23012
23207
|
}), {
|
|
23013
23208
|
kind: "mutation",
|
|
23014
23209
|
auth: "admin"
|
|
23015
|
-
}), method(
|
|
23210
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23016
23211
|
kind: "mutation",
|
|
23017
23212
|
auth: "admin"
|
|
23018
|
-
}), method(object({
|
|
23019
|
-
kind: "
|
|
23213
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23214
|
+
kind: "mutation",
|
|
23020
23215
|
auth: "admin"
|
|
23021
|
-
}), 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() }), {
|
|
23022
23223
|
kind: "mutation",
|
|
23023
23224
|
auth: "admin"
|
|
23024
23225
|
});
|
|
@@ -27140,6 +27341,12 @@ Object.freeze({
|
|
|
27140
27341
|
addonId: null,
|
|
27141
27342
|
access: "delete"
|
|
27142
27343
|
},
|
|
27344
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27345
|
+
capName: "osd-manager",
|
|
27346
|
+
capScope: "system",
|
|
27347
|
+
addonId: null,
|
|
27348
|
+
access: "create"
|
|
27349
|
+
},
|
|
27143
27350
|
"osdManager.getConditionSupport": {
|
|
27144
27351
|
capName: "osd-manager",
|
|
27145
27352
|
capScope: "system",
|
|
@@ -27236,7 +27443,7 @@ Object.freeze({
|
|
|
27236
27443
|
addonId: null,
|
|
27237
27444
|
access: "create"
|
|
27238
27445
|
},
|
|
27239
|
-
"pipelineAnalytics.
|
|
27446
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27240
27447
|
capName: "pipeline-analytics",
|
|
27241
27448
|
capScope: "device",
|
|
27242
27449
|
addonId: null,
|
|
@@ -27308,12 +27515,6 @@ Object.freeze({
|
|
|
27308
27515
|
addonId: null,
|
|
27309
27516
|
access: "view"
|
|
27310
27517
|
},
|
|
27311
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27312
|
-
capName: "pipeline-analytics",
|
|
27313
|
-
capScope: "device",
|
|
27314
|
-
addonId: null,
|
|
27315
|
-
access: "view"
|
|
27316
|
-
},
|
|
27317
27518
|
"pipelineAnalytics.getMotionEvents": {
|
|
27318
27519
|
capName: "pipeline-analytics",
|
|
27319
27520
|
capScope: "device",
|
|
@@ -27350,6 +27551,12 @@ Object.freeze({
|
|
|
27350
27551
|
addonId: null,
|
|
27351
27552
|
access: "view"
|
|
27352
27553
|
},
|
|
27554
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27555
|
+
capName: "pipeline-analytics",
|
|
27556
|
+
capScope: "device",
|
|
27557
|
+
addonId: null,
|
|
27558
|
+
access: "view"
|
|
27559
|
+
},
|
|
27353
27560
|
"pipelineAnalytics.getTrack": {
|
|
27354
27561
|
capName: "pipeline-analytics",
|
|
27355
27562
|
capScope: "device",
|
|
@@ -27428,6 +27635,12 @@ Object.freeze({
|
|
|
27428
27635
|
addonId: null,
|
|
27429
27636
|
access: "view"
|
|
27430
27637
|
},
|
|
27638
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27639
|
+
capName: "pipeline-analytics",
|
|
27640
|
+
capScope: "device",
|
|
27641
|
+
addonId: null,
|
|
27642
|
+
access: "create"
|
|
27643
|
+
},
|
|
27431
27644
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27432
27645
|
capName: "pipeline-analytics",
|
|
27433
27646
|
capScope: "device",
|
|
@@ -27458,7 +27671,7 @@ Object.freeze({
|
|
|
27458
27671
|
addonId: null,
|
|
27459
27672
|
access: "create"
|
|
27460
27673
|
},
|
|
27461
|
-
"pipelineAnalytics.
|
|
27674
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27462
27675
|
capName: "pipeline-analytics",
|
|
27463
27676
|
capScope: "device",
|
|
27464
27677
|
addonId: null,
|
|
@@ -27470,6 +27683,12 @@ Object.freeze({
|
|
|
27470
27683
|
addonId: null,
|
|
27471
27684
|
access: "create"
|
|
27472
27685
|
},
|
|
27686
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27687
|
+
capName: "pipeline-analytics",
|
|
27688
|
+
capScope: "device",
|
|
27689
|
+
addonId: null,
|
|
27690
|
+
access: "create"
|
|
27691
|
+
},
|
|
27473
27692
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27474
27693
|
capName: "pipeline-analytics",
|
|
27475
27694
|
capScope: "device",
|
|
@@ -27494,6 +27713,12 @@ Object.freeze({
|
|
|
27494
27713
|
addonId: null,
|
|
27495
27714
|
access: "create"
|
|
27496
27715
|
},
|
|
27716
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27717
|
+
capName: "pipeline-analytics",
|
|
27718
|
+
capScope: "device",
|
|
27719
|
+
addonId: null,
|
|
27720
|
+
access: "create"
|
|
27721
|
+
},
|
|
27497
27722
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27498
27723
|
capName: "pipeline-analytics",
|
|
27499
27724
|
capScope: "device",
|
|
@@ -27860,6 +28085,12 @@ Object.freeze({
|
|
|
27860
28085
|
addonId: null,
|
|
27861
28086
|
access: "view"
|
|
27862
28087
|
},
|
|
28088
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28089
|
+
capName: "pipeline-orchestrator",
|
|
28090
|
+
capScope: "system",
|
|
28091
|
+
addonId: null,
|
|
28092
|
+
access: "create"
|
|
28093
|
+
},
|
|
27863
28094
|
"pipelineOrchestrator.rebalance": {
|
|
27864
28095
|
capName: "pipeline-orchestrator",
|
|
27865
28096
|
capScope: "system",
|
|
@@ -27884,6 +28115,12 @@ Object.freeze({
|
|
|
27884
28115
|
addonId: null,
|
|
27885
28116
|
access: "view"
|
|
27886
28117
|
},
|
|
28118
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28119
|
+
capName: "pipeline-orchestrator",
|
|
28120
|
+
capScope: "system",
|
|
28121
|
+
addonId: null,
|
|
28122
|
+
access: "create"
|
|
28123
|
+
},
|
|
27887
28124
|
"pipelineOrchestrator.saveTemplate": {
|
|
27888
28125
|
capName: "pipeline-orchestrator",
|
|
27889
28126
|
capScope: "system",
|
|
@@ -28280,7 +28517,7 @@ Object.freeze({
|
|
|
28280
28517
|
addonId: null,
|
|
28281
28518
|
access: "create"
|
|
28282
28519
|
},
|
|
28283
|
-
"recording.
|
|
28520
|
+
"recording.cancelStorageMigrationMove": {
|
|
28284
28521
|
capName: "recording",
|
|
28285
28522
|
capScope: "system",
|
|
28286
28523
|
addonId: null,
|
|
@@ -28316,7 +28553,7 @@ Object.freeze({
|
|
|
28316
28553
|
addonId: null,
|
|
28317
28554
|
access: "view"
|
|
28318
28555
|
},
|
|
28319
|
-
"recording.
|
|
28556
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28320
28557
|
capName: "recording",
|
|
28321
28558
|
capScope: "system",
|
|
28322
28559
|
addonId: null,
|
|
@@ -28340,6 +28577,12 @@ Object.freeze({
|
|
|
28340
28577
|
addonId: null,
|
|
28341
28578
|
access: "view"
|
|
28342
28579
|
},
|
|
28580
|
+
"recording.pauseForStorageMigration": {
|
|
28581
|
+
capName: "recording",
|
|
28582
|
+
capScope: "system",
|
|
28583
|
+
addonId: null,
|
|
28584
|
+
access: "create"
|
|
28585
|
+
},
|
|
28343
28586
|
"recording.pruneFootage": {
|
|
28344
28587
|
capName: "recording",
|
|
28345
28588
|
capScope: "system",
|
|
@@ -28358,7 +28601,7 @@ Object.freeze({
|
|
|
28358
28601
|
addonId: null,
|
|
28359
28602
|
access: "view"
|
|
28360
28603
|
},
|
|
28361
|
-
"recording.
|
|
28604
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28362
28605
|
capName: "recording",
|
|
28363
28606
|
capScope: "system",
|
|
28364
28607
|
addonId: null,
|
|
@@ -28382,12 +28625,24 @@ Object.freeze({
|
|
|
28382
28625
|
addonId: null,
|
|
28383
28626
|
access: "create"
|
|
28384
28627
|
},
|
|
28628
|
+
"recording.resumeForStorageMigration": {
|
|
28629
|
+
capName: "recording",
|
|
28630
|
+
capScope: "system",
|
|
28631
|
+
addonId: null,
|
|
28632
|
+
access: "create"
|
|
28633
|
+
},
|
|
28385
28634
|
"recording.setDeviceConfig": {
|
|
28386
28635
|
capName: "recording",
|
|
28387
28636
|
capScope: "system",
|
|
28388
28637
|
addonId: null,
|
|
28389
28638
|
access: "create"
|
|
28390
28639
|
},
|
|
28640
|
+
"recording.startStorageMigrationMove": {
|
|
28641
|
+
capName: "recording",
|
|
28642
|
+
capScope: "system",
|
|
28643
|
+
addonId: null,
|
|
28644
|
+
access: "create"
|
|
28645
|
+
},
|
|
28391
28646
|
"recordingExport.cancelExport": {
|
|
28392
28647
|
capName: "recordingExport",
|
|
28393
28648
|
capScope: "system",
|
|
@@ -28778,6 +29033,30 @@ Object.freeze({
|
|
|
28778
29033
|
addonId: null,
|
|
28779
29034
|
access: "view"
|
|
28780
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
|
+
},
|
|
28781
29060
|
"storageProvider.abortUpload": {
|
|
28782
29061
|
capName: "storage-provider",
|
|
28783
29062
|
capScope: "system",
|
|
@@ -29156,12 +29435,42 @@ Object.freeze({
|
|
|
29156
29435
|
addonId: null,
|
|
29157
29436
|
access: "create"
|
|
29158
29437
|
},
|
|
29438
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29439
|
+
capName: "terminal-session",
|
|
29440
|
+
capScope: "system",
|
|
29441
|
+
addonId: null,
|
|
29442
|
+
access: "create"
|
|
29443
|
+
},
|
|
29159
29444
|
"terminalSession.close": {
|
|
29160
29445
|
capName: "terminal-session",
|
|
29161
29446
|
capScope: "system",
|
|
29162
29447
|
addonId: null,
|
|
29163
29448
|
access: "create"
|
|
29164
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
|
+
},
|
|
29165
29474
|
"terminalSession.listProfiles": {
|
|
29166
29475
|
capName: "terminal-session",
|
|
29167
29476
|
capScope: "system",
|
|
@@ -29180,12 +29489,30 @@ Object.freeze({
|
|
|
29180
29489
|
addonId: null,
|
|
29181
29490
|
access: "create"
|
|
29182
29491
|
},
|
|
29492
|
+
"terminalSession.pullOutput": {
|
|
29493
|
+
capName: "terminal-session",
|
|
29494
|
+
capScope: "system",
|
|
29495
|
+
addonId: null,
|
|
29496
|
+
access: "create"
|
|
29497
|
+
},
|
|
29183
29498
|
"terminalSession.resize": {
|
|
29184
29499
|
capName: "terminal-session",
|
|
29185
29500
|
capScope: "system",
|
|
29186
29501
|
addonId: null,
|
|
29187
29502
|
access: "create"
|
|
29188
29503
|
},
|
|
29504
|
+
"terminalSession.setInstanceEnabled": {
|
|
29505
|
+
capName: "terminal-session",
|
|
29506
|
+
capScope: "system",
|
|
29507
|
+
addonId: null,
|
|
29508
|
+
access: "create"
|
|
29509
|
+
},
|
|
29510
|
+
"terminalSession.writeInput": {
|
|
29511
|
+
capName: "terminal-session",
|
|
29512
|
+
capScope: "system",
|
|
29513
|
+
addonId: null,
|
|
29514
|
+
access: "create"
|
|
29515
|
+
},
|
|
29189
29516
|
"toast.onToast": {
|
|
29190
29517
|
capName: "toast",
|
|
29191
29518
|
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",
|
|
15998
16078
|
auth: "admin"
|
|
15999
|
-
}), method(
|
|
16079
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16080
|
+
kind: "mutation",
|
|
16081
|
+
auth: "admin"
|
|
16082
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16083
|
+
kind: "mutation",
|
|
16084
|
+
auth: "admin"
|
|
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,7 +18382,67 @@ var TerminalProfileInfoSchema = object({
|
|
|
18283
18382
|
label: string(),
|
|
18284
18383
|
description: string().optional()
|
|
18285
18384
|
});
|
|
18286
|
-
|
|
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
|
+
});
|
|
18407
|
+
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18408
|
+
seq: number().int().positive(),
|
|
18409
|
+
kind: literal("data"),
|
|
18410
|
+
data: string()
|
|
18411
|
+
}), object({
|
|
18412
|
+
seq: number().int().positive(),
|
|
18413
|
+
kind: literal("exit"),
|
|
18414
|
+
exitCode: number().int(),
|
|
18415
|
+
signal: number().int().optional()
|
|
18416
|
+
})]);
|
|
18417
|
+
var TerminalOutputBatchSchema = object({
|
|
18418
|
+
cursor: number().int().nonnegative(),
|
|
18419
|
+
reset: boolean(),
|
|
18420
|
+
snapshot: string().optional(),
|
|
18421
|
+
events: array(TerminalOutputEventSchema).readonly()
|
|
18422
|
+
});
|
|
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({
|
|
18287
18446
|
profileId: string(),
|
|
18288
18447
|
cols: number().int().positive(),
|
|
18289
18448
|
rows: number().int().positive()
|
|
@@ -18297,6 +18456,26 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18297
18456
|
}), _void(), {
|
|
18298
18457
|
kind: "mutation",
|
|
18299
18458
|
auth: "admin"
|
|
18459
|
+
}), method(object({
|
|
18460
|
+
sessionId: string(),
|
|
18461
|
+
afterSeq: number().int().nonnegative(),
|
|
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()
|
|
18469
|
+
}), TerminalOutputBatchSchema, {
|
|
18470
|
+
kind: "mutation",
|
|
18471
|
+
auth: "admin",
|
|
18472
|
+
timeoutMs: 15e3
|
|
18473
|
+
}), method(object({
|
|
18474
|
+
sessionId: string(),
|
|
18475
|
+
data: string().max(64 * 1024)
|
|
18476
|
+
}), _void(), {
|
|
18477
|
+
kind: "mutation",
|
|
18478
|
+
auth: "admin"
|
|
18300
18479
|
}), method(object({ sessionId: string() }), _void(), {
|
|
18301
18480
|
kind: "mutation",
|
|
18302
18481
|
auth: "admin"
|
|
@@ -20227,6 +20406,7 @@ var FaceInfoSchema = object({
|
|
|
20227
20406
|
var FaceFilterEnum = _enum([
|
|
20228
20407
|
"unassigned",
|
|
20229
20408
|
"recognized",
|
|
20409
|
+
"identified",
|
|
20230
20410
|
"all"
|
|
20231
20411
|
]);
|
|
20232
20412
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20255,6 +20435,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20255
20435
|
kind: "mutation",
|
|
20256
20436
|
auth: "admin"
|
|
20257
20437
|
}), method(object({
|
|
20438
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20439
|
+
deviceId: number().int().optional(),
|
|
20258
20440
|
limit: number().int().positive().optional(),
|
|
20259
20441
|
filter: FaceFilterEnum.optional(),
|
|
20260
20442
|
/**
|
|
@@ -22020,6 +22202,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22020
22202
|
capName: string().min(1).max(64),
|
|
22021
22203
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22022
22204
|
valuePath: string().min(1).max(64)
|
|
22205
|
+
}),
|
|
22206
|
+
object({
|
|
22207
|
+
kind: literal("latest-recognition"),
|
|
22208
|
+
recognition: _enum(["person", "plate"])
|
|
22023
22209
|
})
|
|
22024
22210
|
]);
|
|
22025
22211
|
var OsdSlotBindingSchema = object({
|
|
@@ -22125,6 +22311,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22125
22311
|
}), object({ success: literal(true) }), {
|
|
22126
22312
|
kind: "mutation",
|
|
22127
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"
|
|
22128
22323
|
}), method(object({
|
|
22129
22324
|
deviceId: number().int(),
|
|
22130
22325
|
slotId: string().min(1),
|
|
@@ -23010,13 +23205,19 @@ method(object({
|
|
|
23010
23205
|
}), {
|
|
23011
23206
|
kind: "mutation",
|
|
23012
23207
|
auth: "admin"
|
|
23013
|
-
}), method(
|
|
23208
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23014
23209
|
kind: "mutation",
|
|
23015
23210
|
auth: "admin"
|
|
23016
|
-
}), method(object({
|
|
23017
|
-
kind: "
|
|
23211
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23212
|
+
kind: "mutation",
|
|
23018
23213
|
auth: "admin"
|
|
23019
|
-
}), 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() }), {
|
|
23020
23221
|
kind: "mutation",
|
|
23021
23222
|
auth: "admin"
|
|
23022
23223
|
});
|
|
@@ -27138,6 +27339,12 @@ Object.freeze({
|
|
|
27138
27339
|
addonId: null,
|
|
27139
27340
|
access: "delete"
|
|
27140
27341
|
},
|
|
27342
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27343
|
+
capName: "osd-manager",
|
|
27344
|
+
capScope: "system",
|
|
27345
|
+
addonId: null,
|
|
27346
|
+
access: "create"
|
|
27347
|
+
},
|
|
27141
27348
|
"osdManager.getConditionSupport": {
|
|
27142
27349
|
capName: "osd-manager",
|
|
27143
27350
|
capScope: "system",
|
|
@@ -27234,7 +27441,7 @@ Object.freeze({
|
|
|
27234
27441
|
addonId: null,
|
|
27235
27442
|
access: "create"
|
|
27236
27443
|
},
|
|
27237
|
-
"pipelineAnalytics.
|
|
27444
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27238
27445
|
capName: "pipeline-analytics",
|
|
27239
27446
|
capScope: "device",
|
|
27240
27447
|
addonId: null,
|
|
@@ -27306,12 +27513,6 @@ Object.freeze({
|
|
|
27306
27513
|
addonId: null,
|
|
27307
27514
|
access: "view"
|
|
27308
27515
|
},
|
|
27309
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27310
|
-
capName: "pipeline-analytics",
|
|
27311
|
-
capScope: "device",
|
|
27312
|
-
addonId: null,
|
|
27313
|
-
access: "view"
|
|
27314
|
-
},
|
|
27315
27516
|
"pipelineAnalytics.getMotionEvents": {
|
|
27316
27517
|
capName: "pipeline-analytics",
|
|
27317
27518
|
capScope: "device",
|
|
@@ -27348,6 +27549,12 @@ Object.freeze({
|
|
|
27348
27549
|
addonId: null,
|
|
27349
27550
|
access: "view"
|
|
27350
27551
|
},
|
|
27552
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27553
|
+
capName: "pipeline-analytics",
|
|
27554
|
+
capScope: "device",
|
|
27555
|
+
addonId: null,
|
|
27556
|
+
access: "view"
|
|
27557
|
+
},
|
|
27351
27558
|
"pipelineAnalytics.getTrack": {
|
|
27352
27559
|
capName: "pipeline-analytics",
|
|
27353
27560
|
capScope: "device",
|
|
@@ -27426,6 +27633,12 @@ Object.freeze({
|
|
|
27426
27633
|
addonId: null,
|
|
27427
27634
|
access: "view"
|
|
27428
27635
|
},
|
|
27636
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27637
|
+
capName: "pipeline-analytics",
|
|
27638
|
+
capScope: "device",
|
|
27639
|
+
addonId: null,
|
|
27640
|
+
access: "create"
|
|
27641
|
+
},
|
|
27429
27642
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27430
27643
|
capName: "pipeline-analytics",
|
|
27431
27644
|
capScope: "device",
|
|
@@ -27456,7 +27669,7 @@ Object.freeze({
|
|
|
27456
27669
|
addonId: null,
|
|
27457
27670
|
access: "create"
|
|
27458
27671
|
},
|
|
27459
|
-
"pipelineAnalytics.
|
|
27672
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27460
27673
|
capName: "pipeline-analytics",
|
|
27461
27674
|
capScope: "device",
|
|
27462
27675
|
addonId: null,
|
|
@@ -27468,6 +27681,12 @@ Object.freeze({
|
|
|
27468
27681
|
addonId: null,
|
|
27469
27682
|
access: "create"
|
|
27470
27683
|
},
|
|
27684
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27685
|
+
capName: "pipeline-analytics",
|
|
27686
|
+
capScope: "device",
|
|
27687
|
+
addonId: null,
|
|
27688
|
+
access: "create"
|
|
27689
|
+
},
|
|
27471
27690
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27472
27691
|
capName: "pipeline-analytics",
|
|
27473
27692
|
capScope: "device",
|
|
@@ -27492,6 +27711,12 @@ Object.freeze({
|
|
|
27492
27711
|
addonId: null,
|
|
27493
27712
|
access: "create"
|
|
27494
27713
|
},
|
|
27714
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27715
|
+
capName: "pipeline-analytics",
|
|
27716
|
+
capScope: "device",
|
|
27717
|
+
addonId: null,
|
|
27718
|
+
access: "create"
|
|
27719
|
+
},
|
|
27495
27720
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27496
27721
|
capName: "pipeline-analytics",
|
|
27497
27722
|
capScope: "device",
|
|
@@ -27858,6 +28083,12 @@ Object.freeze({
|
|
|
27858
28083
|
addonId: null,
|
|
27859
28084
|
access: "view"
|
|
27860
28085
|
},
|
|
28086
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28087
|
+
capName: "pipeline-orchestrator",
|
|
28088
|
+
capScope: "system",
|
|
28089
|
+
addonId: null,
|
|
28090
|
+
access: "create"
|
|
28091
|
+
},
|
|
27861
28092
|
"pipelineOrchestrator.rebalance": {
|
|
27862
28093
|
capName: "pipeline-orchestrator",
|
|
27863
28094
|
capScope: "system",
|
|
@@ -27882,6 +28113,12 @@ Object.freeze({
|
|
|
27882
28113
|
addonId: null,
|
|
27883
28114
|
access: "view"
|
|
27884
28115
|
},
|
|
28116
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28117
|
+
capName: "pipeline-orchestrator",
|
|
28118
|
+
capScope: "system",
|
|
28119
|
+
addonId: null,
|
|
28120
|
+
access: "create"
|
|
28121
|
+
},
|
|
27885
28122
|
"pipelineOrchestrator.saveTemplate": {
|
|
27886
28123
|
capName: "pipeline-orchestrator",
|
|
27887
28124
|
capScope: "system",
|
|
@@ -28278,7 +28515,7 @@ Object.freeze({
|
|
|
28278
28515
|
addonId: null,
|
|
28279
28516
|
access: "create"
|
|
28280
28517
|
},
|
|
28281
|
-
"recording.
|
|
28518
|
+
"recording.cancelStorageMigrationMove": {
|
|
28282
28519
|
capName: "recording",
|
|
28283
28520
|
capScope: "system",
|
|
28284
28521
|
addonId: null,
|
|
@@ -28314,7 +28551,7 @@ Object.freeze({
|
|
|
28314
28551
|
addonId: null,
|
|
28315
28552
|
access: "view"
|
|
28316
28553
|
},
|
|
28317
|
-
"recording.
|
|
28554
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28318
28555
|
capName: "recording",
|
|
28319
28556
|
capScope: "system",
|
|
28320
28557
|
addonId: null,
|
|
@@ -28338,6 +28575,12 @@ Object.freeze({
|
|
|
28338
28575
|
addonId: null,
|
|
28339
28576
|
access: "view"
|
|
28340
28577
|
},
|
|
28578
|
+
"recording.pauseForStorageMigration": {
|
|
28579
|
+
capName: "recording",
|
|
28580
|
+
capScope: "system",
|
|
28581
|
+
addonId: null,
|
|
28582
|
+
access: "create"
|
|
28583
|
+
},
|
|
28341
28584
|
"recording.pruneFootage": {
|
|
28342
28585
|
capName: "recording",
|
|
28343
28586
|
capScope: "system",
|
|
@@ -28356,7 +28599,7 @@ Object.freeze({
|
|
|
28356
28599
|
addonId: null,
|
|
28357
28600
|
access: "view"
|
|
28358
28601
|
},
|
|
28359
|
-
"recording.
|
|
28602
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28360
28603
|
capName: "recording",
|
|
28361
28604
|
capScope: "system",
|
|
28362
28605
|
addonId: null,
|
|
@@ -28380,12 +28623,24 @@ Object.freeze({
|
|
|
28380
28623
|
addonId: null,
|
|
28381
28624
|
access: "create"
|
|
28382
28625
|
},
|
|
28626
|
+
"recording.resumeForStorageMigration": {
|
|
28627
|
+
capName: "recording",
|
|
28628
|
+
capScope: "system",
|
|
28629
|
+
addonId: null,
|
|
28630
|
+
access: "create"
|
|
28631
|
+
},
|
|
28383
28632
|
"recording.setDeviceConfig": {
|
|
28384
28633
|
capName: "recording",
|
|
28385
28634
|
capScope: "system",
|
|
28386
28635
|
addonId: null,
|
|
28387
28636
|
access: "create"
|
|
28388
28637
|
},
|
|
28638
|
+
"recording.startStorageMigrationMove": {
|
|
28639
|
+
capName: "recording",
|
|
28640
|
+
capScope: "system",
|
|
28641
|
+
addonId: null,
|
|
28642
|
+
access: "create"
|
|
28643
|
+
},
|
|
28389
28644
|
"recordingExport.cancelExport": {
|
|
28390
28645
|
capName: "recordingExport",
|
|
28391
28646
|
capScope: "system",
|
|
@@ -28776,6 +29031,30 @@ Object.freeze({
|
|
|
28776
29031
|
addonId: null,
|
|
28777
29032
|
access: "view"
|
|
28778
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
|
+
},
|
|
28779
29058
|
"storageProvider.abortUpload": {
|
|
28780
29059
|
capName: "storage-provider",
|
|
28781
29060
|
capScope: "system",
|
|
@@ -29154,12 +29433,42 @@ Object.freeze({
|
|
|
29154
29433
|
addonId: null,
|
|
29155
29434
|
access: "create"
|
|
29156
29435
|
},
|
|
29436
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29437
|
+
capName: "terminal-session",
|
|
29438
|
+
capScope: "system",
|
|
29439
|
+
addonId: null,
|
|
29440
|
+
access: "create"
|
|
29441
|
+
},
|
|
29157
29442
|
"terminalSession.close": {
|
|
29158
29443
|
capName: "terminal-session",
|
|
29159
29444
|
capScope: "system",
|
|
29160
29445
|
addonId: null,
|
|
29161
29446
|
access: "create"
|
|
29162
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
|
+
},
|
|
29163
29472
|
"terminalSession.listProfiles": {
|
|
29164
29473
|
capName: "terminal-session",
|
|
29165
29474
|
capScope: "system",
|
|
@@ -29178,12 +29487,30 @@ Object.freeze({
|
|
|
29178
29487
|
addonId: null,
|
|
29179
29488
|
access: "create"
|
|
29180
29489
|
},
|
|
29490
|
+
"terminalSession.pullOutput": {
|
|
29491
|
+
capName: "terminal-session",
|
|
29492
|
+
capScope: "system",
|
|
29493
|
+
addonId: null,
|
|
29494
|
+
access: "create"
|
|
29495
|
+
},
|
|
29181
29496
|
"terminalSession.resize": {
|
|
29182
29497
|
capName: "terminal-session",
|
|
29183
29498
|
capScope: "system",
|
|
29184
29499
|
addonId: null,
|
|
29185
29500
|
access: "create"
|
|
29186
29501
|
},
|
|
29502
|
+
"terminalSession.setInstanceEnabled": {
|
|
29503
|
+
capName: "terminal-session",
|
|
29504
|
+
capScope: "system",
|
|
29505
|
+
addonId: null,
|
|
29506
|
+
access: "create"
|
|
29507
|
+
},
|
|
29508
|
+
"terminalSession.writeInput": {
|
|
29509
|
+
capName: "terminal-session",
|
|
29510
|
+
capScope: "system",
|
|
29511
|
+
addonId: null,
|
|
29512
|
+
access: "create"
|
|
29513
|
+
},
|
|
29187
29514
|
"toast.onToast": {
|
|
29188
29515
|
capName: "toast",
|
|
29189
29516
|
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",
|