jooby-codec 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/analog/commands/downlink/GetExAbsArchiveDaysMC.js.map +1 -1
  2. package/dist/analog/commands/uplink/ExAbsHourMC.js.map +1 -1
  3. package/dist/analog/message.js +16 -17
  4. package/dist/analog/message.js.map +1 -1
  5. package/dist/obis-observer/CommandBinaryBuffer.d.ts +12 -3
  6. package/dist/obis-observer/CommandBinaryBuffer.js +29 -5
  7. package/dist/obis-observer/CommandBinaryBuffer.js.map +1 -1
  8. package/dist/obis-observer/commands/downlink/AddShortNameProfile.js +1 -1
  9. package/dist/obis-observer/commands/downlink/AddShortNameProfile.js.map +1 -1
  10. package/dist/obis-observer/commands/downlink/GetDeviceInfo.d.ts +13 -0
  11. package/dist/obis-observer/commands/downlink/GetDeviceInfo.js +39 -0
  12. package/dist/obis-observer/commands/downlink/GetDeviceInfo.js.map +1 -0
  13. package/dist/obis-observer/commands/downlink/GetLorawanInfo.d.ts +13 -0
  14. package/dist/obis-observer/commands/downlink/GetLorawanInfo.js +39 -0
  15. package/dist/obis-observer/commands/downlink/GetLorawanInfo.js.map +1 -0
  16. package/dist/obis-observer/commands/downlink/GetShortNameProfile.js.map +1 -1
  17. package/dist/obis-observer/commands/downlink/SetSerialPort.d.ts +1 -1
  18. package/dist/obis-observer/commands/downlink/SetSerialPort.js +2 -2
  19. package/dist/obis-observer/commands/downlink/SetSerialPort.js.map +1 -1
  20. package/dist/obis-observer/commands/downlink/index.d.ts +2 -0
  21. package/dist/obis-observer/commands/downlink/index.js +2 -0
  22. package/dist/obis-observer/commands/downlink/index.js.map +1 -1
  23. package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.d.ts +18 -0
  24. package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.js +60 -0
  25. package/dist/obis-observer/commands/uplink/GetDeviceInfoResponse.js.map +1 -0
  26. package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.d.ts +18 -0
  27. package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.js +49 -0
  28. package/dist/obis-observer/commands/uplink/GetLorawanInfoResponse.js.map +1 -0
  29. package/dist/obis-observer/commands/uplink/GetShortNameInfoResponse.js +10 -4
  30. package/dist/obis-observer/commands/uplink/GetShortNameInfoResponse.js.map +1 -1
  31. package/dist/obis-observer/commands/uplink/GetShortNameProfileResponse.js +1 -1
  32. package/dist/obis-observer/commands/uplink/GetShortNameProfileResponse.js.map +1 -1
  33. package/dist/obis-observer/commands/uplink/index.d.ts +2 -0
  34. package/dist/obis-observer/commands/uplink/index.js +2 -0
  35. package/dist/obis-observer/commands/uplink/index.js.map +1 -1
  36. package/dist/obis-observer/constants/baudRates.d.ts +16 -0
  37. package/dist/obis-observer/constants/baudRates.js +18 -0
  38. package/dist/obis-observer/constants/baudRates.js.map +1 -0
  39. package/dist/obis-observer/constants/commandRelations.d.ts +2 -0
  40. package/dist/obis-observer/constants/commandRelations.js +21 -0
  41. package/dist/obis-observer/constants/commandRelations.js.map +1 -0
  42. package/dist/obis-observer/constants/index.d.ts +1 -0
  43. package/dist/obis-observer/constants/index.js +1 -0
  44. package/dist/obis-observer/constants/index.js.map +1 -1
  45. package/dist/obis-observer/constants/shortNames.d.ts +34 -0
  46. package/dist/obis-observer/constants/shortNames.js +228 -0
  47. package/dist/obis-observer/constants/shortNames.js.map +1 -0
  48. package/dist/obis-observer/index.d.ts +2 -1
  49. package/dist/obis-observer/index.js +2 -1
  50. package/dist/obis-observer/index.js.map +1 -1
  51. package/dist/obis-observer/utils/index.d.ts +1 -0
  52. package/dist/obis-observer/utils/index.js +2 -0
  53. package/dist/obis-observer/utils/index.js.map +1 -0
  54. package/dist/obis-observer/utils/obis.d.ts +3 -0
  55. package/dist/obis-observer/utils/obis.js +72 -0
  56. package/dist/obis-observer/utils/obis.js.map +1 -0
  57. package/dist/utils/invertObject.d.ts +3 -0
  58. package/dist/utils/invertObject.js +4 -0
  59. package/dist/utils/invertObject.js.map +1 -0
  60. package/package.json +1 -1
  61. package/readme.md +2 -0
