jooby-codec 1.5.0 → 1.7.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 (135) hide show
  1. package/dist/Command.d.ts +14 -4
  2. package/dist/Command.js +10 -5
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +142 -5
  5. package/dist/CommandBinaryBuffer.js +275 -0
  6. package/dist/CommandBinaryBuffer.js.map +1 -1
  7. package/dist/commands/downlink/CorrectTime2000.d.ts +1 -6
  8. package/dist/commands/downlink/CorrectTime2000.js +2 -8
  9. package/dist/commands/downlink/CorrectTime2000.js.map +1 -1
  10. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +5 -10
  11. package/dist/commands/downlink/ExAbsArchiveDaysMC.js +3 -9
  12. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
  13. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +5 -10
  14. package/dist/commands/downlink/ExAbsArchiveHoursMC.js +3 -9
  15. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
  16. package/dist/commands/downlink/ExAbsCurrentMC.d.ts +1 -6
  17. package/dist/commands/downlink/ExAbsCurrentMC.js +3 -8
  18. package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -1
  19. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +5 -5
  20. package/dist/commands/downlink/GetArchiveDaysMC.js +3 -4
  21. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
  22. package/dist/commands/downlink/GetArchiveEvents.d.ts +39 -0
  23. package/dist/commands/downlink/GetArchiveEvents.js +58 -0
  24. package/dist/commands/downlink/GetArchiveEvents.js.map +1 -0
  25. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +5 -10
  26. package/dist/commands/downlink/GetArchiveHoursMC.js +3 -9
  27. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
  28. package/dist/commands/downlink/GetCurrentMC.d.ts +25 -0
  29. package/dist/commands/downlink/GetCurrentMC.js +41 -0
  30. package/dist/commands/downlink/GetCurrentMC.js.map +1 -0
  31. package/dist/commands/downlink/GetLmicVersion.d.ts +25 -0
  32. package/dist/commands/downlink/GetLmicVersion.js +41 -0
  33. package/dist/commands/downlink/GetLmicVersion.js.map +1 -0
  34. package/dist/commands/downlink/GetParameter.d.ts +37 -0
  35. package/dist/commands/downlink/GetParameter.js +64 -0
  36. package/dist/commands/downlink/GetParameter.js.map +1 -0
  37. package/dist/commands/downlink/NewStatus.d.ts +1 -1
  38. package/dist/commands/downlink/NewStatus.js +3 -3
  39. package/dist/commands/downlink/NewStatus.js.map +1 -1
  40. package/dist/commands/downlink/SetParameter.d.ts +6 -56
  41. package/dist/commands/downlink/SetParameter.js +45 -105
  42. package/dist/commands/downlink/SetParameter.js.map +1 -1
  43. package/dist/commands/downlink/SetTime2000.d.ts +1 -6
  44. package/dist/commands/downlink/SetTime2000.js +2 -8
  45. package/dist/commands/downlink/SetTime2000.js.map +1 -1
  46. package/dist/commands/downlink/SoftRestart.d.ts +1 -1
  47. package/dist/commands/downlink/SoftRestart.js +3 -3
  48. package/dist/commands/downlink/SoftRestart.js.map +1 -1
  49. package/dist/commands/downlink/index.d.ts +4 -0
  50. package/dist/commands/downlink/index.js +4 -0
  51. package/dist/commands/downlink/index.js.map +1 -1
  52. package/dist/commands/uplink/CorrectTime2000.d.ts +1 -1
  53. package/dist/commands/uplink/CorrectTime2000.js +3 -3
  54. package/dist/commands/uplink/CorrectTime2000.js.map +1 -1
  55. package/dist/commands/uplink/DataDayMC.d.ts +3 -5
  56. package/dist/commands/uplink/DataDayMC.js +4 -3
  57. package/dist/commands/uplink/DataDayMC.js.map +1 -1
  58. package/dist/commands/uplink/DataHourMC.d.ts +3 -2
  59. package/dist/commands/uplink/DataHourMC.js +4 -3
  60. package/dist/commands/uplink/DataHourMC.js.map +1 -1
  61. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +3 -2
  62. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +4 -3
  63. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
  64. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +3 -2
  65. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +4 -3
  66. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
  67. package/dist/commands/uplink/ExAbsCurrentMC.d.ts +1 -1
  68. package/dist/commands/uplink/ExAbsCurrentMC.js +4 -3
  69. package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -1
  70. package/dist/commands/uplink/ExAbsDayMC.d.ts +3 -2
  71. package/dist/commands/uplink/ExAbsDayMC.js +4 -3
  72. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
  73. package/dist/commands/uplink/ExAbsHourMC.d.ts +3 -2
  74. package/dist/commands/uplink/ExAbsHourMC.js +4 -3
  75. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
  76. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +3 -2
  77. package/dist/commands/uplink/GetArchiveDaysMC.js +4 -3
  78. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
  79. package/dist/commands/uplink/GetArchiveEvents.d.ts +48 -0
  80. package/dist/commands/uplink/GetArchiveEvents.js +105 -0
  81. package/dist/commands/uplink/GetArchiveEvents.js.map +1 -0
  82. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +3 -2
  83. package/dist/commands/uplink/GetArchiveHoursMC.js +4 -3
  84. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
  85. package/dist/commands/uplink/GetCurrentMC.d.ts +24 -2
  86. package/dist/commands/uplink/GetCurrentMC.js +60 -3
  87. package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
  88. package/dist/commands/uplink/GetLmicVersion.d.ts +46 -0
  89. package/dist/commands/uplink/GetLmicVersion.js +90 -0
  90. package/dist/commands/uplink/GetLmicVersion.js.map +1 -0
  91. package/dist/commands/uplink/GetParameter.d.ts +30 -0
  92. package/dist/commands/uplink/GetParameter.js +91 -0
  93. package/dist/commands/uplink/GetParameter.js.map +1 -0
  94. package/dist/commands/uplink/LastEvent.d.ts +5 -76
  95. package/dist/commands/uplink/LastEvent.js +67 -115
  96. package/dist/commands/uplink/LastEvent.js.map +1 -1
  97. package/dist/commands/uplink/NewEvent.d.ts +35 -7
  98. package/dist/commands/uplink/NewEvent.js +96 -20
  99. package/dist/commands/uplink/NewEvent.js.map +1 -1
  100. package/dist/commands/uplink/NewStatus.d.ts +1 -1
  101. package/dist/commands/uplink/NewStatus.js +4 -3
  102. package/dist/commands/uplink/NewStatus.js.map +1 -1
  103. package/dist/commands/uplink/SetTime2000.d.ts +1 -1
  104. package/dist/commands/uplink/SetTime2000.js +3 -3
  105. package/dist/commands/uplink/SetTime2000.js.map +1 -1
  106. package/dist/commands/uplink/SoftRestart.d.ts +1 -1
  107. package/dist/commands/uplink/SoftRestart.js +3 -3
  108. package/dist/commands/uplink/SoftRestart.js.map +1 -1
  109. package/dist/commands/uplink/Time2000.d.ts +5 -5
  110. package/dist/commands/uplink/Time2000.js +6 -7
  111. package/dist/commands/uplink/Time2000.js.map +1 -1
  112. package/dist/commands/uplink/index.d.ts +3 -0
  113. package/dist/commands/uplink/index.js +3 -0
  114. package/dist/commands/uplink/index.js.map +1 -1
  115. package/dist/constants/{directionTypes.js → directions.js} +1 -1
  116. package/dist/constants/directions.js.map +1 -0
  117. package/dist/constants/events.d.ts +30 -4
  118. package/dist/constants/events.js +30 -4
  119. package/dist/constants/events.js.map +1 -1
  120. package/dist/constants/hardwareTypes.d.ts +2 -2
  121. package/dist/constants/hardwareTypes.js +2 -2
  122. package/dist/constants/index.d.ts +1 -1
  123. package/dist/constants/index.js +1 -1
  124. package/dist/constants/index.js.map +1 -1
  125. package/dist/utils/bitSet.d.ts +2 -2
  126. package/dist/utils/bitSet.js +2 -2
  127. package/dist/utils/message.d.ts +8 -0
  128. package/dist/utils/message.js +3 -3
  129. package/dist/utils/message.js.map +1 -1
  130. package/dist/utils/time.d.ts +20 -3
  131. package/dist/utils/time.js +2 -2
  132. package/dist/utils/time.js.map +1 -1
  133. package/package.json +1 -1
  134. package/dist/constants/directionTypes.js.map +0 -1
  135. /package/dist/constants/{directionTypes.d.ts → directions.d.ts} +0 -0
