@sukramj/fabric-ui 0.0.0-stage → 0.1.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 (43) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +91 -2
  3. package/package.json +92 -4
  4. package/src/lib/api/client.ts +154 -0
  5. package/src/lib/api/index.ts +3 -0
  6. package/src/lib/api/schema.gen.ts +1159 -0
  7. package/src/lib/api/stream.ts +54 -0
  8. package/src/lib/context.ts +96 -0
  9. package/src/lib/i18n/de.json +157 -0
  10. package/src/lib/i18n/en.json +157 -0
  11. package/src/lib/i18n/index.ts +50 -0
  12. package/src/lib/index.ts +10 -0
  13. package/src/lib/kit/Badge.svelte +26 -0
  14. package/src/lib/kit/Button.svelte +49 -0
  15. package/src/lib/kit/Card.svelte +16 -0
  16. package/src/lib/kit/DataTable.svelte +239 -0
  17. package/src/lib/kit/EmptyState.svelte +24 -0
  18. package/src/lib/kit/ErrorState.svelte +22 -0
  19. package/src/lib/kit/Icon.svelte +12 -0
  20. package/src/lib/kit/Input.svelte +22 -0
  21. package/src/lib/kit/LoadingState.svelte +15 -0
  22. package/src/lib/kit/PageHeader.svelte +32 -0
  23. package/src/lib/kit/PageShell.svelte +16 -0
  24. package/src/lib/kit/Select.svelte +49 -0
  25. package/src/lib/kit/Spinner.svelte +59 -0
  26. package/src/lib/kit/Tabs.svelte +63 -0
  27. package/src/lib/kit/data-table.ts +24 -0
  28. package/src/lib/kit/icons.ts +41 -0
  29. package/src/lib/kit/index.ts +21 -0
  30. package/src/lib/kit/tabs.ts +13 -0
  31. package/src/lib/kit/utils.ts +49 -0
  32. package/src/lib/pages/index.ts +8 -0
  33. package/src/lib/pages/node/Diagnostics.svelte +205 -0
  34. package/src/lib/pages/node/Endpoints.svelte +82 -0
  35. package/src/lib/pages/node/Fabrics.svelte +169 -0
  36. package/src/lib/pages/node/Pair.svelte +186 -0
  37. package/src/lib/pages/node/Selection.svelte +388 -0
  38. package/src/lib/pages/node/Status.svelte +63 -0
  39. package/src/lib/qr.ts +58 -0
  40. package/src/lib/store.svelte.ts +293 -0
  41. package/src/lib/theme/ha-bridge.ts +156 -0
  42. package/src/lib/theme/index.ts +1 -0
  43. package/src/lib/theme/tokens.css +292 -0
