iobroker.telegram-menu 2.2.4 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/admin/build/index.js +49 -49
- package/admin/build/index.js.map +3 -3
- package/admin/css/button.css +3 -0
- package/admin/css/row-editor.css +1 -1
- package/admin/css/style.css +46 -25
- package/admin/css/textarea.css +7 -11
- package/admin/i18n/de/translations.json +124 -123
- package/admin/i18n/en/translations.json +3 -2
- package/admin/i18n/es/translations.json +3 -2
- package/admin/i18n/fr/translations.json +3 -2
- package/admin/i18n/it/translations.json +3 -2
- package/admin/i18n/nl/translations.json +3 -2
- package/admin/i18n/pl/translations.json +3 -2
- package/admin/i18n/pt/translations.json +3 -2
- package/admin/i18n/ru/translations.json +3 -2
- package/admin/i18n/uk/translations.json +3 -2
- package/admin/i18n/zh-cn/translations.json +3 -2
- package/admin/words.js +3 -1
- package/build/admin/src/config/helper.js +178 -0
- package/build/admin/src/config/helper.js.map +1 -0
- package/build/admin/src/lib/Utils.js +64 -0
- package/build/admin/src/lib/Utils.js.map +1 -0
- package/build/admin/src/types/event.js +3 -0
- package/build/admin/src/types/event.js.map +1 -0
- package/build/app/action.js +270 -0
- package/build/app/action.js.map +7 -0
- package/build/app/adapterManager.js +36 -0
- package/build/app/adapterManager.js.map +7 -0
- package/build/app/adapterStartMenuSend.js +59 -0
- package/build/app/adapterStartMenuSend.js.map +7 -0
- package/build/app/backMenu.js +110 -0
- package/build/app/backMenu.js.map +7 -0
- package/build/app/botAction.js +47 -0
- package/build/app/botAction.js.map +7 -0
- package/build/app/configVariables.js +56 -0
- package/build/app/configVariables.js.map +7 -0
- package/build/app/connection.js +42 -0
- package/build/app/connection.js.map +7 -0
- package/build/app/createState.js +42 -0
- package/build/app/createState.js.map +7 -0
- package/build/app/dynamicSwitch.js +69 -0
- package/build/app/dynamicSwitch.js.map +7 -0
- package/build/app/dynamicSwitchMenu.js +69 -0
- package/build/app/dynamicSwitchMenu.js.map +7 -0
- package/build/app/dynamicValue.js +80 -0
- package/build/app/dynamicValue.js.map +7 -0
- package/build/app/echarts.js +60 -0
- package/build/app/echarts.js.map +7 -0
- package/build/app/getstate.js +149 -0
- package/build/app/getstate.js.map +7 -0
- package/build/app/global.js +2 -0
- package/build/app/global.js.map +7 -0
- package/build/app/httpRequest.js +84 -0
- package/build/app/httpRequest.js.map +7 -0
- package/build/app/jsonTable.js +158 -0
- package/build/app/jsonTable.js.map +7 -0
- package/build/app/logging.js +46 -0
- package/build/app/logging.js.map +7 -0
- package/build/app/messageIds.js +122 -0
- package/build/app/messageIds.js.map +7 -0
- package/build/app/processData.js +198 -0
- package/build/app/processData.js.map +7 -0
- package/build/app/sendNav.js +49 -0
- package/build/app/sendNav.js.map +7 -0
- package/build/app/sendpic.js +94 -0
- package/build/app/sendpic.js.map +7 -0
- package/build/app/sentry.js +43 -0
- package/build/app/sentry.js.map +7 -0
- package/build/app/setStateIdsToListenTo.js +42 -0
- package/build/app/setStateIdsToListenTo.js.map +7 -0
- package/build/app/setstate.js +145 -0
- package/build/app/setstate.js.map +7 -0
- package/build/app/shoppingList.js +97 -0
- package/build/app/shoppingList.js.map +7 -0
- package/build/app/subMenu.js +283 -0
- package/build/app/subMenu.js.map +7 -0
- package/build/app/subscribeStates.js +41 -0
- package/build/app/subscribeStates.js.map +7 -0
- package/build/app/telegram.js +136 -0
- package/build/app/telegram.js.map +7 -0
- package/build/app/validateMenus.js +64 -0
- package/build/app/validateMenus.js.map +7 -0
- package/build/build/src/app/action.js +447 -0
- package/build/build/src/app/adapterStartMenuSend.js +37 -0
- package/build/build/src/app/backMenu.js +70 -0
- package/build/build/src/app/botAction.js +25 -0
- package/build/build/src/app/connection.js +19 -0
- package/build/build/src/app/createState.js +19 -0
- package/build/build/src/app/dynamicSwitch.js +51 -0
- package/build/build/src/app/dynamicValue.js +64 -0
- package/build/build/src/app/echarts.js +45 -0
- package/build/build/src/app/getstate.js +157 -0
- package/build/build/src/app/global.js +59 -0
- package/build/build/src/app/httpRequest.js +64 -0
- package/build/build/src/app/jsonTable.js +147 -0
- package/build/build/src/app/logging.js +13 -0
- package/build/build/src/app/messageIds.js +88 -0
- package/build/build/src/app/processData.js +208 -0
- package/build/build/src/app/sendNav.js +30 -0
- package/build/build/src/app/sendpic.js +69 -0
- package/build/build/src/app/setstate.js +126 -0
- package/build/build/src/app/shoppingList.js +72 -0
- package/build/build/src/app/subMenu.js +361 -0
- package/build/build/src/app/subscribeStates.js +25 -0
- package/build/build/src/app/telegram.js +101 -0
- package/build/build/src/lib/string.js +28 -0
- package/build/build/src/lib/time.js +23 -0
- package/build/build/src/lib/utilities.js +263 -0
- package/build/build/src/lib/utils.js +13 -0
- package/build/build/src/main.js +402 -0
- package/build/config/config.js +134 -0
- package/build/config/config.js.map +7 -0
- package/build/io-package.json +87 -87
- package/build/lib/action.js +1 -3
- package/build/lib/action.js.map +2 -2
- package/build/lib/adapterStartMenuSend.js.map +1 -1
- package/build/lib/appUtils.js +157 -0
- package/build/lib/appUtils.js.map +7 -0
- package/build/lib/appUtilsString.js +37 -0
- package/build/lib/appUtilsString.js.map +7 -0
- package/build/lib/backMenu.js.map +2 -2
- package/build/lib/botAction.js.map +1 -1
- package/build/lib/dynamicSwitch.js.map +1 -1
- package/build/lib/dynamicValue.js.map +1 -1
- package/build/lib/echarts.js.map +1 -1
- package/build/lib/getstate.js.map +1 -1
- package/build/lib/global.js.map +1 -1
- package/build/lib/httpRequest.js.map +1 -1
- package/build/lib/json.js +54 -0
- package/build/lib/json.js.map +7 -0
- package/build/lib/jsonTable.js.map +1 -1
- package/build/lib/math.js +41 -0
- package/build/lib/math.js.map +7 -0
- package/build/lib/messageIds.js.map +1 -1
- package/build/lib/object.js +35 -0
- package/build/lib/object.js.map +7 -0
- package/build/lib/processData.js +4 -18
- package/build/lib/processData.js.map +3 -3
- package/build/lib/sendNav.js.map +1 -1
- package/build/lib/sendpic.js +23 -22
- package/build/lib/sendpic.js.map +2 -2
- package/build/lib/setstate.js.map +1 -1
- package/build/lib/shoppingList.js.map +1 -1
- package/build/lib/splitValues.js +63 -0
- package/build/lib/splitValues.js.map +7 -0
- package/build/lib/string.js +125 -3
- package/build/lib/string.js.map +2 -2
- package/build/lib/subMenu.js +1 -2
- package/build/lib/subMenu.js.map +2 -2
- package/build/lib/subscribeStates.js.map +1 -1
- package/build/lib/telegram.js.map +1 -1
- package/build/lib/time.js +93 -0
- package/build/lib/time.js.map +7 -0
- package/build/lib/utilities.js +86 -283
- package/build/lib/utilities.js.map +3 -3
- package/build/lib/utils.js +66 -0
- package/build/lib/utils.js.map +7 -0
- package/build/main.js +149 -233
- package/build/main.js.map +3 -3
- package/build/src/app/action.js +239 -0
- package/build/src/app/action.js.map +1 -0
- package/build/src/app/adapterManager.js +12 -0
- package/build/src/app/adapterManager.js.map +1 -0
- package/build/src/app/adapterStartMenuSend.js +36 -0
- package/build/src/app/adapterStartMenuSend.js.map +1 -0
- package/build/src/app/backMenu.js +81 -0
- package/build/src/app/backMenu.js.map +1 -0
- package/build/src/app/botAction.js +25 -0
- package/build/src/app/botAction.js.map +1 -0
- package/build/src/app/configVariables.js +32 -0
- package/build/src/app/configVariables.js.map +1 -0
- package/build/src/app/connection.js +20 -0
- package/build/src/app/connection.js.map +1 -0
- package/build/src/app/createState.js +19 -0
- package/build/src/app/createState.js.map +1 -0
- package/build/src/app/dynamicSwitch.js +52 -0
- package/build/src/app/dynamicSwitch.js.map +1 -0
- package/build/src/app/dynamicSwitchMenu.js +52 -0
- package/build/src/app/dynamicSwitchMenu.js.map +1 -0
- package/build/src/app/dynamicValue.js +52 -0
- package/build/src/app/dynamicValue.js.map +1 -0
- package/build/src/app/echarts.js +33 -0
- package/build/src/app/echarts.js.map +1 -0
- package/build/src/app/getstate.js +122 -0
- package/build/src/app/getstate.js.map +1 -0
- package/build/src/app/global.js +8 -0
- package/build/src/app/global.js.map +1 -0
- package/build/src/app/httpRequest.js +55 -0
- package/build/src/app/httpRequest.js.map +1 -0
- package/build/src/app/jsonTable.js +147 -0
- package/build/src/app/jsonTable.js.map +1 -0
- package/build/src/app/logging.js +22 -0
- package/build/src/app/logging.js.map +1 -0
- package/build/src/app/messageIds.js +89 -0
- package/build/src/app/messageIds.js.map +1 -0
- package/build/src/app/processData.js +153 -0
- package/build/src/app/processData.js.map +1 -0
- package/build/src/app/sendNav.js +26 -0
- package/build/src/app/sendNav.js.map +1 -0
- package/build/src/app/sendpic.js +66 -0
- package/build/src/app/sendpic.js.map +1 -0
- package/build/src/app/sentry.js +18 -0
- package/build/src/app/sentry.js.map +1 -0
- package/build/src/app/setStateIdsToListenTo.js +17 -0
- package/build/src/app/setStateIdsToListenTo.js.map +1 -0
- package/build/src/app/setstate.js +114 -0
- package/build/src/app/setstate.js.map +1 -0
- package/build/src/app/shoppingList.js +74 -0
- package/build/src/app/shoppingList.js.map +1 -0
- package/build/src/app/subMenu.js +237 -0
- package/build/src/app/subMenu.js.map +1 -0
- package/build/src/app/subscribeStates.js +17 -0
- package/build/src/app/subscribeStates.js.map +1 -0
- package/build/src/app/telegram.js +83 -0
- package/build/src/app/telegram.js.map +1 -0
- package/build/src/app/validateMenus.js +30 -0
- package/build/src/app/validateMenus.js.map +1 -0
- package/build/src/config/config.js +100 -0
- package/build/src/config/config.js.map +1 -0
- package/build/src/lib/appUtils.js +126 -0
- package/build/src/lib/appUtils.js.map +1 -0
- package/build/src/lib/appUtilsString.js +13 -0
- package/build/src/lib/appUtilsString.js.map +1 -0
- package/build/src/lib/json.js +37 -0
- package/build/src/lib/json.js.map +1 -0
- package/build/src/lib/math.js +17 -0
- package/build/src/lib/math.js.map +1 -0
- package/build/src/lib/object.js +10 -0
- package/build/src/lib/object.js.map +1 -0
- package/build/src/lib/splitValues.js +35 -0
- package/build/src/lib/splitValues.js.map +1 -0
- package/build/src/lib/string.js +121 -0
- package/build/src/lib/string.js.map +1 -0
- package/build/src/lib/time.js +57 -0
- package/build/src/lib/time.js.map +1 -0
- package/build/src/lib/utilities.js +111 -0
- package/build/src/lib/utilities.js.map +1 -0
- package/build/src/lib/utils.js +37 -0
- package/build/src/lib/utils.js.map +1 -0
- package/build/src/main.js +332 -0
- package/build/src/main.js.map +1 -0
- package/build/src/test/setup.js +12 -0
- package/build/src/test/setup.js.map +1 -0
- package/build/src/types/types.js +3 -0
- package/build/src/types/types.js.map +1 -0
- package/build/test/integration.js +0 -1
- package/build/test/integration.js.map +1 -1
- package/build/test/mocha.setup.js +0 -1
- package/build/test/mocha.setup.js.map +1 -1
- package/build/test/package.js +0 -1
- package/build/test/package.js.map +1 -1
- package/build/test/setup.js +12 -0
- package/build/test/setup.js.map +1 -0
- package/build/test/test/appUtils.test.js +519 -0
- package/build/test/test/appUtils.test.js.map +1 -0
- package/build/test/test/appUtilsString.test.js +16 -0
- package/build/test/test/appUtilsString.test.js.map +1 -0
- package/build/test/test/math.test.js +33 -0
- package/build/test/test/math.test.js.map +1 -0
- package/build/test/test/object.test.js +66 -0
- package/build/test/test/object.test.js.map +1 -0
- package/build/test/test/string.test.js +385 -0
- package/build/test/test/string.test.js.map +1 -0
- package/build/test/test/time.test.js +186 -0
- package/build/test/test/time.test.js.map +1 -0
- package/build/test/test/utils.test.js +115 -0
- package/build/test/test/utils.test.js.map +1 -0
- package/build/types/types.js +15 -0
- package/build/types/types.js.map +3 -3
- package/io-package.json +32 -27
- package/package.json +14 -10
- package/build/main.test.js +0 -24
- package/build/main.test.js.map +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.test.js","sourceRoot":"","sources":["../../../test/test/time.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../test/test/utils.test.ts"],"names":[],"mappings":"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"}
|
package/build/types/types.js
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
2
17
|
//# sourceMappingURL=types.js.map
|
package/build/types/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [],
|
|
4
|
-
"sourcesContent": [],
|
|
5
|
-
"mappings": "",
|
|
3
|
+
"sources": ["../../src/types/types.ts"],
|
|
4
|
+
"sourcesContent": ["import type { MockAdapter } from '@iobroker/testing';\nimport type TelegramMenu from '../main';\n\nexport type ListOfMenus = string[];\n\nexport type IsUserActiveCheckbox = Record<string, boolean>;\nexport type MenusWithUsers = Record<string, string[]>;\n\nexport type Action = Record<string, Actions>;\n\nexport type Navigation = string[][];\n\nexport type ActionTypes = Get | Set | Pic | HttpRequest | Echart | Events;\n\nexport interface UserListWithChatId {\n chatID: string;\n name: string;\n}\n\nexport interface Checkboxes {\n oneTiKey: boolean;\n resKey: boolean;\n checkboxNoValueFound: boolean;\n sendMenuAfterRestart: boolean;\n}\n\nexport interface Actions {\n get: Get[];\n set: Set[];\n pic: Pic[];\n httpRequest: HttpRequest[];\n echarts: Echart[];\n events: Events[];\n}\n\nexport interface HttpRequest {\n url: string;\n user: string;\n password: string;\n filename: string;\n trigger: string;\n delay: string;\n}\n\nexport interface Set {\n ack: BooleanString[];\n confirm: BooleanString[];\n parse_mode: boolean[];\n switch_checkbox: BooleanString[];\n IDs: string[];\n returnText: string[];\n trigger: string[];\n values: string[];\n}\n\nexport interface Get {\n newline_checkbox: BooleanString[];\n parse_mode: boolean[];\n IDs: string[];\n text: string[];\n trigger: string[];\n}\n\nexport interface Events {\n ack: BooleanString[];\n ID: string[];\n menu: string[];\n condition: string[];\n trigger: string[];\n}\n\nexport interface Pic {\n IDs: string[];\n filename: string[];\n trigger: string[];\n picSendDelay: string[];\n}\n\nexport interface Echart {\n background: string[];\n echartsInstance: string[];\n filename: string;\n preset: string;\n theme: string[];\n trigger: string[];\n}\n\nexport type StartSides = Record<string, string>;\n\nexport type NewObjectStructure = Record<string, Part>;\n\nexport type UsersInGroup = { [key: string]: string[] };\n\nexport type MenuData = Record<string, NewObjectStructure>;\n\nexport interface DataObject {\n action: Record<string, Actions | undefined>;\n nav: Record<string, NavigationRow[]>;\n}\n\nexport interface UserObjectActions {\n [key: string]: {\n nav?: string[][];\n parse_mode?: boolean;\n text?: string;\n switch?: Switch[];\n echarts?: { background: string; echartsInstance: string; filename: string; preset: string; theme: string }[];\n };\n}\n\nexport interface Part {\n text?: string;\n nav?: Navigation;\n parse_mode?: boolean;\n getData?: GetData[];\n switch?: Switch[];\n sendPic?: SendPic[];\n location?: Location[];\n echarts?: Echart[];\n httpRequest?: HttpRequest[];\n url?: string;\n user?: string;\n password?: string;\n filename?: string;\n}\n\nexport interface SendPic {\n delay: number;\n id: string;\n fileName: string;\n}\n\nexport interface GetData {\n id: string;\n text: string;\n parse_mode: boolean;\n newline: BooleanString;\n}\n\nexport type BooleanString = 'false' | 'true';\nexport type ParseModeType = 'HTML' | 'Markdown';\n\nexport interface Location {\n latitude: string;\n longitude: string;\n}\n\nexport interface SetDynamicValueObj {\n [key: string]: SetDynamicValue;\n}\n\nexport interface SetDynamicValue {\n id: string;\n ack: boolean;\n returnText: string;\n userToSend: string;\n parse_mode: boolean;\n confirm: string;\n telegramParams: TelegramParams;\n valueType: string;\n}\n\nexport type Newline = BooleanString;\n\nexport interface BindingObject {\n values: Record<string, string>;\n}\n\nexport interface NavigationRow {\n value: string;\n call: string;\n text: string;\n parse_mode: string;\n}\n\nexport interface splittedNavigation {\n nav: string[][];\n call: string;\n text: string;\n parse_mode: boolean;\n}\n\nexport interface Switch {\n id: string;\n value: string;\n toggle: boolean;\n confirm: BooleanString;\n returnText: string;\n parse_mode: boolean;\n ack: boolean;\n}\n\nexport interface GenerateActionsArrayOfEntries {\n objName: string;\n name: string;\n loop: string;\n elements: GenerateActionsArrayOfElements[];\n}\n\nexport interface GenerateActionsArrayOfElements {\n name: string;\n value?: string;\n index?: number;\n type?: string;\n}\n\nexport interface GenerateActionsNewObject {\n preset?: string;\n echartsInstance?: string;\n background?: string;\n theme?: string;\n url?: string;\n user?: string;\n password?: string;\n id?: string;\n filename?: string;\n delay?: string;\n text?: string;\n newline?: string;\n parse_mode?: boolean;\n}\n\nexport type SplittedData = string[];\n\nexport interface SetStateIds {\n id: string;\n confirm: BooleanString | boolean;\n returnText: string;\n userToSend: string;\n parse_mode?: boolean;\n}\n\nexport type GroupWithUser = string;\n\nexport interface Message {\n time: number;\n}\n\nexport type WhatShouldDelete = 'all' | 'last';\n\nexport type Keyboard = { inline_keyboard: KeyboardItems[][] } | string[][] | undefined;\n\nexport interface KeyboardItems {\n text: string;\n callback_data: string;\n}\n\nexport type LastText = Record<string, string>;\n\nexport type ValArray = Record<string, string>;\n\nexport interface KeyboardItem {\n text: string;\n callback_data: string;\n}\n\nexport type BackMenu = Record<string, BackMenuList | undefined>;\n\ntype BackMenuList = { list: string[]; last: string };\n\nexport interface CheckEveryMenuForDataType {\n menuData: MenuData; // checked !!!!\n calledValue: string;\n menus: string[];\n isUserActiveCheckbox: IsUserActiveCheckbox;\n token: string;\n directoryPicture: string;\n timeoutKey: string;\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport interface ProcessDataType {\n menuData: MenuData;\n calledValue: string;\n groupWithUser: GroupWithUser;\n allMenusWithData: MenuData;\n menus: string[];\n isUserActiveCheckbox: IsUserActiveCheckbox;\n token: string;\n directoryPicture: string;\n timeoutKey: string;\n groupData: NewObjectStructure;\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport interface BackMenuType {\n allMenusWithData: MenuData;\n menus: string[];\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport type AllMenusWithData = Record<string, NewObjectStructure>;\n\nexport interface TelegramParams {\n telegramInstance: string;\n resize_keyboard: boolean;\n one_time_keyboard: boolean;\n userListWithChatID: UserListWithChatId[];\n}\n\nexport interface SetFirstMenuValue {\n part: Part;\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport interface SetSecondMenuValue {\n part: Part;\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport interface CreateMenu {\n cbData: string;\n menuToHandle: string;\n text?: string;\n}\n\nexport interface ExchangeValueReturn {\n newValue: string | number | boolean;\n textToSend: string;\n error: boolean;\n}\n\nexport type PrimitiveType = string | number | boolean;\n\nexport type Adapter = MockAdapter | TelegramMenu;\n\nexport interface Timeouts {\n key: string;\n timeout: ioBroker.Timeout;\n}\n\nexport interface StringReplacerObj {\n val: string;\n newValue: string;\n}\n\nexport interface DecomposeTextReturnType {\n startindex: number;\n endindex: number;\n substring: string;\n textExcludeSubstring: string;\n substringExcludeSearch: string;\n}\n\nexport interface EvaluateReturnType {\n val: any;\n error: boolean;\n}\n\nexport interface Telegram {\n textToSend?: string;\n keyboard?: Keyboard;\n parse_mode?: boolean;\n userToSend: string;\n telegramParams: TelegramParams;\n}\n\nexport interface ExtractTimeValues {\n milliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n day: number;\n month: number;\n year: number;\n}\n\nexport interface GetTimeWithPad {\n ms: string;\n s: string;\n m: string;\n h: string;\n d: string;\n mo: string;\n y: string;\n}\n\nexport type Messages = Record<string, MessageInfos[]>;\n\nexport interface MessageInfos {\n id: ioBroker.StateValue;\n time?: number;\n request?: ioBroker.StateValue | null | undefined;\n}\n\nexport interface CallSubMenu {\n jsonStringNav: string;\n userToSend: string;\n telegramParams: TelegramParams;\n part: Part;\n allMenusWithData: AllMenusWithData;\n menus: string[];\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "telegram-menu",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.3.1",
|
|
5
5
|
"news": {
|
|
6
|
+
"2.3.1": {
|
|
7
|
+
"en": "FIX: #309 SetState only sets false\nFIX: #311 Delete does not navigate",
|
|
8
|
+
"de": "FIX: #309 SetState setzt nur falsch\nFIX: #311 Löschen navigiert nicht",
|
|
9
|
+
"ru": "#309 SetState устанавливает только ложные\nFIX: #311 Удаление не перемещается",
|
|
10
|
+
"pt": "FIX: #309 SetState apenas define falso\nFIX: #311 Excluir não navega",
|
|
11
|
+
"nl": "FIX: #309 SetState stelt alleen valse\nFIX: #311 Verwijderen niet navigeren",
|
|
12
|
+
"fr": "FIX: #309 SetState ne définit que false\nFIXE: #311 Supprimer ne navigue pas",
|
|
13
|
+
"it": "FIX: #309 SetState imposta solo falsi\nFIX: #311 Elimina non naviga",
|
|
14
|
+
"es": "FIX: #309 SetState sólo establece falsos\nFIX: #311 Eliminar no navega",
|
|
15
|
+
"pl": "FIX: # 309 SetState ustawia tylko false\nFIX: # 311 Usuń nie nawiguje",
|
|
16
|
+
"uk": "FIX: #309 SetState тільки встановлює помилкові\nFIX: #311 Видалити не навігувати",
|
|
17
|
+
"zh-cn": "FIX: #309 SetState 只设置虚假\nFIX: # 311 删除不导航"
|
|
18
|
+
},
|
|
19
|
+
"2.3.0": {
|
|
20
|
+
"en": "FIX: #303 GetState output in incorrect order\nFIX: #296 Frontend fixes\nFIX: #295 Delete button not working\nFIX: #291 Menu button not working\nFEAT: Nodejs >= 20.0.0\nFEAT: Add sentry\nFEAT: Add mocha tests",
|
|
21
|
+
"de": "FIX: #303 GetState Ausgabe in falscher Reihenfolge\nFIX: #296 Frontend Fixes\nFIX: #295 Löschen Taste nicht funktioniert\nFIX: #291 Menü-Taste nicht funktionieren\nFEAT: Nodejs >= 20.0.0\nFEAT: Verschicken hinzufügen\nFEAT: Mocha-Tests hinzufügen",
|
|
22
|
+
"ru": "FIX: #303 Получить выход в неправильном порядке\nFIX: #296 Фронтальные исправления\nFIX: #295 Удаление кнопки не работает\nFix: #291 Кнопка меню не работает\nFEAT: Nodejs >= 20.0.0\nИсполнитель: Add sentry\nОригинальное название: Add Mocha Tests",
|
|
23
|
+
"pt": "FIX: #303 GetState output em ordem incorreta\nFIX: #296 Correções de Frontend\nFIX: #295 Excluir botão não funciona\nFIX: #291 Botão de menu não funciona\nFEAT: Nodejs >= 20.0.0\nFEAT: Adicionar sentinela\nFEAT: Adicionar testes de mocha",
|
|
24
|
+
"nl": "FIX: #303 GetState output in onjuiste volgorde\nFIX: #296 Frontend fixes\nFIX: #295 Verwijder knop werkt niet\nFIX: #291 Menuknop werkt niet\nFEAT: Nodejs <= 20.0\nFEAT: Bewaker toevoegen\nFEAT: Mokka testen toevoegen",
|
|
25
|
+
"fr": "FIX: #303 Sortie GetState dans un ordre incorrect\nFIXE: #296 Corrections de la façade\nFIX: #295 Supprimer bouton ne fonctionne pas\nFIXE: 291 bouton de menu ne fonctionne pas\nVIANDE: Nodejs >= 20.0.0\nVIANDE: Ajouter sentinelle\nVIANDE: Ajouter les tests de moka",
|
|
26
|
+
"it": "FIX: #303 GetState output in ordine errato\nFIX: #296 Anteriori\nFIX: #295 Eliminare pulsante non funziona\nFIX: #291 Menu pulsante non funziona\nATTENZIONE: Nodejs >= 20.0.0\nFEAT: Aggiungere la sentinella\nFEAT: Aggiungere prove di mocha",
|
|
27
|
+
"es": "FIX: #303 Obtener la salida del estado en el orden incorrecto\nFIX: #296 Correciones de Frontend\nFIX: #295 Eliminar botón no funciona\nFIX: #291 Botón de menú que no funciona\nFEAT: Nodejs\nFEAT: Add sentry\nFEAT: Añadir pruebas de mocha",
|
|
28
|
+
"pl": "FIX: # 303 Wyjście GetState w niewłaściwej kolejności\nFIX: # 296\nFIX: # 295 Usuń niedziałający przycisk\nFIX: # 291 Przycisk menu nie działa\nFEAT: Nodeje > = 20.0.0\nFEAT: Dodaj wartownik\nFEAT: Dodaj testy mocha",
|
|
29
|
+
"uk": "FIX: #303 Отримувати вихід в некоректному порядку\nFIX: #296 Передня фіксація\nFIX: #295 Видалити кнопка не працює\nFIX: #291 Меню не працює\nFEAT: Nodejs >= 20.0.0\nFEAT: Додати відправлення\nFEAT: Додати тести",
|
|
30
|
+
"zh-cn": "FIX: # 303 GetState 输出顺序不正确\nFIX: # 296 前端修正\nFIX: # 295 删除不起作用的按钮\nFIX: #291 (英语). 菜单按钮不工作\nFEAT: 节点 >= 20.0.0\nFEAT: 添加哨兵\nFEAT: 添加摩卡测试"
|
|
31
|
+
},
|
|
6
32
|
"2.2.4": {
|
|
7
33
|
"en": "FIX: #279 Backslash is in the message when using newline",
|
|
8
34
|
"de": "FIX: #279 Backslash ist in der Nachricht bei der Verwendung von newline",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "FEAT: # 237\nFIX: Nie można uzyskać wartości false w zwrotnym tekście\nFIX: Usuń wiersz w działaniach\nFIX: HttpRequest\nFEAT: Stylizacja nawigacyjna i menu do wyboru",
|
|
68
94
|
"uk": "FEAT: #237 Нейгат від nav-button-click до дії\nFIX: Неможливо отримати значення помилково в поверненні тексту\nFIX: Видалити ряд в дії\nFIX: HttpRequest\nFEAT: Налаштування навігації та вибіркові меню",
|
|
69
95
|
"zh-cn": "FEAT: # 237 导航通过导航按钮点击动作\nFIX: 无法在返回文本中获取错误值\nFIX: 删除动作中的行\nFIX: Http 请求\nFEAT:导航样式和可选菜单"
|
|
70
|
-
},
|
|
71
|
-
"2.1.10": {
|
|
72
|
-
"en": "FIX: Return text for menus was not send",
|
|
73
|
-
"de": "FIX: Rückgabetext für Menüs wurde nicht gesendet",
|
|
74
|
-
"ru": "FIX: Возвращаемый текст для меню не был отправлен",
|
|
75
|
-
"pt": "FIX: O texto de retorno para menus não foi enviado",
|
|
76
|
-
"nl": "FIX: Retourtekst voor menu's is niet verstuurd",
|
|
77
|
-
"fr": "FIX: Retour de texte pour les menus n'a pas été envoyé",
|
|
78
|
-
"it": "FIX: Il testo di ritorno per i menu non è stato inviato",
|
|
79
|
-
"es": "FIX: El texto devuelto para los menús no fue enviado",
|
|
80
|
-
"pl": "FIX: Tekst zwrotny dla menu nie został wysłany",
|
|
81
|
-
"uk": "FIX: Повернути текст для меню не відправлено",
|
|
82
|
-
"zh-cn": "FIX: 菜单的返回文本没有发送"
|
|
83
|
-
},
|
|
84
|
-
"2.1.9": {
|
|
85
|
-
"en": "FIX: #224 Submenu trigger",
|
|
86
|
-
"de": "FIX: #224 Submenu Trigger",
|
|
87
|
-
"ru": "FIX: #224",
|
|
88
|
-
"pt": "FIX: #224 Submenu gatilho",
|
|
89
|
-
"nl": "FIX: #224 Submenu-starter",
|
|
90
|
-
"fr": "FIXE: Déclencheur du sous-menu #224",
|
|
91
|
-
"it": "FIX: #224 Submenu trigger",
|
|
92
|
-
"es": "FIX: #224 El gatillo Submenu",
|
|
93
|
-
"pl": "FIX: # 224 Uruchom podmenu",
|
|
94
|
-
"uk": "FIX: #224 Запобігання підменю",
|
|
95
|
-
"zh-cn": "FIX: # 224 子菜单触发器"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -148,6 +148,11 @@
|
|
|
148
148
|
"adminUI": {
|
|
149
149
|
"config": "materialize"
|
|
150
150
|
},
|
|
151
|
+
"plugins": {
|
|
152
|
+
"sentry": {
|
|
153
|
+
"dsn": "https://b2043fdf62d0f5cb4c8c7f2a840e1798@o4508003658498048.ingest.de.sentry.io/4509218932916304"
|
|
154
|
+
}
|
|
155
|
+
},
|
|
151
156
|
"dependencies": [
|
|
152
157
|
{
|
|
153
158
|
"js-controller": ">=5.0.19"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.telegram-menu",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "Easily create Telegram Menus",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "MiRo1310",
|
|
@@ -18,31 +18,34 @@
|
|
|
18
18
|
"url": "https://github.com/MiRo1310/ioBroker.telegram-menu.git"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=
|
|
21
|
+
"node": ">= 20"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@iobroker/adapter-core": "^3.2.3",
|
|
25
|
-
"axios": "^1.
|
|
25
|
+
"axios": "^1.9.0",
|
|
26
|
+
"nyc": "^17.1.0"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|
|
28
29
|
"@alcalzone/release-script": "^3.8.0",
|
|
29
30
|
"@alcalzone/release-script-plugin-iobroker": "^3.7.2",
|
|
30
31
|
"@alcalzone/release-script-plugin-license": "^3.7.0",
|
|
31
32
|
"@alcalzone/release-script-plugin-manual-review": "^3.7.0",
|
|
32
|
-
"@iobroker/adapter-dev": "^1.
|
|
33
|
+
"@iobroker/adapter-dev": "^1.4.0",
|
|
33
34
|
"@iobroker/eslint-config": "^2.0.1",
|
|
34
35
|
"@iobroker/testing": "^5.0.4",
|
|
35
36
|
"@tsconfig/node20": "^20.1.5",
|
|
36
37
|
"@types/chai": "^4.3.14",
|
|
38
|
+
"@types/chai-as-promised": "^7.1.8",
|
|
37
39
|
"@types/mocha": "^10.0.10",
|
|
38
|
-
"@types/node": "^22.
|
|
40
|
+
"@types/node": "^22.15.3",
|
|
41
|
+
"@types/sinon-chai": "^3.2.12",
|
|
39
42
|
"chai": "^4.5.0",
|
|
40
43
|
"chai-as-promised": "^7.1.1",
|
|
41
|
-
"mocha": "^11.
|
|
44
|
+
"mocha": "^11.2.2",
|
|
45
|
+
"rimraf": "^6.0.1",
|
|
42
46
|
"sinon": "^19.0.4",
|
|
43
47
|
"sinon-chai": "^3.7.0",
|
|
44
|
-
"typescript": "~5.8.
|
|
45
|
-
"rimraf": "^3.0.2"
|
|
48
|
+
"typescript": "~5.8.3"
|
|
46
49
|
},
|
|
47
50
|
"main": "build/main.js",
|
|
48
51
|
"files": [
|
|
@@ -66,8 +69,9 @@
|
|
|
66
69
|
"test:js": "mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"",
|
|
67
70
|
"test:package": "mocha test/package --exit",
|
|
68
71
|
"test:integration": "mocha test/integration --exit",
|
|
69
|
-
"test": "npm run test:
|
|
70
|
-
"
|
|
72
|
+
"test": "npm run test:ts && npm run test:package",
|
|
73
|
+
"test:ts": "tsc --project tsconfig.build.json && npm run test:js",
|
|
74
|
+
"test:cov": "nyc --reporter=html npm run test:ts",
|
|
71
75
|
"lint": "eslint -c eslint.config.mjs . && eslint -c admin/eslint.config.mjs admin/src/",
|
|
72
76
|
"lint:fix": "eslint -c eslint.config.mjs . --fix && eslint -c admin/eslint.config.mjs admin/src/ --fix",
|
|
73
77
|
"lint:backend": "eslint -c eslint.config.mjs .",
|
package/build/main.test.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/**
|
|
4
|
-
* This is a dummy TypeScript test file using chai and mocha
|
|
5
|
-
*
|
|
6
|
-
* It's automatically excluded from npm and its build output is excluded from both git and npm.
|
|
7
|
-
* It is advised to test all your modules with accompanying *.test.js-files
|
|
8
|
-
*/
|
|
9
|
-
// tslint:disable:no-unused-expression
|
|
10
|
-
const { expect } = require("chai");
|
|
11
|
-
// import { functionToTest } from "./moduleToTest";
|
|
12
|
-
describe("module to test => function to test", () => {
|
|
13
|
-
// initializing logic
|
|
14
|
-
const expected = 5;
|
|
15
|
-
it(`should return ${expected}`, () => {
|
|
16
|
-
const result = 5;
|
|
17
|
-
// assign result a value from functionToTest
|
|
18
|
-
expect(result).to.equal(expected);
|
|
19
|
-
// or using the should() syntax
|
|
20
|
-
result.should.equal(expected);
|
|
21
|
-
});
|
|
22
|
-
// ... more tests => it
|
|
23
|
-
});
|
|
24
|
-
//# sourceMappingURL=main.test.js.map
|
package/build/main.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.test.js","sourceRoot":"","sources":["../../src/main.test.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;GAKG;AAEH,sCAAsC;AAEtC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACnC,mDAAmD;AAEnD,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IACnD,qBAAqB;IACrB,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,EAAE,CAAC,iBAAiB,QAAQ,EAAE,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,4CAA4C;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,+BAA+B;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,uBAAuB;AACxB,CAAC,CAAC,CAAC"}
|