iobroker.telegram-menu 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +12 -0
  2. package/admin/build/index.js +49 -49
  3. package/admin/build/index.js.map +3 -3
  4. package/admin/css/button.css +3 -0
  5. package/admin/css/row-editor.css +1 -1
  6. package/admin/css/style.css +46 -25
  7. package/admin/css/textarea.css +7 -11
  8. package/admin/i18n/de/translations.json +124 -123
  9. package/admin/i18n/en/translations.json +3 -2
  10. package/admin/i18n/es/translations.json +3 -2
  11. package/admin/i18n/fr/translations.json +3 -2
  12. package/admin/i18n/it/translations.json +3 -2
  13. package/admin/i18n/nl/translations.json +3 -2
  14. package/admin/i18n/pl/translations.json +3 -2
  15. package/admin/i18n/pt/translations.json +3 -2
  16. package/admin/i18n/ru/translations.json +3 -2
  17. package/admin/i18n/uk/translations.json +3 -2
  18. package/admin/i18n/zh-cn/translations.json +3 -2
  19. package/admin/words.js +3 -1
  20. package/build/admin/src/config/helper.js +178 -0
  21. package/build/admin/src/config/helper.js.map +1 -0
  22. package/build/admin/src/lib/Utils.js +64 -0
  23. package/build/admin/src/lib/Utils.js.map +1 -0
  24. package/build/admin/src/types/event.js +3 -0
  25. package/build/admin/src/types/event.js.map +1 -0
  26. package/build/app/action.js +270 -0
  27. package/build/app/action.js.map +7 -0
  28. package/build/app/adapterManager.js +36 -0
  29. package/build/app/adapterManager.js.map +7 -0
  30. package/build/app/adapterStartMenuSend.js +59 -0
  31. package/build/app/adapterStartMenuSend.js.map +7 -0
  32. package/build/app/backMenu.js +110 -0
  33. package/build/app/backMenu.js.map +7 -0
  34. package/build/app/botAction.js +47 -0
  35. package/build/app/botAction.js.map +7 -0
  36. package/build/app/configVariables.js +56 -0
  37. package/build/app/configVariables.js.map +7 -0
  38. package/build/app/connection.js +42 -0
  39. package/build/app/connection.js.map +7 -0
  40. package/build/app/createState.js +42 -0
  41. package/build/app/createState.js.map +7 -0
  42. package/build/app/dynamicSwitch.js +69 -0
  43. package/build/app/dynamicSwitch.js.map +7 -0
  44. package/build/app/dynamicSwitchMenu.js +69 -0
  45. package/build/app/dynamicSwitchMenu.js.map +7 -0
  46. package/build/app/dynamicValue.js +80 -0
  47. package/build/app/dynamicValue.js.map +7 -0
  48. package/build/app/echarts.js +60 -0
  49. package/build/app/echarts.js.map +7 -0
  50. package/build/app/getstate.js +148 -0
  51. package/build/app/getstate.js.map +7 -0
  52. package/build/app/global.js +2 -0
  53. package/build/app/global.js.map +7 -0
  54. package/build/app/httpRequest.js +84 -0
  55. package/build/app/httpRequest.js.map +7 -0
  56. package/build/app/jsonTable.js +158 -0
  57. package/build/app/jsonTable.js.map +7 -0
  58. package/build/app/logging.js +46 -0
  59. package/build/app/logging.js.map +7 -0
  60. package/build/app/messageIds.js +116 -0
  61. package/build/app/messageIds.js.map +7 -0
  62. package/build/app/processData.js +198 -0
  63. package/build/app/processData.js.map +7 -0
  64. package/build/app/sendNav.js +49 -0
  65. package/build/app/sendNav.js.map +7 -0
  66. package/build/app/sendpic.js +95 -0
  67. package/build/app/sendpic.js.map +7 -0
  68. package/build/app/sentry.js +43 -0
  69. package/build/app/sentry.js.map +7 -0
  70. package/build/app/setStateIdsToListenTo.js +42 -0
  71. package/build/app/setStateIdsToListenTo.js.map +7 -0
  72. package/build/app/setstate.js +145 -0
  73. package/build/app/setstate.js.map +7 -0
  74. package/build/app/shoppingList.js +97 -0
  75. package/build/app/shoppingList.js.map +7 -0
  76. package/build/app/subMenu.js +281 -0
  77. package/build/app/subMenu.js.map +7 -0
  78. package/build/app/subscribeStates.js +41 -0
  79. package/build/app/subscribeStates.js.map +7 -0
  80. package/build/app/telegram.js +131 -0
  81. package/build/app/telegram.js.map +7 -0
  82. package/build/app/validateMenus.js +64 -0
  83. package/build/app/validateMenus.js.map +7 -0
  84. package/build/build/src/app/action.js +447 -0
  85. package/build/build/src/app/adapterStartMenuSend.js +37 -0
  86. package/build/build/src/app/backMenu.js +70 -0
  87. package/build/build/src/app/botAction.js +25 -0
  88. package/build/build/src/app/connection.js +19 -0
  89. package/build/build/src/app/createState.js +19 -0
  90. package/build/build/src/app/dynamicSwitch.js +51 -0
  91. package/build/build/src/app/dynamicValue.js +64 -0
  92. package/build/build/src/app/echarts.js +45 -0
  93. package/build/build/src/app/getstate.js +157 -0
  94. package/build/build/src/app/global.js +59 -0
  95. package/build/build/src/app/httpRequest.js +64 -0
  96. package/build/build/src/app/jsonTable.js +147 -0
  97. package/build/build/src/app/logging.js +13 -0
  98. package/build/build/src/app/messageIds.js +88 -0
  99. package/build/build/src/app/processData.js +208 -0
  100. package/build/build/src/app/sendNav.js +30 -0
  101. package/build/build/src/app/sendpic.js +69 -0
  102. package/build/build/src/app/setstate.js +126 -0
  103. package/build/build/src/app/shoppingList.js +72 -0
  104. package/build/build/src/app/subMenu.js +361 -0
  105. package/build/build/src/app/subscribeStates.js +25 -0
  106. package/build/build/src/app/telegram.js +101 -0
  107. package/build/build/src/lib/string.js +28 -0
  108. package/build/build/src/lib/time.js +23 -0
  109. package/build/build/src/lib/utilities.js +263 -0
  110. package/build/build/src/lib/utils.js +13 -0
  111. package/build/build/src/main.js +402 -0
  112. package/build/config/config.js +134 -0
  113. package/build/config/config.js.map +7 -0
  114. package/build/io-package.json +87 -87
  115. package/build/lib/action.js +1 -3
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js.map +1 -1
  118. package/build/lib/appUtils.js +158 -0
  119. package/build/lib/appUtils.js.map +7 -0
  120. package/build/lib/appUtilsString.js +37 -0
  121. package/build/lib/appUtilsString.js.map +7 -0
  122. package/build/lib/backMenu.js.map +2 -2
  123. package/build/lib/botAction.js.map +1 -1
  124. package/build/lib/dynamicSwitch.js.map +1 -1
  125. package/build/lib/dynamicValue.js.map +1 -1
  126. package/build/lib/echarts.js.map +1 -1
  127. package/build/lib/getstate.js.map +1 -1
  128. package/build/lib/global.js.map +1 -1
  129. package/build/lib/httpRequest.js.map +1 -1
  130. package/build/lib/json.js +54 -0
  131. package/build/lib/json.js.map +7 -0
  132. package/build/lib/jsonTable.js.map +1 -1
  133. package/build/lib/math.js +41 -0
  134. package/build/lib/math.js.map +7 -0
  135. package/build/lib/messageIds.js.map +1 -1
  136. package/build/lib/object.js +35 -0
  137. package/build/lib/object.js.map +7 -0
  138. package/build/lib/processData.js +4 -18
  139. package/build/lib/processData.js.map +3 -3
  140. package/build/lib/sendNav.js.map +1 -1
  141. package/build/lib/sendpic.js +23 -22
  142. package/build/lib/sendpic.js.map +2 -2
  143. package/build/lib/setstate.js.map +1 -1
  144. package/build/lib/shoppingList.js.map +1 -1
  145. package/build/lib/splitValues.js +63 -0
  146. package/build/lib/splitValues.js.map +7 -0
  147. package/build/lib/string.js +125 -3
  148. package/build/lib/string.js.map +2 -2
  149. package/build/lib/subMenu.js +1 -2
  150. package/build/lib/subMenu.js.map +2 -2
  151. package/build/lib/subscribeStates.js.map +1 -1
  152. package/build/lib/telegram.js.map +1 -1
  153. package/build/lib/time.js +93 -0
  154. package/build/lib/time.js.map +7 -0
  155. package/build/lib/utilities.js +84 -281
  156. package/build/lib/utilities.js.map +3 -3
  157. package/build/lib/utils.js +66 -0
  158. package/build/lib/utils.js.map +7 -0
  159. package/build/main.js +151 -233
  160. package/build/main.js.map +3 -3
  161. package/build/src/app/action.js +239 -0
  162. package/build/src/app/action.js.map +1 -0
  163. package/build/src/app/adapterManager.js +12 -0
  164. package/build/src/app/adapterManager.js.map +1 -0
  165. package/build/src/app/adapterStartMenuSend.js +36 -0
  166. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  167. package/build/src/app/backMenu.js +81 -0
  168. package/build/src/app/backMenu.js.map +1 -0
  169. package/build/src/app/botAction.js +25 -0
  170. package/build/src/app/botAction.js.map +1 -0
  171. package/build/src/app/configVariables.js +32 -0
  172. package/build/src/app/configVariables.js.map +1 -0
  173. package/build/src/app/connection.js +20 -0
  174. package/build/src/app/connection.js.map +1 -0
  175. package/build/src/app/createState.js +19 -0
  176. package/build/src/app/createState.js.map +1 -0
  177. package/build/src/app/dynamicSwitch.js +52 -0
  178. package/build/src/app/dynamicSwitch.js.map +1 -0
  179. package/build/src/app/dynamicSwitchMenu.js +52 -0
  180. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  181. package/build/src/app/dynamicValue.js +52 -0
  182. package/build/src/app/dynamicValue.js.map +1 -0
  183. package/build/src/app/echarts.js +33 -0
  184. package/build/src/app/echarts.js.map +1 -0
  185. package/build/src/app/getstate.js +122 -0
  186. package/build/src/app/getstate.js.map +1 -0
  187. package/build/src/app/global.js +8 -0
  188. package/build/src/app/global.js.map +1 -0
  189. package/build/src/app/httpRequest.js +55 -0
  190. package/build/src/app/httpRequest.js.map +1 -0
  191. package/build/src/app/jsonTable.js +147 -0
  192. package/build/src/app/jsonTable.js.map +1 -0
  193. package/build/src/app/logging.js +22 -0
  194. package/build/src/app/logging.js.map +1 -0
  195. package/build/src/app/messageIds.js +89 -0
  196. package/build/src/app/messageIds.js.map +1 -0
  197. package/build/src/app/processData.js +153 -0
  198. package/build/src/app/processData.js.map +1 -0
  199. package/build/src/app/sendNav.js +26 -0
  200. package/build/src/app/sendNav.js.map +1 -0
  201. package/build/src/app/sendpic.js +66 -0
  202. package/build/src/app/sendpic.js.map +1 -0
  203. package/build/src/app/sentry.js +18 -0
  204. package/build/src/app/sentry.js.map +1 -0
  205. package/build/src/app/setStateIdsToListenTo.js +17 -0
  206. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  207. package/build/src/app/setstate.js +114 -0
  208. package/build/src/app/setstate.js.map +1 -0
  209. package/build/src/app/shoppingList.js +74 -0
  210. package/build/src/app/shoppingList.js.map +1 -0
  211. package/build/src/app/subMenu.js +237 -0
  212. package/build/src/app/subMenu.js.map +1 -0
  213. package/build/src/app/subscribeStates.js +17 -0
  214. package/build/src/app/subscribeStates.js.map +1 -0
  215. package/build/src/app/telegram.js +83 -0
  216. package/build/src/app/telegram.js.map +1 -0
  217. package/build/src/app/validateMenus.js +30 -0
  218. package/build/src/app/validateMenus.js.map +1 -0
  219. package/build/src/config/config.js +100 -0
  220. package/build/src/config/config.js.map +1 -0
  221. package/build/src/lib/appUtils.js +126 -0
  222. package/build/src/lib/appUtils.js.map +1 -0
  223. package/build/src/lib/appUtilsString.js +13 -0
  224. package/build/src/lib/appUtilsString.js.map +1 -0
  225. package/build/src/lib/json.js +37 -0
  226. package/build/src/lib/json.js.map +1 -0
  227. package/build/src/lib/math.js +17 -0
  228. package/build/src/lib/math.js.map +1 -0
  229. package/build/src/lib/object.js +10 -0
  230. package/build/src/lib/object.js.map +1 -0
  231. package/build/src/lib/splitValues.js +35 -0
  232. package/build/src/lib/splitValues.js.map +1 -0
  233. package/build/src/lib/string.js +121 -0
  234. package/build/src/lib/string.js.map +1 -0
  235. package/build/src/lib/time.js +57 -0
  236. package/build/src/lib/time.js.map +1 -0
  237. package/build/src/lib/utilities.js +111 -0
  238. package/build/src/lib/utilities.js.map +1 -0
  239. package/build/src/lib/utils.js +37 -0
  240. package/build/src/lib/utils.js.map +1 -0
  241. package/build/src/main.js +332 -0
  242. package/build/src/main.js.map +1 -0
  243. package/build/src/test/setup.js +12 -0
  244. package/build/src/test/setup.js.map +1 -0
  245. package/build/src/types/types.js +3 -0
  246. package/build/src/types/types.js.map +1 -0
  247. package/build/test/integration.js +0 -1
  248. package/build/test/integration.js.map +1 -1
  249. package/build/test/mocha.setup.js +0 -1
  250. package/build/test/mocha.setup.js.map +1 -1
  251. package/build/test/package.js +0 -1
  252. package/build/test/package.js.map +1 -1
  253. package/build/test/setup.js +12 -0
  254. package/build/test/setup.js.map +1 -0
  255. package/build/test/test/appUtils.test.js +507 -0
  256. package/build/test/test/appUtils.test.js.map +1 -0
  257. package/build/test/test/appUtilsString.test.js +16 -0
  258. package/build/test/test/appUtilsString.test.js.map +1 -0
  259. package/build/test/test/math.test.js +33 -0
  260. package/build/test/test/math.test.js.map +1 -0
  261. package/build/test/test/object.test.js +54 -0
  262. package/build/test/test/object.test.js.map +1 -0
  263. package/build/test/test/string.test.js +361 -0
  264. package/build/test/test/string.test.js.map +1 -0
  265. package/build/test/test/time.test.js +201 -0
  266. package/build/test/test/time.test.js.map +1 -0
  267. package/build/test/test/utils.test.js +115 -0
  268. package/build/test/test/utils.test.js.map +1 -0
  269. package/build/types/types.js +15 -0
  270. package/build/types/types.js.map +3 -3
  271. package/io-package.json +19 -14
  272. package/package.json +14 -10
  273. package/build/main.test.js +0 -24
  274. package/build/main.test.js.map +0 -1
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,323 +15,128 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
19
  var utilities_exports = {};
