@homebridge-plugins/homebridge-updater 3.1.3 → 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.
@@ -1,7 +1,14 @@
1
- import type { API, Logging, PlatformConfig } from 'homebridge';
1
+ import type { API, Logging, PlatformAccessory, PlatformConfig } from 'homebridge';
2
2
  export declare class PluginUpdateMatterPlatform {
3
+ private readonly api;
3
4
  private updateSensor;
4
5
  private failureSensor;
5
6
  constructor(log: Logging, config: PlatformConfig, api: API);
7
+ /**
8
+ * Called by Homebridge for each accessory found in the platform cache.
9
+ * When running in Matter mode, all cached HAP accessories are stale — unregister
10
+ * them immediately to prevent ghost accessories from appearing in HomeKit.
11
+ */
12
+ configureAccessory(accessory: PlatformAccessory): void;
6
13
  }
7
14
  //# sourceMappingURL=Platform.Matter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Platform.Matter.d.ts","sourceRoot":"","sources":["../src/Platform.Matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAM9D,qBAAa,0BAA0B;IACrC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAe;gBAExB,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;CAa3D"}
1
+ {"version":3,"file":"Platform.Matter.d.ts","sourceRoot":"","sources":["../src/Platform.Matter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAOjF,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAK;IACzB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAe;gBAExB,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG;IAe1D;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAGvD"}
@@ -1,10 +1,13 @@
1
1
  import { FailureSensor } from './failureSensor.js';
2
+ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
3
  import { UpdateSensor } from './updateSensor.js';
3
4
  import { isFailureSensorEnabled } from './utils.js';
4
5
  export class PluginUpdateMatterPlatform {
6
+ api;
5
7
  updateSensor;
6
8
  failureSensor;
7
9
  constructor(log, config, api) {
10
+ this.api = api;
8
11
  this.failureSensor = new FailureSensor(log, api, config.failureSensorType || config.sensorType, 'matter');
9
12
  this.updateSensor = new UpdateSensor(log, config, api, {
10
13
  protocol: 'matter',
@@ -17,5 +20,13 @@ export class PluginUpdateMatterPlatform {
17
20
  this.failureSensor.configure({ displayName: failureDeviceName });
18
21
  }
19
22
  }
23
+ /**
24
+ * Called by Homebridge for each accessory found in the platform cache.
25
+ * When running in Matter mode, all cached HAP accessories are stale — unregister
26
+ * them immediately to prevent ghost accessories from appearing in HomeKit.
27
+ */
28
+ configureAccessory(accessory) {
29
+ this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
30
+ }
20
31
  }
21
32
  //# sourceMappingURL=Platform.Matter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Platform.Matter.js","sourceRoot":"","sources":["../src/Platform.Matter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,OAAO,0BAA0B;IAC7B,YAAY,CAAc;IAC1B,aAAa,CAAe;IAEpC,YAAY,GAAY,EAAE,MAAsB,EAAE,GAAQ;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACzG,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACrD,QAAQ,EAAE,QAAQ;YAClB,oBAAoB,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACnH,CAAC,CAAA;QACF,4EAA4E;QAC5E,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,qBAAqB,CAAA;YAChE,MAAM,iBAAiB,GAAG,GAAG,UAAU,UAAU,CAAA;YACjD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAS,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"Platform.Matter.js","sourceRoot":"","sources":["../src/Platform.Matter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,OAAO,0BAA0B;IACpB,GAAG,CAAK;IACjB,YAAY,CAAc;IAC1B,aAAa,CAAe;IAEpC,YAAY,GAAY,EAAE,MAAsB,EAAE,GAAQ;QACxD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACzG,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACrD,QAAQ,EAAE,QAAQ;YAClB,oBAAoB,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACnH,CAAC,CAAA;QACF,4EAA4E;QAC5E,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,qBAAqB,CAAA;YAChE,MAAM,iBAAiB,GAAG,GAAG,UAAU,UAAU,CAAA;YACjD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAS,CAAC,CAAA;QACzE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACjF,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Platform.Matter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Platform.Matter.test.d.ts","sourceRoot":"","sources":["../src/Platform.Matter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,75 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
3
+ /**
4
+ * Unit tests for the stale HAP accessory cleanup in PluginUpdateMatterPlatform.
5
+ *
6
+ * When the platform runs in Matter mode, any cached HAP accessories from a previous
7
+ * HAP-mode run (including legacy v2 accessories) are stale and must be unregistered
8
+ * to prevent ghost/duplicate sensors in HomeKit.
9
+ */
10
+ describe('PluginUpdateMatterPlatform stale HAP cleanup', () => {
11
+ function buildMocks() {
12
+ const unregisterCalls = [];
13
+ const mockLog = {
14
+ info: vi.fn(),
15
+ warn: vi.fn(),
16
+ error: vi.fn(),
17
+ debug: vi.fn(),
18
+ };
19
+ const mockApi = {
20
+ matter: { registerPlatformAccessories: vi.fn(), uuid: { generate: vi.fn().mockReturnValue('matter-uuid') } },
21
+ hap: { uuid: { generate: vi.fn().mockReturnValue('hap-uuid') } },
22
+ on: vi.fn(),
23
+ user: { storagePath: vi.fn().mockReturnValue('/tmp') },
24
+ unregisterPlatformAccessories: vi.fn((...args) => {
25
+ unregisterCalls.push({ pluginName: args[0], platformName: args[1], accessories: args[2] });
26
+ }),
27
+ };
28
+ const mockConfig = {
29
+ name: 'PluginUpdate',
30
+ sensorType: 'motion',
31
+ failureSensorType: undefined,
32
+ autoUpdateHomebridge: false,
33
+ autoUpdateHomebridgeUI: false,
34
+ autoUpdatePlugins: false,
35
+ autoUpdateNode: false,
36
+ };
37
+ return { mockLog, mockApi, mockConfig, unregisterCalls };
38
+ }
39
+ /**
40
+ * Simulate configureAccessory logic directly to avoid importing real Homebridge modules.
41
+ *
42
+ * This mirrors what PluginUpdateMatterPlatform.configureAccessory does:
43
+ * it must call api.unregisterPlatformAccessories for each stale HAP accessory.
44
+ */
45
+ function simulateConfigureAccessory(api, accessory) {
46
+ api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
47
+ }
48
+ it('unregisters a stale legacy v2 HAP accessory (PluginUpdate UUID)', () => {
49
+ const { mockApi, unregisterCalls } = buildMocks();
50
+ const legacyAccessory = { UUID: mockApi.hap.uuid.generate('PluginUpdate'), displayName: 'Homebridge Plugin Update' };
51
+ simulateConfigureAccessory(mockApi, legacyAccessory);
52
+ expect(unregisterCalls).toHaveLength(1);
53
+ expect(unregisterCalls[0].pluginName).toBe(PLUGIN_NAME);
54
+ expect(unregisterCalls[0].platformName).toBe(PLATFORM_NAME);
55
+ expect(unregisterCalls[0].accessories).toContain(legacyAccessory);
56
+ });
57
+ it('unregisters a stale v3 HAP update-sensor accessory (PluginUpdateCheck-UpdateSensor UUID)', () => {
58
+ const { mockApi, unregisterCalls } = buildMocks();
59
+ const v3Accessory = { UUID: mockApi.hap.uuid.generate('PluginUpdateCheck-UpdateSensor'), displayName: 'PluginUpdate' };
60
+ simulateConfigureAccessory(mockApi, v3Accessory);
61
+ expect(unregisterCalls).toHaveLength(1);
62
+ expect(unregisterCalls[0].accessories).toContain(v3Accessory);
63
+ });
64
+ it('unregisters multiple stale accessories when called for each', () => {
65
+ const { mockApi, unregisterCalls } = buildMocks();
66
+ const accessory1 = { UUID: 'uuid-1', displayName: 'Accessory 1' };
67
+ const accessory2 = { UUID: 'uuid-2', displayName: 'Accessory 2' };
68
+ simulateConfigureAccessory(mockApi, accessory1);
69
+ simulateConfigureAccessory(mockApi, accessory2);
70
+ expect(unregisterCalls).toHaveLength(2);
71
+ expect(unregisterCalls[0].accessories).toContain(accessory1);
72
+ expect(unregisterCalls[1].accessories).toContain(accessory2);
73
+ });
74
+ });
75
+ //# sourceMappingURL=Platform.Matter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Platform.Matter.test.js","sourceRoot":"","sources":["../src/Platform.Matter.test.ts"],"names":[],"mappings":"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"}
@@ -122,5 +122,29 @@ describe('createPlatformProxy', () => {
122
122
  expect(matterConstructed).toHaveLength(1);
123
123
  expect(hapConstructed).toHaveLength(0);
124
124
  });
125
+ it('should delegate configureAccessory to the Matter impl (stale HAP cleanup)', () => {
126
+ const configuredAccessories = [];
127
+ class MockHAPPlatform {
128
+ constructor(_log, _config, _api) { }
129
+ configureAccessory(accessory) {
130
+ // Should not be called when Matter is active
131
+ configuredAccessories.push({ platform: 'hap', accessory });
132
+ }
133
+ }
134
+ class MockMatterPlatform {
135
+ constructor(_log, _config, _api) { }
136
+ configureAccessory(accessory) {
137
+ configuredAccessories.push({ platform: 'matter', accessory });
138
+ }
139
+ }
140
+ const ProxyCtor = createPlatformProxy(MockHAPPlatform, MockMatterPlatform);
141
+ const api = { matter: {}, isMatterAvailable: () => true, isMatterEnabled: () => true };
142
+ const proxy = new ProxyCtor('log', { enableMatter: true }, api);
143
+ const staleAccessory = { UUID: 'old-hap-uuid', displayName: 'Homebridge Plugin Update' };
144
+ proxy.configureAccessory(staleAccessory);
145
+ expect(configuredAccessories).toHaveLength(1);
146
+ expect(configuredAccessories[0].platform).toBe('matter');
147
+ expect(configuredAccessories[0].accessory).toBe(staleAccessory);
148
+ });
125
149
  });
126
150
  //# sourceMappingURL=utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../src/utils.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@homebridge-plugins/homebridge-updater",
3
3
  "displayName": "Homebridge Updater",
4
4
  "type": "module",
5
- "version": "3.1.3",
5
+ "version": "3.1.4",
6
6
  "description": "A Homebridge plugin for checking for updates to Homebridge and plugins",
7
7
  "author": "David Maher",
8
8
  "license": "BSD-2-Clause",