@canboat/canboatjs 3.14.0 → 3.15.1

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/index.d.ts CHANGED
@@ -33,6 +33,8 @@ export { YdDevice } from './yddevice';
33
33
  export { CanDevice } from './candevice';
34
34
  export { N2kDevice } from './n2kDevice';
35
35
  export { ActisenseStream as serial } from './actisense-serial';
36
+ export { buildMaretronConfigCommand, buildMaretronConfigCommandActisense, parseMaretronConfigResponse, getMaretronProductName, getMaretronOpcodeName } from './maretron';
37
+ export type { MaretronConfigResponse } from './maretron';
36
38
  export declare const lookupEnumerationValue: (enumName: string, value: string) => number | undefined;
37
39
  export declare const lookupEnumerationName: (enumName: string, value: number) => string | undefined;
38
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EACL,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAI9D,eAAO,MAAM,sBAAsB,yDAAsB,CAAA;AACzD,eAAO,MAAM,qBAAqB,yDAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EACL,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,KAAK,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,cAAc,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EACL,0BAA0B,EAC1B,mCAAmC,EACnC,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAIxD,eAAO,MAAM,sBAAsB,yDAAsB,CAAA;AACzD,eAAO,MAAM,qBAAqB,yDAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.lookupEnumerationName = exports.lookupEnumerationValue = exports.serial = exports.N2kDevice = exports.CanDevice = exports.YdDevice = exports.SimpleCan = exports.discover = exports.VenusMQTT = exports.Venus = exports.iKonvert = exports.W2k01 = exports.Ydgw02 = exports.Ydwg02 = exports.pgnToCandump3 = exports.pgnToCandump2 = exports.pgnToCandump1 = exports.pgnToMXPGN = exports.pgnToPCDIN = exports.pgnToYdgwFullRawFormat = exports.pgnToYdgwRawFormat = exports.pgnToiKonvertSerialFormat = exports.pgnToActisenseN2KAsciiFormat = exports.pgnToActisenseSerialFormat = exports.toPgn = exports.encodeCandump3 = exports.encodeCandump1 = exports.encodeMXPGN = exports.encodePCDIN = exports.encodePDGY = exports.encodeYDRAWFull = exports.encodeYDRAW = exports.encodeActisenseN2KACSII = exports.encodeActisense = exports.encodeCandump2 = exports.toActisenseSerialFormat = exports.isN2KString = exports.parseN2kString = exports.addCustomPgns = exports.canbus = exports.filterPGN = exports.setupFilters = exports.FromPgn = void 0;
18
+ exports.lookupEnumerationName = exports.lookupEnumerationValue = exports.getMaretronOpcodeName = exports.getMaretronProductName = exports.parseMaretronConfigResponse = exports.buildMaretronConfigCommandActisense = exports.buildMaretronConfigCommand = exports.serial = exports.N2kDevice = exports.CanDevice = exports.YdDevice = exports.SimpleCan = exports.discover = exports.VenusMQTT = exports.Venus = exports.iKonvert = exports.W2k01 = exports.Ydgw02 = exports.Ydwg02 = exports.pgnToCandump3 = exports.pgnToCandump2 = exports.pgnToCandump1 = exports.pgnToMXPGN = exports.pgnToPCDIN = exports.pgnToYdgwFullRawFormat = exports.pgnToYdgwRawFormat = exports.pgnToiKonvertSerialFormat = exports.pgnToActisenseN2KAsciiFormat = exports.pgnToActisenseSerialFormat = exports.toPgn = exports.encodeCandump3 = exports.encodeCandump1 = exports.encodeMXPGN = exports.encodePCDIN = exports.encodePDGY = exports.encodeYDRAWFull = exports.encodeYDRAW = exports.encodeActisenseN2KACSII = exports.encodeActisense = exports.encodeCandump2 = exports.toActisenseSerialFormat = exports.isN2KString = exports.parseN2kString = exports.addCustomPgns = exports.canbus = exports.filterPGN = exports.setupFilters = exports.FromPgn = void 0;
19
19
  var fromPgn_1 = require("./fromPgn");
20
20
  Object.defineProperty(exports, "FromPgn", { enumerable: true, get: function () { return fromPgn_1.Parser; } });
21
21
  var utilities_1 = require("./utilities");
@@ -75,6 +75,12 @@ var n2kDevice_1 = require("./n2kDevice");
75
75
  Object.defineProperty(exports, "N2kDevice", { enumerable: true, get: function () { return n2kDevice_1.N2kDevice; } });
76
76
  var actisense_serial_1 = require("./actisense-serial");
77
77
  Object.defineProperty(exports, "serial", { enumerable: true, get: function () { return actisense_serial_1.ActisenseStream; } });
78
+ var maretron_1 = require("./maretron");
79
+ Object.defineProperty(exports, "buildMaretronConfigCommand", { enumerable: true, get: function () { return maretron_1.buildMaretronConfigCommand; } });
80
+ Object.defineProperty(exports, "buildMaretronConfigCommandActisense", { enumerable: true, get: function () { return maretron_1.buildMaretronConfigCommandActisense; } });
81
+ Object.defineProperty(exports, "parseMaretronConfigResponse", { enumerable: true, get: function () { return maretron_1.parseMaretronConfigResponse; } });
82
+ Object.defineProperty(exports, "getMaretronProductName", { enumerable: true, get: function () { return maretron_1.getMaretronProductName; } });
83
+ Object.defineProperty(exports, "getMaretronOpcodeName", { enumerable: true, get: function () { return maretron_1.getMaretronOpcodeName; } });
78
84
  const ts_pgns_1 = require("@canboat/ts-pgns");
79
85
  exports.lookupEnumerationValue = ts_pgns_1.getEnumerationValue;