@@ -0,0 +1,105 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
+ import * as events from '../../constants/events.js';
5
+ const COMMAND_ID = 0x0b;
6
+ // 4 bytes for event seconds, 1 byte for event id, 1 byte for sequence number
7
+ const COMMAND_BODY_MIN_SIZE = 4 + 1 + 1;
8
+ const examples = [
9
+ {
10
+ name: '1 event - "MAGNET_ON" at 2023-04-05 13:17:20 GMT',
11
+ parameters: {
12
+ eventList: [
13
+ {
14
+ time: 734015840,
15
+ id: events.MAGNET_ON,
16
+ sequenceNumber: 1
17
+ }
18
+ ]
19
+ },
20
+ hex: { header: '0b 06', body: '2b c0 31 60 01 01' }
21
+ },
22
+ {
23
+ name: '4 events example',
24
+ parameters: {
25
+ eventList: [
26
+ {
27
+ time: 734015840,
28
+ id: events.MAGNET_OFF,
29
+ sequenceNumber: 1
30
+ },
31
+ {
32
+ time: 734025840,
33
+ id: events.MAGNET_ON,
34
+ sequenceNumber: 2
35
+ },
36
+ {
37
+ time: 734035840,
38
+ id: events.ACTIVATE,
39
+ sequenceNumber: 3
40
+ },
41
+ {
42
+ time: 734045840,
43
+ id: events.DEACTIVATE,
44
+ sequenceNumber: 4
45
+ }
46
+ ]
47
+ },
48
+ hex: { header: '0b 18', body: '2b c0 31 60 02 01 2b c0 58 70 01 02 2b c0 7f 80 03 03 2b c0 a6 90 04 04' }
49
+ }
50
+ ];
51
+ const getEvent = (buffer) => ({
52
+ time: buffer.getTime(),
53
+ id: buffer.getUint8(),
54
+ sequenceNumber: buffer.getUint8()
55
+ });
56
+ const setEvent = (buffer, event) => {
57
+ buffer.setTime(event.time);
58
+ buffer.setUint8(event.id);
59
+ buffer.setUint8(event.sequenceNumber);
60
+ };
61
+ /**
62
+ * Uplink command.
63
+ *
64
+ * @example
65
+ * ```js
66
+ * import GetArchiveEvents from 'jooby-codec/commands/uplink/GetArchiveEvents';
67
+ * import {constants} from 'jooby-codec';
68
+ *
69
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, time: 734015840}];
70
+ * const command = new GetArchiveEvents(parameters);
71
+ *
72
+ * // output command binary in hex representation
73
+ * console.log(command.toHex());
74
+ * // 0b 06 2b c0 31 60 01 01
75
+ * ```
76
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetArchiveEvents.md#response)
77
+ */
78
+ class GetArchiveEvents extends Command {
79
+ constructor(parameters) {
80
+ super();
81
+ this.parameters = parameters;
82
+ }
83
+ // data - only body (without header)
84
+ static fromBytes(data) {
85
+ const buffer = new CommandBinaryBuffer(data);
86
+ const eventList = [];
87
+ while (buffer.bytesLeft > 0) {
88
+ eventList.push(getEvent(buffer));
89
+ }
90
+ return new GetArchiveEvents({ eventList });
91
+ }
92
+ // returns full message - header with body
93
+ toBytes() {
94
+ const { eventList } = this.parameters;
95
+ const buffer = new CommandBinaryBuffer(eventList.length * COMMAND_BODY_MIN_SIZE);
96
+ eventList.forEach(event => setEvent(buffer, event));
97
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
98
+ }
99
+ }
100
+ GetArchiveEvents.id = COMMAND_ID;
101
+ GetArchiveEvents.directionType = UPLINK;
102
+ GetArchiveEvents.examples = examples;
103
+ GetArchiveEvents.hasParameters = true;
104
+ export default GetArchiveEvents;
105
+ //# sourceMappingURL=GetArchiveEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetArchiveEvents.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveEvents.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import Command from '../../Command.js';
2
2
  import { IChannelHours } from '../../CommandBinaryBuffer.js';
