iobroker.telegram-menu 2.4.0 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +8 -1
  2. package/admin/build/index.js +1 -1
  3. package/admin/build/index.js.map +3 -3
  4. package/build/app/action.js +4 -3
  5. package/build/app/action.js.map +2 -2
  6. package/build/app/echarts.js.map +1 -1
  7. package/build/app/getstate.js +8 -6
  8. package/build/app/getstate.js.map +2 -2
  9. package/build/app/idBySelector.js.map +2 -2
  10. package/build/app/telegram.js +5 -1
  11. package/build/app/telegram.js.map +2 -2
  12. package/build/lib/appUtils.js.map +2 -2
  13. package/build/lib/exchangeValue.js +8 -4
  14. package/build/lib/exchangeValue.js.map +2 -2
  15. package/build/lib/string.js +7 -1
  16. package/build/lib/string.js.map +2 -2
  17. package/build/types/types.js.map +1 -1
  18. package/io-package.json +27 -27
  19. package/package.json +5 -5
  20. package/build/.eslintrc.js +0 -70
  21. package/build/.eslintrc.js.map +0 -1
  22. package/build/build/src/app/action.js +0 -447
  23. package/build/build/src/app/adapterStartMenuSend.js +0 -37
  24. package/build/build/src/app/backMenu.js +0 -70
  25. package/build/build/src/app/botAction.js +0 -25
  26. package/build/build/src/app/connection.js +0 -19
  27. package/build/build/src/app/createState.js +0 -19
  28. package/build/build/src/app/dynamicSwitch.js +0 -51
  29. package/build/build/src/app/dynamicValue.js +0 -64
  30. package/build/build/src/app/echarts.js +0 -45
  31. package/build/build/src/app/getstate.js +0 -157
  32. package/build/build/src/app/global.js +0 -59
  33. package/build/build/src/app/httpRequest.js +0 -64
  34. package/build/build/src/app/jsonTable.js +0 -147
  35. package/build/build/src/app/logging.js +0 -13
  36. package/build/build/src/app/messageIds.js +0 -88
  37. package/build/build/src/app/processData.js +0 -208
  38. package/build/build/src/app/sendNav.js +0 -30
  39. package/build/build/src/app/sendpic.js +0 -69
  40. package/build/build/src/app/setstate.js +0 -126
  41. package/build/build/src/app/shoppingList.js +0 -72
  42. package/build/build/src/app/subMenu.js +0 -361
  43. package/build/build/src/app/subscribeStates.js +0 -25
  44. package/build/build/src/app/telegram.js +0 -101
  45. package/build/build/src/lib/string.js +0 -28
  46. package/build/build/src/lib/time.js +0 -23
  47. package/build/build/src/lib/utilities.js +0 -263
  48. package/build/build/src/lib/utils.js +0 -13
  49. package/build/build/src/main.js +0 -402
  50. package/build/io-package.json +0 -324
  51. package/build/src/app/action.js +0 -239
  52. package/build/src/app/action.js.map +0 -1
  53. package/build/src/app/adapterManager.js +0 -12
  54. package/build/src/app/adapterManager.js.map +0 -1
  55. package/build/src/app/adapterStartMenuSend.js +0 -36
  56. package/build/src/app/adapterStartMenuSend.js.map +0 -1
  57. package/build/src/app/backMenu.js +0 -81
  58. package/build/src/app/backMenu.js.map +0 -1
  59. package/build/src/app/botAction.js +0 -25
  60. package/build/src/app/botAction.js.map +0 -1
  61. package/build/src/app/configVariables.js +0 -32
  62. package/build/src/app/configVariables.js.map +0 -1
  63. package/build/src/app/connection.js +0 -20
  64. package/build/src/app/connection.js.map +0 -1
  65. package/build/src/app/createState.js +0 -19
  66. package/build/src/app/createState.js.map +0 -1
  67. package/build/src/app/dynamicSwitch.js +0 -52
  68. package/build/src/app/dynamicSwitch.js.map +0 -1
  69. package/build/src/app/dynamicSwitchMenu.js +0 -52
  70. package/build/src/app/dynamicSwitchMenu.js.map +0 -1
  71. package/build/src/app/dynamicValue.js +0 -52
  72. package/build/src/app/dynamicValue.js.map +0 -1
  73. package/build/src/app/echarts.js +0 -33
  74. package/build/src/app/echarts.js.map +0 -1
  75. package/build/src/app/getstate.js +0 -122
  76. package/build/src/app/getstate.js.map +0 -1
  77. package/build/src/app/global.js +0 -8
  78. package/build/src/app/global.js.map +0 -1
  79. package/build/src/app/httpRequest.js +0 -55
  80. package/build/src/app/httpRequest.js.map +0 -1
  81. package/build/src/app/jsonTable.js +0 -147
  82. package/build/src/app/jsonTable.js.map +0 -1
  83. package/build/src/app/logging.js +0 -22
  84. package/build/src/app/logging.js.map +0 -1
  85. package/build/src/app/messageIds.js +0 -89
  86. package/build/src/app/messageIds.js.map +0 -1
  87. package/build/src/app/processData.js +0 -153
  88. package/build/src/app/processData.js.map +0 -1
  89. package/build/src/app/sendNav.js +0 -26
  90. package/build/src/app/sendNav.js.map +0 -1
  91. package/build/src/app/sendpic.js +0 -66
  92. package/build/src/app/sendpic.js.map +0 -1
  93. package/build/src/app/sentry.js +0 -18
  94. package/build/src/app/sentry.js.map +0 -1
  95. package/build/src/app/setStateIdsToListenTo.js +0 -17
  96. package/build/src/app/setStateIdsToListenTo.js.map +0 -1
  97. package/build/src/app/setstate.js +0 -114
  98. package/build/src/app/setstate.js.map +0 -1
  99. package/build/src/app/shoppingList.js +0 -74
  100. package/build/src/app/shoppingList.js.map +0 -1
  101. package/build/src/app/subMenu.js +0 -237
  102. package/build/src/app/subMenu.js.map +0 -1
  103. package/build/src/app/subscribeStates.js +0 -17
  104. package/build/src/app/subscribeStates.js.map +0 -1
  105. package/build/src/app/telegram.js +0 -83
  106. package/build/src/app/telegram.js.map +0 -1
  107. package/build/src/app/validateMenus.js +0 -30
  108. package/build/src/app/validateMenus.js.map +0 -1
  109. package/build/src/config/config.js +0 -100
  110. package/build/src/config/config.js.map +0 -1
  111. package/build/src/lib/appUtils.js +0 -126
  112. package/build/src/lib/appUtils.js.map +0 -1
  113. package/build/src/lib/appUtilsString.js +0 -13
  114. package/build/src/lib/appUtilsString.js.map +0 -1
  115. package/build/src/lib/json.js +0 -37
  116. package/build/src/lib/json.js.map +0 -1
  117. package/build/src/lib/math.js +0 -17
  118. package/build/src/lib/math.js.map +0 -1
  119. package/build/src/lib/object.js +0 -10
  120. package/build/src/lib/object.js.map +0 -1
  121. package/build/src/lib/splitValues.js +0 -35
  122. package/build/src/lib/splitValues.js.map +0 -1
  123. package/build/src/lib/string.js +0 -121
  124. package/build/src/lib/string.js.map +0 -1
  125. package/build/src/lib/time.js +0 -57
  126. package/build/src/lib/time.js.map +0 -1
  127. package/build/src/lib/utilities.js +0 -111
  128. package/build/src/lib/utilities.js.map +0 -1
  129. package/build/src/lib/utils.js +0 -37
  130. package/build/src/lib/utils.js.map +0 -1
  131. package/build/src/main.js +0 -332
  132. package/build/src/main.js.map +0 -1
  133. package/build/src/test/setup.js +0 -12
  134. package/build/src/test/setup.js.map +0 -1
  135. package/build/src/types/types.js +0 -3
  136. package/build/src/types/types.js.map +0 -1
  137. package/build/test/integration.js +0 -6
  138. package/build/test/integration.js.map +0 -1
  139. package/build/test/mocha.setup.js +0 -14
  140. package/build/test/mocha.setup.js.map +0 -1
  141. package/build/test/package.js +0 -6
  142. package/build/test/package.js.map +0 -1
  143. package/build/test/setup.js +0 -12
  144. package/build/test/setup.js.map +0 -1
  145. package/build/test/test/appUtils.test.js +0 -519
  146. package/build/test/test/appUtils.test.js.map +0 -1
  147. package/build/test/test/appUtilsString.test.js +0 -16
  148. package/build/test/test/appUtilsString.test.js.map +0 -1
  149. package/build/test/test/math.test.js +0 -33
  150. package/build/test/test/math.test.js.map +0 -1
  151. package/build/test/test/object.test.js +0 -66
  152. package/build/test/test/object.test.js.map +0 -1
  153. package/build/test/test/string.test.js +0 -385
  154. package/build/test/test/string.test.js.map +0 -1
  155. package/build/test/test/time.test.js +0 -186
  156. package/build/test/test/time.test.js.map +0 -1
  157. package/build/test/test/utils.test.js +0 -115
  158. package/build/test/test/utils.test.js.map +0 -1
