homebridge 2.0.0-alpha.3 → 2.0.0-alpha.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.
Files changed (79) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge +8 -6
  3. package/config-sample.json +3 -3
  4. package/dist/childBridgeFork.js +2 -0
  5. package/dist/childBridgeFork.js.map +7 -0
  6. package/dist/cli.js +2 -0
  7. package/dist/cli.js.map +7 -0
  8. package/dist/index.d.ts +1099 -0
  9. package/dist/index.js +2 -0
  10. package/dist/index.js.map +7 -0
  11. package/package.json +49 -46
  12. package/lib/api.d.ts +0 -210
  13. package/lib/api.d.ts.map +0 -1
  14. package/lib/api.js +0 -155
  15. package/lib/api.js.map +0 -1
  16. package/lib/bridgeService.d.ts +0 -105
  17. package/lib/bridgeService.d.ts.map +0 -1
  18. package/lib/bridgeService.js +0 -432
  19. package/lib/bridgeService.js.map +0 -1
  20. package/lib/childBridgeFork.d.ts +0 -37
  21. package/lib/childBridgeFork.d.ts.map +0 -1
  22. package/lib/childBridgeFork.js +0 -244
  23. package/lib/childBridgeFork.js.map +0 -1
  24. package/lib/childBridgeService.d.ts +0 -199
  25. package/lib/childBridgeService.d.ts.map +0 -1
  26. package/lib/childBridgeService.js +0 -428
  27. package/lib/childBridgeService.js.map +0 -1
  28. package/lib/cli.d.ts +0 -4
  29. package/lib/cli.d.ts.map +0 -1
  30. package/lib/cli.js +0 -115
  31. package/lib/cli.js.map +0 -1
  32. package/lib/externalPortService.d.ts +0 -33
  33. package/lib/externalPortService.d.ts.map +0 -1
  34. package/lib/externalPortService.js +0 -64
  35. package/lib/externalPortService.js.map +0 -1
  36. package/lib/index.d.ts +0 -76
  37. package/lib/index.d.ts.map +0 -1
  38. package/lib/index.js +0 -72
  39. package/lib/index.js.map +0 -1
  40. package/lib/ipcService.d.ts +0 -33
  41. package/lib/ipcService.d.ts.map +0 -1
  42. package/lib/ipcService.js +0 -49
  43. package/lib/ipcService.js.map +0 -1
  44. package/lib/logger.d.ts +0 -78
  45. package/lib/logger.d.ts.map +0 -1
  46. package/lib/logger.js +0 -147
  47. package/lib/logger.js.map +0 -1
  48. package/lib/platformAccessory.d.ts +0 -54
  49. package/lib/platformAccessory.d.ts.map +0 -1
  50. package/lib/platformAccessory.js +0 -102
  51. package/lib/platformAccessory.js.map +0 -1
  52. package/lib/plugin.d.ts +0 -31
  53. package/lib/plugin.d.ts.map +0 -1
  54. package/lib/plugin.js +0 -194
  55. package/lib/plugin.js.map +0 -1
  56. package/lib/pluginManager.d.ts +0 -77
  57. package/lib/pluginManager.d.ts.map +0 -1
  58. package/lib/pluginManager.js +0 -380
  59. package/lib/pluginManager.js.map +0 -1
  60. package/lib/server.d.ts +0 -58
  61. package/lib/server.d.ts.map +0 -1
  62. package/lib/server.js +0 -457
  63. package/lib/server.js.map +0 -1
  64. package/lib/storageService.d.ts +0 -13
  65. package/lib/storageService.d.ts.map +0 -1
  66. package/lib/storageService.js +0 -70
  67. package/lib/storageService.js.map +0 -1
  68. package/lib/user.d.ts +0 -13
  69. package/lib/user.d.ts.map +0 -1
  70. package/lib/user.js +0 -36
  71. package/lib/user.js.map +0 -1
  72. package/lib/util/mac.d.ts +0 -4
  73. package/lib/util/mac.d.ts.map +0 -1
  74. package/lib/util/mac.js +0 -20
  75. package/lib/util/mac.js.map +0 -1
  76. package/lib/version.d.ts +0 -3
  77. package/lib/version.d.ts.map +0 -1
  78. package/lib/version.js +0 -21
  79. package/lib/version.js.map +0 -1
