@samlab-corp/sfm-node 0.1.1 → 0.1.2
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/dist/commands/data.d.ts +1 -1
- package/dist/commands/data.d.ts.map +1 -1
- package/dist/commands/data.js +14 -9
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/fingerprint.d.ts +4 -4
- package/dist/commands/fingerprint.d.ts.map +1 -1
- package/dist/commands/fingerprint.js +44 -40
- package/dist/commands/fingerprint.js.map +1 -1
- package/dist/commands/firmware.d.ts +2 -2
- package/dist/commands/firmware.d.ts.map +1 -1
- package/dist/commands/firmware.js +18 -11
- package/dist/commands/firmware.js.map +1 -1
- package/dist/commands/freescan.d.ts +2 -2
- package/dist/commands/freescan.d.ts.map +1 -1
- package/dist/commands/freescan.js +18 -14
- package/dist/commands/freescan.js.map +1 -1
- package/dist/commands/index.d.ts +19 -19
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +29 -19
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/system.d.ts +4 -4
- package/dist/commands/system.d.ts.map +1 -1
- package/dist/commands/system.js +26 -22
- package/dist/commands/system.js.map +1 -1
- package/dist/constants/crypto.js +4 -1
- package/dist/constants/crypto.js.map +1 -1
- package/dist/constants/index.d.ts +5 -5
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +17 -3
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/packet.js +6 -3
- package/dist/constants/packet.js.map +1 -1
- package/dist/constants/protocol.js +12 -8
- package/dist/constants/protocol.js.map +1 -1
- package/dist/core/client.d.ts +8 -8
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +36 -32
- package/dist/core/client.js.map +1 -1
- package/dist/core/crypto.d.ts +3 -3
- package/dist/core/crypto.d.ts.map +1 -1
- package/dist/core/crypto.js +33 -25
- package/dist/core/crypto.js.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +45 -33
- package/dist/core/errors.js.map +1 -1
- package/dist/core/index.d.ts +11 -11
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +31 -6
- package/dist/core/index.js.map +1 -1
- package/dist/core/packet.d.ts +1 -1
- package/dist/core/packet.d.ts.map +1 -1
- package/dist/core/packet.js +50 -31
- package/dist/core/packet.js.map +1 -1
- package/dist/core/serial.js +8 -4
- package/dist/core/serial.js.map +1 -1
- package/dist/core/tcp.js +10 -3
- package/dist/core/tcp.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/core/crypto.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* SFM Protocol Manual V3.6.0 Secure Packet Protocol
|
|
3
4
|
*
|
|
@@ -20,17 +21,23 @@
|
|
|
20
21
|
* Byte offset+10-17: Secure Code (8B)
|
|
21
22
|
* Byte offset+18-31: Padding
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.SfmCrypto = exports.ENCRYPTION_MODE = void 0;
|
|
29
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
30
|
+
const packet_js_1 = require("./packet.js");
|
|
31
|
+
const index_js_1 = require("../constants/index.js");
|
|
26
32
|
// Backward-compatible re-export
|
|
27
|
-
|
|
33
|
+
var index_js_2 = require("../constants/index.js");
|
|
34
|
+
Object.defineProperty(exports, "ENCRYPTION_MODE", { enumerable: true, get: function () { return index_js_2.ENCRYPTION_MODE; } });
|
|
28
35
|
const SECURE_PACKET_SIZE = 35;
|
|
29
36
|
const ENCRYPTED_DATA_SIZE = 32;
|
|
30
37
|
const SECURE_CODE_SIZE = 8;
|
|
31
38
|
const AES256_KEY_SIZE = 32;
|
|
32
39
|
const AES_IV_SIZE = 16;
|
|
33
|
-
|
|
40
|
+
class SfmCrypto {
|
|
34
41
|
constructor(options = {}) {
|
|
35
42
|
this.key = options.key
|
|
36
43
|
? Buffer.isBuffer(options.key)
|
|
@@ -48,7 +55,7 @@ export class SfmCrypto {
|
|
|
48
55
|
? options.secureCode
|
|
49
56
|
: Buffer.from(options.secureCode, "hex")
|
|
50
57
|
: Buffer.alloc(SECURE_CODE_SIZE);
|
|
51
|
-
this.mode = options.mode ?? ENCRYPTION_MODE.AES256_CBC;
|
|
58
|
+
this.mode = options.mode ?? index_js_1.ENCRYPTION_MODE.AES256_CBC;
|
|
52
59
|
this.dataOffset = options.dataOffset ?? 0;
|
|
53
60
|
this.sequenceCounter = 0;
|
|
54
61
|
}
|
|
@@ -84,12 +91,12 @@ export class SfmCrypto {
|
|
|
84
91
|
const buf = Buffer.isBuffer(plaintext) ? plaintext : Buffer.from(plaintext);
|
|
85
92
|
const padded = Buffer.alloc(ENCRYPTED_DATA_SIZE);
|
|
86
93
|
buf.copy(padded, 0, 0, Math.min(buf.length, ENCRYPTED_DATA_SIZE));
|
|
87
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
88
|
-
const cipher =
|
|
94
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
95
|
+
const cipher = node_crypto_1.default.createCipheriv("aes-256-cbc", this.key, this.iv);
|
|
89
96
|
cipher.setAutoPadding(false);
|
|
90
97
|
return Buffer.concat([cipher.update(padded), cipher.final()]);
|
|
91
98
|
}
|
|
92
|
-
const cipher =
|
|
99
|
+
const cipher = node_crypto_1.default.createCipheriv("aes-256-ecb", this.key, null);
|
|
93
100
|
cipher.setAutoPadding(false);
|
|
94
101
|
return Buffer.concat([cipher.update(padded), cipher.final()]);
|
|
95
102
|
}
|
|
@@ -100,12 +107,12 @@ export class SfmCrypto {
|
|
|
100
107
|
const buf = Buffer.isBuffer(ciphertext)
|
|
101
108
|
? ciphertext
|
|
102
109
|
: Buffer.from(ciphertext);
|
|
103
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
104
|
-
const decipher =
|
|
110
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
111
|
+
const decipher = node_crypto_1.default.createDecipheriv("aes-256-cbc", this.key, this.iv);
|
|
105
112
|
decipher.setAutoPadding(false);
|
|
106
113
|
return Buffer.concat([decipher.update(buf), decipher.final()]);
|
|
107
114
|
}
|
|
108
|
-
const decipher =
|
|
115
|
+
const decipher = node_crypto_1.default.createDecipheriv("aes-256-ecb", this.key, null);
|
|
109
116
|
decipher.setAutoPadding(false);
|
|
110
117
|
return Buffer.concat([decipher.update(buf), decipher.final()]);
|
|
111
118
|
}
|
|
@@ -118,12 +125,12 @@ export class SfmCrypto {
|
|
|
118
125
|
const paddedLen = Math.ceil(buf.length / blockSize) * blockSize;
|
|
119
126
|
const padded = Buffer.alloc(paddedLen);
|
|
120
127
|
buf.copy(padded);
|
|
121
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
122
|
-
const cipher =
|
|
128
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
129
|
+
const cipher = node_crypto_1.default.createCipheriv("aes-256-cbc", this.key, this.iv);
|
|
123
130
|
cipher.setAutoPadding(false);
|
|
124
131
|
return Buffer.concat([cipher.update(padded), cipher.final()]);
|
|
125
132
|
}
|
|
126
|
-
const cipher =
|
|
133
|
+
const cipher = node_crypto_1.default.createCipheriv("aes-256-ecb", this.key, null);
|
|
127
134
|
cipher.setAutoPadding(false);
|
|
128
135
|
return Buffer.concat([cipher.update(padded), cipher.final()]);
|
|
129
136
|
}
|
|
@@ -134,13 +141,13 @@ export class SfmCrypto {
|
|
|
134
141
|
decryptRaw(data, originalSize) {
|
|
135
142
|
const buf = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
136
143
|
let decrypted;
|
|
137
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
138
|
-
const decipher =
|
|
144
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
145
|
+
const decipher = node_crypto_1.default.createDecipheriv("aes-256-cbc", this.key, this.iv);
|
|
139
146
|
decipher.setAutoPadding(false);
|
|
140
147
|
decrypted = Buffer.concat([decipher.update(buf), decipher.final()]);
|
|
141
148
|
}
|
|
142
149
|
else {
|
|
143
|
-
const decipher =
|
|
150
|
+
const decipher = node_crypto_1.default.createDecipheriv("aes-256-ecb", this.key, null);
|
|
144
151
|
decipher.setAutoPadding(false);
|
|
145
152
|
decrypted = Buffer.concat([decipher.update(buf), decipher.final()]);
|
|
146
153
|
}
|
|
@@ -169,7 +176,7 @@ export class SfmCrypto {
|
|
|
169
176
|
// Insert Secure Code
|
|
170
177
|
this.secureCode.copy(plaintext, offset + 10, 0, SECURE_CODE_SIZE);
|
|
171
178
|
// Reset CBC IV
|
|
172
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
179
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
173
180
|
this.resetIV();
|
|
174
181
|
}
|
|
175
182
|
const encrypted = this.encrypt(plaintext);
|
|
@@ -177,7 +184,7 @@ export class SfmCrypto {
|
|
|
177
184
|
const packet = Buffer.alloc(SECURE_PACKET_SIZE);
|
|
178
185
|
packet[0] = 0x50; // SEND marker
|
|
179
186
|
encrypted.copy(packet, 1, 0, ENCRYPTED_DATA_SIZE);
|
|
180
|
-
packet[33] = calcChecksum(packet, 33);
|
|
187
|
+
packet[33] = (0, packet_js_1.calcChecksum)(packet, 33);
|
|
181
188
|
packet[34] = 0x0a;
|
|
182
189
|
this.sequenceCounter++;
|
|
183
190
|
return packet;
|
|
@@ -194,14 +201,14 @@ export class SfmCrypto {
|
|
|
194
201
|
};
|
|
195
202
|
}
|
|
196
203
|
const receivedChecksum = buf[33];
|
|
197
|
-
const expectedChecksum = calcChecksum(buf, 33);
|
|
204
|
+
const expectedChecksum = (0, packet_js_1.calcChecksum)(buf, 33);
|
|
198
205
|
if (receivedChecksum !== expectedChecksum) {
|
|
199
206
|
return {
|
|
200
207
|
valid: false,
|
|
201
208
|
error: `Checksum mismatch: got=0x${receivedChecksum.toString(16)}, expected=0x${expectedChecksum.toString(16)}`,
|
|
202
209
|
};
|
|
203
210
|
}
|
|
204
|
-
if (this.mode === ENCRYPTION_MODE.AES256_CBC) {
|
|
211
|
+
if (this.mode === index_js_1.ENCRYPTION_MODE.AES256_CBC) {
|
|
205
212
|
this.resetIV();
|
|
206
213
|
}
|
|
207
214
|
const encrypted = buf.subarray(1, 1 + ENCRYPTED_DATA_SIZE);
|
|
@@ -234,15 +241,16 @@ export class SfmCrypto {
|
|
|
234
241
|
}
|
|
235
242
|
getModeName() {
|
|
236
243
|
switch (this.mode) {
|
|
237
|
-
case ENCRYPTION_MODE.AES256_CBC:
|
|
244
|
+
case index_js_1.ENCRYPTION_MODE.AES256_CBC:
|
|
238
245
|
return "AES256-CBC";
|
|
239
|
-
case ENCRYPTION_MODE.AES256_ECB:
|
|
246
|
+
case index_js_1.ENCRYPTION_MODE.AES256_ECB:
|
|
240
247
|
return "AES256-ECB";
|
|
241
|
-
case ENCRYPTION_MODE.RIJNDAEL_ECB:
|
|
248
|
+
case index_js_1.ENCRYPTION_MODE.RIJNDAEL_ECB:
|
|
242
249
|
return "Rijndael256-ECB";
|
|
243
250
|
default:
|
|
244
251
|
return `Unknown(0x${this.mode.toString(16)})`;
|
|
245
252
|
}
|
|
246
253
|
}
|
|
247
254
|
}
|
|
255
|
+
exports.SfmCrypto = SfmCrypto;
|
|
248
256
|
//# sourceMappingURL=crypto.js.map
|
package/dist/core/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/core/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/core/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/core/errors.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SFM Protocol Manual V3.6.0 Error Helper Functions
|
|
3
3
|
*/
|
|
4
|
-
export { SFM_ERROR, SFM_FLAG, COMM_ERROR, FIRMWARE_MAGIC } from "../constants";
|
|
4
|
+
export { SFM_ERROR, SFM_FLAG, COMM_ERROR, FIRMWARE_MAGIC } from "../constants/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* Convert SFM error code to message
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AA+BxF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD"}
|
package/dist/core/errors.js
CHANGED
|
@@ -1,66 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* SFM Protocol Manual V3.6.0 Error Helper Functions
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FIRMWARE_MAGIC = exports.COMM_ERROR = exports.SFM_FLAG = exports.SFM_ERROR = void 0;
|
|
7
|
+
exports.getSfmErrorMessage = getSfmErrorMessage;
|
|
8
|
+
exports.getCommErrorMessage = getCommErrorMessage;
|
|
9
|
+
exports.isSfmSuccess = isSfmSuccess;
|
|
10
|
+
exports.isSfmRetryable = isSfmRetryable;
|
|
11
|
+
exports.isCommError = isCommError;
|
|
12
|
+
const index_js_1 = require("../constants/index.js");
|
|
5
13
|
// Backward-compatible re-export
|
|
6
|
-
|
|
14
|
+
var index_js_2 = require("../constants/index.js");
|
|
15
|
+
Object.defineProperty(exports, "SFM_ERROR", { enumerable: true, get: function () { return index_js_2.SFM_ERROR; } });
|
|
16
|
+
Object.defineProperty(exports, "SFM_FLAG", { enumerable: true, get: function () { return index_js_2.SFM_FLAG; } });
|
|
17
|
+
Object.defineProperty(exports, "COMM_ERROR", { enumerable: true, get: function () { return index_js_2.COMM_ERROR; } });
|
|
18
|
+
Object.defineProperty(exports, "FIRMWARE_MAGIC", { enumerable: true, get: function () { return index_js_2.FIRMWARE_MAGIC; } });
|
|
7
19
|
// SFM error code → message mapping
|
|
8
20
|
const SFM_ERROR_MESSAGES = {
|
|
9
|
-
[SFM_ERROR.SUCCESS]: "Success",
|
|
10
|
-
[SFM_ERROR.SCAN_SUCCESS]: "Scan success",
|
|
11
|
-
[SFM_ERROR.SCAN_FAIL]: "Scan failed",
|
|
12
|
-
[SFM_ERROR.NOT_FOUND]: "Not found",
|
|
13
|
-
[SFM_ERROR.NOT_MATCH]: "Not matched",
|
|
14
|
-
[SFM_ERROR.TRY_AGAIN]: "Try again",
|
|
15
|
-
[SFM_ERROR.TIME_OUT]: "Timeout",
|
|
16
|
-
[SFM_ERROR.MEM_FULL]: "Memory full",
|
|
17
|
-
[SFM_ERROR.EXIST_ID]: "ID already exists",
|
|
18
|
-
[SFM_ERROR.UNSUPPORTED]: "Unsupported command",
|
|
21
|
+
[index_js_1.SFM_ERROR.SUCCESS]: "Success",
|
|
22
|
+
[index_js_1.SFM_ERROR.SCAN_SUCCESS]: "Scan success",
|
|
23
|
+
[index_js_1.SFM_ERROR.SCAN_FAIL]: "Scan failed",
|
|
24
|
+
[index_js_1.SFM_ERROR.NOT_FOUND]: "Not found",
|
|
25
|
+
[index_js_1.SFM_ERROR.NOT_MATCH]: "Not matched",
|
|
26
|
+
[index_js_1.SFM_ERROR.TRY_AGAIN]: "Try again",
|
|
27
|
+
[index_js_1.SFM_ERROR.TIME_OUT]: "Timeout",
|
|
28
|
+
[index_js_1.SFM_ERROR.MEM_FULL]: "Memory full",
|
|
29
|
+
[index_js_1.SFM_ERROR.EXIST_ID]: "ID already exists",
|
|
30
|
+
[index_js_1.SFM_ERROR.UNSUPPORTED]: "Unsupported command",
|
|
19
31
|
};
|
|
20
32
|
const COMM_ERROR_MESSAGES = {
|
|
21
|
-
[COMM_ERROR.SUCCESS]: "Success",
|
|
22
|
-
[COMM_ERROR.PACKET_FORMAT_ERROR]: "Packet format error",
|
|
23
|
-
[COMM_ERROR.INVALID_PACKET_SIZE]: "Invalid packet size",
|
|
24
|
-
[COMM_ERROR.WRITE_TIMEOUT]: "Write timeout",
|
|
25
|
-
[COMM_ERROR.READ_TIMEOUT]: "Read timeout",
|
|
26
|
-
[COMM_ERROR.CHECKSUM_MISMATCH]: "Checksum mismatch",
|
|
27
|
-
[COMM_ERROR.PROBE_TIMEOUT]: "Probe timeout",
|
|
28
|
-
[COMM_ERROR.MEMORY_ALLOC_FAILED]: "Memory allocation failed",
|
|
29
|
-
[COMM_ERROR.INVALID_FILE_SIZE]: "Invalid file size",
|
|
30
|
-
[COMM_ERROR.INVALID_FIRMWARE_HEADER]: "Invalid firmware header",
|
|
31
|
-
[COMM_ERROR.SECURE_PACKET_TIMEOUT]: "Secure packet timeout",
|
|
32
|
-
[COMM_ERROR.SECURE_CODE_MISMATCH]: "Secure code mismatch",
|
|
33
|
+
[index_js_1.COMM_ERROR.SUCCESS]: "Success",
|
|
34
|
+
[index_js_1.COMM_ERROR.PACKET_FORMAT_ERROR]: "Packet format error",
|
|
35
|
+
[index_js_1.COMM_ERROR.INVALID_PACKET_SIZE]: "Invalid packet size",
|
|
36
|
+
[index_js_1.COMM_ERROR.WRITE_TIMEOUT]: "Write timeout",
|
|
37
|
+
[index_js_1.COMM_ERROR.READ_TIMEOUT]: "Read timeout",
|
|
38
|
+
[index_js_1.COMM_ERROR.CHECKSUM_MISMATCH]: "Checksum mismatch",
|
|
39
|
+
[index_js_1.COMM_ERROR.PROBE_TIMEOUT]: "Probe timeout",
|
|
40
|
+
[index_js_1.COMM_ERROR.MEMORY_ALLOC_FAILED]: "Memory allocation failed",
|
|
41
|
+
[index_js_1.COMM_ERROR.INVALID_FILE_SIZE]: "Invalid file size",
|
|
42
|
+
[index_js_1.COMM_ERROR.INVALID_FIRMWARE_HEADER]: "Invalid firmware header",
|
|
43
|
+
[index_js_1.COMM_ERROR.SECURE_PACKET_TIMEOUT]: "Secure packet timeout",
|
|
44
|
+
[index_js_1.COMM_ERROR.SECURE_CODE_MISMATCH]: "Secure code mismatch",
|
|
33
45
|
};
|
|
34
46
|
/**
|
|
35
47
|
* Convert SFM error code to message
|
|
36
48
|
*/
|
|
37
|
-
|
|
49
|
+
function getSfmErrorMessage(code) {
|
|
38
50
|
return (SFM_ERROR_MESSAGES[code] || `Unknown SFM error (0x${code.toString(16)})`);
|
|
39
51
|
}
|
|
40
52
|
/**
|
|
41
53
|
* Convert communication error code to message
|
|
42
54
|
*/
|
|
43
|
-
|
|
55
|
+
function getCommErrorMessage(code) {
|
|
44
56
|
return COMM_ERROR_MESSAGES[code] || `Unknown comm error (${code})`;
|
|
45
57
|
}
|
|
46
58
|
/**
|
|
47
59
|
* Check if SFM response is success
|
|
48
60
|
*/
|
|
49
|
-
|
|
50
|
-
return flag === SFM_ERROR.SUCCESS;
|
|
61
|
+
function isSfmSuccess(flag) {
|
|
62
|
+
return flag === index_js_1.SFM_ERROR.SUCCESS;
|
|
51
63
|
}
|
|
52
64
|
/**
|
|
53
65
|
* Check if SFM response is retryable error
|
|
54
66
|
*/
|
|
55
|
-
|
|
56
|
-
return (flag === SFM_ERROR.TRY_AGAIN ||
|
|
57
|
-
flag === SFM_ERROR.SCAN_FAIL ||
|
|
58
|
-
flag === SFM_ERROR.TIME_OUT);
|
|
67
|
+
function isSfmRetryable(flag) {
|
|
68
|
+
return (flag === index_js_1.SFM_ERROR.TRY_AGAIN ||
|
|
69
|
+
flag === index_js_1.SFM_ERROR.SCAN_FAIL ||
|
|
70
|
+
flag === index_js_1.SFM_ERROR.TIME_OUT);
|
|
59
71
|
}
|
|
60
72
|
/**
|
|
61
73
|
* Check if it's a communication-level error (negative = error)
|
|
62
74
|
*/
|
|
63
|
-
|
|
75
|
+
function isCommError(code) {
|
|
64
76
|
return code < 0;
|
|
65
77
|
}
|
|
66
78
|
//# sourceMappingURL=errors.js.map
|
package/dist/core/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAuCH,gDAIC;AAKD,kDAEC;AAKD,oCAEC;AAKD,wCAMC;AAKD,kCAEC;AAzED,oDAA8D;AAE9D,gCAAgC;AAChC,kDAAwF;AAA/E,qGAAA,SAAS,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,0GAAA,cAAc,OAAA;AAExD,mCAAmC;AACnC,MAAM,kBAAkB,GAA2B;IACjD,CAAC,oBAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,oBAAS,CAAC,YAAY,CAAC,EAAE,cAAc;IACxC,CAAC,oBAAS,CAAC,SAAS,CAAC,EAAE,aAAa;IACpC,CAAC,oBAAS,CAAC,SAAS,CAAC,EAAE,WAAW;IAClC,CAAC,oBAAS,CAAC,SAAS,CAAC,EAAE,aAAa;IACpC,CAAC,oBAAS,CAAC,SAAS,CAAC,EAAE,WAAW;IAClC,CAAC,oBAAS,CAAC,QAAQ,CAAC,EAAE,SAAS;IAC/B,CAAC,oBAAS,CAAC,QAAQ,CAAC,EAAE,aAAa;IACnC,CAAC,oBAAS,CAAC,QAAQ,CAAC,EAAE,mBAAmB;IACzC,CAAC,oBAAS,CAAC,WAAW,CAAC,EAAE,qBAAqB;CAC/C,CAAC;AAEF,MAAM,mBAAmB,GAA2B;IAClD,CAAC,qBAAU,CAAC,OAAO,CAAC,EAAE,SAAS;IAC/B,CAAC,qBAAU,CAAC,mBAAmB,CAAC,EAAE,qBAAqB;IACvD,CAAC,qBAAU,CAAC,mBAAmB,CAAC,EAAE,qBAAqB;IACvD,CAAC,qBAAU,CAAC,aAAa,CAAC,EAAE,eAAe;IAC3C,CAAC,qBAAU,CAAC,YAAY,CAAC,EAAE,cAAc;IACzC,CAAC,qBAAU,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IACnD,CAAC,qBAAU,CAAC,aAAa,CAAC,EAAE,eAAe;IAC3C,CAAC,qBAAU,CAAC,mBAAmB,CAAC,EAAE,0BAA0B;IAC5D,CAAC,qBAAU,CAAC,iBAAiB,CAAC,EAAE,mBAAmB;IACnD,CAAC,qBAAU,CAAC,uBAAuB,CAAC,EAAE,yBAAyB;IAC/D,CAAC,qBAAU,CAAC,qBAAqB,CAAC,EAAE,uBAAuB;IAC3D,CAAC,qBAAU,CAAC,oBAAoB,CAAC,EAAE,sBAAsB;CAC1D,CAAC;AAEF;;GAEG;AACH,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,OAAO,CACL,kBAAkB,CAAC,IAAI,CAAC,IAAI,wBAAwB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CACzE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,IAAY;IAC9C,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,uBAAuB,IAAI,GAAG,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,KAAK,oBAAS,CAAC,OAAO,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,CACL,IAAI,KAAK,oBAAS,CAAC,SAAS;QAC5B,IAAI,KAAK,oBAAS,CAAC,SAAS;QAC5B,IAAI,KAAK,oBAAS,CAAC,QAAQ,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAI,GAAG,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core Module - Hardware Communication Foundation
|
|
3
3
|
*/
|
|
4
|
-
export { SfmClient } from './client';
|
|
5
|
-
export type { SfmClientOptions } from './client';
|
|
6
|
-
export { SfmSerial } from './serial';
|
|
7
|
-
export type { SerialPortInfo, SfmSerialOptions } from './serial';
|
|
8
|
-
export { SfmTcp } from './tcp';
|
|
9
|
-
export type { SfmTcpOptions } from './tcp';
|
|
10
|
-
export { SfmCrypto } from './crypto';
|
|
11
|
-
export type { SfmCryptoOptions, SecureRecvPacketResult } from './crypto';
|
|
12
|
-
export { getSfmErrorMessage, getCommErrorMessage, isSfmSuccess, isSfmRetryable, isCommError } from './errors';
|
|
13
|
-
export { calcChecksum, calcChecksum16, buildNormalPacket, buildNetworkPacket, buildDataPacket, parseNormalPacket, parseNetworkPacket, parseDataPacket, packetToHex, isValidStartByte, scanForStartByte, encodeHexAscii, decodeHexAscii, } from './packet';
|
|
14
|
-
export type { PacketType, NormalPacketResult, NetworkPacketResult, DataPacketResult } from './packet';
|
|
4
|
+
export { SfmClient } from './client.js';
|
|
5
|
+
export type { SfmClientOptions } from './client.js';
|
|
6
|
+
export { SfmSerial } from './serial.js';
|
|
7
|
+
export type { SerialPortInfo, SfmSerialOptions } from './serial.js';
|
|
8
|
+
export { SfmTcp } from './tcp.js';
|
|
9
|
+
export type { SfmTcpOptions } from './tcp.js';
|
|
10
|
+
export { SfmCrypto } from './crypto.js';
|
|
11
|
+
export type { SfmCryptoOptions, SecureRecvPacketResult } from './crypto.js';
|
|
12
|
+
export { getSfmErrorMessage, getCommErrorMessage, isSfmSuccess, isSfmRetryable, isCommError } from './errors.js';
|
|
13
|
+
export { calcChecksum, calcChecksum16, buildNormalPacket, buildNetworkPacket, buildDataPacket, parseNormalPacket, parseNetworkPacket, parseDataPacket, packetToHex, isValidStartByte, scanForStartByte, encodeHexAscii, decodeHexAscii, } from './packet.js';
|
|
14
|
+
export type { PacketType, NormalPacketResult, NetworkPacketResult, DataPacketResult } from './packet.js';
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEjH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -1,10 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* Core Module - Hardware Communication Foundation
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.decodeHexAscii = exports.encodeHexAscii = exports.scanForStartByte = exports.isValidStartByte = exports.packetToHex = exports.parseDataPacket = exports.parseNetworkPacket = exports.parseNormalPacket = exports.buildDataPacket = exports.buildNetworkPacket = exports.buildNormalPacket = exports.calcChecksum16 = exports.calcChecksum = exports.isCommError = exports.isSfmRetryable = exports.isSfmSuccess = exports.getCommErrorMessage = exports.getSfmErrorMessage = exports.SfmCrypto = exports.SfmTcp = exports.SfmSerial = exports.SfmClient = void 0;
|
|
7
|
+
var client_js_1 = require("./client.js");
|
|
8
|
+
Object.defineProperty(exports, "SfmClient", { enumerable: true, get: function () { return client_js_1.SfmClient; } });
|
|
9
|
+
var serial_js_1 = require("./serial.js");
|
|
10
|
+
Object.defineProperty(exports, "SfmSerial", { enumerable: true, get: function () { return serial_js_1.SfmSerial; } });
|
|
11
|
+
var tcp_js_1 = require("./tcp.js");
|
|
12
|
+
Object.defineProperty(exports, "SfmTcp", { enumerable: true, get: function () { return tcp_js_1.SfmTcp; } });
|
|
13
|
+
var crypto_js_1 = require("./crypto.js");
|
|
14
|
+
Object.defineProperty(exports, "SfmCrypto", { enumerable: true, get: function () { return crypto_js_1.SfmCrypto; } });
|
|
15
|
+
var errors_js_1 = require("./errors.js");
|
|
16
|
+
Object.defineProperty(exports, "getSfmErrorMessage", { enumerable: true, get: function () { return errors_js_1.getSfmErrorMessage; } });
|
|
17
|
+
Object.defineProperty(exports, "getCommErrorMessage", { enumerable: true, get: function () { return errors_js_1.getCommErrorMessage; } });
|
|
18
|
+
Object.defineProperty(exports, "isSfmSuccess", { enumerable: true, get: function () { return errors_js_1.isSfmSuccess; } });
|
|
19
|
+
Object.defineProperty(exports, "isSfmRetryable", { enumerable: true, get: function () { return errors_js_1.isSfmRetryable; } });
|
|
20
|
+
Object.defineProperty(exports, "isCommError", { enumerable: true, get: function () { return errors_js_1.isCommError; } });
|
|
21
|
+
var packet_js_1 = require("./packet.js");
|
|
22
|
+
Object.defineProperty(exports, "calcChecksum", { enumerable: true, get: function () { return packet_js_1.calcChecksum; } });
|
|
23
|
+
Object.defineProperty(exports, "calcChecksum16", { enumerable: true, get: function () { return packet_js_1.calcChecksum16; } });
|
|
24
|
+
Object.defineProperty(exports, "buildNormalPacket", { enumerable: true, get: function () { return packet_js_1.buildNormalPacket; } });
|
|
25
|
+
Object.defineProperty(exports, "buildNetworkPacket", { enumerable: true, get: function () { return packet_js_1.buildNetworkPacket; } });
|
|
26
|
+
Object.defineProperty(exports, "buildDataPacket", { enumerable: true, get: function () { return packet_js_1.buildDataPacket; } });
|
|
27
|
+
Object.defineProperty(exports, "parseNormalPacket", { enumerable: true, get: function () { return packet_js_1.parseNormalPacket; } });
|
|
28
|
+
Object.defineProperty(exports, "parseNetworkPacket", { enumerable: true, get: function () { return packet_js_1.parseNetworkPacket; } });
|
|
29
|
+
Object.defineProperty(exports, "parseDataPacket", { enumerable: true, get: function () { return packet_js_1.parseDataPacket; } });
|
|
30
|
+
Object.defineProperty(exports, "packetToHex", { enumerable: true, get: function () { return packet_js_1.packetToHex; } });
|
|
31
|
+
Object.defineProperty(exports, "isValidStartByte", { enumerable: true, get: function () { return packet_js_1.isValidStartByte; } });
|
|
32
|
+
Object.defineProperty(exports, "scanForStartByte", { enumerable: true, get: function () { return packet_js_1.scanForStartByte; } });
|
|
33
|
+
Object.defineProperty(exports, "encodeHexAscii", { enumerable: true, get: function () { return packet_js_1.encodeHexAscii; } });
|
|
34
|
+
Object.defineProperty(exports, "decodeHexAscii", { enumerable: true, get: function () { return packet_js_1.decodeHexAscii; } });
|
|
10
35
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;GAEG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAGf,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,yCAAiH;AAAxG,+GAAA,kBAAkB,OAAA;AAAE,gHAAA,mBAAmB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,wGAAA,WAAW,OAAA;AAE3F,yCAcqB;AAbnB,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,8GAAA,iBAAiB,OAAA;AACjB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,+GAAA,kBAAkB,OAAA;AAClB,4GAAA,eAAe,OAAA;AACf,wGAAA,WAAW,OAAA;AACX,6GAAA,gBAAgB,OAAA;AAChB,6GAAA,gBAAgB,OAAA;AAChB,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA"}
|
package/dist/core/packet.d.ts
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* Byte 4+: Payload data
|
|
32
32
|
* Last 2: 16-bit checksum (little-endian)
|
|
33
33
|
*/
|
|
34
|
-
export { START_CODE, END_CODE, PACKET_SIZE } from '../constants';
|
|
34
|
+
export { START_CODE, END_CODE, PACKET_SIZE } from '../constants/index.js';
|
|
35
35
|
export type PacketType = 'normal' | 'network' | 'secure';
|
|
36
36
|
export interface NormalPacketResult {
|
|
37
37
|
valid: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../src/core/packet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"packet.d.ts","sourceRoot":"","sources":["../../src/core/packet.ts"],"names":[],"mappings":"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"}
|