3
+ import { TTime2000 } from '../../utils/time.js';
3
4
  /**
4
5
  * GetArchiveHoursMC command parameters
5
6
  *
@@ -13,7 +14,7 @@ import { IChannelHours } from '../../CommandBinaryBuffer.js';
13
14
  */
14
15
  interface IUplinkGetArchiveHoursMCParameters {
15
16
  channelList: Array<IChannelHours>;
16
- startTime: number;
17
+ startTime: TTime2000;
17
18
  hours: number;
18
19
  }
19
20
  /**
@@ -61,7 +62,7 @@ declare class GetArchiveHoursMC extends Command {
61
62
  constructor(parameters: IUplinkGetArchiveHoursMCParameters);
62
63
  static readonly id = 26;
63
64
  static readonly directionType = 2;
64
- static readonly title = "GET_ARCHIVE_HOURS";
65
+ static readonly hasParameters = true;
65
66
  static fromBytes(data: Uint8Array): GetArchiveHoursMC;
66
67
  toBytes(): Uint8Array;
67
68
  }
@@ -1,8 +1,7 @@
1
1
  import Command from '../../Command.js';
2
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
- import { UPLINK } from '../../constants/directionTypes.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
4
  const COMMAND_ID = 0x1a;
5
- const COMMAND_TITLE = 'GET_ARCHIVE_HOURS';
6
5
  // date 2 bytes, hour 1 byte, channelList - 1 byte, so max channelList = 4
7
6
  // max hours diff - 7 (3 bit value)
8
7
  // 4 + (4 channelList * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
@@ -53,10 +52,12 @@ class GetArchiveHoursMC extends Command {
53
52
  this.parameters = parameters;
54
53
  this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
55
54
  }
55
+ // data - only body (without header)
56
56
  static fromBytes(data) {
57
57
  const buffer = new CommandBinaryBuffer(data);
58
58
  return new GetArchiveHoursMC(buffer.getChannelsValuesWithHourDiff());
59
59
  }
60
+ // returns full message - header with body
60
61
  toBytes() {
61
62
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
62
63
  const { hours, startTime, channelList } = this.parameters;
@@ -66,6 +67,6 @@ class GetArchiveHoursMC extends Command {
66
67
  }
67
68
  GetArchiveHoursMC.id = COMMAND_ID;
68
69
  GetArchiveHoursMC.directionType = UPLINK;
69
- GetArchiveHoursMC.title = COMMAND_TITLE;
70
+ GetArchiveHoursMC.hasParameters = true;
70
71
  export default GetArchiveHoursMC;
71
72
  //# sourceMappingURL=GetArchiveHoursMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAqBzD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C,0EAA0E;AAC1E,mCAAmC;AACnC,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;QAG/D,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAnBe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAK,GAAG,aAAa,CAAC;AAmB1C,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"GetArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetArchiveHoursMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAsBrD,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,0EAA0E;AAC1E,mCAAmC;AACnC,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAGlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,iBAAkB,SAAQ,OAAO;IACnC,YAAqB,UAA8C;QAC/D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAoC;QAG/D,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAUD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,iBAAiB,CAAC,MAAM,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAExD,MAAM,CAAC,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAtBe,oBAAE,GAAG,UAAU,CAAC;AAEhB,+BAAa,GAAG,MAAM,CAAC;AAEvB,+BAAa,GAAG,IAAI,CAAC;AAsBzC,eAAe,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
- import Command from '../../Command.js';
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
2
  import { IChannelValue } from '../../CommandBinaryBuffer.js';
3
3
  /**
4
4
  * GetCurrentMC command parameters.
@@ -6,12 +6,34 @@ import { IChannelValue } from '../../CommandBinaryBuffer.js';
6
6
  export interface IGetCurrentMCParameters {
7
7
  channelList: Array<IChannelValue>;
8
8
  }
9
+ /**
10
+ * Uplink command
11
+ *
12
+ * @example
13
+ * ```js
14
+ * import GetCurrentMC from 'jooby-codec/commands/uplink/GetCurrentMC';
15
+ *
16
+ * const parameters = {
17
+ * channelList: [
18
+ * {index: 1, value: 50}
19
+ * ]
20
+ * };
21
+ * const command = new GetCurrentMC(parameters);
22
+ *
23
+ * // output command binary in hex representation
24
+ * console.log(command.toHex());
25
+ * // 18 02 01 32
26
+ * ```
27
+ *
28
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetCurrentMC.md#response)
29
+ */
9
30
  declare class GetCurrentMC extends Command {
10
31
  parameters: IGetCurrentMCParameters;
11
32
  constructor(parameters: IGetCurrentMCParameters);
12
33
  static id: number;
13
34
  static readonly directionType = 2;
14
- static title: string;
35
+ static readonly examples: TCommandExampleList;
36
+ static readonly hasParameters = true;
15
37
  static fromBytes(data: Uint8Array): GetCurrentMC;
16
38
  toBytes(): Uint8Array;
17
39
  }
