homebridge-plugin-utils 1.34.0 → 2.0.0

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 (198) hide show
  1. package/README.md +130 -2
  2. package/build/eslint-plugin/README.md +164 -0
  3. package/build/eslint-plugin/config.mjs +308 -0
  4. package/build/eslint-plugin/index.mjs +7 -0
  5. package/build/eslint-plugin/plugin.mjs +46 -0
  6. package/build/eslint-plugin/rules/blank-line-after-open-brace.mjs +137 -0
  7. package/build/eslint-plugin/rules/blank-line-after-open-brace.test.mjs +112 -0
  8. package/build/eslint-plugin/rules/comment-style.mjs +190 -0
  9. package/build/eslint-plugin/rules/comment-style.test.mjs +190 -0
  10. package/build/eslint-plugin/rules/enforce-node-protocol.mjs +114 -0
  11. package/build/eslint-plugin/rules/enforce-node-protocol.test.mjs +116 -0
  12. package/build/eslint-plugin/rules/paren-comparisons-in-logical.mjs +94 -0
  13. package/build/eslint-plugin/rules/paren-comparisons-in-logical.test.mjs +107 -0
  14. package/build/eslint-plugin/rules/split-type-imports.mjs +354 -0
  15. package/build/eslint-plugin/rules/split-type-imports.test.mjs +268 -0
  16. package/build/eslint-plugin/test-setup.mjs +21 -0
  17. package/build/fs-ops.mjs +184 -0
  18. package/build/tsconfig.json +18 -3
  19. package/dist/backpressure.d.ts +128 -0
  20. package/dist/backpressure.js +273 -0
  21. package/dist/backpressure.js.map +1 -0
  22. package/dist/cli/index.d.ts +95 -0
  23. package/dist/cli/index.js +355 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/clock-double.d.ts +93 -0
  26. package/dist/clock-double.js +141 -0
  27. package/dist/clock-double.js.map +1 -0
  28. package/dist/clock.d.ts +39 -0
  29. package/dist/clock.js +34 -0
  30. package/dist/clock.js.map +1 -0
  31. package/dist/eslint-plugin/config.d.mts +193 -0
  32. package/dist/eslint-plugin/index.d.mts +2 -0
  33. package/dist/eslint-plugin/plugin.d.mts +87 -0
  34. package/dist/eslint-plugin/rules/blank-line-after-open-brace.d.mts +19 -0
  35. package/dist/eslint-plugin/rules/comment-style.d.mts +15 -0
  36. package/dist/eslint-plugin/rules/enforce-node-protocol.d.mts +18 -0
  37. package/dist/eslint-plugin/rules/paren-comparisons-in-logical.d.mts +15 -0
  38. package/dist/eslint-plugin/rules/split-type-imports.d.mts +16 -0
  39. package/dist/featureOptions-docs.d.ts +96 -0
  40. package/dist/featureOptions-docs.js +193 -0
  41. package/dist/featureOptions-docs.js.map +1 -0
  42. package/dist/featureOptions.d.ts +674 -0
  43. package/dist/featureOptions.js +870 -0
  44. package/dist/featureOptions.js.map +1 -0
  45. package/dist/ffmpeg/codecs.d.ts +256 -72
  46. package/dist/ffmpeg/codecs.js +477 -257
  47. package/dist/ffmpeg/codecs.js.map +1 -1
  48. package/dist/ffmpeg/dgram-util.d.ts +46 -0
  49. package/dist/ffmpeg/dgram-util.js +38 -0
  50. package/dist/ffmpeg/dgram-util.js.map +1 -0
  51. package/dist/ffmpeg/exec.d.ts +83 -64
  52. package/dist/ffmpeg/exec.js +77 -86
  53. package/dist/ffmpeg/exec.js.map +1 -1
  54. package/dist/ffmpeg/fmp4.d.ts +70 -4
  55. package/dist/ffmpeg/fmp4.js +100 -11
  56. package/dist/ffmpeg/fmp4.js.map +1 -1
  57. package/dist/ffmpeg/hap-enums.d.ts +214 -0
  58. package/dist/ffmpeg/hap-enums.js +92 -0
  59. package/dist/ffmpeg/hap-enums.js.map +1 -0
  60. package/dist/ffmpeg/index.d.ts +16 -9
  61. package/dist/ffmpeg/index.js +6 -0
  62. package/dist/ffmpeg/index.js.map +1 -1
  63. package/dist/ffmpeg/mp4-assembler.d.ts +120 -0
  64. package/dist/ffmpeg/mp4-assembler.js +387 -0
  65. package/dist/ffmpeg/mp4-assembler.js.map +1 -0
  66. package/dist/ffmpeg/mp4-parser.d.ts +94 -0
  67. package/dist/ffmpeg/mp4-parser.js +130 -0
  68. package/dist/ffmpeg/mp4-parser.js.map +1 -0
  69. package/dist/ffmpeg/options.d.ts +62 -149
  70. package/dist/ffmpeg/options.js +608 -499
  71. package/dist/ffmpeg/options.js.map +1 -1
  72. package/dist/ffmpeg/process.d.ts +143 -91
  73. package/dist/ffmpeg/process.js +406 -265
  74. package/dist/ffmpeg/process.js.map +1 -1
  75. package/dist/ffmpeg/record.d.ts +302 -188
  76. package/dist/ffmpeg/record.js +408 -560
  77. package/dist/ffmpeg/record.js.map +1 -1
  78. package/dist/ffmpeg/recording-process-double.d.ts +144 -0
  79. package/dist/ffmpeg/recording-process-double.js +168 -0
  80. package/dist/ffmpeg/recording-process-double.js.map +1 -0
  81. package/dist/ffmpeg/rtp-parser.d.ts +70 -0
  82. package/dist/ffmpeg/rtp-parser.js +77 -0
  83. package/dist/ffmpeg/rtp-parser.js.map +1 -0
  84. package/dist/ffmpeg/rtp.d.ts +198 -141
  85. package/dist/ffmpeg/rtp.js +473 -244
  86. package/dist/ffmpeg/rtp.js.map +1 -1
  87. package/dist/ffmpeg/settings.d.ts +5 -1
  88. package/dist/ffmpeg/settings.js +20 -2
  89. package/dist/ffmpeg/settings.js.map +1 -1
  90. package/dist/ffmpeg/stream.d.ts +57 -107
  91. package/dist/ffmpeg/stream.js +121 -148
  92. package/dist/ffmpeg/stream.js.map +1 -1
  93. package/dist/formatters.d.ts +106 -0
  94. package/dist/formatters.js +174 -0
  95. package/dist/formatters.js.map +1 -0
  96. package/dist/homebridge-enums.d.ts +30 -0
  97. package/dist/homebridge-enums.js +17 -0
  98. package/dist/homebridge-enums.js.map +1 -0
  99. package/dist/index.d.ts +12 -5
  100. package/dist/index.js +8 -2
  101. package/dist/index.js.map +1 -1
  102. package/dist/logclient/auth.d.ts +114 -0
  103. package/dist/logclient/auth.js +199 -0
  104. package/dist/logclient/auth.js.map +1 -0
  105. package/dist/logclient/cli-run.d.ts +76 -0
  106. package/dist/logclient/cli-run.js +639 -0
  107. package/dist/logclient/cli-run.js.map +1 -0
  108. package/dist/logclient/cli.d.ts +3 -0
  109. package/dist/logclient/cli.js +97 -0
  110. package/dist/logclient/cli.js.map +1 -0
  111. package/dist/logclient/client.d.ts +145 -0
  112. package/dist/logclient/client.js +600 -0
  113. package/dist/logclient/client.js.map +1 -0
  114. package/dist/logclient/config.d.ts +173 -0
  115. package/dist/logclient/config.js +199 -0
  116. package/dist/logclient/config.js.map +1 -0
  117. package/dist/logclient/endpoints.d.ts +54 -0
  118. package/dist/logclient/endpoints.js +73 -0
  119. package/dist/logclient/endpoints.js.map +1 -0
  120. package/dist/logclient/filter.d.ts +45 -0
  121. package/dist/logclient/filter.js +51 -0
  122. package/dist/logclient/filter.js.map +1 -0
  123. package/dist/logclient/frame.d.ts +93 -0
  124. package/dist/logclient/frame.js +203 -0
  125. package/dist/logclient/frame.js.map +1 -0
  126. package/dist/logclient/index.d.ts +31 -0
  127. package/dist/logclient/index.js +12 -0
  128. package/dist/logclient/index.js.map +1 -0
  129. package/dist/logclient/parser.d.ts +211 -0
  130. package/dist/logclient/parser.js +393 -0
  131. package/dist/logclient/parser.js.map +1 -0
  132. package/dist/logclient/rest.d.ts +41 -0
  133. package/dist/logclient/rest.js +111 -0
  134. package/dist/logclient/rest.js.map +1 -0
  135. package/dist/logclient/settings.d.ts +15 -0
  136. package/dist/logclient/settings.js +64 -0
  137. package/dist/logclient/settings.js.map +1 -0
  138. package/dist/logclient/socket-double.d.ts +201 -0
  139. package/dist/logclient/socket-double.js +384 -0
  140. package/dist/logclient/socket-double.js.map +1 -0
  141. package/dist/logclient/socket.d.ts +257 -0
  142. package/dist/logclient/socket.js +620 -0
  143. package/dist/logclient/socket.js.map +1 -0
  144. package/dist/logclient/stitch.d.ts +83 -0
  145. package/dist/logclient/stitch.js +146 -0
  146. package/dist/logclient/stitch.js.map +1 -0
  147. package/dist/logclient/time-expression.d.ts +42 -0
  148. package/dist/logclient/time-expression.js +181 -0
  149. package/dist/logclient/time-expression.js.map +1 -0
  150. package/dist/logclient/time-window.d.ts +38 -0
  151. package/dist/logclient/time-window.js +53 -0
  152. package/dist/logclient/time-window.js.map +1 -0
  153. package/dist/logclient/types.d.ts +107 -0
  154. package/dist/logclient/types.js +6 -0
  155. package/dist/logclient/types.js.map +1 -0
  156. package/dist/mqttClient.d.ts +287 -0
  157. package/dist/mqttClient.js +433 -0
  158. package/dist/mqttClient.js.map +1 -0
  159. package/dist/service.d.ts +64 -15
  160. package/dist/service.js +93 -66
  161. package/dist/service.js.map +1 -1
  162. package/dist/ui/featureOptions.js +870 -0
  163. package/dist/ui/featureOptions.js.map +1 -0
  164. package/dist/ui/formatters.js +174 -0
  165. package/dist/ui/formatters.js.map +1 -0
  166. package/dist/ui/pluginConfigSession.mjs +141 -0
  167. package/dist/ui/webUi-featureOptions/categoryState.mjs +135 -0
  168. package/dist/ui/webUi-featureOptions/effects/keyboard.mjs +61 -0
  169. package/dist/ui/webUi-featureOptions/effects/persist.mjs +226 -0
  170. package/dist/ui/webUi-featureOptions/effects/theme.mjs +398 -0
  171. package/dist/ui/webUi-featureOptions/effects/tokens.mjs +152 -0
  172. package/dist/ui/webUi-featureOptions/rendering.mjs +431 -0
  173. package/dist/ui/webUi-featureOptions/selectors.mjs +360 -0
  174. package/dist/ui/webUi-featureOptions/state.mjs +319 -0
  175. package/dist/ui/webUi-featureOptions/store.mjs +181 -0
  176. package/dist/ui/webUi-featureOptions/utils.mjs +200 -0
  177. package/dist/ui/webUi-featureOptions/views/connectionError.mjs +152 -0
  178. package/dist/ui/webUi-featureOptions/views/deviceInfo.mjs +80 -0
  179. package/dist/ui/webUi-featureOptions/views/header.mjs +77 -0
  180. package/dist/ui/webUi-featureOptions/views/nav.mjs +327 -0
  181. package/dist/ui/webUi-featureOptions/views/options.mjs +521 -0
  182. package/dist/ui/webUi-featureOptions/views/search.mjs +395 -0
  183. package/dist/ui/webUi-featureOptions.mjs +677 -0
  184. package/dist/ui/webUi.mjs +192 -87
  185. package/dist/util.d.ts +597 -45
  186. package/dist/util.js +787 -68
  187. package/dist/util.js.map +1 -1
  188. package/package.json +33 -15
  189. package/build/eslint-rules.mjs +0 -511
  190. package/dist/featureoptions.d.ts +0 -264
  191. package/dist/featureoptions.js +0 -480
  192. package/dist/featureoptions.js.map +0 -1
  193. package/dist/mqttclient.d.ts +0 -178
  194. package/dist/mqttclient.js +0 -310
  195. package/dist/mqttclient.js.map +0 -1
  196. package/dist/ui/featureoptions.js +0 -480
  197. package/dist/ui/featureoptions.js.map +0 -1
  198. package/dist/ui/webUi-featureoptions.mjs +0 -3765
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../../src/logclient/cli-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ /* Copyright(C) 2017-2026, HJD (https://github.com/hjdhjd). All rights reserved.
3
+ *
4
+ * logclient/cli.ts: The hblog bin - a node:-builtins-only shell that realpath-resolves its own directory and dynamic-imports the engine logic.
5
+ */
6
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
7
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
8
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
9
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
10
+ });
11
+ }
12
+ return path;
13
+ };
14
+ /**
15
+ * The `hblog` command-line bin.
16
+ *
17
+ * This module is deliberately minimal and node:-builtins-only at the static-import level. A bin is invoked through an npm-managed symlink in `node_modules/.bin`; if it
18
+ * statically imported a sibling module by relative path, that import would resolve against the symlink's directory under symlink-preserving or copied-package layouts and
19
+ * fracture. So the bin imports only `node:` builtins for value, takes the engine's type via an erased `import type` (which the compiler strips entirely from the emitted
20
+ * output), and reaches the actual CLI logic ({@link runHblog} in `cli-run.ts`) through a realpath-canonicalized DYNAMIC import of a computed file URL.
21
+ *
22
+ * This design is robust because:
23
+ *
24
+ * - The engine is reached by a COMPUTED URL (`pathToFileURL(join(dir, "cli-run.js")).href`), so the TypeScript compiler never tries to resolve it - which matters because
25
+ * `npm run typecheck` runs with no `dist/` present and before the build. A static `import { runHblog } from "./cli-run.ts"` would emit a `./cli-run.js` value import
26
+ * that fractures under symlinks; a static self-specifier (`homebridge-plugin-utils/logclient`) would resolve through the package `exports` map to a `dist/` path that
27
+ * does not exist at typecheck time. The computed dynamic import sidesteps both.
28
+ * - The directory the engine is loaded from is the bin's OWN real directory, recovered with `realpathSync` exactly the way `cli/index.ts` recovers its source root, so
29
+ * the symlink indirection is collapsed before the join and the engine loads from the real package layout under every install mode.
30
+ *
31
+ * The programmatic API ({@link logclient/client!HomebridgeLogClient | HomebridgeLogClient}) rides the existing package barrel; only the bin uses this dynamic-import
32
+ * path.
33
+ *
34
+ * @module
35
+ */
36
+ import { dirname, join } from "node:path";
37
+ import { fileURLToPath, pathToFileURL } from "node:url";
38
+ import { realpathSync } from "node:fs";
39
+ /**
40
+ * Decide whether this module is the program entry point (run as the `hblog` bin) versus imported as a library. Canonicalizes the real path of both the launch path
41
+ * (`process.argv[1]`) and this module's own URL before comparing them.
42
+ *
43
+ * The realpath normalization is load-bearing, exactly as in `cli/index.ts`: npm exposes a bin as a symlink in `node_modules/.bin`, so under default Node the launch path
44
+ * is the symlink while `import.meta.url` is the resolved target - a raw string comparison never matches and the bin silently does nothing. Canonicalizing both sides
45
+ * collapses that indirection (and any `file:`-dependency, copied-package, or `--preserve-symlinks` layout) to a single real path. We keep this explicit realpath
46
+ * comparison rather than deferring to `import.meta.main`: the symlink and copied-package indirection above is the load-bearing concern the entry-point check exists to
47
+ * handle, and resolving it explicitly keeps that handling visible at the call site.
48
+ *
49
+ * @returns `true` when invoked as the program entry, `false` when imported or when the launch path cannot be resolved.
50
+ */
51
+ function isEntryPoint() {
52
+ const entryPath = process.argv[1];
53
+ if (!entryPath) {
54
+ return false;
55
+ }
56
+ try {
57
+ return realpathSync(entryPath) === realpathSync(fileURLToPath(import.meta.url));
58
+ }
59
+ catch {
60
+ // A realpath throws only when a path does not resolve on disk - not a state a genuine entry-point invocation reaches, so treat it as "not the entry."
61
+ return false;
62
+ }
63
+ }
64
+ // Execute the bin when this module is the program entry point. When imported instead, `isEntryPoint()` is false and this module is inert (it exports nothing).
65
+ if (isEntryPoint()) {
66
+ // Recover the bin's own real directory, collapsing any symlink indirection, then load the engine from the real `cli-run.js` beside it via a computed file URL. The
67
+ // dynamic import target is a runtime-computed URL, so the compiler never resolves it (no `dist/` needed at typecheck) and the path is correct under every symlink mode.
68
+ const directory = dirname(realpathSync(fileURLToPath(import.meta.url)));
69
+ const engineUrl = pathToFileURL(join(directory, "cli-run.js")).href;
70
+ // The dynamic import resolves to the engine module; we type the result through the erased `import type` so the binding is fully typed without a value import. The
71
+ // computed-URL import is `any` to the compiler (it cannot resolve a non-literal specifier), so the assertion narrows it to the engine's known shape.
72
+ const engine = await import(__rewriteRelativeImportExtension(engineUrl));
73
+ // Absorb a broken-pipe (`EPIPE`) error on stdout at the process level. A downstream reader that closes early - `hblog | head`, or quitting `less` early - breaks the
74
+ // pipe, and the write that discovers it emits an `error` on `process.stdout`. The engine traps that during its run to stop cleanly, but because the process exits by
75
+ // draining the event loop (rather than calling `process.exit`), Node's final flush of any still-buffered output re-attempts the write to the dead pipe AFTER the engine
76
+ // has removed its own trap - and an `error` with no listener is a fatal unhandled exception. This persistent, process-lifetime listener is the safety net for exactly
77
+ // that window: it makes a broken pipe a quiet, successful stop. It is deliberately a no-op, not a re-thrower: a stdout error during the run also reaches the engine's
78
+ // trap on this same event (emit fires every listener), and that trap is the single place that classifies errors - a benign `EPIPE` as a clean stop, an `ENOSPC` and the
79
+ // like as a failure. Re-throwing here would pre-empt that classification and crash the run.
80
+ process.stdout.on("error", () => {
81
+ // Intentionally empty: swallowing the event is the whole point - it keeps a broken pipe from ever surfacing as a fatal unhandled `error`. See the rationale above.
82
+ });
83
+ // Record the exit code the CLI decided (0 success / clean signal / help / version, 1 connection or auth failure, 2 usage error) on `process.exitCode`, then let the
84
+ // process exit on its own once the event loop empties. We deliberately do NOT call `process.exit`: it terminates immediately and discards whatever is still buffered in
85
+ // an asynchronous stdout - the pipe case, `hblog | less` - which truncates the tail of the output. A `write` returning is not the same as its bytes having reached the
86
+ // OS, so forcing exit races the final flush. Setting the code and returning lets Node drain stdout in full before exiting; the client and its sockets are torn down by
87
+ // `runHblog`'s `await using` and its signal listeners removed, so nothing keeps the loop alive once the output has flushed.
88
+ process.exitCode = await engine.runHblog({
89
+ argv: process.argv.slice(2),
90
+ cwd: process.cwd(),
91
+ env: process.env,
92
+ homedir: (await import("node:os")).homedir(),
93
+ stderr: process.stderr,
94
+ stdout: process.stdout
95
+ });
96
+ }
97
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/logclient/cli.ts"],"names":[],"mappings":";AACA;;;GAGG;;;;;;;;;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC;;;;;;;;;;;GAWG;AACH,SAAS,YAAY;IAEnB,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElC,IAAG,CAAC,SAAS,EAAE,CAAC;QAEd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QAEH,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QAEP,sJAAsJ;QACtJ,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+JAA+J;AAC/J,IAAG,YAAY,EAAE,EAAE,CAAC;IAElB,mKAAmK;IACnK,wKAAwK;IACxK,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAEpE,kKAAkK;IAClK,qJAAqJ;IACrJ,MAAM,MAAM,GAAG,MAAM,MAAM,kCAAC,SAAS,EAAkC,CAAC;IAExE,qKAAqK;IACrK,qKAAqK;IACrK,wKAAwK;IACxK,sKAAsK;IACtK,sKAAsK;IACtK,wKAAwK;IACxK,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAS,EAAE;QAEpC,mKAAmK;IACrK,CAAC,CAAC,CAAC;IAEH,oKAAoK;IACpK,wKAAwK;IACxK,uKAAuK;IACvK,uKAAuK;IACvK,4HAA4H;IAC5H,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;QAEvC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE;QAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,145 @@
1
+ import type { HomebridgePluginLogging } from "../util.ts";
2
+ import type { LogClientCredentials, LogQuantity, LogRecord, TailRequest } from "./types.ts";
3
+ import type { LogSocketFactory } from "./socket.ts";
4
+ /**
5
+ * A consumer-facing log stream: an async iterable of parsed {@link LogRecord}s that is also {@link AsyncDisposable}.
6
+ *
7
+ * Every {@link HomebridgeLogClient} channel returns one. Iterate it with `for await (const record of stream)`; dispose it with `await using stream = client.follow()` (or
8
+ * an early `break`) to tear down the underlying transport with no leak. The two super-interfaces capture exactly that contract: it is iterable, and it cleans up after
9
+ * itself when the scope exits. A plain async generator satisfies it structurally - its `[Symbol.asyncIterator]` makes it iterable and its `[Symbol.asyncDispose]` (which
10
+ * delegates to the generator's `return()`, running the `finally` that disposes the per-call socket) makes it disposable.
11
+ *
12
+ * @category Log Client
13
+ */
14
+ export interface LogStream extends AsyncIterable<LogRecord>, AsyncDisposable {
15
+ }
16
+ /**
17
+ * Construction-time options for {@link HomebridgeLogClient}.
18
+ *
19
+ * @property credentials - The credentials used to authenticate. See {@link LogClientCredentials}.
20
+ * @property fetch - Optional `fetch` implementation for the auth and REST transports. Defaults to the global `fetch`. Injected so the client is testable without
21
+ * a live server.
22
+ * @property host - The hostname or IP of the homebridge-config-ui-x server. Defaults to `localhost`.
23
+ * @property log - Optional logger for connection lifecycle and diagnostics. Defaults to a silent no-op sink when omitted.
24
+ * @property port - The TCP port the server listens on. Defaults to `8581`.
25
+ * @property signal - Optional parent {@link AbortSignal} composed with the client's internal controller. When it aborts, every in-flight channel tears down.
26
+ * @property socketFactory - Optional factory seam for constructing the live-log socket. Defaults to {@link logSocketFactory}. Injected so the client is testable without
27
+ * a WebSocket.
28
+ * @property tls - When `true`, use the secure (`https`/`wss`) schemes; when `false` or omitted, plaintext (`http`/`ws`).
29
+ *
30
+ * @category Log Client
31
+ */
32
+ export interface HomebridgeLogClientOptions {
33
+ readonly credentials: LogClientCredentials;
34
+ readonly fetch?: typeof fetch;
35
+ readonly host?: string;
36
+ readonly log?: HomebridgePluginLogging;
37
+ readonly port?: number;
38
+ readonly signal?: AbortSignal;
39
+ readonly socketFactory?: LogSocketFactory;
40
+ readonly tls?: boolean;
41
+ }
42
+ /**
43
+ * AsyncDisposable client for the Homebridge UI log stream.
44
+ *
45
+ * @example
46
+ *
47
+ * ```ts
48
+ * import { HomebridgeLogClient } from "homebridge-plugin-utils";
49
+ *
50
+ * await using client = new HomebridgeLogClient({ credentials: { kind: "password", password: "secret", username: "admin" }, host: "localhost" });
51
+ *
52
+ * await using stream = client.tail({ mode: "follow-history", quantity: 200 });
53
+ *
54
+ * for await (const record of stream) {
55
+ *
56
+ * process.stdout.write(record.raw + "\n");
57
+ * }
58
+ * ```
59
+ *
60
+ * @category Log Client
61
+ */
62
+ export declare class HomebridgeLogClient implements AsyncDisposable {
63
+ #private;
64
+ /**
65
+ * The composed abort signal representing this client's lifetime. Aborts exactly once - when the client is disposed (`[Symbol.asyncDispose]`) or the parent
66
+ * signal fires - and `signal.reason` names the cause. Every channel composes its per-call signal under this one, so disposing the client tears down all in-flight
67
+ * channels.
68
+ */
69
+ readonly signal: AbortSignal;
70
+ /**
71
+ * Construct a new log client.
72
+ *
73
+ * Construction performs no I/O: no connection is opened and no token is acquired until a channel is invoked. The token provider closure is built here so every channel
74
+ * shares one authentication path.
75
+ *
76
+ * @param options - Required options. See {@link HomebridgeLogClientOptions}.
77
+ */
78
+ constructor(options: HomebridgeLogClientOptions);
79
+ /**
80
+ * `AsyncDisposable` implementation. Aborts the client (defaulting to `"shutdown"`), which aborts every in-flight channel's per-call signal, so callers using
81
+ * `await using` are guaranteed all channels have begun tearing down by the time the block exits.
82
+ *
83
+ * @returns A resolved promise once the abort has been issued.
84
+ */
85
+ [Symbol.asyncDispose](): Promise<void>;
86
+ /**
87
+ * `true` once `this.signal` has aborted. Derived from the signal; no independent state.
88
+ */
89
+ get aborted(): boolean;
90
+ /**
91
+ * Retrieve historical log lines over the REST whole-file download channel.
92
+ *
93
+ * Streams `GET .../log/download` through the parser and yields each parsed {@link LogRecord}. When `quantity` is a number, only the most recent N records are retained
94
+ * (via {@link takeLast}, a bounded ring so a multi-MB log is never fully materialized); when it is `"all"` (the default), every record passes through. This is the
95
+ * deep-history channel paid only when the caller explicitly wants history beyond the socket's ~500-line seed.
96
+ *
97
+ * @param options - Optional per-call options.
98
+ * @param options.quantity - How many of the most recent records to retain. Defaults to `"all"`.
99
+ * @param options.signal - Optional per-call abort signal composed with the client's lifetime; aborting it terminates only this stream.
100
+ *
101
+ * @returns A {@link LogStream} of historical records, oldest first.
102
+ */
103
+ history(options?: {
104
+ quantity?: LogQuantity;
105
+ signal?: AbortSignal;
106
+ }): LogStream;
107
+ /**
108
+ * Live-tail the log over the socket channel.
109
+ *
110
+ * Builds a {@link LogSocketLike} through the injected factory seam and yields each parsed {@link LogRecord} the server streams - the ~500-line seed first, then
111
+ * genuinely new lines indefinitely. The stream terminates only when the caller stops iterating (an early `break`, which disposes the socket), the per-call signal
112
+ * aborts, or the client is disposed.
113
+ *
114
+ * @param options - Optional per-call options.
115
+ * @param options.signal - Optional per-call abort signal composed with the client's lifetime; aborting it terminates only this stream.
116
+ *
117
+ * @returns A {@link LogStream} of live records.
118
+ */
119
+ follow(options?: {
120
+ signal?: AbortSignal;
121
+ }): LogStream;
122
+ /**
123
+ * Deliver log content over the channel selected by the {@link TailRequest} discriminated union.
124
+ *
125
+ * - `history` - delegates to {@link HomebridgeLogClient.history} with the request's quantity.
126
+ * - `follow` - delegates to {@link HomebridgeLogClient.follow}.
127
+ * - `follow-history` - the socket-first join: the socket connects and buffers its seed plus any live lines that arrive during the REST download into a bounded ring,
128
+ * then the REST history is downloaded and trimmed to the request's quantity, then the two are joined by {@link stitchLive} so the boundary overlap is removed without
129
+ * dropping a distinct live line, and finally the live stream continues. Connecting the socket first is what guarantees no live line produced during the download is
130
+ * lost.
131
+ * - `window` - the hedged-seed time-bounded channel: the socket connects and buffers its seed while a parallel abortable whole-file download runs, a strict-coverage
132
+ * gate decides whether the seed covers `[since, until]` (serve from the seed and abort the download) or not (fall back to the download, stitched with the seed),
133
+ * and the merged output is time-window-filtered. A one-shot window terminates when its content has been served; a `follow` window continues live.
134
+ *
135
+ * @param request - The request describing which content to deliver and over which channel. See {@link TailRequest}.
136
+ * @param options - Optional per-call options.
137
+ * @param options.signal - Optional per-call abort signal composed with the client's lifetime; aborting it terminates only this stream.
138
+ *
139
+ * @returns A {@link LogStream} for the selected channel.
140
+ */
141
+ tail(request: TailRequest, options?: {
142
+ signal?: AbortSignal;
143
+ }): LogStream;
144
+ }
145
+ //# sourceMappingURL=client.d.ts.map