@@ -0,0 +1,1159 @@
1
+ // Generated from contract/openapi.yaml by `npm run gen:types`. Do not edit;
2
+ // src/lib/api/schema.test.ts fails when this file is stale.
3
+
4
+ export interface paths {
5
+ "/node/status": {
6
+ parameters: {
7
+ query?: never;
8
+ header?: never;
9
+ path?: never;
10
+ cookie?: never;
11
+ };
12
+ /** Health, counts and the commissioning window. */
13
+ get: operations["getNodeStatus"];
14
+ put?: never;
15
+ post?: never;
16
+ delete?: never;
17
+ options?: never;
18
+ head?: never;
19
+ patch?: never;
20
+ trace?: never;
21
+ };
22
+ "/node/fabrics": {
23
+ parameters: {
24
+ query?: never;
25
+ header?: never;
26
+ path?: never;
27
+ cookie?: never;
28
+ };
29
+ /** The commissioned fabrics. */
30
+ get: operations["listFabrics"];
31
+ put?: never;
32
+ post?: never;
33
+ delete?: never;
34
+ options?: never;
35
+ head?: never;
36
+ patch?: never;
37
+ trace?: never;
38
+ };
39
+ "/node/fabrics/{index}": {
40
+ parameters: {
41
+ query?: never;
42
+ header?: never;
43
+ path?: never;
44
+ cookie?: never;
45
+ };
46
+ get?: never;
47
+ put?: never;
48
+ post?: never;
49
+ /** Remove one fabric. */
50
+ delete: operations["removeFabric"];
51
+ options?: never;
52
+ head?: never;
53
+ patch?: never;
54
+ trace?: never;
55
+ };
56
+ "/node/pairing": {
57
+ parameters: {
58
+ query?: never;
59
+ header?: never;
60
+ path?: never;
61
+ cookie?: never;
62
+ };
63
+ /** The pairing codes — of the window this handler opened while it is open, else the configured ones. */
64
+ get: operations["getPairing"];
65
+ put?: never;
66
+ post?: never;
67
+ delete?: never;
68
+ options?: never;
69
+ head?: never;
70
+ patch?: never;
71
+ trace?: never;
72
+ };
73
+ "/node/pairing/window": {
74
+ parameters: {
75
+ query?: never;
76
+ header?: never;
77
+ path?: never;
78
+ cookie?: never;
79
+ };
80
+ get?: never;
81
+ put?: never;
82
+ /** Open a commissioning window. */
83
+ post: operations["openWindow"];
84
+ delete?: never;
85
+ options?: never;
86
+ head?: never;
87
+ patch?: never;
88
+ trace?: never;
89
+ };
90
+ "/node/pairing/window/close": {
91
+ parameters: {
92
+ query?: never;
93
+ header?: never;
94
+ path?: never;
95
+ cookie?: never;
96
+ };
97
+ get?: never;
98
+ put?: never;
99
+ /** Close the open commissioning window. */
100
+ post: operations["closeWindow"];
101
+ delete?: never;
102
+ options?: never;
103
+ head?: never;
104
+ patch?: never;
105
+ trace?: never;
106
+ };
107
+ "/node/endpoints": {
108
+ parameters: {
109
+ query?: never;
110
+ header?: never;
111
+ path?: never;
112
+ cookie?: never;
113
+ };
114
+ /** The bridged endpoints a controller sees. */
115
+ get: operations["listEndpoints"];
116
+ put?: never;
117
+ post?: never;
118
+ delete?: never;
119
+ options?: never;
120
+ head?: never;
121
+ patch?: never;
122
+ trace?: never;
123
+ };
124
+ "/node/sessions": {
125
+ parameters: {
126
+ query?: never;
127
+ header?: never;
128
+ path?: never;
129
+ cookie?: never;
130
+ };
131
+ /** The open secure sessions and the session-id occupancy. */
132
+ get: operations["listSessions"];
133
+ put?: never;
134
+ post?: never;
135
+ delete?: never;
136
+ options?: never;
137
+ head?: never;
138
+ patch?: never;
139
+ trace?: never;
140
+ };
141
+ "/node/mdns": {
142
+ parameters: {
143
+ query?: never;
144
+ header?: never;
145
+ path?: never;
146
+ cookie?: never;
147
+ };
148
+ /** The live DNS-SD advertisement and its diagnosis. */
149
+ get: operations["getMdns"];
150
+ put?: never;
151
+ post?: never;
152
+ delete?: never;
153
+ options?: never;
154
+ head?: never;
155
+ patch?: never;
156
+ trace?: never;
157
+ };
158
+ "/node/compatibility": {
159
+ parameters: {
160
+ query?: never;
161
+ header?: never;
162
+ path?: never;
163
+ cookie?: never;
164
+ };
165
+ /** The commissioned ecosystems and known incompatibilities. */
166
+ get: operations["getCompatibility"];
167
+ put?: never;
168
+ post?: never;
169
+ delete?: never;
170
+ options?: never;
171
+ head?: never;
172
+ patch?: never;
173
+ trace?: never;
174
+ };
175
+ "/node/events": {
176
+ parameters: {
177
+ query?: never;
178
+ header?: never;
179
+ path?: never;
180
+ cookie?: never;
181
+ };
182
+ /** The pairing, session and discovery trace, newest first. */
183
+ get: operations["listDiagnosticEvents"];
184
+ put?: never;
185
+ post?: never;
186
+ delete?: never;
187
+ options?: never;
188
+ head?: never;
189
+ patch?: never;
190
+ trace?: never;
191
+ };
192
+ "/node/exposure/schema": {
193
+ parameters: {
194
+ query?: never;
195
+ header?: never;
196
+ path?: never;
197
+ cookie?: never;
198
+ };
199
+ /** How the selection page shows the host's items. */
200
+ get: operations["getExposureSchema"];
201
+ put?: never;
202
+ post?: never;
203
+ delete?: never;
204
+ options?: never;
205
+ head?: never;
206
+ patch?: never;
207
+ trace?: never;
208
+ };
209
+ "/node/exposure": {
210
+ parameters: {
211
+ query?: never;
212
+ header?: never;
213
+ path?: never;
214
+ cookie?: never;
215
+ };
216
+ /** Every item the host could expose. */
217
+ get: operations["listExposure"];
218
+ /** Apply a batch of item changes and reassemble the endpoints. */
219
+ put: operations["applyExposure"];
220
+ post?: never;
221
+ delete?: never;
222
+ options?: never;
223
+ head?: never;
224
+ patch?: never;
225
+ trace?: never;
226
+ };
227
+ "/node/exposure/preview": {
228
+ parameters: {
229
+ query?: never;
230
+ header?: never;
231
+ path?: never;
232
+ cookie?: never;
233
+ };
234
+ get?: never;
235
+ put?: never;
236
+ /** The items as a batch of changes would leave them; nothing is written. */
237
+ post: operations["previewExposure"];
238
+ delete?: never;
239
+ options?: never;
240
+ head?: never;
241
+ patch?: never;
242
+ trace?: never;
243
+ };
244
+ "/node/maintenance/reassemble": {
245
+ parameters: {
246
+ query?: never;
247
+ header?: never;
248
+ path?: never;
249
+ cookie?: never;
250
+ };
251
+ get?: never;
252
+ put?: never;
253
+ /** Rebuild the endpoints from the host's current selection; pairings are untouched. */
254
+ post: operations["reassemble"];
255
+ delete?: never;
256
+ options?: never;
257
+ head?: never;
258
+ patch?: never;
259
+ trace?: never;
260
+ };
261
+ "/node/maintenance/factory-reset": {
262
+ parameters: {
263
+ query?: never;
264
+ header?: never;
265
+ path?: never;
266
+ cookie?: never;
267
+ };
268
+ get?: never;
269
+ put?: never;
270
+ /** Remove every fabric. The body must name the action. */
271
+ post: operations["factoryReset"];
272
+ delete?: never;
273
+ options?: never;
274
+ head?: never;
275
+ patch?: never;
276
+ trace?: never;
277
+ };
278
+ "/node/stream": {
279
+ parameters: {
280
+ query?: never;
281
+ header?: never;
282
+ path?: never;
283
+ cookie?: never;
284
+ };
285
+ /**
286
+ * Server-sent events.
287
+ * @description `event:` is one of fabric_added, fabric_removed, window_opened,
288
+ * window_closed, endpoints_changed, exposure_changed; `data:` is the
289
+ * JSON payload (`FabricEvent`, `WindowEvent`, `{}`, `ExposureEvent`).
290
+ * A comment line arrives every 15 s. No payload carries a passcode.
291
+ */
292
+ get: operations["stream"];
293
+ put?: never;
294
+ post?: never;
295
+ delete?: never;
296
+ options?: never;
297
+ head?: never;
298
+ patch?: never;
299
+ trace?: never;
300
+ };
301
+ "/controller/commission": {
302
+ parameters: {
303
+ query?: never;
304
+ header?: never;
305
+ path?: never;
306
+ cookie?: never;
307
+ };
308
+ get?: never;
309
+ put?: never;
310
+ /** Commission a device from a code or QR payload, with progress. */
311
+ post: {
312
+ parameters: {
313
+ query?: never;
314
+ header?: never;
315
+ path?: never;
316
+ cookie?: never;
317
+ };
318
+ requestBody?: never;
319
+ responses: {
320
+ /** @description Planned. */
321
+ 501: {
322
+ headers: {
323
+ [name: string]: unknown;
324
+ };
325
+ content?: never;
326
+ };
327
+ };
328
+ };
329
+ delete?: never;
330
+ options?: never;
331
+ head?: never;
332
+ patch?: never;
333
+ trace?: never;
334
+ };
335
+ "/controller/discovery": {
336
+ parameters: {
337
+ query?: never;
338
+ header?: never;
339
+ path?: never;
340
+ cookie?: never;
341
+ };
342
+ /** Commissionable devices on the network. */
343
+ get: {
344
+ parameters: {
345
+ query?: never;
346
+ header?: never;
347
+ path?: never;
348
+ cookie?: never;
349
+ };
350
+ requestBody?: never;
351
+ responses: {
352
+ /** @description Planned. */
353
+ 501: {
354
+ headers: {
355
+ [name: string]: unknown;
356
+ };
357
+ content?: never;
358
+ };
359
+ };
360
+ };
361
+ put?: never;
362
+ post?: never;
363
+ delete?: never;
364
+ options?: never;
365
+ head?: never;
366
+ patch?: never;
367
+ trace?: never;
368
+ };
369
+ "/controller/nodes": {
370
+ parameters: {
371
+ query?: never;
372
+ header?: never;
373
+ path?: never;
374
+ cookie?: never;
375
+ };
376
+ /** The commissioned nodes. */
377
+ get: {
378
+ parameters: {
379
+ query?: never;
380
+ header?: never;
381
+ path?: never;
382
+ cookie?: never;
383
+ };
384
+ requestBody?: never;
385
+ responses: {
386
+ /** @description Planned. */
387
+ 501: {
388
+ headers: {
389
+ [name: string]: unknown;
390
+ };
391
+ content?: never;
392
+ };
393
+ };
394
+ };
395
+ put?: never;
396
+ post?: never;
397
+ delete?: never;
398
+ options?: never;
399
+ head?: never;
400
+ patch?: never;
401
+ trace?: never;
402
+ };
403
+ "/controller/nodes/{id}": {
404
+ parameters: {
405
+ query?: never;
406
+ header?: never;
407
+ path?: never;
408
+ cookie?: never;
409
+ };
410
+ /** One node — endpoints, attributes, subscriptions, bindings, ACL, window, OTA, Thread dataset. */
411
+ get: {
412
+ parameters: {
413
+ query?: never;
414
+ header?: never;
415
+ path: {
416
+ id: string;
417
+ };
418
+ cookie?: never;
419
+ };
420
+ requestBody?: never;
421
+ responses: {
422
+ /** @description Planned. */
423
+ 501: {
424
+ headers: {
425
+ [name: string]: unknown;
426
+ };
427
+ content?: never;
428
+ };
429
+ };
430
+ };
431
+ put?: never;
432
+ post?: never;
433
+ delete?: never;
434
+ options?: never;
435
+ head?: never;
436
+ patch?: never;
437
+ trace?: never;
438
+ };
439
+ "/controller/fabric/label": {
440
+ parameters: {
441
+ query?: never;
442
+ header?: never;
443
+ path?: never;
444
+ cookie?: never;
445
+ };
446
+ get?: never;
447
+ /** The controller's fabric label. */
448
+ put: {
449
+ parameters: {
450
+ query?: never;
451
+ header?: never;
452
+ path?: never;
453
+ cookie?: never;
454
+ };
455
+ requestBody?: never;
456
+ responses: {
457
+ /** @description Planned. */
458
+ 501: {
459
+ headers: {
460
+ [name: string]: unknown;
461
+ };
462
+ content?: never;
463
+ };
464
+ };
465
+ };
466
+ post?: never;
467
+ delete?: never;
468
+ options?: never;
469
+ head?: never;
470
+ patch?: never;
471
+ trace?: never;
472
+ };
473
+ }
474
+ export type webhooks = Record<string, never>;
475
+ export interface components {
476
+ schemas: {
477
+ Problem: {
478
+ type: string;
479
+ title: string;
480
+ status: number;
481
+ detail?: string;
482
+ instance?: string;
483
+ /** @enum {string} */
484
+ code: "bad_request" | "forbidden" | "conflict" | "not_found" | "service_unready" | "internal" | "payload_too_large";
485
+ };
486
+ Status: {
487
+ enabled: boolean;
488
+ listening: boolean;
489
+ listen_addr?: string;
490
+ /** @description Absent when the node runs no health probe. */
491
+ healthy?: boolean;
492
+ health_note?: string;
493
+ endpoint_count: number;
494
+ fabric_count: number;
495
+ /** @description Enabled selection items; absent without a selection. */
496
+ enabled_count?: number;
497
+ advertising: boolean;
498
+ commissioning_window_open: boolean;
499
+ commissioning_window_duration_seconds?: number;
500
+ /** @description Whether the host serves a selection. */
501
+ exposure: boolean;
502
+ /** @description The admin token of token mode; absent when the host decides admin rights. */
503
+ csrf_token?: string;
504
+ };
505
+ Fabric: {
506
+ fabric_index: number;
507
+ /** @description Informational; use fabric_id_hex. */
508
+ fabric_id: number;
509
+ fabric_id_hex: string;
510
+ /** @description Informational; use node_id_hex. */
511
+ node_id: number;
512
+ node_id_hex: string;
513
+ vendor_id: number;
514
+ vendor_name: string;
515
+ label?: string;
516
+ compressed_id: string;
517
+ root_public_key: string;
518
+ };
519
+ FabricList: {
520
+ fabrics: components["schemas"]["Fabric"][];
521
+ };
522
+ Pairing: {
523
+ /** @description Only for a window this handler opened on fresh credentials; the codes carry it. */
524
+ discriminator?: number;
525
+ /** @description Only for a window this handler opened on fresh credentials. */
526
+ passcode?: number;
527
+ qr_code: string;
528
+ manual_code: string;
529
+ /** @enum {string} */
530
+ source: "configured" | "window";
531
+ window_open: boolean;
532
+ duration_seconds?: number;
533
+ };
534
+ WindowRequest: {
535
+ /** @description 180..900; 0 or absent is 900. */
536
+ duration_seconds?: number;
537
+ };
538
+ Window: {
539
+ /** @description Absent for a window on the configured credentials. */
540
+ discriminator?: number;
541
+ /** @description Absent for a window on the configured credentials. */
542
+ passcode?: number;
543
+ duration_seconds: number;
544
+ qr_code: string;
545
+ manual_code: string;
546
+ };
547
+ Cluster: {
548
+ id: number;
549
+ name?: string;
550
+ revision?: number;
551
+ };
552
+ Endpoint: {
553
+ endpoint_id: number;
554
+ parent_endpoint_id: number;
555
+ device_type: number;
556
+ device_type_name: string;
557
+ reachable: boolean;
558
+ name: string;
559
+ /** @description Opaque identity of the host's source; `key` is the endpoint's stable key. */
560
+ source: {
561
+ [key: string]: string;
562
+ };
563
+ clusters: components["schemas"]["Cluster"][];
564
+ };
565
+ EndpointList: {
566
+ endpoints: components["schemas"]["Endpoint"][];
567
+ };
568
+ Session: {
569
+ session_id: number;
570
+ fabric_index: number;
571
+ /** @description Informational; use peer_node_id_hex. */
572
+ peer_node_id: number;
573
+ peer_node_id_hex: string;
574
+ /** @description Informational; use local_node_id_hex. */
575
+ local_node_id: number;
576
+ local_node_id_hex: string;
577
+ is_pase: boolean;
578
+ subscriptions: number;
579
+ /** Format: date-time */
580
+ last_activity: string;
581
+ /** Format: date-time */
582
+ last_peer_activity: string;
583
+ idle_seconds: number;
584
+ peer_idle_seconds: number;
585
+ };
586
+ Occupancy: {
587
+ live: number;
588
+ reserved: number;
589
+ capacity: number;
590
+ free: number;
591
+ };
592
+ SessionList: {
593
+ sessions: components["schemas"]["Session"][];
594
+ occupancy: components["schemas"]["Occupancy"];
595
+ };
596
+ MdnsService: {
597
+ service_type: string;
598
+ instance_name: string;
599
+ host_name: string;
600
+ port: number;
601
+ addresses: string[];
602
+ subtypes: string[];
603
+ txt: {
604
+ [key: string]: string;
605
+ };
606
+ };
607
+ MdnsFinding: {
608
+ /** @enum {string} */
609
+ severity: "error" | "warning";
610
+ code: string;
611
+ message: string;
612
+ service?: string;
613
+ };
614
+ Mdns: {
615
+ advertising: boolean;
616
+ services: components["schemas"]["MdnsService"][];
617
+ findings: components["schemas"]["MdnsFinding"][];
618
+ };
619
+ Ecosystem: {
620
+ ecosystem: string;
621
+ vendor_id: number;
622
+ fabric_index: number;
623
+ label?: string;
624
+ };
625
+ CompatFinding: {
626
+ ecosystem: string;
627
+ code: string;
628
+ message: string;
629
+ device_type?: number;
630
+ };
631
+ Compatibility: {
632
+ ecosystems: components["schemas"]["Ecosystem"][];
633
+ endpoint_count: number;
634
+ findings: components["schemas"]["CompatFinding"][];
635
+ };
636
+ DiagnosticEvent: {
637
+ /** Format: date-time */
638
+ at: string;
639
+ /** @enum {string} */
640
+ kind: "pairing" | "session" | "discovery";
641
+ /** @enum {string} */
642
+ severity: "info" | "warning" | "error";
643
+ message: string;
644
+ detail?: {
645
+ [key: string]: string;
646
+ };
647
+ };
648
+ DiagnosticEventList: {
649
+ events: components["schemas"]["DiagnosticEvent"][];
650
+ };
651
+ Column: {
652
+ key: string;
653
+ label: string;
654
+ /** @description Offer a value filter built from the listed values. */
655
+ filter: boolean;
656
+ };
657
+ FilterOption: {
658
+ value: string;
659
+ label: string;
660
+ };
661
+ Filter: {
662
+ field: string;
663
+ label: string;
664
+ options: components["schemas"]["FilterOption"][];
665
+ };
666
+ ExposureSchema: {
667
+ columns: components["schemas"]["Column"][];
668
+ groups: boolean;
669
+ filters: components["schemas"]["Filter"][];
670
+ };
671
+ Verdict: {
672
+ /** @enum {string} */
673
+ state: "mappable" | "partially_mappable" | "unmappable";
674
+ device_type: number;
675
+ device_type_name: string;
676
+ clusters: number[];
677
+ reason: string;
678
+ };
679
+ Item: {
680
+ key: string;
681
+ name: string;
682
+ group: string;
683
+ fields: {
684
+ [key: string]: string;
685
+ };
686
+ verdict: components["schemas"]["Verdict"];
687
+ enabled: boolean;
688
+ /** @description Where the verdict comes from */
689
+ source: string;
690
+ };
691
+ ItemList: {
692
+ items: components["schemas"]["Item"][];
693
+ };
694
+ Update: {
695
+ key: string;
696
+ enabled: boolean;
697
+ /** @description Renames the item; absent leaves the name. */
698
+ name?: string;
699
+ };
700
+ UpdateList: {
701
+ items: components["schemas"]["Update"][];
702
+ };
703
+ Applied: {
704
+ applied: number;
705
+ };
706
+ FactoryResetRequest: {
707
+ /** @constant */
708
+ confirm: "remove-all-fabrics";
709
+ };
710
+ FabricEvent: {
711
+ fabric_index: number;
712
+ vendor_id?: number;
713
+ vendor_name?: string;
714
+ label?: string;
715
+ };
716
+ WindowEvent: {
717
+ discriminator?: number;
718
+ duration_seconds?: number;
719
+ };
720
+ ExposureEvent: {
721
+ keys: string[];
722
+ };
723
+ };
724
+ responses: {
725
+ /** @description An RFC 9457 problem. */
726
+ Problem: {
727
+ headers: {
728
+ [name: string]: unknown;
729
+ };
730
+ content: {
731
+ "application/problem+json": components["schemas"]["Problem"];
732
+ };
733
+ };
734
+ };
735
+ parameters: never;
736
+ requestBodies: never;
737
+ headers: never;
738
+ pathItems: never;
739
+ }
740
+ export type $defs = Record<string, never>;
741
+ export interface operations {
742
+ getNodeStatus: {
743
+ parameters: {
744
+ query?: never;
745
+ header?: never;
746
+ path?: never;
747
+ cookie?: never;
748
+ };
749
+ requestBody?: never;
750
+ responses: {
751
+ /** @description The status; `enabled` is false when the host serves no node. */
752
+ 200: {
753
+ headers: {
754
+ [name: string]: unknown;
755
+ };
756
+ content: {
757
+ "application/json": components["schemas"]["Status"];
758
+ };
759
+ };
760
+ };
761
+ };
762
+ listFabrics: {
763
+ parameters: {
764
+ query?: never;
765
+ header?: never;
766
+ path?: never;
767
+ cookie?: never;
768
+ };
769
+ requestBody?: never;
770
+ responses: {
771
+ /** @description The fabrics. */
772
+ 200: {
773
+ headers: {
774
+ [name: string]: unknown;
775
+ };
776
+ content: {
777
+ "application/json": components["schemas"]["FabricList"];
778
+ };
779
+ };
780
+ 500: components["responses"]["Problem"];
781
+ 503: components["responses"]["Problem"];
782
+ };
783
+ };
784
+ removeFabric: {
785
+ parameters: {
786
+ query?: never;
787
+ header?: never;
788
+ path: {
789
+ index: number;
790
+ };
791
+ cookie?: never;
792
+ };
793
+ requestBody?: never;
794
+ responses: {
795
+ /** @description Removed. */
796
+ 204: {
797
+ headers: {
798
+ [name: string]: unknown;
799
+ };
800
+ content?: never;
801
+ };
802
+ 400: components["responses"]["Problem"];
803
+ 403: components["responses"]["Problem"];
804
+ 500: components["responses"]["Problem"];
805
+ 503: components["responses"]["Problem"];
806
+ };
807
+ };
808
+ getPairing: {
809
+ parameters: {
810
+ query?: never;
811
+ header?: never;
812
+ path?: never;
813
+ cookie?: never;
814
+ };
815
+ requestBody?: never;
816
+ responses: {
817
+ /** @description The codes. */
818
+ 200: {
819
+ headers: {
820
+ [name: string]: unknown;
821
+ };
822
+ content: {
823
+ "application/json": components["schemas"]["Pairing"];
824
+ };
825
+ };
826
+ 403: components["responses"]["Problem"];
827
+ 503: components["responses"]["Problem"];
828
+ };
829
+ };
830
+ openWindow: {
831
+ parameters: {
832
+ query?: never;
833
+ header?: never;
834
+ path?: never;
835
+ cookie?: never;
836
+ };
837
+ requestBody: {
838
+ content: {
839
+ "application/json": components["schemas"]["WindowRequest"];
840
+ };
841
+ };
842
+ responses: {
843
+ /** @description The window is open; the codes commission through it. */
844
+ 200: {
845
+ headers: {
846
+ [name: string]: unknown;
847
+ };
848
+ content: {
849
+ "application/json": components["schemas"]["Window"];
850
+ };
851
+ };
852
+ 400: components["responses"]["Problem"];
853
+ 403: components["responses"]["Problem"];
854
+ 409: components["responses"]["Problem"];
855
+ 500: components["responses"]["Problem"];
856
+ 503: components["responses"]["Problem"];
857
+ };
858
+ };
859
+ closeWindow: {
860
+ parameters: {
861
+ query?: never;
862
+ header?: never;
863
+ path?: never;
864
+ cookie?: never;
865
+ };
866
+ requestBody?: never;
867
+ responses: {
868
+ /** @description Closed. */
869
+ 204: {
870
+ headers: {
871
+ [name: string]: unknown;
872
+ };
873
+ content?: never;
874
+ };
875
+ 403: components["responses"]["Problem"];
876
+ 500: components["responses"]["Problem"];
877
+ 503: components["responses"]["Problem"];
878
+ };
879
+ };
880
+ listEndpoints: {
881
+ parameters: {
882
+ query?: never;
883
+ header?: never;
884
+ path?: never;
885
+ cookie?: never;
886
+ };
887
+ requestBody?: never;
888
+ responses: {
889
+ /** @description The endpoints. */
890
+ 200: {
891
+ headers: {
892
+ [name: string]: unknown;
893
+ };
894
+ content: {
895
+ "application/json": components["schemas"]["EndpointList"];
896
+ };
897
+ };
898
+ 503: components["responses"]["Problem"];
899
+ };
900
+ };
901
+ listSessions: {
902
+ parameters: {
903
+ query?: never;
904
+ header?: never;
905
+ path?: never;
906
+ cookie?: never;
907
+ };
908
+ requestBody?: never;
909
+ responses: {
910
+ /** @description The sessions. */
911
+ 200: {
912
+ headers: {
913
+ [name: string]: unknown;
914
+ };
915
+ content: {
916
+ "application/json": components["schemas"]["SessionList"];
917
+ };
918
+ };
919
+ 503: components["responses"]["Problem"];
920
+ };
921
+ };
922
+ getMdns: {
923
+ parameters: {
924
+ query?: never;
925
+ header?: never;
926
+ path?: never;
927
+ cookie?: never;
928
+ };
929
+ requestBody?: never;
930
+ responses: {
931
+ /** @description The advertisement. */
932
+ 200: {
933
+ headers: {
934
+ [name: string]: unknown;
935
+ };
936
+ content: {
937
+ "application/json": components["schemas"]["Mdns"];
938
+ };
939
+ };
940
+ 503: components["responses"]["Problem"];
941
+ };
942
+ };
943
+ getCompatibility: {
944
+ parameters: {
945
+ query?: never;
946
+ header?: never;
947
+ path?: never;
948
+ cookie?: never;
949
+ };
950
+ requestBody?: never;
951
+ responses: {
952
+ /** @description The report. */
953
+ 200: {
954
+ headers: {
955
+ [name: string]: unknown;
956
+ };
957
+ content: {
958
+ "application/json": components["schemas"]["Compatibility"];
959
+ };
960
+ };
961
+ 503: components["responses"]["Problem"];
962
+ };
963
+ };
964
+ listDiagnosticEvents: {
965
+ parameters: {
966
+ query?: never;
967
+ header?: never;
968
+ path?: never;
969
+ cookie?: never;
970
+ };
971
+ requestBody?: never;
972
+ responses: {
973
+ /** @description The trace. */
974
+ 200: {
975
+ headers: {
976
+ [name: string]: unknown;
977
+ };
978
+ content: {
979
+ "application/json": components["schemas"]["DiagnosticEventList"];
980
+ };
981
+ };
982
+ 503: components["responses"]["Problem"];
983
+ };
984
+ };
985
+ getExposureSchema: {
986
+ parameters: {
987
+ query?: never;
988
+ header?: never;
989
+ path?: never;
990
+ cookie?: never;
991
+ };
992
+ requestBody?: never;
993
+ responses: {
994
+ /** @description The schema. */
995
+ 200: {
996
+ headers: {
997
+ [name: string]: unknown;
998
+ };
999
+ content: {
1000
+ "application/json": components["schemas"]["ExposureSchema"];
1001
+ };
1002
+ };
1003
+ 500: components["responses"]["Problem"];
1004
+ 503: components["responses"]["Problem"];
1005
+ };
1006
+ };
1007
+ listExposure: {
1008
+ parameters: {
1009
+ query?: never;
1010
+ header?: never;
1011
+ path?: never;
1012
+ cookie?: never;
1013
+ };
1014
+ requestBody?: never;
1015
+ responses: {
1016
+ /** @description The items. */
1017
+ 200: {
1018
+ headers: {
1019
+ [name: string]: unknown;
1020
+ };
1021
+ content: {
1022
+ "application/json": components["schemas"]["ItemList"];
1023
+ };
1024
+ };
1025
+ 500: components["responses"]["Problem"];
1026
+ 503: components["responses"]["Problem"];
1027
+ };
1028
+ };
1029
+ applyExposure: {
1030
+ parameters: {
1031
+ query?: never;
1032
+ header?: never;
1033
+ path?: never;
1034
+ cookie?: never;
1035
+ };
1036
+ requestBody: {
1037
+ content: {
1038
+ "application/json": components["schemas"]["UpdateList"];
1039
+ };
1040
+ };
1041
+ responses: {
1042
+ /** @description Applied. */
1043
+ 200: {
1044
+ headers: {
1045
+ [name: string]: unknown;
1046
+ };
1047
+ content: {
1048
+ "application/json": components["schemas"]["Applied"];
1049
+ };
1050
+ };
1051
+ /** @description The batch was empty. */
1052
+ 204: {
1053
+ headers: {
1054
+ [name: string]: unknown;
1055
+ };
1056
+ content?: never;
1057
+ };
1058
+ 400: components["responses"]["Problem"];
1059
+ 403: components["responses"]["Problem"];
1060
+ 500: components["responses"]["Problem"];
1061
+ 503: components["responses"]["Problem"];
1062
+ };
1063
+ };
1064
+ previewExposure: {
1065
+ parameters: {
1066
+ query?: never;
1067
+ header?: never;
1068
+ path?: never;
1069
+ cookie?: never;
1070
+ };
1071
+ requestBody: {
1072
+ content: {
1073
+ "application/json": components["schemas"]["UpdateList"];
1074
+ };
1075
+ };
1076
+ responses: {
1077
+ /** @description The touched items after the changes. */
1078
+ 200: {
1079
+ headers: {
1080
+ [name: string]: unknown;
1081
+ };
1082
+ content: {
1083
+ "application/json": components["schemas"]["ItemList"];
1084
+ };
1085
+ };
1086
+ 400: components["responses"]["Problem"];
1087
+ 403: components["responses"]["Problem"];
1088
+ 500: components["responses"]["Problem"];
1089
+ 503: components["responses"]["Problem"];
1090
+ };
1091
+ };
1092
+ reassemble: {
1093
+ parameters: {
1094
+ query?: never;
1095
+ header?: never;
1096
+ path?: never;
1097
+ cookie?: never;
1098
+ };
1099
+ requestBody?: never;
1100
+ responses: {
1101
+ /** @description Reassembled. */
1102
+ 204: {
1103
+ headers: {
1104
+ [name: string]: unknown;
1105
+ };
1106
+ content?: never;
1107
+ };
1108
+ 403: components["responses"]["Problem"];
1109
+ 500: components["responses"]["Problem"];
1110
+ 503: components["responses"]["Problem"];
1111
+ };
1112
+ };
1113
+ factoryReset: {
1114
+ parameters: {
1115
+ query?: never;
1116
+ header?: never;
1117
+ path?: never;
1118
+ cookie?: never;
1119
+ };
1120
+ requestBody: {
1121
+ content: {
1122
+ "application/json": components["schemas"]["FactoryResetRequest"];
1123
+ };
1124
+ };
1125
+ responses: {
1126
+ /** @description Every fabric is removed. */
1127
+ 204: {
1128
+ headers: {
1129
+ [name: string]: unknown;
1130
+ };
1131
+ content?: never;
1132
+ };
1133
+ 400: components["responses"]["Problem"];
1134
+ 403: components["responses"]["Problem"];
1135
+ 500: components["responses"]["Problem"];
1136
+ 503: components["responses"]["Problem"];
1137
+ };
1138
+ };
1139
+ stream: {
1140
+ parameters: {
1141
+ query?: never;
1142
+ header?: never;
1143
+ path?: never;
1144
+ cookie?: never;
1145
+ };
1146
+ requestBody?: never;
1147
+ responses: {
1148
+ /** @description The event stream. */
1149
+ 200: {
1150
+ headers: {
1151
+ [name: string]: unknown;
1152
+ };
1153
+ content: {
1154
+ "text/event-stream": string;
1155
+ };
1156
+ };
1157
+ };
1158
+ };
1159
+ }