80
86
  exports.lookupEnumerationName = ts_pgns_1.getEnumerationName;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,qCAA6C;AAApC,kGAAA,MAAM,OAAW;AAE1B,yCAAqD;AAA5C,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAEhC,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,+BAAsC;AAA7B,qGAAA,aAAa,OAAA;AACtB,yCAcoB;AAblB,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,oHAAA,uBAAuB,OAAA;AACvB,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,oHAAA,uBAAuB,OAAA;AACvB,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AAEhB,iCAYgB;AAXd,8FAAA,KAAK,OAAA;AACL,mHAAA,0BAA0B,OAAA;AAC1B,qHAAA,4BAA4B,OAAA;AAC5B,kHAAA,yBAAyB,OAAA;AACzB,2GAAA,kBAAkB,OAAA;AAClB,+GAAA,sBAAsB,OAAA;AACtB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AAEf,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,iCAA8C;AAArC,8FAAA,WAAW,OAAS;AAC7B,uCAAuD;AAA9C,oGAAA,cAAc,OAAY;AACnC,iCAA8C;AAArC,8FAAA,WAAW,OAAS;AAC7B,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAClB,yCAAsC;AAA7B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,uDAA8D;AAArD,0GAAA,eAAe,OAAU;AAElC,8CAA0E;AAE7D,QAAA,sBAAsB,GAAG,6BAAmB,CAAA;AAC5C,QAAA,qBAAqB,GAAG,4BAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,qCAA6C;AAApC,kGAAA,MAAM,OAAW;AAE1B,yCAAqD;AAA5C,yGAAA,YAAY,OAAA;AAAE,sGAAA,SAAS,OAAA;AAEhC,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,+BAAsC;AAA7B,qGAAA,aAAa,OAAA;AACtB,yCAcoB;AAblB,2GAAA,cAAc,OAAA;AACd,wGAAA,WAAW,OAAA;AACX,oHAAA,uBAAuB,OAAA;AACvB,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AACf,oHAAA,uBAAuB,OAAA;AACvB,wGAAA,WAAW,OAAA;AACX,4GAAA,eAAe,OAAA;AACf,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,wGAAA,WAAW,OAAA;AACX,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AAEhB,iCAYgB;AAXd,8FAAA,KAAK,OAAA;AACL,mHAAA,0BAA0B,OAAA;AAC1B,qHAAA,4BAA4B,OAAA;AAC5B,kHAAA,yBAAyB,OAAA;AACzB,2GAAA,kBAAkB,OAAA;AAClB,+GAAA,sBAAsB,OAAA;AACtB,mGAAA,UAAU,OAAA;AACV,mGAAA,UAAU,OAAA;AACV,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AACb,sGAAA,aAAa,OAAA;AAEf,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,mCAAiD;AAAxC,gGAAA,YAAY,OAAU;AAC/B,iCAA8C;AAArC,8FAAA,WAAW,OAAS;AAC7B,uCAAuD;AAA9C,oGAAA,cAAc,OAAY;AACnC,iCAA8C;AAArC,8FAAA,WAAW,OAAS;AAC7B,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAClB,yCAAsC;AAA7B,qGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,yCAAuC;AAA9B,sGAAA,SAAS,OAAA;AAClB,uDAA8D;AAArD,0GAAA,eAAe,OAAU;AAClC,uCAMmB;AALjB,sHAAA,0BAA0B,OAAA;AAC1B,+HAAA,mCAAmC,OAAA;AACnC,uHAAA,2BAA2B,OAAA;AAC3B,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AAIvB,8CAA0E;AAE7D,QAAA,sBAAsB,GAAG,6BAAmB,CAAA;AAC5C,QAAA,qBAAqB,GAAG,4BAAkB,CAAA"}
