wsjtx-lib 1.2.5 → 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 (36) hide show
  1. package/dist/src/index.d.ts +15 -163
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +89 -290
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/types.d.ts +32 -170
  6. package/dist/src/types.d.ts.map +1 -1
  7. package/dist/src/types.js +3 -78
  8. package/dist/src/types.js.map +1 -1
  9. package/dist/test/wsjtx.basic.test.d.ts +3 -2
  10. package/dist/test/wsjtx.basic.test.d.ts.map +1 -1
  11. package/dist/test/wsjtx.basic.test.js +63 -200
  12. package/dist/test/wsjtx.basic.test.js.map +1 -1
  13. package/dist/test/wsjtx.test.d.ts +16 -7
  14. package/dist/test/wsjtx.test.d.ts.map +1 -1
  15. package/dist/test/wsjtx.test.js +275 -562
  16. package/dist/test/wsjtx.test.js.map +1 -1
  17. package/package.json +1 -1
  18. package/prebuilds/darwin-arm64/build-info.json +1 -1
  19. package/prebuilds/darwin-arm64/libfftw3f.3.dylib +0 -0
  20. package/prebuilds/darwin-arm64/libfftw3f_threads.3.dylib +0 -0
  21. package/prebuilds/darwin-arm64/libwsjtx_core.dylib +0 -0
  22. package/prebuilds/darwin-arm64/wsjtx_lib_nodejs.node +0 -0
  23. package/prebuilds/darwin-x64/build-info.json +1 -1
  24. package/prebuilds/darwin-x64/libfftw3f.3.dylib +0 -0
  25. package/prebuilds/darwin-x64/libfftw3f_threads.3.dylib +0 -0
  26. package/prebuilds/darwin-x64/libwsjtx_core.dylib +0 -0
  27. package/prebuilds/darwin-x64/wsjtx_lib_nodejs.node +0 -0
  28. package/prebuilds/linux-arm64/build-info.json +1 -1
  29. package/prebuilds/linux-arm64/libwsjtx_core.so +0 -0
  30. package/prebuilds/linux-arm64/wsjtx_lib_nodejs.node +0 -0
  31. package/prebuilds/linux-x64/build-info.json +1 -1
  32. package/prebuilds/linux-x64/libwsjtx_core.so +0 -0
  33. package/prebuilds/linux-x64/wsjtx_lib_nodejs.node +0 -0
  34. package/prebuilds/win32-x64/build-info.json +1 -1
  35. package/prebuilds/win32-x64/wsjtx_core.dll +0 -0
  36. package/prebuilds/win32-x64/wsjtx_lib_nodejs.node +0 -0
@@ -1,218 +1,81 @@
1
1
  /**
2
- * WSJTX Library Basic Test Suite
2
+ * Basic smoke tests for the WSJTX library.
3
3
  *
4
- * Tests core functionalities suitable for CI.
4
+ * Kept intentionally fast (<5 s) so they can run in CI on every PR.
5
+ * Heavy round-trip and option-coverage tests live in `wsjtx.test.ts`.
5
6
  */
6
- import { describe, it, beforeEach, afterEach } from 'node:test';
7
+ import { describe, it, beforeEach } from 'node:test';
7
8
  import assert from 'node:assert';
8
- // Import WSJTX library and types
9
9
  import { WSJTXLib, WSJTXMode, WSJTXError } from '../src/index.js';
