@homebridge-plugins/homebridge-eufy-security 5.0.0-beta.2 → 5.0.0-beta.20

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 (51) hide show
  1. package/config.schema.json +24 -0
  2. package/dist/account/temporary-authentication.js +3 -1
  3. package/dist/account/temporary-authentication.js.map +1 -1
  4. package/dist/configuration.js +36 -2
  5. package/dist/configuration.js.map +1 -1
  6. package/dist/device/member-evidence.js +10 -3
  7. package/dist/device/member-evidence.js.map +1 -1
  8. package/dist/diagnostics.js +582 -83
  9. package/dist/diagnostics.js.map +1 -1
  10. package/dist/homekit/adapters/camera-streaming.js +54 -26
  11. package/dist/homekit/adapters/camera-streaming.js.map +1 -1
  12. package/dist/homekit/adapters/lock.js +36 -13
  13. package/dist/homekit/adapters/lock.js.map +1 -1
  14. package/dist/homekit/adapters/motion.js +1 -1
  15. package/dist/homekit/adapters/motion.js.map +1 -1
  16. package/dist/homekit/adapters/package-sensor.js +63 -0
  17. package/dist/homekit/adapters/package-sensor.js.map +1 -0
  18. package/dist/homekit/adapters/registry.js +2 -0
  19. package/dist/homekit/adapters/registry.js.map +1 -1
  20. package/dist/homekit/adapters/security-system.js +95 -44
  21. package/dist/homekit/adapters/security-system.js.map +1 -1
  22. package/dist/homekit/coverage-matrix.js +1 -3
  23. package/dist/homekit/coverage-matrix.js.map +1 -1
  24. package/dist/homekit/reconciler.js +6 -2
  25. package/dist/homekit/reconciler.js.map +1 -1
  26. package/dist/media/live-stream.js +98 -54
  27. package/dist/media/live-stream.js.map +1 -1
  28. package/dist/media/recording.js +7 -5
  29. package/dist/media/recording.js.map +1 -1
  30. package/dist/media/snapshot.js +4 -4
  31. package/dist/media/station-live-sessions.js +47 -43
  32. package/dist/media/station-live-sessions.js.map +1 -1
  33. package/dist/platform.js +25 -5
  34. package/dist/platform.js.map +1 -1
  35. package/dist/runtime/channel.js +6 -2
  36. package/dist/runtime/channel.js.map +1 -1
  37. package/dist/runtime/owner.js +3 -0
  38. package/dist/runtime/owner.js.map +1 -1
  39. package/dist/ui/dashboard.js +32 -14
  40. package/dist/ui/dashboard.js.map +1 -1
  41. package/dist/ui/server.js +27 -4
  42. package/dist/ui/server.js.map +1 -1
  43. package/homebridge-ui/public/app.css +353 -88
  44. package/homebridge-ui/public/i18n/en.json +108 -78
  45. package/homebridge-ui/public/i18n/fr.json +108 -78
  46. package/homebridge-ui/public/index.html +95 -106
  47. package/homebridge-ui/public/js/app.js +328 -345
  48. package/homebridge-ui/public/js/dashboard.js +139 -10
  49. package/homebridge-ui/public/js/profile-wizard.js +17 -54
  50. package/i18n/runtime/en.json +5 -3
  51. package/package.json +6 -6
@@ -17,6 +17,7 @@
17
17
  data-i18n-aria-label="menuDiagnostics"
18
18
  >
19
19
  <img src="assets/icons/bug-report.svg" alt="" />
20
+ <span class="diagnostics-capturing" data-i18n="diagnosticsCapturing"></span>
20
21
  </button>
21
22
  </header>
22
23
 
@@ -27,6 +28,7 @@
27
28
  <h2 id="legacy-notice-title" data-i18n="legacyTitle"></h2>
28
29
  <p data-i18n="legacySummary"></p>
29
30
  <p class="legacy-settings" data-legacy-settings></p>
31
+ <p role="status" data-legacy-status></p>
30
32
  </div>
31
33
  <button type="button" data-legacy-acknowledge data-i18n="acknowledge"></button>
32
34
  </aside>
@@ -61,13 +63,14 @@
61
63
  <p class="eyebrow" data-i18n="devicesEyebrow"></p>
62
64
  <h2 id="dashboard-title" data-dashboard-title></h2>
63
65
  </div>
64
- <button type="button" class="dashboard-diagnose" data-dashboard-diagnose hidden data-i18n="dashboardDiagnose"></button>
65
66
  <div class="dashboard-actions" role="group" data-i18n-aria-label="dashboardActionsLabel">
