@tx5dr/contracts 1.2.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.
- package/CLAUDE.md +41 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/__tests__/plugin-runtime-log.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/plugin-runtime-log.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/plugin-runtime-log.schema.test.js +78 -0
- package/dist/schema/__tests__/plugin-runtime-log.schema.test.js.map +1 -0
- package/dist/schema/ability.d.ts +85 -0
- package/dist/schema/ability.d.ts.map +1 -0
- package/dist/schema/ability.js +119 -0
- package/dist/schema/ability.js.map +1 -0
- package/dist/schema/api-response.schema.d.ts +1017 -0
- package/dist/schema/api-response.schema.d.ts.map +1 -0
- package/dist/schema/api-response.schema.js +137 -0
- package/dist/schema/api-response.schema.js.map +1 -0
- package/dist/schema/audio-sidecar.schema.d.ts +106 -0
- package/dist/schema/audio-sidecar.schema.d.ts.map +1 -0
- package/dist/schema/audio-sidecar.schema.js +47 -0
- package/dist/schema/audio-sidecar.schema.js.map +1 -0
- package/dist/schema/audio.schema.d.ts +227 -0
- package/dist/schema/audio.schema.d.ts.map +1 -0
- package/dist/schema/audio.schema.js +56 -0
- package/dist/schema/audio.schema.js.map +1 -0
- package/dist/schema/auth.schema.d.ts +738 -0
- package/dist/schema/auth.schema.d.ts.map +1 -0
- package/dist/schema/auth.schema.js +161 -0
- package/dist/schema/auth.schema.js.map +1 -0
- package/dist/schema/cycle.schema.d.ts +33 -0
- package/dist/schema/cycle.schema.d.ts.map +1 -0
- package/dist/schema/cycle.schema.js +23 -0
- package/dist/schema/cycle.schema.js.map +1 -0
- package/dist/schema/desktop-https.schema.d.ts +146 -0
- package/dist/schema/desktop-https.schema.d.ts.map +1 -0
- package/dist/schema/desktop-https.schema.js +31 -0
- package/dist/schema/desktop-https.schema.js.map +1 -0
- package/dist/schema/ft8.schema.d.ts +1107 -0
- package/dist/schema/ft8.schema.d.ts.map +1 -0
- package/dist/schema/ft8.schema.js +268 -0
- package/dist/schema/ft8.schema.js.map +1 -0
- package/dist/schema/hello.schema.d.ts +10 -0
- package/dist/schema/hello.schema.d.ts.map +1 -0
- package/dist/schema/hello.schema.js +5 -0
- package/dist/schema/hello.schema.js.map +1 -0
- package/dist/schema/logbook.schema.d.ts +1472 -0
- package/dist/schema/logbook.schema.d.ts.map +1 -0
- package/dist/schema/logbook.schema.js +256 -0
- package/dist/schema/logbook.schema.js.map +1 -0
- package/dist/schema/mode.schema.d.ts +130 -0
- package/dist/schema/mode.schema.d.ts.map +1 -0
- package/dist/schema/mode.schema.js +141 -0
- package/dist/schema/mode.schema.js.map +1 -0
- package/dist/schema/openwebrx.schema.d.ts +352 -0
- package/dist/schema/openwebrx.schema.d.ts.map +1 -0
- package/dist/schema/openwebrx.schema.js +139 -0
- package/dist/schema/openwebrx.schema.js.map +1 -0
- package/dist/schema/operator.schema.d.ts +883 -0
- package/dist/schema/operator.schema.d.ts.map +1 -0
- package/dist/schema/operator.schema.js +97 -0
- package/dist/schema/operator.schema.js.map +1 -0
- package/dist/schema/plugin.schema.d.ts +1579 -0
- package/dist/schema/plugin.schema.d.ts.map +1 -0
- package/dist/schema/plugin.schema.js +336 -0
- package/dist/schema/plugin.schema.js.map +1 -0
- package/dist/schema/process-monitor.schema.d.ts +282 -0
- package/dist/schema/process-monitor.schema.d.ts.map +1 -0
- package/dist/schema/process-monitor.schema.js +31 -0
- package/dist/schema/process-monitor.schema.js.map +1 -0
- package/dist/schema/pskreporter.schema.d.ts +185 -0
- package/dist/schema/pskreporter.schema.d.ts.map +1 -0
- package/dist/schema/pskreporter.schema.js +80 -0
- package/dist/schema/pskreporter.schema.js.map +1 -0
- package/dist/schema/qso.schema.d.ts +419 -0
- package/dist/schema/qso.schema.d.ts.map +1 -0
- package/dist/schema/qso.schema.js +137 -0
- package/dist/schema/qso.schema.js.map +1 -0
- package/dist/schema/radio-capability.schema.d.ts +625 -0
- package/dist/schema/radio-capability.schema.d.ts.map +1 -0
- package/dist/schema/radio-capability.schema.js +191 -0
- package/dist/schema/radio-capability.schema.js.map +1 -0
- package/dist/schema/radio-power-support.d.ts +45 -0
- package/dist/schema/radio-power-support.d.ts.map +1 -0
- package/dist/schema/radio-power-support.js +64 -0
- package/dist/schema/radio-power-support.js.map +1 -0
- package/dist/schema/radio-power.schema.d.ts +319 -0
- package/dist/schema/radio-power.schema.d.ts.map +1 -0
- package/dist/schema/radio-power.schema.js +87 -0
- package/dist/schema/radio-power.schema.js.map +1 -0
- package/dist/schema/radio-profile.schema.d.ts +2694 -0
- package/dist/schema/radio-profile.schema.d.ts.map +1 -0
- package/dist/schema/radio-profile.schema.js +71 -0
- package/dist/schema/radio-profile.schema.js.map +1 -0
- package/dist/schema/radio.schema.d.ts +1438 -0
- package/dist/schema/radio.schema.d.ts.map +1 -0
- package/dist/schema/radio.schema.js +314 -0
- package/dist/schema/radio.schema.js.map +1 -0
- package/dist/schema/realtime.schema.d.ts +1299 -0
- package/dist/schema/realtime.schema.d.ts.map +1 -0
- package/dist/schema/realtime.schema.js +184 -0
- package/dist/schema/realtime.schema.js.map +1 -0
- package/dist/schema/rigctld.schema.d.ts +151 -0
- package/dist/schema/rigctld.schema.d.ts.map +1 -0
- package/dist/schema/rigctld.schema.js +42 -0
- package/dist/schema/rigctld.schema.js.map +1 -0
- package/dist/schema/server-message-keys.d.ts +21 -0
- package/dist/schema/server-message-keys.d.ts.map +1 -0
- package/dist/schema/server-message-keys.js +22 -0
- package/dist/schema/server-message-keys.js.map +1 -0
- package/dist/schema/slot-info.schema.d.ts +696 -0
- package/dist/schema/slot-info.schema.d.ts.map +1 -0
- package/dist/schema/slot-info.schema.js +144 -0
- package/dist/schema/slot-info.schema.js.map +1 -0
- package/dist/schema/spectrum.schema.d.ts +716 -0
- package/dist/schema/spectrum.schema.d.ts.map +1 -0
- package/dist/schema/spectrum.schema.js +128 -0
- package/dist/schema/spectrum.schema.js.map +1 -0
- package/dist/schema/station-info.schema.d.ts +202 -0
- package/dist/schema/station-info.schema.d.ts.map +1 -0
- package/dist/schema/station-info.schema.js +32 -0
- package/dist/schema/station-info.schema.js.map +1 -0
- package/dist/schema/system.schema.d.ts +113 -0
- package/dist/schema/system.schema.d.ts.map +1 -0
- package/dist/schema/system.schema.js +95 -0
- package/dist/schema/system.schema.js.map +1 -0
- package/dist/schema/transmission.schema.d.ts +413 -0
- package/dist/schema/transmission.schema.d.ts.map +1 -0
- package/dist/schema/transmission.schema.js +78 -0
- package/dist/schema/transmission.schema.js.map +1 -0
- package/dist/schema/voice.schema.d.ts +38 -0
- package/dist/schema/voice.schema.d.ts.map +1 -0
- package/dist/schema/voice.schema.js +24 -0
- package/dist/schema/voice.schema.js.map +1 -0
- package/dist/schema/websocket.schema.d.ts +16916 -0
- package/dist/schema/websocket.schema.d.ts.map +1 -0
- package/dist/schema/websocket.schema.js +1050 -0
- package/dist/schema/websocket.schema.js.map +1 -0
- package/dist/utils/grid.d.ts +13 -0
- package/dist/utils/grid.d.ts.map +1 -0
- package/dist/utils/grid.js +71 -0
- package/dist/utils/grid.js.map +1 -0
- package/eslint.config.js +15 -0
- package/package.json +28 -0
- package/src/index.ts +152 -0
- package/src/schema/__tests__/plugin-runtime-log.schema.test.ts +90 -0
- package/src/schema/ability.ts +205 -0
- package/src/schema/api-response.schema.ts +187 -0
- package/src/schema/audio-sidecar.schema.ts +53 -0
- package/src/schema/audio.schema.ts +73 -0
- package/src/schema/auth.schema.ts +224 -0
- package/src/schema/cycle.schema.ts +25 -0
- package/src/schema/desktop-https.schema.ts +43 -0
- package/src/schema/ft8.schema.ts +362 -0
- package/src/schema/hello.schema.ts +7 -0
- package/src/schema/logbook.schema.ts +310 -0
- package/src/schema/mode.schema.ts +158 -0
- package/src/schema/openwebrx.schema.ts +160 -0
- package/src/schema/operator.schema.ts +112 -0
- package/src/schema/plugin.schema.ts +503 -0
- package/src/schema/process-monitor.schema.ts +41 -0
- package/src/schema/pskreporter.schema.ts +102 -0
- package/src/schema/qso.schema.ts +173 -0
- package/src/schema/radio-capability.schema.ts +244 -0
- package/src/schema/radio-power-support.ts +107 -0
- package/src/schema/radio-power.schema.ts +101 -0
- package/src/schema/radio-profile.schema.ts +91 -0
- package/src/schema/radio.schema.ts +385 -0
- package/src/schema/realtime.schema.ts +262 -0
- package/src/schema/rigctld.schema.ts +51 -0
- package/src/schema/server-message-keys.ts +26 -0
- package/src/schema/slot-info.schema.ts +162 -0
- package/src/schema/spectrum.schema.ts +166 -0
- package/src/schema/station-info.schema.ts +40 -0
- package/src/schema/system.schema.ts +121 -0
- package/src/schema/transmission.schema.ts +105 -0
- package/src/schema/voice.schema.ts +28 -0
- package/src/schema/websocket.schema.ts +1480 -0
- package/src/utils/grid.ts +94 -0
- package/test/mode-schema.test.ts +48 -0
- package/tsconfig.json +9 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.schema.d.ts","sourceRoot":"","sources":["../../src/schema/realtime.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const RealtimeScopeSchema = z.enum(['radio', 'openwebrx-preview']);
|
|
3
|
+
export const RealtimeParticipantKindSchema = z.enum(['listener', 'publisher', 'bridge']);
|
|
4
|
+
export const RealtimeTransportKindSchema = z.enum(['livekit', 'ws-compat']);
|
|
5
|
+
export const RealtimeSessionDirectionSchema = z.enum(['recv', 'send']);
|
|
6
|
+
export const RealtimeConnectivityErrorCodeSchema = z.enum([
|
|
7
|
+
'TOKEN_REQUEST_FAILED',
|
|
8
|
+
'SIGNALING_UNREACHABLE',
|
|
9
|
+
'PUBLIC_URL_MISCONFIGURED',
|
|
10
|
+
'ICE_CONNECTION_FAILED',
|
|
11
|
+
'NO_AUDIO_TRACK',
|
|
12
|
+
'AUDIO_PLAYBACK_BLOCKED',
|
|
13
|
+
'SESSION_EXPIRED_OR_INVALID',
|
|
14
|
+
'MEDIA_DEVICE_PERMISSION_DENIED',
|
|
15
|
+
'UNKNOWN_REALTIME_ERROR',
|
|
16
|
+
]);
|
|
17
|
+
export const RealtimeConnectivityHintsSchema = z.object({
|
|
18
|
+
signalingUrl: z.string(),
|
|
19
|
+
signalingPort: z.number().int().positive(),
|
|
20
|
+
rtcTcpPort: z.number().int().positive(),
|
|
21
|
+
udpPortRange: z.string(),
|
|
22
|
+
publicUrlOverrideActive: z.boolean(),
|
|
23
|
+
});
|
|
24
|
+
export const RealtimeConnectivityIssueSchema = z.object({
|
|
25
|
+
code: RealtimeConnectivityErrorCodeSchema,
|
|
26
|
+
scope: RealtimeScopeSchema,
|
|
27
|
+
stage: z.enum(['token', 'connect', 'publish', 'subscribe', 'runtime']),
|
|
28
|
+
userMessage: z.string(),
|
|
29
|
+
suggestions: z.array(z.string()),
|
|
30
|
+
technicalDetails: z.string().optional(),
|
|
31
|
+
context: z.record(z.string()).optional(),
|
|
32
|
+
});
|
|
33
|
+
export const RealtimeTokenRequestSchema = z.object({
|
|
34
|
+
scope: RealtimeScopeSchema,
|
|
35
|
+
publish: z.boolean().optional(),
|
|
36
|
+
previewSessionId: z.string().optional(),
|
|
37
|
+
});
|
|
38
|
+
export const RealtimeSessionRequestSchema = z.object({
|
|
39
|
+
scope: RealtimeScopeSchema,
|
|
40
|
+
direction: RealtimeSessionDirectionSchema,
|
|
41
|
+
previewSessionId: z.string().optional(),
|
|
42
|
+
transportOverride: RealtimeTransportKindSchema.optional(),
|
|
43
|
+
});
|
|
44
|
+
export const RealtimeParticipantMetadataSchema = z.object({
|
|
45
|
+
role: z.string(),
|
|
46
|
+
tokenId: z.string().nullable().optional(),
|
|
47
|
+
operatorIds: z.array(z.string()).optional(),
|
|
48
|
+
clientKind: z.string(),
|
|
49
|
+
participantKind: RealtimeParticipantKindSchema,
|
|
50
|
+
scope: RealtimeScopeSchema,
|
|
51
|
+
previewSessionId: z.string().optional(),
|
|
52
|
+
});
|
|
53
|
+
export const RealtimeTokenResponseSchema = z.object({
|
|
54
|
+
url: z.string(),
|
|
55
|
+
roomName: z.string(),
|
|
56
|
+
token: z.string(),
|
|
57
|
+
participantIdentity: z.string(),
|
|
58
|
+
participantName: z.string(),
|
|
59
|
+
participantMetadata: RealtimeParticipantMetadataSchema,
|
|
60
|
+
connectivityHints: RealtimeConnectivityHintsSchema,
|
|
61
|
+
});
|
|
62
|
+
export const RealtimeTransportOfferSchema = z.object({
|
|
63
|
+
transport: RealtimeTransportKindSchema,
|
|
64
|
+
direction: RealtimeSessionDirectionSchema,
|
|
65
|
+
url: z.string(),
|
|
66
|
+
token: z.string(),
|
|
67
|
+
participantIdentity: z.string().nullable().optional(),
|
|
68
|
+
participantName: z.string().nullable().optional(),
|
|
69
|
+
roomName: z.string().nullable().optional(),
|
|
70
|
+
});
|
|
71
|
+
export const RealtimeTransportPolicySchema = z.enum(['auto', 'force-compat']);
|
|
72
|
+
export const LiveKitNetworkModeSchema = z.enum(['lan', 'internet-auto', 'internet-manual']);
|
|
73
|
+
export const RealtimeSessionResponseSchema = z.object({
|
|
74
|
+
scope: RealtimeScopeSchema,
|
|
75
|
+
direction: RealtimeSessionDirectionSchema,
|
|
76
|
+
preferredTransport: RealtimeTransportKindSchema,
|
|
77
|
+
effectiveTransportPolicy: RealtimeTransportPolicySchema,
|
|
78
|
+
selectionReason: z.enum([
|
|
79
|
+
'client-override',
|
|
80
|
+
'server-policy',
|
|
81
|
+
'bridge-unhealthy',
|
|
82
|
+
'livekit-disabled',
|
|
83
|
+
'runtime-unavailable',
|
|
84
|
+
'default-livekit',
|
|
85
|
+
]),
|
|
86
|
+
forcedCompatibilityMode: z.boolean(),
|
|
87
|
+
offers: z.array(RealtimeTransportOfferSchema).min(1),
|
|
88
|
+
connectivityHints: RealtimeConnectivityHintsSchema,
|
|
89
|
+
});
|
|
90
|
+
export const RealtimeSettingsSchema = z.object({
|
|
91
|
+
publicWsUrl: z.string().url().nullable().optional(),
|
|
92
|
+
transportPolicy: RealtimeTransportPolicySchema.optional(),
|
|
93
|
+
networkMode: LiveKitNetworkModeSchema.optional(),
|
|
94
|
+
nodeIp: z.string().nullable().optional(),
|
|
95
|
+
});
|
|
96
|
+
export const RealtimeCredentialSourceSchema = z.enum(['managed-file', 'environment-override', 'missing']);
|
|
97
|
+
export const RealtimeCredentialStatusSchema = z.object({
|
|
98
|
+
initialized: z.boolean(),
|
|
99
|
+
source: RealtimeCredentialSourceSchema,
|
|
100
|
+
filePath: z.string().nullable(),
|
|
101
|
+
apiKeyPreview: z.string().nullable(),
|
|
102
|
+
createdAt: z.string().nullable(),
|
|
103
|
+
rotatedAt: z.string().nullable(),
|
|
104
|
+
});
|
|
105
|
+
export const RealtimeSettingsRuntimeSchema = z.object({
|
|
106
|
+
liveKitEnabled: z.boolean(),
|
|
107
|
+
connectivityHints: RealtimeConnectivityHintsSchema,
|
|
108
|
+
radioReceiveTransport: RealtimeTransportKindSchema,
|
|
109
|
+
radioBridgeHealthy: z.boolean(),
|
|
110
|
+
radioBridgeIssueCode: RealtimeConnectivityErrorCodeSchema.nullable(),
|
|
111
|
+
credentialStatus: RealtimeCredentialStatusSchema,
|
|
112
|
+
});
|
|
113
|
+
export const RealtimeSettingsResponseDataSchema = RealtimeSettingsSchema.extend({
|
|
114
|
+
runtime: RealtimeSettingsRuntimeSchema.optional(),
|
|
115
|
+
});
|
|
116
|
+
export const RealtimeSourceStatsSchema = z.object({
|
|
117
|
+
latencyMs: z.number(),
|
|
118
|
+
bufferFillPercent: z.number(),
|
|
119
|
+
isActive: z.boolean(),
|
|
120
|
+
audioLevel: z.number().optional(),
|
|
121
|
+
droppedSamples: z.number().optional(),
|
|
122
|
+
sampleRate: z.number(),
|
|
123
|
+
});
|
|
124
|
+
export const RealtimeStatsRequestSchema = z.object({
|
|
125
|
+
scope: RealtimeScopeSchema,
|
|
126
|
+
previewSessionId: z.string().optional(),
|
|
127
|
+
});
|
|
128
|
+
export const RealtimeStatsResponseSchema = z.object({
|
|
129
|
+
scope: RealtimeScopeSchema,
|
|
130
|
+
previewSessionId: z.string().nullable().optional(),
|
|
131
|
+
source: RealtimeSourceStatsSchema.nullable(),
|
|
132
|
+
transport: RealtimeTransportKindSchema.nullable().optional(),
|
|
133
|
+
});
|
|
134
|
+
export const RealtimeVoiceTxMetricWindowSchema = z.object({
|
|
135
|
+
current: z.number().nullable(),
|
|
136
|
+
rolling: z.number().nullable(),
|
|
137
|
+
peak: z.number().nullable(),
|
|
138
|
+
});
|
|
139
|
+
export const RealtimeVoiceTxBottleneckStageSchema = z.enum([
|
|
140
|
+
'client-capture',
|
|
141
|
+
'transport',
|
|
142
|
+
'server-ingress',
|
|
143
|
+
'server-queue',
|
|
144
|
+
'server-output',
|
|
145
|
+
]);
|
|
146
|
+
export const RealtimeVoiceTxSummarySchema = z.object({
|
|
147
|
+
active: z.boolean(),
|
|
148
|
+
transport: RealtimeTransportKindSchema.nullable(),
|
|
149
|
+
bottleneckStage: RealtimeVoiceTxBottleneckStageSchema.nullable(),
|
|
150
|
+
startedAt: z.number().nullable(),
|
|
151
|
+
updatedAt: z.number().nullable(),
|
|
152
|
+
clientId: z.string().nullable(),
|
|
153
|
+
label: z.string().nullable(),
|
|
154
|
+
});
|
|
155
|
+
export const RealtimeVoiceTxTransportStatsSchema = z.object({
|
|
156
|
+
receivedFrames: z.number().int().nonnegative(),
|
|
157
|
+
sequenceGaps: z.number().int().nonnegative(),
|
|
158
|
+
lastSequence: z.number().int().nullable(),
|
|
159
|
+
clientToServerMs: RealtimeVoiceTxMetricWindowSchema,
|
|
160
|
+
});
|
|
161
|
+
export const RealtimeVoiceTxServerIngressStatsSchema = z.object({
|
|
162
|
+
frameIntervalMs: RealtimeVoiceTxMetricWindowSchema,
|
|
163
|
+
queueDepthFrames: z.number().int().nonnegative(),
|
|
164
|
+
queuedAudioMs: z.number().nonnegative(),
|
|
165
|
+
droppedFrames: z.number().int().nonnegative(),
|
|
166
|
+
});
|
|
167
|
+
export const RealtimeVoiceTxServerOutputStatsSchema = z.object({
|
|
168
|
+
resampleMs: RealtimeVoiceTxMetricWindowSchema,
|
|
169
|
+
queueWaitMs: RealtimeVoiceTxMetricWindowSchema,
|
|
170
|
+
writeMs: RealtimeVoiceTxMetricWindowSchema,
|
|
171
|
+
endToEndMs: RealtimeVoiceTxMetricWindowSchema,
|
|
172
|
+
outputBufferedMs: RealtimeVoiceTxMetricWindowSchema,
|
|
173
|
+
outputSampleRate: z.number().nullable(),
|
|
174
|
+
outputBufferSize: z.number().nullable(),
|
|
175
|
+
writeFailures: z.number().int().nonnegative(),
|
|
176
|
+
});
|
|
177
|
+
export const RealtimeVoiceTxStatsResponseSchema = z.object({
|
|
178
|
+
scope: RealtimeScopeSchema,
|
|
179
|
+
summary: RealtimeVoiceTxSummarySchema,
|
|
180
|
+
transport: RealtimeVoiceTxTransportStatsSchema,
|
|
181
|
+
serverIngress: RealtimeVoiceTxServerIngressStatsSchema,
|
|
182
|
+
serverOutput: RealtimeVoiceTxServerOutputStatsSchema,
|
|
183
|
+
});
|
|
184
|
+
//# sourceMappingURL=realtime.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime.schema.js","sourceRoot":"","sources":["../../src/schema/realtime.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* rigctld-compatible TCP bridge configuration.
|
|
4
|
+
*
|
|
5
|
+
* Disabled by default — opening a TCP port that accepts CAT control without
|
|
6
|
+
* authentication is a sensitive default, so users must opt in.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RigctldBridgeConfigSchema: z.ZodObject<{
|
|
9
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
10
|
+
bindAddress: z.ZodDefault<z.ZodString>;
|
|
11
|
+
port: z.ZodDefault<z.ZodNumber>;
|
|
12
|
+
/**
|
|
13
|
+
* When true (default), the bridge rejects every write command
|
|
14
|
+
* (`F`/`M`/`T`/`S`/`L`/`set_*`) with `RPRT -11` and only allows reads.
|
|
15
|
+
* Covers the safe "N1MM records QSOs while the operator tunes manually"
|
|
16
|
+
* workflow. Disable only when you need software like N1MM / WSJT-X to
|
|
17
|
+
* actively control the rig (set frequency, PTT, split).
|
|
18
|
+
*/
|
|
19
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
port: number;
|
|
23
|
+
bindAddress: string;
|
|
24
|
+
readOnly: boolean;
|
|
25
|
+
}, {
|
|
26
|
+
enabled?: boolean | undefined;
|
|
27
|
+
port?: number | undefined;
|
|
28
|
+
bindAddress?: string | undefined;
|
|
29
|
+
readOnly?: boolean | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
export type RigctldBridgeConfig = z.infer<typeof RigctldBridgeConfigSchema>;
|
|
32
|
+
export declare const DEFAULT_RIGCTLD_BRIDGE_CONFIG: RigctldBridgeConfig;
|
|
33
|
+
/** Per-connection client snapshot used by the status API and UI. */
|
|
34
|
+
export declare const RigctldClientSnapshotSchema: z.ZodObject<{
|
|
35
|
+
id: z.ZodNumber;
|
|
36
|
+
peer: z.ZodString;
|
|
37
|
+
connectedAt: z.ZodNumber;
|
|
38
|
+
lastCommand: z.ZodOptional<z.ZodString>;
|
|
39
|
+
lastCommandAt: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
id: number;
|
|
42
|
+
peer: string;
|
|
43
|
+
connectedAt: number;
|
|
44
|
+
lastCommand?: string | undefined;
|
|
45
|
+
lastCommandAt?: number | undefined;
|
|
46
|
+
}, {
|
|
47
|
+
id: number;
|
|
48
|
+
peer: string;
|
|
49
|
+
connectedAt: number;
|
|
50
|
+
lastCommand?: string | undefined;
|
|
51
|
+
lastCommandAt?: number | undefined;
|
|
52
|
+
}>;
|
|
53
|
+
export type RigctldClientSnapshot = z.infer<typeof RigctldClientSnapshotSchema>;
|
|
54
|
+
export declare const RigctldStatusSchema: z.ZodObject<{
|
|
55
|
+
config: z.ZodObject<{
|
|
56
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
+
bindAddress: z.ZodDefault<z.ZodString>;
|
|
58
|
+
port: z.ZodDefault<z.ZodNumber>;
|
|
59
|
+
/**
|
|
60
|
+
* When true (default), the bridge rejects every write command
|
|
61
|
+
* (`F`/`M`/`T`/`S`/`L`/`set_*`) with `RPRT -11` and only allows reads.
|
|
62
|
+
* Covers the safe "N1MM records QSOs while the operator tunes manually"
|
|
63
|
+
* workflow. Disable only when you need software like N1MM / WSJT-X to
|
|
64
|
+
* actively control the rig (set frequency, PTT, split).
|
|
65
|
+
*/
|
|
66
|
+
readOnly: z.ZodDefault<z.ZodBoolean>;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
enabled: boolean;
|
|
69
|
+
port: number;
|
|
70
|
+
bindAddress: string;
|
|
71
|
+
readOnly: boolean;
|
|
72
|
+
}, {
|
|
73
|
+
enabled?: boolean | undefined;
|
|
74
|
+
port?: number | undefined;
|
|
75
|
+
bindAddress?: string | undefined;
|
|
76
|
+
readOnly?: boolean | undefined;
|
|
77
|
+
}>;
|
|
78
|
+
running: z.ZodBoolean;
|
|
79
|
+
address: z.ZodOptional<z.ZodObject<{
|
|
80
|
+
host: z.ZodString;
|
|
81
|
+
port: z.ZodNumber;
|
|
82
|
+
}, "strip", z.ZodTypeAny, {
|
|
83
|
+
host: string;
|
|
84
|
+
port: number;
|
|
85
|
+
}, {
|
|
86
|
+
host: string;
|
|
87
|
+
port: number;
|
|
88
|
+
}>>;
|
|
89
|
+
clients: z.ZodArray<z.ZodObject<{
|
|
90
|
+
id: z.ZodNumber;
|
|
91
|
+
peer: z.ZodString;
|
|
92
|
+
connectedAt: z.ZodNumber;
|
|
93
|
+
lastCommand: z.ZodOptional<z.ZodString>;
|
|
94
|
+
lastCommandAt: z.ZodOptional<z.ZodNumber>;
|
|
95
|
+
}, "strip", z.ZodTypeAny, {
|
|
96
|
+
id: number;
|
|
97
|
+
peer: string;
|
|
98
|
+
connectedAt: number;
|
|
99
|
+
lastCommand?: string | undefined;
|
|
100
|
+
lastCommandAt?: number | undefined;
|
|
101
|
+
}, {
|
|
102
|
+
id: number;
|
|
103
|
+
peer: string;
|
|
104
|
+
connectedAt: number;
|
|
105
|
+
lastCommand?: string | undefined;
|
|
106
|
+
lastCommandAt?: number | undefined;
|
|
107
|
+
}>, "many">;
|
|
108
|
+
error: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, "strip", z.ZodTypeAny, {
|
|
110
|
+
config: {
|
|
111
|
+
enabled: boolean;
|
|
112
|
+
port: number;
|
|
113
|
+
bindAddress: string;
|
|
114
|
+
readOnly: boolean;
|
|
115
|
+
};
|
|
116
|
+
running: boolean;
|
|
117
|
+
clients: {
|
|
118
|
+
id: number;
|
|
119
|
+
peer: string;
|
|
120
|
+
connectedAt: number;
|
|
121
|
+
lastCommand?: string | undefined;
|
|
122
|
+
lastCommandAt?: number | undefined;
|
|
123
|
+
}[];
|
|
124
|
+
error?: string | undefined;
|
|
125
|
+
address?: {
|
|
126
|
+
host: string;
|
|
127
|
+
port: number;
|
|
128
|
+
} | undefined;
|
|
129
|
+
}, {
|
|
130
|
+
config: {
|
|
131
|
+
enabled?: boolean | undefined;
|
|
132
|
+
port?: number | undefined;
|
|
133
|
+
bindAddress?: string | undefined;
|
|
134
|
+
readOnly?: boolean | undefined;
|
|
135
|
+
};
|
|
136
|
+
running: boolean;
|
|
137
|
+
clients: {
|
|
138
|
+
id: number;
|
|
139
|
+
peer: string;
|
|
140
|
+
connectedAt: number;
|
|
141
|
+
lastCommand?: string | undefined;
|
|
142
|
+
lastCommandAt?: number | undefined;
|
|
143
|
+
}[];
|
|
144
|
+
error?: string | undefined;
|
|
145
|
+
address?: {
|
|
146
|
+
host: string;
|
|
147
|
+
port: number;
|
|
148
|
+
} | undefined;
|
|
149
|
+
}>;
|
|
150
|
+
export type RigctldStatus = z.infer<typeof RigctldStatusSchema>;
|
|
151
|
+
//# sourceMappingURL=rigctld.schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rigctld.schema.d.ts","sourceRoot":"","sources":["../../src/schema/rigctld.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;IAIpC;;;;;;OAMG;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,6BAA6B,EAAE,mBAK3C,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;EAMtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,mBAAmB;;;;;QA9B9B;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* rigctld-compatible TCP bridge configuration.
|
|
4
|
+
*
|
|
5
|
+
* Disabled by default — opening a TCP port that accepts CAT control without
|
|
6
|
+
* authentication is a sensitive default, so users must opt in.
|
|
7
|
+
*/
|
|
8
|
+
export const RigctldBridgeConfigSchema = z.object({
|
|
9
|
+
enabled: z.boolean().default(false),
|
|
10
|
+
bindAddress: z.string().default('0.0.0.0'),
|
|
11
|
+
port: z.number().int().min(1).max(65535).default(4532),
|
|
12
|
+
/**
|
|
13
|
+
* When true (default), the bridge rejects every write command
|
|
14
|
+
* (`F`/`M`/`T`/`S`/`L`/`set_*`) with `RPRT -11` and only allows reads.
|
|
15
|
+
* Covers the safe "N1MM records QSOs while the operator tunes manually"
|
|
16
|
+
* workflow. Disable only when you need software like N1MM / WSJT-X to
|
|
17
|
+
* actively control the rig (set frequency, PTT, split).
|
|
18
|
+
*/
|
|
19
|
+
readOnly: z.boolean().default(true),
|
|
20
|
+
});
|
|
21
|
+
export const DEFAULT_RIGCTLD_BRIDGE_CONFIG = {
|
|
22
|
+
enabled: false,
|
|
23
|
+
bindAddress: '0.0.0.0',
|
|
24
|
+
port: 4532,
|
|
25
|
+
readOnly: true,
|
|
26
|
+
};
|
|
27
|
+
/** Per-connection client snapshot used by the status API and UI. */
|
|
28
|
+
export const RigctldClientSnapshotSchema = z.object({
|
|
29
|
+
id: z.number().int(),
|
|
30
|
+
peer: z.string(),
|
|
31
|
+
connectedAt: z.number().int(),
|
|
32
|
+
lastCommand: z.string().optional(),
|
|
33
|
+
lastCommandAt: z.number().int().optional(),
|
|
34
|
+
});
|
|
35
|
+
export const RigctldStatusSchema = z.object({
|
|
36
|
+
config: RigctldBridgeConfigSchema,
|
|
37
|
+
running: z.boolean(),
|
|
38
|
+
address: z.object({ host: z.string(), port: z.number().int() }).optional(),
|
|
39
|
+
clients: z.array(RigctldClientSnapshotSchema),
|
|
40
|
+
error: z.string().optional(),
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=rigctld.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rigctld.schema.js","sourceRoot":"","sources":["../../src/schema/rigctld.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtD;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACpC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,yBAAyB;IACjC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 服务端推送的文本消息 key 枚举
|
|
3
|
+
* 前端根据 key 查找对应翻译,兜底显示 title/text 原始值
|
|
4
|
+
*/
|
|
5
|
+
export declare enum ServerMessageKey {
|
|
6
|
+
/** 时序告警:操作员自动决策可能赶不上此发射时隙的编码 */
|
|
7
|
+
TIMING_ALERT = "timingAlert",
|
|
8
|
+
/** 电台已连接 */
|
|
9
|
+
RADIO_CONNECTED = "radioConnected",
|
|
10
|
+
/** QSO 已记录 */
|
|
11
|
+
QSO_LOGGED = "qsoLogged",
|
|
12
|
+
/** QSO 已更新 */
|
|
13
|
+
QSO_UPDATED = "qsoUpdated",
|
|
14
|
+
/** 实时语音连接异常 */
|
|
15
|
+
REALTIME_CONNECTIVITY_WARNING = "realtimeConnectivityWarning",
|
|
16
|
+
/** 服务端实时语音桥接异常 */
|
|
17
|
+
REALTIME_BRIDGE_DOWN = "realtimeBridgeDown",
|
|
18
|
+
/** 实时语音链路无音频数据 */
|
|
19
|
+
REALTIME_NO_AUDIO = "realtimeNoAudio"
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=server-message-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-message-keys.d.ts","sourceRoot":"","sources":["../../src/schema/server-message-keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,gBAAgB;IAC1B,gCAAgC;IAChC,YAAY,gBAAgB;IAE5B,YAAY;IACZ,eAAe,mBAAmB;IAElC,cAAc;IACd,UAAU,cAAc;IAExB,cAAc;IACd,WAAW,eAAe;IAE1B,eAAe;IACf,6BAA6B,gCAAgC;IAE7D,kBAAkB;IAClB,oBAAoB,uBAAuB;IAE3C,kBAAkB;IAClB,iBAAiB,oBAAoB;CACtC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 服务端推送的文本消息 key 枚举
|
|
3
|
+
* 前端根据 key 查找对应翻译,兜底显示 title/text 原始值
|
|
4
|
+
*/
|
|
5
|
+
export var ServerMessageKey;
|
|
6
|
+
(function (ServerMessageKey) {
|
|
7
|
+
/** 时序告警:操作员自动决策可能赶不上此发射时隙的编码 */
|
|
8
|
+
ServerMessageKey["TIMING_ALERT"] = "timingAlert";
|
|
9
|
+
/** 电台已连接 */
|
|
10
|
+
ServerMessageKey["RADIO_CONNECTED"] = "radioConnected";
|
|
11
|
+
/** QSO 已记录 */
|
|
12
|
+
ServerMessageKey["QSO_LOGGED"] = "qsoLogged";
|
|
13
|
+
/** QSO 已更新 */
|
|
14
|
+
ServerMessageKey["QSO_UPDATED"] = "qsoUpdated";
|
|
15
|
+
/** 实时语音连接异常 */
|
|
16
|
+
ServerMessageKey["REALTIME_CONNECTIVITY_WARNING"] = "realtimeConnectivityWarning";
|
|
17
|
+
/** 服务端实时语音桥接异常 */
|
|
18
|
+
ServerMessageKey["REALTIME_BRIDGE_DOWN"] = "realtimeBridgeDown";
|
|
19
|
+
/** 实时语音链路无音频数据 */
|
|
20
|
+
ServerMessageKey["REALTIME_NO_AUDIO"] = "realtimeNoAudio";
|
|
21
|
+
})(ServerMessageKey || (ServerMessageKey = {}));
|
|
22
|
+
//# sourceMappingURL=server-message-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-message-keys.js","sourceRoot":"","sources":["../../src/schema/server-message-keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAN,IAAY,gBAqBX;AArBD,WAAY,gBAAgB;IAC1B,gCAAgC;IAChC,gDAA4B,CAAA;IAE5B,YAAY;IACZ,sDAAkC,CAAA;IAElC,cAAc;IACd,4CAAwB,CAAA;IAExB,cAAc;IACd,8CAA0B,CAAA;IAE1B,eAAe;IACf,iFAA6D,CAAA;IAE7D,kBAAkB;IAClB,+DAA2C,CAAA;IAE3C,kBAAkB;IAClB,yDAAqC,CAAA;AACvC,CAAC,EArBW,gBAAgB,KAAhB,gBAAgB,QAqB3B"}
|