@tx5dr/contracts 2.0.0 → 2.5.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 (138) hide show
  1. package/dist/index.d.ts +4 -1
  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__/assisted-queue.schema.test.js +1 -0
  6. package/dist/schema/__tests__/assisted-queue.schema.test.js.map +1 -1
  7. package/dist/schema/__tests__/meter.schema.test.d.ts +2 -0
  8. package/dist/schema/__tests__/meter.schema.test.d.ts.map +1 -0
  9. package/dist/schema/__tests__/meter.schema.test.js +27 -0
  10. package/dist/schema/__tests__/meter.schema.test.js.map +1 -0
  11. package/dist/schema/__tests__/operator-context-report.schema.test.d.ts +2 -0
  12. package/dist/schema/__tests__/operator-context-report.schema.test.d.ts.map +1 -0
  13. package/dist/schema/__tests__/operator-context-report.schema.test.js +70 -0
  14. package/dist/schema/__tests__/operator-context-report.schema.test.js.map +1 -0
  15. package/dist/schema/__tests__/plugin-market.schema.test.js +107 -3
  16. package/dist/schema/__tests__/plugin-market.schema.test.js.map +1 -1
  17. package/dist/schema/__tests__/qso.schema.test.d.ts +2 -0
  18. package/dist/schema/__tests__/qso.schema.test.d.ts.map +1 -0
  19. package/dist/schema/__tests__/qso.schema.test.js +70 -0
  20. package/dist/schema/__tests__/qso.schema.test.js.map +1 -0
  21. package/dist/schema/__tests__/radio-power-support.test.js +4 -1
  22. package/dist/schema/__tests__/radio-power-support.test.js.map +1 -1
  23. package/dist/schema/__tests__/radio.schema.test.js +52 -1
  24. package/dist/schema/__tests__/radio.schema.test.js.map +1 -1
  25. package/dist/schema/__tests__/remote-access.schema.test.js +1 -1
  26. package/dist/schema/__tests__/remote-access.schema.test.js.map +1 -1
  27. package/dist/schema/__tests__/spectrum.schema.test.d.ts +2 -0
  28. package/dist/schema/__tests__/spectrum.schema.test.d.ts.map +1 -0
  29. package/dist/schema/__tests__/spectrum.schema.test.js +107 -0
  30. package/dist/schema/__tests__/spectrum.schema.test.js.map +1 -0
  31. package/dist/schema/__tests__/strategy-transmission.schema.test.d.ts +2 -0
  32. package/dist/schema/__tests__/strategy-transmission.schema.test.d.ts.map +1 -0
  33. package/dist/schema/__tests__/strategy-transmission.schema.test.js +95 -0
  34. package/dist/schema/__tests__/strategy-transmission.schema.test.js.map +1 -0
  35. package/dist/schema/api-response.schema.d.ts +235 -0
  36. package/dist/schema/api-response.schema.d.ts.map +1 -1
  37. package/dist/schema/api-response.schema.js +9 -0
  38. package/dist/schema/api-response.schema.js.map +1 -1
  39. package/dist/schema/auth.schema.d.ts +2 -2
  40. package/dist/schema/cpu-profile.schema.d.ts +2 -2
  41. package/dist/schema/device-ui.schema.d.ts +10 -10
  42. package/dist/schema/image-radio.schema.d.ts +2597 -0
  43. package/dist/schema/image-radio.schema.d.ts.map +1 -0
  44. package/dist/schema/image-radio.schema.js +283 -0
  45. package/dist/schema/image-radio.schema.js.map +1 -0
  46. package/dist/schema/logbook.schema.d.ts +203 -15
  47. package/dist/schema/logbook.schema.d.ts.map +1 -1
  48. package/dist/schema/logbook.schema.js +1 -0
  49. package/dist/schema/logbook.schema.js.map +1 -1
  50. package/dist/schema/mode.schema.d.ts +2 -0
  51. package/dist/schema/mode.schema.d.ts.map +1 -1
  52. package/dist/schema/mode.schema.js +16 -0
  53. package/dist/schema/mode.schema.js.map +1 -1
  54. package/dist/schema/openwebrx.schema.d.ts +2 -2
  55. package/dist/schema/operator.schema.d.ts +2676 -0
  56. package/dist/schema/operator.schema.d.ts.map +1 -1
  57. package/dist/schema/operator.schema.js +4 -19
  58. package/dist/schema/operator.schema.js.map +1 -1
  59. package/dist/schema/plugin.schema.d.ts +1780 -475
  60. package/dist/schema/plugin.schema.d.ts.map +1 -1
  61. package/dist/schema/plugin.schema.js +108 -12
  62. package/dist/schema/plugin.schema.js.map +1 -1
  63. package/dist/schema/qso.schema.d.ts +239 -1
  64. package/dist/schema/qso.schema.d.ts.map +1 -1
  65. package/dist/schema/qso.schema.js +61 -0
  66. package/dist/schema/qso.schema.js.map +1 -1
  67. package/dist/schema/radio-capability.schema.d.ts +1 -1
  68. package/dist/schema/radio-capability.schema.d.ts.map +1 -1
  69. package/dist/schema/radio-capability.schema.js +1 -0
  70. package/dist/schema/radio-capability.schema.js.map +1 -1
  71. package/dist/schema/radio-power.schema.d.ts +15 -0
  72. package/dist/schema/radio-power.schema.d.ts.map +1 -1
  73. package/dist/schema/radio-profile.schema.d.ts +251 -0
  74. package/dist/schema/radio-profile.schema.d.ts.map +1 -1
  75. package/dist/schema/radio-profile.schema.js +7 -0
  76. package/dist/schema/radio-profile.schema.js.map +1 -1
  77. package/dist/schema/radio.schema.d.ts +174 -3
  78. package/dist/schema/radio.schema.d.ts.map +1 -1
  79. package/dist/schema/radio.schema.js +31 -2
  80. package/dist/schema/radio.schema.js.map +1 -1
  81. package/dist/schema/rigctld.schema.d.ts +6 -6
  82. package/dist/schema/slot-info.schema.d.ts +13 -0
  83. package/dist/schema/slot-info.schema.d.ts.map +1 -1
  84. package/dist/schema/slot-info.schema.js +2 -1
  85. package/dist/schema/slot-info.schema.js.map +1 -1
  86. package/dist/schema/spectrum-config.schema.d.ts +638 -0
  87. package/dist/schema/spectrum-config.schema.d.ts.map +1 -0
  88. package/dist/schema/spectrum-config.schema.js +129 -0
  89. package/dist/schema/spectrum-config.schema.js.map +1 -0
  90. package/dist/schema/spectrum.schema.d.ts +1313 -20
  91. package/dist/schema/spectrum.schema.d.ts.map +1 -1
  92. package/dist/schema/spectrum.schema.js +72 -0
  93. package/dist/schema/spectrum.schema.js.map +1 -1
  94. package/dist/schema/transmission.schema.d.ts +7 -0
  95. package/dist/schema/transmission.schema.d.ts.map +1 -1
  96. package/dist/schema/tx-audio-input.schema.d.ts +8 -0
  97. package/dist/schema/tx-audio-input.schema.d.ts.map +1 -0
  98. package/dist/schema/tx-audio-input.schema.js +19 -0
  99. package/dist/schema/tx-audio-input.schema.js.map +1 -0
  100. package/dist/schema/voice.schema.d.ts +1 -1
  101. package/dist/schema/voice.schema.d.ts.map +1 -1
  102. package/dist/schema/voice.schema.js +1 -1
  103. package/dist/schema/voice.schema.js.map +1 -1
  104. package/dist/schema/websocket.schema.d.ts +27480 -2525
  105. package/dist/schema/websocket.schema.d.ts.map +1 -1
  106. package/dist/schema/websocket.schema.js +298 -11
  107. package/dist/schema/websocket.schema.js.map +1 -1
  108. package/package.json +1 -1
  109. package/src/index.ts +4 -0
  110. package/src/schema/__tests__/assisted-queue.schema.test.ts +1 -0
  111. package/src/schema/__tests__/meter.schema.test.ts +28 -0
  112. package/src/schema/__tests__/operator-context-report.schema.test.ts +77 -0
  113. package/src/schema/__tests__/plugin-market.schema.test.ts +116 -2
  114. package/src/schema/__tests__/qso.schema.test.ts +91 -0
  115. package/src/schema/__tests__/radio-power-support.test.ts +4 -1
  116. package/src/schema/__tests__/radio.schema.test.ts +60 -1
  117. package/src/schema/__tests__/remote-access.schema.test.ts +1 -1
  118. package/src/schema/__tests__/spectrum.schema.test.ts +119 -0
  119. package/src/schema/__tests__/strategy-transmission.schema.test.ts +106 -0
  120. package/src/schema/api-response.schema.ts +11 -0
  121. package/src/schema/image-radio.schema.ts +342 -0
  122. package/src/schema/logbook.schema.ts +1 -0
  123. package/src/schema/mode.schema.ts +16 -0
  124. package/src/schema/operator.schema.ts +4 -19
  125. package/src/schema/plugin.schema.ts +119 -13
  126. package/src/schema/qso.schema.ts +71 -0
  127. package/src/schema/radio-capability.schema.ts +1 -0
  128. package/src/schema/radio-profile.schema.ts +7 -0
  129. package/src/schema/radio.schema.ts +35 -2
  130. package/src/schema/slot-info.schema.ts +2 -1
  131. package/src/schema/spectrum-config.schema.ts +156 -0
  132. package/src/schema/spectrum.schema.ts +89 -0
  133. package/src/schema/tx-audio-input.schema.ts +22 -0
  134. package/src/schema/voice.schema.ts +1 -1
  135. package/src/schema/websocket.schema.ts +383 -12
  136. package/test/image-radio-schema.test.ts +107 -0
  137. package/test/plugin-slot-schema.test.ts +31 -0
  138. package/CLAUDE.md +0 -41
