homebridge-generac 0.1.0-beta.1 → 1.0.1

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
@@ -4,6 +4,33 @@ All notable changes to homebridge-generac are listed here. The format follows Ke
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 1.0.1 (September 26, 2026)
8
+
9
+ ### Changed
10
+
11
+ - The exercise watch window now opens 10 minutes before the exercise time instead of 2, and still closes 20 minutes after it, so the plugin checks at the faster interval for 30 minutes a day. Mobile Link can report a later time than the one the generator keeps: one unit starts at 10:00 while Mobile Link says 10:05. With the prefilled time, the first minutes of the exercise were missed and the Exercising sensor only opened later, when Mobile Link recorded the finished exercise. Now the window opens at 9:55 for that unit.
12
+ - The intro on the settings page and at the top of the plugin's configuration lists the Exercising sensor and no longer promises a propane tank level.
13
+ - Propane tank monitors on the account are listed on the settings page and in the Homebridge log as not supported. Propane support is on hold with no planned release, so the plugin no longer says tank level support is coming.
14
+
15
+ ### Fixed
16
+
17
+ - `homebridge-generac login` no longer shows the sign-in code or state in the terminal. Every redirect it prints shows REDACTED in place of the code, the state and any token, and a failed token request shows only the error and its description.
18
+ - `homebridge-generac login` no longer writes debug files to the folder you run it from when a sign-in step fails. It prints the step, the HTTP status and the error code instead. The new `--debug` option also saves the page, with codes, state and tokens redacted, to `homebridge-generac/debug/` in the Homebridge storage folder (mode 600).
19
+
20
+ ## 1.0.0 (September 25, 2026)
21
+
22
+ First stable release, after a soak of the beta on a live install since September 16, 2026.
23
+
24
+ ### Added
25
+
26
+ - Node 24 support. The plugin runs on Node 20, 22 and 24, and CI tests all three.
27
+ - After Confirm, the Reset dialog is replaced in place by a done state that says to click Save and restart Homebridge, and the Reset link is hidden until the page reloads.
28
+
29
+ ### Fixed
30
+
31
+ - The Reset dialog in the Homebridge UI dark theme: it now uses the host's card colours instead of a white panel.
32
+ - The Reset confirmation accepts RESET in any case.
33
+
7
34
  ## 0.1.0-beta.1 (September 15, 2026)
8
35
 
9
36
  First beta of Generac for Homebridge, a ground-up successor to homebridge-mobilelink.
