wsjtx-lib 1.0.3 → 1.0.4

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 (48) hide show
  1. package/dist/chunk-IOOVX2IY.js +39 -0
  2. package/dist/chunk-JMWITWT7.js +74 -0
  3. package/dist/chunk-WYLCLDX4.js +483 -0
  4. package/dist/index.cjs +554 -0
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.d.cts +192 -0
  7. package/dist/index.d.ts +192 -0
  8. package/dist/index.js +484 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/src/index.cjs +554 -0
  11. package/dist/src/index.d.cts +192 -0
  12. package/dist/src/index.d.ts +7 -5
  13. package/dist/src/index.d.ts.map +1 -1
  14. package/dist/src/index.js +24 -24
  15. package/dist/src/index.js.map +1 -1
  16. package/dist/src/types.cjs +64 -0
  17. package/dist/src/types.d.cts +252 -0
  18. package/dist/test/wsjtx.basic.test.cjs +759 -0
  19. package/dist/test/wsjtx.basic.test.d.cts +2 -0
  20. package/dist/test/wsjtx.basic.test.js +12 -14
  21. package/dist/test/wsjtx.basic.test.js.map +1 -1
  22. package/dist/test/wsjtx.test.cjs +4004 -0
  23. package/dist/test/wsjtx.test.d.cts +2 -0
  24. package/dist/test/wsjtx.test.js +12 -14
  25. package/dist/test/wsjtx.test.js.map +1 -1
  26. package/dist/types.cjs +64 -0
  27. package/dist/types.cjs.map +1 -0
  28. package/dist/types.d.cts +252 -0
  29. package/dist/types.d.ts +252 -0
  30. package/dist/types.js +8 -0
  31. package/dist/types.js.map +1 -0
  32. package/package.json +1 -1
  33. package/prebuilds/darwin-arm64/build-info.json +2 -2
  34. package/prebuilds/darwin-arm64/libfftw3f.3.dylib +0 -0
  35. package/prebuilds/darwin-arm64/libfftw3f_threads.3.dylib +0 -0
  36. package/prebuilds/darwin-arm64/libgfortran.5.dylib +0 -0
  37. package/prebuilds/darwin-arm64/wsjtx_lib_nodejs.node +0 -0
  38. package/prebuilds/linux-arm64/build-info.json +2 -2
  39. package/prebuilds/linux-arm64/wsjtx_lib_nodejs.node +0 -0
  40. package/prebuilds/linux-x64/build-info.json +2 -2
  41. package/prebuilds/linux-x64/wsjtx_lib_nodejs.node +0 -0
  42. package/prebuilds/package-info.json +2 -2
  43. package/prebuilds/win32-x64/build-info.json +3 -3
  44. package/prebuilds/win32-x64/libgcc_s_seh-1.dll +0 -0
  45. package/prebuilds/win32-x64/libgfortran-5.dll +0 -0
  46. package/prebuilds/win32-x64/libstdc++-6.dll +0 -0
  47. package/prebuilds/win32-x64/libwinpthread-1.dll +0 -0
  48. package/prebuilds/win32-x64/wsjtx_lib_nodejs.node +0 -0
