jooby-codec 1.4.0 → 1.6.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 (74) hide show
  1. package/dist/Command.d.ts +13 -4
  2. package/dist/Command.js +7 -3
  3. package/dist/Command.js.map +1 -1
  4. package/dist/CommandBinaryBuffer.d.ts +53 -23
  5. package/dist/CommandBinaryBuffer.js +111 -58
  6. package/dist/CommandBinaryBuffer.js.map +1 -1
  7. package/dist/commands/downlink/ExAbsArchiveDaysMC.d.ts +2 -2
  8. package/dist/commands/downlink/ExAbsArchiveDaysMC.js +6 -6
  9. package/dist/commands/downlink/ExAbsArchiveDaysMC.js.map +1 -1
  10. package/dist/commands/downlink/ExAbsArchiveHoursMC.d.ts +2 -2
  11. package/dist/commands/downlink/ExAbsArchiveHoursMC.js +6 -6
  12. package/dist/commands/downlink/ExAbsArchiveHoursMC.js.map +1 -1
  13. package/dist/commands/downlink/ExAbsCurrentMC.d.ts +30 -0
  14. package/dist/commands/downlink/ExAbsCurrentMC.js +43 -0
  15. package/dist/commands/downlink/ExAbsCurrentMC.js.map +1 -0
  16. package/dist/commands/downlink/GetArchiveDaysMC.d.ts +2 -2
  17. package/dist/commands/downlink/GetArchiveDaysMC.js +6 -6
  18. package/dist/commands/downlink/GetArchiveDaysMC.js.map +1 -1
  19. package/dist/commands/downlink/GetArchiveHoursMC.d.ts +2 -2
  20. package/dist/commands/downlink/GetArchiveHoursMC.js +6 -6
  21. package/dist/commands/downlink/GetArchiveHoursMC.js.map +1 -1
  22. package/dist/commands/downlink/GetCurrentMC.d.ts +25 -0
  23. package/dist/commands/downlink/GetCurrentMC.js +41 -0
  24. package/dist/commands/downlink/GetCurrentMC.js.map +1 -0
  25. package/dist/commands/downlink/SetParameter.d.ts +7 -1
  26. package/dist/commands/downlink/SetParameter.js +11 -0
  27. package/dist/commands/downlink/SetParameter.js.map +1 -1
  28. package/dist/commands/downlink/index.d.ts +2 -0
  29. package/dist/commands/downlink/index.js +2 -0
  30. package/dist/commands/downlink/index.js.map +1 -1
  31. package/dist/commands/uplink/DataDayMC.d.ts +2 -2
  32. package/dist/commands/uplink/DataDayMC.js +8 -8
  33. package/dist/commands/uplink/DataDayMC.js.map +1 -1
  34. package/dist/commands/uplink/DataHourMC.d.ts +10 -4
  35. package/dist/commands/uplink/DataHourMC.js +13 -35
  36. package/dist/commands/uplink/DataHourMC.js.map +1 -1
  37. package/dist/commands/uplink/ExAbsArchiveDaysMC.d.ts +9 -38
  38. package/dist/commands/uplink/ExAbsArchiveDaysMC.js +16 -38
  39. package/dist/commands/uplink/ExAbsArchiveDaysMC.js.map +1 -1
  40. package/dist/commands/uplink/ExAbsArchiveHoursMC.d.ts +13 -7
  41. package/dist/commands/uplink/ExAbsArchiveHoursMC.js +24 -60
  42. package/dist/commands/uplink/ExAbsArchiveHoursMC.js.map +1 -1
  43. package/dist/commands/uplink/ExAbsCurrentMC.d.ts +15 -0
  44. package/dist/commands/uplink/ExAbsCurrentMC.js +30 -0
  45. package/dist/commands/uplink/ExAbsCurrentMC.js.map +1 -0
  46. package/dist/commands/uplink/ExAbsDayMC.d.ts +8 -3
  47. package/dist/commands/uplink/ExAbsDayMC.js +10 -36
  48. package/dist/commands/uplink/ExAbsDayMC.js.map +1 -1
  49. package/dist/commands/uplink/ExAbsHourMC.d.ts +58 -6
  50. package/dist/commands/uplink/ExAbsHourMC.js +45 -50
  51. package/dist/commands/uplink/ExAbsHourMC.js.map +1 -1
  52. package/dist/commands/uplink/GetArchiveDaysMC.d.ts +5 -29
  53. package/dist/commands/uplink/GetArchiveDaysMC.js +11 -37
  54. package/dist/commands/uplink/GetArchiveDaysMC.js.map +1 -1
  55. package/dist/commands/uplink/GetArchiveHoursMC.d.ts +47 -7
  56. package/dist/commands/uplink/GetArchiveHoursMC.js +43 -23
  57. package/dist/commands/uplink/GetArchiveHoursMC.js.map +1 -1
  58. package/dist/commands/uplink/GetCurrentMC.d.ts +25 -9
  59. package/dist/commands/uplink/GetCurrentMC.js +59 -3
  60. package/dist/commands/uplink/GetCurrentMC.js.map +1 -1
  61. package/dist/commands/uplink/NewEvent.d.ts +1 -1
  62. package/dist/commands/uplink/NewEvent.js +1 -1
  63. package/dist/commands/uplink/index.d.ts +1 -0
  64. package/dist/commands/uplink/index.js +1 -0
  65. package/dist/commands/uplink/index.js.map +1 -1
  66. package/dist/constants/deviceParameters.d.ts +5 -1
  67. package/dist/constants/deviceParameters.js +5 -1
  68. package/dist/constants/deviceParameters.js.map +1 -1
  69. package/dist/utils/bitSet.d.ts +2 -2
  70. package/dist/utils/bitSet.js +2 -2
  71. package/dist/utils/message.d.ts +8 -0
  72. package/dist/utils/message.js +1 -1
  73. package/dist/utils/message.js.map +1 -1
  74. package/package.json +1 -1