@@ -1,16 +1,71 @@
1
1
  import Command from '../../Command.js';
2
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
- import { UPLINK } from '../../constants/directionTypes.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
4
  const COMMAND_ID = 0x18;
5
- const COMMAND_TITLE = 'GET_CURRENT_MC';
6
5
  // 2 bytes for 7 channelList + (7 channelList * 5 byte for current value of channel)
7
6
  const COMMAND_BODY_MAX_SIZE = 37;
7
+ const examples = [
8
+ {
9
+ name: '4 first channels',
10
+ parameters: {
11
+ channelList: [
12
+ { index: 0, value: 131 },
13
+ { index: 1, value: 8 },
14
+ { index: 2, value: 10 },
15
+ { index: 3, value: 12 }
16
+ ]
17
+ },
18
+ hex: { header: '18 06', body: '0f 8301 08 0a 0c' }
19
+ },
20
+ {
21
+ name: 'single channel #2',
22
+ parameters: {
23
+ channelList: [
24
+ { index: 2, value: 50 }
25
+ ]
26
+ },
27
+ hex: { header: '18 02', body: '04 32' }
28
+ },
29
+ {
30
+ name: 'channels #5 #6 #12',
31
+ parameters: {
32
+ channelList: [
33
+ { index: 5, value: 8146 },
34
+ { index: 6, value: 164 },
35
+ { index: 12, value: 75 }
36
+ ]
37
+ },
38
+ hex: { header: '18 07', body: 'e020 d23f a401 4b' }
39
+ }
40
+ ];
41
+ /**
42
+ * Uplink command
43
+ *
44
+ * @example
45
+ * ```js
46
+ * import GetCurrentMC from 'jooby-codec/commands/uplink/GetCurrentMC';
47
+ *
48
+ * const parameters = {
49
+ * channelList: [
50
+ * {index: 1, value: 50}
51
+ * ]
52
+ * };
53
+ * const command = new GetCurrentMC(parameters);
54
+ *
55
+ * // output command binary in hex representation
56
+ * console.log(command.toHex());
57
+ * // 18 02 01 32
58
+ * ```
59
+ *
60
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetCurrentMC.md#response)
61
+ */
8
62
  class GetCurrentMC extends Command {
9
63
  constructor(parameters) {
10
64
  super();
11
65
  this.parameters = parameters;
12
66
  this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
13
67
  }
68
+ // data - only body (without header)
14
69
  static fromBytes(data) {
15
70
  const parameters = { channelList: [] };
16
71
  const buffer = new CommandBinaryBuffer(data);
@@ -21,6 +76,7 @@ class GetCurrentMC extends Command {
21
76
  }));
