@homebridge-plugins/homebridge-updater 3.1.4 → 3.1.5
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,4 +1,4 @@
|
|
|
1
1
|
import type { API } from 'homebridge';
|
|
2
|
-
export declare function migratePlatformAliasInPluginConfigs(configs:
|
|
2
|
+
export declare function migratePlatformAliasInPluginConfigs(configs: unknown): number;
|
|
3
3
|
export declare function migrateLegacyPlatformAlias(api: API): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=configMigration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMigration.d.ts","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"configMigration.d.ts","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAoB,MAAM,YAAY,CAAA;AAUvD,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAc5E;AAED,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDxE"}
|
package/dist/configMigration.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
1
3
|
import { PLUGIN_NAME, PLATFORM_NAME } from './settings.js';
|
|
2
4
|
import { UiApi } from './ui-api.js';
|
|
3
5
|
const LEGACY_PLATFORM_NAME = 'PluginUpdate';
|
|
@@ -26,6 +28,30 @@ export async function migrateLegacyPlatformAlias(api) {
|
|
|
26
28
|
debug: () => { },
|
|
27
29
|
};
|
|
28
30
|
try {
|
|
31
|
+
// Primary approach: read config.json directly so that legacy 'PluginUpdate' entries
|
|
32
|
+
// are found and migrated regardless of which npm package name they were last saved
|
|
33
|
+
// under. This is required when upgrading from the old unscoped package
|
|
34
|
+
// (homebridge-plugin-update-check) or from a v2.x install where the platform alias
|
|
35
|
+
// was still 'PluginUpdate', because the Homebridge UI API only returns entries for
|
|
36
|
+
// the current plugin alias ('HomebridgeUpdater') and will return an empty array
|
|
37
|
+
// before the first migration completes.
|
|
38
|
+
const configPath = path.resolve(hbStoragePath, 'config.json');
|
|
39
|
+
let hbConfig;
|
|
40
|
+
try {
|
|
41
|
+
hbConfig = JSON.parse(readFileSync(configPath, 'utf8'));
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
hbConfig = undefined;
|
|
45
|
+
}
|
|
46
|
+
if (hbConfig?.platforms && Array.isArray(hbConfig.platforms)) {
|
|
47
|
+
const updatedDirect = migratePlatformAliasInPluginConfigs(hbConfig.platforms);
|
|
48
|
+
if (updatedDirect > 0) {
|
|
49
|
+
writeFileSync(configPath, JSON.stringify(hbConfig, null, 4), 'utf8');
|
|
50
|
+
}
|
|
51
|
+
// config.json was readable and parseable — no need to try the UI API.
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// config.json could not be read or parsed — fall back to the UI API.
|
|
29
55
|
const uiApi = new UiApi(hbStoragePath, silentLog);
|
|
30
56
|
if (!uiApi.isConfigured()) {
|
|
31
57
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,MAAM,oBAAoB,GAAG,cAAc,CAAA;AAE3C,MAAM,UAAU,mCAAmC,CAAC,
|
|
1
|
+
{"version":3,"file":"configMigration.js","sourceRoot":"","sources":["../src/configMigration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAEnC,MAAM,oBAAoB,GAAG,cAAc,CAAA;AAE3C,MAAM,UAAU,mCAAmC,CAAC,OAAgB;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,cAAc,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,cAAc,EAAE,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YACtD,cAAc,CAAC,QAAQ,GAAG,aAAa,CAAA;YACvC,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,GAAQ;IACvD,MAAM,aAAa,GAAI,GAAG,CAAC,IAAY,EAAE,WAAW,EAAE,EAAE,CAAA;IACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;KAChB,CAAA;IAED,IAAI,CAAC;QACH,oFAAoF;QACpF,mFAAmF;QACnF,uEAAuE;QACvE,mFAAmF;QACnF,mFAAmF;QACnF,gFAAgF;QAChF,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QAC7D,IAAI,QAAsC,CAAA;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAqB,CAAA;QAC7E,CAAC;QACD,MAAM,CAAC;YACL,QAAQ,GAAG,SAAS,CAAA;QACtB,CAAC;QAED,IAAI,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,MAAM,aAAa,GAAG,mCAAmC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC7E,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YACtE,CAAC;YACD,sEAAsE;YACtE,OAAM;QACR,CAAC;QAED,qEAAqE;QACrE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,aAAa,EAAE,SAAgB,CAAC,CAAA;QACxD,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,mCAAmC,CAAC,aAAa,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAM;QACR,CAAC;QAED,MAAM,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC1D,MAAM,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;IAC3C,CAAC;IACD,MAAM,CAAC;QACL,8DAA8D;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import
|
|
1
|
+
import { describe, expect, it, vi, beforeEach } from 'vitest';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
// Mock node:fs before any imports that use it — vitest hoists vi.mock automatically.
|
|
4
|
+
vi.mock('node:fs', () => ({
|
|
5
|
+
readFileSync: vi.fn(),
|
|
6
|
+
writeFileSync: vi.fn(),
|
|
7
|
+
}));
|
|
8
|
+
import * as fs from 'node:fs';
|
|
9
|
+
import { migratePlatformAliasInPluginConfigs, migrateLegacyPlatformAlias } from './configMigration.js';
|
|
3
10
|
describe('config migration', () => {
|
|
4
11
|
it('should migrate legacy platform alias in plugin config entries', () => {
|
|
5
12
|
const pluginConfigs = [
|
|
@@ -19,5 +26,94 @@ describe('config migration', () => {
|
|
|
19
26
|
expect(updated).toBe(0);
|
|
20
27
|
expect(pluginConfigs[0].platform).toBe('HomebridgeUpdater');
|
|
21
28
|
});
|
|
29
|
+
it('should return 0 for a non-array input', () => {
|
|
30
|
+
expect(migratePlatformAliasInPluginConfigs(null)).toBe(0);
|
|
31
|
+
expect(migratePlatformAliasInPluginConfigs(undefined)).toBe(0);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe('migrateLegacyPlatformAlias (direct file migration)', () => {
|
|
35
|
+
const FAKE_STORAGE = path.join(path.sep, 'fake', 'homebridge');
|
|
36
|
+
const FAKE_CONFIG_PATH = path.resolve(FAKE_STORAGE, 'config.json');
|
|
37
|
+
const readFileSyncMock = vi.mocked(fs.readFileSync);
|
|
38
|
+
const writeFileSyncMock = vi.mocked(fs.writeFileSync);
|
|
39
|
+
function makeApi(storagePath) {
|
|
40
|
+
return {
|
|
41
|
+
user: { storagePath: () => storagePath },
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
vi.clearAllMocks();
|
|
46
|
+
});
|
|
47
|
+
it('should do nothing when storagePath is missing', async () => {
|
|
48
|
+
await migrateLegacyPlatformAlias(makeApi(undefined));
|
|
49
|
+
expect(readFileSyncMock).not.toHaveBeenCalled();
|
|
50
|
+
expect(writeFileSyncMock).not.toHaveBeenCalled();
|
|
51
|
+
});
|
|
52
|
+
it('should migrate PluginUpdate → HomebridgeUpdater entries directly in config.json', async () => {
|
|
53
|
+
const originalConfig = {
|
|
54
|
+
bridge: { name: 'Homebridge', username: 'AA:BB:CC:DD:EE:FF', port: 51826 },
|
|
55
|
+
platforms: [
|
|
56
|
+
{ platform: 'PluginUpdate', name: 'Plugin Update', checkPluginUpdates: true },
|
|
57
|
+
{ platform: 'OtherPlugin', name: 'Other' },
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
readFileSyncMock.mockReturnValue(JSON.stringify(originalConfig));
|
|
61
|
+
writeFileSyncMock.mockImplementation(() => { });
|
|
62
|
+
await migrateLegacyPlatformAlias(makeApi(FAKE_STORAGE));
|
|
63
|
+
expect(writeFileSyncMock).toHaveBeenCalledTimes(1);
|
|
64
|
+
const [writtenPath, writtenData] = writeFileSyncMock.mock.calls[0];
|
|
65
|
+
expect(writtenPath).toBe(FAKE_CONFIG_PATH);
|
|
66
|
+
const written = JSON.parse(writtenData);
|
|
67
|
+
expect(written.platforms[0].platform).toBe('HomebridgeUpdater');
|
|
68
|
+
expect(written.platforms[0].name).toBe('Plugin Update');
|
|
69
|
+
expect(written.platforms[0].checkPluginUpdates).toBe(true);
|
|
70
|
+
// Unrelated platform entries must remain untouched
|
|
71
|
+
expect(written.platforms[1].platform).toBe('OtherPlugin');
|
|
72
|
+
});
|
|
73
|
+
it('should not write config.json when no legacy entries exist', async () => {
|
|
74
|
+
const currentConfig = {
|
|
75
|
+
bridge: { name: 'Homebridge', username: 'AA:BB:CC:DD:EE:FF', port: 51826 },
|
|
76
|
+
platforms: [
|
|
77
|
+
{ platform: 'HomebridgeUpdater', name: 'Updater' },
|
|
78
|
+
],
|
|
79
|
+
};
|
|
80
|
+
readFileSyncMock.mockReturnValue(JSON.stringify(currentConfig));
|
|
81
|
+
writeFileSyncMock.mockImplementation(() => { });
|
|
82
|
+
await migrateLegacyPlatformAlias(makeApi(FAKE_STORAGE));
|
|
83
|
+
expect(writeFileSyncMock).not.toHaveBeenCalled();
|
|
84
|
+
});
|
|
85
|
+
it('should not throw when config.json cannot be read', async () => {
|
|
86
|
+
readFileSyncMock.mockImplementation(() => {
|
|
87
|
+
throw new Error('ENOENT: no such file');
|
|
88
|
+
});
|
|
89
|
+
writeFileSyncMock.mockImplementation(() => { });
|
|
90
|
+
await expect(migrateLegacyPlatformAlias(makeApi(FAKE_STORAGE))).resolves.toBeUndefined();
|
|
91
|
+
expect(writeFileSyncMock).not.toHaveBeenCalled();
|
|
92
|
+
});
|
|
93
|
+
it('should preserve all config fields (_bridge, etc.) when migrating', async () => {
|
|
94
|
+
const configWithBridge = {
|
|
95
|
+
bridge: { name: 'Homebridge', username: 'AA:BB:CC:DD:EE:FF', port: 51826 },
|
|
96
|
+
platforms: [
|
|
97
|
+
{
|
|
98
|
+
platform: 'PluginUpdate',
|
|
99
|
+
name: 'Plugin Update',
|
|
100
|
+
_bridge: { username: '11:22:33:44:55:66', port: 51828, name: 'Plugin Update Child Bridge' },
|
|
101
|
+
checkPluginUpdates: true,
|
|
102
|
+
autoUpdatePlugins: false,
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
};
|
|
106
|
+
readFileSyncMock.mockReturnValue(JSON.stringify(configWithBridge));
|
|
107
|
+
writeFileSyncMock.mockImplementation(() => { });
|
|
108
|
+
await migrateLegacyPlatformAlias(makeApi(FAKE_STORAGE));
|
|
109
|
+
expect(writeFileSyncMock).toHaveBeenCalledTimes(1);
|
|
110
|
+
const written = JSON.parse(writeFileSyncMock.mock.calls[0][1]);
|
|
111
|
+
const migratedPlatform = written.platforms[0];
|
|
112
|
+
expect(migratedPlatform.platform).toBe('HomebridgeUpdater');
|
|
113
|
+
// Child bridge config must be preserved intact
|
|
114
|
+
expect(migratedPlatform._bridge).toEqual(configWithBridge.platforms[0]._bridge);
|
|
115
|
+
expect(migratedPlatform.checkPluginUpdates).toBe(true);
|
|
116
|
+
expect(migratedPlatform.autoUpdatePlugins).toBe(false);
|
|
117
|
+
});
|
|
22
118
|
});
|
|
23
119
|
//# sourceMappingURL=configMigration.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configMigration.test.js","sourceRoot":"","sources":["../src/configMigration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"configMigration.test.js","sourceRoot":"","sources":["../src/configMigration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,qFAAqF;AACrF,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;IACrB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;CACvB,CAAC,CAAC,CAAA;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,mCAAmC,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAEtG,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,aAAa,GAAmC;YACpD,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE;YACpD,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;SAC3C,CAAA;QAED,MAAM,OAAO,GAAG,mCAAmC,CAAC,aAAa,CAAC,CAAA;QAElE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC3D,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,aAAa,GAAmC;YACpD,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;SACnD,CAAA;QAED,MAAM,OAAO,GAAG,mCAAmC,CAAC,aAAa,CAAC,CAAA;QAElE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACvB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,mCAAmC,CAAC,IAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAChE,MAAM,CAAC,mCAAmC,CAAC,SAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;IAC9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAElE,MAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;IACnD,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IAErD,SAAS,OAAO,CAAC,WAA+B;QAC9C,OAAO;YACL,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE;SAClC,CAAA;IACV,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,0BAA0B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QAEpD,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QAC/C,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1E,SAAS,EAAE;gBACT,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,kBAAkB,EAAE,IAAI,EAAE;gBAC7E,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;aAC3C;SACF,CAAA;QAED,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAQ,CAAC,CAAA;QACvE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAE9C,MAAM,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;QAEvD,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA6B,CAAA;QAC9F,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAE1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACvC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC/D,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACvD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,mDAAmD;QACnD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1E,SAAS,EAAE;gBACT,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;aACnD;SACF,CAAA;QAED,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAQ,CAAC,CAAA;QACtE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAE9C,MAAM,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;QAEvD,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QACF,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAE9C,MAAM,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;QACxF,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,gBAAgB,GAAG;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE;YAC1E,SAAS,EAAE;gBACT;oBACE,QAAQ,EAAE,cAAc;oBACxB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,4BAA4B,EAAE;oBAC3F,kBAAkB,EAAE,IAAI;oBACxB,iBAAiB,EAAE,KAAK;iBACzB;aACF;SACF,CAAA;QAED,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAQ,CAAC,CAAA;QACzE,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAE9C,MAAM,0BAA0B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;QAEvD,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA8B,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5F,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC3D,+CAA+C;QAC/C,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QAC/E,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
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.
|
|
5
|
+
"version": "3.1.5",
|
|
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",
|