@camstack/addon-smtp-nodemailer 1.1.25 → 1.1.26
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 +144 -1
- package/dist/smtp.addon.mjs +144 -1
- package/package.json +1 -1
package/dist/smtp.addon.js
CHANGED
|
@@ -7365,6 +7365,62 @@ var RecordingConfigSchema = object({
|
|
|
7365
7365
|
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
7366
7366
|
});
|
|
7367
7367
|
/**
|
|
7368
|
+
* Ops-log — the durable, append-only operations audit shared by the
|
|
7369
|
+
* recordings and events management surfaces.
|
|
7370
|
+
*
|
|
7371
|
+
* ONE row shape is reused for both domains so a single "Activity" view can
|
|
7372
|
+
* merge the recorder's DurableState ring (recordings ops-log) and the
|
|
7373
|
+
* pipeline-analytics SQLite collection (events ops-log). Each row records a
|
|
7374
|
+
* management operation, WHY it ran (reason), and its measurable effect
|
|
7375
|
+
* (itemsAffected + bytesReclaimed). Writes are best-effort — a failed log must
|
|
7376
|
+
* never fail the operation it records.
|
|
7377
|
+
*/
|
|
7378
|
+
/** Which management domain the operation belongs to. */
|
|
7379
|
+
var OpsLogDomainSchema = _enum(["recording", "events"]);
|
|
7380
|
+
/** The kind of management operation performed. */
|
|
7381
|
+
var OpsLogOpSchema = _enum([
|
|
7382
|
+
"prune",
|
|
7383
|
+
"manual-delete",
|
|
7384
|
+
"rescan",
|
|
7385
|
+
"retention-run"
|
|
7386
|
+
]);
|
|
7387
|
+
/** Why the operation ran. */
|
|
7388
|
+
var OpsLogReasonSchema = _enum([
|
|
7389
|
+
"retention",
|
|
7390
|
+
"quota",
|
|
7391
|
+
"manual",
|
|
7392
|
+
"operator"
|
|
7393
|
+
]);
|
|
7394
|
+
/** One audit row, shared verbatim by both domains. */
|
|
7395
|
+
var OpsLogEntrySchema = object({
|
|
7396
|
+
/** Unique row id. */
|
|
7397
|
+
id: string(),
|
|
7398
|
+
/** Epoch ms the operation completed. */
|
|
7399
|
+
at: number(),
|
|
7400
|
+
domain: OpsLogDomainSchema,
|
|
7401
|
+
op: OpsLogOpSchema,
|
|
7402
|
+
reason: OpsLogReasonSchema,
|
|
7403
|
+
/** The camera the op targeted; null for a cluster/global op. */
|
|
7404
|
+
deviceId: number().nullable(),
|
|
7405
|
+
/** Node that performed the op (the log carries nodeId — no cross-node aggregation). */
|
|
7406
|
+
nodeId: string(),
|
|
7407
|
+
/** Buckets / rows deleted (op-specific unit). */
|
|
7408
|
+
itemsAffected: number(),
|
|
7409
|
+
/** Bytes reclaimed by the op (0 when not measurable). */
|
|
7410
|
+
bytesReclaimed: number(),
|
|
7411
|
+
/** Free-text detail (e.g. "floor moved to <ts>"); null when none. */
|
|
7412
|
+
detail: string().nullable(),
|
|
7413
|
+
/** Who/what triggered the op. */
|
|
7414
|
+
actor: string()
|
|
7415
|
+
});
|
|
7416
|
+
/** Shared query input for the per-domain `listOpsLog` cap methods. */
|
|
7417
|
+
var OpsLogQueryInputSchema = object({
|
|
7418
|
+
/** Restrict to a single camera; omit for every row. */
|
|
7419
|
+
deviceId: number().optional(),
|
|
7420
|
+
/** Max rows returned, newest-first. */
|
|
7421
|
+
limit: number().int().min(1).max(1e3).optional()
|
|
7422
|
+
});
|
|
7423
|
+
/**
|
|
7368
7424
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
7369
7425
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
7370
7426
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -16165,6 +16221,26 @@ var TrackCascadeCountsSchema = object({
|
|
|
16165
16221
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
16166
16222
|
embeddings: number().int()
|
|
16167
16223
|
});
|
|
16224
|
+
/** Event-store footprint for one camera. */
|
|
16225
|
+
var EventStoreDeviceFootprintSchema = object({
|
|
16226
|
+
deviceId: number(),
|
|
16227
|
+
/** Persisted event rows (motion + object + audio) for the camera. */
|
|
16228
|
+
rows: number().int(),
|
|
16229
|
+
/** Event-owned media bytes on disk for the camera. */
|
|
16230
|
+
bytes: number().int()
|
|
16231
|
+
});
|
|
16232
|
+
/** Aggregate event-store footprint: global totals + per-camera breakdown. */
|
|
16233
|
+
var EventStoreFootprintSchema = object({
|
|
16234
|
+
totalRows: number().int(),
|
|
16235
|
+
totalBytes: number().int(),
|
|
16236
|
+
devices: array(EventStoreDeviceFootprintSchema).readonly()
|
|
16237
|
+
});
|
|
16238
|
+
/** Per-kind counts returned by the event-prune / device-delete mutations. */
|
|
16239
|
+
var EventPruneCountsSchema = object({
|
|
16240
|
+
motion: number().int(),
|
|
16241
|
+
object: number().int(),
|
|
16242
|
+
audio: number().int()
|
|
16243
|
+
});
|
|
16168
16244
|
DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
|
|
16169
16245
|
deviceId: number(),
|
|
16170
16246
|
trackId: string()
|
|
@@ -16228,6 +16304,21 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16228
16304
|
}), {
|
|
16229
16305
|
kind: "mutation",
|
|
16230
16306
|
auth: "admin"
|
|
16307
|
+
}), method(object({}), EventStoreFootprintSchema, {
|
|
16308
|
+
kind: "query",
|
|
16309
|
+
auth: "admin"
|
|
16310
|
+
}), method(object({
|
|
16311
|
+
olderThanMs: number(),
|
|
16312
|
+
reason: OpsLogReasonSchema.optional()
|
|
16313
|
+
}), EventPruneCountsSchema, {
|
|
16314
|
+
kind: "mutation",
|
|
16315
|
+
auth: "admin"
|
|
16316
|
+
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16317
|
+
kind: "mutation",
|
|
16318
|
+
auth: "admin"
|
|
16319
|
+
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
16320
|
+
kind: "query",
|
|
16321
|
+
auth: "admin"
|
|
16231
16322
|
}), method(object({
|
|
16232
16323
|
eventId: string(),
|
|
16233
16324
|
kind: MediaFileKindEnum.optional()
|
|
@@ -19474,13 +19565,29 @@ method(object({
|
|
|
19474
19565
|
}), method(object({ deviceId: number() }), RecordingStatusSchema, {
|
|
19475
19566
|
kind: "mutation",
|
|
19476
19567
|
auth: "admin"
|
|
19477
|
-
}), method(object({
|
|
19568
|
+
}), method(object({
|
|
19569
|
+
deviceId: number(),
|
|
19570
|
+
reason: OpsLogReasonSchema.optional()
|
|
19571
|
+
}), object({
|
|
19478
19572
|
floorMs: number().nullable(),
|
|
19479
19573
|
deletedBuckets: number().int(),
|
|
19480
19574
|
reclaimedBytes: number().int()
|
|
19481
19575
|
}), {
|
|
19482
19576
|
kind: "mutation",
|
|
19483
19577
|
auth: "admin"
|
|
19578
|
+
}), method(object({
|
|
19579
|
+
deviceId: number(),
|
|
19580
|
+
fromMs: number().optional(),
|
|
19581
|
+
toMs: number().optional()
|
|
19582
|
+
}), object({
|
|
19583
|
+
deletedBuckets: number().int(),
|
|
19584
|
+
reclaimedBytes: number().int()
|
|
19585
|
+
}), {
|
|
19586
|
+
kind: "mutation",
|
|
19587
|
+
auth: "admin"
|
|
19588
|
+
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
19589
|
+
kind: "query",
|
|
19590
|
+
auth: "admin"
|
|
19484
19591
|
});
|
|
19485
19592
|
/**
|
|
19486
19593
|
* `recordingExport` cap — render a footage time range into a single downloadable
|
|
@@ -22602,6 +22709,12 @@ Object.freeze({
|
|
|
22602
22709
|
addonId: null,
|
|
22603
22710
|
access: "delete"
|
|
22604
22711
|
},
|
|
22712
|
+
"pipelineAnalytics.deleteDeviceEvents": {
|
|
22713
|
+
capName: "pipeline-analytics",
|
|
22714
|
+
capScope: "device",
|
|
22715
|
+
addonId: null,
|
|
22716
|
+
access: "delete"
|
|
22717
|
+
},
|
|
22605
22718
|
"pipelineAnalytics.deleteTracks": {
|
|
22606
22719
|
capName: "pipeline-analytics",
|
|
22607
22720
|
capScope: "device",
|
|
@@ -22632,6 +22745,12 @@ Object.freeze({
|
|
|
22632
22745
|
addonId: null,
|
|
22633
22746
|
access: "view"
|
|
22634
22747
|
},
|
|
22748
|
+
"pipelineAnalytics.getEventStoreFootprint": {
|
|
22749
|
+
capName: "pipeline-analytics",
|
|
22750
|
+
capScope: "device",
|
|
22751
|
+
addonId: null,
|
|
22752
|
+
access: "view"
|
|
22753
|
+
},
|
|
22635
22754
|
"pipelineAnalytics.getKeyEvents": {
|
|
22636
22755
|
capName: "pipeline-analytics",
|
|
22637
22756
|
capScope: "device",
|
|
@@ -22674,6 +22793,12 @@ Object.freeze({
|
|
|
22674
22793
|
addonId: null,
|
|
22675
22794
|
access: "view"
|
|
22676
22795
|
},
|
|
22796
|
+
"pipelineAnalytics.listOpsLog": {
|
|
22797
|
+
capName: "pipeline-analytics",
|
|
22798
|
+
capScope: "device",
|
|
22799
|
+
addonId: null,
|
|
22800
|
+
access: "view"
|
|
22801
|
+
},
|
|
22677
22802
|
"pipelineAnalytics.listRecentTracks": {
|
|
22678
22803
|
capName: "pipeline-analytics",
|
|
22679
22804
|
capScope: "device",
|
|
@@ -22686,6 +22811,12 @@ Object.freeze({
|
|
|
22686
22811
|
addonId: null,
|
|
22687
22812
|
access: "view"
|
|
22688
22813
|
},
|
|
22814
|
+
"pipelineAnalytics.pruneEvents": {
|
|
22815
|
+
capName: "pipeline-analytics",
|
|
22816
|
+
capScope: "device",
|
|
22817
|
+
addonId: null,
|
|
22818
|
+
access: "create"
|
|
22819
|
+
},
|
|
22689
22820
|
"pipelineAnalytics.pruneEventsBefore": {
|
|
22690
22821
|
capName: "pipeline-analytics",
|
|
22691
22822
|
capScope: "device",
|
|
@@ -23448,6 +23579,12 @@ Object.freeze({
|
|
|
23448
23579
|
addonId: null,
|
|
23449
23580
|
access: "create"
|
|
23450
23581
|
},
|
|
23582
|
+
"recording.deleteFootprint": {
|
|
23583
|
+
capName: "recording",
|
|
23584
|
+
capScope: "system",
|
|
23585
|
+
addonId: null,
|
|
23586
|
+
access: "delete"
|
|
23587
|
+
},
|
|
23451
23588
|
"recording.getAvailability": {
|
|
23452
23589
|
capName: "recording",
|
|
23453
23590
|
capScope: "system",
|
|
@@ -23478,6 +23615,12 @@ Object.freeze({
|
|
|
23478
23615
|
addonId: null,
|
|
23479
23616
|
access: "view"
|
|
23480
23617
|
},
|
|
23618
|
+
"recording.listOpsLog": {
|
|
23619
|
+
capName: "recording",
|
|
23620
|
+
capScope: "system",
|
|
23621
|
+
addonId: null,
|
|
23622
|
+
access: "view"
|
|
23623
|
+
},
|
|
23481
23624
|
"recording.locateSegment": {
|
|
23482
23625
|
capName: "recording",
|
|
23483
23626
|
capScope: "system",
|
package/dist/smtp.addon.mjs
CHANGED
|
@@ -7363,6 +7363,62 @@ var RecordingConfigSchema = object({
|
|
|
7363
7363
|
scrubThumbnails: ScrubThumbnailPresetSchema.optional()
|
|
7364
7364
|
});
|
|
7365
7365
|
/**
|
|
7366
|
+
* Ops-log — the durable, append-only operations audit shared by the
|
|
7367
|
+
* recordings and events management surfaces.
|
|
7368
|
+
*
|
|
7369
|
+
* ONE row shape is reused for both domains so a single "Activity" view can
|
|
7370
|
+
* merge the recorder's DurableState ring (recordings ops-log) and the
|
|
7371
|
+
* pipeline-analytics SQLite collection (events ops-log). Each row records a
|
|
7372
|
+
* management operation, WHY it ran (reason), and its measurable effect
|
|
7373
|
+
* (itemsAffected + bytesReclaimed). Writes are best-effort — a failed log must
|
|
7374
|
+
* never fail the operation it records.
|
|
7375
|
+
*/
|
|
7376
|
+
/** Which management domain the operation belongs to. */
|
|
7377
|
+
var OpsLogDomainSchema = _enum(["recording", "events"]);
|
|
7378
|
+
/** The kind of management operation performed. */
|
|
7379
|
+
var OpsLogOpSchema = _enum([
|
|
7380
|
+
"prune",
|
|
7381
|
+
"manual-delete",
|
|
7382
|
+
"rescan",
|
|
7383
|
+
"retention-run"
|
|
7384
|
+
]);
|
|
7385
|
+
/** Why the operation ran. */
|
|
7386
|
+
var OpsLogReasonSchema = _enum([
|
|
7387
|
+
"retention",
|
|
7388
|
+
"quota",
|
|
7389
|
+
"manual",
|
|
7390
|
+
"operator"
|
|
7391
|
+
]);
|
|
7392
|
+
/** One audit row, shared verbatim by both domains. */
|
|
7393
|
+
var OpsLogEntrySchema = object({
|
|
7394
|
+
/** Unique row id. */
|
|
7395
|
+
id: string(),
|
|
7396
|
+
/** Epoch ms the operation completed. */
|
|
7397
|
+
at: number(),
|
|
7398
|
+
domain: OpsLogDomainSchema,
|
|
7399
|
+
op: OpsLogOpSchema,
|
|
7400
|
+
reason: OpsLogReasonSchema,
|
|
7401
|
+
/** The camera the op targeted; null for a cluster/global op. */
|
|
7402
|
+
deviceId: number().nullable(),
|
|
7403
|
+
/** Node that performed the op (the log carries nodeId — no cross-node aggregation). */
|
|
7404
|
+
nodeId: string(),
|
|
7405
|
+
/** Buckets / rows deleted (op-specific unit). */
|
|
7406
|
+
itemsAffected: number(),
|
|
7407
|
+
/** Bytes reclaimed by the op (0 when not measurable). */
|
|
7408
|
+
bytesReclaimed: number(),
|
|
7409
|
+
/** Free-text detail (e.g. "floor moved to <ts>"); null when none. */
|
|
7410
|
+
detail: string().nullable(),
|
|
7411
|
+
/** Who/what triggered the op. */
|
|
7412
|
+
actor: string()
|
|
7413
|
+
});
|
|
7414
|
+
/** Shared query input for the per-domain `listOpsLog` cap methods. */
|
|
7415
|
+
var OpsLogQueryInputSchema = object({
|
|
7416
|
+
/** Restrict to a single camera; omit for every row. */
|
|
7417
|
+
deviceId: number().optional(),
|
|
7418
|
+
/** Max rows returned, newest-first. */
|
|
7419
|
+
limit: number().int().min(1).max(1e3).optional()
|
|
7420
|
+
});
|
|
7421
|
+
/**
|
|
7366
7422
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
7367
7423
|
* storage a location serves. Defined here (not in `capabilities/storage.cap.ts`)
|
|
7368
7424
|
* so the persisted record schema and the consumer-facing cap can both consume it
|
|
@@ -16163,6 +16219,26 @@ var TrackCascadeCountsSchema = object({
|
|
|
16163
16219
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
16164
16220
|
embeddings: number().int()
|
|
16165
16221
|
});
|
|
16222
|
+
/** Event-store footprint for one camera. */
|
|
16223
|
+
var EventStoreDeviceFootprintSchema = object({
|
|
16224
|
+
deviceId: number(),
|
|
16225
|
+
/** Persisted event rows (motion + object + audio) for the camera. */
|
|
16226
|
+
rows: number().int(),
|
|
16227
|
+
/** Event-owned media bytes on disk for the camera. */
|
|
16228
|
+
bytes: number().int()
|
|
16229
|
+
});
|
|
16230
|
+
/** Aggregate event-store footprint: global totals + per-camera breakdown. */
|
|
16231
|
+
var EventStoreFootprintSchema = object({
|
|
16232
|
+
totalRows: number().int(),
|
|
16233
|
+
totalBytes: number().int(),
|
|
16234
|
+
devices: array(EventStoreDeviceFootprintSchema).readonly()
|
|
16235
|
+
});
|
|
16236
|
+
/** Per-kind counts returned by the event-prune / device-delete mutations. */
|
|
16237
|
+
var EventPruneCountsSchema = object({
|
|
16238
|
+
motion: number().int(),
|
|
16239
|
+
object: number().int(),
|
|
16240
|
+
audio: number().int()
|
|
16241
|
+
});
|
|
16166
16242
|
DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
|
|
16167
16243
|
deviceId: number(),
|
|
16168
16244
|
trackId: string()
|
|
@@ -16226,6 +16302,21 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16226
16302
|
}), {
|
|
16227
16303
|
kind: "mutation",
|
|
16228
16304
|
auth: "admin"
|
|
16305
|
+
}), method(object({}), EventStoreFootprintSchema, {
|
|
16306
|
+
kind: "query",
|
|
16307
|
+
auth: "admin"
|
|
16308
|
+
}), method(object({
|
|
16309
|
+
olderThanMs: number(),
|
|
16310
|
+
reason: OpsLogReasonSchema.optional()
|
|
16311
|
+
}), EventPruneCountsSchema, {
|
|
16312
|
+
kind: "mutation",
|
|
16313
|
+
auth: "admin"
|
|
16314
|
+
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
16315
|
+
kind: "mutation",
|
|
16316
|
+
auth: "admin"
|
|
16317
|
+
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
16318
|
+
kind: "query",
|
|
16319
|
+
auth: "admin"
|
|
16229
16320
|
}), method(object({
|
|
16230
16321
|
eventId: string(),
|
|
16231
16322
|
kind: MediaFileKindEnum.optional()
|
|
@@ -19472,13 +19563,29 @@ method(object({
|
|
|
19472
19563
|
}), method(object({ deviceId: number() }), RecordingStatusSchema, {
|
|
19473
19564
|
kind: "mutation",
|
|
19474
19565
|
auth: "admin"
|
|
19475
|
-
}), method(object({
|
|
19566
|
+
}), method(object({
|
|
19567
|
+
deviceId: number(),
|
|
19568
|
+
reason: OpsLogReasonSchema.optional()
|
|
19569
|
+
}), object({
|
|
19476
19570
|
floorMs: number().nullable(),
|
|
19477
19571
|
deletedBuckets: number().int(),
|
|
19478
19572
|
reclaimedBytes: number().int()
|
|
19479
19573
|
}), {
|
|
19480
19574
|
kind: "mutation",
|
|
19481
19575
|
auth: "admin"
|
|
19576
|
+
}), method(object({
|
|
19577
|
+
deviceId: number(),
|
|
19578
|
+
fromMs: number().optional(),
|
|
19579
|
+
toMs: number().optional()
|
|
19580
|
+
}), object({
|
|
19581
|
+
deletedBuckets: number().int(),
|
|
19582
|
+
reclaimedBytes: number().int()
|
|
19583
|
+
}), {
|
|
19584
|
+
kind: "mutation",
|
|
19585
|
+
auth: "admin"
|
|
19586
|
+
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
19587
|
+
kind: "query",
|
|
19588
|
+
auth: "admin"
|
|
19482
19589
|
});
|
|
19483
19590
|
/**
|
|
19484
19591
|
* `recordingExport` cap — render a footage time range into a single downloadable
|
|
@@ -22600,6 +22707,12 @@ Object.freeze({
|
|
|
22600
22707
|
addonId: null,
|
|
22601
22708
|
access: "delete"
|
|
22602
22709
|
},
|
|
22710
|
+
"pipelineAnalytics.deleteDeviceEvents": {
|
|
22711
|
+
capName: "pipeline-analytics",
|
|
22712
|
+
capScope: "device",
|
|
22713
|
+
addonId: null,
|
|
22714
|
+
access: "delete"
|
|
22715
|
+
},
|
|
22603
22716
|
"pipelineAnalytics.deleteTracks": {
|
|
22604
22717
|
capName: "pipeline-analytics",
|
|
22605
22718
|
capScope: "device",
|
|
@@ -22630,6 +22743,12 @@ Object.freeze({
|
|
|
22630
22743
|
addonId: null,
|
|
22631
22744
|
access: "view"
|
|
22632
22745
|
},
|
|
22746
|
+
"pipelineAnalytics.getEventStoreFootprint": {
|
|
22747
|
+
capName: "pipeline-analytics",
|
|
22748
|
+
capScope: "device",
|
|
22749
|
+
addonId: null,
|
|
22750
|
+
access: "view"
|
|
22751
|
+
},
|
|
22633
22752
|
"pipelineAnalytics.getKeyEvents": {
|
|
22634
22753
|
capName: "pipeline-analytics",
|
|
22635
22754
|
capScope: "device",
|
|
@@ -22672,6 +22791,12 @@ Object.freeze({
|
|
|
22672
22791
|
addonId: null,
|
|
22673
22792
|
access: "view"
|
|
22674
22793
|
},
|
|
22794
|
+
"pipelineAnalytics.listOpsLog": {
|
|
22795
|
+
capName: "pipeline-analytics",
|
|
22796
|
+
capScope: "device",
|
|
22797
|
+
addonId: null,
|
|
22798
|
+
access: "view"
|
|
22799
|
+
},
|
|
22675
22800
|
"pipelineAnalytics.listRecentTracks": {
|
|
22676
22801
|
capName: "pipeline-analytics",
|
|
22677
22802
|
capScope: "device",
|
|
@@ -22684,6 +22809,12 @@ Object.freeze({
|
|
|
22684
22809
|
addonId: null,
|
|
22685
22810
|
access: "view"
|
|
22686
22811
|
},
|
|
22812
|
+
"pipelineAnalytics.pruneEvents": {
|
|
22813
|
+
capName: "pipeline-analytics",
|
|
22814
|
+
capScope: "device",
|
|
22815
|
+
addonId: null,
|
|
22816
|
+
access: "create"
|
|
22817
|
+
},
|
|
22687
22818
|
"pipelineAnalytics.pruneEventsBefore": {
|
|
22688
22819
|
capName: "pipeline-analytics",
|
|
22689
22820
|
capScope: "device",
|
|
@@ -23446,6 +23577,12 @@ Object.freeze({
|
|
|
23446
23577
|
addonId: null,
|
|
23447
23578
|
access: "create"
|
|
23448
23579
|
},
|
|
23580
|
+
"recording.deleteFootprint": {
|
|
23581
|
+
capName: "recording",
|
|
23582
|
+
capScope: "system",
|
|
23583
|
+
addonId: null,
|
|
23584
|
+
access: "delete"
|
|
23585
|
+
},
|
|
23449
23586
|
"recording.getAvailability": {
|
|
23450
23587
|
capName: "recording",
|
|
23451
23588
|
capScope: "system",
|
|
@@ -23476,6 +23613,12 @@ Object.freeze({
|
|
|
23476
23613
|
addonId: null,
|
|
23477
23614
|
access: "view"
|
|
23478
23615
|
},
|
|
23616
|
+
"recording.listOpsLog": {
|
|
23617
|
+
capName: "recording",
|
|
23618
|
+
capScope: "system",
|
|
23619
|
+
addonId: null,
|
|
23620
|
+
access: "view"
|
|
23621
|
+
},
|
|
23479
23622
|
"recording.locateSegment": {
|
|
23480
23623
|
capName: "recording",
|
|
23481
23624
|
capScope: "system",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-smtp-nodemailer",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.26",
|
|
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",
|