@tx5dr/contracts 1.7.12 → 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 (195) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/__tests__/android-operator-audio.schema.test.d.ts +2 -0
  6. package/dist/schema/__tests__/android-operator-audio.schema.test.d.ts.map +1 -0
  7. package/dist/schema/__tests__/android-operator-audio.schema.test.js +27 -0
  8. package/dist/schema/__tests__/android-operator-audio.schema.test.js.map +1 -0
  9. package/dist/schema/__tests__/assisted-queue.schema.test.d.ts +2 -0
  10. package/dist/schema/__tests__/assisted-queue.schema.test.d.ts.map +1 -0
  11. package/dist/schema/__tests__/assisted-queue.schema.test.js +113 -0
  12. package/dist/schema/__tests__/assisted-queue.schema.test.js.map +1 -0
  13. package/dist/schema/__tests__/audio-sidecar.schema.test.d.ts +2 -0
  14. package/dist/schema/__tests__/audio-sidecar.schema.test.d.ts.map +1 -0
  15. package/dist/schema/__tests__/audio-sidecar.schema.test.js +42 -0
  16. package/dist/schema/__tests__/audio-sidecar.schema.test.js.map +1 -0
  17. package/dist/schema/__tests__/audio.schema.test.js +92 -1
  18. package/dist/schema/__tests__/audio.schema.test.js.map +1 -1
  19. package/dist/schema/__tests__/diagnostics.schema.test.d.ts +2 -0
  20. package/dist/schema/__tests__/diagnostics.schema.test.d.ts.map +1 -0
  21. package/dist/schema/__tests__/diagnostics.schema.test.js +31 -0
  22. package/dist/schema/__tests__/diagnostics.schema.test.js.map +1 -0
  23. package/dist/schema/__tests__/logbook-health.schema.test.d.ts +2 -0
  24. package/dist/schema/__tests__/logbook-health.schema.test.d.ts.map +1 -0
  25. package/dist/schema/__tests__/logbook-health.schema.test.js +104 -0
  26. package/dist/schema/__tests__/logbook-health.schema.test.js.map +1 -0
  27. package/dist/schema/__tests__/observability.schema.test.d.ts +2 -0
  28. package/dist/schema/__tests__/observability.schema.test.d.ts.map +1 -0
  29. package/dist/schema/__tests__/observability.schema.test.js +12 -0
  30. package/dist/schema/__tests__/observability.schema.test.js.map +1 -0
  31. package/dist/schema/__tests__/operator.schema.test.js +9 -3
  32. package/dist/schema/__tests__/operator.schema.test.js.map +1 -1
  33. package/dist/schema/__tests__/plugin-market.schema.test.js +43 -1
  34. package/dist/schema/__tests__/plugin-market.schema.test.js.map +1 -1
  35. package/dist/schema/__tests__/radio-power-support.test.js +12 -0
  36. package/dist/schema/__tests__/radio-power-support.test.js.map +1 -1
  37. package/dist/schema/__tests__/radio-profile.schema.test.d.ts +2 -0
  38. package/dist/schema/__tests__/radio-profile.schema.test.d.ts.map +1 -0
  39. package/dist/schema/__tests__/radio-profile.schema.test.js +36 -0
  40. package/dist/schema/__tests__/radio-profile.schema.test.js.map +1 -0
  41. package/dist/schema/__tests__/radio.schema.test.js +41 -1
  42. package/dist/schema/__tests__/radio.schema.test.js.map +1 -1
  43. package/dist/schema/__tests__/realtime-settings.schema.test.js +2 -1
  44. package/dist/schema/__tests__/realtime-settings.schema.test.js.map +1 -1
  45. package/dist/schema/__tests__/remote-access.schema.test.d.ts +2 -0
  46. package/dist/schema/__tests__/remote-access.schema.test.d.ts.map +1 -0
  47. package/dist/schema/__tests__/remote-access.schema.test.js +18 -0
  48. package/dist/schema/__tests__/remote-access.schema.test.js.map +1 -0
  49. package/dist/schema/android-operator-audio.schema.d.ts +174 -0
  50. package/dist/schema/android-operator-audio.schema.d.ts.map +1 -0
  51. package/dist/schema/android-operator-audio.schema.js +38 -0
  52. package/dist/schema/android-operator-audio.schema.js.map +1 -0
  53. package/dist/schema/api-response.schema.d.ts +268 -44
  54. package/dist/schema/api-response.schema.d.ts.map +1 -1
  55. package/dist/schema/audio-sidecar.schema.d.ts +75 -0
  56. package/dist/schema/audio-sidecar.schema.d.ts.map +1 -1
  57. package/dist/schema/audio-sidecar.schema.js +32 -0
  58. package/dist/schema/audio-sidecar.schema.js.map +1 -1
  59. package/dist/schema/audio.schema.d.ts +4749 -3
  60. package/dist/schema/audio.schema.d.ts.map +1 -1
  61. package/dist/schema/audio.schema.js +101 -2
  62. package/dist/schema/audio.schema.js.map +1 -1
  63. package/dist/schema/auth.schema.d.ts +171 -12
  64. package/dist/schema/auth.schema.d.ts.map +1 -1
  65. package/dist/schema/auth.schema.js +65 -1
  66. package/dist/schema/auth.schema.js.map +1 -1
  67. package/dist/schema/cpu-profile.schema.d.ts +2 -2
  68. package/dist/schema/cw-decoder.schema.d.ts +74 -74
  69. package/dist/schema/cw-keyer.schema.d.ts +20 -14
  70. package/dist/schema/cw-keyer.schema.d.ts.map +1 -1
  71. package/dist/schema/cw-keyer.schema.js +3 -0
  72. package/dist/schema/cw-keyer.schema.js.map +1 -1
  73. package/dist/schema/desktop-https.schema.d.ts +6 -6
  74. package/dist/schema/device-ui.schema.d.ts +6 -6
  75. package/dist/schema/diagnostics.schema.d.ts +163 -0
  76. package/dist/schema/diagnostics.schema.d.ts.map +1 -0
  77. package/dist/schema/diagnostics.schema.js +46 -0
  78. package/dist/schema/diagnostics.schema.js.map +1 -0
  79. package/dist/schema/ft8.schema.d.ts +12 -2
  80. package/dist/schema/ft8.schema.d.ts.map +1 -1
  81. package/dist/schema/ft8.schema.js +8 -0
  82. package/dist/schema/ft8.schema.js.map +1 -1
  83. package/dist/schema/logbook.schema.d.ts +1940 -18
  84. package/dist/schema/logbook.schema.d.ts.map +1 -1
  85. package/dist/schema/logbook.schema.js +158 -1
  86. package/dist/schema/logbook.schema.js.map +1 -1
  87. package/dist/schema/mode.schema.d.ts +2 -6
  88. package/dist/schema/mode.schema.d.ts.map +1 -1
  89. package/dist/schema/mode.schema.js +2 -6
  90. package/dist/schema/mode.schema.js.map +1 -1
  91. package/dist/schema/observability.schema.d.ts +66 -0
  92. package/dist/schema/observability.schema.d.ts.map +1 -0
  93. package/dist/schema/observability.schema.js +20 -0
  94. package/dist/schema/observability.schema.js.map +1 -0
  95. package/dist/schema/operator.schema.d.ts +6 -6
  96. package/dist/schema/operator.schema.d.ts.map +1 -1
  97. package/dist/schema/operator.schema.js +6 -1
  98. package/dist/schema/operator.schema.js.map +1 -1
  99. package/dist/schema/plugin.schema.d.ts +258 -78
  100. package/dist/schema/plugin.schema.d.ts.map +1 -1
  101. package/dist/schema/plugin.schema.js +57 -2
  102. package/dist/schema/plugin.schema.js.map +1 -1
  103. package/dist/schema/process-monitor.schema.d.ts +132 -132
  104. package/dist/schema/pskreporter.schema.d.ts +1 -3
  105. package/dist/schema/pskreporter.schema.d.ts.map +1 -1
  106. package/dist/schema/pskreporter.schema.js +1 -3
  107. package/dist/schema/pskreporter.schema.js.map +1 -1
  108. package/dist/schema/qso.schema.d.ts +7 -0
  109. package/dist/schema/qso.schema.d.ts.map +1 -1
  110. package/dist/schema/qso.schema.js +7 -0
  111. package/dist/schema/qso.schema.js.map +1 -1
  112. package/dist/schema/radio-capability.schema.d.ts +31 -40
  113. package/dist/schema/radio-capability.schema.d.ts.map +1 -1
  114. package/dist/schema/radio-capability.schema.js +7 -15
  115. package/dist/schema/radio-capability.schema.js.map +1 -1
  116. package/dist/schema/radio-power-support.d.ts.map +1 -1
  117. package/dist/schema/radio-power-support.js +3 -0
  118. package/dist/schema/radio-power-support.js.map +1 -1
  119. package/dist/schema/radio-power.schema.d.ts +87 -13
  120. package/dist/schema/radio-power.schema.d.ts.map +1 -1
  121. package/dist/schema/radio-power.schema.js +15 -8
  122. package/dist/schema/radio-power.schema.js.map +1 -1
  123. package/dist/schema/radio-profile.schema.d.ts +1240 -97
  124. package/dist/schema/radio-profile.schema.d.ts.map +1 -1
  125. package/dist/schema/radio.schema.d.ts +271 -48
  126. package/dist/schema/radio.schema.d.ts.map +1 -1
  127. package/dist/schema/radio.schema.js +44 -5
  128. package/dist/schema/radio.schema.js.map +1 -1
  129. package/dist/schema/realtime.schema.d.ts +60 -52
  130. package/dist/schema/realtime.schema.d.ts.map +1 -1
  131. package/dist/schema/realtime.schema.js +9 -1
  132. package/dist/schema/realtime.schema.js.map +1 -1
  133. package/dist/schema/slot-info.schema.d.ts +15 -9
  134. package/dist/schema/slot-info.schema.d.ts.map +1 -1
  135. package/dist/schema/slot-info.schema.js +15 -9
  136. package/dist/schema/slot-info.schema.js.map +1 -1
  137. package/dist/schema/spectrum.schema.d.ts +12 -12
  138. package/dist/schema/station-info.schema.d.ts +5 -0
  139. package/dist/schema/station-info.schema.d.ts.map +1 -1
  140. package/dist/schema/station-info.schema.js +5 -0
  141. package/dist/schema/station-info.schema.js.map +1 -1
  142. package/dist/schema/system.schema.d.ts +56 -6
  143. package/dist/schema/system.schema.d.ts.map +1 -1
  144. package/dist/schema/system.schema.js +22 -0
  145. package/dist/schema/system.schema.js.map +1 -1
  146. package/dist/schema/transmission.schema.d.ts +1 -7
  147. package/dist/schema/transmission.schema.d.ts.map +1 -1
  148. package/dist/schema/transmission.schema.js +2 -7
  149. package/dist/schema/transmission.schema.js.map +1 -1
  150. package/dist/schema/voice-keyer.schema.d.ts +16 -16
  151. package/dist/schema/websocket.schema.d.ts +3582 -555
  152. package/dist/schema/websocket.schema.d.ts.map +1 -1
  153. package/dist/schema/websocket.schema.js +160 -3
  154. package/dist/schema/websocket.schema.js.map +1 -1
  155. package/package.json +6 -1
  156. package/src/index.ts +3 -0
  157. package/src/schema/__tests__/android-operator-audio.schema.test.ts +31 -0
  158. package/src/schema/__tests__/assisted-queue.schema.test.ts +121 -0
  159. package/src/schema/__tests__/audio-sidecar.schema.test.ts +48 -0
  160. package/src/schema/__tests__/audio.schema.test.ts +102 -0
  161. package/src/schema/__tests__/diagnostics.schema.test.ts +32 -0
  162. package/src/schema/__tests__/logbook-health.schema.test.ts +117 -0
  163. package/src/schema/__tests__/observability.schema.test.ts +15 -0
  164. package/src/schema/__tests__/operator.schema.test.ts +11 -3
  165. package/src/schema/__tests__/plugin-market.schema.test.ts +49 -0
  166. package/src/schema/__tests__/radio-power-support.test.ts +14 -0
  167. package/src/schema/__tests__/radio-profile.schema.test.ts +44 -0
  168. package/src/schema/__tests__/radio.schema.test.ts +49 -1
  169. package/src/schema/__tests__/realtime-settings.schema.test.ts +2 -1
  170. package/src/schema/__tests__/remote-access.schema.test.ts +22 -0
  171. package/src/schema/android-operator-audio.schema.ts +49 -0
  172. package/src/schema/audio-sidecar.schema.ts +35 -0
  173. package/src/schema/audio.schema.ts +115 -2
  174. package/src/schema/auth.schema.ts +79 -1
  175. package/src/schema/cw-keyer.schema.ts +5 -0
  176. package/src/schema/diagnostics.schema.ts +55 -0
  177. package/src/schema/ft8.schema.ts +8 -0
  178. package/src/schema/logbook.schema.ts +204 -1
  179. package/src/schema/mode.schema.ts +2 -6
  180. package/src/schema/observability.schema.ts +26 -0
  181. package/src/schema/operator.schema.ts +7 -1
  182. package/src/schema/plugin.schema.ts +67 -2
  183. package/src/schema/pskreporter.schema.ts +1 -3
  184. package/src/schema/qso.schema.ts +7 -0
  185. package/src/schema/radio-capability.schema.ts +7 -15
  186. package/src/schema/radio-power-support.ts +3 -0
  187. package/src/schema/radio-power.schema.ts +15 -8
  188. package/src/schema/radio.schema.ts +55 -5
  189. package/src/schema/realtime.schema.ts +9 -1
  190. package/src/schema/slot-info.schema.ts +16 -10
  191. package/src/schema/station-info.schema.ts +5 -0
  192. package/src/schema/system.schema.ts +29 -0
  193. package/src/schema/transmission.schema.ts +2 -7
  194. package/src/schema/websocket.schema.ts +223 -6
  195. package/test/radio-capability-schema.test.ts +44 -0