66
67
  <button type="button" class="dashboard-action" data-dashboard-authenticate data-i18n-aria-label="menuRelogin">
67
68
  <img src="assets/icons/settings_backup_restore.svg" alt="" />
68
69
  </button>
69
70
  <button type="button" class="dashboard-action" data-menu-diagnostics data-i18n-aria-label="menuDiagnostics">
70
71
  <img src="assets/icons/bug-report.svg" alt="" />
72
+ <span class="diagnostics-name" data-i18n="menuDiagnostics"></span>
73
+ <span class="diagnostics-capturing" data-i18n="diagnosticsCapturing"></span>
71
74
  </button>
72
75
  <button type="button" class="dashboard-action" data-menu-advanced data-i18n-aria-label="menuAdvanced">
73
76
  <img src="assets/icons/settings.svg" alt="" />
@@ -186,129 +189,88 @@
186
189
  </div>
187
190
  </div>
188
191
  <div class="diagnostics-stage">
189
- <div class="diagnostics-wizard diagnostics-surface" data-diagnostics-wizard aria-live="polite">
192
+ <div class="diagnostics-wizard diagnostics-surface" data-diagnostics-wizard>
190
193
  <div class="diagnostics-question" data-diagnostics-question>
191
- <strong id="diagnostics-question-heading" tabindex="-1" data-diagnostics-question-text></strong>
192
- <div class="diagnostics-choice-actions" role="group" aria-labelledby="diagnostics-question-heading">
193
- <button
194
- type="button"
195
- class="diagnostics-secondary-action"
196
- data-diagnostics-answer="no"
197
- data-i18n="diagnosticsNo"
198
- ></button>
199
- <button type="button" data-diagnostics-answer="yes" data-i18n="diagnosticsYes"></button>
200
- </div>
201
- <button
202
- type="button"
203
- class="diagnostics-quiet-action"
204
- data-diagnostics-direct
205
- data-i18n="diagnosticsChooseDirectly"
206
- ></button>
207
- </div>
208
- <div class="diagnostics-direct" data-diagnostics-direct-panel hidden>
209
- <label>
210
- <span data-i18n="diagnosticsProfileLabel"></span>
211
- <select data-diagnostics-profile>
212
- <option value="startup-authentication" data-i18n="diagnosticsProfileStartup"></option>
213
- <option value="device-representation" data-i18n="diagnosticsProfileDevices"></option>
214
- <option value="control-state" data-i18n="diagnosticsProfileControl"></option>
215
- <option value="live-media" data-i18n="diagnosticsProfileLiveMedia"></option>
216
- <option value="hksv-recording" data-i18n="diagnosticsProfileRecording"></option>
217
- <option value="dashboard-ui" data-i18n="diagnosticsProfileDashboard"></option>
218
- <option value="other" data-i18n="diagnosticsProfileOther"></option>
219
- </select>
220
- </label>
221
- <div class="diagnostics-choice-actions">
222
- <button
223
- type="button"
224
- class="diagnostics-secondary-action"
225
- data-diagnostics-direct-back
226
- data-i18n="diagnosticsBackToQuestions"
227
- ></button>
228
- <button type="button" data-diagnostics-direct-choose data-i18n="diagnosticsUseProfile"></button>
229
- </div>
230
- </div>
231
- <div class="diagnostics-frequency" data-diagnostics-frequency hidden>
232
- <strong
233
- id="diagnostics-frequency-heading"
194
+ <h3
195
+ id="diagnostics-question-heading"
234
196
  tabindex="-1"