package/README.md CHANGED
@@ -6,7 +6,7 @@ Do not claim it. Once the plugin is verified, replace this comment with the badg
6
6
  [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
7
7
  -->
8
8
 
9
- [![npm version](https://img.shields.io/npm/v/homebridge-generac/beta)](https://www.npmjs.com/package/homebridge-generac)
9
+ [![npm version](https://img.shields.io/npm/v/homebridge-generac)](https://www.npmjs.com/package/homebridge-generac)
10
10
  [![npm downloads](https://img.shields.io/npm/dt/homebridge-generac)](https://www.npmjs.com/package/homebridge-generac)
11
11
  [![License](https://img.shields.io/github/license/arodbuilds/homebridge-generac)](LICENSE)
12
12
  [![Build and Lint](https://github.com/arodbuilds/homebridge-generac/actions/workflows/build.yml/badge.svg)](https://github.com/arodbuilds/homebridge-generac/actions/workflows/build.yml)
@@ -15,7 +15,7 @@ A [Homebridge](https://homebridge.io) plugin that shows the standby generators o
15
15
 
16
16
  Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobile Link are its trademarks. Uses Generac's undocumented Mobile Link API, which can change without notice.
17
17
 
18
- > **Status:** Beta. Please report what works and what does not in the [issue tracker](https://github.com/arodbuilds/homebridge-generac/issues).
18
+ > **Status:** 1.0.1, released September 26, 2026.
19
19
 
20
20
  ## Contents
21
21
 
@@ -37,16 +37,16 @@ Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobil
37
37
  ## Requirements
38
38
 
39
39
  - Homebridge 1.8 or 2.x, with the Homebridge UI for the settings page.
40
- - Node 20 or later.
40
+ - Node 20, 22 or 24.
41
41
  - A Generac Mobile Link account with at least one generator on it.
42
42
  - If the account predates April 21, 2026, a password reset since then. Generac moved Mobile Link sign-in to a new system on that date and did not carry older passwords across, so an older password is rejected until it is reset in the Mobile Link app.
43
43
 
44
44
  ## Install
45
45
 
46
- Search for "Generac" under Plugins in the Homebridge UI and install the beta, or from a shell on the Homebridge host:
46
+ Search for "Generac" under Plugins in the Homebridge UI and install it, or from a shell on the Homebridge host:
47
47
 
48
48
  ```shell
49
- npm i -g homebridge-generac@beta
49
+ npm i -g homebridge-generac
50
50
  ```
51
51
 
52
52
  Then open the plugin's settings from the Plugins page. Everything in the setup below happens on that page. The host's Save button writes config.json and Homebridge restarts the plugin.
@@ -120,7 +120,7 @@ Every sensor also reports Status Active, which is off while the unit is not resp
120
120
  ## How it works
121
121
 
122
122
  - **Polling.** While every generator is ready and quiet the plugin checks Mobile Link every 10 minutes (Poll interval while idle, minimum 2). While any generator is running, exercising or in fault it checks every 90 seconds (Poll interval while running or in fault, minimum 60). Mobile Link itself updates every few minutes and limits how often an account can be checked, so faster settings rarely help.
123
- - **The exercise watch window.** Around the exercise time, from 2 minutes before it until 20 minutes after it, every day, the plugin checks at the faster interval so a live exercise is likely to be seen rather than only detected afterwards.
123
+ - **The exercise watch window.** Around the exercise time, from 10 minutes before it until 20 minutes after it, every day, the plugin checks at the faster interval so a live exercise is likely to be seen rather than only detected afterwards. The window opens early because Mobile Link can report a slightly later time than the one the generator keeps: one unit starts at 10:00 while Mobile Link says 10:05, so the prefilled time still covers the start.
124
124
  - **Backoff.** When a check fails, the plugin waits longer between tries, doubling from the fast interval up to 30 minutes with some jitter. After three failures in a row the sensors show Not responding until a check succeeds.
125
125
  - **Sign-in.** The plugin signs in once, from the settings page, and keeps only a refresh token. Access tokens are refreshed shortly before they expire; the plugin never signs in again on its own and never needs the password after the first time.
126
126
  - **After a password change.** Changing the Mobile Link password revokes the refresh token. The plugin then enters Reconnect needed: it logs once, marks the sensors as not responding, turns the Attention needed sensor on if enabled, and retries hourly in case access comes back. Click Reconnect on the settings page and sign in again; nothing else changes.
@@ -132,6 +132,7 @@ Every sensor also reports Status Active, which is off while the unit is not resp
132
132
  - The password is never stored. It is used once to sign in from the settings page (or the `homebridge-generac login` command) and then forgotten.
133
133
  - `homebridge-generac/state.json` holds what the settings page shows: the account state, each generator's last status, and when the plugin last checked. No tokens.
134
134
  - With Debug logging on, every status change writes the raw Mobile Link payload for the generator to `homebridge-generac/captures/`, keeping the newest 10, so a real payload can be shared as a test fixture. Captures never contain tokens.
135
+ - `homebridge-generac/debug/` exists only if you ran `homebridge-generac login --debug` and a sign-in step failed. It holds the page Mobile Link's sign-in service returned, with codes, state and tokens replaced by REDACTED (mode 600). Without `--debug`, the command writes no such file, and it never writes to the folder you run it from.
135
136
  - The log never contains passwords, tokens, keys or one-time codes, at any log level.
136
137
  - Nothing is sent anywhere but Generac. The plugin talks to Generac's sign-in service and the Mobile Link API and to nothing else.
137
138
  - To remove everything, use Reset plugin to fresh install on the settings page, or delete the `homebridge-generac` folder in the Homebridge storage folder.
@@ -145,12 +146,12 @@ Every sensor also reports Status Active, which is off while the unit is not resp
145
146
  - **The card stays on Checking.** Homebridge picks up a new sign-in within a minute without a restart. If the card has not changed after two minutes, restart Homebridge from Power Options.
146
147
  - **Reconnect needed.** Mobile Link signed the plugin out. This happens after a password change or if Generac revokes access. Click Reconnect and sign in again; the generators and their sensors stay as they were. The Attention needed sensor, if enabled, is on until you do.
147
148
  - **Not responding.** The generator has not reported to Mobile Link recently (a Wi-Fi drop is the usual cause), or the plugin has not been able to reach Mobile Link for three checks in a row. The card shows when the unit was last heard from; the sensors report Status Active off and keep their last values. It is not a fault unless Treat a lost connection as a fault is on.
148
- - **No generators yet.** They appear within a minute of connecting. If the account holds only a propane tank monitor or a linked ecobee thermostat, the settings page says so under Generators: tank monitors are planned for a later release, and ecobee thermostats are already native HomeKit devices and are skipped.
149
+ - **No generators yet.** They appear within a minute of connecting. If the account holds only a propane tank monitor or a linked ecobee thermostat, the settings page says so under Generators: tank monitors are not supported, and ecobee thermostats are already native HomeKit devices and are skipped.
149
150
  - **The generator exercised but the sensor did not open.** The sensor also opens retroactively when Mobile Link records the finished exercise, usually within the next idle poll. Check Exercise time under Advanced; the plugin checks more often around that time every day.
150
151
 
151
152
  ## Development
152
153
 
153
- Node 20 or later. Clone the repository, then:
154
+ Node 20, 22 or 24. Clone the repository, then:
154
155
 
155
156
  ```shell
156
157
  npm ci
@@ -161,7 +162,14 @@ npm test
161
162
 
162
163
  To try a build on a Homebridge host, symlink the clone into the global plugin path, for example `ln -s ~/homebridge-generac "$(npm root -g)/homebridge-generac"`, then restart Homebridge. The settings page is TypeScript under `homebridge-ui/src/`, compiled to `homebridge-ui/public/js/` by the build; its server side is compiled from `src/ui/` and started by `homebridge-ui/server.js`. [SPEC.md](SPEC.md) is the source of truth for behaviour, naming, configuration and the page's copy.
163
164
 
164
- The `homebridge-generac status` command prints the account and generator state from a terminal, and `homebridge-generac login` signs in without the settings page.
165
+ The `homebridge-generac status` command prints the account and generator state from a terminal, and `homebridge-generac login` signs in without the settings page:
166
+
167
+ ```shell
168
+ homebridge-generac login [--out file] [--debug]
169
+ homebridge-generac status [--creds file]
170
+ ```
171
+
172
+ Run `login` as the user Homebridge runs as, so the credentials land in `homebridge-generac/credentials.json` in its storage folder (or at `--out`). The redirects it prints show their shape only: the sign-in code, state and any token read `REDACTED`. When a sign-in step fails, `login` prints the step, the HTTP status and the sign-in service's error code. Add `--debug` to also save the page that step returned, redacted the same way, to `homebridge-generac/debug/<step>-<status>.html` next to the credentials (mode 600), for a bug report. Nothing is written to the folder you run it from.
165
173
 
166
174
  ## Credits
167
175
 
package/SECURITY.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Supported versions
4
4
 
5
+ | Version | Supported |
6
+ |---|---|
7
+ | 1.0.x | Yes |
8
+ | 0.1.0-beta.x | No |
9
+
5
10
  Only the newest release receives security fixes. Older versions do not.
6
11
 
7
12
  ## Reporting a vulnerability
@@ -2,7 +2,7 @@
2
2
  "pluginAlias": "Generac",
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
- "headerDisplay": "Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor and a starting battery reading. Propane models will also get a tank level later. Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobile Link are its trademarks. Uses Generac's undocumented Mobile Link API, which can change without notice.",
5
+ "headerDisplay": "Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor, an Exercising sensor and a starting battery reading. Not affiliated with or endorsed by Generac Power Systems, Inc. Generac and Mobile Link are its trademarks. Uses Generac's undocumented Mobile Link API, which can change without notice.",
6
6
  "schema": {
7
7
  "type": "object",
8
8
  "required": [
package/dist/auth.d.ts CHANGED
@@ -19,7 +19,7 @@ export interface LoginOptions {
19
19
  mfaPrompt: (type: MfaType, attempt: number) => Promise<string>;
20
20
  /** Optional step logger for diagnostics. Never receives secrets. */
21
21
  log?: (step: string, message: string) => void;
22
- /** Optional sink for the HTML of a failed step. */
22
+ /** Optional sink for the HTML of a failed step, as the server sent it: pass it through `redactBody()` before it is written anywhere. */
23
23
  onFailureBody?: (step: string, status: number, body: string) => void;
24
24
  }
25
25
  export interface LoginResult {
@@ -35,6 +35,20 @@ export declare class AuthError extends Error {
35
35
  export declare class InvalidGrantError extends AuthError {
36
36
  constructor(message: string);
37
37
  }
38
+ /** Parameters whose values never reach a log line, an error message or a debug file. */
39
+ export declare const REDACTED_KEYS: string[];
40
+ /**
41
+ * A URL or Location header with the values of `code`, `state`, `nonce`, `code_challenge`, `code_verifier`,
42
+ * `id_token`, `access_token` and `refresh_token` replaced by REDACTED, in the query and in a `#fragment`. The key
43
+ * names stay, so a log line still shows the shape of the redirect. Relative and app-scheme URLs work too.
44
+ */
45
+ export declare function redactUrl(url: string): string;
46
+ /**
47
+ * An HTML page (a failed sign-in step) with the same rules as `redactUrl()` applied to every URL in it, plus the
48
+ * same keys as hidden form fields (`<input name="state" value="…">`) and as JSON fields, and anything shaped
49
+ * like a JWT. Used before the CLI writes a debug file.
50
+ */
51
+ export declare function redactBody(body: string): string;
38
52
  export declare class DPoPKey {
39
53
  private readonly privateKey;
40
54
  readonly jwk: {
package/dist/auth.js CHANGED
@@ -58,6 +58,49 @@ function truncate(s, n = 160) {
58
58
  return s.length > n ? s.slice(0, n) + '…' : s;
59
59
  }
60
60
  // ---------------------------------------------------------------------------
61
+ // Redaction (SPEC section 12): sign-in redirects carry the authorization code and state
62
+ // ---------------------------------------------------------------------------
63
+ /** Parameters whose values never reach a log line, an error message or a debug file. */
64
+ export const REDACTED_KEYS = ['code', 'state', 'nonce', 'code_challenge', 'code_verifier', 'id_token', 'access_token', 'refresh_token'];
65
+ const KEYS = REDACTED_KEYS.join('|');
66
+ // A key right after `?`, `&`, `#` or the `;` of an HTML `&amp;`, so `code_challenge_method` and `client_id` are left alone.
67
+ const PARAM = new RegExp(`([?&#;])(${KEYS})=[^&#\\s"'<>]*`, 'gi');
68
+ const INPUT_TAG = /<input\b[^>]*>/gi;
69
+ const INPUT_NAME = new RegExp(`\\bname\\s*=\\s*(["']?)(${KEYS})\\1(?=[\\s/>])`, 'i');
70
+ const INPUT_VALUE = /(\bvalue\s*=\s*)(["'])[^"']*\2/i;
71
+ const JSON_FIELD = new RegExp(`(["'])(${KEYS})\\1(\\s*:\\s*)(["'])[^"']*\\4`, 'gi');
72
+ const JWT = /\beyJ[\w-]+\.[\w-]+\.[\w-]*/g;
73
+ /**
74
+ * A URL or Location header with the values of `code`, `state`, `nonce`, `code_challenge`, `code_verifier`,
75
+ * `id_token`, `access_token` and `refresh_token` replaced by REDACTED, in the query and in a `#fragment`. The key
76
+ * names stay, so a log line still shows the shape of the redirect. Relative and app-scheme URLs work too.
77
+ */
78
+ export function redactUrl(url) {
79
+ return url.replace(PARAM, '$1$2=REDACTED');
80
+ }
81
+ /**
82
+ * An HTML page (a failed sign-in step) with the same rules as `redactUrl()` applied to every URL in it, plus the
83
+ * same keys as hidden form fields (`<input name="state" value="…">`) and as JSON fields, and anything shaped
84
+ * like a JWT. Used before the CLI writes a debug file.
85
+ */
86
+ export function redactBody(body) {
87
+ return redactUrl(body)
88
+ .replace(INPUT_TAG, (tag) => (INPUT_NAME.test(tag) ? tag.replace(INPUT_VALUE, '$1$2REDACTED$2') : tag))
89
+ .replace(JSON_FIELD, '$1$2$1$3$4REDACTED$4')
90
+ .replace(JWT, 'REDACTED');
91
+ }
92
+ /** Only `error` and `error_description` from a token endpoint answer, for an error message. Never the whole payload. */
93
+ function oauthError(payload) {
94
+ const fields = {};
95
+ for (const k of ['error', 'error_description']) {
96
+ const v = payload[k];
97
+ if (typeof v === 'string') {
98
+ fields[k] = v;
99
+ }
100
+ }
101
+ return Object.keys(fields).length > 0 ? ` ${JSON.stringify(fields)}` : '';
102
+ }
103
+ // ---------------------------------------------------------------------------
61
104
  // DPoP key
62
105
  // ---------------------------------------------------------------------------
63
106
  export class DPoPKey {
@@ -172,7 +215,7 @@ async function stepAuthorize(ctx, key, state, challenge) {
172
215
  return fail(ctx, 'authorize', res);
173
216
  }
174
217
  const loc = res.headers.get('location') ?? '';
175
- log(ctx, 'authorize', `302 -> ${truncate(loc)}`);
218
+ log(ctx, 'authorize', `302 -> ${truncate(redactUrl(loc))}`);
176
219
  const next = absolute(loc).searchParams.get('state');
177
220
  if (!next) {
178
221
  throw new AuthError('authorize: no state in redirect', 'authorize');
@@ -195,7 +238,7 @@ async function postForm(ctx, step, url, state, form) {
195
238
  return fail(ctx, step, res);
196
239
  }
197
240
  const loc = res.headers.get('location') ?? '';
198
- log(ctx, step, `302 -> ${truncate(loc)}`);
241
+ log(ctx, step, `302 -> ${truncate(redactUrl(loc))}`);
199
242
  return loc;
200
243
  }
201
244
  async function stepIdentifier(ctx, state, email) {
@@ -244,7 +287,7 @@ async function handleCustomPrompt(ctx, loc) {
244
287
  return fail(ctx, 'custom-prompt', res, 'This prompt needs a real browser (T&C, email verification or profile step). Sign in to the Mobile Link app, clear it, then retry.');
245
288
  }
246
289
  const next = res.headers.get('location') ?? '';
247
- log(ctx, 'custom-prompt', `302 -> ${truncate(next)}`);
290
+ log(ctx, 'custom-prompt', `302 -> ${truncate(redactUrl(next))}`);
248
291
  const nextState = absolute(next).searchParams.get('state');
249
292
  if (!nextState) {
250
293
  throw new AuthError('custom-prompt: no state after continue', 'custom-prompt');
@@ -291,7 +334,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
291
334
  return fail(ctx, 'resume', res);
292
335
  }
293
336
  const loc = res.headers.get('location') ?? '';
294
- log(ctx, 'resume', `302 -> ${truncate(loc)}`);
337
+ log(ctx, 'resume', `302 -> ${truncate(redactUrl(loc))}`);
295
338
  if (loc.startsWith(APP_SCHEME)) {
296
339
  const code = new URL(loc).searchParams.get('code');
297
340
  if (!code) {
@@ -312,7 +355,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
312
355
  log(ctx, 'mfa', `code rejected (${r.error})`);
313
356
  continue;
314
357
  }
315
- log(ctx, 'mfa-submit', `302 -> ${truncate(r.loc)}`);
358
+ log(ctx, 'mfa-submit', `302 -> ${truncate(redactUrl(r.loc))}`);
316
359
  if (r.loc.startsWith(APP_SCHEME)) {
317
360
  const c = new URL(r.loc).searchParams.get('code');
318
361
  if (!c) {
@@ -332,7 +375,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
332
375
  if (nu.pathname.endsWith('/authorize/resume')) {
333
376
  return driveResume(ctx, nu.searchParams.get('state'), depth + 1);
334
377
  }
335
- throw new AuthError(`mfa: unexpected redirect ${truncate(r.loc)}`, 'mfa');
378
+ throw new AuthError(`mfa: unexpected redirect ${truncate(redactUrl(r.loc))}`, 'mfa');
336
379
  }
337
380
  throw new AuthError('mfa: three rejected codes', 'mfa');
338
381
  }
@@ -344,7 +387,7 @@ async function driveResume(ctx, resumeState, depth = 0) {
344
387
  resumeState = await handleCustomPrompt(ctx, loc);
345
388
  continue;
346
389
  }
347
- throw new AuthError(`resume: unexpected redirect ${truncate(loc)}`, 'resume');
390
+ throw new AuthError(`resume: unexpected redirect ${truncate(redactUrl(loc))}`, 'resume');
348
391
  }
349
392
  throw new AuthError('resume: three consecutive custom prompts. Clear pending prompts in the Mobile Link app and retry.', 'resume');
350
393
  }
@@ -388,7 +431,7 @@ export async function login(email, password, opts) {
388
431
  const code = await driveResume(ctx, resumeState);
389
432
  const r = await tokenRequest(key, { grant_type: 'authorization_code', client_id: CLIENT_ID, code, code_verifier: verifier, redirect_uri: REDIRECT_URI }, opts.log);
390
433
  if (r.status !== 200) {
391
- throw new AuthError(`token: code exchange failed HTTP ${r.status} ${JSON.stringify(r.payload)}`, 'token');
434
+ throw new AuthError(`token: code exchange failed HTTP ${r.status}${oauthError(r.payload)}`, 'token');
392
435
  }
393
436
  const tokens = r.payload;
394
437
  if (!tokens.refresh_token) {
@@ -407,6 +450,6 @@ export async function refreshAccessToken(key, refreshToken, log) {
407
450
  if (err === 'invalid_grant' || (r.status === 403 && /invalid|revoked|expired/i.test(desc))) {
408
451
  throw new InvalidGrantError(`refresh token rejected (${err || r.status}): ${desc}`);
409
452
  }
410
- throw new AuthError(`refresh failed HTTP ${r.status} ${JSON.stringify(r.payload)}`, 'refresh');
453
+ throw new AuthError(`refresh failed HTTP ${r.status}${oauthError(r.payload)}`, 'refresh');
411
454
  }
412
455
  //# sourceMappingURL=auth.js.map
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;GAOG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC9C,MAAM,aAAa,GAAG,WAAW,YAAY,YAAY,CAAC;AAC1D,MAAM,SAAS,GAAG,WAAW,YAAY,cAAc,CAAC;AACxD,MAAM,UAAU,GAAG,WAAW,YAAY,mBAAmB,CAAC;AAC9D,MAAM,cAAc,GAAG,WAAW,YAAY,qBAAqB,CAAC;AACpE,MAAM,YAAY,GAAG,WAAW,YAAY,mBAAmB,CAAC;AAEhE,MAAM,SAAS,GAAG,kCAAkC,CAAC;AACrD,MAAM,YAAY,GAChB,oFAAoF,CAAC;AACvF,MAAM,UAAU,GAAG,iCAAiC,CAAC;AACrD,MAAM,KAAK,GAAG,wCAAwC,CAAC;AACvD,MAAM,QAAQ,GAAG,gCAAgC,CAAC;AAElD,MAAM,CAAC,MAAM,cAAc,GAAG,uDAAuD,CAAC;AACtF,MAAM,cAAc,GAClB,yDAAyD;IACzD,wDAAwD,CAAC;AAE3D,SAAS,MAAM,CAAC,GAAwB;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,mBAAmB,GAAG,MAAM,CAChC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAC5G,CAAC;AAIF,MAAM,eAAe,GAA4B;IAC/C,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,qBAAqB,EAAE,OAAO;CAC/B,CAAC;AAyBF,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IAFlB,YACE,OAAe,EACC,IAAY;QAE5B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAQ;QAG5B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,gFAAgF;AAChF,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,CAAgB,EAAE,CAAC,GAAG,GAAG;IACzC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,OAAO,OAAO;IAImB;IAH5B,GAAG,CAAqD;IACxD,UAAU,CAAS;IAE5B,YAAqC,UAA4B;QAA5B,eAAU,GAAV,UAAU,CAAkB;QAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,gEAAgE;QAChE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,QAAQ;QACb,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC;QACtF,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAW;QACxB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,GAAW,EAAE,KAAqB;QACvD,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAChE,MAAM,OAAO,GAA4B;YACvC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE;YACxB,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;YACtB,GAAG;YACH,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;SACnC,CAAC;QACF,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/G,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3G,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,CAAC;CACF;AAED,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC;AAED,8EAA8E;AAC9E,yEAAyE;AACzE,8EAA8E;AAE9E,MAAM,SAAS;IACI,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,MAAM,CAAC,GAAa;QAClB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED,KAAK,UAAU,YAAY,CAAC,GAAc,EAAE,GAAW,EAAE,OAAoB,EAAE;IAC7E,MAAM,OAAO,GAA2B,EAAE,GAAG,CAAE,IAAI,CAAC,OAAkC,IAAI,EAAE,CAAC,EAAE,CAAC;IAChG,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,GAAa;IAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,WAAW,YAAY,EAAE,CAAC,CAAC;AACjD,CAAC;AAWD,SAAS,GAAG,CAAC,GAAQ,EAAE,IAAY,EAAE,GAAW;IAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,GAAQ,EAAE,IAAY,EAAE,GAAa,EAAE,MAAe;IACxE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,UAAU,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1H,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAQ,EAAE,GAAY,EAAE,KAAa,EAAE,SAAiB;IACnF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,aAAa,EAAE,MAAM;QACrB,cAAc,EAAE,SAAS;QACzB,qBAAqB,EAAE,MAAM;QAC7B,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,KAAK;QACL,QAAQ,EAAE,GAAG,CAAC,UAAU;QACxB,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,mBAAmB;KACjC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,aAAa,IAAI,MAAM,EAAE,EAAE;QACpE,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;KACnE,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,CAAC,iCAAiC,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,GAAQ,EAAE,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,IAA4B;IACtG,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;QACnF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,mCAAmC;YACnD,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,WAAW,YAAY,EAAE;YACjC,OAAO,EAAE,GAAG,GAAG,UAAU,KAAK,EAAE;SACjC;QACD,IAAI,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC3C,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAQ,EAAE,KAAa,EAAE,KAAa;IAClE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE;QACnE,KAAK;QACL,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,MAAM;QACtB,oBAAoB,EAAE,MAAM;QAC5B,UAAU,EAAE,OAAO;QACnB,6BAA6B,EAAE,MAAM;QACrC,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAQ,EAAE,KAAa,EAAE,KAAa,EAAE,QAAgB;IAClF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1H,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAQ,EAAE,GAAW;IACrD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,SAAS,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC;IAClE,CAAC;IACD,yEAAyE;IACzE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,mCAAmC;YACnD,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,WAAW,YAAY,EAAE;YACjC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;SACtB;QACD,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE;KACnE,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CACT,GAAG,EACH,eAAe,EACf,GAAG,EACH,mIAAmI,CACpI,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/C,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,UAAU,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,SAAS,CAAC,wCAAwC,EAAE,eAAe,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAID,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,GAAW,EAAE,KAAa,EAAE,IAAY;IAC3E,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE;QACnF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,mCAAmC;YACnD,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,WAAW,YAAY,EAAE;YACjC,OAAO,EAAE,GAAG,GAAG,UAAU,KAAK,EAAE;SACjC;QACD,IAAI,EAAE,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE;KACzE,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9D,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,WAAW,CAAC,GAAQ,EAAE,WAAmB,EAAE,KAAK,GAAG,CAAC;IACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,UAAU,UAAU,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE;YAChG,OAAO,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC9C,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,SAAS,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,WAAW,YAAY,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YAC5C,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,iBAAiB,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC1D,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACV,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,GAAG,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAClD,IAAI,CAAC,CAAC,EAAE,CAAC;wBACP,MAAM,IAAI,SAAS,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;oBACzD,CAAC;oBACD,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;oBACzC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,+CAA+C,CAAC,CAAC;oBACjE,SAAS;gBACX,CAAC;gBACD,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,MAAM,IAAI,SAAS,CAAC,qCAAqC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBACjF,CAAC;gBACD,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAC9C,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAE,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACpE,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,4BAA4B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC5E,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CACjB,yBAAyB,CAAC,CAAC,QAAQ,mEAAmE;gBACpG,oDAAoD,EACtD,KAAK,CACN,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACtC,WAAW,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjD,SAAS;QACX,CAAC;QAED,MAAM,IAAI,SAAS,CAAC,+BAA+B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,mGAAmG,EAAE,QAAQ,CAAC,CAAC;AACrI,CAAC;AAYD,KAAK,UAAU,YAAY,CAAC,GAAY,EAAE,IAA4B,EAAE,GAAyB;IAC/F,MAAM,IAAI,GAAG,KAAK,EAAE,KAAqB,EAAwB,EAAE;QACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACjC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,kBAAkB;gBAC1B,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC;gBAC7C,YAAY,EAAE,cAAc;aAC7B;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;IAC/E,CAAC,CAAC;IAEF,IAAI,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;IACrB,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,gBAAgB,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,GAAG,EAAE,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;QACzD,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAa,EAAE,QAAgB,EAAE,IAAkB;IAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAQ,EAAE,GAAG,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEjD,MAAM,CAAC,GAAG,MAAM,YAAY,CAC1B,GAAG,EACH,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,EACrH,IAAI,CAAC,GAAG,CACT,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5G,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAmC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,qCAAqC,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IACD,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,wBAAwB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;IAChE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAY,EAAE,YAAoB,EAAE,GAAyB;IACpG,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3H,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC,OAAmC,CAAC;IAC/C,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;IACvD,IAAI,GAAG,KAAK,eAAe,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,IAAI,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACjG,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,17 +2,19 @@
2
2
  /**
3
3
  * homebridge-generac CLI
4
4
  *
5
- * homebridge-generac login [--out <file>] sign in once, save refresh token
6
- * homebridge-generac status [--creds <file>] print what the account exposes
5
+ * homebridge-generac login [--out <file>] [--debug] sign in once, save refresh token
6
+ * homebridge-generac status [--creds <file>] print what the account exposes
7
7
  *
8
8
  * Run `login` as the same user Homebridge runs as so the credentials land where
9
- * the platform looks for them.
9
+ * the platform looks for them. With `--debug`, a failed sign-in step's page is
10
+ * saved, redacted, to a `debug` folder next to the credentials file (SPEC section 12).
10
11
  */
11
12
  import fs from 'node:fs';
12
13
  import path from 'node:path';
13
14
  import readline from 'node:readline';
14
- import { login } from './auth.js';
15
+ import { extractAuth0ErrorCode, login, redactBody } from './auth.js';
15
16
  import { MobileLinkClient, readCredentials, writeCredentials } from './api.js';
17
+ import { writeFileAtomic } from './files.js';
16
18
  import { toGeneratorState } from './model.js';
17
19
  import { credentialCandidates, defaultStoragePath, primaryCredentialsPath } from './settings.js';
18
20
  import { DEVICE_TYPE, DEVICE_TYPE_LABEL } from './types.js';
@@ -48,19 +50,37 @@ async function prompt(question, hidden = false) {
48
50
  }
49
51
  return answer.trim();
50
52
  }
53
+ /**
54
+ * What `login` does with the page of a failed sign-in step. Without `--debug` it prints the step, the HTTP status
55
+ * and the Auth0 error code. With `--debug` it also saves the page, redacted, as `<step>-<status>.html` (mode 600) in
56
+ * a `debug` folder (mode 700) next to the credentials file: `<storage>/homebridge-generac/debug/` by default.
57
+ * Nothing is ever written to the working directory.
58
+ */
59
+ function failureBodySink(out, debug) {
60
+ return (step, status, body) => {
61
+ const code = extractAuth0ErrorCode(body);
62
+ log(step, `HTTP ${status}${code ? ` (auth0: ${code})` : ''}`);
63
+ if (!debug) {
64
+ return;
65
+ }
66
+ const dir = path.join(path.dirname(out), 'debug');
67
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
68
+ fs.chmodSync(dir, 0o700);
69
+ const f = path.join(dir, `${step}-${status}.html`);
70
+ writeFileAtomic(f, redactBody(body), 0o600);
71
+ log('debug', `saved the server response, redacted, to ${f}`);
72
+ };
73
+ }
51
74
  async function cmdLogin() {
52
75
  const out = arg('--out') ?? primaryCredentialsPath(defaultStoragePath());
76
+ const debug = process.argv.includes('--debug');
53
77
  const email = process.env.GENERAC_EMAIL || (await prompt('Mobile Link email: '));
54
78
  const password = process.env.GENERAC_PASSWORD || (await prompt('Mobile Link password: ', true));
55
79
  console.error(`\nSigning in to Mobile Link as ${email}…`);
56
80
  const result = await login(email, password, {
57
81
  log,
58
82
  mfaPrompt: async (type) => prompt(`Enter the ${type.toUpperCase()} code you just received: `),
59
- onFailureBody: (step, status, body) => {
60
- const f = path.join(process.cwd(), `homebridge-generac-debug-${step}-${status}.html`);
61
- fs.writeFileSync(f, body);
62
- log('debug', `saved server response to ${f}`);
63
- },
83
+ onFailureBody: failureBodySink(out, debug),
64
84
  });
65
85
  writeCredentials(out, {
66
86
  email,
@@ -106,7 +126,7 @@ async function cmdStatus() {
106
126
  const cmd = process.argv[2];
107
127
  const run = cmd === 'login' ? cmdLogin : cmd === 'status' ? cmdStatus : null;
108
128
  if (!run) {
109
- console.error('Usage: homebridge-generac <login [--out file] | status [--creds file]>');
129
+ console.error('Usage: homebridge-generac <login [--out file] [--debug] | status [--creds file]>');
110
130
  process.exit(2);
111
131
  }
112
132
  run().catch((err) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  /** "HH:MM" to minutes past midnight, or null when malformed. */
2
2
  export declare function parseHHMM(value: string | null | undefined): number | null;
3
- /** The watch window opens this many minutes before the exercise time and closes this many after it. */
4
- export declare const WATCH_BEFORE_MINUTES = 2;
3
+ /**
4
+ * The watch window opens this many minutes before the exercise time and closes this many after it. It opens early
5
+ * because Mobile Link can report a later time than the unit keeps (10:05 reported, 10:00 start; SPEC section 16).
6
+ */
7
+ export declare const WATCH_BEFORE_MINUTES = 10;
5
8
  export declare const WATCH_AFTER_MINUTES = 20;
6
9
  /**
7
- * True from `exerciseMinutes - 2` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
8
- * local time zone. A window that straddles midnight (an exercise at 00:01 or 23:50) is handled.
10
+ * True from `exerciseMinutes - 10` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
11
+ * local time zone. A window that straddles midnight (an exercise at 00:05 or 23:50) is handled.
9
12
  */
10
13
  export declare function inWatchWindow(exerciseMinutes: number, now: Date): boolean;
11
14
  /** Milliseconds until the next watch window opens; 0 while inside one. */
package/dist/exercise.js CHANGED
@@ -19,8 +19,11 @@ export function parseHHMM(value) {
19
19
  }
20
20
  return h * 60 + min;
21
21
  }
22
- /** The watch window opens this many minutes before the exercise time and closes this many after it. */
23
- export const WATCH_BEFORE_MINUTES = 2;
22
+ /**
23
+ * The watch window opens this many minutes before the exercise time and closes this many after it. It opens early
24
+ * because Mobile Link can report a later time than the unit keeps (10:05 reported, 10:00 start; SPEC section 16).
25
+ */
26
+ export const WATCH_BEFORE_MINUTES = 10;
24
27
  export const WATCH_AFTER_MINUTES = 20;
25
28
  const DAY_MINUTES = 24 * 60;
26
29
  /** Minutes past local midnight of `now`, with the seconds as a fraction. */
@@ -28,8 +31,8 @@ function localMinutes(now) {
28
31
  return now.getHours() * 60 + now.getMinutes() + now.getSeconds() / 60 + now.getMilliseconds() / 60000;
29
32
  }
30
33
  /**
31
- * True from `exerciseMinutes - 2` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
32
- * local time zone. A window that straddles midnight (an exercise at 00:01 or 23:50) is handled.
34
+ * True from `exerciseMinutes - 10` (inclusive) to `exerciseMinutes + 20` (exclusive), every day, in the host's
35
+ * local time zone. A window that straddles midnight (an exercise at 00:05 or 23:50) is handled.
33
36
  */
34
37
  export function inWatchWindow(exerciseMinutes, now) {
35
38
  const offset = (localMinutes(now) - (exerciseMinutes - WATCH_BEFORE_MINUTES) + DAY_MINUTES) % DAY_MINUTES;
@@ -1 +1 @@
1
- {"version":3,"file":"exercise.js","sourceRoot":"","sources":["../src/exercise.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exercise.js","sourceRoot":"","sources":["../src/exercise.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -309,7 +309,7 @@ export class GeneracPlatform {
309
309
  }
310
310
  others.set(raw.apparatusId, { type: raw.type, name: raw.name, apparatusId: raw.apparatusId });
311
311
  if (raw.type === DEVICE_TYPE.PROPANE_MONITOR) {
312
- this.once(`propane-${raw.apparatusId}`, 'info', `Found ${label} "${raw.name}" (id ${raw.apparatusId}). Tank level support is planned; not exposed yet.`);
312
+ this.once(`propane-${raw.apparatusId}`, 'info', `Skipping ${label} "${raw.name}" (id ${raw.apparatusId}). Tank monitors are not supported.`);
313
313
  }
314
314
  else if (raw.type === DEVICE_TYPE.LINKED_ECOBEE) {
315
315
  this.once(`ecobee-${raw.apparatusId}`, 'info', `Skipping ${label} "${raw.name}". It is already a native HomeKit device; Generac's details endpoint 500s on it.`);
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -219,15 +219,12 @@
219
219
  margin-bottom: 1rem;
220
220
  }
221
221
 
222
- /* The Reset dialog, in the page flow directly below the Reset link (SPEC section 11.2): a bordered panel in the
223
- card's colours, never a fixed overlay. */
222
+ /* The Reset dialog, in the page flow directly below the Reset link (SPEC section 11.2), never a fixed overlay. It
223
+ carries Bootstrap's `card` class, so its fill, border and text are the host's card surface in both themes; this
224
+ rule sets none of them (the host's dark theme leaves `--bs-body-bg` white and paints `.card` itself). */
224
225
  .generac-ui .ns-inline-dialog {
225
226
  margin-top: 0.75rem;
226
227
  max-width: 28rem;
227
- border: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
228
- border-radius: 0.5rem;
229
- background: var(--bs-body-bg, #fff);
230
- color: var(--bs-body-color, inherit);
231
228
  }
232
229
 
233
230
  .generac-ui .ns-inline-dialog-title {
@@ -81,9 +81,7 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .card {
81
81
  colour, never Bootstrap's dimmed copy of the enabled button and never the host's dark fill. Pointer events stay
82
82
  on so the not-allowed cursor shows (a disabled button fires no click either way). */
83
83
  .generac-ui .btn:disabled,
84
- .generac-ui .btn.disabled,
85
- .ns-modal .btn:disabled,
86
- .ns-modal .btn.disabled {
84
+ .generac-ui .btn.disabled {
87
85
  opacity: 1;
88
86
  color: var(--bs-secondary-color, currentColor);
89
87
  border-color: var(--bs-border-color, currentColor);
@@ -419,9 +417,7 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .btn-link {
419
417
  /* Touch targets: every button, text buttons included, is at least 44px tall on touch devices. */
420
418
  @media (pointer: coarse) {
421
419
  .generac-ui .btn,
422
- .generac-ui .btn-close,
423
- .ns-modal .btn,
424
- .ns-modal .btn-close {
420
+ .generac-ui .btn-close {
425
421
  min-height: 44px;
426
422
  display: inline-flex;
427
423
  align-items: center;
@@ -430,59 +426,13 @@ body[class*="config-ui-x-dark-mode"] .generac-ui .btn-link {
430
426
  }
431
427
 
432
428
  body.ns-touch .generac-ui .btn,
433
- body.ns-touch .generac-ui .btn-close,
434
- body.ns-touch .ns-modal .btn,
435
- body.ns-touch .ns-modal .btn-close {
429
+ body.ns-touch .generac-ui .btn-close {
436
430
  min-height: 44px;
437
431
  display: inline-flex;
438
432
  align-items: center;
439
433
  justify-content: center;
440
434
  }
441
435
 
442
- /* Modal drawn by the page (the Reset dialog). */
443
- .ns-modal-backdrop {
444
- position: fixed;
445
- inset: 0;
446
- z-index: 50;
447
- background: rgba(0, 0, 0, 0.55);
448
- display: flex;
449
- align-items: center;
450
- justify-content: center;
451
- padding: 1rem;
452
- }
453
-
454
- .ns-modal {
455
- background: var(--bs-body-bg, #fff);
456
- color: var(--bs-body-color, inherit);
457
- border-radius: 0.5rem;
458
- width: 100%;
459
- max-width: 28rem;
460
- max-height: 100%;
461
- overflow: auto;
462
- box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.3);
463
- }
464
-
465
- .ns-modal-header {
466
- display: flex;
467
- justify-content: space-between;
468
- align-items: center;
469
- padding: 0.75rem 1rem;
470
- border-bottom: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
471
- }
472
-
473
- .ns-modal-body {
474
- padding: 1rem;
475
- }
476
-
477
- .ns-modal-actions {
478
- display: flex;
479
- flex-wrap: wrap;
480
- justify-content: flex-end;
481
- gap: 0.5rem;
482
- padding: 0.75rem 1rem;
483
- border-top: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
484
- }
485
-
486
436
  /* Version and credit footer: one line of secondary text that wraps between its items on narrow screens. */
487
437
  .ns-footer {
488
438
  margin-top: 1.5rem;
@@ -11,8 +11,7 @@ export const BANNER = {
11
11
  };
12
12
  export const INTRO = {
13
13
  one: 'Generac for Homebridge shows the standby generators on your Mobile Link account in the Home app. '
14
- + 'Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor and a starting battery reading. '
15
- + 'Propane models will also get a tank level later.',
14
+ + 'Each generator appears as a Running sensor, a Fault sensor, a Maintenance Due sensor, an Exercising sensor and a starting battery reading.',
16
15
  two: 'It is read only. It cannot start, stop or exercise the generator. Connect your account below and your generators are found for you.',
17
16
  accountHeading: 'Mobile Link account',
18
17
  accountHelp: 'One account per Homebridge instance. Use the email and password you use in the Mobile Link app.',
@@ -96,7 +95,7 @@ export const GENERATOR = {
96
95
  name: 'Name',
97
96
  saveName: 'Save name',
98
97
  cancel: 'Cancel',
99
- alsoPropane: 'Also on your account: Propane tank monitor (tank level support is coming).',
98
+ alsoPropane: 'Also on your account: Propane tank monitor (not supported).',
100
99
  alsoEcobee: (name) => `Also on your account: ecobee thermostat "${name}" (already in HomeKit, skipped).`,
101
100
  };
102
101
  /** SPEC 11.3 E. */
@@ -135,6 +134,9 @@ export const SETTINGS = {
135
134
  'Removes every generator and its sensors from the Home app.',
136
135
  'Clears all settings on this page.',
137
136
  ],
137
+ resetDoneTitle: 'Reset done',
138
+ resetDoneBody: 'Click Save, then restart Homebridge to remove the generators from the Home app. '
139
+ + 'Reconnect your Mobile Link account afterwards if you want them back.',
138
140
  };
139
141
  /** Shell strings (SPEC 11.3 F): the disclosure, the Reset dialog, the password toggle, the credit footer and relative times. */
140
142
  export const SHELL = {
@@ -223,10 +223,12 @@ export function inlineConfirm(opts) {
223
223
  /**
224
224
  * A dialog in the page flow (the Reset dialog), drawn where it is opened rather than over the page: a fixed
225
225
  * overlay would pin to the iframe's own top, off-screen when the opener sits at the bottom of a scrolled host
226
- * modal. Escape closes it; `onClose` runs on every close, including the caller's.
226
+ * modal. Escape closes it; `onClose` runs on every close, including the caller's. It is a Bootstrap `card`, so
227
+ * the host paints it like every other card in both themes: the dark theme sets the card's fill and text itself and
228
+ * leaves `--bs-body-bg` at its light value, so a panel of its own would be white on the dark page (SPEC section 11.2).
227
229
  */
228
230
  export function inlineDialog(opts) {
229
- const dialog = el('div', { class: 'ns-inline-dialog', role: 'dialog', 'aria-label': opts.title });
231
+ const dialog = el('div', { class: 'card ns-inline-dialog', role: 'dialog', 'aria-label': opts.title });
230
232
  let onKey = () => undefined;
231
233
  const close = () => {
232
234
  document.removeEventListener('keydown', onKey);
@@ -33,7 +33,7 @@ export class Page {
33
33
  this.config = config;
34
34
  this.root = root;
35
35
  this.status = null;
36
- this.ui = { flow: null, disconnectOpen: false, resetOpen: false, rename: null, checkingSince: null };
36
+ this.ui = { flow: null, disconnectOpen: false, resetOpen: false, resetDone: false, rename: null, checkingSince: null };
37
37
  this.containers = new Map();
38
38
  this.touched = new Set();
39
39
  /** The messages currently shown inline, by path. A focused field only ever loses its message, never gains one. */
@@ -10,14 +10,17 @@ import { DEFAULTS, emptyConfig } from '../model.js';
10
10
  import { hasOneDecimal } from '../validate.js';
11
11
  /**
12
12
  * The Reset dialog: the three lines from SPEC section 11.3 E, "Type RESET to confirm.", Confirm disabled until
13
- * typed. It renders inline directly below the Reset link (SPEC section 11.2) and is page state, so a redraw of
14
- * the section keeps it open; opening it by click focuses the field and scrolls the host modal to the dialog.
13
+ * RESET is typed in any case. It renders inline directly below the Reset link (SPEC section 11.2) and is page state,
14
+ * so a redraw of the section keeps it open; opening it by click focuses the field and scrolls the host modal to the
15
+ * dialog. Confirm redraws the page with the done state in the dialog's place and scrolls the host to it.
15
16
  */
16
17
  function resetDialog(app, opened) {
17
18
  const confirmInput = el('input', { type: 'text', class: 'form-control', autocomplete: 'off', spellcheck: 'false', id: 'gn-reset-confirm' });
18
19
  let close = () => undefined;
19
20
  const confirm = button(SHELL.resetConfirm, () => {
20
21
  close();
22
+ // The done state replaces the dialog in place when the page is redrawn below (SPEC section 11.3 E).
23
+ app.ui.resetDone = true;
21
24
  // Sign out and forget the saved state on the server; the platform removes the accessories on its next start.
22
25
  void callServer('/reset').then(() => app.refreshStatus());
23
26
  if (app.status) {
@@ -28,10 +31,15 @@ function resetDialog(app, opened) {
28
31
  app.ui.rename = null;
29
32
  app.replaceConfig(emptyConfig());
30
33
  toastSuccess(SHELL.resetDone);
34
+ const done = document.querySelector('.gn-reset-done');
35
+ if (done) {
36
+ reveal(done);
37
+ }
31
38
  }, 'btn btn-danger btn-sm');
32
39
  confirm.disabled = true;
33
40
  confirmInput.addEventListener('input', () => {
34
- confirm.disabled = confirmInput.value.trim() !== 'RESET';
41
+ // RESET in any case (SPEC section 11.3 E); the prompt still reads "Type RESET to confirm."
42
+ confirm.disabled = confirmInput.value.trim().toUpperCase() !== 'RESET';
35
43
  });
36
44
  const dialog = inlineDialog({
37
45
  title: SHELL.resetTitle,
@@ -50,9 +58,20 @@ function resetDialog(app, opened) {
50
58
  }
51
59
  return dialog.el;
52
60
  }
53
- /** The Reset link, with the dialog directly below it while open. */
61
+ /**
62
+ * The done state after Confirm (SPEC section 11.3 E): the dialog's place on the page, a card with the title and one
63
+ * line, no buttons. It stays until the page reloads.
64
+ */
65
+ function resetDoneState() {
66
+ return el('div', { class: 'card ns-inline-dialog gn-reset-done', role: 'status' }, el('div', { class: 'ns-inline-dialog-title fw-semibold' }, SETTINGS.resetDoneTitle), el('div', { class: 'ns-inline-dialog-body' }, el('p', { class: 'mb-0' }, SETTINGS.resetDoneBody)));
67
+ }
68
+ /** The Reset link, with the dialog directly below it while open; after Confirm, only the done state. */
54
69
  function resetControl(app) {
55
70
  const holder = el('div', { class: 'gn-reset' });
71
+ if (app.ui.resetDone) {
72
+ holder.appendChild(resetDoneState());
73
+ return holder;
74
+ }
56
75
  const link = dangerLinkButton(SHELL.reset, () => {
57
76
  if (app.ui.resetOpen) {
58
77
  return;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-generac",
3
3
  "displayName": "Generac",
4
4
  "type": "module",
5
- "version": "0.1.0-beta.1",
5
+ "version": "1.0.1",
6
6
  "description": "Generac Mobile Link standby generators in HomeKit: running, fault and maintenance sensors plus starting-battery health.",
7
7
  "author": "Alex Rodriguez (https://alex-rodriguez.com)",
8
8
  "license": "Apache-2.0",
@@ -40,7 +40,7 @@
40
40
  "SECURITY.md"
41
41
  ],
42
42
  "engines": {
43
- "node": "^20.18.0 || ^22.10.0",
43
+ "node": "^20.18.0 || ^22.10.0 || ^24.0.0",
44
44
  "homebridge": "^1.8.0 || ^2.0.0-beta.0"
45
45
  },
46
46
  "scripts": {