@homebridge-plugins/homebridge-august 3.1.2 → 3.1.4
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/.github/scripts/normalize-changelog-header.cjs +86 -0
- package/CHANGELOG.md +7 -2
- package/dist/connectivity-manager.d.ts +89 -0
- package/dist/connectivity-manager.d.ts.map +1 -0
- package/dist/connectivity-manager.js +264 -0
- package/dist/connectivity-manager.js.map +1 -0
- package/dist/devices/device.d.ts +0 -9
- package/dist/devices/device.d.ts.map +1 -1
- package/dist/devices/device.js +0 -32
- package/dist/devices/device.js.map +1 -1
- package/dist/devices/lock.d.ts +20 -1
- package/dist/devices/lock.d.ts.map +1 -1
- package/dist/devices/lock.js +133 -103
- package/dist/devices/lock.js.map +1 -1
- package/dist/package.json +9 -9
- package/dist/platform.d.ts +26 -19
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +101 -52
- package/dist/platform.js.map +1 -1
- package/dist/platform.matter.d.ts +6 -9
- package/dist/platform.matter.d.ts.map +1 -1
- package/dist/platform.matter.js +25 -31
- package/dist/platform.matter.js.map +1 -1
- package/docs/variables/default.html +1 -1
- package/package.json +9 -9
- package/test/connectivity-manager.test.ts +380 -0
- package/test/platform.matter.test.ts +660 -0
- package/test/platform.polling.test.ts +313 -0
- package/test/platform.test.ts +642 -0
- package/test/settings.test.ts +148 -0
- package/vitest.config.ts +2 -1
package/dist/devices/lock.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* lock.ts: homebridge-august.
|
|
4
4
|
*/
|
|
5
5
|
import August from 'august-yale';
|
|
6
|
-
import {
|
|
7
|
-
import { debounceTime,
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
7
|
+
import { debounceTime, tap } from 'rxjs/operators';
|
|
8
8
|
import { deviceBase } from './device.js';
|
|
9
9
|
/**
|
|
10
10
|
* Platform Accessory
|
|
@@ -124,12 +124,11 @@ export class LockMechanism extends deviceBase {
|
|
|
124
124
|
// needed. The August.subscribe() call uses its own internal August
|
|
125
125
|
// instance dedicated to PubNub, separate from platform.augustConfig.
|
|
126
126
|
this.subscribeAugust();
|
|
127
|
-
//
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
});
|
|
127
|
+
// Polling is now owned by the platform. AugustPlatform.startPolling()
|
|
128
|
+
// iterates registered locks serially and short-circuits on the first
|
|
129
|
+
// failure, so a network outage produces ONE timeout per cycle instead
|
|
130
|
+
// of N (one per lock). The previous per-lock rxjs interval that lived
|
|
131
|
+
// here was the source of the log-spam cascade after router restarts.
|
|
133
132
|
// Watch for Lock change events
|
|
134
133
|
// We put in a debounce of 100ms so we don't make duplicate calls
|
|
135
134
|
if (!device.lock?.hide_lock) {
|
|
@@ -273,116 +272,98 @@ export class LockMechanism extends deviceBase {
|
|
|
273
272
|
}
|
|
274
273
|
}
|
|
275
274
|
/**
|
|
276
|
-
* Asks the August Home API for the latest device information
|
|
275
|
+
* Asks the August Home API for the latest device information.
|
|
276
|
+
*
|
|
277
|
+
* Used for the initial fetch in the constructor. Periodic polling is
|
|
278
|
+
* driven by AugustPlatform.startPolling(), which calls applyRefresh()
|
|
279
|
+
* directly with details fetched serially across all registered locks.
|
|
280
|
+
*
|
|
281
|
+
* On failure: returns silently. The ConnectivityManager has already
|
|
282
|
+
* classified the error and (if it's a network error) put itself into
|
|
283
|
+
* 'degraded' state — a probe is scheduled and the next poll cycle
|
|
284
|
+
* will skip until the probe confirms recovery.
|
|
277
285
|
*/
|
|
278
286
|
async refreshStatus() {
|
|
279
|
-
if (this.deviceRefreshRate
|
|
280
|
-
try {
|
|
281
|
-
// Update Lock Details
|
|
282
|
-
if (this.platform.augustConfig && this.platform.augustConfig.details) {
|
|
283
|
-
const lockDetails = await this.platform.augustConfig.details(this.device.lockId);
|
|
284
|
-
await this.debugSuccessLog(`(refreshStatus) lockDetails: ${JSON.stringify(lockDetails)}`);
|
|
285
|
-
// Update HomeKit
|
|
286
|
-
this.lockDetails = lockDetails;
|
|
287
|
-
this.lockStatus = lockDetails.LockStatus;
|
|
288
|
-
await this.parseStatus();
|
|
289
|
-
await this.updateHomeKitCharacteristics();
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
await this.errorLog('(refreshStatus) lockDetails: No details');
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
catch (e) {
|
|
296
|
-
await this.statusCode('(refreshStatus) lockDetails', e);
|
|
297
|
-
await this.errorLog(`(refreshStatus) lockDetails: ${e.message ?? e}`);
|
|
298
|
-
// Check if this is a timeout error and retry once after session refresh
|
|
299
|
-
if (this.isTimeoutError(e)) {
|
|
300
|
-
try {
|
|
301
|
-
await this.debugLog('Timeout detected, refreshing August session and retrying...');
|
|
302
|
-
await this.platform.refreshAugustSession();
|
|
303
|
-
// Retry the operation once
|
|
304
|
-
if (this.platform.augustConfig && this.platform.augustConfig.details) {
|
|
305
|
-
const lockDetails = await this.platform.augustConfig.details(this.device.lockId);
|
|
306
|
-
await this.debugSuccessLog(`(refreshStatus retry) lockDetails: ${JSON.stringify(lockDetails)}`);
|
|
307
|
-
// Update HomeKit
|
|
308
|
-
this.lockDetails = lockDetails;
|
|
309
|
-
this.lockStatus = lockDetails.LockStatus;
|
|
310
|
-
await this.parseStatus();
|
|
311
|
-
await this.updateHomeKitCharacteristics();
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
catch (retryError) {
|
|
315
|
-
await this.errorLog(`(refreshStatus retry) failed: ${retryError.message ?? retryError}`);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
else {
|
|
287
|
+
if (this.deviceRefreshRate === 0) {
|
|
321
288
|
await this.debugLog(`(refreshStatus) deviceRefreshRate: ${this.deviceRefreshRate}`);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
if (!this.platform.connectivity) {
|
|
292
|
+
await this.debugLog('(refreshStatus) connectivity not initialized — skipping');
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
const lockDetails = await this.platform.connectivity.execute(`refreshStatus ${this.accessory.displayName}`, client => client.details(this.device.lockId));
|
|
296
|
+
if (lockDetails === undefined) {
|
|
297
|
+
// Either offline, or the call failed. ConnectivityManager has the
|
|
298
|
+
// state machine; nothing to do here.
|
|
299
|
+
return;
|
|
322
300
|
}
|
|
301
|
+
await this.applyRefresh(lockDetails);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Apply a freshly-fetched lockDetails payload to HomeKit characteristics.
|
|
305
|
+
*
|
|
306
|
+
* Public so AugustPlatform.startPolling() can hand-off the result of
|
|
307
|
+
* its serial details() call without going through refreshStatus()
|
|
308
|
+
* (which would re-fetch).
|
|
309
|
+
*/
|
|
310
|
+
async applyRefresh(lockDetails) {
|
|
311
|
+
await this.debugSuccessLog(`(applyRefresh) lockDetails: ${JSON.stringify(lockDetails)}`);
|
|
312
|
+
this.lockDetails = lockDetails;
|
|
313
|
+
this.lockStatus = lockDetails.LockStatus;
|
|
314
|
+
await this.parseStatus();
|
|
315
|
+
await this.updateHomeKitCharacteristics();
|
|
323
316
|
}
|
|
324
317
|
/**
|
|
325
318
|
* Pushes the requested changes to the August API
|
|
326
319
|
*/
|
|
327
320
|
async pushChanges() {
|
|
321
|
+
if (!this.LockMechanism) {
|
|
322
|
+
await this.errorLog(`lockTargetState: ${JSON.stringify(this.LockMechanism)}`);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
const targetState = this.LockMechanism.LockTargetState;
|
|
326
|
+
const currentState = this.LockMechanism.LockCurrentState;
|
|
327
|
+
if (targetState === currentState) {
|
|
328
|
+
await this.debugLog(`No changes, LockTargetState: ${targetState}, LockCurrentState: ${currentState}`);
|
|
329
|
+
this.LockMechanism.LockTargetState = currentState === this.hap.Characteristic.LockCurrentState.SECURED
|
|
330
|
+
? this.hap.Characteristic.LockTargetState.SECURED
|
|
331
|
+
: this.hap.Characteristic.LockTargetState.UNSECURED;
|
|
332
|
+
await this.updateHomeKitCharacteristics();
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
await this.debugLog(`Making API call - Target: ${targetState}, Current: ${currentState}`);
|
|
336
|
+
if (!this.platform.connectivity) {
|
|
337
|
+
await this.errorLog('pushChanges: connectivity not initialized');
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
328
340
|
try {
|
|
329
|
-
//
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
await this.debugLog(`States synchronized before API call - Target: ${targetState}, Current: ${currentState}`);
|
|
347
|
-
}
|
|
341
|
+
// throwOnOffline:true: user-initiated lock/unlock should fail
|
|
342
|
+
// visibly to HomeKit when the network is down rather than
|
|
343
|
+
// silently dropping the request. The ConnectivityManager
|
|
344
|
+
// classifies the error and updates state, but we re-raise so
|
|
345
|
+
// HomeKit sees a real failure.
|
|
346
|
+
//
|
|
347
|
+
// The manager handles auth/network failures internally
|
|
348
|
+
// (rebuilds the client on auth, schedules a probe on network),
|
|
349
|
+
// so the explicit retry block that used to live here is gone.
|
|
350
|
+
// If the user retries the action, the manager will either be
|
|
351
|
+
// recovered by then or still offline (and throw OfflineError
|
|
352
|
+
// again).
|
|
353
|
+
await this.platform.connectivity.execute(`pushChanges ${this.device.lockId}`, async (client) => {
|
|
354
|
+
if (targetState === this.hap.Characteristic.LockTargetState.UNSECURED) {
|
|
355
|
+
await client.unlock(this.device.lockId);
|
|
348
356
|
}
|
|
349
357
|
else {
|
|
350
|
-
await
|
|
351
|
-
+ ` LockCurrentState: ${this.LockMechanism.LockCurrentState}`);
|
|
352
|
-
this.LockMechanism.LockTargetState = this.LockMechanism.LockCurrentState === this.hap.Characteristic.LockCurrentState.SECURED
|
|
353
|
-
? this.hap.Characteristic.LockTargetState.SECURED
|
|
354
|
-
: this.hap.Characteristic.LockTargetState.UNSECURED;
|
|
358
|
+
await client.lock(this.device.lockId);
|
|
355
359
|
}
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
await this.errorLog(`lockTargetState: ${JSON.stringify(this.LockMechanism)}`);
|
|
360
|
-
}
|
|
360
|
+
}, { throwOnOffline: true });
|
|
361
|
+
await this.successLog(`Sending request to August API: ${targetState === 1 ? 'Locked' : 'Unlocked'}`);
|
|
362
|
+
await this.updateHomeKitCharacteristics();
|
|
361
363
|
}
|
|
362
364
|
catch (e) {
|
|
363
365
|
await this.statusCode('pushChanges', e);
|
|
364
|
-
await this.
|
|
365
|
-
// Check if this is a timeout error and retry once after session refresh
|
|
366
|
-
if (this.isTimeoutError(e)) {
|
|
367
|
-
try {
|
|
368
|
-
await this.debugLog('Timeout detected in pushChanges, refreshing August session and retrying...');
|
|
369
|
-
await this.platform.refreshAugustSession();
|
|
370
|
-
// Retry the operation once
|
|
371
|
-
if (this.LockMechanism && this.LockMechanism.LockTargetState !== this.LockMechanism.LockCurrentState) {
|
|
372
|
-
if (this.LockMechanism.LockTargetState === this.hap.Characteristic.LockTargetState.UNSECURED) {
|
|
373
|
-
await this.platform.augustConfig.unlock(this.device.lockId);
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
await this.platform.augustConfig.lock(this.device.lockId);
|
|
377
|
-
}
|
|
378
|
-
await this.successLog(`Retry: Sending request to August API: ${this.LockMechanism.LockTargetState === 1 ? 'Locked' : 'Unlocked'}`);
|
|
379
|
-
await this.updateHomeKitCharacteristics();
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
catch (retryError) {
|
|
383
|
-
await this.errorLog(`(pushChanges retry) failed: ${retryError.message ?? retryError}`);
|
|
384
|
-
}
|
|
385
|
-
}
|
|
366
|
+
await this.errorLog(`pushChanges: ${e.message ?? e}`);
|
|
386
367
|
}
|
|
387
368
|
}
|
|
388
369
|
/**
|
|
@@ -421,6 +402,15 @@ export class LockMechanism extends deviceBase {
|
|
|
421
402
|
this.doLockUpdate.next();
|
|
422
403
|
}
|
|
423
404
|
}
|
|
405
|
+
// Holds the PubNub status-listener unsubscribe alongside the channel
|
|
406
|
+
// unsubscribe (this.pubnubUnsubscribe). Both are owned by the same
|
|
407
|
+
// August instance underneath; both need to be torn down on lock
|
|
408
|
+
// removal.
|
|
409
|
+
pubnubStatusUnsubscribe;
|
|
410
|
+
// The August instance that owns the PubNub WebSocket for THIS lock.
|
|
411
|
+
// Kept so we can register status listeners on it. Distinct from
|
|
412
|
+
// platform.connectivity's August (which is for HTTP only).
|
|
413
|
+
pubnubAugust;
|
|
424
414
|
async subscribeAugust() {
|
|
425
415
|
await this.debugLog('subscribeAugust');
|
|
426
416
|
await this.platform.augustCredentials();
|
|
@@ -431,7 +421,29 @@ export class LockMechanism extends deviceBase {
|
|
|
431
421
|
// to call again in the future.
|
|
432
422
|
this.tearDownPubNubSubscription();
|
|
433
423
|
const normalizedCredentials = await this.platform.getNormalizedCredentials();
|
|
434
|
-
|
|
424
|
+
// Construct an August instance manually so we can register a
|
|
425
|
+
// PubNub status listener on the same instance that owns the
|
|
426
|
+
// channel subscription. The previous code used the static
|
|
427
|
+
// August.subscribe(), which hides the instance and made it
|
|
428
|
+
// impossible to register status listeners.
|
|
429
|
+
this.pubnubAugust = new August(normalizedCredentials);
|
|
430
|
+
// Status listener: feed PubNub reconnect events into the
|
|
431
|
+
// platform's ConnectivityManager. PubNub's WebSocket reconnects
|
|
432
|
+
// seconds before HTTP polling would notice the network is back,
|
|
433
|
+
// so this is the fastest signal connectivity has recovered.
|
|
434
|
+
// Defensive guard around connectivity in case this method is
|
|
435
|
+
// ever called before the manager is initialized.
|
|
436
|
+
this.pubnubStatusUnsubscribe = this.pubnubAugust.onPubNubStatus((status) => {
|
|
437
|
+
const category = status?.category;
|
|
438
|
+
if (category === 'PNConnectedCategory' || category === 'PNReconnectedCategory') {
|
|
439
|
+
this.debugLog(`PubNub status: ${category} — signalling connectivity recovery`);
|
|
440
|
+
this.platform.connectivity?.onPubNubReconnect();
|
|
441
|
+
}
|
|
442
|
+
else if (category === 'PNNetworkDownCategory' || category === 'PNDisconnectedCategory') {
|
|
443
|
+
this.debugLog(`PubNub status: ${category}`);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
this.pubnubUnsubscribe = await this.pubnubAugust.subscribe(this.device.lockId, async (AugustEvent, timestamp) => {
|
|
435
447
|
await this.debugLog(`AugustEvent: ${JSON.stringify(AugustEvent)}, ${JSON.stringify(timestamp)}`);
|
|
436
448
|
// Update HomeKit
|
|
437
449
|
this.lockEvent = AugustEvent;
|
|
@@ -449,6 +461,15 @@ export class LockMechanism extends deviceBase {
|
|
|
449
461
|
* the PubNub instance, WebSocket connection, and listener.
|
|
450
462
|
*/
|
|
451
463
|
tearDownPubNubSubscription() {
|
|
464
|
+
if (this.pubnubStatusUnsubscribe) {
|
|
465
|
+
try {
|
|
466
|
+
this.pubnubStatusUnsubscribe();
|
|
467
|
+
}
|
|
468
|
+
catch (e) {
|
|
469
|
+
this.debugLog(`Error tearing down PubNub status listener: ${e.message || e}`);
|
|
470
|
+
}
|
|
471
|
+
this.pubnubStatusUnsubscribe = undefined;
|
|
472
|
+
}
|
|
452
473
|
if (this.pubnubUnsubscribe) {
|
|
453
474
|
try {
|
|
454
475
|
this.pubnubUnsubscribe();
|
|
@@ -458,6 +479,15 @@ export class LockMechanism extends deviceBase {
|
|
|
458
479
|
}
|
|
459
480
|
this.pubnubUnsubscribe = undefined;
|
|
460
481
|
}
|
|
482
|
+
if (this.pubnubAugust) {
|
|
483
|
+
try {
|
|
484
|
+
this.pubnubAugust.destroy();
|
|
485
|
+
}
|
|
486
|
+
catch (e) {
|
|
487
|
+
this.debugLog(`Error destroying PubNub August instance: ${e.message || e}`);
|
|
488
|
+
}
|
|
489
|
+
this.pubnubAugust = undefined;
|
|
490
|
+
}
|
|
461
491
|
}
|
|
462
492
|
}
|
|
463
493
|
//# sourceMappingURL=lock.js.map
|
package/dist/devices/lock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/devices/lock.ts"],"names":[],"mappings":"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"}
|
package/dist/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@homebridge-plugins/homebridge-august",
|
|
3
3
|
"displayName": "August",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "3.1.
|
|
5
|
+
"version": "3.1.4",
|
|
6
6
|
"description": "The August plugin allows you to access your August & Yale device(s) from HomeKit.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "donavanbecker",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
"main": "dist/index.js",
|
|
40
40
|
"engines": {
|
|
41
|
-
"homebridge": "^1.
|
|
41
|
+
"homebridge": "^1.11.4 || ^2.0.0-beta.89",
|
|
42
42
|
"node": "^22 || ^24"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
@@ -62,22 +62,22 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@homebridge/plugin-ui-utils": "^2.2.3",
|
|
65
|
-
"august-yale": "^1.1.
|
|
65
|
+
"august-yale": "^1.1.8",
|
|
66
66
|
"rxjs": "^7.8.2"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@antfu/eslint-config": "^8.2.0",
|
|
70
70
|
"@types/node": "^25.6.0",
|
|
71
|
-
"@vitest/coverage-v8": "^4.1.
|
|
72
|
-
"eslint": "^10.2.
|
|
71
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
72
|
+
"eslint": "^10.2.1",
|
|
73
73
|
"eslint-plugin-format": "^2.0.1",
|
|
74
|
-
"eslint-plugin-perfectionist": "^5.
|
|
74
|
+
"eslint-plugin-perfectionist": "^5.9.0",
|
|
75
75
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
76
|
-
"homebridge": "^2.0.0-beta.
|
|
76
|
+
"homebridge": "^2.0.0-beta.101",
|
|
77
77
|
"nodemon": "^3.1.14",
|
|
78
78
|
"shx": "^0.4.0",
|
|
79
79
|
"typedoc": "^0.28.19",
|
|
80
|
-
"typescript": "^6.0.
|
|
81
|
-
"vitest": "^4.1.
|
|
80
|
+
"typescript": "^6.0.3",
|
|
81
|
+
"vitest": "^4.1.5"
|
|
82
82
|
}
|
|
83
83
|
}
|
package/dist/platform.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { API, DynamicPlatformPlugin, Logging, PlatformAccessory } from 'homebridge';
|
|
2
2
|
import type { AugustPlatformConfig, credentials, device, devicesConfig, options } from './settings.js';
|
|
3
3
|
import August from 'august-yale';
|
|
4
|
+
import { ConnectivityManager } from './connectivity-manager.js';
|
|
4
5
|
/**
|
|
5
6
|
* HomebridgePlatform
|
|
6
7
|
* This class is the main constructor for your plugin, this is where you should
|
|
@@ -20,10 +21,9 @@ export declare class AugustPlatform implements DynamicPlatformPlugin {
|
|
|
20
21
|
debugMode: boolean;
|
|
21
22
|
version: string;
|
|
22
23
|
augustConfig?: August;
|
|
23
|
-
|
|
24
|
-
private lastSessionRefresh;
|
|
25
|
-
private static readonly SESSION_REFRESH_COOLDOWN_MS;
|
|
24
|
+
connectivity?: ConnectivityManager;
|
|
26
25
|
private readonly lockMechanisms;
|
|
26
|
+
private pollTimer?;
|
|
27
27
|
private normalizedCredentialsCache?;
|
|
28
28
|
constructor(log: Logging, config: AugustPlatformConfig, api: API);
|
|
29
29
|
/**
|
|
@@ -61,26 +61,33 @@ export declare class AugustPlatform implements DynamicPlatformPlugin {
|
|
|
61
61
|
*/
|
|
62
62
|
getNormalizedCredentials(): Promise<credentials>;
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
64
|
+
* Start the platform-level poll cycle. Iterates registered locks
|
|
65
|
+
* SERIALLY (not in parallel) and short-circuits on the first failure.
|
|
65
66
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
67
|
+
* Why serial:
|
|
68
|
+
* - One outstanding request at a time on a healthy network is cheap
|
|
69
|
+
* enough (most cycles complete in <1s for a handful of locks) and
|
|
70
|
+
* avoids racing the August API.
|
|
71
|
+
* - On a failing network, a parallel cycle would produce N timeouts
|
|
72
|
+
* ~simultaneously, which is exactly the log-spam pattern the
|
|
73
|
+
* ConnectivityManager exists to prevent. Serial means one timeout,
|
|
74
|
+
* classified once, and the rest of the cycle aborts.
|
|
70
75
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
+
* Why short-circuit on first failure:
|
|
77
|
+
* - If the first call fails with a network error, the manager has
|
|
78
|
+
* already entered 'degraded' state and scheduled a probe. The
|
|
79
|
+
* remaining N-1 calls would all hit the same dead network and
|
|
80
|
+
* produce identical errors. Aborting the cycle is the correct
|
|
81
|
+
* thing to do.
|
|
76
82
|
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
*
|
|
80
|
-
*
|
|
83
|
+
* Why skip when offline:
|
|
84
|
+
* - The manager's state machine is already managing recovery via
|
|
85
|
+
* scheduled probes. Polling on top of that just wastes API calls
|
|
86
|
+
* and risks rate limiting.
|
|
81
87
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
88
|
+
startPolling(): void;
|
|
89
|
+
/** Stop the platform poll cycle. Called from shutdown paths. */
|
|
90
|
+
stopPolling(): void;
|
|
84
91
|
pluginConfig(): Promise<{
|
|
85
92
|
pluginConfig: any;
|
|
86
93
|
currentConfig: any;
|
package/dist/platform.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,qBAAqB,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAKtG,OAAO,MAAM,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|