@homebridge-plugins/homebridge-august 3.1.3 → 3.2.0

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/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## [3.1.4](https://github.com/homebridge-plugins/homebridge-august/compare/v3.1.3...v3.1.4) (2026-04-27)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **platform:** destroy August client on session refresh instead of end() ([a12f2b3](https://github.com/homebridge-plugins/homebridge-august/commit/a12f2b328263523eef3b2549383f00ce6dfbf0a1))
7
+
8
+
9
+ ### Features
10
+
11
+ * **lock:** wire PubNub reconnect signal into ConnectivityManager ([462b22c](https://github.com/homebridge-plugins/homebridge-august/commit/462b22c5b53e125d3ec31eceea538a74360f5760))
12
+ * **platform:** add ConnectivityManager (unwired) ([6377ac4](https://github.com/homebridge-plugins/homebridge-august/commit/6377ac435320aa884e82b32f25f163b2bd9fde6a))
13
+ * **platform:** platform-level serial poller, drop per-lock interval/retry ([aa973a4](https://github.com/homebridge-plugins/homebridge-august/commit/aa973a4e46cd4252f335a5c6988f94148cafefbf))
14
+ * **platform:** route pushChanges through ConnectivityManager ([41080f4](https://github.com/homebridge-plugins/homebridge-august/commit/41080f490cd71b504e22f56a80ae6e1c8c9eb016))
15
+ * **platform:** wire ConnectivityManager into AugustPlatform ([0ce28e3](https://github.com/homebridge-plugins/homebridge-august/commit/0ce28e359a68720ed278e17097f61262ea8705b4))
16
+
17
+
18
+
1
19
  ## [3.1.2](https://github.com/homebridge-plugins/homebridge-august/compare/v3.1.1...v3.1.2) (2026-04-18)
2
20
 
3
21
  ### Bug Fixes
@@ -0,0 +1,89 @@
1
+ import type { Logging } from 'homebridge';
2
+ import type { credentials } from './settings.js';
3
+ import August from 'august-yale';
4
+ export type ConnectivityState = 'healthy' | 'degraded' | 'offline' | 'recovering';
5
+ interface ExecuteOptions {
6
+ /**
7
+ * When true, OfflineError is thrown instead of returning undefined when
8
+ * the manager is offline. Used for user-initiated calls (lock/unlock)
9
+ * where HomeKit needs to see a real failure rather than a silent no-op.
10
+ */
11
+ throwOnOffline?: boolean;
12
+ }
13
+ export declare class OfflineError extends Error {
14
+ constructor(label: string);
15
+ }
16
+ export declare class ConnectivityManager {
17
+ private readonly log;
18
+ private readonly credentialsFactory;
19
+ /**
20
+ * Called whenever the manager builds or rebuilds the August client.
21
+ * The platform uses this to keep its public `augustConfig` field in
22
+ * sync, so existing call sites that read `platform.augustConfig`
23
+ * continue to see the current client without going through the
24
+ * manager's accessor.
25
+ */
26
+ private readonly onClientChanged;
27
+ private state;
28
+ private client?;
29
+ private probeTimer?;
30
+ private backoffIndex;
31
+ private rebuildInFlight?;
32
+ private listeners;
33
+ constructor(log: Logging, credentialsFactory: () => Promise<credentials>,
34
+ /**
35
+ * Called whenever the manager builds or rebuilds the August client.
36
+ * The platform uses this to keep its public `augustConfig` field in
37
+ * sync, so existing call sites that read `platform.augustConfig`
38
+ * continue to see the current client without going through the
39
+ * manager's accessor.
40
+ */
41
+ onClientChanged?: (client: August | undefined) => void);
42
+ init(): Promise<void>;
43
+ /**
44
+ * Single entry point for every August API call. Wraps the call,
45
+ * classifies any error, and updates connectivity state.
46
+ *
47
+ * Default behavior: returns undefined when state is 'offline' or when
48
+ * the call fails with a network/auth error. The platform-level poller
49
+ * treats undefined as 'skip this cycle'. Set throwOnOffline:true for
50
+ * user-initiated calls (lock/unlock) where HomeKit needs to see a
51
+ * real failure.
52
+ *
53
+ * Transient errors (4xx other than 401) are always rethrown — they're
54
+ * not connectivity issues and the caller needs to handle them.
55
+ */
56
+ execute<T>(label: string, fn: (client: August) => Promise<T>, opts?: ExecuteOptions): Promise<T | undefined>;
57
+ /**
58
+ * External signal: PubNub WebSocket reported a (re)connection. PubNub
59
+ * recovers from a network blip seconds before HTTP polling would notice,
60
+ * so this is the fastest path back to healthy. Triggers an immediate
61
+ * probe that bypasses the current backoff delay.
62
+ */
63
+ onPubNubReconnect(): void;
64
+ getState(): ConnectivityState;
65
+ /**
66
+ * Returns the current August client. Used by code paths that need
67
+ * direct access (e.g. addSimpleProps, which is a pure utility) and
68
+ * during the transition period while not all callers are routed
69
+ * through execute(). New code should prefer execute().
70
+ */
71
+ getClient(): August | undefined;
72
+ /**
73
+ * Subscribe to connectivity state changes. Used by the platform-level
74
+ * poller to pause polling when offline and resume when healthy.
75
+ * Returns an unsubscribe function.
76
+ */
77
+ onStateChange(l: (next: ConnectivityState, prev: ConnectivityState) => void): () => void;
78
+ shutdown(): void;
79
+ private reportSuccess;
80
+ private reportFailure;
81
+ private scheduleProbe;
82
+ private runProbe;
83
+ private rebuildClient;
84
+ private classify;
85
+ private transitionTo;
86
+ private clearProbeTimer;
87
+ }
88
+ export {};
89
+ //# sourceMappingURL=connectivity-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-manager.d.ts","sourceRoot":"","sources":["../src/connectivity-manager.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,MAAiE,MAAM,aAAa,CAAA;AAE3F,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAA;AAcjF,UAAU,cAAc;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,KAAK,EAAE,MAAM;CAI1B;AAED,qBAAa,mBAAmB;IAS5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe;IAjBlC,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,eAAe,CAAC,CAAe;IACvC,OAAO,CAAC,SAAS,CAAwE;gBAGtE,GAAG,EAAE,OAAO,EACZ,kBAAkB,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC;IAC/D;;;;;;OAMG;IACc,eAAe,GAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,IAAe;IAG7E,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EAClC,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAgCzB;;;;;OAKG;IACH,iBAAiB,IAAI,IAAI;IASzB,QAAQ,IAAI,iBAAiB;IAI7B;;;;;OAKG;IACH,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKxF,QAAQ,IAAI,IAAI;IAUhB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,aAAa;YAQP,QAAQ;YA8BR,aAAa;IAkB3B,OAAO,CAAC,QAAQ;IAkDhB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;CAMxB"}
@@ -0,0 +1,283 @@
1
+ import August, { AbortedError, InvalidAuth, NetworkError, TimeoutError } from 'august-yale';
2
+ /**
3
+ * Backoff schedule for probes after the network is detected as broken.
4
+ * Capped at 5 minutes; ±10% jitter is applied at use to avoid synchronized
5
+ * probes across instances during ISP-level events.
6
+ */
7
+ const BACKOFF_SCHEDULE_MS = [5_000, 10_000, 20_000, 40_000, 80_000, 160_000, 300_000];
8
+ /** Probe timeout — short on purpose. A healthy August API responds in <1s. */
9
+ const PROBE_TIMEOUT_MS = 8_000;
10
+ export class OfflineError extends Error {
11
+ constructor(label) {
12
+ super(`Operation skipped — connectivity is offline: ${label}`);
13
+ this.name = 'OfflineError';
14
+ }
15
+ }
16
+ export class ConnectivityManager {
17
+ log;
18
+ credentialsFactory;
19
+ onClientChanged;
20
+ state = 'healthy';
21
+ client;
22
+ probeTimer;
23
+ backoffIndex = 0;
24
+ rebuildInFlight;
25
+ listeners = new Set();
26
+ constructor(log, credentialsFactory,
27
+ /**
28
+ * Called whenever the manager builds or rebuilds the August client.
29
+ * The platform uses this to keep its public `augustConfig` field in
30
+ * sync, so existing call sites that read `platform.augustConfig`
31
+ * continue to see the current client without going through the
32
+ * manager's accessor.
33
+ */
34
+ onClientChanged = () => { }) {
35
+ this.log = log;
36
+ this.credentialsFactory = credentialsFactory;
37
+ this.onClientChanged = onClientChanged;
38
+ }
39
+ async init() {
40
+ if (this.client) {
41
+ return;
42
+ }
43
+ this.client = new August(await this.credentialsFactory());
44
+ this.onClientChanged(this.client);
45
+ }
46
+ /**
47
+ * Single entry point for every August API call. Wraps the call,
48
+ * classifies any error, and updates connectivity state.
49
+ *
50
+ * Default behavior: returns undefined when state is 'offline' or when
51
+ * the call fails with a network/auth error. The platform-level poller
52
+ * treats undefined as 'skip this cycle'. Set throwOnOffline:true for
53
+ * user-initiated calls (lock/unlock) where HomeKit needs to see a
54
+ * real failure.
55
+ *
56
+ * Transient errors (4xx other than 401) are always rethrown — they're
57
+ * not connectivity issues and the caller needs to handle them.
58
+ */
59
+ async execute(label, fn, opts = {}) {
60
+ if (this.state === 'offline') {
61
+ if (opts.throwOnOffline) {
62
+ throw new OfflineError(label);
63
+ }
64
+ return undefined;
65
+ }
66
+ if (!this.client) {
67
+ if (opts.throwOnOffline) {
68
+ throw new OfflineError(label);
69
+ }
70
+ return undefined;
71
+ }
72
+ try {
73
+ const result = await fn(this.client);
74
+ this.reportSuccess();
75
+ return result;
76
+ }
77
+ catch (e) {
78
+ const kind = this.classify(e);
79
+ this.reportFailure(label, kind);
80
+ if (kind === 'transient') {
81
+ // Not a connectivity issue — let the caller see the real error.
82
+ throw e;
83
+ }
84
+ if (opts.throwOnOffline) {
85
+ throw e;
86
+ }
87
+ return undefined;
88
+ }
89
+ }
90
+ /**
91
+ * External signal: PubNub WebSocket reported a (re)connection. PubNub
92
+ * recovers from a network blip seconds before HTTP polling would notice,
93
+ * so this is the fastest path back to healthy. Triggers an immediate
94
+ * probe that bypasses the current backoff delay.
95
+ */
96
+ onPubNubReconnect() {
97
+ if (this.state === 'healthy') {
98
+ return;
99
+ }
100
+ this.log.info('Connectivity: PubNub reconnect signal received — probing immediately');
101
+ this.clearProbeTimer();
102
+ void this.runProbe();
103
+ }
104
+ getState() {
105
+ return this.state;
106
+ }
107
+ /**
108
+ * Returns the current August client. Used by code paths that need
109
+ * direct access (e.g. addSimpleProps, which is a pure utility) and
110
+ * during the transition period while not all callers are routed
111
+ * through execute(). New code should prefer execute().
112
+ */
113
+ getClient() {
114
+ return this.client;
115
+ }
116
+ /**
117
+ * Subscribe to connectivity state changes. Used by the platform-level
118
+ * poller to pause polling when offline and resume when healthy.
119
+ * Returns an unsubscribe function.
120
+ */
121
+ onStateChange(l) {
122
+ this.listeners.add(l);
123
+ return () => this.listeners.delete(l);
124
+ }
125
+ shutdown() {
126
+ this.clearProbeTimer();
127
+ this.client?.destroy();
128
+ this.client = undefined;
129
+ this.onClientChanged(undefined);
130
+ this.listeners.clear();
131
+ }
132
+ // --- internals ---
133
+ reportSuccess() {
134
+ if (this.state !== 'healthy') {
135
+ this.transitionTo('healthy');
136
+ }
137
+ this.backoffIndex = 0;
138
+ }
139
+ reportFailure(label, kind) {
140
+ if (kind === 'auth') {
141
+ // Session expired. Rebuild the client; do not change connectivity state.
142
+ this.log.info(`Connectivity: auth expiry on "${label}" — rebuilding client`);
143
+ void this.rebuildClient('auth expiry');
144
+ return;
145
+ }
146
+ if (kind === 'transient') {
147
+ // 4xx/422/429/etc. — caller's responsibility, not a network issue.
148
+ return;
149
+ }
150
+ // kind === 'network'
151
+ if (this.state === 'healthy') {
152
+ this.log.warn(`Connectivity: network error on "${label}" — entering degraded state`);
153
+ this.transitionTo('degraded');
154
+ this.backoffIndex = 0;
155
+ this.scheduleProbe();
156
+ }
157
+ // If already degraded/offline, the probe timer is already running.
158
+ }
159
+ scheduleProbe() {
160
+ this.clearProbeTimer();
161
+ const idx = Math.min(this.backoffIndex, BACKOFF_SCHEDULE_MS.length - 1);
162
+ const base = BACKOFF_SCHEDULE_MS[idx];
163
+ const jittered = base * (0.9 + Math.random() * 0.2);
164
+ this.probeTimer = setTimeout(() => void this.runProbe(), jittered);
165
+ }
166
+ async runProbe() {
167
+ if (!this.client) {
168
+ return;
169
+ }
170
+ try {
171
+ // Cheap authenticated call against the EXISTING client. .locks()
172
+ // returns a small map and is the lightest endpoint. Race against a
173
+ // short timeout — the goal is "is the network working", not
174
+ // "is everything healthy".
175
+ await Promise.race([
176
+ this.client.locks(),
177
+ new Promise((_resolve, reject) => setTimeout(() => reject(new TimeoutError('probe timed out')), PROBE_TIMEOUT_MS)),
178
+ ]);
179
+ // Network is back. Rebuild the client to shed any half-open sockets
180
+ // accumulated before the outage, then mark healthy.
181
+ await this.rebuildClient('probe succeeded');
182
+ this.transitionTo('healthy');
183
+ this.backoffIndex = 0;
184
+ }
185
+ catch {
186
+ if (this.state !== 'offline') {
187
+ this.log.warn('Connectivity: probe failed — entering offline state');
188
+ this.transitionTo('offline');
189
+ }
190
+ this.backoffIndex = Math.min(this.backoffIndex + 1, BACKOFF_SCHEDULE_MS.length - 1);
191
+ this.scheduleProbe();
192
+ }
193
+ }
194
+ async rebuildClient(reason) {
195
+ if (this.rebuildInFlight) {
196
+ return this.rebuildInFlight;
197
+ }
198
+ this.rebuildInFlight = (async () => {
199
+ this.log.info(`Connectivity: rebuilding August client (${reason})`);
200
+ const old = this.client;
201
+ this.client = new August(await this.credentialsFactory());
202
+ this.onClientChanged(this.client);
203
+ old?.destroy();
204
+ })();
205
+ try {
206
+ await this.rebuildInFlight;
207
+ }
208
+ finally {
209
+ this.rebuildInFlight = undefined;
210
+ }
211
+ }
212
+ classify(e) {
213
+ // august-yale wraps every transport-level fetch failure into one of
214
+ // its typed exceptions before the error reaches us. We rely on those
215
+ // types here rather than re-implementing undici's 24-class taxonomy.
216
+ //
217
+ // - NetworkError (and its TimeoutError subclass) covers connect
218
+ // timeouts, socket resets, headers/body timeouts, DNS failures,
219
+ // TLS proxy failures, malformed responses, etc.
220
+ //
221
+ // - AbortedError reflects an in-flight request racing with our own
222
+ // teardown (e.g. during rebuildClient). NOT 'network': the consumer
223
+ // intent was to tear down, so we don't want this to drive the
224
+ // state machine into degraded.
225
+ //
226
+ // - InvalidAuth is august-yale's auth-failure type. Maps to 'auth'.
227
+ //
228
+ // Anything else (including programmer errors and server-answered
229
+ // 4xx/5xx that august-yale leaves unwrapped) is 'transient' — bubble
230
+ // back to the caller, don't change connectivity state.
231
+ if (e instanceof NetworkError) {
232
+ return 'network';
233
+ }
234
+ if (e instanceof AbortedError) {
235
+ return 'transient';
236
+ }
237
+ if (e instanceof TimeoutError) {
238
+ // Defensive: TimeoutError is also a NetworkError so the first
239
+ // check should match. Kept for clarity in case of future
240
+ // exception hierarchy changes upstream.
241
+ return 'network';
242
+ }
243
+ if (e instanceof InvalidAuth) {
244
+ return 'auth';
245
+ }
246
+ // Fallback for HTTP-level errors that august-yale leaves unwrapped
247
+ // (e.g. server answered with a non-2xx without bare-401 semantics).
248
+ const err = e;
249
+ if (err?.statusCode === 401) {
250
+ return 'auth';
251
+ }
252
+ if (err?.statusCode === 502 || err?.statusCode === 503 || err?.statusCode === 504) {
253
+ // 5xx responses where the server is reachable but reporting an
254
+ // upstream issue. Treat as network — these are recoverable by
255
+ // waiting and retrying (matches the state-machine semantic).
256
+ return 'network';
257
+ }
258
+ return 'transient';
259
+ }
260
+ transitionTo(next) {
261
+ const prev = this.state;
262
+ if (prev === next) {
263
+ return;
264
+ }
265
+ this.state = next;
266
+ this.log.info(`Connectivity: ${prev} -> ${next}`);
267
+ for (const l of this.listeners) {
268
+ try {
269
+ l(next, prev);
270
+ }
271
+ catch (e) {
272
+ this.log.error(`Connectivity listener threw: ${e?.message ?? e}`);
273
+ }
274
+ }
275
+ }
276
+ clearProbeTimer() {
277
+ if (this.probeTimer) {
278
+ clearTimeout(this.probeTimer);
279
+ this.probeTimer = undefined;
280
+ }
281
+ }
282
+ }
283
+ //# sourceMappingURL=connectivity-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-manager.js","sourceRoot":"","sources":["../src/connectivity-manager.ts"],"names":[],"mappings":"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"}
@@ -39,15 +39,6 @@ export declare abstract class deviceBase {
39
39
  statusCode(action: string, error: {
40
40
  message: string;
41
41
  }): Promise<void>;
42
- /**
43
- * Check if error is a network timeout or session expiration that requires session refresh
44
- * Handles 502 Bad Gateway, 401 Unauthorized, 503 Service Unavailable, and network timeouts
45
- */
46
- isTimeoutError(error: {
47
- message: string;
48
- name?: string;
49
- statusCode?: number;
50
- }): boolean;
51
42
  /**
52
43
  * Logging for Device
53
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAMpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEjF,8BAAsB,UAAU;IAc5B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IAC3C,SAAS,CAAC,SAAS,EAAE,iBAAiB;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAf1C,SAAgB,GAAG,EAAE,GAAG,CAAA;IACxB,SAAgB,GAAG,EAAE,OAAO,CAAA;IAC5B,SAAgB,MAAM,EAAG,oBAAoB,CAAA;IAC7C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IAG3B,SAAS,CAAC,aAAa,EAAG,MAAM,CAAA;IAChC,SAAS,CAAC,iBAAiB,EAAG,MAAM,CAAA;IACpC,SAAS,CAAC,gBAAgB,EAAG,MAAM,CAAA;IACnC,SAAS,CAAC,cAAc,EAAG,MAAM,CAAA;IACjC,SAAS,CAAC,qBAAqB,EAAG,MAAM,CAAA;gBAGnB,QAAQ,EAAE,cAAc,EACjC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IA2BpC,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB3D,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7D,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1F;;;;;;;;;;;;;;;OAeG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,GAAG,EACnB,mBAAmB,EAAE,mBAAmB,EACxC,kBAAkB,EAAE,MAAM,EAC1B,KAAK,CAAC,EAAE,mBAAmB,EAC3B,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC;IAqBV,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3E;;OAEG;IACG,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,UAAU,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,eAAe,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrC,YAAY,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,aAAa,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3C,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;CAGhD"}
@@ -160,38 +160,6 @@ export class deviceBase {
160
160
  await this.debugErrorLog(`failed ${action}, Error: ${error}`);
161
161
  }
162
162
  }
163
- /**
164
- * Check if error is a network timeout or session expiration that requires session refresh
165
- * Handles 502 Bad Gateway, 401 Unauthorized, 503 Service Unavailable, and network timeouts
166
- */
167
- isTimeoutError(error) {
168
- // Check for august-yale TimeoutError by name (stable contract — works regardless
169
- // of message format changes) and Node.js network timeouts by message
170
- if (error.name === 'TimeoutError' || error.message?.includes('ETIMEDOUT')) {
171
- return true;
172
- }
173
- // Check for status codes that indicate session expiration or temporary server issues
174
- // 502 Bad Gateway - typically indicates session has expired or server issues
175
- // 503 Service Unavailable - temporary server issues
176
- // 401 Unauthorized - session has expired
177
- if (error.statusCode && (error.statusCode === 502 || error.statusCode === 503 || error.statusCode === 401)) {
178
- return true;
179
- }
180
- // Check for error messages containing these status codes (from tiny-json-http error format)
181
- // Format: "POST failed with: 502" or "GET failed with: 401"
182
- if (error.message) {
183
- const sessionErrorPatterns = [
184
- /failed with: 502/i,
185
- /failed with: 503/i,
186
- /failed with: 401/i,
187
- /Bad Gateway/i,
188
- /Service Unavailable/i,
189
- /Unauthorized/i,
190
- ];
191
- return sessionErrorPatterns.some(pattern => pattern.test(error.message));
192
- }
193
- return false;
194
- }
195
163
  /**
196
164
  * Logging for Device
197
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["../../src/devices/device.ts"],"names":[],"mappings":"AASA,MAAM,OAAgB,UAAU;IAcT;IACT;IACA;IAfI,GAAG,CAAK;IACR,GAAG,CAAS;IACZ,MAAM,CAAuB;IAC1B,GAAG,CAAK;IAE3B,SAAS;IACC,aAAa,CAAS;IACtB,iBAAiB,CAAS;IAC1B,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,qBAAqB,CAAS;IAExC,YACqB,QAAwB,EACjC,SAA4B,EAC5B,MAA8B;QAFrB,aAAQ,GAAR,QAAQ,CAAgB;QACjC,cAAS,GAAT,SAAS,CAAmB;QAC5B,WAAM,GAAN,MAAM,CAAwB;QAExC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QAEvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAExC,4BAA4B;QAC5B,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAClD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,kBAAkB,CAAC;aAC3E,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,qBAAqB,EAAE,aAAa,CAAC;aAC/E,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC;aACtE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC;aAChF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;aAClE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;aACrE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;aAC5E,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAC3D,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAqB;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,UAAU,CAAA;QAC1H,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACzJ,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,OAAO,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAqB;QAC/C,yDAAyD;QACzD,qEAAqE;QACrE,kEAAkE;QAClE,mDAAmD;QACnD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,IAAI,EAAE,CAAA;QACtF,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAA;QAClF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAA;QAE5E,yCAAyC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QAC5H,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,WAAW,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAA;QAClF,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACzH,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,UAAU,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAA;QACnH,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,QAAQ,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,MAAqB;QACjD,MAAM,YAAY,GAA4B,EAAE,CAAA;QAChD,MAAM,UAAU,GAAG;YACjB,SAAS;YACT,aAAa;YACb,YAAY;YACZ,UAAU;YACV,wBAAwB;YACxB,UAAU;SACF,CAAA;QACV,MAAM,GAAG,GAAG,MAA4C,CAAA;QACxD,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAA;YAChC,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACzD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAA4B,EAAE,MAAqB;QACxE,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAA;QAClH,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,qBAAqB,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;QACrE,IAAI,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAClC,MAAM,YAAY,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,IAAI,CAAC,qBAAqB,GAAG,YAAY,IAAI,OAAO,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAA;QACzE,CAAC;QACD,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAE;aAClD,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC;aACvF,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAC3D,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;QAC1C,IAAI,CAAC,eAAe,CAAC,0BAA0B,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAC9E,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAgB,EAChB,WAAmB,EACnB,cAAmB,EACnB,mBAAwC,EACxC,kBAA0B,EAC1B,KAA2B,EAC3B,WAAoB,EACpB,kBAA2B;QAE3B,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,kBAAkB,KAAK,mBAAmB,EAAE,CAAC,CAAA;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,GAAG,WAAW,GAAG,kBAAkB,EAAE,CAAA;YACxD,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YAChF,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAA;YACxD,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YAC/E,MAAM,IAAI,CAAC,QAAQ,CAAC,wBAAwB,kBAAkB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAA;YAC/J,IAAI,aAAa,KAAK,mBAAmB,EAAE,CAAC;gBAC1C,kDAAkD;gBAClD,OAAO,CAAC,oBAAoB,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAA;gBACjE,yFAAyF;gBACzF,IAAI,aAAa,KAAK,SAAS,IAAI,WAAW,IAAI,kBAAkB,EAAE,CAAC;oBACrE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,mBAAmB,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAA;gBAC/F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAA0B;QACzD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAA,CAAC,wDAAwD;QAErG,2EAA2E;QAC3E,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrF,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,gBAAgB,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC,CAAA;YAC5G,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,MAAM,MAAM,GAA2B;YACrC,GAAG,EAAE,0CAA0C,gBAAgB,EAAE;YACjE,GAAG,EAAE,mCAAmC,gBAAgB,EAAE;YAC1D,GAAG,EAAE,4BAA4B,gBAAgB,EAAE;YACnD,GAAG,EAAE,8LAA8L,gBAAgB,EAAE;YACrN,GAAG,EAAE,mGAAmG,gBAAgB,EAAE;SAC3H,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;eAChC,uBAAuB,gBAAgB,uDAAuD,CAAA;QACnG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAC/B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,MAAM,YAAY,KAAK,EAAE,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,GAAG,GAAU;QACzB,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAG,GAAU;QAC5B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAG,GAAU;QACjC,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG,GAAU;QACzB,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAG,GAAU;QAC9B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAU;QAC1B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAG,GAAU;QAC/B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,MAAM,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAU;QAC1B,IAAI,MAAM,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YAC9E,CAAC;iBAAM,IAAI,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,CAAA;IAC7E,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,CAAA;IAClH,CAAC;CACF"}
@@ -28,9 +28,26 @@ export declare class LockMechanism extends deviceBase {
28
28
  */
29
29
  parseEventStatus(): Promise<void>;
30
30
  /**
31
- * Asks the August Home API for the latest device information
31
+ * Asks the August Home API for the latest device information.
32
+ *
33
+ * Used for the initial fetch in the constructor. Periodic polling is
34
+ * driven by AugustPlatform.startPolling(), which calls applyRefresh()
35
+ * directly with details fetched serially across all registered locks.
36
+ *
37
+ * On failure: returns silently. The ConnectivityManager has already
38
+ * classified the error and (if it's a network error) put itself into
39
+ * 'degraded' state — a probe is scheduled and the next poll cycle
40
+ * will skip until the probe confirms recovery.
32
41
  */
33
42
  refreshStatus(): Promise<void>;
43
+ /**
44
+ * Apply a freshly-fetched lockDetails payload to HomeKit characteristics.
45
+ *
46
+ * Public so AugustPlatform.startPolling() can hand-off the result of
47
+ * its serial details() call without going through refreshStatus()
48
+ * (which would re-fetch).
49
+ */
50
+ applyRefresh(lockDetails: lockDetails): Promise<void>;
34
51
  /**
35
52
  * Pushes the requested changes to the August API
36
53
  */
@@ -40,6 +57,8 @@ export declare class LockMechanism extends deviceBase {
40
57
  */
41
58
  updateHomeKitCharacteristics(): Promise<void>;
42
59
  setLockTargetState(value: CharacteristicValue): Promise<void>;
60
+ private pubnubStatusUnsubscribe?;
61
+ private pubnubAugust?;
43
62
  subscribeAugust(): Promise<void>;
44
63
  /**
45
64
  * Tear down the PubNub subscription for this lock. Safe to call multiple
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAU/F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAsCzC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IApCnC,OAAO,CAAC,aAAa,CAAC,CAKrB;IAED,OAAO,CAAC,OAAO,CAMd;IAED,OAAO,CAAC,aAAa,CAAC,CAIrB;IAGD,SAAS,EAAG,SAAS,CAAA;IACrB,UAAU,EAAG,UAAU,CAAA;IACvB,WAAW,EAAG,WAAW,CAAA;IAGzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;IAKjB,OAAO,CAAC,iBAAiB,CAAC,CAAY;gBAG3B,QAAQ,EAAE,cAAc,EACjC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IAkIhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqElC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDvC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6CpC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA2DlC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB7C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtC;;;;OAIG;IACH,0BAA0B,IAAI,IAAI;CAUnC"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAW,MAAM,YAAY,CAAA;AAEjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAU/F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAsCzC,QAAQ,CAAC,QAAQ,EAAE,cAAc;IApCnC,OAAO,CAAC,aAAa,CAAC,CAKrB;IAED,OAAO,CAAC,OAAO,CAMd;IAED,OAAO,CAAC,aAAa,CAAC,CAIrB;IAGD,SAAS,EAAG,SAAS,CAAA;IACrB,UAAU,EAAG,UAAU,CAAA;IACvB,WAAW,EAAG,WAAW,CAAA;IAGzB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,YAAY,EAAE,GAAG,CAAA;IAKjB,OAAO,CAAC,iBAAiB,CAAC,CAAY;gBAG3B,QAAQ,EAAE,cAAc,EACjC,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,MAAM,GAAG,aAAa;IAiIhC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqElC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDvC;;;;;;;;;;;OAWG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBpC;;;;;;OAMG;IACG,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAuDlC;;OAEG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB7C,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE,OAAO,CAAC,uBAAuB,CAAC,CAAY;IAI5C,OAAO,CAAC,YAAY,CAAC,CAAQ;IAEvB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CtC;;;;OAIG;IACH,0BAA0B,IAAI,IAAI;CA0BnC"}