@@ -1,14 +1,13 @@
1
1
  import Command from '../../Command.js';
2
2
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
- import roundNumber from '../../utils/roundNumber.js';
4
3
  import { getSecondsFromDate } from '../../utils/time.js';
5
4
  import { UPLINK } from '../../constants/directionTypes.js';
6
5
  const COMMAND_ID = 0x0d1f;
7
- const COMMAND_TITLE = 'EX_ABS_ARCH_DAYS_MUL';
6
+ const COMMAND_TITLE = 'EX_ABS_ARCHIVE_DAYS_MC';
8
7
  // date 2 bytes, channelList 1 byte (max channelList: 4), days 1 byte (max days - 255)
9
8
  // 4 + (4 channelList * (1 byte pulse coefficient + 5 bytes of day values) * 255 max days)
10
9
  const COMMAND_BODY_MAX_SIZE = 6124;
11
- class ExAbsArchiveDayMC extends Command {
10
+ class ExAbsArchiveDaysMC extends Command {
12
11
  constructor(parameters) {
13
12
  super();
14
13
  this.parameters = parameters;
@@ -17,56 +16,35 @@ class ExAbsArchiveDayMC extends Command {
17
16
  static fromBytes(data) {
18
17
  const buffer = new CommandBinaryBuffer(data);
19
18
  const date = buffer.getDate();
20
- const channelArray = buffer.getChannels(true);
19
+ const channels = buffer.getChannels();
21
20
  const days = buffer.getUint8();
22
- const maxChannel = Math.max.apply(null, channelArray);
23
- const counterDate = new Date(date);
24
- let value;
25
21
  const channelList = [];
26
- for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
27
- // IPK_${channelIndex}
28
- const pulseCoefficient = buffer.getUint8();
22
+ channels.forEach(channelIndex => {
29
23
  const dayList = [];
30
- counterDate.setTime(date.getTime());
31
24
  channelList.push({
32
25
  dayList,
33
- pulseCoefficient,
34
- index: channelIndex,
35
- seconds: getSecondsFromDate(counterDate),
36
- date: new Date(counterDate)
26
+ index: channelIndex
37
27
  });
38
28
  for (let day = 0; day < days; ++day) {
39
- value = buffer.getExtendedValue();
40
- counterDate.setTime(date.getTime());
41
- counterDate.setUTCHours(counterDate.getUTCHours() + (day * 24));
42
- dayList.push({
43
- value,
44
- day,
45
- meterValue: roundNumber(value / pulseCoefficient),
46
- date: new Date(counterDate),
47
- seconds: getSecondsFromDate(counterDate)
48
- });
29
+ dayList.push(buffer.getExtendedValue());
49
30
  }
50
- }
51
- return new ExAbsArchiveDayMC({ channelList, date, days });
31
+ });
32
+ return new ExAbsArchiveDaysMC({ channelList, days, startTime: getSecondsFromDate(date) });
52
33
  }
53
34
  toBytes() {
54
35
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
55
- const { channelList, date, days } = this.parameters;
56
- buffer.setDate(date);
36
+ const { channelList, startTime, days } = this.parameters;
37
+ buffer.setDate(startTime);
57
38
  buffer.setChannels(channelList);
58
39
  buffer.setUint8(days);
59
- channelList.forEach(({ dayList, pulseCoefficient }) => {
60
- buffer.setUint8(pulseCoefficient);
61
- dayList.forEach(({ value }) => {
62
- buffer.setExtendedValue(value);
63
- });
40
+ channelList.forEach(({ dayList }) => {
41
+ dayList.forEach(value => buffer.setExtendedValue(value));
64
42
  });
65
43
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
66
44
  }
67
45
  }
68
- ExAbsArchiveDayMC.id = COMMAND_ID;
69
- ExAbsArchiveDayMC.directionType = UPLINK;
70
- ExAbsArchiveDayMC.title = COMMAND_TITLE;
71
- export default ExAbsArchiveDayMC;
46
+ ExAbsArchiveDaysMC.id = COMMAND_ID;
47
+ ExAbsArchiveDaysMC.directionType = UPLINK;
48
+ ExAbsArchiveDaysMC.title = COMMAND_TITLE;
49
+ export default ExAbsArchiveDaysMC;
72
50
  //# sourceMappingURL=ExAbsArchiveDaysMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveDaysMC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExAbsArchiveDaysMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveDaysMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA0C,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAUzD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAE/C,sFAAsF;AACtF,0FAA0F;AAC1F,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAGnC,MAAM,kBAAmB,SAAQ,OAAO;IACpC,YAAqB,UAA+C;QAChE,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAqC;QAGhE,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;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,WAAW,GAA+B,EAAE,CAAC;QAEnD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC5B,MAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,WAAW,CAAC,IAAI,CAAC;gBACb,OAAO;gBACP,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,KAAM,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAG;gBACnC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;aAC3C;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEvD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtB,WAAW,CAAC,OAAO,CAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAE;YAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AA1CM,qBAAE,GAAG,UAAU,CAAC;AAEP,gCAAa,GAAG,MAAM,CAAC;AAEhC,wBAAK,GAAG,aAAa,CAAC;AA0CjC,eAAe,kBAAkB,CAAC"}
@@ -1,11 +1,17 @@
1
- import GetCurrentMC from './GetCurrentMC.js';
2
- declare class ExAbsArchiveHourMC extends GetCurrentMC {
3
- parameters: any;
4
- constructor(parameters: any);
1
+ import Command from '../../Command.js';
2
+ import { IChannelHours } from '../../CommandBinaryBuffer.js';
3
+ interface IUplinkExAbsArchiveHoursMCParameters {
4
+ channelList: Array<IChannelHours>;
5
+ startTime: number;
6
+ hours: number;
7
+ }
8
+ declare class ExAbsArchiveHoursMC extends Command {
9
+ parameters: IUplinkExAbsArchiveHoursMCParameters;
10
+ constructor(parameters: IUplinkExAbsArchiveHoursMCParameters);
5
11
  static readonly id = 3103;
6
12
  static readonly directionType = 2;
7
- static readonly title = "EX_ABS_ARCH_HOUR_MUL";
8
- static fromBytes(data: Uint8Array): any;
13
+ static readonly title = "EX_ABS_ARCHIVE_HOUR_MC";
14
+ static fromBytes(data: Uint8Array): ExAbsArchiveHoursMC;
9
15
  toBytes(): Uint8Array;
10
16
  }
11
- export default ExAbsArchiveHourMC;
17
+ export default ExAbsArchiveHoursMC;
@@ -1,93 +1,57 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
5
1
  import Command from '../../Command.js';
6
- import GetCurrentMC from './GetCurrentMC.js';
7
2
  import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
8
3
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
- import roundNumber from '../../utils/roundNumber.js';
10
4
  import { UPLINK } from '../../constants/directionTypes.js';
11
5
  // TODO: rework extended headers detection
12
6
  const COMMAND_ID = 0x0c1f;
13
- const COMMAND_TITLE = 'EX_ABS_ARCH_HOUR_MUL';
7
+ const COMMAND_TITLE = 'EX_ABS_ARCHIVE_HOUR_MC';
14
8
  // date 2 bytes, hour 1 byte (max hours: 7), channelList 1 byte (max channelList: 4)
15
9
  // 4 + (4 channelList * 1 byte pulse coefficient) + (4 channelList * 5 bytes of hour values) + (4 * 5 bytes of diff * 7 max hours diff)
16
10
  const COMMAND_BODY_MAX_SIZE = 168;
17
- class ExAbsArchiveHourMC extends GetCurrentMC {
18
- // TODO: add interface for parameters
11
+ class ExAbsArchiveHoursMC extends Command {
19
12
  constructor(parameters) {
20
- super(parameters);
13
+ super();
21
14
  this.parameters = parameters;
15
+ this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
22
16
  }
23
17
  static fromBytes(data) {
24
18
  const buffer = new CommandBinaryBuffer(data);
25
19
  const date = buffer.getDate();
26
20
  const { hour, hours } = buffer.getHours();
27
- const channelArray = buffer.getChannels(true);
28
- const maxChannel = Math.max.apply(null, channelArray);
29
- date.setUTCHours(hour);
30
- const counterDate = new Date(date);
31
- let hourAmount = hours;
21
+ const channels = buffer.getChannels();
32
22
  const channelList = [];
33
- if (hourAmount === 0) {
34
- // one hour
35
- hourAmount = 1;
36
- }
37
- for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
38
- // IPK_${channelIndex}
39
- const pulseCoefficient = buffer.getUint8();
40
- // decode hour value for channel
41
- const pulseValue = buffer.getExtendedValue();
23
+ date.setUTCHours(hour);
24
+ channels.forEach(channelIndex => {
25
+ const value = buffer.getExtendedValue();
42
26
  const diff = [];
43
- counterDate.setTime(date.getTime());
44
- for (let hourIndex = 0; hourIndex < hourAmount; ++hourIndex) {
45
- const value = buffer.getExtendedValue();
46
- counterDate.setUTCHours(counterDate.getUTCHours() + hourIndex);
47
- diff.push({
48
- value,
49
- pulseCoefficient,
50
- seconds: getSecondsFromDate(counterDate),
51
- meterValue: roundNumber((value + pulseValue) / pulseCoefficient)
52
- });
27
+ for (let hourIndex = 0; hourIndex < hours; ++hourIndex) {
28
+ diff.push(buffer.getExtendedValue());
53
29
  }
54
30
  channelList.push({
55
31
  diff,
56
- pulseCoefficient,
57
- index: channelIndex,
58
- value: pulseValue,
59
- seconds: getSecondsFromDate(date),
60
- meterValue: roundNumber(pulseValue / pulseCoefficient)
32
+ value,
33
+ index: channelIndex
61
34
  });
62
- }
63
- return new ExAbsArchiveHourMC({ channelList, date });
35
+ });
36
+ return new ExAbsArchiveHoursMC({ channelList, hours, startTime: getSecondsFromDate(date) });
64
37
  }
65
38
  toBytes() {
66
39
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
67
- const { channelList } = this.parameters;
68
- const { seconds } = channelList[0];
69
- const realDate = getDateFromSeconds(seconds);
70
- const hour = realDate.getUTCHours();
71
- let hours = channelList[0].diff.length;
72
- // TODO: add link to doc
73
- if (hours === 1) {
74
- hours = 0;
75
- }
76
- buffer.setDate(seconds);
40
+ const { channelList, startTime, hours } = this.parameters;
41
+ const date = getDateFromSeconds(startTime);
42
+ const hour = date.getUTCHours();
43
+ buffer.setDate(date);
77
44
  buffer.setHours(hour, hours);
78
45
  buffer.setChannels(channelList);
79
- for (const { value, diff, pulseCoefficient } of channelList) {
80
- buffer.setUint8(pulseCoefficient);
46
+ for (const { value, diff } of channelList) {
81
47
  buffer.setExtendedValue(value);
82
- for (const { value: diffValue } of diff) {
83
- buffer.setExtendedValue(diffValue);
84
- }
48
+ diff.forEach(diffValue => buffer.setExtendedValue(diffValue));
85
49
  }
86
50
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
87
51
  }
88
52
  }
89
- ExAbsArchiveHourMC.id = COMMAND_ID;
90
- ExAbsArchiveHourMC.directionType = UPLINK;
91
- ExAbsArchiveHourMC.title = COMMAND_TITLE;
92
- export default ExAbsArchiveHourMC;
53
+ ExAbsArchiveHoursMC.id = COMMAND_ID;
54
+ ExAbsArchiveHoursMC.directionType = UPLINK;
55
+ ExAbsArchiveHoursMC.title = COMMAND_TITLE;
56
+ export default ExAbsArchiveHoursMC;
93
57
  //# sourceMappingURL=ExAbsArchiveHoursMC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveHoursMC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExAbsArchiveHoursMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsArchiveHoursMC.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import Command from '../../Command.js';
2
+ import { IChannelAbsoluteValue } from '../../CommandBinaryBuffer.js';
3
+ interface IUplinkExAbsCurrentMCParameters {
4
+ channelList: Array<IChannelAbsoluteValue>;
5
+ }
6
+ declare class ExAbsCurrentMC extends Command {
7
+ parameters: IUplinkExAbsCurrentMCParameters;
8
+ constructor(parameters: IUplinkExAbsCurrentMCParameters);
9
+ static id: number;
10
+ static readonly directionType = 2;
11
+ static title: string;
12
+ static fromBytes(data: Uint8Array): ExAbsCurrentMC;
13
+ toBytes(): Uint8Array;
14
+ }
15
+ export default ExAbsCurrentMC;
@@ -0,0 +1,30 @@
1
+ import Command from '../../Command.js';
2
+ import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
3
+ import { UPLINK } from '../../constants/directionTypes.js';
4
+ const COMMAND_ID = 0x0f1f;
5
+ const COMMAND_TITLE = 'EX_ABS_CURRENT_MC';
6
+ // channelList 3 byte (max channelList: 14)
7
+ // 3 + (14 * (1 byte IPK + 5 bytes of day values))
8
+ const COMMAND_BODY_MAX_SIZE = 87;
9
+ class ExAbsCurrentMC extends Command {
10
+ constructor(parameters) {
11
+ super();
12
+ this.parameters = parameters;
13
+ this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
14
+ }
15
+ static fromBytes(data) {
16
+ const buffer = new CommandBinaryBuffer(data);
17
+ return new ExAbsCurrentMC({ channelList: buffer.getChannelsWithAbsoluteValues() });
18
+ }
19
+ toBytes() {
20
+ const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
21
+ const { channelList } = this.parameters;
22
+ buffer.setChannelsWithAbsoluteValues(channelList);
23
+ return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
24
+ }
25
+ }
26
+ ExAbsCurrentMC.id = COMMAND_ID;
27
+ ExAbsCurrentMC.directionType = UPLINK;
28
+ ExAbsCurrentMC.title = COMMAND_TITLE;
29
+ export default ExAbsCurrentMC;
30
+ //# sourceMappingURL=ExAbsCurrentMC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExAbsCurrentMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsCurrentMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,mBAA4C,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAQzD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C,2CAA2C;AAC3C,kDAAkD;AAClD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,cAAe,SAAQ,OAAO;IAChC,YAAqB,UAA2C;QAC5D,KAAK,EAAE,CAAC;QADS,eAAU,GAAV,UAAU,CAAiC;QAG5D,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,cAAc,CAAC,EAAC,WAAW,EAAE,MAAM,CAAC,6BAA6B,EAAE,EAAC,CAAC,CAAC;IACrF,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,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAElD,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAnBM,iBAAE,GAAG,UAAU,CAAC;AAEP,4BAAa,GAAG,MAAM,CAAC;AAEhC,oBAAK,GAAG,aAAa,CAAC;AAmBjC,eAAe,cAAc,CAAC"}
@@ -1,11 +1,16 @@
1
1
  import GetCurrentMC from './GetCurrentMC.js';
2
+ import { IChannelAbsoluteValue } from '../../CommandBinaryBuffer.js';
3
+ interface IExAbsDayMCParameters {
4
+ channelList: Array<IChannelAbsoluteValue>;
5
+ startTime: number;
6
+ }
2
7
  declare class ExAbsDayMC extends GetCurrentMC {
3
- parameters: any;
4
- constructor(parameters: any);
8
+ parameters: IExAbsDayMCParameters;
9
+ constructor(parameters: IExAbsDayMCParameters);
5
10
  static id: number;
6
11
  static readonly directionType = 2;
7
12
  static title: string;
8
- static fromBytes(data: Uint8Array): any;
13
+ static fromBytes(data: Uint8Array): ExAbsDayMC;
9
14
  toBytes(): Uint8Array;
10
15
  }
11
16
  export default ExAbsDayMC;
@@ -1,18 +1,13 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
5
1
  import Command from '../../Command.js';
6
2
  import GetCurrentMC from './GetCurrentMC.js';
7
3
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
8
- import roundNumber from '../../utils/roundNumber.js';
9
- import { getSecondsFromDate } from '../../utils/time.js';
10
4
  import { UPLINK } from '../../constants/directionTypes.js';
5
+ import { getSecondsFromDate } from '../../utils/time.js';
11
6
  const COMMAND_ID = 0x0b1f;
12
- const COMMAND_TITLE = 'EX_ABS_DAY_MUL';
13
- // date 2 bytes, channelList - 1 byte (max channelList: 4)
14
- // 3 + (4 channelList * (1 byte IPK + 5 bytes of day values))
15
- const COMMAND_BODY_MAX_SIZE = 27;
7
+ const COMMAND_TITLE = 'EX_ABS_DAY_MC';
8
+ // date 2 bytes, channelList 3 bytes (max channelList: 14)
9
+ // 5 + (14 channelList * (1 byte IPK + 5 bytes of day values))
10
+ const COMMAND_BODY_MAX_SIZE = 89;
16
11
  class ExAbsDayMC extends GetCurrentMC {
17
12
  constructor(parameters) {
18
13
  super(parameters);
@@ -21,35 +16,14 @@ class ExAbsDayMC extends GetCurrentMC {
21
16
  static fromBytes(data) {
22
17
  const buffer = new CommandBinaryBuffer(data);
23
18
  const date = buffer.getDate();
24
- const channelArray = buffer.getChannels(true);
25
- const maxChannel = Math.max.apply(null, channelArray);
26
- let value;
27
- const channelList = [];
28
- for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
29
- // IPK_${channelIndex}
30
- const pulseCoefficient = buffer.getUint8();
31
- // day value
32
- value = buffer.getExtendedValue();
33
- channelList.push({
34
- value,
35
- pulseCoefficient,
36
- index: channelIndex,
37
- seconds: getSecondsFromDate(date),
38
- meterValue: roundNumber(value / pulseCoefficient)
39
- });
40
- }
41
- return new ExAbsDayMC({ channelList, date });
19
+ const channelList = buffer.getChannelsWithAbsoluteValues();
20
+ return new ExAbsDayMC({ channelList, startTime: getSecondsFromDate(date) });
42
21
  }
43
22
  toBytes() {
44
23
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
45
- const { channelList } = this.parameters;
46
- const { seconds } = channelList[0];
47
- buffer.setDate(seconds);
48
- buffer.setChannels(channelList);
49
- for (const { value, pulseCoefficient } of channelList) {
50
- buffer.setUint8(pulseCoefficient);
51
- buffer.setExtendedValue(value);
52
- }
24
+ const { channelList, startTime } = this.parameters;
25
+ buffer.setDate(startTime);
26
+ buffer.setChannelsWithAbsoluteValues(channelList);
53
27
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
54
28
  }
55
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsDayMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsDayMC.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,uDAAuD;AACvD,0DAA0D;AAE1D,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AAGzD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC,0DAA0D;AAC1D,6DAA6D;AAC7D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,UAAW,SAAQ,YAAY;IACjC,YAAqB,UAAe;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAK;IAEpC,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAEtD,IAAI,KAAK,CAAC;QAEV,MAAM,WAAW,GAAe,EAAE,CAAC;QAEnC,KAAM,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,IAAI,UAAU,EAAE,EAAE,YAAY,EAAG;YACrE,sBAAsB;YACtB,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,YAAY;YACZ,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,WAAW,CAAC,IAAI,CAAC;gBACb,KAAK;gBACL,gBAAgB;gBAChB,KAAK,EAAE,YAAY;gBACnB,OAAO,EAAE,kBAAkB,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,WAAW,CAAC,KAAK,GAAG,gBAAgB,CAAC;aACpD,CAAC,CAAC;SACN;QAED,OAAO,IAAI,UAAU,CAAC,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;IAC/C,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,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEhC,KAAM,MAAM,EAAC,KAAK,EAAE,gBAAgB,EAAC,IAAI,WAAW,EAAG;YACnD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAClC;QAED,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAjDM,aAAE,GAAG,UAAU,CAAC;AAEP,wBAAa,GAAG,MAAM,CAAC;AAEhC,gBAAK,GAAG,aAAa,CAAC;AAiDjC,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ExAbsDayMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsDayMC.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,mBAA4C,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AASvD,MAAM,UAAU,GAAG,MAAM,CAAC;AAC1B,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,0DAA0D;AAC1D,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAGjC,MAAM,UAAW,SAAQ,YAAY;IACjC,YAAqB,UAAiC;QAClD,KAAK,CAAC,UAAU,CAAC,CAAC;QADD,eAAU,GAAV,UAAU,CAAuB;IAEtD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAG,IAAgB;QAC/B,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,6BAA6B,EAAE,CAAC;QAE3D,OAAO,IAAI,UAAU,CAAC,EAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO;QACH,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAC,WAAW,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAEjD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAElD,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAClE,CAAC;;AAtBM,aAAE,GAAG,UAAU,CAAC;AAEP,wBAAa,GAAG,MAAM,CAAC;AAEhC,gBAAK,GAAG,aAAa,CAAC;AAsBjC,eAAe,UAAU,CAAC"}
@@ -1,11 +1,63 @@
1
- import GetCurrentMC from './GetCurrentMC.js';
2
- declare class ExAbsHourMC extends GetCurrentMC {
3
- parameters: any;
4
- constructor(parameters: any);
1
+ import Command from '../../Command.js';
2
+ import { IChannelHourAbsoluteValue } from '../../CommandBinaryBuffer.js';
3
+ /**
4
+ * GetArchiveHoursMC command parameters
5
+ *
6
+ * @example
7
+ * // archive hours values from 001-03-10T12:00:00.000Z with 1-hour diff
8
+ *
9
+ * {
10
+ * startTime: 731764800,
11
+ * hours: 1,
12
+ * channelList: [
13
+ * {
14
+ * pulseCoefficient: 100,
15
+ * index: 0,
16
+ * value: 342457,
17
+ * diff: [128]
18
+ * }
19
+ * ]
20
+ * }
21
+ *
22
+ */
23
+ interface IUplinkExAbsHourMCParameters {
24
+ channelList: Array<IChannelHourAbsoluteValue>;
25
+ startTime: number;
26
+ hours: number;
27
+ }
28
+ /**
29
+ * Uplink command
30
+ *
31
+ * @example
32
+ * ```js
33
+ * import ExAbsHourMC from 'jooby-codec/commands/uplink/GetArchiveHoursMC';
34
+ *
35
+ * const command = new ExAbsHourMC({
36
+ * startTime: 731764800,
37
+ * hours: 1,
38
+ * channelList: [
39
+ * {
40
+ * pulseCoefficient: 100,
41
+ * index: 0,
42
+ * value: 342457,
43
+ * diff: [128]
44
+ * }
45
+ * ]
46
+ * });
47
+ *
48
+ * // output command binary in hex representation
49
+ * console.log(command.toHex());
50
+ * // 1a 0d 2f 97 0c 0f 83 01 0a 08 0a 08 0a 0c 0a
51
+ * ```
52
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/uplink/ExAbsHourMC.md)
53
+ */
54
+ declare class ExAbsHourMC extends Command {
55
+ parameters: IUplinkExAbsHourMCParameters;
56
+ constructor(parameters: IUplinkExAbsHourMCParameters);
5
57
  static readonly id = 2591;
6
58
  static readonly directionType = 2;
7
- static readonly title = "EX_ABS_HOUR_MUL";
8
- static fromBytes(data: Uint8Array): any;
59
+ static readonly title = "EX_ABS_HOUR_MC";
60
+ static fromBytes(data: Uint8Array): ExAbsHourMC;
9
61
  toBytes(): Uint8Array;
10
62
  }
11
63
  export default ExAbsHourMC;
@@ -1,86 +1,81 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
5
1
  import Command from '../../Command.js';
6
- import GetCurrentMC from './GetCurrentMC.js';
7
2
  import { getSecondsFromDate, getDateFromSeconds } from '../../utils/time.js';
8
3
  import CommandBinaryBuffer from '../../CommandBinaryBuffer.js';
9
- import roundNumber from '../../utils/roundNumber.js';
10
4
  import { UPLINK } from '../../constants/directionTypes.js';
11
5
  const COMMAND_ID = 0x0a1f;
12
- const COMMAND_TITLE = 'EX_ABS_HOUR_MUL';
6
+ const COMMAND_TITLE = 'EX_ABS_HOUR_MC';
13
7
  // date 2 bytes, hour 1 byte, channelList - 1 byte (max channelList: 4)
14
8
  // max hours diff - 7 (3 bit value)
15
9
  // 4 + (4 channelList * (1 byte IPK + 5 bytes of hour value)) + (4 * 2 bytes of diff * 7 max hours diff)
16
10
  const COMMAND_BODY_MAX_SIZE = 84;
17
- class ExAbsHourMC extends GetCurrentMC {
11
+ /**
12
+ * Uplink command
13
+ *
14
+ * @example
15
+ * ```js
16
+ * import ExAbsHourMC from 'jooby-codec/commands/uplink/GetArchiveHoursMC';
17
+ *
18
+ * const command = new ExAbsHourMC({
19
+ * startTime: 731764800,
20
+ * hours: 1,
21
+ * channelList: [
22
+ * {
23
+ * pulseCoefficient: 100,
24
+ * index: 0,
25
+ * value: 342457,
26
+ * diff: [128]
27
+ * }
28
+ * ]
29
+ * });
30
+ *
31
+ * // output command binary in hex representation
32
+ * console.log(command.toHex());
33
+ * // 1a 0d 2f 97 0c 0f 83 01 0a 08 0a 08 0a 0c 0a
34
+ * ```
35
+ * [Command format documentation](https://github.com/jooby-dev/jooby-docs/blob/main/docs/commands/uplink/ExAbsHourMC.md)
36
+ */
37
+ class ExAbsHourMC extends Command {
18
38
  constructor(parameters) {
19
- super(parameters);
39
+ super();
20
40
  this.parameters = parameters;
41
+ this.parameters.channelList = this.parameters.channelList.sort((a, b) => a.index - b.index);
21
42
  }
22
43
  static fromBytes(data) {
23
44
  const buffer = new CommandBinaryBuffer(data);
24
45
  const date = buffer.getDate();
25
46
  const { hour, hours } = buffer.getHours();
26
- const channelArray = buffer.getChannels(true);
27
- const maxChannel = Math.max.apply(null, channelArray);
28
- date.setUTCHours(hour);
29
- const counterDate = new Date(date);
30
- let hourAmount = hours;
47
+ const channels = buffer.getChannels();
31
48
  const channelList = [];
32
- if (hourAmount === 0) {
33
- // one hour
34
- hourAmount = 1;
35
- }
36
- for (let channelIndex = 0; channelIndex <= maxChannel; ++channelIndex) {
37
- // IPK_${channelIndex}
49
+ const hourAmount = hours === 0 ? 1 : hours;
50
+ date.setUTCHours(hour);
51
+ channels.forEach(channelIndex => {
38
52
  const pulseCoefficient = buffer.getUint8();
39
- // decode hour value for channel
40
- const pulseValue = buffer.getExtendedValue();
41
- counterDate.setTime(date.getTime());
53
+ const value = buffer.getExtendedValue();
42
54
  const diff = [];
43
55
  for (let hourIndex = 0; hourIndex < hourAmount; ++hourIndex) {
44
- const value = buffer.getExtendedValue();
45
- counterDate.setUTCHours(counterDate.getUTCHours() + hourIndex);
46
- diff.push({
47
- value,
48
- pulseCoefficient,
49
- seconds: getSecondsFromDate(counterDate),
50
- meterValue: roundNumber((value + pulseValue) / pulseCoefficient)
51
- });
56
+ diff.push(buffer.getExtendedValue());
52
57
  }
53
58
  channelList.push({
54
59
  diff,
60
+ value,
55
61
  pulseCoefficient,
56
- index: channelIndex,
57
- value: pulseValue,
58
- seconds: getSecondsFromDate(date),
59
- meterValue: roundNumber(pulseValue / pulseCoefficient)
62
+ index: channelIndex
60
63
  });
61
- }
62
- return new ExAbsHourMC({ channelList, date });
64
+ });
65
+ return new ExAbsHourMC({ channelList, hours: hourAmount, startTime: getSecondsFromDate(date) });
63
66
  }
64
67
  toBytes() {
65
68
  const buffer = new CommandBinaryBuffer(COMMAND_BODY_MAX_SIZE);
66
- const { channelList } = this.parameters;
67
- const { seconds } = channelList[0];
68
- const realDate = getDateFromSeconds(seconds);
69
- const hour = realDate.getUTCHours();
70
- let hours = channelList[0].diff.length;
71
- // TODO: add link to doc
72
- if (hours === 1) {
73
- hours = 0;
74
- }
75
- buffer.setDate(seconds);
69
+ const { hours, startTime, channelList } = this.parameters;
70
+ const date = getDateFromSeconds(startTime);
71
+ const hour = date.getUTCHours();
72
+ buffer.setDate(startTime);
76
73
  buffer.setHours(hour, hours);
77
74
  buffer.setChannels(channelList);
78
75
  for (const { value, diff, pulseCoefficient } of channelList) {
79
76
  buffer.setUint8(pulseCoefficient);
80
77
  buffer.setExtendedValue(value);
81
- for (const { value: diffValue } of diff) {
82
- buffer.setExtendedValue(diffValue);
83
- }
78
+ diff.forEach(diffValue => buffer.setExtendedValue(diffValue));
84
79
  }
85
80
  return Command.toBytes(COMMAND_ID, buffer.getBytesToOffset());
86
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ExAbsHourMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsHourMC.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExAbsHourMC.js","sourceRoot":"","sources":["../../../src/commands/uplink/ExAbsHourMC.ts"],"names":[],"mappings":"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"}