@@ -0,0 +1,129 @@
1
+ import { z } from 'zod';
2
+ export const SpectrumPresetIdSchema = z.enum(['responsive', 'balanced', 'fine']);
3
+ export const SpectrumPresetSchema = z.enum(['responsive', 'balanced', 'fine', 'custom']);
4
+ export const SpectrumWindowFunctionSchema = z.enum([
5
+ 'hann',
6
+ 'hamming',
7
+ 'blackman',
8
+ 'blackmanHarris',
9
+ 'none',
10
+ ]);
11
+ export const SpectrumFftSizeSchema = z.union([
12
+ z.literal(1024),
13
+ z.literal(2048),
14
+ z.literal(4096),
15
+ z.literal(8192),
16
+ z.literal(16384),
17
+ ]);
18
+ export const SpectrumTargetSampleRateSchema = z.union([
19
+ z.literal(3000),
20
+ z.literal(4000),
21
+ z.literal(6000),
22
+ z.literal(8000),
23
+ z.literal(12000),
24
+ ]);
25
+ export const SpectrumCustomSettingsSchema = z.object({
26
+ analysisIntervalMs: z.number().int().min(50).max(1000),
27
+ fftSize: SpectrumFftSizeSchema,
28
+ targetSampleRate: SpectrumTargetSampleRateSchema,
29
+ windowFunction: SpectrumWindowFunctionSchema,
30
+ haloReduce: z.boolean(),
31
+ });
32
+ export const SpectrumRenderFrequencyRangeSchema = z.object({
33
+ min: z.number().finite(),
34
+ max: z.number().finite(),
35
+ }).refine((range) => range.max > range.min, {
36
+ message: 'Spectrum frequency range maximum must be greater than minimum',
37
+ path: ['max'],
38
+ });
39
+ export const SpectrumRenderConfigSchema = z.object({
40
+ preset: SpectrumPresetSchema,
41
+ revision: z.number().int().nonnegative(),
42
+ analysisIntervalMs: z.number().int().positive(),
43
+ frameRateHz: z.number().positive(),
44
+ fftSize: z.number().int().positive(),
45
+ targetSampleRate: z.number().int().positive(),
46
+ fftWindowDurationMs: z.number().positive(),
47
+ frequencyResolutionHz: z.number().positive(),
48
+ frequencyRange: SpectrumRenderFrequencyRangeSchema,
49
+ displayBinCount: z.number().int().positive(),
50
+ windowFunction: SpectrumWindowFunctionSchema,
51
+ haloReduce: z.boolean(),
52
+ customSettings: SpectrumCustomSettingsSchema.optional(),
53
+ });
54
+ export const TciIqSampleRateSchema = z.number().int().positive();
55
+ export const TciSpectrumSettingsSchema = z.object({
56
+ fftSize: z.union([
57
+ z.literal(4096), z.literal(8192), z.literal(16384), z.literal(32768), z.literal(65536),
58
+ ]),
59
+ displayBinCount: z.number().int().min(1024).max(16384),
60
+ analysisIntervalMs: z.number().int().min(20).max(1000),
61
+ });
62
+ export const TciSpectrumSettingsResponseSchema = z.object({
63
+ success: z.boolean(),
64
+ settings: TciSpectrumSettingsSchema,
65
+ });
66
+ export const TciIqSpectrumSettingsResponseSchema = z.object({
67
+ success: z.boolean(),
68
+ configuredSampleRate: TciIqSampleRateSchema.nullable(),
69
+ appliedSampleRate: TciIqSampleRateSchema.nullable(),
70
+ supportedSampleRates: z.array(TciIqSampleRateSchema),
71
+ });
72
+ export const SpectrumPresetDefinitionSchema = SpectrumRenderConfigSchema.omit({
73
+ revision: true,
74
+ });
75
+ export const SPECTRUM_PRESET_DEFINITIONS = {
76
+ responsive: {
77
+ preset: 'responsive',
78
+ analysisIntervalMs: 100,
79
+ frameRateHz: 10,
80
+ fftSize: 2048,
81
+ targetSampleRate: 6000,
82
+ fftWindowDurationMs: (2048 / 6000) * 1000,
83
+ frequencyResolutionHz: 6000 / 2048,
84
+ frequencyRange: { min: 0, max: 3000 },
85
+ displayBinCount: 1025,
86
+ windowFunction: 'blackmanHarris',
87
+ haloReduce: false,
88
+ },
89
+ balanced: {
90
+ preset: 'balanced',
91
+ analysisIntervalMs: 150,
92
+ frameRateHz: 1000 / 150,
93
+ fftSize: 8192,
94
+ targetSampleRate: 6000,
95
+ fftWindowDurationMs: (8192 / 6000) * 1000,
96
+ frequencyResolutionHz: 6000 / 8192,
97
+ frequencyRange: { min: 0, max: 3000 },
98
+ displayBinCount: 4097,
99
+ windowFunction: 'blackmanHarris',
100
+ haloReduce: false,
101
+ },
102
+ fine: {
103
+ preset: 'fine',
104
+ analysisIntervalMs: 200,
105
+ frameRateHz: 5,
106
+ fftSize: 16384,
107
+ targetSampleRate: 6000,
108
+ fftWindowDurationMs: (16384 / 6000) * 1000,
109
+ frequencyResolutionHz: 6000 / 16384,
110
+ frequencyRange: { min: 0, max: 3000 },
111
+ displayBinCount: 8193,
112
+ windowFunction: 'blackmanHarris',
113
+ haloReduce: false,
114
+ },
115
+ };
116
+ export function getSpectrumPresetDefinition(preset) {
117
+ return { ...SPECTRUM_PRESET_DEFINITIONS[preset] };
118
+ }
119
+ export const SpectrumSettingsUpdateRequestSchema = z.discriminatedUnion('preset', [
120
+ z.object({ preset: SpectrumPresetIdSchema }),
121
+ z.object({ preset: z.literal('custom'), settings: SpectrumCustomSettingsSchema }),
122
+ ]);
123
+ export const SpectrumSettingsResponseSchema = z.object({
124
+ success: z.boolean(),
125
+ message: z.string().optional(),
126
+ currentSettings: SpectrumRenderConfigSchema,
127
+ presets: z.array(SpectrumPresetDefinitionSchema),
128
+ });
129
+ //# sourceMappingURL=spectrum-config.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spectrum-config.schema.js","sourceRoot":"","sources":["../../src/schema/spectrum-config.schema.ts"],"names":[],"mappings":"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"}