@@ -1,4 +1,5 @@
1
1
  export * as commands from './commands/index.js';
2
- export * as message from './message.js';
3
2
  export * as constants from './constants/index.js';
3
+ export * as message from './message.js';
4
+ export * as utils from './utils/index.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/obis-observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/obis-observer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ export * as obis from './obis.js';
@@ -0,0 +1,2 @@
1
+ export * as obis from './obis.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/obis-observer/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IObis } from '../CommandBinaryBuffer.js';
2
+ export declare const toString: (obis: IObis) => string;
3
+ export declare const fromString: (obisString: string) => IObis;
@@ -0,0 +1,72 @@
1
+ import invertObject from '../../utils/invertObject.js';
2
+ const letterCodes = {
3
+ C: 96,
4
+ F: 97,
5
+ L: 98,
6
+ P: 99
7
+ };
8
+ const codeLetters = invertObject(letterCodes);
9
+ export const toString = (obis) => {
10
+ if (!obis || typeof obis !== 'object' || Object.keys(obis).length === 0) {
11
+ throw new Error('Must be an object with properties.');
12
+ }
13
+ const { a, b, c, d, e, f } = obis;
14
+ if (c === null || c === undefined || d === null || d === undefined) {
15
+ throw new Error('Properties "c" and "d" are mandatory.');
16
+ }
17
+ let result = '';
18
+ if (a && b) {
19
+ result += `${a}-${b}:`;
20
+ }
21
+ result += `${(codeLetters[c] ?? c)}.${(codeLetters[d] ?? d)}`;
22
+ if (e && f) {
23
+ result += `.${e}*${f}`;
24
+ }
25
+ else if (e) {
26
+ result += `.${e}`;
27
+ }
28
+ return result;
29
+ };
30
+ export const fromString = (obisString) => {
31
+ const result = {};
32
+ let unprocessed = obisString;
33
+ let parts;
34
+ let eValue;
35
+ parts = unprocessed.split('-');
36
+ if (parts.length > 1) {
37
+ [result.a, unprocessed] = parts;
38
+ }
39
+ parts = unprocessed.split(':');
40
+ if (parts.length > 1) {
41
+ [result.b, unprocessed] = parts;
42
+ }
43
+ parts = unprocessed.split('*');
44
+ if (parts.length > 1) {
45
+ [unprocessed, result.f] = parts;
46
+ }
47
+ parts = unprocessed.split('.');
48
+ if (parts.length > 1) {
49
+ [result.c, result.d, eValue] = parts;
50
+ if (eValue) {
51
+ result.e = eValue;
52
+ }
53
+ }
54
+ Object.keys(result).forEach(groupName => {
55
+ const groupValue = result[groupName];
56
+ if (groupValue) {
57
+ const intValue = parseInt(letterCodes[groupValue] || groupValue, 10);
58
+ if (intValue < 0 || intValue > 255) {
59
+ throw new Error(`Value for group "${groupName}" should be in range [0..255].`);
60
+ }
61
+ result[groupName] = intValue;
62
+ }
63
+ else {
64
+ throw new Error(`Value for group "${groupName}" can't be empty.`);
65
+ }
66
+ });
67
+ if (!('c' in result && 'd' in result)) {
68
+ throw new Error('Properties "c" and "d" are mandatory.');
69
+ }
70
+ return result;
71
+ };
72
+ //# sourceMappingURL=obis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"obis.js","sourceRoot":"","sources":["../../../src/obis-observer/utils/obis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type THashTable = Record<string, unknown>;
2
+ declare const _default: (source: THashTable) => THashTable;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export default (source) => Object.fromEntries(Object
2
+ .entries(source)
3
+ .map(([key, value]) => [value, key]));
4
+ //# sourceMappingURL=invertObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invertObject.js","sourceRoot":"","sources":["../../src/utils/invertObject.ts"],"names":[],"mappings":"AASA,eAAe,CAAE,MAAkB,EAAe,EAAE,CAAC,MAAM,CAAC,WAAW,CACnE,MAAM;KACD,OAAO,CAAC,MAAM,CAAC;KACf,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAC3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jooby-codec",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "Jooby message encoders/decoders",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/readme.md CHANGED
@@ -99,6 +99,8 @@ const messageData = message.fromHex(
99
99
  It's possible to parse message with autodetect direction:
100
100
 
101
101
  ```js
102
+ // It is highly recommended to use a specific direction.
103
+ // AUTO is used here just for example.
102
104
  const messageData = message.fromHex(
103
105
  '02 01 01 18 06 0f 83 01 08 0a 0c 16 08 2f 97 0f 83 01 08 0a 0c ef',
104
106
  directions.AUTO