10
- describe('WSJTX Library Basic Tests', () => {
10
+ describe('WSJTX library smoke', () => {
11
11
  let lib;
12
12
  beforeEach(() => {
13
- lib = new WSJTXLib({
14
- maxThreads: 4,
15
- debug: true
16
- });
13
+ lib = new WSJTXLib({ maxThreads: 4 });
17
14
  });
18
- afterEach(() => {
19
- // Clean up resources if any were created by basic tests
15
+ it('constructs a library instance', () => {
16
+ assert.ok(lib instanceof WSJTXLib);
20
17
  });
21
- describe('Basic Functionality Tests', () => {
22
- it('should create library instance', () => {
23
- assert.ok(lib instanceof WSJTXLib);
24
- });
25
- it('should support custom configuration', () => {
26
- const customLib = new WSJTXLib({
27
- maxThreads: 8,
28
- debug: false
29
- });
30
- assert.ok(customLib instanceof WSJTXLib);
31
- });
32
- it('should return correct FT8 sample rate', () => {
33
- const sampleRate = lib.getSampleRate(WSJTXMode.FT8);
34
- assert.strictEqual(sampleRate, 48000);
35
- });
36
- it('should return correct FT8 transmission duration', () => {
37
- const duration = lib.getTransmissionDuration(WSJTXMode.FT8);
38
- assert.ok(Math.abs(duration - 12.64) < 0.1);
39
- });
40
- it('should correctly check encoding support', () => {
41
- assert.strictEqual(lib.isEncodingSupported(WSJTXMode.FT8), true);
42
- assert.strictEqual(lib.isDecodingSupported(WSJTXMode.FT8), true);
43
- });
44
- it('should return all mode capabilities', () => {
45
- const capabilities = lib.getAllModeCapabilities();
46
- assert.ok(capabilities.length > 0);
47
- assert.ok('mode' in capabilities[0]);
48
- assert.ok('encodingSupported' in capabilities[0]);
49
- assert.ok('decodingSupported' in capabilities[0]);
50
- assert.ok('sampleRate' in capabilities[0]);
51
- assert.ok('duration' in capabilities[0]);
52
- });
18
+ it('reports FT8 sample rate of 48 kHz', () => {
19
+ assert.strictEqual(lib.getSampleRate(WSJTXMode.FT8), 48000);
53
20
  });
54
- describe('Parameter Validation Tests', () => {
55
- it('should validate mode parameter', async () => {
56
- const audioData = new Float32Array(1000);
57
- await assert.rejects(lib.decode(999, audioData, 1000), WSJTXError);
58
- });
59
- it('should validate frequency parameter', async () => {
60
- const audioData = new Float32Array(1000);
61
- await assert.rejects(lib.decode(WSJTXMode.FT8, audioData, -1000), WSJTXError);
62
- });
63
- it('should validate audio data parameter', async () => {
64
- await assert.rejects(lib.decode(WSJTXMode.FT8, new Float32Array(0), 1000), WSJTXError);
65
- });
66
- it('should validate message parameter', async () => {
67
- await assert.rejects(lib.encode(WSJTXMode.FT8, '', 1000), WSJTXError);
68
- await assert.rejects(lib.encode(WSJTXMode.FT8, 'x'.repeat(30), 1000), WSJTXError);
69
- });
21
+ it('reports FT8 supports both encode and decode', () => {
22
+ assert.ok(lib.isEncodingSupported(WSJTXMode.FT8));
23
+ assert.ok(lib.isDecodingSupported(WSJTXMode.FT8));
70
24
  });
71
- describe('Message Queue Tests', () => {
72
- it('should pull messages from queue', () => {
73
- const messages = lib.pullMessages();
74
- assert.ok(Array.isArray(messages));
75
- });
76
- it('should clear message queue', () => {
77
- // Pull messages twice to ensure queue is cleared
78
- lib.pullMessages();
79
- const messages = lib.pullMessages();
80
- assert.strictEqual(messages.length, 0);
81
- });
25
+ it('reports JT65 is decode-only', () => {
26
+ assert.strictEqual(lib.isEncodingSupported(WSJTXMode.JT65), false);
27
+ assert.ok(lib.isDecodingSupported(WSJTXMode.JT65));
82
28
  });
83
- describe('Audio Format Conversion Tests', () => {
84
- it('should convert Float32Array to Int16Array', async () => {
85
- const floatData = new Float32Array([0.0, 0.5, -0.5, 1.0, -1.0]);
86
- const intData = await lib.convertAudioFormat(floatData, 'int16');
87
- assert.ok(intData instanceof Int16Array);
88
- assert.strictEqual(intData.length, floatData.length);
89
- assert.strictEqual(intData[0], 0);
90
- assert.ok(Math.abs(intData[1] - 16384) < 10);
91
- assert.ok(Math.abs(intData[2] + 16384) < 10);
92
- assert.ok(Math.abs(intData[3] - 32767) < 10);
93
- assert.ok(Math.abs(intData[4] + 32767) < 10);
94
- });
95
- it('should convert Int16Array to Float32Array', async () => {
96
- const intData = new Int16Array([0, 16384, -16384, 32767, -32767]);
97
- const floatData = await lib.convertAudioFormat(intData, 'float32');
98
- assert.ok(floatData instanceof Float32Array);
99
- assert.strictEqual(floatData.length, intData.length);
100
- assert.ok(Math.abs(floatData[0] - 0.0) < 0.001);
101
- assert.ok(Math.abs(floatData[1] - 0.5) < 0.001);
102
- assert.ok(Math.abs(floatData[2] + 0.5) < 0.001);
103
- assert.ok(Math.abs(floatData[3] - 1.0) < 0.001);
104
- assert.ok(Math.abs(floatData[4] + 1.0) < 0.001);
105
- });
106
- it('should handle edge cases in conversion', async () => {
107
- // Test empty arrays
108
- const emptyFloat = new Float32Array(0);
109
- const emptyInt = await lib.convertAudioFormat(emptyFloat, 'int16');
110
- assert.strictEqual(emptyInt.length, 0);
111
- const emptyInt16 = new Int16Array(0);
112
- const emptyFloat32 = await lib.convertAudioFormat(emptyInt16, 'float32');
113
- assert.strictEqual(emptyFloat32.length, 0);
114
- });
115
- it('should maintain precision in round-trip conversion', async () => {
116
- const originalData = new Float32Array(1000);
117
- for (let i = 0; i < originalData.length; i++) {
118
- originalData[i] = (Math.random() - 0.5) * 2; // Range -1 to 1
119
- }
120
- // Convert to Int16Array and back
121
- const intData = await lib.convertAudioFormat(originalData, 'int16');
122
- const convertedData = await lib.convertAudioFormat(intData, 'float32');
123
- // Check precision
124
- let maxError = 0;
125
- for (let i = 0; i < originalData.length; i++) {
126
- const error = Math.abs(originalData[i] - convertedData[i]);
127
- maxError = Math.max(maxError, error);
128
- }
129
- // Should be very close (16-bit precision)
130
- assert.ok(maxError < 0.001);
131
- });
132
- it('should handle invalid format parameter', async () => {
133
- const floatData = new Float32Array([0.5]);
134
- await assert.rejects(() => lib.convertAudioFormat(floatData, 'invalid'));
135
- });
29
+ it('numeric mode enum values match expectations', () => {
30
+ assert.strictEqual(WSJTXMode.FT8, 0);
31
+ assert.strictEqual(WSJTXMode.FT4, 1);
32
+ assert.strictEqual(WSJTXMode.JT65JT9, 8);
33
+ assert.strictEqual(WSJTXMode.WSPR, 9);
136
34
  });
137
- describe('TypeScript Type Safety Tests', () => {
138
- it('should provide complete type support for basic types', () => {
139
- const capabilities = lib.getAllModeCapabilities();
140
- assert.ok(capabilities.length > 0);
141
- capabilities.forEach((cap) => {
142
- const modeName = WSJTXMode[cap.mode];
143
- assert.strictEqual(typeof modeName, 'string');
144
- assert.strictEqual(typeof cap.sampleRate, 'number');
145
- assert.strictEqual(typeof cap.duration, 'number');
146
- assert.strictEqual(typeof cap.encodingSupported, 'boolean');
147
- assert.strictEqual(typeof cap.decodingSupported, 'boolean');
148
- });
149
- });
150
- it('should provide type-safe message objects', () => {
151
- const messages = lib.pullMessages();
152
- messages.forEach((msg) => {
153
- assert.strictEqual(typeof msg.text, 'string');
154
- assert.strictEqual(typeof msg.snr, 'number');
155
- assert.strictEqual(typeof msg.deltaTime, 'number');
156
- assert.strictEqual(typeof msg.deltaFrequency, 'number');
157
- });
158
- });
159
- it('should enforce enum constraints', () => {
160
- const validMode = WSJTXMode.FT8;
161
- assert.strictEqual(typeof validMode, 'number');
162
- assert.ok(validMode >= 0);
163
- });
35
+ it('returns capabilities for all 10 modes', () => {
36
+ const caps = lib.getAllModeCapabilities();
37
+ assert.strictEqual(caps.length, 10);
164
38
  });
165
- describe('Error Handling Tests', () => {
166
- it('should throw WSJTXError for invalid operations (non-encode/decode)', async () => {
167
- // Example: Invalid mode in getSampleRate (if such validation existed or was more strict)
168
- // For now, using existing validation tests that fit "basic" criteria.
169
- try {
170
- await lib.decode(999, new Float32Array(1000), 1000);
171
- assert.fail('Should have thrown WSJTXError for invalid mode');
172
- }
173
- catch (error) {
174
- assert.ok(error instanceof WSJTXError);
175
- assert.strictEqual(typeof error.message, 'string');
176
- if (error instanceof WSJTXError) {
177
- assert.strictEqual(typeof error.code, 'string');
178
- }
179
- }
180
- });
181
- it('should provide meaningful error messages for basic errors', async () => {
182
- try {
183
- await lib.encode(WSJTXMode.FT8, '', 1000); // Empty message
184
- assert.fail('Should have thrown WSJTXError for empty message');
185
- }
186
- catch (error) {
187
- assert.ok(error instanceof WSJTXError);
188
- assert.ok(error.message.length > 0);
189
- if (error instanceof WSJTXError && error.code) {
190
- assert.ok(error.code.length > 0);
191
- }
192
- }
193
- });
194
- it('should validate all error codes are strings for basic errors', async () => {
195
- const testCases = [
196
- () => lib.decode(999, new Float32Array(1000), 1000), // Invalid mode
197
- () => lib.decode(WSJTXMode.FT8, new Float32Array(1000), -1000), // Invalid frequency
198
- () => lib.decode(WSJTXMode.FT8, new Float32Array(0), 1000), // Invalid audio data
199
- () => lib.encode(WSJTXMode.FT8, '', 1000), // Empty message
200
- () => lib.encode(WSJTXMode.FT8, 'x'.repeat(50), 1000) // Message too long
201
- ];
202
- for (const testCase of testCases) {
203
- try {
204
- await testCase();
205
- assert.fail('Should have thrown WSJTXError');
206
- }
207
- catch (error) {
208
- assert.ok(error instanceof WSJTXError);
209
- if (error instanceof WSJTXError && error.code) {
210
- assert.strictEqual(typeof error.code, 'string');
211
- assert.ok(error.code.length > 0);
212
- }
213
- }
214
- }
39
+ it('rejects invalid mode in decode', async () => {
40
+ await assert.rejects(() => lib.decode(999, new Float32Array(1000), { frequency: 1500 }), WSJTXError);
41
+ });
42
+ it('rejects negative frequency in decode', async () => {
43
+ await assert.rejects(() => lib.decode(WSJTXMode.FT8, new Float32Array(1000), { frequency: -1 }), WSJTXError);
44
+ });
45
+ it('rejects empty audio in decode', async () => {
46
+ await assert.rejects(() => lib.decode(WSJTXMode.FT8, new Float32Array(0), { frequency: 1500 }), WSJTXError);
47
+ });
48
+ it('pullMessages returns an array', () => {
49
+ assert.ok(Array.isArray(lib.pullMessages()));
50
+ });
51
+ it('Float32→Int16 audio conversion produces an Int16Array', async () => {
52
+ const out = await lib.convertAudioFormat(new Float32Array([-1, 0, 0.5, 1]), 'int16');
53
+ assert.ok(out instanceof Int16Array);
54
+ });
55
+ it('WSJTXError has a code field and extends Error', () => {
56
+ const e = new WSJTXError('boom', 'CODE');
57
+ assert.ok(e instanceof Error);
58
+ assert.strictEqual(e.code, 'CODE');
59
+ });
60
+ it('decode of silence completes successfully with empty messages', async () => {
61
+ const r = await lib.decode(WSJTXMode.FT8, new Float32Array(48000 * 13), {
62
+ frequency: 1500,
63
+ threads: 1,
215
64
  });
65
+ assert.strictEqual(r.success, true);
66
+ assert.deepStrictEqual(r.messages, []);
67
+ });
68
+ it('decode accepts dxCall, dxGrid, and freq range options without crashing', async () => {
69
+ const r = await lib.decode(WSJTXMode.FT8, new Float32Array(48000 * 13), {
70
+ frequency: 1500,
71
+ threads: 1,
72
+ dxCall: 'K1ABC',
73
+ dxGrid: 'FN20',
74
+ lowFreq: 200,
75
+ highFreq: 4000,
76
+ tolerance: 20,
77
+ });
78
+ assert.strictEqual(r.success, true);
216
79
  });
217
80
  });
218
81
  //# sourceMappingURL=wsjtx.basic.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wsjtx.basic.test.js","sourceRoot":"","sources":["../../test/wsjtx.basic.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsjtx.basic.test.js","sourceRoot":"","sources":["../../test/wsjtx.basic.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,21 @@
1
1
  /**
2
- * WSJTX Library Comprehensive Test Suite
2
+ * Comprehensive regression tests for the WSJTX library.
3
3
  *
4
- * Integrated complete testing of all features, including:
5
- * - Basic library functionality tests
6
- * - FT8 WAV audio encoding/decoding tests
7
- * - Audio format conversion tests
8
- * - TypeScript type safety tests
9
- * - Error handling tests
4
+ * Coverage targets:
5
+ * - Basic queries (mode caps, sample rate, transmission duration)
6
+ * - DecodeOptions: every field (frequency, threads, lowFreq, highFreq,
7
+ * tolerance, dxCall, dxGrid) make sure they don't crash and that
8
+ * range-based decoding actually picks up signals it should and rejects
9
+ * signals out of range.
10
+ * - Encode → Decode round-trip for FT8 and FT4 across multiple message
11
+ * forms (CQ, signal report, 73, RRR, grid).
12
+ * - Float32 vs Int16 audio paths.
13
+ * - convertAudioFormat in both directions.
14
+ * - decodeWSPR signature smoke test.
15
+ * - Error handling: invalid mode / freq / audio / message.
16
+ *
17
+ * Tests run on compiled output (`node --test dist/test/wsjtx.test.js`),
18
+ * so the import path uses .js extensions.
10
19
  */
11
20
  export {};
12
21
  //# sourceMappingURL=wsjtx.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wsjtx.test.d.ts","sourceRoot":"","sources":["../../test/wsjtx.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"wsjtx.test.d.ts","sourceRoot":"","sources":["../../test/wsjtx.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}