@@ -0,0 +1,192 @@
1
+ import { WSJTXConfig, WSJTXMode, AudioData, DecodeResult, EncodeResult, IQData, WSPRDecodeOptions, WSPRResult, WSJTXMessage, ModeCapabilities } from './types.cjs';
2
+ export { VersionInfo, WSJTXError } from './types.cjs';
3
+
4
+ /**
5
+ * WSJTX Digital Radio Protocol Library for Node.js
6
+ *
7
+ * High-level TypeScript wrapper around the native C++ WSJTX library bindings.
8
+ * Provides async/await support, input validation, and convenient utilities
9
+ * for working with digital amateur radio protocols.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { WSJTXLib, WSJTXMode } from 'wsjtx-lib';
14
+ *
15
+ * const lib = new WSJTXLib();
16
+ *
17
+ * // Decode FT8 audio data
18
+ * const audioData = new Float32Array(48000 * 13); // 13 seconds at 48kHz
19
+ * const result = await lib.decode(WSJTXMode.FT8, audioData, 1500);
20
+ *
21
+ * // Get decoded messages
22
+ * const messages = lib.pullMessages();
23
+ * console.log('Decoded messages:', messages);
24
+ * ```
25
+ */
26
+
27
+ /**
28
+ * Main WSJTX library class providing digital radio protocol processing
29
+ *
30
+ * This class wraps the native C++ implementation and provides a convenient
31
+ * TypeScript/JavaScript interface with proper error handling, validation,
32
+ * and async/await support.
33
+ */
34
+ declare class WSJTXLib {
35
+ private native;
36
+ private config;
37
+ /**
38
+ * Create a new WSJTX library instance
39
+ *
40
+ * @param config Optional configuration options
41
+ * @throws {WSJTXError} If the native library fails to initialize
42
+ */
43
+ constructor(config?: WSJTXConfig);
44
+ /**
45
+ * Decode digital radio signals from audio data
46
+ *
47
+ * This method processes audio samples and attempts to decode digital
48
+ * messages using the specified protocol mode. The operation is performed
49
+ * asynchronously to avoid blocking the Node.js event loop.
50
+ *
51
+ * @param mode The digital mode to use for decoding
52
+ * @param audioData Audio samples (Float32Array or Int16Array)
53
+ * @param frequency Center frequency in Hz
54
+ * @param threads Number of threads to use (1-16, default: 4)
55
+ * @returns Promise that resolves when decoding is complete
56
+ *
57
+ * @throws {WSJTXError} If parameters are invalid or decoding fails
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const audioData = new Float32Array(48000 * 13); // 13 seconds
62
+ * await lib.decode(WSJTXMode.FT8, audioData, 1500);
63
+ * const messages = lib.pullMessages();
64
+ * ```
65
+ */
66
+ decode(mode: WSJTXMode, audioData: AudioData, frequency: number, threads?: number): Promise<DecodeResult>;
67
+ /**
68
+ * Encode a message into audio waveform for transmission
69
+ *
70
+ * Generates the audio waveform that represents the specified message
71
+ * using the given digital mode. The resulting audio can be fed to
72
+ * a radio transmitter or audio interface.
73
+ *
74
+ * @param mode The digital mode to use for encoding
75
+ * @param message The message text to encode (mode-specific format)
76
+ * @param frequency Center frequency in Hz
77
+ * @param threads Number of threads to use (1-16, default: 4)
78
+ * @returns Promise that resolves with encoded audio data and actual message sent
79
+ *
80
+ * @throws {WSJTXError} If parameters are invalid or encoding fails
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const result = await lib.encode(WSJTXMode.FT8, 'CQ DX K1ABC FN20', 1500);
85
+ * console.log('Generated audio samples:', result.audioData.length);
86
+ * console.log('Actual message sent:', result.messageSent);
87
+ * ```
88
+ */
89
+ encode(mode: WSJTXMode, message: string, frequency: number, threads?: number): Promise<EncodeResult>;
90
+ /**
91
+ * Decode WSPR signals from IQ data
92
+ *
93
+ * WSPR (Weak Signal Propagation Reporter) is a specialized protocol
94
+ * for studying radio propagation. This method takes IQ (complex)
95
+ * samples and attempts to decode WSPR transmissions.
96
+ *
97
+ * @param iqData Interleaved I,Q samples as Float32Array
98
+ * @param options Decoder options (frequency, callsign, etc.)
99
+ * @returns Promise that resolves with array of decoded WSPR results
100
+ *
101
+ * @throws {WSJTXError} If parameters are invalid or decoding fails
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const iqData = new Float32Array(2 * 12000 * 111); // 2 minutes of IQ data
106
+ * const options = {
107
+ * dialFrequency: 14095600, // 20m WSPR frequency
108
+ * callsign: 'K1ABC',
109
+ * locator: 'FN20'
110
+ * };
111
+ * const results = await lib.decodeWSPR(iqData, options);
112
+ * ```
113
+ */
114
+ decodeWSPR(iqData: IQData, options?: WSPRDecodeOptions): Promise<WSPRResult[]>;
115
+ /**
116
+ * Retrieve decoded messages from the internal queue
117
+ *
118
+ * Messages are added to an internal queue as they are decoded.
119
+ * This method retrieves and removes all pending messages from the queue.
120
+ *
121
+ * @returns Array of decoded messages
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const messages = lib.pullMessages();
126
+ * messages.forEach(msg => {
127
+ * console.log(`${msg.text} (SNR: ${msg.snr} dB, ΔT: ${msg.deltaTime}s)`);
128
+ * });
129
+ * ```
130
+ */
131
+ pullMessages(): WSJTXMessage[];
132
+ /**
133
+ * Check if encoding is supported for a specific mode
134
+ *
135
+ * @param mode The mode to check
136
+ * @returns True if encoding is supported
137
+ */
138
+ isEncodingSupported(mode: WSJTXMode): boolean;
139
+ /**
140
+ * Check if decoding is supported for a specific mode
141
+ *
142
+ * @param mode The mode to check
143
+ * @returns True if decoding is supported
144
+ */
145
+ isDecodingSupported(mode: WSJTXMode): boolean;
146
+ /**
147
+ * Get the required sample rate for a specific mode
148
+ *
149
+ * @param mode The mode to query
150
+ * @returns Sample rate in Hz
151
+ */
152
+ getSampleRate(mode: WSJTXMode): number;
153
+ /**
154
+ * Get the transmission duration for a specific mode
155
+ *
156
+ * @param mode The mode to query
157
+ * @returns Duration in seconds
158
+ */
159
+ getTransmissionDuration(mode: WSJTXMode): number;
160
+ /**
161
+ * Get capabilities for all supported modes
162
+ *
163
+ * @returns Array of mode capability information
164
+ */
165
+ getAllModeCapabilities(): ModeCapabilities[];
166
+ /**
167
+ * Convert audio format between Float32Array and Int16Array
168
+ *
169
+ * @param audioData Input audio data
170
+ * @param targetFormat Target format ('float32' or 'int16')
171
+ * @returns Converted audio data
172
+ */
173
+ static convertAudioFormat(audioData: AudioData, targetFormat: 'float32' | 'int16'): AudioData;
174
+ /**
175
+ * Static convenience helper for async audio format conversion.
176
+ */
177
+ static convertAudioFormatAsync(audioData: AudioData, targetFormat: 'float32' | 'int16'): Promise<AudioData>;
178
+ /**
179
+ * Asynchronously convert audio data format without blocking the event loop
180
+ *
181
+ * Uses native thread pool to offload conversion.
182
+ */
183
+ convertAudioFormatAsync(audioData: AudioData, targetFormat: 'float32' | 'int16'): Promise<AudioData>;
184
+ private validateMode;
185
+ private validateFrequency;
186
+ private validateThreads;
187
+ private validateMessage;
188
+ private validateAudioData;
189
+ private validateIQData;
190
+ }
191
+
192
+ export { AudioData, DecodeResult, EncodeResult, IQData, ModeCapabilities, WSJTXConfig, WSJTXLib, WSJTXMessage, WSJTXMode, WSPRDecodeOptions, WSPRResult };
@@ -161,13 +161,15 @@ export declare class WSJTXLib {
161
161
  */
162
162
  getAllModeCapabilities(): ModeCapabilities[];
163
163
  /**
164
- * Convert audio format between Float32Array and Int16Array
164
+ * Convert audio format between Float32Array and Int16Array (async)
165
165
  *
166
- * @param audioData Input audio data
167
- * @param targetFormat Target format ('float32' or 'int16')
168
- * @returns Converted audio data
166
+ * Uses the native addon with Node's libuv 线程池执行,不阻塞主线程。
167
+ *
168
+ * @param audioData 输入音频数据
169
+ * @param targetFormat 目标格式 ('float32' | 'int16')
170
+ * @returns Promise 解析为转换后的数据
169
171
  */
170
- static convertAudioFormat(audioData: AudioData, targetFormat: 'float32' | 'int16'): AudioData;
172
+ convertAudioFormat(audioData: AudioData, targetFormat: 'float32' | 'int16'): Promise<AudioData>;
171
173
  private validateMode;
172
174
  private validateFrequency;
173
175
  private validateThreads;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAqEpB;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;gBACS,MAAM,GAAE,WAAgB;IAiBpC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC;IA+BxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC;IA8BxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;IAkCxB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,IAAI,YAAY,EAAE;IAW9B;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAI7C;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAI7C;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAItC;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAIhD;;;;OAIG;IACH,sBAAsB,IAAI,gBAAgB,EAAE;IAY5C;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAAG,OAAO,GAChC,SAAS;IA6BZ,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;CAcvB;AAGD,OAAO,EACL,SAAS,EACT,UAAU,GACX,CAAC;AAEF,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EACjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAqEpB;;;;;;GAMG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;gBACS,MAAM,GAAE,WAAgB;IAiBpC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC;IA+BxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,MAAM,CACV,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,MAAoC,GAC5C,OAAO,CAAC,YAAY,CAAC;IA8BxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,UAAU,CACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;IAkCxB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,IAAI,YAAY,EAAE;IAW9B;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAI7C;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAI7C;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAItC;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAIhD;;;;OAIG;IACH,sBAAsB,IAAI,gBAAgB,EAAE;IAY5C;;;;;;;;OAQG;IACG,kBAAkB,CACtB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,SAAS,GAAG,OAAO,GAChC,OAAO,CAAC,SAAS,CAAC;IA8BrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;CAcvB;AAGD,OAAO,EACL,SAAS,EACT,UAAU,GACX,CAAC;AAEF,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,MAAM,EACN,WAAW,EACX,WAAW,EACX,gBAAgB,EACjB,CAAC"}
package/dist/src/index.js CHANGED
@@ -326,38 +326,38 @@ export class WSJTXLib {
326
326
  }));