@@ -1,186 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const time_1 = require("../../src/lib/time");
5
- const config_1 = require("../../src/config/config");
6
- describe('Time', () => {
7
- const testDate = new Date(1744388803096);
8
- const expectedDate = '11.4.2025, 18:26:43';
9
- // FIXME : Test gets error Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
10
- it('Should return a correct formatted date', function () {
11
- this.timeout(10000);
12
- const result = (0, time_1.toLocaleDate)(testDate, { locale: 'de-DE', tz: 'Europe/Berlin' });
13
- (0, chai_1.expect)(result).to.equal(expectedDate);
14
- });
15
- it('Should not throw an exception, if no valid date', () => {
16
- const invalidDate = new Date('invalid-date');
17
- (0, chai_1.expect)(() => (0, time_1.toLocaleDate)(invalidDate)).to.not.throw();
18
- });
19
- it('Integrate a valid time into text', () => {
20
- const result = (0, time_1.integrateTimeIntoText)(`Test at ${config_1.config.time} created`, 1744388803096);
21
- (0, chai_1.expect)(result).to.equal(`Test at ${expectedDate} created`);
22
- });
23
- it('Handle a non valid time', () => {
24
- const result = (0, time_1.integrateTimeIntoText)(`Test at ${config_1.config.time} created`, 'abc');
25
- (0, chai_1.expect)(result).to.equal(`Test at "Invalid Date" created`);
26
- });
27
- it('Handle a null value for time', () => {
28
- [null, undefined].forEach(value => {
29
- const result = (0, time_1.integrateTimeIntoText)(`Test at ${config_1.config.time} created`, value);
30
- (0, chai_1.expect)(result).to.equal(`Test at "Invalid Date" created`);
31
- });
32
- });
33
- });
34
- describe('extractTimeValues', () => {
35
- it('should correctly extract time values from a valid timestamp', () => {
36
- const timestamp = 1744388803096; // Corresponds to 11.4.2025, 18:26:43.096
37
- const result = (0, time_1.extractTimeValues)(timestamp);
38
- (0, chai_1.expect)(result).to.deep.equal({
39
- milliseconds: 96,
40
- seconds: 43,
41
- minutes: 26,
42
- hours: 18,
43
- day: 11,
44
- month: 4,
45
- year: 2025,
46
- });
47
- });
48
- it('should handle a timestamp of 0 (Unix epoch)', () => {
49
- const timestamp = 0; // 1.1.1970, 00:00:00.000
50
- const result = (0, time_1.extractTimeValues)(timestamp);
51
- (0, chai_1.expect)(result).to.deep.equal({
52
- milliseconds: 0,
53
- seconds: 0,
54
- minutes: 0,
55
- hours: 1,
56
- day: 1,
57
- month: 1,
58
- year: 1970,
59
- });
60
- });
61
- it('should handle a negative timestamp (before Unix epoch)', () => {
62
- const timestamp = -3600000;
63
- const result = (0, time_1.extractTimeValues)(timestamp);
64
- (0, chai_1.expect)(result).to.deep.equal({
65
- milliseconds: NaN,
66
- seconds: NaN,
67
- minutes: NaN,
68
- hours: NaN,
69
- day: NaN,
70
- month: NaN,
71
- year: NaN,
72
- });
73
- });
74
- it('should return NaN for all values if the timestamp is invalid', () => {
75
- const result = (0, time_1.extractTimeValues)(NaN);
76
- (0, chai_1.expect)(result).to.deep.equal({
77
- milliseconds: NaN,
78
- seconds: NaN,
79
- minutes: NaN,
80
- hours: NaN,
81
- day: NaN,
82
- month: NaN,
83
- year: NaN,
84
- });
85
- });
86
- it('should handle a very large timestamp', () => {
87
- const timestamp = 8640000000000;
88
- const result = (0, time_1.extractTimeValues)(timestamp);
89
- (0, chai_1.expect)(result).to.deep.equal({
90
- milliseconds: 0,
91
- seconds: 0,
92
- minutes: 0,
93
- hours: 2,
94
- day: 17,
95
- month: 10,
96
- year: 2243,
97
- });
98
- });
99
- });
100
- describe('getTimeWithPad', () => {
101
- it('should correctly pad all time values', () => {
102
- const input = {
103
- milliseconds: 5,
104
- seconds: 9,
105
- minutes: 3,
106
- hours: 7,
107
- day: 1,
108
- month: 2,
109
- year: 2023,
110
- };
111
- const result = (0, time_1.getTimeWithPad)(input);
112
- (0, chai_1.expect)(result).to.deep.equal({
113
- ms: '005',
114
- s: '09',
115
- m: '03',
116
- h: '07',
117
- d: '01',
118
- mo: '02',
119
- y: '2023',
120
- });
121
- });
122
- it('should handle already padded values', () => {
123
- const input = {
124
- milliseconds: 123,
125
- seconds: 45,
126
- minutes: 30,
127
- hours: 12,
128
- day: 15,
129
- month: 10,
130
- year: 2025,
131
- };
132
- const result = (0, time_1.getTimeWithPad)(input);
133
- (0, chai_1.expect)(result).to.deep.equal({
134
- ms: '123',
135
- s: '45',
136
- m: '30',
137
- h: '12',
138
- d: '15',
139
- mo: '10',
140
- y: '2025',
141
- });
142
- });
143
- it('should handle edge cases with zero values', () => {
144
- const input = {
145
- milliseconds: 0,
146
- seconds: 0,
147
- minutes: 0,
148
- hours: 0,
149
- day: 0,
150
- month: 0,
151
- year: 0,
152
- };
153
- const result = (0, time_1.getTimeWithPad)(input);
154
- (0, chai_1.expect)(result).to.deep.equal({
155
- ms: '000',
156
- s: '00',
157
- m: '00',
158
- h: '00',
159
- d: '00',
160
- mo: '00',
161
- y: '0',
162
- });
163
- });
164
- it('should handle large year values', () => {
165
- const input = {
166
- milliseconds: 1,
167
- seconds: 1,
168
- minutes: 1,
169
- hours: 1,
170
- day: 1,
171
- month: 1,
172
- year: 9999,
173
- };
174
- const result = (0, time_1.getTimeWithPad)(input);
175
- (0, chai_1.expect)(result).to.deep.equal({
176
- ms: '001',
177
- s: '01',
178
- m: '01',
179
- h: '01',
180
- d: '01',
181
- mo: '01',
182
- y: '9999',
183
- });
184
- });
185
- });
186
- //# sourceMappingURL=time.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"time.test.js","sourceRoot":"","sources":["../../../test/test/time.test.ts"],"names":[],"mappings":"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"}
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chai_1 = require("chai");
4
- const utils_1 = require("../../src/lib/utils");
5
- const testing_1 = require("@iobroker/testing");
6
- const { adapter, database } = testing_1.utils.unit.createMocks({});
7
- describe('Utils', () => {
8
- const mockData = [
9
- { name: 'Alice', chatID: '123' },
10
- { name: 'Bob', chatID: '456' },
11
- { name: 'Charlie', chatID: '789' },
12
- ];
13
- it('Should return the correct chatID, if user exist', () => {
14
- const result = (0, utils_1.getChatID)(mockData, 'Alice');
15
- (0, chai_1.expect)(result).to.equal('123');
16
- });
17
- it('Should return undefined, id no user exist', () => {
18
- const result = (0, utils_1.getChatID)(mockData, 'David');
19
- (0, chai_1.expect)(result).to.be.undefined;
20
- });
21
- it('Should return undefined, if the array is empty', () => {
22
- const result = (0, utils_1.getChatID)([], 'Alice');
23
- (0, chai_1.expect)(result).to.be.undefined;
24
- });
25
- });
26
- describe('isDefined', () => {
27
- it('should return true for defined values', () => {
28
- (0, chai_1.expect)((0, utils_1.isDefined)(123)).to.be.true;
29
- (0, chai_1.expect)((0, utils_1.isDefined)('test')).to.be.true;
30
- (0, chai_1.expect)((0, utils_1.isDefined)(true)).to.be.true;
31
- (0, chai_1.expect)((0, utils_1.isDefined)({})).to.be.true;
32
- (0, chai_1.expect)((0, utils_1.isDefined)([])).to.be.true;
33
- });
34
- it('should return false for undefined or null values', () => {
35
- (0, chai_1.expect)((0, utils_1.isDefined)(undefined)).to.be.false;
36
- (0, chai_1.expect)((0, utils_1.isDefined)(null)).to.be.false;
37
- });
38
- });
39
- describe('deepCopy', () => {
40
- afterEach(() => {
41
- adapter.resetMockHistory();
42
- database.clear();
43
- });
44
- it('should create a deep copy of an object', () => {
45
- const original = { a: 1, b: { c: 2 } };
46
- const copy = (0, utils_1.deepCopy)(original, adapter);
47
- (0, chai_1.expect)(copy).to.deep.equal(original);
48
- (0, chai_1.expect)(copy).to.not.equal(original); // Ensure it's not the same reference
49
- });
50
- it('should return undefined for undefined or null input', () => {
51
- (0, chai_1.expect)((0, utils_1.deepCopy)(undefined, adapter)).to.be.undefined;
52
- (0, chai_1.expect)((0, utils_1.deepCopy)(null, adapter)).to.be.undefined;
53
- });
54
- it('should handle arrays correctly', () => {
55
- const original = [1, 2, { a: 3 }];
56
- const copy = (0, utils_1.deepCopy)(original, adapter);
57
- (0, chai_1.expect)(copy).to.deep.equal(original);
58
- (0, chai_1.expect)(copy).to.not.equal(original); // Ensure it's not the same reference
59
- });
60
- it('should return undefined for circular references', () => {
61
- const circular = {};
62
- circular.self = circular;
63
- const copy = (0, utils_1.deepCopy)(circular, adapter);
64
- (0, chai_1.expect)(copy).to.be.undefined; // JSON.stringify throws an error for circular references
65
- });
66
- });
67
- describe('checkDirectoryIsOk', () => {
68
- it('should return false and log an error if the directory is undefined', () => {
69
- const result = (0, utils_1.validateDirectory)(adapter, undefined);
70
- (0, chai_1.expect)(result).to.be.false;
71
- (0, chai_1.expect)(adapter.log.error.called).to.be.true;
72
- (0, chai_1.expect)(adapter.log.error.firstCall.args[0]).to.equal('No directory to save the picture. Please add a directory in the settings with full read and write permissions.');
73
- });
74
- it('should return false and log an error if the directory is an empty string', () => {
75
- const result = (0, utils_1.validateDirectory)(adapter, '');
76
- (0, chai_1.expect)(result).to.be.false;
77
- });
78
- it('should return true if the directory is valid', () => {
79
- const result = (0, utils_1.validateDirectory)(adapter, '/valid/directory');
80
- (0, chai_1.expect)(result).to.be.true;
81
- });
82
- });
83
- describe('isTruthy', () => {
84
- it('should return true for truthy values', () => {
85
- (0, chai_1.expect)((0, utils_1.isTruthy)(1)).to.be.true;
86
- (0, chai_1.expect)((0, utils_1.isTruthy)('1')).to.be.true;
87
- (0, chai_1.expect)((0, utils_1.isTruthy)(true)).to.be.true;
88
- (0, chai_1.expect)((0, utils_1.isTruthy)('true')).to.be.true;
89
- });
90
- it('should return false for falsy values', () => {
91
- (0, chai_1.expect)((0, utils_1.isTruthy)(0)).to.be.false;
92
- (0, chai_1.expect)((0, utils_1.isTruthy)('0')).to.be.false;
93
- (0, chai_1.expect)((0, utils_1.isTruthy)(false)).to.be.false;
94
- (0, chai_1.expect)((0, utils_1.isTruthy)('false')).to.be.false;
95
- (0, chai_1.expect)((0, utils_1.isTruthy)(undefined)).to.be.false;
96
- (0, chai_1.expect)((0, utils_1.isTruthy)(null)).to.be.false;
97
- });
98
- });
99
- describe('isFalsy', () => {
100
- it('should return true for falsy values', () => {
101
- (0, chai_1.expect)((0, utils_1.isFalsy)(0)).to.be.true;
102
- (0, chai_1.expect)((0, utils_1.isFalsy)('0')).to.be.true;
103
- (0, chai_1.expect)((0, utils_1.isFalsy)(false)).to.be.true;
104
- (0, chai_1.expect)((0, utils_1.isFalsy)('false')).to.be.true;
105
- (0, chai_1.expect)((0, utils_1.isFalsy)(undefined)).to.be.true;
106
- (0, chai_1.expect)((0, utils_1.isFalsy)(null)).to.be.true;
107
- });
108
- it('should return false for truthy values', () => {
109
- (0, chai_1.expect)((0, utils_1.isFalsy)(1)).to.be.false;
110
- (0, chai_1.expect)((0, utils_1.isFalsy)('1')).to.be.false;
111
- (0, chai_1.expect)((0, utils_1.isFalsy)(true)).to.be.false;
112
- (0, chai_1.expect)((0, utils_1.isFalsy)('true')).to.be.false;
113
- });
114
- });
115
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../test/test/utils.test.ts"],"names":[],"mappings":"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"}