235
- data-i18n="diagnosticsQuestionReproduceNow"
236
- ></strong>
237
- <div class="diagnostics-choice-actions" role="group" aria-labelledby="diagnostics-frequency-heading">
238
- <button
239
- type="button"
240
- class="diagnostics-secondary-action"
241
- data-diagnostics-frequency-answer="intermittent"
242
- data-i18n="diagnosticsNo"
243
- ></button>
244
- <button type="button" data-diagnostics-frequency-answer="now" data-i18n="diagnosticsYes"></button>
245
- </div>
246
- <button
247
- type="button"
248
- class="diagnostics-quiet-action"
249
- data-diagnostics-frequency-back
250
- data-i18n="diagnosticsFrequencyBack"
251
- ></button>
252
- </div>
253
- <div class="diagnostics-match" data-diagnostics-match hidden>
254
- <p class="eyebrow" data-i18n="diagnosticsBestMatch"></p>
255
- <strong id="diagnostics-match-heading" tabindex="-1" data-diagnostics-guidance-title></strong>
256
- <p data-diagnostics-mode-summary></p>
257
- <div class="diagnostics-choice-actions" role="group" aria-labelledby="diagnostics-match-heading">
258
- <button
259
- type="button"
260
- class="diagnostics-secondary-action"
261
- data-diagnostics-reject
262
- data-i18n="diagnosticsChangeAnswers"
263
- ></button>
264
- <button type="button" data-diagnostics-authorize data-i18n="diagnosticsContinue"></button>
197
+ data-diagnostics-question-text
198
+ data-i18n="diagnosticsTilesHeading"
199
+ ></h3>
200
+ <p class="diagnostics-note" data-i18n="diagnosticsPrivacy"></p>
201
+ <div class="diagnostics-tiles" role="group" aria-labelledby="diagnostics-question-heading">
202
+ <button type="button" data-diagnostics-tile="startup-authentication">
203
+ <span data-i18n="diagnosticsProfileStartup"></span>
204
+ <small data-i18n="diagnosticsStartupSummary"></small>
205
+ </button>
206
+ <button type="button" data-diagnostics-tile="device-representation">
207
+ <span data-i18n="diagnosticsProfileDevices"></span>
208
+ <small data-i18n="diagnosticsDevicesSummary"></small>
209
+ </button>
210
+ <button type="button" data-diagnostics-tile="control-state">
211
+ <span data-i18n="diagnosticsProfileControl"></span>
212
+ <small data-i18n="diagnosticsControlSummary"></small>
213
+ </button>
214
+ <button type="button" data-diagnostics-tile="live-media">
215
+ <span data-i18n="diagnosticsProfileLiveMedia"></span>
216
+ <small data-i18n="diagnosticsLiveSummary"></small>
217
+ </button>
218
+ <button type="button" data-diagnostics-tile="hksv-recording">
219
+ <span data-i18n="diagnosticsProfileRecording"></span>
220
+ <small data-i18n="diagnosticsRecordingSummary"></small>
221
+ </button>
222
+ <button type="button" data-diagnostics-tile="dashboard-ui">
223
+ <span data-i18n="diagnosticsProfileDashboard"></span>
224
+ <small data-i18n="diagnosticsDashboardSummary"></small>
225
+ </button>
226
+ <button type="button" data-diagnostics-tile="other">
227
+ <span data-i18n="diagnosticsProfileOther"></span>
228
+ <small data-i18n="diagnosticsOtherSummary"></small>
229
+ </button>
265
230
  </div>
266
- <p class="diagnostics-privacy" data-i18n="diagnosticsPrivacy"></p>
267
231
  </div>
268
232
  </div>
269
- <div class="diagnostics-guidance diagnostics-surface" data-diagnostics-guidance tabindex="-1" hidden>
270
- <strong data-diagnostics-phase-title></strong>
271
- <div data-diagnostics-guidance-before-section>
272
- <span class="guidance-label" data-i18n="diagnosticsBeforeLabel"></span>
273
- <p data-diagnostics-guidance-before></p>
274
- </div>
233
+ <div class="diagnostics-guidance diagnostics-surface" data-diagnostics-guidance hidden>
234
+ <h3 tabindex="-1" data-diagnostics-phase-title></h3>
275
235
  <div>
276
236
  <span class="guidance-label" data-i18n="diagnosticsActionLabel"></span>
277
237
  <p data-diagnostics-guidance-action></p>
278
238
  </div>
279
239
  <div class="diagnostics-actions" data-diagnostics-actions hidden>
280
- <button
281
- type="button"
282
- data-diagnostics-reproduction
283
- disabled
284
- data-i18n="diagnosticsStartRecording"
285
- ></button>
240
+ <button type="button" data-diagnostics-reproduction disabled data-i18n="diagnosticsNowFinish"></button>
241
+ <button type="button" class="diagnostics-quiet-action" data-diagnostics-cancel data-i18n="diagnosticsCancel"></button>
286
242
  </div>
243
+ <p class="diagnostics-note" data-diagnostics-capture-note></p>
287
244
  </div>