@@ -1 +1 @@
1
- {"version":3,"file":"audio.schema.d.ts","sourceRoot":"","sources":["../../src/schema/audio.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.schema.d.ts","sourceRoot":"","sources":["../../src/schema/audio.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB,+EAOnC,CAAC;AAEH,eAAO,MAAM,qBAAqB,2IAUhC,CAAC;AAEH,eAAO,MAAM,0BAA0B,0EAOrC,CAAC;AAEH,eAAO,MAAM,0BAA0B,yEAOrC,CAAC;AAEH,eAAO,MAAM,2BAA2B,6EAOtC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcxC,CAAC;AAGH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqB5B,4EAA4E;;IAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQlE,CAAC;AAEH,eAAO,MAAM,iCAAiC,mEAK5C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAnBtC,4EAA4E;;QAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAFlE,4EAA4E;;QAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BlE,CAAC;AAEH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA9BzC,4EAA4E;;YAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAFlE,4EAA4E;;YAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAFlE,4EAA4E;;YAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAFlE,4EAA4E;;YAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BlE,CAAC;AAEH,eAAO,MAAM,6BAA6B,iCAA+B,CAAC;AAC1E,eAAO,MAAM,4BAA4B,8CAA4C,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,kCAAgC,CAAC;AAGxE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA9CrC,4EAA4E;;QAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAFlE,4EAA4E;;QAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDlE,CAAC;AAGH,eAAO,MAAM,yBAAyB;;;;;IAKpC,2EAA2E;;;IAG3E,uFAAuF;;;;;;;;;IASvF,0EAA0E;;IAE1E,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrF,CAAC;AAGH,eAAO,MAAM,iCAAiC;;;;;;;;QArB5C,2EAA2E;;;QAG3E,uFAAuF;;;;;;;;;QASvF,0EAA0E;;QAE1E,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAzErF,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmFlE,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;QA5B5C,2EAA2E;;;QAG3E,uFAAuF;;;;;;;;;QASvF,0EAA0E;;QAE1E,qFAAqF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBrF,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA5F7C,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAFlE,4EAA4E;;gBAE5E,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -1,4 +1,62 @@
1
1
  import { z } from 'zod';
2
+ export const AudioDeviceBackendSchema = z.enum([
3
+ 'rtaudio',
4
+ 'android',
5
+ 'icom-wlan',
6
+ 'openwebrx',
7
+ 'tci',
8
+ 'network',
9
+ ]);
10
+ export const AudioDeviceKindSchema = z.enum([
11
+ 'usb',
12
+ 'wired-headset',
13
+ 'wired-headphones',
14
+ 'analog-line',
15
+ 'builtin-mic',
16
+ 'builtin-speaker',
17
+ 'network',
18
+ 'virtual',
19
+ 'unknown',
20
+ ]);
21
+ export const AudioDeviceTransportSchema = z.enum([
22
+ 'usb',
23
+ 'analog',
24
+ 'builtin',
25
+ 'network',
26
+ 'virtual',
27
+ 'unknown',
28
+ ]);
29
+ export const AudioDeviceConnectorSchema = z.enum([
30
+ 'usb',
31
+ '3.5mm',
32
+ 'builtin',
33
+ 'network',
34
+ 'virtual',
35
+ 'unknown',
36
+ ]);
37
+ export const AudioDeviceRouteStateSchema = z.enum([
38
+ 'idle',
39
+ 'opening',
40
+ 'verified',
41
+ 'lost',
42
+ 'unavailable',
43
+ 'failed',
44
+ ]);
45
+ export const AudioDeviceCapabilitiesSchema = z.object({
46
+ sampleRates: z.array(z.number().int().positive()).optional(),
47
+ bufferSizes: z.array(z.number().int().positive()).optional(),
48
+ channelCounts: z.array(z.number().int().positive()).optional(),
49
+ sampleFormats: z.array(z.enum(['float32', 'int16'])).optional(),
50
+ channelModes: z.array(z.enum(['mono', 'left', 'right', 'both'])).optional(),
51
+ sampleRateConfigurable: z.boolean().optional(),
52
+ bufferSizeConfigurable: z.boolean().optional(),
53
+ sampleFormatConfigurable: z.boolean().optional(),
54
+ channelModeConfigurable: z.boolean().optional(),
55
+ outputRouteAck: z.boolean().optional(),
56
+ fixedSampleRate: z.number().int().positive().optional(),
57
+ fixedBufferSize: z.number().int().positive().optional(),
58
+ fixedChannelCount: z.number().int().positive().optional(),
59
+ });
2
60
  // 音频设备信息
3
61
  export const AudioDeviceSchema = z.object({
4
62
  id: z.string(),
@@ -11,6 +69,26 @@ export const AudioDeviceSchema = z.object({
11
69
  availability: z.enum(['available', 'cached', 'active']).optional(),
12
70
  isActiveByTx5dr: z.boolean().optional(),
13
71
  lastSeenAt: z.number().int().positive().optional(),
72
+ backend: AudioDeviceBackendSchema.optional(),
73
+ kind: AudioDeviceKindSchema.optional(),
74
+ routeKey: z.string().min(1).optional(),
75
+ transport: AudioDeviceTransportSchema.optional(),
76
+ connector: AudioDeviceConnectorSchema.optional(),
77
+ clientConnected: z.boolean().optional(),
78
+ routeVerified: z.boolean().optional(),
79
+ routeState: AudioDeviceRouteStateSchema.optional(),
80
+ failureReason: z.string().min(1).optional(),
81
+ capabilities: AudioDeviceCapabilitiesSchema.optional(),
82
+ /** Human-readable secondary label (radio identity · VID:PID · USB path). */
83
+ detail: z.string().optional(),
84
+ /** Stable hardware identity when available (e.g. usb:1-7.2.4). */
85
+ hardwareId: z.string().optional(),
86
+ vendorId: z.string().optional(),
87
+ productId: z.string().optional(),
88
+ serialNumber: z.string().optional(),
89
+ usbPath: z.string().optional(),
90
+ alsaCard: z.number().int().nonnegative().optional(),
91
+ alsaCardId: z.string().optional(),
14
92
  });
15
93
  export const AudioDeviceResolutionStatusSchema = z.enum([
16
94
  'selected',
@@ -20,6 +98,9 @@ export const AudioDeviceResolutionStatusSchema = z.enum([
20
98
  ]);
21
99
  export const AudioDeviceResolutionSchema = z.object({
22
100
  configuredDeviceName: z.string().nullable(),
101
+ configuredRouteKey: z.string().nullable().optional(),
102
+ configuredDeviceId: z.string().nullable().optional(),
103
+ configuredHardwareId: z.string().nullable().optional(),
23
104
  configuredDevice: AudioDeviceSchema.nullable(),
24
105
  effectiveDevice: AudioDeviceSchema.nullable(),
25
106
  status: AudioDeviceResolutionStatusSchema,
@@ -31,6 +112,12 @@ export const AudioDeviceResolutionSetSchema = z.object({
31
112
  });
32
113
  export const AudioOutputSampleFormatSchema = z.enum(['float32', 'int16']);
33
114
  export const AudioOutputChannelModeSchema = z.enum(['mono', 'left', 'right', 'both']);
115
+ /**
116
+ * How USB/ACC capture PCM should be interpreted before the internal 12 kHz AF ring.
117
+ * - af: already-demodulated SSB baseband (default)
118
+ * - icom-12k-if: Icom ACC/USB Output Select=IF (~12 kHz IF); software SSB demod required
119
+ */
120
+ export const AudioInputSignalTypeSchema = z.enum(['af', 'icom-12k-if']);
34
121
  // 音频设备列表响应
35
122
  export const AudioDevicesResponseSchema = z.object({
36
123
  inputDevices: z.array(AudioDeviceSchema),
@@ -41,13 +128,25 @@ export const AudioDevicesResponseSchema = z.object({
41
128
  // 音频设备设置请求
42
129
  export const AudioDeviceSettingsSchema = z.object({
43
130
  inputDeviceName: z.string().optional(), // 使用设备名称而非ID
44
- outputDeviceName: z.string().optional(), // 使用设备名称而非ID
131
+ outputDeviceName: z.string().optional(), // 使用设备名称而非ID
132
+ inputRouteKey: z.string().min(1).nullable().optional(),
133
+ outputRouteKey: z.string().min(1).nullable().optional(),
134
+ /** Runtime device id (e.g. input-130). Preferred over name when unique. */
135
+ inputDeviceId: z.string().optional(),
136
+ outputDeviceId: z.string().optional(),
137
+ /** Stable hardware id when available (e.g. usb:1-7.2.4). Preferred over runtime id. */
138
+ inputHardwareId: z.string().optional(),
139
+ outputHardwareId: z.string().optional(),
45
140
  inputSampleRate: z.number().optional(),
46
141
  outputSampleRate: z.number().optional(),
47
142
  inputBufferSize: z.number().optional(),
48
143
  outputBufferSize: z.number().optional(),
49
144
  outputSampleFormat: AudioOutputSampleFormatSchema.optional(),
50
145
  outputChannelMode: AudioOutputChannelModeSchema.optional(),
146
+ /** Capture signal interpretation. Defaults to demodulated AF baseband. */
147
+ inputSignalType: AudioInputSignalTypeSchema.optional(),
148
+ /** IF center frequency in Hz when inputSignalType is icom-12k-if (default 12000). */
149
+ ifCenterHz: z.number().positive().max(24000).optional(),
51
150
  sampleRate: z.number().optional(),
52
151
  bufferSize: z.number().optional(),
53
152
  });
@@ -60,7 +159,7 @@ export const AudioDeviceSettingsResponseSchema = z.object({
60
159
  });
61
160
  export const AudioSettingsResolveRequestSchema = z.object({
62
161
  audio: AudioDeviceSettingsSchema,
63
- radioType: z.enum(['none', 'network', 'serial', 'icom-wlan']).optional(),
162
+ radioType: z.enum(['none', 'network', 'serial', 'icom-wlan', 'tci']).optional(),
64
163
  });
65
164
  export const AudioSettingsResolveResponseSchema = z.object({
66
165
  success: z.boolean(),
@@ -1 +1 @@
1
- {"version":3,"file":"audio.schema.js","sourceRoot":"","sources":["../../src/schema/audio.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.schema.js","sourceRoot":"","sources":["../../src/schema/audio.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7C,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,KAAK;IACL,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,KAAK;IACL,eAAe;IACf,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,KAAK;IACL,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM;IACN,SAAS;IACT,UAAU;IACV,MAAM;IACN,aAAa;IACb,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/D,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,wBAAwB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChD,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACtC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC;AAEH,SAAS;AACT,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,OAAO,EAAE,wBAAwB,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,SAAS,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAChD,SAAS,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAChD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,2BAA2B,CAAC,QAAQ,EAAE;IAClD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,YAAY,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IACtD,4EAA4E;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,kEAAkE;IAClE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,IAAI,CAAC;IACtD,UAAU;IACV,SAAS;IACT,kBAAkB;IAClB,SAAS;CACV,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACpD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtD,gBAAgB,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC9C,eAAe,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,2BAA2B;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;AAExE,WAAW;AACX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACzC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IACtD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,WAAW;AACX,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAG,aAAa;IACtD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa;IACtD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,2EAA2E;IAC3E,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,uFAAuF;IACvF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,kBAAkB,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IAC5D,iBAAiB,EAAE,4BAA4B,CAAC,QAAQ,EAAE;IAC1D,0EAA0E;IAC1E,eAAe,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACtD,qFAAqF;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,WAAW;AACX,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,eAAe,EAAE,yBAAyB;IAC1C,gBAAgB,EAAE,8BAA8B;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,KAAK,EAAE,yBAAyB;IAChC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;CAChF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,gBAAgB,EAAE,8BAA8B;CACjD,CAAC,CAAC;AAEH,8BAA8B;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,2BAA2B;IAC3D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAChD,CAAC,CAAC;AAEH,UAAU;AACV,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,mBAAmB;CACpD,CAAC,CAAC;AAEH,SAAS;AACT,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,aAAa;IAC/D,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe;IAC/C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CACnD,CAAC,CAAC;AAEH,SAAS;AACT,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU;CAChD,CAAC,CAAC"}
@@ -57,12 +57,12 @@ export declare const AuthTokenSchema: z.ZodObject<{
57
57
  createdBy: string | null;
58
58
  revoked: boolean;
59
59
  system?: boolean | undefined;
60
+ expiresAt?: number | undefined;
60
61
  permissionGrants?: {
61
62
  permission: import("./ability.js").Permission;
62
63
  conditions?: Record<string, unknown> | undefined;
63
64
  }[] | undefined;
64
65
  tokenPlain?: string | undefined;
65
- expiresAt?: number | undefined;
66
66
  lastUsedAt?: number | undefined;
67
67
  maxOperators?: number | undefined;
68
68
  allowSelfLoginCredential?: boolean | undefined;
@@ -82,12 +82,12 @@ export declare const AuthTokenSchema: z.ZodObject<{
82
82
  createdBy: string | null;
83
83
  revoked: boolean;
84
84
  system?: boolean | undefined;
85
+ expiresAt?: number | undefined;
85
86
  permissionGrants?: {
86
87
  permission: import("./ability.js").Permission;
87
88
  conditions?: Record<string, unknown> | undefined;
88
89
  }[] | undefined;
89
90
  tokenPlain?: string | undefined;
90
- expiresAt?: number | undefined;
91
91
  lastUsedAt?: number | undefined;
92
92
  maxOperators?: number | undefined;
93
93
  allowSelfLoginCredential?: boolean | undefined;
@@ -176,6 +176,25 @@ export declare const LoginResponseSchema: z.ZodObject<{
176
176
  maxOperators?: number | undefined;
177
177
  }>;
178
178
  export type LoginResponse = z.infer<typeof LoginResponseSchema>;
179
+ export declare const BrowserLoginCodeResponseSchema: z.ZodObject<{
180
+ code: z.ZodString;
181
+ expiresAt: z.ZodNumber;
182
+ }, "strip", z.ZodTypeAny, {
183
+ code: string;
184
+ expiresAt: number;
185
+ }, {
186
+ code: string;
187
+ expiresAt: number;
188
+ }>;
189
+ export type BrowserLoginCodeResponse = z.infer<typeof BrowserLoginCodeResponseSchema>;
190
+ export declare const ExchangeBrowserLoginCodeRequestSchema: z.ZodObject<{
191
+ code: z.ZodString;
192
+ }, "strip", z.ZodTypeAny, {
193
+ code: string;
194
+ }, {
195
+ code: string;
196
+ }>;
197
+ export type ExchangeBrowserLoginCodeRequest = z.infer<typeof ExchangeBrowserLoginCodeRequestSchema>;
179
198
  export declare const LoginCredentialSummarySchema: z.ZodObject<{
180
199
  username: z.ZodString;
181
200
  allowSelfService: z.ZodBoolean;
@@ -255,11 +274,11 @@ export declare const CreateTokenRequestSchema: z.ZodObject<{
255
274
  role: UserRole;
256
275
  operatorIds: string[];
257
276
  maxOperators: number;
277
+ expiresAt?: number | undefined;
258
278
  permissionGrants?: {
259
279
  permission: import("./ability.js").Permission;
260
280
  conditions?: Record<string, unknown> | undefined;
261
281
  }[] | undefined;
262
- expiresAt?: number | undefined;
263
282
  allowSelfLoginCredential?: boolean | undefined;
264
283
  loginCredential?: {
265
284
  password: string;
@@ -270,11 +289,11 @@ export declare const CreateTokenRequestSchema: z.ZodObject<{
270
289
  role: UserRole;
271
290
  operatorIds: string[];
272
291
  maxOperators: number;
292
+ expiresAt?: number | undefined;
273
293
  permissionGrants?: {
274
294
  permission: import("./ability.js").Permission;
275
295
  conditions?: Record<string, unknown> | undefined;
276
296
  }[] | undefined;
277
- expiresAt?: number | undefined;
278
297
  allowSelfLoginCredential?: boolean | undefined;
279
298
  loginCredential?: {
280
299
  password: string;
@@ -387,12 +406,12 @@ export declare const TokenInfoSchema: z.ZodObject<{
387
406
  createdBy: string | null;
388
407
  revoked: boolean;
389
408
  system?: boolean | undefined;
409
+ expiresAt?: number | undefined;
390
410
  token?: string | undefined;
391
411
  permissionGrants?: {
392
412
  permission: import("./ability.js").Permission;
393
413
  conditions?: Record<string, unknown> | undefined;
394
414
  }[] | undefined;
395
- expiresAt?: number | undefined;
396
415
  lastUsedAt?: number | undefined;
397
416
  maxOperators?: number | undefined;
398
417
  allowSelfLoginCredential?: boolean | undefined;
@@ -409,12 +428,12 @@ export declare const TokenInfoSchema: z.ZodObject<{
409
428
  createdBy: string | null;
410
429
  revoked: boolean;
411
430
  system?: boolean | undefined;
431
+ expiresAt?: number | undefined;
412
432
  token?: string | undefined;
413
433
  permissionGrants?: {
414
434
  permission: import("./ability.js").Permission;
415
435
  conditions?: Record<string, unknown> | undefined;
416
436
  }[] | undefined;
417
- expiresAt?: number | undefined;
418
437
  lastUsedAt?: number | undefined;
419
438
  maxOperators?: number | undefined;
420
439
  allowSelfLoginCredential?: boolean | undefined;
@@ -453,13 +472,13 @@ export declare const UpdateTokenRequestSchema: z.ZodObject<{
453
472
  }>>>;
454
473
  }, "strip", z.ZodTypeAny, {
455
474
  label?: string | undefined;
475
+ expiresAt?: number | null | undefined;
456
476
  role?: UserRole | undefined;
457
477
  operatorIds?: string[] | undefined;
458
478
  permissionGrants?: {
459
479
  permission: import("./ability.js").Permission;
460
480
  conditions?: Record<string, unknown> | undefined;
461
481
  }[] | null | undefined;
462
- expiresAt?: number | null | undefined;
463
482
  maxOperators?: number | null | undefined;
464
483
  allowSelfLoginCredential?: boolean | undefined;
465
484
  loginCredential?: {
@@ -468,13 +487,13 @@ export declare const UpdateTokenRequestSchema: z.ZodObject<{
468
487
  } | null | undefined;
469
488
  }, {
470
489
  label?: string | undefined;
490
+ expiresAt?: number | null | undefined;
471
491
  role?: UserRole | undefined;
472
492
  operatorIds?: string[] | undefined;
473
493
  permissionGrants?: {
474
494
  permission: import("./ability.js").Permission;
475
495
  conditions?: Record<string, unknown> | undefined;
476
496
  }[] | null | undefined;
477
- expiresAt?: number | null | undefined;
478
497
  maxOperators?: number | null | undefined;
479
498
  allowSelfLoginCredential?: boolean | undefined;
480
499
  loginCredential?: {
@@ -574,9 +593,131 @@ export declare const UpdateAuthConfigRequestSchema: z.ZodObject<{
574
593
  allowPublicViewing?: boolean | undefined;
575
594
  }>;
576
595
  export type UpdateAuthConfigRequest = z.infer<typeof UpdateAuthConfigRequestSchema>;
596
+ export declare const RemoteAccessPresetSchema: z.ZodEnum<["local", "lan", "public"]>;
597
+ export type RemoteAccessPreset = z.infer<typeof RemoteAccessPresetSchema>;
598
+ export declare function isPrivateRemoteAccessHostname(hostname: string): boolean;
599
+ export declare function normalizeRemoteAccessOrigin(value: string): string | null;
600
+ export declare function isSecureRemoteAccessOrigin(value: string): boolean;
601
+ export declare const RemoteAccessSecurityConfigSchema: z.ZodObject<{
602
+ preset: z.ZodDefault<z.ZodEnum<["local", "lan", "public"]>>;
603
+ allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
604
+ maxConnections: z.ZodDefault<z.ZodNumber>;
605
+ maxConnectionsPerIp: z.ZodDefault<z.ZodNumber>;
606
+ maxPendingAuth: z.ZodDefault<z.ZodNumber>;
607
+ authTimeoutMs: z.ZodDefault<z.ZodNumber>;
608
+ handshakeTimeoutMs: z.ZodDefault<z.ZodNumber>;
609
+ }, "strip", z.ZodTypeAny, {
610
+ preset: "local" | "lan" | "public";
611
+ allowedOrigins: string[];
612
+ maxConnections: number;
613
+ maxConnectionsPerIp: number;
614
+ maxPendingAuth: number;
615
+ authTimeoutMs: number;
616
+ handshakeTimeoutMs: number;
617
+ }, {
618
+ preset?: "local" | "lan" | "public" | undefined;
619
+ allowedOrigins?: string[] | undefined;
620
+ maxConnections?: number | undefined;
621
+ maxConnectionsPerIp?: number | undefined;
622
+ maxPendingAuth?: number | undefined;
623
+ authTimeoutMs?: number | undefined;
624
+ handshakeTimeoutMs?: number | undefined;
625
+ }>;
626
+ export type RemoteAccessSecurityConfig = z.infer<typeof RemoteAccessSecurityConfigSchema>;
627
+ export declare const UpdateRemoteAccessSecurityRequestSchema: z.ZodObject<{
628
+ preset: z.ZodOptional<z.ZodDefault<z.ZodEnum<["local", "lan", "public"]>>>;
629
+ allowedOrigins: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>>;
630
+ maxConnections: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
631
+ maxConnectionsPerIp: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
632
+ maxPendingAuth: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
633
+ authTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
634
+ handshakeTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
635
+ } & {
636
+ allowPublicViewing: z.ZodOptional<z.ZodBoolean>;
637
+ }, "strip", z.ZodTypeAny, {
638
+ preset?: "local" | "lan" | "public" | undefined;
639
+ allowPublicViewing?: boolean | undefined;
640
+ allowedOrigins?: string[] | undefined;
641
+ maxConnections?: number | undefined;
642
+ maxConnectionsPerIp?: number | undefined;
643
+ maxPendingAuth?: number | undefined;
644
+ authTimeoutMs?: number | undefined;
645
+ handshakeTimeoutMs?: number | undefined;
646
+ }, {
647
+ preset?: "local" | "lan" | "public" | undefined;
648
+ allowPublicViewing?: boolean | undefined;
649
+ allowedOrigins?: string[] | undefined;
650
+ maxConnections?: number | undefined;
651
+ maxConnectionsPerIp?: number | undefined;
652
+ maxPendingAuth?: number | undefined;
653
+ authTimeoutMs?: number | undefined;
654
+ handshakeTimeoutMs?: number | undefined;
655
+ }>;
656
+ export type UpdateRemoteAccessSecurityRequest = z.infer<typeof UpdateRemoteAccessSecurityRequestSchema>;
657
+ export declare const RemoteAccessSecurityStatusSchema: z.ZodObject<{
658
+ preset: z.ZodDefault<z.ZodEnum<["local", "lan", "public"]>>;
659
+ allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
660
+ maxConnections: z.ZodDefault<z.ZodNumber>;
661
+ maxConnectionsPerIp: z.ZodDefault<z.ZodNumber>;
662
+ maxPendingAuth: z.ZodDefault<z.ZodNumber>;
663
+ authTimeoutMs: z.ZodDefault<z.ZodNumber>;
664
+ handshakeTimeoutMs: z.ZodDefault<z.ZodNumber>;
665
+ } & {
666
+ allowPublicViewing: z.ZodBoolean;
667
+ activeConnections: z.ZodNumber;
668
+ pendingConnections: z.ZodNumber;
669
+ }, "strip", z.ZodTypeAny, {
670
+ preset: "local" | "lan" | "public";
671
+ allowPublicViewing: boolean;
672
+ allowedOrigins: string[];
673
+ maxConnections: number;
674
+ maxConnectionsPerIp: number;
675
+ maxPendingAuth: number;
676
+ authTimeoutMs: number;
677
+ handshakeTimeoutMs: number;
678
+ activeConnections: number;
679
+ pendingConnections: number;
680
+ }, {
681
+ allowPublicViewing: boolean;
682
+ activeConnections: number;
683
+ pendingConnections: number;
684
+ preset?: "local" | "lan" | "public" | undefined;
685
+ allowedOrigins?: string[] | undefined;
686
+ maxConnections?: number | undefined;
687
+ maxConnectionsPerIp?: number | undefined;
688
+ maxPendingAuth?: number | undefined;
689
+ authTimeoutMs?: number | undefined;
690
+ handshakeTimeoutMs?: number | undefined;
691
+ }>;
692
+ export type RemoteAccessSecurityStatus = z.infer<typeof RemoteAccessSecurityStatusSchema>;
577
693
  export declare const AuthConfigSchema: z.ZodObject<{
578
694
  enabled: z.ZodDefault<z.ZodBoolean>;
579
695
  allowPublicViewing: z.ZodDefault<z.ZodBoolean>;
696
+ remoteAccess: z.ZodDefault<z.ZodObject<{
697
+ preset: z.ZodDefault<z.ZodEnum<["local", "lan", "public"]>>;
698
+ allowedOrigins: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">>;
699
+ maxConnections: z.ZodDefault<z.ZodNumber>;
700
+ maxConnectionsPerIp: z.ZodDefault<z.ZodNumber>;
701
+ maxPendingAuth: z.ZodDefault<z.ZodNumber>;
702
+ authTimeoutMs: z.ZodDefault<z.ZodNumber>;
703
+ handshakeTimeoutMs: z.ZodDefault<z.ZodNumber>;
704
+ }, "strip", z.ZodTypeAny, {
705
+ preset: "local" | "lan" | "public";
706
+ allowedOrigins: string[];
707
+ maxConnections: number;
708
+ maxConnectionsPerIp: number;
709
+ maxPendingAuth: number;
710
+ authTimeoutMs: number;
711
+ handshakeTimeoutMs: number;
712
+ }, {
713
+ preset?: "local" | "lan" | "public" | undefined;
714
+ allowedOrigins?: string[] | undefined;
715
+ maxConnections?: number | undefined;
716
+ maxConnectionsPerIp?: number | undefined;
717
+ maxPendingAuth?: number | undefined;
718
+ authTimeoutMs?: number | undefined;
719
+ handshakeTimeoutMs?: number | undefined;
720
+ }>>;
580
721
  jwtSecret: z.ZodOptional<z.ZodString>;
581
722
  jwtExpiresInSeconds: z.ZodDefault<z.ZodNumber>;
582
723
  tokens: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -630,12 +771,12 @@ export declare const AuthConfigSchema: z.ZodObject<{
630
771
  createdBy: string | null;
631
772
  revoked: boolean;
632
773
  system?: boolean | undefined;
774
+ expiresAt?: number | undefined;
633
775
  permissionGrants?: {
634
776
  permission: import("./ability.js").Permission;
635
777
  conditions?: Record<string, unknown> | undefined;
636
778
  }[] | undefined;
637
779
  tokenPlain?: string | undefined;
638
- expiresAt?: number | undefined;
639
780
  lastUsedAt?: number | undefined;
640
781
  maxOperators?: number | undefined;
641
782
  allowSelfLoginCredential?: boolean | undefined;
@@ -655,12 +796,12 @@ export declare const AuthConfigSchema: z.ZodObject<{
655
796
  createdBy: string | null;
656
797
  revoked: boolean;
657
798
  system?: boolean | undefined;
799
+ expiresAt?: number | undefined;
658
800
  permissionGrants?: {
659
801
  permission: import("./ability.js").Permission;
660
802
  conditions?: Record<string, unknown> | undefined;
661
803
  }[] | undefined;
662
804
  tokenPlain?: string | undefined;
663
- expiresAt?: number | undefined;
664
805
  lastUsedAt?: number | undefined;
665
806
  maxOperators?: number | undefined;
666
807
  allowSelfLoginCredential?: boolean | undefined;
@@ -674,6 +815,15 @@ export declare const AuthConfigSchema: z.ZodObject<{
674
815
  }, "strip", z.ZodTypeAny, {
675
816
  enabled: boolean;
676
817
  allowPublicViewing: boolean;
818
+ remoteAccess: {
819
+ preset: "local" | "lan" | "public";
820
+ allowedOrigins: string[];
821
+ maxConnections: number;
822
+ maxConnectionsPerIp: number;
823
+ maxPendingAuth: number;
824
+ authTimeoutMs: number;
825
+ handshakeTimeoutMs: number;
826
+ };
677
827
  jwtExpiresInSeconds: number;
678
828
  tokens: {
679
829
  id: string;
@@ -685,12 +835,12 @@ export declare const AuthConfigSchema: z.ZodObject<{
685
835
  createdBy: string | null;
686
836
  revoked: boolean;
687
837
  system?: boolean | undefined;
838
+ expiresAt?: number | undefined;
688
839
  permissionGrants?: {
689
840
  permission: import("./ability.js").Permission;
690
841
  conditions?: Record<string, unknown> | undefined;
691
842
  }[] | undefined;
692
843
  tokenPlain?: string | undefined;
693
- expiresAt?: number | undefined;
694
844
  lastUsedAt?: number | undefined;
695
845
  maxOperators?: number | undefined;
696
846
  allowSelfLoginCredential?: boolean | undefined;
@@ -705,6 +855,15 @@ export declare const AuthConfigSchema: z.ZodObject<{
705
855
  }, {
706
856
  enabled?: boolean | undefined;
707
857
  allowPublicViewing?: boolean | undefined;
858
+ remoteAccess?: {
859
+ preset?: "local" | "lan" | "public" | undefined;
860
+ allowedOrigins?: string[] | undefined;
861
+ maxConnections?: number | undefined;
862
+ maxConnectionsPerIp?: number | undefined;
863
+ maxPendingAuth?: number | undefined;
864
+ authTimeoutMs?: number | undefined;
865
+ handshakeTimeoutMs?: number | undefined;
866
+ } | undefined;
708
867
  jwtSecret?: string | undefined;
709
868
  jwtExpiresInSeconds?: number | undefined;
710
869
  tokens?: {
@@ -717,12 +876,12 @@ export declare const AuthConfigSchema: z.ZodObject<{
717
876
  createdBy: string | null;
718
877
  revoked: boolean;
719
878
  system?: boolean | undefined;
879
+ expiresAt?: number | undefined;
720
880
  permissionGrants?: {
721
881
  permission: import("./ability.js").Permission;
722
882
  conditions?: Record<string, unknown> | undefined;
723
883
  }[] | undefined;
724
884
  tokenPlain?: string | undefined;
725
- expiresAt?: number | undefined;
726
885
  lastUsedAt?: number | undefined;
727
886
  maxOperators?: number | undefined;
728
887
  allowSelfLoginCredential?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.schema.d.ts","sourceRoot":"","sources":["../../src/schema/auth.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.schema.d.ts","sourceRoot":"","sources":["../../src/schema/auth.schema.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,13 @@ export const LoginResponseSchema = z.object({
61
61
  maxOperators: z.number().optional(),
62
62
  permissionGrants: z.array(PermissionGrantSchema).optional(),
63
63
  });
64
+ export const BrowserLoginCodeResponseSchema = z.object({
65
+ code: z.string().min(1),
66
+ expiresAt: z.number(),
67
+ });
68
+ export const ExchangeBrowserLoginCodeRequestSchema = z.object({
69
+ code: z.string().min(1),
70
+ });
64
71
  // ===== Token 管理(Admin API) =====
65
72
  export const LoginCredentialSummarySchema = z.object({
66
73
  username: z.string(),
@@ -150,10 +157,67 @@ export const UpdateSelfLoginCredentialRequestSchema = z.object({
150
157
  export const UpdateAuthConfigRequestSchema = z.object({
151
158
  allowPublicViewing: z.boolean().optional(),
152
159
  });
160
+ export const RemoteAccessPresetSchema = z.enum(['local', 'lan', 'public']);
161
+ export function isPrivateRemoteAccessHostname(hostname) {
162
+ if (['localhost', '127.0.0.1', '::1'].includes(hostname))
163
+ return true;
164
+ if (hostname.includes(':')) {
165
+ const normalized = hostname.toLowerCase();
166
+ return normalized.startsWith('fc') || normalized.startsWith('fd') || normalized.startsWith('fe8')
167
+ || normalized.startsWith('fe9') || normalized.startsWith('fea') || normalized.startsWith('feb');
168
+ }
169
+ const parts = hostname.split('.').map(Number);
170
+ if (parts.length !== 4 || parts.some(part => !Number.isInteger(part) || part < 0 || part > 255))
171
+ return false;
172
+ return parts[0] === 10
173
+ || (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31)
174
+ || (parts[0] === 192 && parts[1] === 168)
175
+ || (parts[0] === 100 && parts[1] >= 64 && parts[1] <= 127)
176
+ || (parts[0] === 169 && parts[1] === 254);
177
+ }
178
+ export function normalizeRemoteAccessOrigin(value) {
179
+ try {
180
+ const parsed = new URL(value.trim());
181
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:')
182
+ return null;
183
+ if (parsed.username || parsed.password || parsed.pathname !== '/' || parsed.search || parsed.hash)
184
+ return null;
185
+ return parsed.origin;
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ }
191
+ export function isSecureRemoteAccessOrigin(value) {
192
+ const normalized = normalizeRemoteAccessOrigin(value);
193
+ if (!normalized)
194
+ return false;
195
+ const parsed = new URL(normalized);
196
+ return parsed.protocol === 'https:' || isPrivateRemoteAccessHostname(parsed.hostname);
197
+ }
198
+ export const RemoteAccessSecurityConfigSchema = z.object({
199
+ preset: RemoteAccessPresetSchema.default('lan'),
200
+ allowedOrigins: z.array(z.string().url().refine(value => normalizeRemoteAccessOrigin(value) !== null, 'Expected a complete HTTP(S) origin without a path')).max(32).default([]),
201
+ maxConnections: z.number().int().min(1).max(512).default(32),
202
+ maxConnectionsPerIp: z.number().int().min(1).max(128).default(16),
203
+ maxPendingAuth: z.number().int().min(1).max(128).default(32),
204
+ authTimeoutMs: z.number().int().min(3_000).max(60_000).default(10_000),
205
+ handshakeTimeoutMs: z.number().int().min(3_000).max(60_000).default(10_000),
206
+ });
207
+ export const UpdateRemoteAccessSecurityRequestSchema = RemoteAccessSecurityConfigSchema.partial().extend({
208
+ allowPublicViewing: z.boolean().optional(),
209
+ });
210
+ export const RemoteAccessSecurityStatusSchema = RemoteAccessSecurityConfigSchema.extend({
211
+ allowPublicViewing: z.boolean(),
212
+ activeConnections: z.number().int().nonnegative(),
213
+ pendingConnections: z.number().int().nonnegative(),
214
+ });
153
215
  // ===== 认证配置(持久化到 auth.json) =====
154
216
  export const AuthConfigSchema = z.object({
155
217
  enabled: z.boolean().default(true),
156
- allowPublicViewing: z.boolean().default(true),
218
+ // Existing installations persist their explicit value; new installations opt in.
219
+ allowPublicViewing: z.boolean().default(false),
220
+ remoteAccess: RemoteAccessSecurityConfigSchema.default({}),
157
221
  jwtSecret: z.string().optional(),
158
222
  jwtExpiresInSeconds: z.number().default(7 * 24 * 3600), // 7 days
159
223
  tokens: z.array(AuthTokenSchema).default([]),