iobroker.telegram-menu 2.2.3 → 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 (287) hide show
  1. package/README.md +13 -1
  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 +22 -27
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js +6 -6
  118. package/build/lib/adapterStartMenuSend.js.map +2 -2
  119. package/build/lib/appUtils.js +158 -0
  120. package/build/lib/appUtils.js.map +7 -0
  121. package/build/lib/appUtilsString.js +37 -0
  122. package/build/lib/appUtilsString.js.map +7 -0
  123. package/build/lib/backMenu.js +6 -6
  124. package/build/lib/backMenu.js.map +2 -2
  125. package/build/lib/botAction.js.map +1 -1
  126. package/build/lib/dynamicSwitch.js +10 -10
  127. package/build/lib/dynamicSwitch.js.map +2 -2
  128. package/build/lib/dynamicValue.js +6 -6
  129. package/build/lib/dynamicValue.js.map +2 -2
  130. package/build/lib/echarts.js +5 -6
  131. package/build/lib/echarts.js.map +2 -2
  132. package/build/lib/getstate.js +29 -30
  133. package/build/lib/getstate.js.map +2 -2
  134. package/build/lib/global.js +13 -0
  135. package/build/lib/global.js.map +2 -2
  136. package/build/lib/httpRequest.js +6 -7
  137. package/build/lib/httpRequest.js.map +2 -2
  138. package/build/lib/json.js +54 -0
  139. package/build/lib/json.js.map +7 -0
  140. package/build/lib/jsonTable.js +12 -15
  141. package/build/lib/jsonTable.js.map +2 -2
  142. package/build/lib/math.js +41 -0
  143. package/build/lib/math.js.map +7 -0
  144. package/build/lib/messageIds.js.map +1 -1
  145. package/build/lib/object.js +35 -0
  146. package/build/lib/object.js.map +7 -0
  147. package/build/lib/processData.js +22 -33
  148. package/build/lib/processData.js.map +3 -3
  149. package/build/lib/sendNav.js +7 -7
  150. package/build/lib/sendNav.js.map +2 -2
  151. package/build/lib/sendpic.js +23 -22
  152. package/build/lib/sendpic.js.map +2 -2
  153. package/build/lib/setstate.js +8 -8
  154. package/build/lib/setstate.js.map +2 -2
  155. package/build/lib/shoppingList.js +6 -6
  156. package/build/lib/shoppingList.js.map +2 -2
  157. package/build/lib/splitValues.js +63 -0
  158. package/build/lib/splitValues.js.map +7 -0
  159. package/build/lib/string.js +125 -3
  160. package/build/lib/string.js.map +2 -2
  161. package/build/lib/subMenu.js +66 -50
  162. package/build/lib/subMenu.js.map +2 -2
  163. package/build/lib/subscribeStates.js.map +1 -1
  164. package/build/lib/telegram.js +11 -2
  165. package/build/lib/telegram.js.map +2 -2
  166. package/build/lib/time.js +93 -0
  167. package/build/lib/time.js.map +7 -0
  168. package/build/lib/utilities.js +85 -281
  169. package/build/lib/utilities.js.map +3 -3
  170. package/build/lib/utils.js +66 -0
  171. package/build/lib/utils.js.map +7 -0
  172. package/build/main.js +154 -234
  173. package/build/main.js.map +3 -3
  174. package/build/src/app/action.js +239 -0
  175. package/build/src/app/action.js.map +1 -0
  176. package/build/src/app/adapterManager.js +12 -0
  177. package/build/src/app/adapterManager.js.map +1 -0
  178. package/build/src/app/adapterStartMenuSend.js +36 -0
  179. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  180. package/build/src/app/backMenu.js +81 -0
  181. package/build/src/app/backMenu.js.map +1 -0
  182. package/build/src/app/botAction.js +25 -0
  183. package/build/src/app/botAction.js.map +1 -0
  184. package/build/src/app/configVariables.js +32 -0
  185. package/build/src/app/configVariables.js.map +1 -0
  186. package/build/src/app/connection.js +20 -0
  187. package/build/src/app/connection.js.map +1 -0
  188. package/build/src/app/createState.js +19 -0
  189. package/build/src/app/createState.js.map +1 -0
  190. package/build/src/app/dynamicSwitch.js +52 -0
  191. package/build/src/app/dynamicSwitch.js.map +1 -0
  192. package/build/src/app/dynamicSwitchMenu.js +52 -0
  193. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  194. package/build/src/app/dynamicValue.js +52 -0
  195. package/build/src/app/dynamicValue.js.map +1 -0
  196. package/build/src/app/echarts.js +33 -0
  197. package/build/src/app/echarts.js.map +1 -0
  198. package/build/src/app/getstate.js +122 -0
  199. package/build/src/app/getstate.js.map +1 -0
  200. package/build/src/app/global.js +8 -0
  201. package/build/src/app/global.js.map +1 -0
  202. package/build/src/app/httpRequest.js +55 -0
  203. package/build/src/app/httpRequest.js.map +1 -0
  204. package/build/src/app/jsonTable.js +147 -0
  205. package/build/src/app/jsonTable.js.map +1 -0
  206. package/build/src/app/logging.js +22 -0
  207. package/build/src/app/logging.js.map +1 -0
  208. package/build/src/app/messageIds.js +89 -0
  209. package/build/src/app/messageIds.js.map +1 -0
  210. package/build/src/app/processData.js +153 -0
  211. package/build/src/app/processData.js.map +1 -0
  212. package/build/src/app/sendNav.js +26 -0
  213. package/build/src/app/sendNav.js.map +1 -0
  214. package/build/src/app/sendpic.js +66 -0
  215. package/build/src/app/sendpic.js.map +1 -0
  216. package/build/src/app/sentry.js +18 -0
  217. package/build/src/app/sentry.js.map +1 -0
  218. package/build/src/app/setStateIdsToListenTo.js +17 -0
  219. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  220. package/build/src/app/setstate.js +114 -0
  221. package/build/src/app/setstate.js.map +1 -0
  222. package/build/src/app/shoppingList.js +74 -0
  223. package/build/src/app/shoppingList.js.map +1 -0
  224. package/build/src/app/subMenu.js +237 -0
  225. package/build/src/app/subMenu.js.map +1 -0
  226. package/build/src/app/subscribeStates.js +17 -0
  227. package/build/src/app/subscribeStates.js.map +1 -0
  228. package/build/src/app/telegram.js +83 -0
  229. package/build/src/app/telegram.js.map +1 -0
  230. package/build/src/app/validateMenus.js +30 -0
  231. package/build/src/app/validateMenus.js.map +1 -0
  232. package/build/src/config/config.js +100 -0
  233. package/build/src/config/config.js.map +1 -0
  234. package/build/src/lib/appUtils.js +126 -0
  235. package/build/src/lib/appUtils.js.map +1 -0
  236. package/build/src/lib/appUtilsString.js +13 -0
  237. package/build/src/lib/appUtilsString.js.map +1 -0
  238. package/build/src/lib/json.js +37 -0
  239. package/build/src/lib/json.js.map +1 -0
  240. package/build/src/lib/math.js +17 -0
  241. package/build/src/lib/math.js.map +1 -0
  242. package/build/src/lib/object.js +10 -0
  243. package/build/src/lib/object.js.map +1 -0
  244. package/build/src/lib/splitValues.js +35 -0
  245. package/build/src/lib/splitValues.js.map +1 -0
  246. package/build/src/lib/string.js +121 -0
  247. package/build/src/lib/string.js.map +1 -0
  248. package/build/src/lib/time.js +57 -0
  249. package/build/src/lib/time.js.map +1 -0
  250. package/build/src/lib/utilities.js +111 -0
  251. package/build/src/lib/utilities.js.map +1 -0
  252. package/build/src/lib/utils.js +37 -0
  253. package/build/src/lib/utils.js.map +1 -0
  254. package/build/src/main.js +332 -0
  255. package/build/src/main.js.map +1 -0
  256. package/build/src/test/setup.js +12 -0
  257. package/build/src/test/setup.js.map +1 -0
  258. package/build/src/types/types.js +3 -0
  259. package/build/src/types/types.js.map +1 -0
  260. package/build/test/integration.js +0 -1
  261. package/build/test/integration.js.map +1 -1
  262. package/build/test/mocha.setup.js +0 -1
  263. package/build/test/mocha.setup.js.map +1 -1
  264. package/build/test/package.js +0 -1
  265. package/build/test/package.js.map +1 -1
  266. package/build/test/setup.js +12 -0
  267. package/build/test/setup.js.map +1 -0
  268. package/build/test/test/appUtils.test.js +507 -0
  269. package/build/test/test/appUtils.test.js.map +1 -0
  270. package/build/test/test/appUtilsString.test.js +16 -0
  271. package/build/test/test/appUtilsString.test.js.map +1 -0
  272. package/build/test/test/math.test.js +33 -0
  273. package/build/test/test/math.test.js.map +1 -0
  274. package/build/test/test/object.test.js +54 -0
  275. package/build/test/test/object.test.js.map +1 -0
  276. package/build/test/test/string.test.js +361 -0
  277. package/build/test/test/string.test.js.map +1 -0
  278. package/build/test/test/time.test.js +201 -0
  279. package/build/test/test/time.test.js.map +1 -0
  280. package/build/test/test/utils.test.js +115 -0
  281. package/build/test/test/utils.test.js.map +1 -0
  282. package/build/types/types.js +17 -0
  283. package/build/types/types.js.map +7 -0
  284. package/io-package.json +32 -27
  285. package/package.json +14 -10
  286. package/build/main.test.js +0 -24
  287. package/build/main.test.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/utilities.ts"],
4
- "sourcesContent": ["import TelegramMenu from '../main';\nimport { isDefined, isJSON, replaceAll } from './global';\nimport { debug, error } from './logging';\nimport type { UserListWithChatId, ProzessTimeValue } 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 (\n text: string,\n processTimeValue?: ProzessTimeValue,\n): Promise<string | undefined | ioBroker.State | null> => {\n try {\n const _this = TelegramMenu.getInstance();\n debug([{ text: 'CheckStatusInfo:', val: text }]);\n\n const substring = decomposeText(text, '{status:', '}').substring;\n let id, valueChange;\n\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 debug([{ text: 'Error getting Value from:', val: 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 (stateValue.val === undefined || stateValue.val === null) {\n debug([{ text: 'Id', val: id }, { text: 'Value is null or undefined!' }]);\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 return text.replace(substring, newValue.toString());\n } catch (e: any) {\n error([\n { text: 'Error checkStatus:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\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: ${JSON.stringify(text)}`);\n if (text.includes('{status:')) {\n while (text.includes('{status:')) {\n const result = await checkStatus(text, processTimeValue);\n text = result ? JSON.stringify(result) : '';\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 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": ["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
+ }