22
77
  return new GetCurrentMC(parameters);
23
78
  }
79
+ // returns full message - header with body
24
80
  toBytes() {
25
81
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
26
82
  const { channelList } = this.parameters;
@@ -31,6 +87,7 @@ class GetCurrentMC extends Command {
31
87
  }
32
88
  GetCurrentMC.id = COMMAND_ID;
33
89
  GetCurrentMC.directionType = UPLINK;
34
- GetCurrentMC.title = COMMAND_TITLE;
90
+ GetCurrentMC.examples = examples;
91
+ GetCurrentMC.hasParameters = true;
35
92
  export default GetCurrentMC;
36
93
  //# sourceMappingURL=GetCurrentMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GetCurrentMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAAoC,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAUzD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC,oFAAoF;AACpF,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,YAAa,SAAQ,OAAO;IAC9B,YAAqB,UAAmC;QACpD,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAyB;QAGpD,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,UAAU,GAA4B,EAAC,WAAW,EAAE,EAAE,EAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAEzC,UAAU,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,MAAM,CAAC,gBAAgB,EAAE;YAChC,KAAK,EAAE,YAAY;SACtB,CAAkB,CAAC,CAAC;QAErB,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEtC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AA7BM,eAAE,GAAG,UAAU,CAAC;AAEP,0BAAa,GAAG,MAAM,CAAC;AAEhC,kBAAK,GAAG,aAAa,CAAC;AA6BjC,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"GetCurrentMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetCurrentMC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import * as bitSet from '../../utils/bitSet.js';
3
+ interface ILmicCapabilities extends bitSet.TBooleanObject {
4
+ isMulticastSupported: boolean;
5
+ isFragmentedDataSupported: boolean;
6
+ }
7
+ /**
8
+ * GetLmicVersion command parameters
9
+ */
10
+ interface IUplinkGetLmicVersionParameters {
11
+ capabilities: ILmicCapabilities;
12
+ version: number;
13
+ }
14
+ /**
15
+ * Uplink command.
16
+ *
17
+ * @example
18
+ * ```js
19
+ * import GetLmicVersion from 'jooby-codec/commands/uplink/GetLmicVersion';
20
+ *
21
+ * const parameters = {
22
+ * version: 34,
23
+ * capabilities: {
24
+ * isMulticastSupported: true,
25
+ * isFragmentedDataSupported: true
26
+ * }
27
+ * };
28
+ * const command = new GetLmicVersion(parameters);
29
+ *
30
+ * // output command binary in hex representation
31
+ * console.log(command.toHex());
32
+ * // 1f 02 02 03 22
33
+ * ```
34
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetLmicVersion.md#response)
35
+ */
36
+ declare class GetLmicVersion extends Command {
37
+ parameters: IUplinkGetLmicVersionParameters;
38
+ constructor(parameters: IUplinkGetLmicVersionParameters);
39
+ static readonly id = 543;
40
+ static readonly directionType = 2;
41
+ static readonly examples: TCommandExampleList;
42
+ static readonly hasParameters = true;
43
+ static fromBytes(data: Uint8Array): GetLmicVersion;
44
+ toBytes(): Uint8Array;
45
+ }
46
+ export default GetLmicVersion;
@@ -0,0 +1,90 @@
1
+ import Command from '../../Command.js';
2
+ import BinaryBuffer from '../../BinaryBuffer.js';
3
+ import * as bitSet from '../../utils/bitSet.js';
4
+ import { UPLINK } from '../../constants/directions.js';
5
+ const COMMAND_ID = 0x021f;
6
+ const COMMAND_BODY_SIZE = 2;
7
+ const lmicCapabilitiesBitMask = {
8
+ isMulticastSupported: 2 ** 0,
9
+ isFragmentedDataSupported: 2 ** 1
10
+ };
11
+ const examples = [
12
+ {
13
+ name: 'version: 12, support only multicast',
14
+ parameters: {
15
+ version: 12,
16
+ capabilities: {
17
+ isMulticastSupported: true,
18
+ isFragmentedDataSupported: false
19
+ }
20
+ },
21
+ hex: { header: '1f 02 02', body: '01 0c' }
22
+ },
23
+ {
24
+ name: 'version: 34, support multicast and fragmented data',
25
+ parameters: {
26
+ version: 34,
27
+ capabilities: {
28
+ isMulticastSupported: true,
29
+ isFragmentedDataSupported: true
30
+ }
31
+ },
32
+ hex: { header: '1f 02 02', body: '03 22' }
33
+ }
34
+ ];
35
+ /**
36
+ * Uplink command.
37
+ *
38
+ * @example
39
+ * ```js
40
+ * import GetLmicVersion from 'jooby-codec/commands/uplink/GetLmicVersion';
41
+ *
42
+ * const parameters = {
43
+ * version: 34,
44
+ * capabilities: {
45
+ * isMulticastSupported: true,
46
+ * isFragmentedDataSupported: true
47
+ * }
48
+ * };
49
+ * const command = new GetLmicVersion(parameters);
50
+ *
51
+ * // output command binary in hex representation
52
+ * console.log(command.toHex());
53
+ * // 1f 02 02 03 22
54
+ * ```
55
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetLmicVersion.md#response)
56
+ */
57
+ class GetLmicVersion extends Command {
58
+ constructor(parameters) {
59
+ super();
60
+ this.parameters = parameters;
61
+ }
62
+ // data - only body (without header)
63
+ static fromBytes(data) {
64
+ console.log({ data });
65
+ if (data.byteLength !== COMMAND_BODY_SIZE) {
66
+ throw new Error(`${this.getName()}. Wrong buffer size: ${data.byteLength}.`);
67
+ }
68
+ const buffer = new BinaryBuffer(data);
69
+ const capabilities = bitSet.toObject(lmicCapabilitiesBitMask, buffer.getUint8());
70
+ const version = buffer.getUint8();
71
+ if (!buffer.isEmpty) {
72
+ throw new Error(`${this.getName()}. BinaryBuffer is not empty.`);
73
+ }
74
+ return new GetLmicVersion({ capabilities, version });
75
+ }
76
+ // returns full message - header with body
77
+ toBytes() {
78
+ const { capabilities, version } = this.parameters;
79
+ const buffer = new BinaryBuffer(COMMAND_BODY_SIZE);
80
+ buffer.setUint8(bitSet.fromObject(lmicCapabilitiesBitMask, capabilities));
81
+ buffer.setUint8(version);
82
+ return Command.toBytes(COMMAND_ID, buffer.toUint8Array());
83
+ }
84
+ }
85
+ GetLmicVersion.id = COMMAND_ID;
86
+ GetLmicVersion.directionType = UPLINK;
87
+ GetLmicVersion.examples = examples;
88
+ GetLmicVersion.hasParameters = true;
89
+ export default GetLmicVersion;
90
+ //# sourceMappingURL=GetLmicVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetLmicVersion.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetLmicVersion.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAmBrD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,uBAAuB,GAAG;IAC5B,oBAAoB,EAAE,CAAC,IAAI,CAAC;IAC5B,yBAAyB,EAAE,CAAC,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,qCAAqC;QAC3C,UAAU,EAAE;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,yBAAyB,EAAE,KAAK;aACnC;SACJ;QACD,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC;KAC3C;IACD;QACI,IAAI,EAAE,oDAAoD;QAC1D,UAAU,EAAE;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,yBAAyB,EAAE,IAAI;aAClC;SACJ;QACD,GAAG,EAAE,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAC;KAC3C;CACJ,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAA2C;QAC5D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiC;IAEhE,CAAC;IAYD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;QAEpB,IAAK,IAAI,CAAC,UAAU,KAAK,iBAAiB,EAAG;YACzC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,wBAAwB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SAChF;QAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;QAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAsB,CAAC;QACtG,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAElC,IAAK,CAAC,MAAM,CAAC,OAAO,EAAG;YACnB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;SACpE;QAED,OAAO,IAAI,cAAc,CAAC,EAAC,YAAY,EAAE,OAAO,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,EAAC,YAAY,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAEnD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzB,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;;AAtCe,iBAAE,GAAG,UAAU,CAAC;AAEhB,4BAAa,GAAG,MAAM,CAAC;AAEvB,uBAAQ,GAAG,QAAQ,CAAC;AAEpB,4BAAa,GAAG,IAAI,CAAC;AAoCzC,eAAe,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ import Command, { TCommandExampleList } from '../../Command.js';
2
+ import { IParameter } from '../../CommandBinaryBuffer.js';
3
+ /**
4
+ * Uplink command.
5
+ *
6
+ * @example
7
+ * ```js
8
+ * import GetParameter from 'jooby-codec/commands/uplink/GetParameter';
9
+ * import {constants} from 'jooby-codec';
10
+ *
11
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, seconds: 734015840}];
12
+ * const command = new GetParameter(parameters);
13
+ *
14
+ * // output command binary in hex representation
15
+ * console.log(command.toHex());
16
+ * // 0b 06 2b c0 31 60 01 01
17
+ * ```
18
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#response)
19
+ */
20
+ declare class GetParameter extends Command {
21
+ parameters: IParameter;
22
+ constructor(parameters: IParameter);
23
+ static readonly id = 4;
24
+ static readonly directionType = 2;
25
+ static readonly examples: TCommandExampleList;
26
+ static readonly hasParameters = true;
27
+ static fromBytes(data: Uint8Array): GetParameter;
28
+ toBytes(): Uint8Array;
29
+ }
30
+ export default GetParameter;
@@ -0,0 +1,91 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directions.js';
4
+ import * as deviceParameters from '../../constants/deviceParameters.js';
5
+ const COMMAND_ID = 0x04;
6
+ const examples = [
7
+ {
8
+ name: 'initial data response',
9
+ parameters: {
10
+ id: deviceParameters.INITIAL_DATA,
11
+ data: { value: 2023, meterValue: 204, pulseCoefficient: 100 }
12
+ },
13
+ hex: {
14
+ header: '04 0a',
15
+ body: '17 00 00 00 cc 82 00 00 07 e7'
16
+ }
17
+ },
18
+ {
19
+ name: 'device sending absolute data',
20
+ parameters: {
21
+ id: deviceParameters.ABSOLUTE_DATA_STATUS,
22
+ data: { status: 1 }
23
+ },
24
+ hex: {
25
+ header: '04 02',
26
+ body: '18 01'
27
+ }
28
+ },
29
+ {
30
+ name: 'initial data from 1 channel',
31
+ parameters: {
32
+ id: deviceParameters.INITIAL_DATA_MULTI_CHANNEL,
33
+ data: { value: 2032, meterValue: 402, pulseCoefficient: 1000, channel: 1 }
34
+ },
35
+ hex: {
36
+ header: '04 0b',
37
+ body: '1d 01 00 00 01 92 80 00 00 07 f0'
38
+ }
39
+ },
40
+ {
41
+ name: 'absolute data sending is disabled for 2 channel',
42
+ parameters: {
43
+ id: deviceParameters.ABSOLUTE_DATA_STATUS_MULTI_CHANNEL,
44
+ data: { status: 0, channel: 2 }
45
+ },
46
+ hex: {
47
+ header: '04 03',
48
+ body: '1e 02 00'
49
+ }
50
+ }
51
+ ];
52
+ /**
53
+ * Uplink command.
54
+ *
55
+ * @example
56
+ * ```js
57
+ * import GetParameter from 'jooby-codec/commands/uplink/GetParameter';
58
+ * import {constants} from 'jooby-codec';
59
+ *
60
+ * const parameters = [eventList: {id: constants.events.MAGNET_ON, sequenceNumber: 1, seconds: 734015840}];
61
+ * const command = new GetParameter(parameters);
62
+ *
63
+ * // output command binary in hex representation
64
+ * console.log(command.toHex());
65
+ * // 0b 06 2b c0 31 60 01 01
66
+ * ```
67
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/GetParameter.md#response)
68
+ */
69
+ class GetParameter extends Command {
70
+ constructor(parameters) {
71
+ super();
72
+ this.parameters = parameters;
73
+ }
74
+ // data - only body (without header)
75
+ static fromBytes(data) {
76
+ const buffer = new CommandBinaryBuffer(data);
77
+ return new GetParameter(buffer.getParameter());
78
+ }
79
+ // returns full message - header with body
80
+ toBytes() {
81
+ const buffer = new CommandBinaryBuffer(CommandBinaryBuffer.getParameterSize(this.parameters));
82
+ buffer.setParameter(this.parameters);
83
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
84
+ }
85
+ }
86
+ GetParameter.id = COMMAND_ID;
87
+ GetParameter.directionType = UPLINK;
88
+ GetParameter.examples = examples;
89
+ GetParameter.hasParameters = true;
90
+ export default GetParameter;
91
+ //# sourceMappingURL=GetParameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetParameter.js","sourceRoot":"","sources":["../../../src/commands/uplink/GetParameter.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8B,MAAM,kBAAkB,CAAC;AAC9D,OAAO,mBAAiC,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AACrD,OAAO,KAAK,gBAAgB,MAAM,qCAAqC,CAAC;AAGxE,MAAM,UAAU,GAAG,IAAI,CAAC;AAExB,MAAM,QAAQ,GAAwB;IAClC;QACI,IAAI,EAAE,uBAAuB;QAC7B,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,YAAY;YACjC,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAC;SAC9D;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,+BAA+B;SACxC;KACJ;IACD;QACI,IAAI,EAAE,8BAA8B;QACpC,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,oBAAoB;YACzC,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC;SACpB;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO;SAChB;KACJ;IACD;QACI,IAAI,EAAE,6BAA6B;QACnC,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,0BAA0B;YAC/C,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAC;SAC3E;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,kCAAkC;SAC3C;KACJ;IACD;QACI,IAAI,EAAE,iDAAiD;QACvD,UAAU,EAAE;YACR,EAAE,EAAE,gBAAgB,CAAC,kCAAkC;YACvD,IAAI,EAAE,EAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAC;SAChC;QACD,GAAG,EAAE;YACD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,UAAU;SACnB;KACJ;CACJ,CAAC;AAGF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,YAAa,SAAQ,OAAO;IAC9B,YAAqB,UAAsB;QACvC,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAY;IAE3C,CAAC;IAYD,oCAAoC;IACpC,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAE9F,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAvBe,eAAE,GAAG,UAAU,CAAC;AAEhB,0BAAa,GAAG,MAAM,CAAC;AAEvB,qBAAQ,GAAG,QAAQ,CAAC;AAEpB,0BAAa,GAAG,IAAI,CAAC;AAqBzC,eAAe,YAAY,CAAC"}