@@ -0,0 +1,74 @@
1
+ import { PGN } from '@canboat/ts-pgns';
2
+ /**
3
+ * Build a raw PGN 126208 Command payload targeting PGN 126720 for Maretron
4
+ * proprietary device configuration. This bypasses canboatjs's structured
5
+ * 126208 encoder because Maretron's field index scheme doesn't match
6
+ * canboat's semantic field ordering for PGN 126720.
7
+ *
8
+ * Wire format (confirmed from live capture):
9
+ * ```
10
+ * [0] FC = 0x01 (Command)
11
+ * [1-3] Target PGN = 0x01EF00 (126720) LE
12
+ * [4] Priority + Reserved = 0xF8
13
+ * [5] Number of params = 0x04
14
+ * [6] Field idx 1
15
+ * [7-8] Mfr code packed = 0x9889 (mfr=137, rsvd=1, ind=4)
16
+ * [9] Field idx 2
17
+ * [10-11] Product code (LE)
18
+ * [12] Field idx 3
19
+ * [13-14] Sub-header = 0x0001
20
+ * [15+] Opcode + payload bytes
21
+ * ```
22
+ *
23
+ * @param dst Destination device address on the N2K bus
24
+ * @param productCode Maretron product code (e.g. 23603 for SIM100)
25
+ * @param opcodePayload Array of bytes: [opcode, ...data]
26
+ * @returns PGN object suitable for emission via nmea2000JsonOut
27
+ */
28
+ export declare function buildMaretronConfigCommand(dst: number, productCode: number, opcodePayload: number[]): PGN & {
29
+ dst: number;
30
+ fields: {
31
+ data: string;
32
+ };
33
+ };
34
+ /**
35
+ * Build a raw PGN 126208 Command as an actisense-format hex string,
36
+ * suitable for emission via the nmea2000out event.
37
+ *
38
+ * @param dst Destination device address on the N2K bus
39
+ * @param productCode Maretron product code
40
+ * @param opcodePayload Array of bytes: [opcode, ...data]
41
+ * @returns Actisense serial format string
42
+ */
43
+ export declare function buildMaretronConfigCommandActisense(dst: number, productCode: number, opcodePayload: number[]): string;
44
+ export interface MaretronConfigResponse {
45
+ productCode: number;
46
+ productName: string | undefined;
47
+ softwareCode: number;
48
+ opcode: number;
49
+ opcodeName: string | undefined;
50
+ payload: number[];
51
+ }
52
+ /**
53
+ * Parse a decoded PGN 126720 that matches the Maretron proprietary
54
+ * configuration format. Works with both the new maretronProprietaryConfiguration
55
+ * variant (which has named fields) and the generic maretronSlaveResponse.
56
+ *
57
+ * For maretronProprietaryConfiguration:
58
+ * fields.productCode, fields.softwareCode, fields.opcode, fields.payload
59
+ *
60
+ * For raw PGN objects with a data field, extracts bytes directly.
61
+ *
62
+ * @param pgn A decoded PGN 126720 object
63
+ * @returns Parsed Maretron config info, or null if not a Maretron config PGN
64
+ */
65
+ export declare function parseMaretronConfigResponse(pgn: any): MaretronConfigResponse | null;
66
+ /**
67
+ * Get the product name for a Maretron product code.
68
+ */
69
+ export declare function getMaretronProductName(productCode: number): string | undefined;
70
+ /**
71
+ * Get the opcode name for a Maretron config opcode.
72
+ */
73
+ export declare function getMaretronOpcodeName(opcode: number): string | undefined;
74
+ //# sourceMappingURL=maretron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maretron.d.ts","sourceRoot":"","sources":["../lib/maretron.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAGJ,MAAM,kBAAkB,CAAA;AAazB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,GACtB,GAAG,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CA+BjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EAAE,GACtB,MAAM,CA0BR;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,GAAG,GACP,sBAAsB,GAAG,IAAI,CA+D/B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAEpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildMaretronConfigCommand = buildMaretronConfigCommand;
4
+ exports.buildMaretronConfigCommandActisense = buildMaretronConfigCommandActisense;
5
+ exports.parseMaretronConfigResponse = parseMaretronConfigResponse;
6
+ exports.getMaretronProductName = getMaretronProductName;
7
+ exports.getMaretronOpcodeName = getMaretronOpcodeName;
8
+ const ts_pgns_1 = require("@canboat/ts-pgns");
9
+ // Build reverse lookups from ts-pgns enums: numeric code → name string
10
+ const PRODUCT_NAMES = {};
11
+ for (const [name, code] of Object.entries(ts_pgns_1.MaretronProductCodeValues)) {
12
+ PRODUCT_NAMES[code] = name;
13
+ }
14
+ const OPCODE_NAMES = {};
15
+ for (const [name, code] of Object.entries(ts_pgns_1.MaretronOpcodeValues)) {
16
+ OPCODE_NAMES[code] = name;
17
+ }
18
+ /**
19
+ * Build a raw PGN 126208 Command payload targeting PGN 126720 for Maretron
20
+ * proprietary device configuration. This bypasses canboatjs's structured
21
+ * 126208 encoder because Maretron's field index scheme doesn't match
22
+ * canboat's semantic field ordering for PGN 126720.
23
+ *
24
+ * Wire format (confirmed from live capture):
25
+ * ```
26
+ * [0] FC = 0x01 (Command)
27
+ * [1-3] Target PGN = 0x01EF00 (126720) LE
28
+ * [4] Priority + Reserved = 0xF8
29
+ * [5] Number of params = 0x04
30
+ * [6] Field idx 1
31
+ * [7-8] Mfr code packed = 0x9889 (mfr=137, rsvd=1, ind=4)
32
+ * [9] Field idx 2
33
+ * [10-11] Product code (LE)
34
+ * [12] Field idx 3
35
+ * [13-14] Sub-header = 0x0001
36
+ * [15+] Opcode + payload bytes
37
+ * ```
38
+ *
39
+ * @param dst Destination device address on the N2K bus
40
+ * @param productCode Maretron product code (e.g. 23603 for SIM100)
41
+ * @param opcodePayload Array of bytes: [opcode, ...data]
42
+ * @returns PGN object suitable for emission via nmea2000JsonOut
43
+ */
44
+ function buildMaretronConfigCommand(dst, productCode, opcodePayload) {
45
+ const payload = [
46
+ 0x01, // Function Code: Command
47
+ 0x00,
48
+ 0xef,
49
+ 0x01, // Target PGN 126720 (0x01EF00) LE
50
+ 0xf8, // Priority=15 (leave unchanged) + reserved
51
+ 0x04, // Number of parameters
52
+ 0x01, // Field index 1: manufacturer code
53
+ 0x89,
54
+ 0x98, // Packed: mfr=137(0x89), reserved=1, industry=4 → 0x9889 LE
55
+ 0x02, // Field index 2: product code
56
+ productCode & 0xff,
57
+ (productCode >> 8) & 0xff, // Product code LE
58
+ 0x03, // Field index 3: sub-header
59
+ 0x01,
60
+ 0x00, // Sub-header = 0x0001
61
+ ...opcodePayload
62
+ ];
63
+ const hexData = payload.map((b) => b.toString(16).padStart(2, '0')).join(',');
64
+ return {
65
+ pgn: 126208,
66
+ prio: 3,
67
+ dst,
68
+ src: 0,
69
+ fields: {
70
+ data: hexData
71
+ }
72
+ };
73
+ }
74
+ /**
75
+ * Build a raw PGN 126208 Command as an actisense-format hex string,
76
+ * suitable for emission via the nmea2000out event.
77
+ *
78
+ * @param dst Destination device address on the N2K bus
79
+ * @param productCode Maretron product code
80
+ * @param opcodePayload Array of bytes: [opcode, ...data]
81
+ * @returns Actisense serial format string
82
+ */
83
+ function buildMaretronConfigCommandActisense(dst, productCode, opcodePayload) {
84
+ const payload = [
85
+ 0x01,
86
+ 0x00,
87
+ 0xef,
88
+ 0x01,
89
+ 0xf8,
90
+ 0x04,
91
+ 0x01,
92
+ 0x89,
93
+ 0x98,
94
+ 0x02,
95
+ productCode & 0xff,
96
+ (productCode >> 8) & 0xff,
97
+ 0x03,
98
+ 0x01,
99
+ 0x00,
100
+ ...opcodePayload
101
+ ];
102
+ const now = new Date();
103
+ const timestamp = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}T${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}:${String(now.getSeconds()).padStart(2, '0')}.${String(now.getMilliseconds()).padStart(3, '0')}Z`;
104
+ const hexBytes = payload
105
+ .map((b) => b.toString(16).padStart(2, '0').toUpperCase())
106
+ .join(',');
107
+ return `${timestamp},3,126208,0,${dst},${payload.length},${hexBytes}`;
108
+ }
109
+ /**
110
+ * Parse a decoded PGN 126720 that matches the Maretron proprietary
111
+ * configuration format. Works with both the new maretronProprietaryConfiguration
112
+ * variant (which has named fields) and the generic maretronSlaveResponse.
113
+ *
114
+ * For maretronProprietaryConfiguration:
115
+ * fields.productCode, fields.softwareCode, fields.opcode, fields.payload
116
+ *
117
+ * For raw PGN objects with a data field, extracts bytes directly.
118
+ *
119
+ * @param pgn A decoded PGN 126720 object
120
+ * @returns Parsed Maretron config info, or null if not a Maretron config PGN
121
+ */
122
+ function parseMaretronConfigResponse(pgn) {
123
+ if (!pgn || pgn.pgn !== 126720) {
124
+ return null;
125
+ }
126
+ const fields = pgn.fields;
127
+ // Check for Maretron manufacturer code
128
+ if (fields?.manufacturerCode !== 'Maretron' &&
129
+ fields?.manufacturerCode !== 137) {
130
+ return null;
131
+ }
132
+ // New maretronProprietaryConfiguration variant with named fields
133
+ if (fields.opcode !== undefined) {
134
+ const productCode = typeof fields.productCode === 'number' ? fields.productCode : 0;
135
+ const softwareCode = typeof fields.softwareCode === 'number' ? fields.softwareCode : 0;
136
+ const opcode = typeof fields.opcode === 'number' ? fields.opcode : 0;
137
+ let payloadBytes = [];
138
+ if (fields.payload) {
139
+ if (typeof fields.payload === 'string') {
140
+ payloadBytes = fields.payload
141
+ .split(',')
142
+ .map((s) => parseInt(s, 16));
143
+ }
144
+ else if (Buffer.isBuffer(fields.payload)) {
145
+ payloadBytes = Array.from(fields.payload);
146
+ }
147
+ }
148
+ return {
149
+ productCode,
150
+ productName: PRODUCT_NAMES[productCode],
151
+ softwareCode,
152
+ opcode,
153
+ opcodeName: OPCODE_NAMES[opcode],
154
+ payload: payloadBytes
155
+ };
156
+ }
157
+ // Legacy maretronSlaveResponse: command field maps to opcode
158
+ if (fields.command !== undefined) {
159
+ const productCode = typeof fields.productCode === 'number' ? fields.productCode : 0;
160
+ const softwareCode = typeof fields.softwareCode === 'number' ? fields.softwareCode : 0;
161
+ const opcode = typeof fields.command === 'number' ? fields.command : 0;
162
+ return {
163
+ productCode,
164
+ productName: PRODUCT_NAMES[productCode],
165
+ softwareCode,
166
+ opcode,
167
+ opcodeName: OPCODE_NAMES[opcode],
168
+ payload: []
169
+ };
170
+ }
171
+ return null;
172
+ }
173
+ /**
174
+ * Get the product name for a Maretron product code.
175
+ */
176
+ function getMaretronProductName(productCode) {
177
+ return PRODUCT_NAMES[productCode];
178
+ }
179
+ /**
180
+ * Get the opcode name for a Maretron config opcode.
181
+ */
182
+ function getMaretronOpcodeName(opcode) {
183
+ return OPCODE_NAMES[opcode];
184
+ }
185
+ //# sourceMappingURL=maretron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maretron.js","sourceRoot":"","sources":["../lib/maretron.ts"],"names":[],"mappings":";;AA2CA,gEAmCC;AAWD,kFA8BC;AAwBD,kEAiEC;AAKD,wDAIC;AAKD,sDAEC;AAhOD,8CAIyB;AAEzB,uEAAuE;AACvE,MAAM,aAAa,GAA+B,EAAE,CAAA;AACpD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mCAAyB,CAAC,EAAE,CAAC;IACrE,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED,MAAM,YAAY,GAA+B,EAAE,CAAA;AACnD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,8BAAoB,CAAC,EAAE,CAAC;IAChE,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC3B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,0BAA0B,CACxC,GAAW,EACX,WAAmB,EACnB,aAAuB;IAEvB,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,yBAAyB;QAC/B,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,2CAA2C;QACjD,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,mCAAmC;QACzC,IAAI;QACJ,IAAI,EAAE,4DAA4D;QAClE,IAAI,EAAE,8BAA8B;QACpC,WAAW,GAAG,IAAI;QAClB,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,kBAAkB;QAC7C,IAAI,EAAE,4BAA4B;QAClC,IAAI;QACJ,IAAI,EAAE,sBAAsB;QAC5B,GAAG,aAAa;KACjB,CAAA;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE7E,OAAO;QACL,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,CAAC;QACP,GAAG;QACH,GAAG,EAAE,CAAC;QACN,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;SACd;KACiD,CAAA;AACtD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,mCAAmC,CACjD,GAAW,EACX,WAAmB,EACnB,aAAuB;IAEvB,MAAM,OAAO,GAAG;QACd,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,WAAW,GAAG,IAAI;QAClB,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI;QACzB,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,GAAG,aAAa;KACjB,CAAA;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAA;IACzT,MAAM,QAAQ,GAAG,OAAO;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;SACzD,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,OAAO,GAAG,SAAS,eAAe,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAA;AACvE,CAAC;AAWD;;;;;;;;;;;;GAYG;AACH,SAAgB,2BAA2B,CACzC,GAAQ;IAER,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAEzB,uCAAuC;IACvC,IACE,MAAM,EAAE,gBAAgB,KAAK,UAAU;QACvC,MAAM,EAAE,gBAAgB,KAAK,GAAG,EAChC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,iEAAiE;IACjE,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,WAAW,GACf,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpE,IAAI,YAAY,GAAa,EAAE,CAAA;QAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACvC,YAAY,GAAG,MAAM,CAAC,OAAO;qBAC1B,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YACxC,CAAC;iBAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW;YACX,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;YACvC,YAAY;YACZ,MAAM;YACN,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,YAAY;SACtB,CAAA;IACH,CAAC;IAED,6DAA6D;IAC7D,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GACf,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QACjE,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QAEtE,OAAO;YACL,WAAW;YACX,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC;YACvC,YAAY;YACZ,MAAM;YACN,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,EAAE;SACZ,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CACpC,WAAmB;IAEnB,OAAO,aAAa,CAAC,WAAW,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=maretron.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maretron.test.d.ts","sourceRoot":"","sources":["../lib/maretron.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const maretron_1 = require("./maretron");
4
+ describe('buildMaretronConfigCommand', () => {
5
+ test('SIM100 Read All produces correct payload', () => {
6
+ // From maretron.md: 01 00 ef 01 f8 04 01 89 98 02 33 5c 03 01 00 56 ff
7
+ const result = (0, maretron_1.buildMaretronConfigCommand)(211, 23603, [0x56, 0xff]);
8
+ expect(result.pgn).toBe(126208);
9
+ expect(result.dst).toBe(211);
10
+ const bytes = result.fields.data
11
+ .split(',')
12
+ .map((s) => parseInt(s, 16));
13
+ const expected = [
14
+ 0x01, 0x00, 0xef, 0x01, 0xf8, 0x04, 0x01, 0x89, 0x98, 0x02, 0x33, 0x5c,
15
+ 0x03, 0x01, 0x00, 0x56, 0xff
16
+ ];
17
+ expect(bytes).toEqual(expected);
18
+ });
19
+ test('SIM100 Write Ch3 mode produces correct payload', () => {
20
+ // From maretron.md: 01 00 ef 01 f8 04 01 89 98 02 33 5c 03 01 00 57 22 01 ff
21
+ const result = (0, maretron_1.buildMaretronConfigCommand)(211, 23603, [0x57, 0x22, 0x01, 0xff]);
22
+ const bytes = result.fields.data
23
+ .split(',')
24
+ .map((s) => parseInt(s, 16));
25
+ const expected = [
26
+ 0x01, 0x00, 0xef, 0x01, 0xf8, 0x04, 0x01, 0x89, 0x98, 0x02, 0x33, 0x5c,
27
+ 0x03, 0x01, 0x00, 0x57, 0x22, 0x01, 0xff
28
+ ];
29
+ expect(bytes).toEqual(expected);
30
+ });
31
+ test('TLA100 Read Config produces correct payload', () => {
32
+ // TLA100 product code = 2781 = 0x0ADD
33
+ const result = (0, maretron_1.buildMaretronConfigCommand)(100, 2781, [0x30, 0x00]);
34
+ const bytes = result.fields.data
35
+ .split(',')
36
+ .map((s) => parseInt(s, 16));
37
+ expect(bytes[10]).toBe(0xdd); // product code low byte
38
+ expect(bytes[11]).toBe(0x0a); // product code high byte
39
+ expect(bytes[15]).toBe(0x30); // opcode: Read Config
40
+ expect(bytes[16]).toBe(0x00);
41
+ });
42
+ test('DCR100 Switch Lock produces correct payload', () => {
43
+ // DCR100 product code = 22585 = 0x5839
44
+ const result = (0, maretron_1.buildMaretronConfigCommand)(150, 22585, [0x67, 0x00, 0x01]);
45
+ const bytes = result.fields.data
46
+ .split(',')
47
+ .map((s) => parseInt(s, 16));
48
+ expect(bytes[10]).toBe(0x39); // product code low byte
49
+ expect(bytes[11]).toBe(0x58); // product code high byte
50
+ expect(bytes[15]).toBe(0x67); // opcode: Switch Lock
51
+ expect(bytes[16]).toBe(0x00);
52
+ expect(bytes[17]).toBe(0x01);
53
+ });
54
+ });
55
+ describe('buildMaretronConfigCommandActisense', () => {
56
+ test('produces valid actisense format string', () => {
57
+ const result = (0, maretron_1.buildMaretronConfigCommandActisense)(211, 23603, [0x56, 0xff]);
58
+ const parts = result.split(',');
59
+ // Format: timestamp,prio,pgn,src,dst,len,hex...
60
+ expect(parts[1]).toBe('3'); // priority
61
+ expect(parts[2]).toBe('126208'); // pgn
62
+ expect(parts[3]).toBe('0'); // src
63
+ expect(parts[4]).toBe('211'); // dst
64
+ expect(parseInt(parts[5])).toBe(17); // length
65
+ expect(parts[6]).toBe('01'); // FC=Command
66
+ });
67
+ });
68
+ describe('parseMaretronConfigResponse', () => {
69
+ test('parses maretronProprietaryConfiguration variant', () => {
70
+ const pgn = {
71
+ pgn: 126720,
72
+ fields: {
73
+ manufacturerCode: 'Maretron',
74
+ industryCode: 'Marine Industry',
75
+ productCode: 23603,
76
+ softwareCode: 1,
77
+ opcode: 0x56,
78
+ payload: '00,64,00,01,64,00'
79
+ }
80
+ };
81
+ const result = (0, maretron_1.parseMaretronConfigResponse)(pgn);
82
+ expect(result).not.toBeNull();
83
+ expect(result.productCode).toBe(23603);
84
+ expect(result.productName).toBe('SIM100');
85
+ expect(result.opcode).toBe(0x56);
86
+ expect(result.opcodeName).toBe('Read Channel Config Extended');
87
+ expect(result.payload).toEqual([0x00, 0x64, 0x00, 0x01, 0x64, 0x00]);
88
+ });
89
+ test('parses maretronSlaveResponse variant with command field', () => {
90
+ const pgn = {
91
+ pgn: 126720,
92
+ fields: {
93
+ manufacturerCode: 'Maretron',
94
+ industryCode: 'Marine Industry',
95
+ productCode: 22585,
96
+ softwareCode: 1,
97
+ command: 0xfa
98
+ }
99
+ };
100
+ const result = (0, maretron_1.parseMaretronConfigResponse)(pgn);
101
+ expect(result).not.toBeNull();
102
+ expect(result.productCode).toBe(22585);
103
+ expect(result.productName).toBe('DCR100');
104
+ expect(result.opcode).toBe(0xfa);
105
+ expect(result.opcodeName).toBeUndefined();
106
+ });
107
+ test('returns null for non-Maretron PGN', () => {
108
+ const pgn = {
109
+ pgn: 126720,
110
+ fields: {
111
+ manufacturerCode: 'Raymarine',
112
+ industryCode: 'Marine Industry'
113
+ }
114
+ };
115
+ expect((0, maretron_1.parseMaretronConfigResponse)(pgn)).toBeNull();
116
+ });
117
+ test('returns null for wrong PGN number', () => {
118
+ expect((0, maretron_1.parseMaretronConfigResponse)({ pgn: 60928, fields: {} })).toBeNull();
119
+ });
120
+ test('returns null for null input', () => {
121
+ expect((0, maretron_1.parseMaretronConfigResponse)(null)).toBeNull();
122
+ });
123
+ test('handles numeric manufacturer code', () => {
124
+ const pgn = {
125
+ pgn: 126720,
126
+ fields: {
127
+ manufacturerCode: 137,
128
+ productCode: 2781,
129
+ softwareCode: 1,
130
+ opcode: 0x30
131
+ }
132
+ };
133
+ const result = (0, maretron_1.parseMaretronConfigResponse)(pgn);
134
+ expect(result).not.toBeNull();
135
+ expect(result.productName).toBe('TLA100');
136
+ expect(result.opcodeName).toBe('Write Switch Config');
137
+ });
138
+ });
139
+ describe('getMaretronProductName', () => {
140
+ test('returns name for known product codes', () => {
141
+ expect((0, maretron_1.getMaretronProductName)(23603)).toBe('SIM100');
142
+ expect((0, maretron_1.getMaretronProductName)(2781)).toBe('TLA100');
143
+ expect((0, maretron_1.getMaretronProductName)(22585)).toBe('DCR100');
144
+ expect((0, maretron_1.getMaretronProductName)(26493)).toBe('ACM100');
145
+ });
146
+ test('returns undefined for unknown product code', () => {
147
+ expect((0, maretron_1.getMaretronProductName)(99999)).toBeUndefined();
148
+ });
149
+ });
150
+ describe('getMaretronOpcodeName', () => {
151
+ test('returns name for known opcodes', () => {
152
+ expect((0, maretron_1.getMaretronOpcodeName)(0x56)).toBe('Read Channel Config Extended');
153
+ expect((0, maretron_1.getMaretronOpcodeName)(0x57)).toBe('Write Channel Config Extended');
154
+ expect((0, maretron_1.getMaretronOpcodeName)(0x30)).toBe('Write Switch Config');
155
+ expect((0, maretron_1.getMaretronOpcodeName)(0x02)).toBe('Read Config');
156
+ });
157
+ test('returns undefined for unknown opcode', () => {
158
+ expect((0, maretron_1.getMaretronOpcodeName)(0x99)).toBeUndefined();
159
+ });
160
+ });
161
+ //# sourceMappingURL=maretron.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maretron.test.js","sourceRoot":"","sources":["../lib/maretron.test.ts"],"names":[],"mappings":"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"}
package/dist/toPgn.js CHANGED
@@ -506,9 +506,9 @@ fieldTypeWriters[RES_STRINGLAU] = (pgn, field, value, bs) => {
506
506
  }
507
507
  };
508
508
  fieldTypeMappers['DATE'] = (field, value) => {
509
- //console.log(`Date: ${value}`)
510
509
  if (lodash_1.default.isString(value)) {
511
- const date = new Date(value);
510
+ const parts = value.split('.');
511
+ const date = new Date(Date.UTC(Number(parts[0]), Number(parts[1]) - 1, Number(parts[2])));
512
512
  return date.getTime() / 86400 / 1000;
513
513
  }
514
514
  return value;
package/dist/toPgn.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"toPgn.js","sourceRoot":"","sources":["../lib/toPgn.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;AAwDH,sBAwJC;AAkND,gEASC;AAED,oEASC;AAED,0DAKC;AAED,wDAEC;AAED,8DAKC;AAED,gDAEC;AAED,wDAEC;AAED,gCAEC;AAED,gCAEC;AAED,sCAEC;AAED,sCAEC;AAED,sCAEC;AAleD,8CAOyB;AACzB,uCAAoC;AACpC,iCAA6C;AAC7C,oDAAsB;AACtB,2CAAsC;AACtC,+CAAgD;AAChD,2CAYoB;AACpB,mDAAoD;AACpD,2CAA2D;AAE3D,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,iBAAiB,CAAC,CAAA;AAE5C,MAAM,aAAa,GAAG,YAAY,CAAA,CAAC,iEAAiE;AACpG,MAAM,YAAY,GAAG,WAAW,CAAA,CAAC,0CAA0C;AAU3E,MAAM,gBAAgB,GAElB,EAAE,CAAA;AACN,MAAM,gBAAgB,GAElB,EAAE,CAAA;AAEN,0FAA0F;AAE1F,MAAM,cAAc,GAAG,iBAAiB,CAAA;AACxC,MAAM,cAAc,GAAG,sBAAsB,CAAA;AAE7C,SAAgB,KAAK,CAAC,IAAS;IAC7B,MAAM,UAAU,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,IAAI,OAAO,GAAG,IAAA,aAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,OAAM;IACR,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,oCAAoC;IACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CACnE,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAA;IAC3B,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAExB,MAAM,EAAE,GAAG,IAAI,sBAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IAE3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,UAAU,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3E,gFAAgF;QAChF,0CAA0C;QAE1C,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC3B,IAAI,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAA;IAC1D,IAAI,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAA;IAC1D,IAAI,oBAAoB,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;IAC9D,IAAI,qBAAyC,CAAA;IAC7C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAE3B,yEAAyE;QACzE,IACE,KAAK,CAAC,SAAS,KAAK,kBAAkB;YACtC,qBAAqB,KAAK,SAAS;YACnC,CAAC,IAAA,4BAAgB,EAAC,qBAAqB,CAAC,EACxC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,GACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAEpE,4DAA4D;QAC5D,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,qBAAqB,GAAG,KAAK,CAAA;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,oFAAoF;YACpF,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,IAAI,KAAK;oBACnC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;oBAC5C,CAAC,CAAC,QAAQ,KAAK,IAAI,CACtB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,KAAK;oBAC7B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;oBACtC,CAAC,CAAC,QAAQ,KAAK,IAAI,CACtB,CAAA;YACH,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,wEAAwE;gBACxE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBACpB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAA;gBACnC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;gBACvB,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAA;gBACtD,gBAAgB,GAAG,OAAO,CAAC,sBAAsB,IAAI,CAAC,CAAA;gBACtD,oBAAoB,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;YAC5D,CAAC;QACH,CAAC;QACD,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACxD,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAA;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;YAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAA;gBACvC,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS;oBAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAEtB,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YACxD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,IAAI,CAAC,KAAK,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAA;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,CAAA;gBACvC,MAAM,KAAK,GACT,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS;oBAC9B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAEtB,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YACxD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAA;IAC5C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,0BAA0B;QAC1B,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC9B,sCAAsC;IACxC,CAAC;IAED,IACE,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,OAAO,CAAC,MAAM,KAAK,IAAI;QACvB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa;QACrD,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY;QACpD,CAAC,oBAAoB,EACrB,CAAC;QACD,uDAAuD;QACvD,8BAA8B;QAE9B,wCAAwC;QACxC,0DAA0D;QAC1D,GAAG;QAEH,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;;EAWE;AAEF,SAAS,UAAU,CACjB,EAAa,EACb,UAAkB,EAClB,KAAY,EACZ,IAAS,EACT,KAAU,EACV,MAAe,EACf,YAAgC,SAAS;IAEzC,+BAA+B;IAE/B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,SAAS,KAAK,qBAAqB,EAAE,CAAC;YACzE,SAAS,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,KAAK,CAAC,SAAS,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,IAAI,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACjE,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,SAAS,GAAG,CAAC,CAAA;YAC3B,8DAA8D;YAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC;YACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,iCAAiC;QACnC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAA;QAC5B,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;aAAM,IACL,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ;YAC3B,KAAK,CAAC,SAAS,KAAK,mBAAmB,CAAC;YAC1C,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EACjB,CAAC;YACD,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,IAAI,QAAQ,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClD,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzD,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;QACjE,CAAC;aAAM,CAAC;YACN;;;;gBAII;YAEJ,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,KAAK,IAAI,KAAK,CAAA,CAAC,kBAAkB;YACnC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/B,KAAK,IAAI,MAAM,CAAA,CAAC,iBAAiB;YACnC,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,IAAI,KAAK,CAAC,MAAM,CAAA;YACvB,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACnC,wBAAwB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;YACtE,CAAC;iBAAM,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;gBACxC,EAAE,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAA;YAC9B,CAAC;iBAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBACnC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;oBACpB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;oBACtB,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;oBACtB,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;oBACtB,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;oBACvB,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;oBAC/C,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,CAAA;oBACzB,IAAI,GAAG,GAAG,KAAK,CAAA;oBACf,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;wBACd,GAAG,EAAE,CAAA;oBACP,CAAC;oBACD,OAAO,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;wBACnB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;4BACd,EAAE,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;4BACxB,GAAG,IAAI,GAAG,CAAA;wBACZ,CAAC;6BAAM,CAAC;4BACN,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;4BACjC,GAAG,IAAI,GAAG,CAAA;wBACZ,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;oBAC5B,IAAI,GAAG,CAAA;oBACP,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,GAAG,GAAG,IAAI,sBAAO,CAAC,KAAK,CAAC,CAAA;oBAC1B,CAAC;yBAAM,CAAC;wBACN,GAAG,GAAG,IAAI,uBAAQ,CAAC,KAAK,CAAC,CAAA;oBAC3B,CAAC;oBACD,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;oBAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,CAAA;oBACtC,EAAE,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,CAAA;gBAC5B,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,yCAAyC;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAC/B,EAAa,EACb,UAAkB,EAClB,GAAQ,EACR,KAAY,EACZ,KAAU,EACV,MAAe;IAEf,MAAM,QAAQ,GAAG,IAAA,kBAAQ,EACvB,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EACjB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,EACpC,GAAG,CACJ,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,IAAI,CAAA;QAER,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAC,gFAAgF;QACvH,CAAC;QAED,OAAO,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACvE,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,KAAY,EAAE,WAAmB;IAC/C,IAAI,GAAG,CAAA;IACP,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,GAAG,GAAG,IAAA,6BAAmB,EAAC,KAAK,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;IACjE,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,IAAA,sCAA4B,EAChC,KAAK,CAAC,0BAA0B,EAChC,WAAW,CACZ,CAAA;IACH,CAAC;IACD,OAAO,gBAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAA;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAS,EAAE,MAAe;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;IAE1D,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,GAAG,GAAG,IAAA,sCAA4B,EAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;QAC3E,CAAC;QACD,OAAO,IAAA,qCAA2B,EAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;EAYE;AAEF,SAAgB,0BAA0B,CAAC,GAAQ;IACjD,OAAO,IAAA,2BAAe,EAAC;QACrB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,SAAS;KACrB,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,4BAA4B,CAAC,GAAQ;IACnD,OAAO,IAAA,mCAAuB,EAAC;QAC7B,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;QAChB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,SAAS,EAAE,SAAS;KACrB,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,uBAAuB,CAAC,GAAQ;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAA,kCAAkB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,GAAW,EAAE,IAAY,EAAE,GAAG,GAAG,GAAG;IACzE,OAAO,SAAS,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;AACzD,CAAC;AAED,SAAgB,yBAAyB,CAAC,GAAQ;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IACvD,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAS;IAC1C,OAAO,IAAA,uBAAW,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAS;IAC9C,OAAO,IAAA,2BAAe,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxD,CAAC;AAED,SAAgB,UAAU,CAAC,IAAS;IAClC,OAAO,IAAA,uBAAW,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,UAAU,CAAC,IAAS;IAClC,OAAO,IAAA,uBAAW,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAS;IACrC,OAAO,IAAA,0BAAc,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAS;IACrC,OAAO,IAAA,0BAAc,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAS;IACrC,OAAO,IAAA,0BAAc,EAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC;AAEY,QAAA,wBAAwB,GAAG,gBAAC,CAAC,IAAI,CAAC,0BAAc,EAAE,uBAAW,CAAC,CAAA;AAC9D,QAAA,4BAA4B,GAAG,gBAAC,CAAC,IAAI,CAChD,0BAAc,EACd,2BAAe,CAChB,CAAA;AACY,QAAA,gBAAgB,GAAG,gBAAC,CAAC,IAAI,CAAC,0BAAc,EAAE,uBAAW,CAAC,CAAA;AACtD,QAAA,gBAAgB,GAAG,gBAAC,CAAC,IAAI,CAAC,0BAAc,EAAE,uBAAW,CAAC,CAAA;AACtD,QAAA,mBAAmB,GAAG,gBAAC,CAAC,IAAI,CAAC,0BAAc,EAAE,sBAAU,CAAC,CAAA;AACxD,QAAA,yBAAyB,GAAG,gBAAC,CAAC,IAAI,CAC7C,0BAAc,EACd,mCAAuB,CACxB,CAAA;AACY,QAAA,6BAA6B,GAAG,gBAAC,CAAC,IAAI,CACjD,0BAAc,EACd,kCAAkB,CACnB,CAAA;AAED,SAAS,QAAQ,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa;IAC1D,MAAM,QAAQ,GAAG,IAAA,+BAAqB,EACpC,KAAK,CAAC,oBAA8B,EACpC,KAAK,CACN,CAAA;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACzD,CAAC;AAED,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IACxD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;gBACjC,6CAA6C;gBAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;gBACD,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IACzD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,IACE,CAAC,GAAG,KAAK,MAAM;YACb,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAC5D,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACzC,CAAC;YACD,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC9C,CAAC;oBACC,IAAI,GAAG,IAAI,CAAA;oBACX,KAAK,GAAG,EAAE,CAAA;gBACZ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,EAAE,CAAA;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IACzD,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,gBAAgB,CAAC,6BAA6B,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IAC1E,IAAI,gBAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,EAAE,CAAA;IACZ,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC,CAAA;AAED,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IAC1D,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAEhB,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAC1C,+BAA+B;IAC/B,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,IAAI,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAC1C,IAAI,gBAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAEhC,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,CAAA;IAClD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,gBAAgB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;AAEvD,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IAC9C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,KAAK,IAAI,GAAG,CAAA;gBACZ,MAAK;YACP,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACN,KAAK,IAAI,IAAI,CAAA;gBACb,MAAK;YACP,KAAK,GAAG;gBACN,KAAK,IAAI,EAAE,CAAA;gBACX,MAAK;QACT,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
1
+ {"version":3,"file":"toPgn.js","sourceRoot":"","sources":["../lib/toPgn.ts"],"names":[],"mappings":"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"}