@camstack/addon-smtp-nodemailer 1.1.7 → 1.1.8
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 +79 -14
- package/dist/smtp.addon.mjs +79 -14
- package/package.json +1 -1
package/dist/smtp.addon.js
CHANGED
|
@@ -8994,18 +8994,47 @@ object({
|
|
|
8994
8994
|
lastUpdated: number().nullable()
|
|
8995
8995
|
});
|
|
8996
8996
|
DeviceType.Image;
|
|
8997
|
+
/**
|
|
8998
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
8999
|
+
* with a mowing lifecycle plus a dock action.
|
|
9000
|
+
*
|
|
9001
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9002
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9003
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9004
|
+
*
|
|
9005
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9006
|
+
* `dock` sends the mower back to its charging station.
|
|
9007
|
+
*/
|
|
9008
|
+
var LawnMowerActivitySchema = _enum([
|
|
9009
|
+
"idle",
|
|
9010
|
+
"mowing",
|
|
9011
|
+
"paused",
|
|
9012
|
+
"docked",
|
|
9013
|
+
"error"
|
|
9014
|
+
]);
|
|
9015
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9016
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9017
|
+
"info",
|
|
9018
|
+
"warning",
|
|
9019
|
+
"error"
|
|
9020
|
+
]);
|
|
8997
9021
|
object({
|
|
8998
9022
|
/** Lifecycle activity of the mower. */
|
|
8999
|
-
activity:
|
|
9000
|
-
"idle",
|
|
9001
|
-
"mowing",
|
|
9002
|
-
"paused",
|
|
9003
|
-
"docked",
|
|
9004
|
-
"error"
|
|
9005
|
-
]),
|
|
9023
|
+
activity: LawnMowerActivitySchema,
|
|
9006
9024
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9007
9025
|
* reading. */
|
|
9008
9026
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
9027
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9028
|
+
* task is active / progress is unavailable. */
|
|
9029
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
9030
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9031
|
+
* or null when unknown. */
|
|
9032
|
+
currentCode: number().nullable(),
|
|
9033
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9034
|
+
currentCodeLabel: string().nullable(),
|
|
9035
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9036
|
+
* attention; `info` is normal status. */
|
|
9037
|
+
severity: DeviceCodeSeveritySchema,
|
|
9009
9038
|
/** Ms epoch when the slice was last updated. */
|
|
9010
9039
|
lastChangedAt: number()
|
|
9011
9040
|
});
|
|
@@ -10580,6 +10609,7 @@ var VacuumStateSchema = _enum([
|
|
|
10580
10609
|
"paused",
|
|
10581
10610
|
"returning",
|
|
10582
10611
|
"docked",
|
|
10612
|
+
"drying",
|
|
10583
10613
|
"error"
|
|
10584
10614
|
]);
|
|
10585
10615
|
/**
|
|
@@ -10618,6 +10648,12 @@ object({
|
|
|
10618
10648
|
detergent: TankStatusSchema.nullable(),
|
|
10619
10649
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10620
10650
|
dustBin: TankStatusSchema.nullable(),
|
|
10651
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10652
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
10653
|
+
/** Current error code (0 / null = no error). */
|
|
10654
|
+
errorCode: number().nullable(),
|
|
10655
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10656
|
+
errorLabel: string().nullable(),
|
|
10621
10657
|
/** Ms epoch when the slice was last updated. */
|
|
10622
10658
|
lastChangedAt: number()
|
|
10623
10659
|
});
|
|
@@ -12072,17 +12108,32 @@ var ReleaseInputSchema = object({
|
|
|
12072
12108
|
* the parent cascades into every accessory. */
|
|
12073
12109
|
camDeviceId: number().int().nonnegative()
|
|
12074
12110
|
});
|
|
12075
|
-
var ResyncInputSchema = object({
|
|
12076
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12077
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12078
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12079
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12080
|
-
camDeviceId: number().int().nonnegative()
|
|
12111
|
+
var ResyncInputSchema = object({
|
|
12112
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12113
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12114
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12115
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12116
|
+
camDeviceId: number().int().nonnegative(),
|
|
12117
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12118
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12119
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12120
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12121
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12122
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12123
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12124
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12125
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12126
|
+
* re-sync that preserves children. */
|
|
12127
|
+
resetToSource: boolean().optional()
|
|
12128
|
+
});
|
|
12081
12129
|
var ResyncResultSchema = object({
|
|
12082
12130
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12083
12131
|
changed: boolean(),
|
|
12084
12132
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12085
|
-
rebuiltChildren: number().int().nonnegative()
|
|
12133
|
+
rebuiltChildren: number().int().nonnegative(),
|
|
12134
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12135
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12136
|
+
removedChildren: number().int().nonnegative().optional()
|
|
12086
12137
|
});
|
|
12087
12138
|
method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }), method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }), method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }), method(object({ integrationId: string() }), AdoptionStatusSchema, {
|
|
12088
12139
|
kind: "mutation",
|
|
@@ -13781,6 +13832,11 @@ var DeviceMetaSchema = object({
|
|
|
13781
13832
|
addonId: string(),
|
|
13782
13833
|
type: string(),
|
|
13783
13834
|
name: string(),
|
|
13835
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
13836
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
13837
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
13838
|
+
* `DeviceMeta.userNamed`. */
|
|
13839
|
+
userNamed: boolean().optional(),
|
|
13784
13840
|
location: string().nullable(),
|
|
13785
13841
|
disabled: boolean(),
|
|
13786
13842
|
parentDeviceId: number().nullable(),
|
|
@@ -14091,6 +14147,9 @@ method(object({
|
|
|
14091
14147
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14092
14148
|
kind: "mutation",
|
|
14093
14149
|
auth: "admin"
|
|
14150
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14151
|
+
kind: "mutation",
|
|
14152
|
+
auth: "admin"
|
|
14094
14153
|
}), method(object({
|
|
14095
14154
|
deviceId: number(),
|
|
14096
14155
|
key: string(),
|
|
@@ -17853,6 +17912,12 @@ Object.freeze({
|
|
|
17853
17912
|
addonId: null,
|
|
17854
17913
|
access: "create"
|
|
17855
17914
|
},
|
|
17915
|
+
"deviceManager.adoptionResync": {
|
|
17916
|
+
capName: "device-manager",
|
|
17917
|
+
capScope: "system",
|
|
17918
|
+
addonId: null,
|
|
17919
|
+
access: "create"
|
|
17920
|
+
},
|
|
17856
17921
|
"deviceManager.allocateDeviceId": {
|
|
17857
17922
|
capName: "device-manager",
|
|
17858
17923
|
capScope: "system",
|
package/dist/smtp.addon.mjs
CHANGED
|
@@ -8992,18 +8992,47 @@ object({
|
|
|
8992
8992
|
lastUpdated: number().nullable()
|
|
8993
8993
|
});
|
|
8994
8994
|
DeviceType.Image;
|
|
8995
|
+
/**
|
|
8996
|
+
* Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
|
|
8997
|
+
* with a mowing lifecycle plus a dock action.
|
|
8998
|
+
*
|
|
8999
|
+
* Activity follows HA's canonical lawn-mower lifecycle: `idle` /
|
|
9000
|
+
* `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
|
|
9001
|
+
* nullable — some mowers don't report a battery percentage.
|
|
9002
|
+
*
|
|
9003
|
+
* `startMowing` begins a mowing run, `pause` halts it in place, and
|
|
9004
|
+
* `dock` sends the mower back to its charging station.
|
|
9005
|
+
*/
|
|
9006
|
+
var LawnMowerActivitySchema = _enum([
|
|
9007
|
+
"idle",
|
|
9008
|
+
"mowing",
|
|
9009
|
+
"paused",
|
|
9010
|
+
"docked",
|
|
9011
|
+
"error"
|
|
9012
|
+
]);
|
|
9013
|
+
/** Severity of the current device/error code — info (status), warning, error. */
|
|
9014
|
+
var DeviceCodeSeveritySchema = _enum([
|
|
9015
|
+
"info",
|
|
9016
|
+
"warning",
|
|
9017
|
+
"error"
|
|
9018
|
+
]);
|
|
8995
9019
|
object({
|
|
8996
9020
|
/** Lifecycle activity of the mower. */
|
|
8997
|
-
activity:
|
|
8998
|
-
"idle",
|
|
8999
|
-
"mowing",
|
|
9000
|
-
"paused",
|
|
9001
|
-
"docked",
|
|
9002
|
-
"error"
|
|
9003
|
-
]),
|
|
9021
|
+
activity: LawnMowerActivitySchema,
|
|
9004
9022
|
/** 0..100 battery percentage. Null when the device has no battery
|
|
9005
9023
|
* reading. */
|
|
9006
9024
|
batteryLevel: number().min(0).max(100).nullable(),
|
|
9025
|
+
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
9026
|
+
* task is active / progress is unavailable. */
|
|
9027
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
9028
|
+
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
9029
|
+
* or null when unknown. */
|
|
9030
|
+
currentCode: number().nullable(),
|
|
9031
|
+
/** Human label for {@link currentCode}, or null when undecodable. */
|
|
9032
|
+
currentCodeLabel: string().nullable(),
|
|
9033
|
+
/** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
|
|
9034
|
+
* attention; `info` is normal status. */
|
|
9035
|
+
severity: DeviceCodeSeveritySchema,
|
|
9007
9036
|
/** Ms epoch when the slice was last updated. */
|
|
9008
9037
|
lastChangedAt: number()
|
|
9009
9038
|
});
|
|
@@ -10578,6 +10607,7 @@ var VacuumStateSchema = _enum([
|
|
|
10578
10607
|
"paused",
|
|
10579
10608
|
"returning",
|
|
10580
10609
|
"docked",
|
|
10610
|
+
"drying",
|
|
10581
10611
|
"error"
|
|
10582
10612
|
]);
|
|
10583
10613
|
/**
|
|
@@ -10616,6 +10646,12 @@ object({
|
|
|
10616
10646
|
detergent: TankStatusSchema.nullable(),
|
|
10617
10647
|
/** Dust bin. Null when the hardware has no dust bin. */
|
|
10618
10648
|
dustBin: TankStatusSchema.nullable(),
|
|
10649
|
+
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
10650
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
10651
|
+
/** Current error code (0 / null = no error). */
|
|
10652
|
+
errorCode: number().nullable(),
|
|
10653
|
+
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
10654
|
+
errorLabel: string().nullable(),
|
|
10619
10655
|
/** Ms epoch when the slice was last updated. */
|
|
10620
10656
|
lastChangedAt: number()
|
|
10621
10657
|
});
|
|
@@ -12070,17 +12106,32 @@ var ReleaseInputSchema = object({
|
|
|
12070
12106
|
* the parent cascades into every accessory. */
|
|
12071
12107
|
camDeviceId: number().int().nonnegative()
|
|
12072
12108
|
});
|
|
12073
|
-
var ResyncInputSchema = object({
|
|
12074
|
-
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12075
|
-
* source (integration/broker + native id) and re-aligns the device's
|
|
12076
|
-
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12077
|
-
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12078
|
-
camDeviceId: number().int().nonnegative()
|
|
12109
|
+
var ResyncInputSchema = object({
|
|
12110
|
+
/** Parent CamStack device id of an adopted device. The provider resolves its
|
|
12111
|
+
* source (integration/broker + native id) and re-aligns the device's
|
|
12112
|
+
* structural spec (type/role/capabilities/units) with the live mapping,
|
|
12113
|
+
* rebuilding any child whose class changed while preserving operator edits. */
|
|
12114
|
+
camDeviceId: number().int().nonnegative(),
|
|
12115
|
+
/** "Resync from zero" (#19). When true, the kernel PURGES every accessory
|
|
12116
|
+
* child of `camDeviceId` BEFORE the provider re-derives the device, so the
|
|
12117
|
+
* children are rebuilt fresh from source — correct names, coords, and units —
|
|
12118
|
+
* instead of being preserved by the incremental reconcile. Use to recover from
|
|
12119
|
+
* legacy generic/placeholder names that the normal name-precedence keeps frozen
|
|
12120
|
+
* (the operator's explicit reset). Push-driven integrations (no-op resync)
|
|
12121
|
+
* rebuild on their next snapshot; pull/command integrations rebuild in `resync`.
|
|
12122
|
+
* Operator edits on the PARENT (its name, layout, primary-child pick) survive —
|
|
12123
|
+
* only the children are torn down. Omitted/false ⇒ the normal incremental
|
|
12124
|
+
* re-sync that preserves children. */
|
|
12125
|
+
resetToSource: boolean().optional()
|
|
12126
|
+
});
|
|
12079
12127
|
var ResyncResultSchema = object({
|
|
12080
12128
|
/** True when the persisted spec actually changed (children may have been rebuilt). */
|
|
12081
12129
|
changed: boolean(),
|
|
12082
12130
|
/** Number of child devices rebuilt into a new class by this re-sync. */
|
|
12083
|
-
rebuiltChildren: number().int().nonnegative()
|
|
12131
|
+
rebuiltChildren: number().int().nonnegative(),
|
|
12132
|
+
/** Number of accessory children torn down by a `resetToSource` purge before the
|
|
12133
|
+
* provider re-derived the device. 0/absent for a normal incremental re-sync. */
|
|
12134
|
+
removedChildren: number().int().nonnegative().optional()
|
|
12084
12135
|
});
|
|
12085
12136
|
method(object({ integrationId: string() }), object({ filters: array(AdoptionFilterSchema) }), { auth: "admin" }), method(ListCandidatesInputSchema, ListCandidatesOutputSchema, { auth: "admin" }), method(GetCandidateInputSchema, DiscoveredChildDeviceSchema.nullable(), { auth: "admin" }), method(object({ integrationId: string() }), AdoptionStatusSchema, {
|
|
12086
12137
|
kind: "mutation",
|
|
@@ -13779,6 +13830,11 @@ var DeviceMetaSchema = object({
|
|
|
13779
13830
|
addonId: string(),
|
|
13780
13831
|
type: string(),
|
|
13781
13832
|
name: string(),
|
|
13833
|
+
/** True once an operator explicitly renamed the device via `setName`. Drives
|
|
13834
|
+
* reconcile name-precedence (preserve operator name vs adopt fresh provider
|
|
13835
|
+
* name). Absent ⇒ treated as user-named (PRESERVE) for legacy rows. See
|
|
13836
|
+
* `DeviceMeta.userNamed`. */
|
|
13837
|
+
userNamed: boolean().optional(),
|
|
13782
13838
|
location: string().nullable(),
|
|
13783
13839
|
disabled: boolean(),
|
|
13784
13840
|
parentDeviceId: number().nullable(),
|
|
@@ -14089,6 +14145,9 @@ method(object({
|
|
|
14089
14145
|
}), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
|
|
14090
14146
|
kind: "mutation",
|
|
14091
14147
|
auth: "admin"
|
|
14148
|
+
}), method(ResyncInputSchema, ResyncResultSchema, {
|
|
14149
|
+
kind: "mutation",
|
|
14150
|
+
auth: "admin"
|
|
14092
14151
|
}), method(object({
|
|
14093
14152
|
deviceId: number(),
|
|
14094
14153
|
key: string(),
|
|
@@ -17851,6 +17910,12 @@ Object.freeze({
|
|
|
17851
17910
|
addonId: null,
|
|
17852
17911
|
access: "create"
|
|
17853
17912
|
},
|
|
17913
|
+
"deviceManager.adoptionResync": {
|
|
17914
|
+
capName: "device-manager",
|
|
17915
|
+
capScope: "system",
|
|
17916
|
+
addonId: null,
|
|
17917
|
+
access: "create"
|
|
17918
|
+
},
|
|
17854
17919
|
"deviceManager.allocateDeviceId": {
|
|
17855
17920
|
capName: "device-manager",
|
|
17856
17921
|
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.8",
|
|
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",
|