30
20
  __export(utilities_exports, {
31
- changeValue: () => changeValue,
21
+ checkStatus: () => checkStatus,
32
22
  checkStatusInfo: () => checkStatusInfo,
33
- checkTypeOfId: () => checkTypeOfId,
34
- decomposeText: () => decomposeText,
35
- getChatID: () => getChatID,
36
- newLine: () => newLine,
37
23
  processTimeIdLc: () => processTimeIdLc,
38
- processTimeValue: () => processTimeValue,
39
- replaceAll: () => import_global.replaceAll
24
+ transformValueToTypeOfId: () => transformValueToTypeOfId
40
25
  });
41
26
  module.exports = __toCommonJS(utilities_exports);
42
- var import_main = __toESM(require("../main"));
43
- var import_global = require("./global");
44
- var import_logging = require("./logging");
45
- const processTimeValue = (textToSend, obj) => {
46
- const date = Number(obj.val);
47
- if (!(0, import_global.isDefined)(date)) {
48
- return textToSend;
49
- }
50
- const time = new Date(date);
51
- if (isNaN(time.getTime())) {
52
- (0, import_logging.error)([{ text: "Invalid Date:", val: date }]);
53
- return textToSend;
54
- }
55
- const timeString = time.toLocaleDateString("de-DE", {
56
- hour: "2-digit",
57
- minute: "2-digit",
58
- second: "2-digit",
59
- hour12: false
60
- });
61
- return textToSend.replace("{time}", timeString);
62
- };
63
- const getChatID = (userListWithChatID, user) => {
64
- let chatId = "";
65
- userListWithChatID.forEach((element) => {
66
- if (element.name === user) {
67
- chatId = element.chatID;
68
- }
69
- });
70
- return chatId;
71
- };
72
- const exchangeValue = (textToSend, stateVal) => {
73
- const { startindex, endindex } = decomposeText(textToSend, "change{", "}");
74
- let match = textToSend.substring(startindex + "change".length + 1, textToSend.indexOf("}", startindex));
75
- let objChangeValue;
76
- match = match.replace(/'/g, '"');
77
- if ((0, import_global.isJSON)(`{${match}}`)) {
78
- objChangeValue = JSON.parse(`{${match}}`);
79
- } else {
80
- (0, import_logging.error)([{ text: `There is a error in your input:`, val: (0, import_global.replaceAll)(match, '"', "'") }]);
81
- return false;
82
- }
83
- let newValue;
84
- objChangeValue[String(stateVal)] ? newValue = objChangeValue[String(stateVal)] : newValue = stateVal;
85
- return {
86
- valueChange: newValue,
87
- textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1)
88
- };
89
- };
90
- function decomposeText(text, searchValue, secondValue) {
91
- const startindex = text.indexOf(searchValue);
92
- const endindex = text.indexOf(secondValue, startindex);
93
- const substring = text.substring(startindex, endindex + secondValue.length);
94
- const textWithoutSubstring = text.replace(substring, "").trim();
95
- return {
96
- startindex,
97
- endindex,
98
- substring,
99
- textWithoutSubstring
100
- };
101
- }
102
- function changeValue(textToSend, val) {
103
- if (textToSend.includes("change{")) {
104
- const result = exchangeValue(textToSend, val);
105
- if (!result) {
106
- return;
107
- }
108
- if (typeof result === "boolean") {
109
- return;
110
- }
111
- return { textToSend: result.textToSend, val: result.valueChange };
112
- }
113
- }
27
+ var import_utils = require("./utils");
28
+ var import_string = require("./string");
29
+ var import_logging = require("../app/logging");
30
+ var import_time = require("./time");
31
+ var import_main = require("../main");
32
+ var import_config = require("../config/config");
33
+ var import_appUtils = require("./appUtils");
34
+ var import_setstate = require("../app/setstate");
35
+ var import_splitValues = require("./splitValues");
114
36
  const processTimeIdLc = async (textToSend, id) => {
115
- const _this2 = import_main.default.getInstance();
116
- let key = "";
117
- const { substring } = decomposeText(textToSend, "{time.", "}");
118
- const array = substring.split(",");
119
- let changedSubstring = substring;
120
- changedSubstring = changedSubstring.replace(array[0], "");
121
- if (array[0].includes("lc")) {
122
- key = "lc";
123
- } else if (array[0].includes("ts")) {
124
- key = "ts";
37
+ const { substring, substringExcludeSearch } = (0, import_string.decomposeText)(
38
+ textToSend,
39
+ import_config.config.timestamp.start,
40
+ import_config.config.timestamp.end
41
+ );
42
+ const { typeofTimestamp, timeString, idString } = (0, import_splitValues.getProcessTimeValues)(substringExcludeSearch);
43
+ if (!id && (!idString || idString.length < 5)) {
44
+ return textToSend.replace(substring, "Invalid ID");
125
45
  }
126
- let idFromText = "";
127
- if (!id) {
128
- if (!changedSubstring.includes("id:")) {
129
- (0, import_logging.debug)([{ text: "Error processTimeIdLc: id not found in:", val: changedSubstring }]);
130
- return;
131
- }
132
- if (array[2]) {
133
- idFromText = array[2].replace("id:", "").replace("}", "").replace(/'/g, "");
134
- changedSubstring = changedSubstring.replace(array[2], "").replace(/,/g, "");
135
- }
136
- }
137
- if (!id && !idFromText) {
138
- return;
46
+ const value = await import_main.adapter.getForeignStateAsync(id != null ? id : idString);
47
+ if (!value) {
48
+ return textToSend.replace(substring, "Invalid ID");
139
49
  }
140
- const value = await _this2.getForeignStateAsync(id || idFromText);
141
- let timeValue;
142
- let timeStringUser;
143
- if (key && value) {
144
- timeStringUser = changedSubstring.replace(",(", "").replace(")", "").replace("}", "");
145
- timeValue = value[key];
50
+ const timeStringUser = (0, import_string.replaceAllItems)(timeString, [",(", ")", "}"]);
51
+ const unixTs = value[typeofTimestamp];
52
+ const timeWithPad = (0, import_time.getTimeWithPad)((0, import_time.extractTimeValues)(unixTs));
53
+ const timeStringReplaced = (0, import_appUtils.timeStringReplacer)(timeWithPad, timeStringUser);
54
+ return timeStringReplaced != null ? timeStringReplaced : textToSend;
55
+ };
56
+ const checkStatus = async (text) => {
57
+ const { substring, substringExcludeSearch, textExcludeSubstring } = (0, import_string.decomposeText)(
58
+ text,
59
+ import_config.config.status.start,
60
+ import_config.config.status.end
61
+ );
62
+ const { id, shouldChange } = (0, import_appUtils.statusIdAndParams)(substringExcludeSearch);
63
+ const stateValue = await import_main.adapter.getForeignStateAsync(id);
64
+ if (!(0, import_utils.isDefined)(stateValue == null ? void 0 : stateValue.val)) {
65
+ import_main.adapter.log.debug(`State not found: ${id}`);
66
+ return text.replace(substring, "");
146
67
  }
147
- if (!timeValue) {
148
- return;
68
+ const stateValueString = String(stateValue.val);
69
+ if (text.includes(import_config.config.time)) {
70
+ return (0, import_time.integrateTimeIntoText)(textExcludeSubstring, stateValueString).replace(stateValueString, "");
149
71
  }
150
- const timeObj = new Date(timeValue);
151
- const milliseconds = timeObj.getMilliseconds();
152
- const seconds = timeObj.getSeconds();
153
- const minutes = timeObj.getMinutes();
154
- const hours = timeObj.getHours();
155
- const day = timeObj.getDate();
156
- const month = timeObj.getMonth() + 1;
157
- const year = timeObj.getFullYear();
158
- const time = {
159
- ms: milliseconds < 10 ? `00${milliseconds}` : milliseconds < 100 ? `0${milliseconds}` : milliseconds,
160
- s: seconds < 10 ? `0${seconds}` : seconds,
161
- m: minutes < 10 ? `0${minutes}` : minutes,
162
- h: hours < 10 ? `0${hours}` : hours,
163
- d: day < 10 ? `0${day}` : day,
164
- mo: month < 10 ? `0${month}` : month,
165
- y: year
166
- };
167
- if (timeStringUser) {
168
- if (timeStringUser.includes("sss")) {
169
- timeStringUser = timeStringUser.replace("sss", time.ms.toString());
170
- }
171
- if (timeStringUser.includes("ss")) {
172
- timeStringUser = timeStringUser.replace("ss", time.s.toString());
173
- }
174
- if (timeStringUser.includes("mm")) {
175
- timeStringUser = timeStringUser.replace("mm", time.m.toString());
176
- }
177
- if (timeStringUser.includes("hh")) {
178
- timeStringUser = timeStringUser.replace("hh", time.h.toString());
179
- }
180
- if (timeStringUser.includes("DD")) {
181
- timeStringUser = timeStringUser.replace("DD", time.d.toString());
182
- }
183
- if (timeStringUser.includes("MM")) {
184
- timeStringUser = timeStringUser.replace("MM", time.mo.toString());
185
- }
186
- if (timeStringUser.includes("YYYY")) {
187
- timeStringUser = timeStringUser.replace("YYYY", time.y.toString());
188
- }
189
- if (timeStringUser.includes("YY")) {
190
- timeStringUser = timeStringUser.replace("YY", time.y.toString().slice(-2));
191
- }
192
- timeStringUser = timeStringUser.replace("(", "").replace(")", "");
193
- return textToSend.replace(substring, timeStringUser);
72
+ if (!shouldChange) {
73
+ return text.replace(substring, stateValueString);
194
74
  }
195
- return textToSend;
75
+ const { newValue: val, textToSend, error } = (0, import_string.getValueToExchange)(import_main.adapter, text, stateValue.val);
76
+ return (!error ? textToSend : text).replace(substring, !error ? val.toString() : stateValueString);
196
77
  };
197
- const checkStatus = async (text, processTimeValue2) => {
198
- try {
199
- const _this2 = import_main.default.getInstance();
200
- const substring = decomposeText(text, "{status:", "}").substring;
201
- let id, valueChange;
202
- _this2.log.debug(`Substring ${substring}`);
203
- if (substring.includes("status:'id':")) {
204
- id = substring.split(":")[2].replace("'}", "").replace(/'/g, "").replace(/}/g, "");
205
- valueChange = substring.split(":")[3] ? substring.split(":")[3].replace("}", "") !== "false" : true;
206
- } else {
207
- id = substring.split(":")[1].replace("'}", "").replace(/'/g, "").replace(/}/g, "");
208
- valueChange = substring.split(":")[2] ? substring.split(":")[2].replace("}", "") !== "false" : true;
209
- }
210
- const stateValue = await _this2.getForeignStateAsync(id);
211
- if (!stateValue) {
212
- _this2.log.debug(`State not found: ${id}`);
213
- return "";
214
- }
215
- if (text.includes("{time}") && processTimeValue2) {
216
- text = text.replace(substring, "");
217
- if (stateValue.val && typeof stateValue.val === "string") {
218
- return processTimeValue2(text, stateValue).replace(stateValue.val, "");
219
- }
220
- }
221
- if (!(0, import_global.isDefined)(stateValue.val)) {
222
- _this2.log.debug(`State Value is undefined: ${id}`);
223
- return text.replace(substring, "");
224
- }
225
- if (!valueChange) {
226
- return text.replace(substring, stateValue.val.toString());
227
- }
228
- const changedResult = changeValue(text, stateValue.val);
229
- let newValue;
230
- if (changedResult) {
231
- text = changedResult.textToSend;
232
- newValue = changedResult.val;
233
- } else {
234
- newValue = stateValue.val;
235
- }
236
- _this2.log.debug(`CheckStatus Text: ${text} Substring: ${substring} NewValue: ${substring}`);
237
- _this2.log.debug(`CheckStatus Return Value: ${text.replace(substring, newValue.toString())}`);
238
- return text.replace(substring, newValue.toString());
239
- } catch (e) {
240
- import_main._this.log.error(`Error checkStatus:${e.message}`);
241
- import_main._this.log.error(`Stack:${e.stack}`);
78
+ const checkStatusInfo = async (text) => {
79
+ if (!text) {
242
80
  return "";
243
81
  }
244
- };
245
- const checkStatusInfo = async (text) => {
246
- const _this2 = import_main.default.getInstance();
247
82
  try {
248
- if (!text) {
249
- return;
250
- }
251
- _this2.log.debug(`Text: ${text}`);
252
- if (text.includes("{status:")) {
253
- while (text.includes("{status:")) {
254
- text = await checkStatus(text, processTimeValue);
83
+ import_main.adapter.log.debug(`Check status Info: ${text}`);
84
+ if (text.includes(import_config.config.status.start)) {
85
+ while (text.includes(import_config.config.status.start)) {
86
+ text = await checkStatus(text);
255
87
  }
256
88
  }
257
- if (text.includes("{time.lc") || text.includes("{time.ts")) {
258
- text = await processTimeIdLc(text, null) || "";
259
- }
260
- if (text.includes("{set:")) {
261
- const result = decomposeText(text, "{set:", "}");
262
- const id = result.substring.split(",")[0].replace("{set:'id':", "").replace(/'/g, "");
263
- const importedValue = result.substring.split(",")[1];
264
- text = result.textWithoutSubstring;
265
- const convertedValue = await checkTypeOfId(id, importedValue);
266
- const ack = result.substring.split(",")[2].replace("}", "") == "true";
267
- if (text === "") {
89
+ if (text.includes(import_config.config.timestamp.lc) || text.includes(import_config.config.timestamp.ts)) {
90
+ text = await processTimeIdLc(text);
91
+ }
92
+ if (text.includes(import_config.config.set.start)) {
93
+ const { substring, textExcludeSubstring } = (0, import_string.decomposeText)(text, import_config.config.set.start, import_config.config.set.end);
94
+ const id = substring.split(",")[0].replace("{set:'id':", "").replace(/'/g, "");
95
+ const importedValue = substring.split(",")[1];
96
+ text = textExcludeSubstring;
97
+ const convertedValue = await transformValueToTypeOfId(id, importedValue);
98
+ const ack = substring.split(",")[2].replace("}", "") == "true";
99
+ if ((0, import_string.isEmptyString)(text)) {
268
100
  text = "W\xE4hle eine Aktion";
269
101
  }
270
102
  if (convertedValue) {
271
- await _this2.setForeignStateAsync(id, convertedValue, ack);
103
+ await (0, import_setstate.setstateIobroker)({ id, value: convertedValue, ack });
272
104
  }
273
105
  }
274
- if (text) {
275
- _this2.log.debug(`CheckStatusInfo: ${text}`);
276
- return text;
277
- }
106
+ import_main.adapter.log.debug(`CheckStatusInfo: ${text}`);
107
+ return text;
278
108
  } catch (e) {
279
- (0, import_logging.error)([
280
- { text: "Error checkStatusInfo:", val: e.message },
281
- { text: "Stack:", val: e.stack }
282
- ]);
109
+ (0, import_logging.errorLogger)("Error checkStatusInfo:", e, import_main.adapter);
110
+ return "";
283
111
  }
284
112
  };
285
- async function checkTypeOfId(id, value) {
286
- const _this2 = import_main.default.getInstance();
113
+ async function transformValueToTypeOfId(id, value) {
287
114
  try {
288
- (0, import_logging.debug)([{ text: `Check Type of Id: ${id}` }]);
289
- const obj = await _this2.getForeignObjectAsync(id);
290
115
  const receivedType = typeof value;
291
- if (!obj || !value) {
292
- return value;
293
- }
294
- if (receivedType === obj.common.type || !obj.common.type) {
295
- return value;
296
- }
297
- (0, import_logging.debug)([{ text: `Change Value type from "${receivedType}" to "${obj.common.type}"` }]);
298
- if (obj.common.type === "boolean") {
299
- if (value == "true") {
300
- value = true;
301
- }
302
- if (value == "false") {
303
- value = false;
304
- }
116
+ const obj = await import_main.adapter.getForeignObjectAsync(id);
117
+ if (!obj || !(0, import_utils.isDefined)(value) || (0, import_appUtils.isNoTypeDefined)(receivedType, obj)) {
305
118
  return value;
306
119
  }
307
- if (obj.common.type === "string") {
308
- return JSON.stringify(value);
120
+ import_main.adapter.log.debug(`Change Value type from "${receivedType}" to "${obj.common.type}"`);
121
+ switch (obj.common.type) {
122
+ case "string":
123
+ return String(value);
124
+ case "number":
125
+ return typeof value === "string" ? parseFloat(value) : parseFloat((0, import_string.jsonString)(value));
126
+ case "boolean":
127
+ return (0, import_utils.isTruthy)(value);
128
+ default:
129
+ return value;
309
130
  }
310
- if (obj && obj.common && obj.common.type === "number" && typeof value === "string") {
311
- return parseFloat(value);
312
- }
313
- return value;
314
131
  } catch (e) {
315
- (0, import_logging.error)([
316
- { text: "Error checkTypeOfId:", val: e.message },
317
- { text: "Stack:", val: e.stack }
318
- ]);
132
+ (0, import_logging.errorLogger)("Error checkTypeOfId:", e, import_main.adapter);
319
133
  }
320
134
  }
321
- const newLine = (text) => {
322
- if ((0, import_global.isJSON)(text)) {
323
- text = JSON.parse(text);
324
- }
325
- return text.replace(/""/g, '"').replace(/\\n/g, "\n");
326
- };
327
135
  // Annotate the CommonJS export names for ESM import in node:
328
136
  0 && (module.exports = {
329
- changeValue,
137
+ checkStatus,
330
138
  checkStatusInfo,
331
- checkTypeOfId,
332
- decomposeText,
333
- getChatID,
334
- newLine,
335
139
  processTimeIdLc,
336
- processTimeValue,
337
- replaceAll
140
+ transformValueToTypeOfId
338
141
  });
339
142
  //# sourceMappingURL=utilities.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/utilities.ts"],
4
- "sourcesContent": ["import TelegramMenu, { _this } from '../main';\nimport { isDefined, isJSON, replaceAll } from './global';\nimport { debug, error } from './logging';\nimport type { ProzessTimeValue, UserListWithChatId } from './telegram-menu';\n\nconst processTimeValue = (textToSend: string, obj: ioBroker.State): string => {\n const date = Number(obj.val);\n\n if (!isDefined(date)) {\n return textToSend;\n }\n const time = new Date(date);\n if (isNaN(time.getTime())) {\n error([{ text: 'Invalid Date:', val: date }]);\n return textToSend;\n }\n const timeString = time.toLocaleDateString('de-DE', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n });\n return textToSend.replace('{time}', timeString);\n};\n\nconst getChatID = (userListWithChatID: UserListWithChatId[], user: string): string => {\n let chatId = '';\n userListWithChatID.forEach(element => {\n if (element.name === user) {\n chatId = element.chatID;\n }\n });\n return chatId;\n};\nconst exchangeValue = (\n textToSend: string,\n stateVal: string | number | boolean,\n): { valueChange: string; textToSend: string } | boolean => {\n const { startindex, endindex } = decomposeText(textToSend, 'change{', '}');\n\n let match = textToSend.substring(startindex + 'change'.length + 1, textToSend.indexOf('}', startindex));\n\n let objChangeValue;\n match = match.replace(/'/g, '\"');\n\n if (isJSON(`{${match}}`)) {\n objChangeValue = JSON.parse(`{${match}}`);\n } else {\n error([{ text: `There is a error in your input:`, val: replaceAll(match, '\"', \"'\") }]);\n return false;\n }\n\n let newValue;\n objChangeValue[String(stateVal)] ? (newValue = objChangeValue[String(stateVal)]) : (newValue = stateVal);\n return {\n valueChange: newValue,\n textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1),\n };\n};\n\nfunction decomposeText(\n text: string,\n searchValue: string,\n secondValue: string,\n): { startindex: number; endindex: number; substring: string; textWithoutSubstring: string } {\n const startindex = text.indexOf(searchValue);\n const endindex = text.indexOf(secondValue, startindex);\n const substring = text.substring(startindex, endindex + secondValue.length);\n const textWithoutSubstring = text.replace(substring, '').trim();\n return {\n startindex: startindex,\n endindex: endindex,\n substring: substring,\n textWithoutSubstring: textWithoutSubstring,\n };\n}\n\nfunction changeValue(\n textToSend: string,\n val: string | number | boolean,\n): { textToSend: string; val: string | number } | undefined {\n if (textToSend.includes('change{')) {\n const result = exchangeValue(textToSend, val);\n if (!result) {\n return;\n }\n if (typeof result === 'boolean') {\n return;\n }\n return { textToSend: result.textToSend, val: result.valueChange };\n }\n}\n\nconst processTimeIdLc = async (textToSend: string, id: string | null): Promise<string | undefined> => {\n const _this = TelegramMenu.getInstance();\n\n let key = '';\n const { substring } = decomposeText(textToSend, '{time.', '}');\n const array = substring.split(',');\n let changedSubstring = substring;\n changedSubstring = changedSubstring.replace(array[0], '');\n\n if (array[0].includes('lc')) {\n key = 'lc';\n } else if (array[0].includes('ts')) {\n key = 'ts';\n }\n let idFromText = '';\n if (!id) {\n if (!changedSubstring.includes('id:')) {\n debug([{ text: 'Error processTimeIdLc: id not found in:', val: changedSubstring }]);\n return;\n }\n\n if (array[2]) {\n idFromText = array[2].replace('id:', '').replace('}', '').replace(/'/g, '');\n changedSubstring = changedSubstring.replace(array[2], '').replace(/,/g, '');\n }\n }\n if (!id && !idFromText) {\n return;\n }\n const value = await _this.getForeignStateAsync(id || idFromText);\n let timeValue;\n let timeStringUser;\n if (key && value) {\n timeStringUser = changedSubstring.replace(',(', '').replace(')', '').replace('}', '');\n timeValue = value[key as keyof ioBroker.StateValue];\n }\n if (!timeValue) {\n return;\n }\n const timeObj = new Date(timeValue);\n const milliseconds = timeObj.getMilliseconds();\n const seconds = timeObj.getSeconds();\n const minutes = timeObj.getMinutes();\n const hours = timeObj.getHours();\n const day = timeObj.getDate();\n const month = timeObj.getMonth() + 1;\n const year = timeObj.getFullYear();\n\n const time = {\n ms: milliseconds < 10 ? `00${milliseconds}` : milliseconds < 100 ? `0${milliseconds}` : milliseconds,\n s: seconds < 10 ? `0${seconds}` : seconds,\n m: minutes < 10 ? `0${minutes}` : minutes,\n h: hours < 10 ? `0${hours}` : hours,\n d: day < 10 ? `0${day}` : day,\n mo: month < 10 ? `0${month}` : month,\n y: year,\n };\n\n if (timeStringUser) {\n if (timeStringUser.includes('sss')) {\n timeStringUser = timeStringUser.replace('sss', time.ms.toString());\n }\n if (timeStringUser.includes('ss')) {\n timeStringUser = timeStringUser.replace('ss', time.s.toString());\n }\n if (timeStringUser.includes('mm')) {\n timeStringUser = timeStringUser.replace('mm', time.m.toString());\n }\n if (timeStringUser.includes('hh')) {\n timeStringUser = timeStringUser.replace('hh', time.h.toString());\n }\n if (timeStringUser.includes('DD')) {\n timeStringUser = timeStringUser.replace('DD', time.d.toString());\n }\n if (timeStringUser.includes('MM')) {\n timeStringUser = timeStringUser.replace('MM', time.mo.toString());\n }\n if (timeStringUser.includes('YYYY')) {\n timeStringUser = timeStringUser.replace('YYYY', time.y.toString());\n }\n if (timeStringUser.includes('YY')) {\n timeStringUser = timeStringUser.replace('YY', time.y.toString().slice(-2));\n }\n timeStringUser = timeStringUser.replace('(', '').replace(')', '');\n return textToSend.replace(substring, timeStringUser);\n }\n\n return textToSend;\n};\n\nconst checkStatus = async (text: string, processTimeValue?: ProzessTimeValue): Promise<string> => {\n try {\n const _this = TelegramMenu.getInstance();\n const substring = decomposeText(text, '{status:', '}').substring;\n let id, valueChange;\n _this.log.debug(`Substring ${substring}`);\n if (substring.includes(\"status:'id':\")) {\n id = substring.split(':')[2].replace(\"'}\", '').replace(/'/g, '').replace(/}/g, '');\n\n valueChange = substring.split(':')[3] ? substring.split(':')[3].replace('}', '') !== 'false' : true;\n } else {\n id = substring.split(':')[1].replace(\"'}\", '').replace(/'/g, '').replace(/}/g, '');\n valueChange = substring.split(':')[2] ? substring.split(':')[2].replace('}', '') !== 'false' : true;\n }\n\n const stateValue = await _this.getForeignStateAsync(id);\n\n if (!stateValue) {\n _this.log.debug(`State not found: ${id}`);\n return '';\n }\n\n if (text.includes('{time}') && processTimeValue) {\n text = text.replace(substring, '');\n if (stateValue.val && typeof stateValue.val === 'string') {\n return processTimeValue(text, stateValue).replace(stateValue.val, '');\n }\n }\n if (!isDefined(stateValue.val)) {\n _this.log.debug(`State Value is undefined: ${id}`);\n return text.replace(substring, '');\n }\n if (!valueChange) {\n return text.replace(substring, stateValue.val.toString());\n }\n const changedResult = changeValue(text, stateValue.val);\n let newValue;\n if (changedResult) {\n text = changedResult.textToSend;\n newValue = changedResult.val;\n } else {\n newValue = stateValue.val;\n }\n _this.log.debug(`CheckStatus Text: ${text} Substring: ${substring} NewValue: ${substring}`);\n _this.log.debug(`CheckStatus Return Value: ${text.replace(substring, newValue.toString())}`);\n\n return text.replace(substring, newValue.toString());\n } catch (e: any) {\n _this.log.error(`Error checkStatus:${e.message}`);\n _this.log.error(`Stack:${e.stack}`);\n\n return '';\n }\n};\nconst checkStatusInfo = async (text: string): Promise<string | undefined> => {\n const _this = TelegramMenu.getInstance();\n\n try {\n if (!text) {\n return;\n }\n _this.log.debug(`Text: ${text}`);\n\n if (text.includes('{status:')) {\n while (text.includes('{status:')) {\n text = await checkStatus(text, processTimeValue);\n }\n }\n if (text.includes('{time.lc') || text.includes('{time.ts')) {\n text = (await processTimeIdLc(text, null)) || '';\n }\n if (text.includes('{set:')) {\n const result = decomposeText(text, '{set:', '}');\n const id = result.substring.split(',')[0].replace(\"{set:'id':\", '').replace(/'/g, '');\n const importedValue = result.substring.split(',')[1];\n\n text = result.textWithoutSubstring;\n const convertedValue = await checkTypeOfId(id, importedValue);\n\n const ack = result.substring.split(',')[2].replace('}', '') == 'true';\n\n if (text === '') {\n text = 'W\u00E4hle eine Aktion';\n }\n if (convertedValue) {\n await _this.setForeignStateAsync(id, convertedValue, ack);\n }\n }\n if (text) {\n _this.log.debug(`CheckStatusInfo: ${text}`);\n return text;\n }\n } catch (e: any) {\n error([\n { text: 'Error checkStatusInfo:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nasync function checkTypeOfId(\n id: string,\n value: ioBroker.State | ioBroker.StateValue | ioBroker.SettableState,\n): Promise<ioBroker.State | null | undefined | ioBroker.StateValue | ioBroker.SettableState> {\n const _this = TelegramMenu.getInstance();\n try {\n debug([{ text: `Check Type of Id: ${id}` }]);\n const obj = await _this.getForeignObjectAsync(id);\n const receivedType = typeof value;\n if (!obj || !value) {\n return value;\n }\n if (receivedType === obj.common.type || !obj.common.type) {\n return value;\n }\n\n debug([{ text: `Change Value type from \"${receivedType}\" to \"${obj.common.type}\"` }]);\n\n if (obj.common.type === 'boolean') {\n if (value == 'true') {\n value = true;\n }\n if (value == 'false') {\n value = false;\n }\n return value;\n }\n if (obj.common.type === 'string') {\n return JSON.stringify(value);\n }\n if (obj && obj.common && obj.common.type === 'number' && typeof value === 'string') {\n return parseFloat(value);\n }\n\n return value;\n } catch (e: any) {\n error([\n { text: 'Error checkTypeOfId:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nconst newLine = (text: string): string => {\n if (isJSON(text)) {\n text = JSON.parse(text);\n }\n\n return text.replace(/\"\"/g, '\"').replace(/\\\\n/g, '\\n');\n};\n\nexport {\n checkStatusInfo,\n checkTypeOfId,\n changeValue,\n newLine,\n processTimeIdLc,\n processTimeValue,\n decomposeText,\n replaceAll,\n getChatID,\n};\n"],
5
- "mappings": "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",
6
- "names": ["_this", "TelegramMenu", "processTimeValue"]
4
+ "sourcesContent": ["import { isDefined, isTruthy } from './utils';\nimport { decomposeText, getValueToExchange, isEmptyString, jsonString, replaceAllItems } from './string';\nimport { errorLogger } from '../app/logging';\nimport { extractTimeValues, getTimeWithPad, integrateTimeIntoText } from './time';\nimport { adapter } from '../main';\nimport { config } from '../config/config';\nimport { isNoTypeDefined, statusIdAndParams, timeStringReplacer } from './appUtils';\nimport { setstateIobroker } from '../app/setstate';\nimport { getProcessTimeValues } from './splitValues';\n\nexport const processTimeIdLc = async (textToSend: string, id?: string): Promise<string> => {\n const { substring, substringExcludeSearch } = decomposeText(\n textToSend,\n config.timestamp.start,\n config.timestamp.end,\n ); //{time.lc,(DD MM YYYY hh:mm:ss:sss),id:'ID'}\n const { typeofTimestamp, timeString, idString } = getProcessTimeValues(substringExcludeSearch);\n\n if (!id && (!idString || idString.length < 5)) {\n return textToSend.replace(substring, 'Invalid ID');\n }\n const value = await adapter.getForeignStateAsync(id ?? idString);\n\n if (!value) {\n return textToSend.replace(substring, 'Invalid ID');\n }\n const timeStringUser = replaceAllItems(timeString, [',(', ')', '}']); //\"(DD MM YYYY hh:mm:ss:sss)\"\n const unixTs = value[typeofTimestamp];\n\n const timeWithPad = getTimeWithPad(extractTimeValues(unixTs));\n const timeStringReplaced = timeStringReplacer(timeWithPad, timeStringUser);\n\n return timeStringReplaced ?? textToSend;\n};\n\n// TODO Check Usage of function\nexport const checkStatus = async (text: string): Promise<string> => {\n const { substring, substringExcludeSearch, textExcludeSubstring } = decomposeText(\n text,\n config.status.start,\n config.status.end,\n ); //substring {status:'ID':true} new | old {status:'id':'ID':true}\n\n const { id, shouldChange } = statusIdAndParams(substringExcludeSearch);\n\n const stateValue = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(stateValue?.val)) {\n adapter.log.debug(`State not found: ${id}`);\n return text.replace(substring, '');\n }\n\n const stateValueString = String(stateValue.val);\n\n if (text.includes(config.time)) {\n return integrateTimeIntoText(textExcludeSubstring, stateValueString).replace(stateValueString, '');\n }\n\n if (!shouldChange) {\n return text.replace(substring, stateValueString);\n }\n\n const { newValue: val, textToSend, error } = getValueToExchange(adapter, text, stateValue.val);\n\n return (!error ? textToSend : text).replace(substring, !error ? val.toString() : stateValueString);\n};\n\nexport const checkStatusInfo = async (text?: string): Promise<string> => {\n if (!text) {\n return '';\n }\n try {\n adapter.log.debug(`Check status Info: ${text}`);\n\n if (text.includes(config.status.start)) {\n while (text.includes(config.status.start)) {\n text = await checkStatus(text);\n }\n }\n if (text.includes(config.timestamp.lc) || text.includes(config.timestamp.ts)) {\n text = await processTimeIdLc(text);\n }\n if (text.includes(config.set.start)) {\n const { substring, textExcludeSubstring } = decomposeText(text, config.set.start, config.set.end);\n const id = substring.split(',')[0].replace(\"{set:'id':\", '').replace(/'/g, '');\n const importedValue = substring.split(',')[1];\n\n text = textExcludeSubstring;\n const convertedValue = await transformValueToTypeOfId(id, importedValue);\n\n const ack = substring.split(',')[2].replace('}', '') == 'true';\n\n if (isEmptyString(text)) {\n text = 'W\u00E4hle eine Aktion';\n }\n if (convertedValue) {\n await setstateIobroker({ id, value: convertedValue, ack });\n }\n }\n adapter.log.debug(`CheckStatusInfo: ${text}`);\n return text;\n } catch (e: any) {\n errorLogger('Error checkStatusInfo:', e, adapter);\n return '';\n }\n};\n\nexport async function transformValueToTypeOfId(\n id: string,\n value: ioBroker.StateValue,\n): Promise<ioBroker.StateValue | undefined> {\n try {\n const receivedType = typeof value;\n const obj = await adapter.getForeignObjectAsync(id);\n\n if (!obj || !isDefined(value) || isNoTypeDefined(receivedType, obj)) {\n return value;\n }\n\n adapter.log.debug(`Change Value type from \"${receivedType}\" to \"${obj.common.type}\"`);\n\n switch (obj.common.type) {\n case 'string':\n return String(value);\n case 'number':\n return typeof value === 'string' ? parseFloat(value) : parseFloat(jsonString(value));\n case 'boolean':\n return isTruthy(value);\n default:\n return value;\n }\n } catch (e: any) {\n errorLogger('Error checkTypeOfId:', e, adapter);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -0,0 +1,66 @@
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 __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var utils_exports = {};
20
+ __export(utils_exports, {
21
+ deepCopy: () => deepCopy,
22
+ getChatID: () => getChatID,
23
+ isDefined: () => isDefined,
24
+ isFalsy: () => isFalsy,
25
+ isTruthy: () => isTruthy,
26
+ validateDirectory: () => validateDirectory
27
+ });
28
+ module.exports = __toCommonJS(utils_exports);
29
+ var import_logging = require("../app/logging");
30
+ const getChatID = (userListWithChatID, user) => {
31
+ for (const element of userListWithChatID) {
32
+ if (element.name === user) {
33
+ return element.chatID;
34
+ }
35
+ }
36
+ return;
37
+ };
38
+ const isDefined = (value) => value !== void 0 && value !== null;
39
+ const deepCopy = (obj, adapter) => {
40
+ try {
41
+ return !isDefined(obj) ? void 0 : JSON.parse(JSON.stringify(obj));
42
+ } catch (err) {
43
+ (0, import_logging.errorLogger)(`Error deepCopy: `, err, adapter);
44
+ }
45
+ };
46
+ function validateDirectory(adapter, directory) {
47
+ if (!isDefined(directory) || directory === "") {
48
+ adapter.log.error(
49
+ "No directory to save the picture. Please add a directory in the settings with full read and write permissions."
50
+ );
51
+ return false;
52
+ }
53
+ return true;
54
+ }
55
+ const isTruthy = (value) => isDefined(value) && ["1", 1, true, "true"].includes(value);
56
+ const isFalsy = (value) => ["0", 0, false, "false", void 0, null].includes(value);
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ deepCopy,
60
+ getChatID,
61
+ isDefined,
62
+ isFalsy,
63
+ isTruthy,
64
+ validateDirectory
65
+ });
66
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/utils.ts"],
4
+ "sourcesContent": ["import type { Adapter, UserListWithChatId } from '../types/types';\nimport { errorLogger } from '../app/logging';\n\nexport const getChatID = (userListWithChatID: UserListWithChatId[], user: string): string | undefined => {\n for (const element of userListWithChatID) {\n if (element.name === user) {\n return element.chatID;\n }\n }\n return;\n};\n\nexport const isDefined = <T>(value: T | undefined | null): value is T => value !== undefined && value !== null;\n\nexport const deepCopy = <T>(obj: T, adapter: Adapter): T | undefined => {\n try {\n return !isDefined(obj) ? undefined : JSON.parse(JSON.stringify(obj));\n } catch (err) {\n errorLogger(`Error deepCopy: `, err, adapter);\n }\n};\n\nexport function validateDirectory(adapter: Adapter, directory: string): boolean {\n if (!isDefined(directory) || directory === '') {\n adapter.log.error(\n 'No directory to save the picture. Please add a directory in the settings with full read and write permissions.',\n );\n return false;\n }\n return true;\n}\n\nexport const isTruthy = (value?: ioBroker.StateValue): boolean =>\n isDefined(value) && ['1', 1, true, 'true'].includes(value);\n\nexport const isFalsy = (value?: ioBroker.StateValue): boolean =>\n ['0', 0, false, 'false', undefined, null].includes(value);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAA4B;AAErB,MAAM,YAAY,CAAC,oBAA0C,SAAqC;AACrG,aAAW,WAAW,oBAAoB;AACtC,QAAI,QAAQ,SAAS,MAAM;AACvB,aAAO,QAAQ;AAAA,IACnB;AAAA,EACJ;AACA;AACJ;AAEO,MAAM,YAAY,CAAI,UAA4C,UAAU,UAAa,UAAU;AAEnG,MAAM,WAAW,CAAI,KAAQ,YAAoC;AACpE,MAAI;AACA,WAAO,CAAC,UAAU,GAAG,IAAI,SAAY,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACvE,SAAS,KAAK;AACV,oCAAY,oBAAoB,KAAK,OAAO;AAAA,EAChD;AACJ;AAEO,SAAS,kBAAkB,SAAkB,WAA4B;AAC5E,MAAI,CAAC,UAAU,SAAS,KAAK,cAAc,IAAI;AAC3C,YAAQ,IAAI;AAAA,MACR;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAEO,MAAM,WAAW,CAAC,UACrB,UAAU,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,MAAM,EAAE,SAAS,KAAK;AAEtD,MAAM,UAAU,CAAC,UACpB,CAAC,KAAK,GAAG,OAAO,SAAS,QAAW,IAAI,EAAE,SAAS,KAAK;",
6
+ "names": []
7
+ }