@camstack/addon-smtp-nodemailer 1.2.57 → 1.2.59
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 +130 -3
- package/dist/smtp.addon.mjs +130 -3
- package/package.json +1 -1
package/dist/smtp.addon.js
CHANGED
|
@@ -10548,6 +10548,89 @@ var LocationStatSchema = object({
|
|
|
10548
10548
|
fileCount: number(),
|
|
10549
10549
|
present: boolean()
|
|
10550
10550
|
});
|
|
10551
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
10552
|
+
var BackupRunStateSchema = _enum([
|
|
10553
|
+
"queued",
|
|
10554
|
+
"running",
|
|
10555
|
+
"succeeded",
|
|
10556
|
+
"failed",
|
|
10557
|
+
"cancelled"
|
|
10558
|
+
]);
|
|
10559
|
+
/**
|
|
10560
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
10561
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
10562
|
+
* per-destination fan-out, `done` once terminal.
|
|
10563
|
+
*/
|
|
10564
|
+
var BackupRunPhaseSchema = _enum([
|
|
10565
|
+
"queued",
|
|
10566
|
+
"building",
|
|
10567
|
+
"uploading",
|
|
10568
|
+
"done"
|
|
10569
|
+
]);
|
|
10570
|
+
/**
|
|
10571
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
10572
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
10573
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
10574
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
10575
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
10576
|
+
* how large the staged archive had grown.
|
|
10577
|
+
*/
|
|
10578
|
+
var BackupRunSchema = object({
|
|
10579
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
10580
|
+
id: string(),
|
|
10581
|
+
state: BackupRunStateSchema,
|
|
10582
|
+
phase: BackupRunPhaseSchema,
|
|
10583
|
+
/**
|
|
10584
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
10585
|
+
* resolved when the run starts, against the then-current policies).
|
|
10586
|
+
*/
|
|
10587
|
+
destinationIds: array(string()).readonly(),
|
|
10588
|
+
label: string().optional(),
|
|
10589
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
10590
|
+
requestedAt: number(),
|
|
10591
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
10592
|
+
startedAt: number().optional(),
|
|
10593
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
10594
|
+
finishedAt: number().optional(),
|
|
10595
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
10596
|
+
stagedBytes: number(),
|
|
10597
|
+
/** Final staged archive size, once the build phase completes. */
|
|
10598
|
+
archiveSizeBytes: number().optional(),
|
|
10599
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
10600
|
+
uploadedBytes: number(),
|
|
10601
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
10602
|
+
completedDestinationIds: array(string()).readonly(),
|
|
10603
|
+
/** Destinations that failed during the fan-out. */
|
|
10604
|
+
failedDestinationIds: array(string()).readonly(),
|
|
10605
|
+
/** Failure message when `state === 'failed'`. */
|
|
10606
|
+
error: string().optional(),
|
|
10607
|
+
/**
|
|
10608
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
10609
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
10610
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
10611
|
+
* UI cannot show an order the executor will not honour.
|
|
10612
|
+
*/
|
|
10613
|
+
queuePosition: number().int().min(1).optional()
|
|
10614
|
+
});
|
|
10615
|
+
/**
|
|
10616
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
10617
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
10618
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
10619
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
10620
|
+
* an identical already-queued run), never started concurrently.
|
|
10621
|
+
*/
|
|
10622
|
+
var BackupTriggerResultSchema = object({
|
|
10623
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
10624
|
+
runId: string(),
|
|
10625
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
10626
|
+
queued: boolean(),
|
|
10627
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
10628
|
+
joined: boolean(),
|
|
10629
|
+
/** True when the run was cancelled before completing every destination. */
|
|
10630
|
+
cancelled: boolean(),
|
|
10631
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
10632
|
+
entries: array(BackupEntrySchema).readonly()
|
|
10633
|
+
});
|
|
10551
10634
|
/**
|
|
10552
10635
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
10553
10636
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -10595,7 +10678,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
10595
10678
|
* retention (manual runs).
|
|
10596
10679
|
*/
|
|
10597
10680
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
10598
|
-
}).optional(),
|
|
10681
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
10682
|
+
kind: "mutation",
|
|
10683
|
+
auth: "admin"
|
|
10684
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
10599
10685
|
kind: "mutation",
|
|
10600
10686
|
auth: "admin"
|
|
10601
10687
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -11312,6 +11398,14 @@ method(object({
|
|
|
11312
11398
|
}), object({ success: literal(true) }), {
|
|
11313
11399
|
kind: "mutation",
|
|
11314
11400
|
auth: "admin"
|
|
11401
|
+
}), method(object({ deviceId: number().int().nonnegative() }), object({
|
|
11402
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
11403
|
+
assignmentsPurged: boolean(),
|
|
11404
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
11405
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
11406
|
+
}), {
|
|
11407
|
+
kind: "mutation",
|
|
11408
|
+
auth: "admin"
|
|
11315
11409
|
}), method(object({
|
|
11316
11410
|
deviceId: number(),
|
|
11317
11411
|
/** Absent = the LOWEST assigned profile — a notification attachment is
|
|
@@ -12521,7 +12615,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12521
12615
|
id: string(),
|
|
12522
12616
|
name: string(),
|
|
12523
12617
|
type: string()
|
|
12524
|
-
}))), method(object({
|
|
12618
|
+
}))), method(object({ stableId: string() }), object({ deviceId: number() }), {
|
|
12619
|
+
kind: "mutation",
|
|
12620
|
+
timeoutMs: 3 * 6e4
|
|
12621
|
+
}), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
|
|
12525
12622
|
kind: "mutation",
|
|
12526
12623
|
auth: "admin"
|
|
12527
12624
|
}), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
|
|
@@ -12802,7 +12899,8 @@ method(object({
|
|
|
12802
12899
|
targetId: number()
|
|
12803
12900
|
}), MigrateDeviceResultSchema, {
|
|
12804
12901
|
kind: "mutation",
|
|
12805
|
-
auth: "admin"
|
|
12902
|
+
auth: "admin",
|
|
12903
|
+
timeoutMs: 12 * 6e4
|
|
12806
12904
|
}), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
|
|
12807
12905
|
deviceId: number(),
|
|
12808
12906
|
name: string()
|
|
@@ -29420,6 +29518,12 @@ Object.freeze({
|
|
|
29420
29518
|
addonId: null,
|
|
29421
29519
|
access: "create"
|
|
29422
29520
|
},
|
|
29521
|
+
"backup.cancel": {
|
|
29522
|
+
capName: "backup",
|
|
29523
|
+
capScope: "system",
|
|
29524
|
+
addonId: null,
|
|
29525
|
+
access: "create"
|
|
29526
|
+
},
|
|
29423
29527
|
"backup.delete": {
|
|
29424
29528
|
capName: "backup",
|
|
29425
29529
|
capScope: "system",
|
|
@@ -29462,6 +29566,12 @@ Object.freeze({
|
|
|
29462
29566
|
addonId: null,
|
|
29463
29567
|
access: "view"
|
|
29464
29568
|
},
|
|
29569
|
+
"backup.listRuns": {
|
|
29570
|
+
capName: "backup",
|
|
29571
|
+
capScope: "system",
|
|
29572
|
+
addonId: null,
|
|
29573
|
+
access: "view"
|
|
29574
|
+
},
|
|
29465
29575
|
"backup.listSchedules": {
|
|
29466
29576
|
capName: "backup",
|
|
29467
29577
|
capScope: "system",
|
|
@@ -30662,6 +30772,12 @@ Object.freeze({
|
|
|
30662
30772
|
addonId: null,
|
|
30663
30773
|
access: "view"
|
|
30664
30774
|
},
|
|
30775
|
+
"deviceProvider.reloadDevice": {
|
|
30776
|
+
capName: "device-provider",
|
|
30777
|
+
capScope: "system",
|
|
30778
|
+
addonId: null,
|
|
30779
|
+
access: "create"
|
|
30780
|
+
},
|
|
30665
30781
|
"deviceProvider.start": {
|
|
30666
30782
|
capName: "device-provider",
|
|
30667
30783
|
capScope: "system",
|
|
@@ -34028,6 +34144,12 @@ Object.freeze({
|
|
|
34028
34144
|
addonId: null,
|
|
34029
34145
|
access: "create"
|
|
34030
34146
|
},
|
|
34147
|
+
"streamBroker.forgetDeviceHardware": {
|
|
34148
|
+
capName: "stream-broker",
|
|
34149
|
+
capScope: "system",
|
|
34150
|
+
addonId: null,
|
|
34151
|
+
access: "delete"
|
|
34152
|
+
},
|
|
34031
34153
|
"streamBroker.getAllRtspEntries": {
|
|
34032
34154
|
capName: "stream-broker",
|
|
34033
34155
|
capScope: "system",
|
|
@@ -36486,6 +36608,11 @@ Object.freeze({
|
|
|
36486
36608
|
form: "single",
|
|
36487
36609
|
optional: false
|
|
36488
36610
|
}],
|
|
36611
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
36612
|
+
name: "deviceId",
|
|
36613
|
+
form: "single",
|
|
36614
|
+
optional: false
|
|
36615
|
+
}],
|
|
36489
36616
|
"streamBroker.getDeviceAudioMute": [{
|
|
36490
36617
|
name: "deviceId",
|
|
36491
36618
|
form: "single",
|
package/dist/smtp.addon.mjs
CHANGED
|
@@ -10546,6 +10546,89 @@ var LocationStatSchema = object({
|
|
|
10546
10546
|
fileCount: number(),
|
|
10547
10547
|
present: boolean()
|
|
10548
10548
|
});
|
|
10549
|
+
/** Lifecycle of a backup run. Terminal states: succeeded / failed / cancelled. */
|
|
10550
|
+
var BackupRunStateSchema = _enum([
|
|
10551
|
+
"queued",
|
|
10552
|
+
"running",
|
|
10553
|
+
"succeeded",
|
|
10554
|
+
"failed",
|
|
10555
|
+
"cancelled"
|
|
10556
|
+
]);
|
|
10557
|
+
/**
|
|
10558
|
+
* Where a running backup currently is. `queued` before it starts,
|
|
10559
|
+
* `building` while the tar.gz is being staged, `uploading` during the
|
|
10560
|
+
* per-destination fan-out, `done` once terminal.
|
|
10561
|
+
*/
|
|
10562
|
+
var BackupRunPhaseSchema = _enum([
|
|
10563
|
+
"queued",
|
|
10564
|
+
"building",
|
|
10565
|
+
"uploading",
|
|
10566
|
+
"done"
|
|
10567
|
+
]);
|
|
10568
|
+
/**
|
|
10569
|
+
* Observable state of one backup run — readable WHILE it runs via
|
|
10570
|
+
* `backup.listRuns`. This is what makes the execution queue and
|
|
10571
|
+
* `backup.cancel` usable: the 2026-09-04 incident (two concurrent
|
|
10572
|
+
* multi-GB builds, staging 5.1 GB → 18 GB, load 62) was only
|
|
10573
|
+
* diagnosable with `du` because nothing reported that runs existed or
|
|
10574
|
+
* how large the staged archive had grown.
|
|
10575
|
+
*/
|
|
10576
|
+
var BackupRunSchema = object({
|
|
10577
|
+
/** Stable run id — the handle `backup.cancel` takes. */
|
|
10578
|
+
id: string(),
|
|
10579
|
+
state: BackupRunStateSchema,
|
|
10580
|
+
phase: BackupRunPhaseSchema,
|
|
10581
|
+
/**
|
|
10582
|
+
* Resolved destination location ids. Empty while queued (targets are
|
|
10583
|
+
* resolved when the run starts, against the then-current policies).
|
|
10584
|
+
*/
|
|
10585
|
+
destinationIds: array(string()).readonly(),
|
|
10586
|
+
label: string().optional(),
|
|
10587
|
+
/** ms-epoch when the run was submitted (trigger call / schedule fire). */
|
|
10588
|
+
requestedAt: number(),
|
|
10589
|
+
/** ms-epoch when the run left the queue and started building. */
|
|
10590
|
+
startedAt: number().optional(),
|
|
10591
|
+
/** ms-epoch when the run reached a terminal state. */
|
|
10592
|
+
finishedAt: number().optional(),
|
|
10593
|
+
/** Compressed bytes of the staging archive written so far. */
|
|
10594
|
+
stagedBytes: number(),
|
|
10595
|
+
/** Final staged archive size, once the build phase completes. */
|
|
10596
|
+
archiveSizeBytes: number().optional(),
|
|
10597
|
+
/** Bytes pushed to the destination currently uploading. */
|
|
10598
|
+
uploadedBytes: number(),
|
|
10599
|
+
/** Destinations where the archive fully landed (uploaded + indexed). */
|
|
10600
|
+
completedDestinationIds: array(string()).readonly(),
|
|
10601
|
+
/** Destinations that failed during the fan-out. */
|
|
10602
|
+
failedDestinationIds: array(string()).readonly(),
|
|
10603
|
+
/** Failure message when `state === 'failed'`. */
|
|
10604
|
+
error: string().optional(),
|
|
10605
|
+
/**
|
|
10606
|
+
* 1-based place in the execution queue — 1 = runs next. Present only
|
|
10607
|
+
* while `state === 'queued'`. Stamped by the orchestrator from the
|
|
10608
|
+
* queue's OWN pending order, never derived from timestamps, so the
|
|
10609
|
+
* UI cannot show an order the executor will not honour.
|
|
10610
|
+
*/
|
|
10611
|
+
queuePosition: number().int().min(1).optional()
|
|
10612
|
+
});
|
|
10613
|
+
/**
|
|
10614
|
+
* Result of `backup.trigger`. The call still resolves when the run
|
|
10615
|
+
* terminates (compat with schedule-driven runs and the admin UI), but
|
|
10616
|
+
* it now names the run and says whether it had to WAIT: a trigger that
|
|
10617
|
+
* arrives while another run is in flight is enqueued (or joined onto
|
|
10618
|
+
* an identical already-queued run), never started concurrently.
|
|
10619
|
+
*/
|
|
10620
|
+
var BackupTriggerResultSchema = object({
|
|
10621
|
+
/** The run this trigger mapped to — poll it via `listRuns`, stop it via `cancel`. */
|
|
10622
|
+
runId: string(),
|
|
10623
|
+
/** True when the run waited behind an in-flight run instead of starting immediately. */
|
|
10624
|
+
queued: boolean(),
|
|
10625
|
+
/** True when this trigger was coalesced onto an identical already-queued run. */
|
|
10626
|
+
joined: boolean(),
|
|
10627
|
+
/** True when the run was cancelled before completing every destination. */
|
|
10628
|
+
cancelled: boolean(),
|
|
10629
|
+
/** One entry per destination the archive landed at (partial on cancel). */
|
|
10630
|
+
entries: array(BackupEntrySchema).readonly()
|
|
10631
|
+
});
|
|
10549
10632
|
/**
|
|
10550
10633
|
* A backup schedule — the N:M "entry" that binds one cron cadence to a
|
|
10551
10634
|
* SET of destination locations. Supersedes the per-location cron on
|
|
@@ -10593,7 +10676,10 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
10593
10676
|
* retention (manual runs).
|
|
10594
10677
|
*/
|
|
10595
10678
|
retentionCount: number().int().min(1).max(1e3).optional()
|
|
10596
|
-
}).optional(),
|
|
10679
|
+
}).optional(), BackupTriggerResultSchema, {
|
|
10680
|
+
kind: "mutation",
|
|
10681
|
+
auth: "admin"
|
|
10682
|
+
}), method(_void(), array(BackupRunSchema).readonly(), { auth: "admin" }), method(object({ runId: string() }), object({ cancelled: boolean() }), {
|
|
10597
10683
|
kind: "mutation",
|
|
10598
10684
|
auth: "admin"
|
|
10599
10685
|
}), method(_void(), array(BackupEntrySchema).readonly(), { auth: "admin" }), method(_void(), array(LocationStatSchema).readonly(), { auth: "admin" }), method(object({
|
|
@@ -11310,6 +11396,14 @@ method(object({
|
|
|
11310
11396
|
}), object({ success: literal(true) }), {
|
|
11311
11397
|
kind: "mutation",
|
|
11312
11398
|
auth: "admin"
|
|
11399
|
+
}), method(object({ deviceId: number().int().nonnegative() }), object({
|
|
11400
|
+
derivedStreamsDeleted: array(string()).readonly(),
|
|
11401
|
+
assignmentsPurged: boolean(),
|
|
11402
|
+
probeSnapshotsDropped: number().int().nonnegative(),
|
|
11403
|
+
rtspTokenRowsDeleted: number().int().nonnegative()
|
|
11404
|
+
}), {
|
|
11405
|
+
kind: "mutation",
|
|
11406
|
+
auth: "admin"
|
|
11313
11407
|
}), method(object({
|
|
11314
11408
|
deviceId: number(),
|
|
11315
11409
|
/** Absent = the LOWEST assigned profile — a notification attachment is
|
|
@@ -12519,7 +12613,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
|
|
|
12519
12613
|
id: string(),
|
|
12520
12614
|
name: string(),
|
|
12521
12615
|
type: string()
|
|
12522
|
-
}))), method(object({
|
|
12616
|
+
}))), method(object({ stableId: string() }), object({ deviceId: number() }), {
|
|
12617
|
+
kind: "mutation",
|
|
12618
|
+
timeoutMs: 3 * 6e4
|
|
12619
|
+
}), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
|
|
12523
12620
|
kind: "mutation",
|
|
12524
12621
|
auth: "admin"
|
|
12525
12622
|
}), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
|
|
@@ -12800,7 +12897,8 @@ method(object({
|
|
|
12800
12897
|
targetId: number()
|
|
12801
12898
|
}), MigrateDeviceResultSchema, {
|
|
12802
12899
|
kind: "mutation",
|
|
12803
|
-
auth: "admin"
|
|
12900
|
+
auth: "admin",
|
|
12901
|
+
timeoutMs: 12 * 6e4
|
|
12804
12902
|
}), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
|
|
12805
12903
|
deviceId: number(),
|
|
12806
12904
|
name: string()
|
|
@@ -29418,6 +29516,12 @@ Object.freeze({
|
|
|
29418
29516
|
addonId: null,
|
|
29419
29517
|
access: "create"
|
|
29420
29518
|
},
|
|
29519
|
+
"backup.cancel": {
|
|
29520
|
+
capName: "backup",
|
|
29521
|
+
capScope: "system",
|
|
29522
|
+
addonId: null,
|
|
29523
|
+
access: "create"
|
|
29524
|
+
},
|
|
29421
29525
|
"backup.delete": {
|
|
29422
29526
|
capName: "backup",
|
|
29423
29527
|
capScope: "system",
|
|
@@ -29460,6 +29564,12 @@ Object.freeze({
|
|
|
29460
29564
|
addonId: null,
|
|
29461
29565
|
access: "view"
|
|
29462
29566
|
},
|
|
29567
|
+
"backup.listRuns": {
|
|
29568
|
+
capName: "backup",
|
|
29569
|
+
capScope: "system",
|
|
29570
|
+
addonId: null,
|
|
29571
|
+
access: "view"
|
|
29572
|
+
},
|
|
29463
29573
|
"backup.listSchedules": {
|
|
29464
29574
|
capName: "backup",
|
|
29465
29575
|
capScope: "system",
|
|
@@ -30660,6 +30770,12 @@ Object.freeze({
|
|
|
30660
30770
|
addonId: null,
|
|
30661
30771
|
access: "view"
|
|
30662
30772
|
},
|
|
30773
|
+
"deviceProvider.reloadDevice": {
|
|
30774
|
+
capName: "device-provider",
|
|
30775
|
+
capScope: "system",
|
|
30776
|
+
addonId: null,
|
|
30777
|
+
access: "create"
|
|
30778
|
+
},
|
|
30663
30779
|
"deviceProvider.start": {
|
|
30664
30780
|
capName: "device-provider",
|
|
30665
30781
|
capScope: "system",
|
|
@@ -34026,6 +34142,12 @@ Object.freeze({
|
|
|
34026
34142
|
addonId: null,
|
|
34027
34143
|
access: "create"
|
|
34028
34144
|
},
|
|
34145
|
+
"streamBroker.forgetDeviceHardware": {
|
|
34146
|
+
capName: "stream-broker",
|
|
34147
|
+
capScope: "system",
|
|
34148
|
+
addonId: null,
|
|
34149
|
+
access: "delete"
|
|
34150
|
+
},
|
|
34029
34151
|
"streamBroker.getAllRtspEntries": {
|
|
34030
34152
|
capName: "stream-broker",
|
|
34031
34153
|
capScope: "system",
|
|
@@ -36484,6 +36606,11 @@ Object.freeze({
|
|
|
36484
36606
|
form: "single",
|
|
36485
36607
|
optional: false
|
|
36486
36608
|
}],
|
|
36609
|
+
"streamBroker.forgetDeviceHardware": [{
|
|
36610
|
+
name: "deviceId",
|
|
36611
|
+
form: "single",
|
|
36612
|
+
optional: false
|
|
36613
|
+
}],
|
|
36487
36614
|
"streamBroker.getDeviceAudioMute": [{
|
|
36488
36615
|
name: "deviceId",
|
|
36489
36616
|
form: "single",
|
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.59",
|
|
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",
|