327
327
  }
328
328
  /**
329
- * Convert audio format between Float32Array and Int16Array
329
+ * Convert audio format between Float32Array and Int16Array (async)
330
330
  *
331
- * @param audioData Input audio data
332
- * @param targetFormat Target format ('float32' or 'int16')
333
- * @returns Converted audio data
331
+ * Uses the native addon with Node's libuv 线程池执行,不阻塞主线程。
332
+ *
333
+ * @param audioData 输入音频数据
334
+ * @param targetFormat 目标格式 ('float32' | 'int16')
335
+ * @returns Promise 解析为转换后的数据
334
336
  */
335
- static convertAudioFormat(audioData, targetFormat) {
337
+ async convertAudioFormat(audioData, targetFormat) {
336
338
  if (targetFormat !== 'float32' && targetFormat !== 'int16') {
337
339
  throw new Error(`Invalid target format: ${targetFormat}. Must be 'float32' or 'int16'`);
338
340
  }
339
- if (targetFormat === 'float32') {
340
- if (audioData instanceof Float32Array) {
341
- return audioData;
342
- }
343
- // Convert Int16Array to Float32Array
344
- const result = new Float32Array(audioData.length);
345
- for (let i = 0; i < audioData.length; i++) {
346
- result[i] = audioData[i] / 32768.0;
347
- }
348
- return result;
341
+ // 快速路径:已经是目标格式
342
+ if ((targetFormat === 'float32' && audioData instanceof Float32Array) ||
343
+ (targetFormat === 'int16' && audioData instanceof Int16Array)) {
344
+ return audioData;
349
345
  }
350
- else {
351
- if (audioData instanceof Int16Array) {
352
- return audioData;
346
+ return new Promise((resolve, reject) => {
347
+ const callback = (error, result) => {
348
+ if (error)
349
+ return reject(error);
350
+ if (!result)
351
+ return reject(new Error('Audio conversion failed'));
352
+ resolve(result);
353
+ };
354
+ try {
355
+ this.native.convertAudioFormat(audioData, targetFormat, callback);
353
356
  }
354
- // Convert Float32Array to Int16Array
355
- const result = new Int16Array(audioData.length);
356
- for (let i = 0; i < audioData.length; i++) {
357
- result[i] = Math.max(-32768, Math.min(32767, Math.round(audioData[i] * 32768)));
357
+ catch (error) {
358
+ reject(new WSJTXError(`Audio conversion failed: ${error instanceof Error ? error.message : String(error)}`, 'AUDIO_CONVERT_ERROR'));
358
359
  }
359
- return result;
360
- }
360
+ });
361
361
  }
362
362
  // Validation methods
363
363
  validateMode(mode) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/types.ts
21
+ var types_exports = {};
22
+ __export(types_exports, {
23
+ WSJTXError: () => WSJTXError,
24
+ WSJTXMode: () => WSJTXMode
25
+ });
26
+ module.exports = __toCommonJS(types_exports);
27
+ var WSJTXMode = /* @__PURE__ */ ((WSJTXMode2) => {
28
+ WSJTXMode2[WSJTXMode2["FT8"] = 0] = "FT8";
29
+ WSJTXMode2[WSJTXMode2["FT4"] = 1] = "FT4";
30
+ WSJTXMode2[WSJTXMode2["JT4"] = 2] = "JT4";
31
+ WSJTXMode2[WSJTXMode2["JT65"] = 3] = "JT65";
32
+ WSJTXMode2[WSJTXMode2["JT9"] = 4] = "JT9";
33
+ WSJTXMode2[WSJTXMode2["FST4"] = 5] = "FST4";
34
+ WSJTXMode2[WSJTXMode2["Q65"] = 6] = "Q65";
35
+ WSJTXMode2[WSJTXMode2["FST4W"] = 7] = "FST4W";
36
+ WSJTXMode2[WSJTXMode2["WSPR"] = 8] = "WSPR";
37
+ return WSJTXMode2;
38
+ })(WSJTXMode || {});
39
+ var WSJTXError = class extends Error {
40
+ constructor(message, code) {
41
+ super(message);
42
+ this.code = code;
43
+ this.name = "WSJTXError";
44
+ }
45
+ };
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ WSJTXError,
49
+ WSJTXMode
50
+ });
51
+ /**
52
+ * WSJTX Digital Radio Protocol Library for Node.js
53
+ *
54
+ * This library provides encoding and decoding capabilities for various
55
+ * digital amateur radio protocols including FT8, FT4, WSPR, and others.
56
+ *
57
+ * The library is a Node.js C++ extension that wraps the wsjtx_lib C library,
58
+ * providing high-performance digital signal processing capabilities with
59
+ * multi-platform support (Windows, macOS, Linux).
60
+ *
61
+ * @version 1.0.0
62
+ * @author WSJTX Development Team
63
+ * @license GPL-3.0
64
+ */
@@ -0,0 +1,252 @@
1
+ /**
2
+ * WSJTX Digital Radio Protocol Library for Node.js
3
+ *
4
+ * This library provides encoding and decoding capabilities for various
5
+ * digital amateur radio protocols including FT8, FT4, WSPR, and others.
6
+ *
7
+ * The library is a Node.js C++ extension that wraps the wsjtx_lib C library,
8
+ * providing high-performance digital signal processing capabilities with
9
+ * multi-platform support (Windows, macOS, Linux).
10
+ *
11
+ * @version 1.0.0
12
+ * @author WSJTX Development Team
13
+ * @license GPL-3.0
14
+ */
15
+ /**
16
+ * Supported WSJTX digital radio modes
17
+ *
18
+ * Each mode has different characteristics in terms of symbol rate,
19
+ * bandwidth, transmission duration, and sensitivity.
20
+ */
21
+ declare enum WSJTXMode {
22
+ /**
23
+ * FT8 - 8-FSK modulation, 15-second transmissions
24
+ * - Sample rate: 48 kHz
25
+ * - Duration: 12.64 seconds
26
+ * - Bandwidth: ~50 Hz
27
+ * - Sensitivity: -24 dB
28
+ */
29
+ FT8 = 0,
30
+ /**
31
+ * FT4 - 4-FSK modulation, 6-second transmissions
32
+ * - Sample rate: 48 kHz
33
+ * - Duration: 6.0 seconds
34
+ * - Bandwidth: ~80 Hz
35
+ * - Sensitivity: -17 dB
36
+ */
37
+ FT4 = 1,
38
+ /**
39
+ * JT4 - Weak signal mode for microwave EME
40
+ * - Sample rate: 11.025 kHz
41
+ * - Duration: 47.1 seconds
42
+ * - Multiple bandwidth options
43
+ */
44
+ JT4 = 2,
45
+ /**
46
+ * JT65 - Popular EME and HF weak signal mode
47
+ * - Sample rate: 11.025 kHz
48
+ * - Duration: 46.8 seconds
49
+ * - Bandwidth: ~180 Hz
50
+ */
51
+ JT65 = 3,
52
+ /**
53
+ * JT9 - Low data rate, narrow bandwidth mode
54
+ * - Sample rate: 12 kHz
55
+ * - Duration: 49.0 seconds
56
+ * - Bandwidth: ~16 Hz
57
+ */
58
+ JT9 = 4,
59
+ /**
60
+ * FST4 - Flexible format for 15-900 second transmissions
61
+ * - Sample rate: 12 kHz
62
+ * - Variable duration (15s, 30s, 60s, 120s, 300s, 900s)
63
+ * - Ultra-weak signal capability
64
+ */
65
+ FST4 = 5,
66
+ /**
67
+ * Q65 - Optimized for EME on VHF and higher
68
+ * - Sample rate: 12 kHz
69
+ * - Duration: 60 seconds
70
+ * - Multiple bandwidth options
71
+ */
72
+ Q65 = 6,
73
+ /**
74
+ * FST4W - Weak signal beacons
75
+ * - Sample rate: 12 kHz
76
+ * - Duration: 120 seconds
77
+ * - Optimized for propagation studies
78
+ */
79
+ FST4W = 7,
80
+ /**
81
+ * WSPR - Weak Signal Propagation Reporter
82
+ * - Sample rate: 12 kHz
83
+ * - Duration: 110.6 seconds
84
+ * - 4-FSK modulation, very weak signal capability
85
+ */
86
+ WSPR = 8
87
+ }
88
+ /**
89
+ * Audio data formats supported by the library
90
+ * Can be either 32-bit floating point or 16-bit signed integer samples
91
+ */
92
+ type AudioData = Float32Array | Int16Array;
93
+ /**
94
+ * IQ (In-phase/Quadrature) data for WSPR decoding
95
+ * Interleaved I,Q samples as 32-bit floating point values
96
+ */
97
+ type IQData = Float32Array;
98
+ /**
99
+ * Time information for decoded messages
100
+ */
101
+ interface WSJTXTime {
102
+ /** Hour (0-23) */
103
+ hour: number;
104
+ /** Minute (0-59) */
105
+ minute: number;
106
+ /** Second (0-59) */
107
+ second: number;
108
+ }
109
+ /**
110
+ * A decoded WSJTX message containing timing and signal information
111
+ */
112
+ interface WSJTXMessage {
113
+ /** The decoded message text */
114
+ text: string;
115
+ /** Signal-to-noise ratio in dB */
116
+ snr: number;
117
+ /** Time offset from start of transmission period in seconds */
118
+ deltaTime: number;
119
+ /** Frequency offset from dial frequency in Hz */
120
+ deltaFrequency: number;
121
+ /** Unix timestamp when the message was decoded */
122
+ timestamp: number;
123
+ /** Sync quality metric (mode-dependent) */
124
+ sync: number;
125
+ }
126
+ /**
127
+ * Result from a decode operation
128
+ */
129
+ interface DecodeResult {
130
+ /** Whether the decode operation completed successfully */
131
+ success: boolean;
132
+ /** Optional error message if decode failed */
133
+ error?: string;
134
+ }
135
+ /**
136
+ * Result from an encode operation
137
+ */
138
+ interface EncodeResult {
139
+ /** Generated audio waveform data */
140
+ audioData: Float32Array;
141
+ /** The actual message that was encoded (may differ from input) */
142
+ messageSent: string;
143
+ }
144
+ /**
145
+ * Single WSPR decode result
146
+ */
147
+ interface WSPRResult {
148
+ /** Frequency of the decoded signal in Hz */
149
+ frequency: number;
150
+ /** Sync quality metric */
151
+ sync: number;
152
+ /** Signal-to-noise ratio in dB */
153
+ snr: number;
154
+ /** Time offset in seconds */
155
+ deltaTime: number;
156
+ /** Frequency drift in Hz/minute */
157
+ drift: number;
158
+ /** Jitter metric */
159
+ jitter: number;
160
+ /** Decoded message text */
161
+ message: string;
162
+ /** Decoded callsign */
163
+ callsign: string;
164
+ /** Decoded grid locator */
165
+ locator: string;
166
+ /** Decoded power in dBm */
167
+ power: string;
168
+ /** Number of decode cycles */
169
+ cycles: number;
170
+ }
171
+ /**
172
+ * Options for WSPR decoding
173
+ */
174
+ interface WSPRDecodeOptions {
175
+ /** Dial frequency in Hz (default: 14095600 for 20m WSPR) */
176
+ dialFrequency?: number;
177
+ /** Receiving station callsign for better decoding */
178
+ callsign?: string;
179
+ /** Receiving station grid locator */
180
+ locator?: string;
181
+ /** Enable quick decode mode (faster but less sensitive) */
182
+ quickMode?: boolean;
183
+ /** Use hash table for callsign/locator lookup */
184
+ useHashTable?: boolean;
185
+ /** Number of decoding passes (1-3, default: 2) */
186
+ passes?: number;
187
+ /** Enable signal subtraction for better weak signal decoding */
188
+ subtraction?: boolean;
189
+ }
190
+ /**
191
+ * Error thrown by WSJTX library operations
192
+ */
193
+ declare class WSJTXError extends Error {
194
+ code?: string | undefined;
195
+ constructor(message: string, code?: string | undefined);
196
+ }
197
+ /**
198
+ * Configuration options for the WSJTX library
199
+ */
200
+ interface WSJTXConfig {
201
+ /** Maximum number of threads to use for processing (1-16) */
202
+ maxThreads?: number;
203
+ /** Enable debug logging */
204
+ debug?: boolean;
205
+ }
206
+ /**
207
+ * Library version information
208
+ */
209
+ interface VersionInfo {
210
+ /** WSJTXLib wrapper version */
211
+ wrapperVersion: string;
212
+ /** Underlying wsjtx_lib version */
213
+ libraryVersion: string;
214
+ /** Node.js version used to build */
215
+ nodeVersion: string;
216
+ /** Build timestamp */
217
+ buildDate: string;
218
+ }
219
+ /**
220
+ * Mode capabilities information
221
+ */
222
+ interface ModeCapabilities {
223
+ /** Mode identifier */
224
+ mode: WSJTXMode;
225
+ /** Whether encoding is supported */
226
+ encodingSupported: boolean;
227
+ /** Whether decoding is supported */
228
+ decodingSupported: boolean;
229
+ /** Required sample rate in Hz */
230
+ sampleRate: number;
231
+ /** Transmission duration in seconds */
232
+ duration: number;
233
+ /** Typical bandwidth in Hz */
234
+ bandwidth?: number;
235
+ /** Typical sensitivity in dB */
236
+ sensitivity?: number;
237
+ }
238
+ /**
239
+ * Callback function for decode operations
240
+ * The native module returns a boolean indicating completion status
241
+ */
242
+ type DecodeCallback = (error: Error | null, result: boolean) => void;
243
+ /**
244
+ * Callback function type for asynchronous encode operations
245
+ */
246
+ type EncodeCallback = (error: Error | null, result: EncodeResult) => void;
247
+ /**
248
+ * Callback function type for asynchronous WSPR decode operations
249
+ */
250
+ type WSPRDecodeCallback = (error: Error | null, results: WSPRResult[]) => void;
251
+
252
+ export { type AudioData, type DecodeCallback, type DecodeResult, type EncodeCallback, type EncodeResult, type IQData, type ModeCapabilities, type VersionInfo, type WSJTXConfig, WSJTXError, type WSJTXMessage, WSJTXMode, type WSJTXTime, type WSPRDecodeCallback, type WSPRDecodeOptions, type WSPRResult };