288
- <div class="diagnostics-result diagnostics-surface" data-diagnostics-result hidden>
289
- <strong tabindex="-1" data-diagnostics-result-heading data-i18n="diagnosticsEvidenceReady"></strong>
290
- <p data-i18n="diagnosticsArchiveReviewIntro"></p>
291
- <button type="button" data-diagnostics-review data-i18n="diagnosticsArchiveReview"></button>
292
- <div class="diagnostics-manifest" data-diagnostics-manifest hidden></div>
293
- <label class="diagnostics-review-confirm" data-diagnostics-review-confirm-label hidden>
294
- <input type="checkbox" data-diagnostics-review-confirm />
295
- <span data-i18n="diagnosticsArchiveReviewConfirm"></span>
296
- </label>
245
+ <dialog class="blocking-dialog diagnostics-result" data-diagnostics-result aria-labelledby="diagnostics-result-heading">
246
+ <h2 id="diagnostics-result-heading" tabindex="-1" data-diagnostics-result-heading data-i18n="diagnosticsEvidenceReady"></h2>
247
+ <p data-diagnostics-handoff-note hidden></p>
297
248
  <button type="button" data-diagnostics-export disabled hidden data-i18n="diagnosticsArchiveExport"></button>
298
- <a
299
- data-diagnostics-issue
249
+ <div class="diagnostics-handoff" data-diagnostics-handoff hidden>
250
+ <a data-diagnostics-issue target="_blank" rel="noopener noreferrer" data-i18n="diagnosticsOpenIssue"></a>
251
+ <a
252
+ data-diagnostics-existing-issue
253
+ target="_blank"
254
+ rel="noopener noreferrer"
255
+ data-i18n="diagnosticsExistingIssue"
256
+ ></a>
257
+ </div>
258
+ <button
259
+ type="button"
260
+ class="diagnostics-quiet-action"
261
+ data-diagnostics-download-again
300
262
  hidden
301
- target="_blank"
302
- rel="noopener noreferrer"
303
- data-i18n="diagnosticsOpenIssue"
304
- ></a>
263
+ data-i18n="diagnosticsDownloadAgain"
264
+ ></button>
305
265
  <button
306
266
  type="button"
307
- class="diagnostics-secondary-action"
267
+ class="diagnostics-quiet-action"
308
268
  data-diagnostics-start-another
269
+ hidden
309
270
  data-i18n="diagnosticsStartAnother"
310
271
  ></button>
311
- </div>
272
+ <p class="diagnostics-status" role="status" aria-live="polite" data-diagnostics-result-status></p>
273
+ </dialog>
312
274
  <p class="diagnostics-status" role="status" aria-live="polite" data-diagnostics-status></p>
313
275
  </div>
314
276
  </section>
@@ -347,7 +309,7 @@
347
309
  <div class="field-row">
348
310
  <label>
349
311
  <span data-i18n="countryLabel"></span>
350
- <input type="text" inputmode="text" maxlength="2" required data-country />
312
+ <input type="text" inputmode="text" maxlength="2" pattern="[A-Za-z]{2}" required data-country />
351
313
  </label>
352
314
  <label>
353
315
  <span data-i18n="trustedDeviceLabel"></span>
@@ -369,6 +331,33 @@
369
331
  </section>
370
332
 
371
333
  <p class="footnote" data-i18n="footnote"></p>
334
+
335
+ <dialog class="blocking-dialog" data-reauth-dialog aria-labelledby="reauth-title" aria-describedby="reauth-summary">
336
+ <h2 id="reauth-title" data-i18n="reauthTitle"></h2>
337
+ <p id="reauth-summary" data-i18n="reauthSummary"></p>
338
+ <button type="button" data-reauth-action data-i18n="reauthAction"></button>
339
+ </dialog>
340
+
341
+ <dialog
342
+ class="blocking-dialog"
343
+ closedby="any"
344
+ data-attention-dialog
345
+ aria-labelledby="attention-title"
346
+ aria-describedby="attention-summary"
347
+ >
348
+ <h2 id="attention-title" data-attention-title></h2>
349
+ <p id="attention-summary" data-attention-summary></p>
350
+ <p class="diagnostics-note" data-i18n="diagnosticsPrivacy"></p>
351
+ <div class="diagnostics-choice-actions">
352
+ <button
353
+ type="button"
354
+ class="diagnostics-secondary-action"
355
+ data-attention-choose
356
+ data-i18n="attentionChooseAnother"
357
+ ></button>
358
+ <button type="button" data-attention-diagnose data-i18n="attentionDiagnose"></button>
359
+ </div>
360
+ </dialog>
372
361
  </main>
373
362
 
374
363
  <script src="js/dashboard.js"></script>