@@ -1,380 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PluginManager = void 0;
7
- const child_process_1 = require("child_process");
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const logger_1 = require("./logger");
11
- const plugin_1 = require("./plugin");
12
- const log = logger_1.Logger.internal;
13
- /**
14
- * Utility which exposes methods to search for installed Homebridge plugins
15
- */
16
- class PluginManager {
17
- // name must be prefixed with 'homebridge-' or '@scope/homebridge-'
18
- static PLUGIN_IDENTIFIER_PATTERN = /^((@[\w-]*)\/)?(homebridge-[\w-]*)$/;
19
- api;
20
- searchPaths = new Set(); // unique set of search paths we will use to discover installed plugins
21
- strictPluginResolution = false;
22
- activePlugins;
23
- disabledPlugins;
24
- plugins = new Map();
25
- // we have some plugins which simply pass a wrong or misspelled plugin name to the api calls, this translation tries to mitigate this
26
- pluginIdentifierTranslation = new Map();
27
- accessoryToPluginMap = new Map();
28
- platformToPluginMap = new Map();
29
- currentInitializingPlugin; // used to match registering plugins, see handleRegisterAccessory and handleRegisterPlatform
30
- constructor(api, options) {
31
- this.api = api;
32
- if (options) {
33
- if (options.customPluginPath) {
34
- this.searchPaths.add(path_1.default.resolve(process.cwd(), options.customPluginPath));
35
- }
36
- this.strictPluginResolution = options.strictPluginResolution || false;
37
- this.activePlugins = options.activePlugins;
38
- this.disabledPlugins = Array.isArray(options.disabledPlugins) ? options.disabledPlugins : undefined;
39
- }
40
- this.api.on("registerAccessory" /* InternalAPIEvent.REGISTER_ACCESSORY */, this.handleRegisterAccessory.bind(this));
41
- this.api.on("registerPlatform" /* InternalAPIEvent.REGISTER_PLATFORM */, this.handleRegisterPlatform.bind(this));
42
- }
43
- static isQualifiedPluginIdentifier(identifier) {
44
- return PluginManager.PLUGIN_IDENTIFIER_PATTERN.test(identifier);
45
- }
46
- static extractPluginName(name) {
47
- return name.match(PluginManager.PLUGIN_IDENTIFIER_PATTERN)[3];
48
- }
49
- static extractPluginScope(name) {
50
- return name.match(PluginManager.PLUGIN_IDENTIFIER_PATTERN)[2];
51
- }
52
- static getAccessoryName(identifier) {
53
- if (identifier.indexOf(".") === -1) {
54
- return identifier;
55
- }
56
- return identifier.split(".")[1];
57
- }
58
- static getPlatformName(identifier) {
59
- if (identifier.indexOf(".") === -1) {
60
- return identifier;
61
- }
62
- return identifier.split(".")[1];
63
- }
64
- static getPluginIdentifier(identifier) {
65
- return identifier.split(".")[0];
66
- }
67
- async initializeInstalledPlugins() {
68
- log.info("---");
69
- this.loadInstalledPlugins();
70
- for (const [identifier, plugin] of this.plugins) {
71
- try {
72
- await plugin.load();
73
- }
74
- catch (error) {
75
- log.error("====================");
76
- log.error(`ERROR LOADING PLUGIN ${identifier}:`);
77
- log.error(error.stack);
78
- log.error("====================");
79
- this.plugins.delete(identifier);
80
- continue;
81
- }
82
- if (this.disabledPlugins && this.disabledPlugins.includes(plugin.getPluginIdentifier())) {
83
- plugin.disabled = true;
84
- }
85
- if (plugin.disabled) {
86
- log.warn(`Disabled plugin: ${identifier}@${plugin.version}`);
87
- }
88
- else {
89
- log.info(`Loaded plugin: ${identifier}@${plugin.version}`);
90
- }
91
- await this.initializePlugin(plugin, identifier);
92
- log.info("---");
93
- }
94
- this.currentInitializingPlugin = undefined;
95
- }
96
- async initializePlugin(plugin, identifier) {
97
- try {
98
- this.currentInitializingPlugin = plugin;
99
- await plugin.initialize(this.api); // call the plugin's initializer and pass it our API instance
100
- }
101
- catch (error) {
102
- log.error("====================");
103
- log.error(`ERROR INITIALIZING PLUGIN ${identifier}:`);
104
- log.error(error.stack);
105
- log.error("====================");
106
- this.plugins.delete(identifier);
107
- return;
108
- }
109
- }
110
- handleRegisterAccessory(name, constructor, pluginIdentifier) {
111
- if (!this.currentInitializingPlugin) {
112
- throw new Error(`Unexpected accessory registration. Plugin ${pluginIdentifier ? `'${pluginIdentifier}' ` : ""}tried to register outside the initializer function!`);
113
- }
114
- if (pluginIdentifier && pluginIdentifier !== this.currentInitializingPlugin.getPluginIdentifier()) {
115
- log.info(`Plugin '${this.currentInitializingPlugin.getPluginIdentifier()}' tried to register with an incorrect plugin identifier: '${pluginIdentifier}'. Please report this to the developer!`);
116
- this.pluginIdentifierTranslation.set(pluginIdentifier, this.currentInitializingPlugin.getPluginIdentifier());
117
- }
118
- this.currentInitializingPlugin.registerAccessory(name, constructor);
119
- let plugins = this.accessoryToPluginMap.get(name);
120
- if (!plugins) {
121
- plugins = [];
122
- this.accessoryToPluginMap.set(name, plugins);
123
- }
124
- plugins.push(this.currentInitializingPlugin);
125
- }
126
- handleRegisterPlatform(name, constructor, pluginIdentifier) {
127
- if (!this.currentInitializingPlugin) {
128
- throw new Error(`Unexpected platform registration. Plugin ${pluginIdentifier ? `'${pluginIdentifier}' ` : ""}tried to register outside the initializer function!`);
129
- }
130
- if (pluginIdentifier && pluginIdentifier !== this.currentInitializingPlugin.getPluginIdentifier()) {
131
- log.debug(`Plugin '${this.currentInitializingPlugin.getPluginIdentifier()}' tried to register with an incorrect plugin identifier: '${pluginIdentifier}'. Please report this to the developer!`);
132
- this.pluginIdentifierTranslation.set(pluginIdentifier, this.currentInitializingPlugin.getPluginIdentifier());
133
- }
134
- this.currentInitializingPlugin.registerPlatform(name, constructor);
135
- let plugins = this.platformToPluginMap.get(name);
136
- if (!plugins) {
137
- plugins = [];
138
- this.platformToPluginMap.set(name, plugins);
139
- }
140
- plugins.push(this.currentInitializingPlugin);
141
- }
142
- getPluginForAccessory(accessoryIdentifier) {
143
- let plugin;
144
- if (accessoryIdentifier.indexOf(".") === -1) { // see if it matches exactly one accessory
145
- let found = this.accessoryToPluginMap.get(accessoryIdentifier);
146
- if (!found) {
147
- throw new Error(`No plugin was found for the accessory "${accessoryIdentifier}" in your config.json. Please make sure the corresponding plugin is installed correctly.`);
148
- }
149
- if (found.length > 1) {
150
- const options = found.map(plugin => plugin.getPluginIdentifier() + "." + accessoryIdentifier).join(", ");
151
- // check if only one of the multiple platforms is not disabled
152
- found = found.filter(plugin => !plugin.disabled);
153
- if (found.length !== 1) {
154
- throw new Error(`The requested accessory '${accessoryIdentifier}' has been registered multiple times. Please be more specific by writing one of: ${options}`);
155
- }
156
- }
157
- plugin = found[0];
158
- accessoryIdentifier = plugin.getPluginIdentifier() + "." + accessoryIdentifier;
159
- }
160
- else {
161
- const pluginIdentifier = PluginManager.getPluginIdentifier(accessoryIdentifier);
162
- if (!this.hasPluginRegistered(pluginIdentifier)) {
163
- throw new Error(`The requested plugin '${pluginIdentifier}' was not registered.`);
164
- }
165
- plugin = this.getPlugin(pluginIdentifier);
166
- }
167
- return plugin;
168
- }
169
- getPluginForPlatform(platformIdentifier) {
170
- let plugin;
171
- if (platformIdentifier.indexOf(".") === -1) { // see if it matches exactly one platform
172
- let found = this.platformToPluginMap.get(platformIdentifier);
173
- if (!found) {
174
- throw new Error(`No plugin was found for the platform "${platformIdentifier}" in your config.json. Please make sure the corresponding plugin is installed correctly.`);
175
- }
176
- if (found.length > 1) {
177
- const options = found.map(plugin => plugin.getPluginIdentifier() + "." + platformIdentifier).join(", ");
178
- // check if only one of the multiple platforms is not disabled
179
- found = found.filter(plugin => !plugin.disabled);
180
- if (found.length !== 1) {
181
- throw new Error(`The requested platform '${platformIdentifier}' has been registered multiple times. Please be more specific by writing one of: ${options}`);
182
- }
183
- }
184
- plugin = found[0];
185
- platformIdentifier = plugin.getPluginIdentifier() + "." + platformIdentifier;
186
- }
187
- else {
188
- const pluginIdentifier = PluginManager.getPluginIdentifier(platformIdentifier);
189
- if (!this.hasPluginRegistered(pluginIdentifier)) {
190
- throw new Error(`The requested plugin '${pluginIdentifier}' was not registered.`);
191
- }
192
- plugin = this.getPlugin(pluginIdentifier);
193
- }
194
- return plugin;
195
- }
196
- hasPluginRegistered(pluginIdentifier) {
197
- return this.plugins.has(pluginIdentifier) || this.pluginIdentifierTranslation.has(pluginIdentifier);
198
- }
199
- getPlugin(pluginIdentifier) {
200
- const plugin = this.plugins.get(pluginIdentifier);
201
- if (plugin) {
202
- return plugin;
203
- }
204
- else {
205
- const translation = this.pluginIdentifierTranslation.get(pluginIdentifier);
206
- if (translation) {
207
- return this.plugins.get(translation);
208
- }
209
- }
210
- return undefined;
211
- }
212
- getPluginByActiveDynamicPlatform(platformName) {
213
- const found = (this.platformToPluginMap.get(platformName) || [])
214
- .filter(plugin => !!plugin.getActiveDynamicPlatform(platformName));
215
- if (found.length === 0) {
216
- return undefined;
217
- }
218
- else if (found.length > 1) {
219
- const plugins = found.map(plugin => plugin.getPluginIdentifier()).join(", ");
220
- throw new Error(`'${platformName}' is an ambiguous platform name. It was registered by multiple plugins: ${plugins}`);
221
- }
222
- else {
223
- return found[0];
224
- }
225
- }
226
- /**
227
- * Gets all plugins installed on the local system
228
- */
229
- loadInstalledPlugins() {
230
- this.loadDefaultPaths();
231
- this.searchPaths.forEach(searchPath => {
232
- if (!fs_1.default.existsSync(searchPath)) { // just because this path is in require.main.paths doesn't mean it necessarily exists!
233
- return;
234
- }
235
- if (fs_1.default.existsSync(path_1.default.join(searchPath, "package.json"))) { // does this path point inside a single plugin and not a directory containing plugins?
236
- try {
237
- this.loadPlugin(searchPath);
238
- }
239
- catch (error) {
240
- log.warn(error.message);
241
- return;
242
- }
243
- }
244
- else { // read through each directory in this node_modules folder
245
- const relativePluginPaths = fs_1.default.readdirSync(searchPath) // search for directories only
246
- .filter(relativePath => {
247
- try {
248
- return fs_1.default.statSync(path_1.default.resolve(searchPath, relativePath)).isDirectory();
249
- }
250
- catch (e) {
251
- log.debug(`Ignoring path ${path_1.default.resolve(searchPath, relativePath)} - ${e.message}`);
252
- return false;
253
- }
254
- });
255
- // expand out @scoped plugins
256
- relativePluginPaths.slice()
257
- .filter(path => path.charAt(0) === "@") // is it a scope directory?
258
- .forEach(scopeDirectory => {
259
- // remove scopeDirectory from the path list
260
- const index = relativePluginPaths.indexOf(scopeDirectory);
261
- relativePluginPaths.splice(index, 1);
262
- const absolutePath = path_1.default.join(searchPath, scopeDirectory);
263
- fs_1.default.readdirSync(absolutePath)
264
- .filter(name => PluginManager.isQualifiedPluginIdentifier(name))
265
- .filter(name => {
266
- try {
267
- return fs_1.default.statSync(path_1.default.resolve(absolutePath, name)).isDirectory();
268
- }
269
- catch (e) {
270
- log.debug(`Ignoring path ${path_1.default.resolve(absolutePath, name)} - ${e.message}`);
271
- return false;
272
- }
273
- })
274
- .forEach(name => relativePluginPaths.push(scopeDirectory + "/" + name));
275
- });
276
- relativePluginPaths
277
- .filter(pluginIdentifier => {
278
- return PluginManager.isQualifiedPluginIdentifier(pluginIdentifier) // needs to be a valid homebridge plugin name
279
- && (!this.activePlugins || this.activePlugins.includes(pluginIdentifier)); // check if activePlugins is restricted and if so is the plugin is contained
280
- })
281
- .forEach(pluginIdentifier => {
282
- try {
283
- const absolutePath = path_1.default.resolve(searchPath, pluginIdentifier);
284
- this.loadPlugin(absolutePath);
285
- }
286
- catch (error) {
287
- log.warn(error.message);
288
- return;
289
- }
290
- });
291
- }
292
- });
293
- if (this.plugins.size === 0) {
294
- log.warn("No plugins found.");
295
- }
296
- }
297
- loadPlugin(absolutePath) {
298
- const packageJson = PluginManager.loadPackageJSON(absolutePath);
299
- const identifier = packageJson.name;
300
- const name = PluginManager.extractPluginName(identifier);
301
- const scope = PluginManager.extractPluginScope(identifier); // possibly undefined
302
- const alreadyInstalled = this.plugins.get(identifier); // check if there is already a plugin with the same Identifier
303
- if (alreadyInstalled) {
304
- throw new Error(`Warning: skipping plugin found at '${absolutePath}' since we already loaded the same plugin from '${alreadyInstalled.getPluginPath()}'.`);
305
- }
306
- const plugin = new plugin_1.Plugin(name, absolutePath, packageJson, scope);
307
- this.plugins.set(identifier, plugin);
308
- return plugin;
309
- }
310
- static loadPackageJSON(pluginPath) {
311
- const packageJsonPath = path_1.default.join(pluginPath, "package.json");
312
- let packageJson;
313
- if (!fs_1.default.existsSync(packageJsonPath)) {
314
- throw new Error(`Plugin ${pluginPath} does not contain a package.json.`);
315
- }
316
- try {
317
- packageJson = JSON.parse(fs_1.default.readFileSync(packageJsonPath, { encoding: "utf8" })); // attempt to parse package.json
318
- }
319
- catch (err) {
320
- throw new Error(`Plugin ${pluginPath} contains an invalid package.json. Error: ${err}`);
321
- }
322
- if (!packageJson.name || !PluginManager.isQualifiedPluginIdentifier(packageJson.name)) {
323
- throw new Error(`Plugin ${pluginPath} does not have a package name that begins with 'homebridge-' or '@scope/homebridge-.`);
324
- }
325
- // verify that it's tagged with the correct keyword
326
- if (!packageJson.keywords || !packageJson.keywords.includes("homebridge-plugin")) {
327
- throw new Error(`Plugin ${pluginPath} package.json does not contain the keyword 'homebridge-plugin'.`);
328
- }
329
- return packageJson;
330
- }
331
- loadDefaultPaths() {
332
- if (this.strictPluginResolution) {
333
- // if strict plugin resolution is enabled:
334
- // * only use custom plugin path, if set;
335
- // * otherwise add the current npm global prefix (e.g. /usr/local/lib/node_modules)
336
- if (this.searchPaths.size === 0) {
337
- this.addNpmPrefixToSearchPaths();
338
- }
339
- return;
340
- }
341
- if (require.main) {
342
- // add the paths used by require()
343
- require.main.paths.forEach(path => this.searchPaths.add(path));
344
- }
345
- // THIS SECTION FROM: https://github.com/yeoman/environment/blob/master/lib/resolver.js
346
- // Adding global npm directories
347
- // We tried using npm to get the global modules path, but it hasn't work out
348
- // because of bugs in the parsable implementation of `ls` command and mostly
349
- // performance issues. So, we go with our best bet for now.
350
- if (process.env.NODE_PATH) {
351
- process.env.NODE_PATH
352
- .split(path_1.default.delimiter)
353
- .filter(path => !!path) // trim out empty values
354
- .forEach(path => this.searchPaths.add(path));
355
- }
356
- else {
357
- // Default paths for non-windows systems
358
- if (process.platform !== "win32") {
359
- this.searchPaths.add("/usr/local/lib/node_modules");
360
- this.searchPaths.add("/usr/lib/node_modules");
361
- }
362
- this.addNpmPrefixToSearchPaths();
363
- }
364
- }
365
- addNpmPrefixToSearchPaths() {
366
- if (process.platform === "win32") {
367
- this.searchPaths.add(path_1.default.join(process.env.APPDATA, "npm/node_modules"));
368
- }
369
- else {
370
- this.searchPaths.add((0, child_process_1.execSync)("/bin/echo -n \"$(npm -g prefix)/lib/node_modules\"", {
371
- env: Object.assign({
372
- npm_config_loglevel: "silent",
373
- npm_update_notifier: "false",
374
- }, process.env),
375
- }).toString("utf8"));
376
- }
377
- }
378
- }
379
- exports.PluginManager = PluginManager;
380
- //# sourceMappingURL=pluginManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginManager.js","sourceRoot":"","sources":["../src/pluginManager.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyC;AACzC,4CAAoB;AACpB,gDAAwB;AAaxB,qCAAkC;AAClC,qCAAkC;AAElC,MAAM,GAAG,GAAG,eAAM,CAAC,QAAQ,CAAC;AA0C5B;;GAEG;AACH,MAAa,aAAa;IAExB,mEAAmE;IAC3D,MAAM,CAAU,yBAAyB,GAAG,qCAAqC,CAAC;IAEzE,GAAG,CAAgB;IAEnB,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC,CAAC,uEAAuE;IAC7G,sBAAsB,GAAY,KAAK,CAAC;IACxC,aAAa,CAAsB;IACnC,eAAe,CAAsB;IAErC,OAAO,GAAkC,IAAI,GAAG,EAAE,CAAC;IACpE,qIAAqI;IACpH,2BAA2B,GAA4C,IAAI,GAAG,EAAE,CAAC;IACjF,oBAAoB,GAAiC,IAAI,GAAG,EAAE,CAAC;IAC/D,mBAAmB,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEtE,yBAAyB,CAAU,CAAC,4FAA4F;IAExI,YAAY,GAAkB,EAAE,OAA8B;QAC5D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,KAAK,CAAC;YAEtE,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,gEAAsC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,EAAE,8DAAqC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAEM,MAAM,CAAC,2BAA2B,CAAC,UAAkB;QAC1D,OAAO,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,IAAY;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,yBAAyB,CAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,UAA+B;QAC5D,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,UAA8B;QAC1D,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,UAAoD;QACpF,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,0BAA0B;QACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,KAAI,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAClC,GAAG,CAAC,KAAK,CAAC,wBAAwB,UAAU,GAAG,CAAC,CAAC;gBACjD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAElC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAChC,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC;gBACxF,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACzB,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,oBAAoB,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,kBAAkB,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEhD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,UAAkB;QAC9D,IAAI,CAAC;YACH,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC;YACxC,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6DAA6D;QAClG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAClC,GAAG,CAAC,KAAK,CAAC,6BAA6B,UAAU,GAAG,CAAC,CAAC;YACtD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAElC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;IACH,CAAC;IAEO,uBAAuB,CAAC,IAAmB,EAAE,WAAuC,EAAE,gBAAmC;QAC/H,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6CAA6C,gBAAgB,CAAA,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAA,CAAC,CAAC,EAAE,qDAAqD,CAAC,CAAC;QACpK,CAAC;QAED,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAClG,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,6DAA6D,gBAAgB,yCAAyC,CAAC,CAAC;YAChM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEpE,IAAI,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEO,sBAAsB,CAAC,IAAkB,EAAE,WAAsC,EAAE,gBAAmC;QAC5H,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,4CAA4C,gBAAgB,CAAA,CAAC,CAAC,IAAI,gBAAgB,IAAI,CAAA,CAAC,CAAC,EAAE,qDAAqD,CAAC,CAAC;QACnK,CAAC;QAED,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAClG,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,6DAA6D,gBAAgB,yCAAyC,CAAC,CAAC;YACjM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC/G,CAAC;QAED,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEnE,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAEM,qBAAqB,CAAC,mBAAwD;QACnF,IAAI,MAAc,CAAC;QACnB,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,0CAA0C;YACvF,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAE/D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,mBAAmB,0FAA0F,CAAC,CAAC;YAC3K,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzG,8DAA8D;gBAC9D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,mBAAmB,oFAAoF,OAAO,EAAE,CAAC,CAAC;gBAChK,CAAC;YACH,CAAC;YAED,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,mBAAmB,CAAC;QAEjF,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,gBAAgB,uBAAuB,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,oBAAoB,CAAC,kBAAqD;QAC/E,IAAI,MAAc,CAAC;QACnB,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,yCAAyC;YACrF,IAAI,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAE7D,IAAG,CAAC,KAAK,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,yCAAyC,kBAAkB,0FAA0F,CAAC,CAAC;YACzK,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxG,8DAA8D;gBAC9D,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,kBAAkB,oFAAoF,OAAO,EAAE,CAAC,CAAC;gBAC9J,CAAC;YACH,CAAC;YAED,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAClB,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,EAAE,GAAG,GAAG,GAAG,kBAAkB,CAAC;QAE/E,CAAC;aAAM,CAAC;YACN,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,yBAAyB,gBAAgB,uBAAuB,CAAC,CAAC;YACpF,CAAC;YAED,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAE,CAAC;QAC7C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,mBAAmB,CAAC,gBAAkC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtG,CAAC;IAEM,SAAS,CAAC,gBAAkC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC3E,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,gCAAgC,CAAC,YAA0B;QAChE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;aAC7D,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,IAAI,YAAY,2EAA2E,OAAO,EAAE,CAAC,CAAC;QACxH,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,sFAAsF;gBACtH,OAAO;YACT,CAAC;YAED,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,sFAAsF;gBAChJ,IAAI,CAAC;oBACH,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACxB,OAAO;gBACT,CAAC;YACH,CAAC;iBAAM,CAAC,CAAC,0DAA0D;gBACjE,MAAM,mBAAmB,GAAG,YAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,8BAA8B;qBAClF,MAAM,CAAC,YAAY,CAAC,EAAE;oBACrB,IAAI,CAAC;wBACH,OAAO,YAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC3E,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,GAAG,CAAC,KAAK,CAAC,iBAAiB,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;wBACpF,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEL,6BAA6B;gBAC7B,mBAAmB,CAAC,KAAK,EAAE;qBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,2BAA2B;qBAClE,OAAO,CAAC,cAAc,CAAC,EAAE;oBACxB,2CAA2C;oBAC3C,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC1D,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAErC,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;oBAC3D,YAAE,CAAC,WAAW,CAAC,YAAY,CAAC;yBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;yBAC/D,MAAM,CAAC,IAAI,CAAC,EAAE;wBACb,IAAI,CAAC;4BACH,OAAO,YAAE,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;wBACrE,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,GAAG,CAAC,KAAK,CAAC,iBAAiB,cAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;4BAC9E,OAAO,KAAK,CAAC;wBACf,CAAC;oBACH,CAAC,CAAC;yBACD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;gBAEL,mBAAmB;qBAChB,MAAM,CAAC,gBAAgB,CAAC,EAAE;oBACzB,OAAO,aAAa,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAC,6CAA6C;2BAC3G,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,4EAA4E;gBAC3J,CAAC,CAAC;qBACD,OAAO,CAAC,gBAAgB,CAAC,EAAE;oBAC1B,IAAI,CAAC;wBACH,MAAM,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;wBAChE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACxB,OAAO;oBACT,CAAC;gBACH,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEM,UAAU,CAAC,YAAoB;QACpC,MAAM,WAAW,GAAgB,aAAa,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAE7E,MAAM,UAAU,GAAqB,WAAW,CAAC,IAAI,CAAC;QACtD,MAAM,IAAI,GAAe,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB;QAEjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,8DAA8D;QACrH,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,mDAAmD,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC7J,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,UAAkB;QAC/C,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC9D,IAAI,WAAwB,CAAC;QAE7B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,mCAAmC,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC;YACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAgC;QACpH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,6CAA6C,GAAG,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,sFAAsF,CAAC,CAAC;QAC9H,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,iEAAiE,CAAC,CAAC;QACzG,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,0CAA0C;YAC1C,yCAAyC;YACzC,mFAAmF;YACnF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACnC,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,kCAAkC;YAClC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,uFAAuF;QAEvF,gCAAgC;QAChC,4EAA4E;QAC5E,4EAA4E;QAC5E,2DAA2D;QAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,SAAS;iBAClB,KAAK,CAAC,cAAI,CAAC,SAAS,CAAC;iBACrB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,wBAAwB;iBAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,yBAAyB;QAC/B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAA,wBAAQ,EAAC,oDAAoD,EAAE;gBAClF,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC;oBACjB,mBAAmB,EAAE,QAAQ;oBAC7B,mBAAmB,EAAE,OAAO;iBAC7B,EAAE,OAAO,CAAC,GAAG,CAAC;aAChB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;;AAvaH,sCAyaC"}
package/lib/server.d.ts DELETED
@@ -1,58 +0,0 @@
1
- export interface HomebridgeOptions {
2
- keepOrphanedCachedAccessories?: boolean;
3
- hideQRCode?: boolean;
4
- insecureAccess?: boolean;
5
- customPluginPath?: string;
6
- noLogTimestamps?: boolean;
7
- debugModeEnabled?: boolean;
8
- forceColourLogging?: boolean;
9
- customStoragePath?: string;
10
- strictPluginResolution?: boolean;
11
- }
12
- export declare const enum ServerStatus {
13
- /**
14
- * When the server is starting up
15
- */
16
- PENDING = "pending",
17
- /**
18
- * When the server is online and has published the main bridge
19
- */
20
- OK = "ok",
21
- /**
22
- * When the server is shutting down
23
- */
24
- DOWN = "down"
25
- }
26
- export declare class Server {
27
- private options;
28
- private readonly api;
29
- private readonly pluginManager;
30
- private readonly bridgeService;
31
- private readonly ipcService;
32
- private readonly externalPortService;
33
- private readonly config;
34
- private readonly childBridges;
35
- private serverStatus;
36
- constructor(options?: HomebridgeOptions);
37
- /**
38
- * Set the current server status and update parent via IPC
39
- * @param status
40
- */
41
- private setServerStatus;
42
- start(): Promise<void>;
43
- teardown(): void;
44
- private publishBridge;
45
- private static loadConfig;
46
- private loadAccessories;
47
- private loadPlatforms;
48
- /**
49
- * Validate an external bridge config
50
- */
51
- private validateChildBridgeConfig;
52
- /**
53
- * Takes care of the IPC Events sent to Homebridge
54
- */
55
- private initializeIpcEventHandlers;
56
- private printSetupInfo;
57
- }
58
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,0BAAkB,YAAY;IAC5B;;OAEG;IACH,OAAO,YAAY;IAEnB;;OAEG;IACH,EAAE,OAAO;IAET;;OAEG;IACH,IAAI,SAAS;CACd;AAED,qBAAa,MAAM;IAgBf,OAAO,CAAC,OAAO;IAfjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAE1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAG1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkD;IAG/E,OAAO,CAAC,YAAY,CAAsC;gBAGhD,OAAO,GAAE,iBAAsB;IAuDzC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC5B,QAAQ,IAAI,IAAI;IAKvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,MAAM,CAAC,UAAU;IAoFzB,OAAO,CAAC,eAAe;IAqGvB,OAAO,CAAC,aAAa;IA4FrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiCjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoClC,OAAO,CAAC,cAAc;CAoBvB"}