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/action.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram.js';\nimport { decomposeText } from './global';\nimport { callSubMenu } from './subMenu.js';\nimport { sendNav } from './sendNav.js';\nimport { backMenuFunc } from './backMenu.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type {\n UserListWithChatId,\n BooleanString,\n BindingObject,\n EditArrayButtons,\n GeneratedNavMenu,\n Newline,\n NewObjectNavStructure,\n Actions,\n GenerateActionsArrayOfEntries,\n Switch,\n UserObjectActions,\n GenerateActionsNewObject,\n NewObjectNavStructureKey,\n Part,\n DataObject,\n MenuData,\n UserInGroup,\n MenusWithUsers,\n} from './telegram-menu.js';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n): Promise<void> => {\n const _this = TelegramMenu.getInstance();\n let value;\n\n try {\n const substring = decomposeText(text, 'binding:', '}').substring;\n const arrayOfItems = substring.replace('binding:{', '').replace('}', '').split(';');\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const key = item.split(':')[0];\n const id = item.split(':')[1];\n\n const result = await _this.getForeignStateAsync(id);\n if (result) {\n bindingObject.values[key] = result.val?.toString() || '';\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n value = eval(item);\n }\n }\n await sendToTelegram(\n userToSend,\n value,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nfunction calcValue(\n _this: TelegramMenu,\n textToSend: string,\n val: string,\n): { textToSend: string; val: string } | undefined {\n const { substring } = decomposeText(textToSend, '{math:', '}');\n const mathValue = substring.replace('{math:', '').replace('}', '');\n try {\n val = eval(val + mathValue);\n textToSend = textToSend.replace(substring, '');\n\n return { textToSend: textToSend, val: val };\n } catch (e: any) {\n error([\n { text: 'Error Eval:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction checkValueForOneLine(text: string): string {\n if (!text.includes('&&')) {\n return `${text}&&`;\n }\n return text;\n}\n\nfunction editArrayButtons(val: EditArrayButtons[], _this: TelegramMenu): GeneratedNavMenu[] | null {\n const newVal: GeneratedNavMenu[] = [];\n try {\n val.forEach(element => {\n let value = '';\n if (typeof element.value === 'string') {\n value = checkValueForOneLine(element.value);\n }\n let array: string[] | string[][] = [];\n if (value.indexOf('&&') != -1) {\n array = value.split('&&');\n }\n\n if (array.length > 1) {\n array.forEach(function (element, index: number) {\n if (typeof element === 'string') {\n let navArray = element.split(',');\n navArray = navArray.map(item => item.trim());\n array[index] = navArray;\n }\n });\n } else if (typeof element.value === 'string') {\n array = element.value.split(',');\n array.forEach(function (element, index: number) {\n array[index] = [element.trim()];\n });\n }\n\n newVal.push({ call: element.call, text: element.text, parse_mode: element.parse_mode, nav: array });\n });\n\n return newVal;\n } catch (err: any) {\n error([\n { text: 'Error EditArray:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nconst idBySelector = async (\n _this: TelegramMenu,\n selector: string,\n text: string,\n userToSend: string,\n newline: Newline,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): Promise<void> => {\n let text2Send = '';\n try {\n if (!selector.includes('functions')) {\n return;\n }\n\n const functions = selector.replace('functions=', '');\n let enums: string[] | undefined = [];\n const result = await _this.getEnumsAsync();\n\n if (!result || !result['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n const promises = enums.map(async (id: string) => {\n const value = await _this.getForeignStateAsync(id);\n if (value && value.val !== undefined && value.val !== null) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await _this.getForeignObjectAsync(id);\n _this.log.debug(`Name ${JSON.stringify(res?.common.name)}`);\n\n if (res && res.common.name) {\n newText = newText.replace('{common.name}', res.common.name as string);\n }\n }\n if (text.includes('&amp;&amp;')) {\n text2Send += newText.replace('&amp;&amp;', value.val as string);\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n if (newline === 'true') {\n text2Send += ' \\n';\n } else {\n text2Send += ' ';\n }\n _this.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(() => {\n sendToTelegram(\n userToSend,\n text2Send,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n 'false',\n ).catch(e => {\n error([\n { text: 'Error SendToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n debug([\n { text: 'TextToSend:', val: text2Send },\n { text: 'UserToSend:', val: userToSend },\n ]);\n })\n .catch(e => {\n error([\n { text: 'Error Promise:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n } catch (error: any) {\n error([\n { text: 'Error idBySelector:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ]);\n }\n};\n\nfunction generateNewObjectStructure(val: GeneratedNavMenu[] | null): NewObjectNavStructure | null {\n try {\n if (!val) {\n return null;\n }\n const obj: NewObjectNavStructure = {};\n val.forEach(function (element) {\n const call = element.call;\n obj[call] = {\n nav: element.nav,\n text: element.text,\n parse_mode:\n element.parse_mode == 'true' || element.parse_mode == 'false' ? element.parse_mode : 'false',\n };\n });\n return obj;\n } catch (err: any) {\n error([\n { text: 'Error GenerateNewObjectStructure:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nfunction generateActions(\n action: Actions,\n userObject: NewObjectNavStructure,\n): { obj: NewObjectNavStructure; ids: string[] } | undefined {\n try {\n const arrayOfEntries: GenerateActionsArrayOfEntries[] = [\n {\n objName: 'echarts',\n name: 'echarts',\n loop: 'preset',\n elements: [\n { name: 'preset' },\n { name: 'echartInstance' },\n { name: 'background' },\n { name: 'theme' },\n { name: 'filename' },\n ],\n },\n {\n objName: 'loc',\n name: 'location',\n loop: 'latitude',\n elements: [{ name: 'latitude' }, { name: 'longitude' }, { name: 'parse_mode', key: 0 }],\n },\n {\n objName: 'pic',\n name: 'sendPic',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'fileName' },\n { name: 'delay', value: 'picSendDelay' },\n ],\n },\n {\n objName: 'get',\n name: 'getData',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'text', type: 'text' },\n { name: 'newline', value: 'newline_checkbox' },\n { name: 'parse_mode', key: 0 },\n ],\n },\n {\n objName: 'httpRequest',\n name: 'httpRequest',\n loop: 'url',\n elements: [{ name: 'url' }, { name: 'user' }, { name: 'password' }, { name: 'filename' }],\n },\n ];\n\n const listOfSetStateIds: string[] = [];\n action.set.forEach(function (element, key) {\n if (key == 0) {\n userObject[element.trigger[0]] = { switch: [] };\n }\n userObject[element.trigger[0]] = { switch: [] };\n element.IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = element.switch_checkbox[index] === 'true';\n let value;\n\n if (element.values[index] === 'true' || element.values[index] === 'false') {\n value = element.values[index] === 'true';\n } else {\n value = element.values[index];\n }\n const newObj: Switch = {\n id: element.IDs[index],\n value: value.toString(),\n toggle: toggle,\n confirm: element.confirm[index],\n returnText: element.returnText[index],\n ack: element.ack ? element.ack[index] : 'false',\n parse_mode: element.parse_mode ? element.parse_mode[0] : 'false',\n };\n if (userObject[element.trigger[0]] && userObject[element.trigger[0]]?.switch) {\n userObject[element.trigger[0]].switch!.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n if (action[item.objName as keyof Actions]) {\n action[item.objName as keyof Actions].forEach(function (element, index: number) {\n userObject[element.trigger[0]] = { [item.name]: [] };\n if (index == 0) {\n userObject[element.trigger[0]] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (\n id: string,\n key: number,\n ) {\n const newObj: GenerateActionsNewObject = {};\n item.elements.forEach(elementItem => {\n const name = elementItem.name;\n const value = elementItem.value ? elementItem.value : elementItem.name;\n const newKey = elementItem.key ? elementItem.key : key;\n let val: string | boolean;\n\n if (!element[value as keyof typeof element]) {\n val = false;\n } else {\n val = element[value as keyof typeof element][newKey] || 'false';\n }\n\n if (elementItem.type == 'text' && typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&amp;/g, '&') as any;\n } else {\n newObj[name as keyof GenerateActionsNewObject] = val as any;\n }\n });\n if (item.name && typeof item.name === 'string') {\n userObject[element.trigger as NewObjectNavStructureKey][item?.name as keyof Part].push(\n newObj,\n );\n }\n });\n });\n }\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n error([\n { text: 'Error generateActions:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nfunction roundValue(val: string, textToSend: string): { val: string; textToSend: string } | undefined {\n try {\n const floatedNumber = parseFloat(val);\n const { substring, textWithoutSubstring } = decomposeText(textToSend, '{round:', '}');\n\n const decimalPlaces = substring.split(':')[1].replace('}', '');\n const floatedString = floatedNumber.toFixed(parseInt(decimalPlaces));\n return { val: floatedString, textToSend: textWithoutSubstring };\n } catch (err: any) {\n error([\n { text: 'Error roundValue:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nconst exchangePlaceholderWithValue = (textToSend: string, text: string | number): string => {\n let searchString = '';\n if (textToSend.includes('&&')) {\n searchString = '&&';\n } else if (textToSend.includes('&amp;&amp;')) {\n searchString = '&amp;&amp;';\n }\n searchString !== '' && textToSend.toString().indexOf(searchString) != -1\n ? (textToSend = textToSend.replace(searchString, text.toString()))\n : (textToSend += ` ${text}`);\n\n return textToSend;\n};\n\nconst adjustValueType = (value: keyof NewObjectNavStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value as string)) {\n error([{ text: 'Error: Value is not a number:', val: value }]);\n return false;\n }\n return parseFloat(value as string);\n }\n if (valueType == 'boolean') {\n if (value == 'true') {\n return true;\n }\n error([{ text: 'Error: Value is not a boolean:', val: value }]);\n return false;\n }\n return value;\n};\n\nconst checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n usersInGroup: UserInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu] && dataObject.action[menu].events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n if ((state.val == true || state.val == 'true') && event.condition == 'true') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if ((state.val == false || state.val == 'false') && event.condition[0] == 'false') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (typeof state.val == 'number' && state.val == parseInt(event.condition[0])) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (state.val == event.condition[0]) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (ok) {\n if (menuArray.length >= 1) {\n for (const menu of menuArray) {\n if (usersInGroup[menu] && menuData.data[menu][calledNav as keyof DataObject]) {\n for (const user of usersInGroup[menu]) {\n const part = menuData.data[menu][calledNav as keyof DataObject];\n const menus = Object.keys(menuData.data);\n if (part.nav) {\n backMenuFunc(calledNav, part.nav, user);\n }\n if (part && part.nav && JSON.stringify(part?.nav[0]).includes('menu:')) {\n await callSubMenu(\n JSON.stringify(part?.nav[0]),\n menuData,\n user,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n menuData.data,\n menus,\n null,\n );\n } else {\n await sendNav(\n part,\n user,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n }\n }\n }\n }\n }\n\n return ok;\n};\n\nconst getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | null => {\n let userToSend: string | null = null;\n\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n userToSend = element.name;\n debug([\n { text: 'User and ChatID:', val: element },\n { text: 'User:', val: userToSend },\n ]);\n break;\n }\n }\n\n return userToSend;\n};\nconst getMenusWithUserToSend = (menusWithUsers: MenusWithUsers, userToSend: string): NewObjectNavStructureKey[] => {\n const menus: NewObjectNavStructureKey[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport {\n editArrayButtons,\n idBySelector,\n generateNewObjectStructure,\n generateActions,\n calcValue,\n roundValue,\n bindingFunc,\n exchangePlaceholderWithValue,\n adjustValueType,\n checkEvent,\n getUserToSendFromUserListWithChatID,\n getMenusWithUserToSend,\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram.js';\nimport { decomposeText } from './global';\nimport { callSubMenu } from './subMenu.js';\nimport { sendNav } from './sendNav.js';\nimport { backMenuFunc } from './backMenu.js';\nimport { debug, error } from './logging.js';\nimport TelegramMenu from '../main.js';\nimport type {\n UserListWithChatId,\n BooleanString,\n BindingObject,\n EditArrayButtons,\n GeneratedNavMenu,\n Newline,\n NewObjectNavStructure,\n Actions,\n GenerateActionsArrayOfEntries,\n Switch,\n UserObjectActions,\n GenerateActionsNewObject,\n Part,\n DataObject,\n MenuData,\n UserInGroup,\n MenusWithUsers,\n} from '../types/types';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n): Promise<void> => {\n const _this = TelegramMenu.getInstance();\n let value;\n\n try {\n const substring = decomposeText(text, 'binding:', '}').substring;\n const arrayOfItems = substring.replace('binding:{', '').replace('}', '').split(';');\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const key = item.split(':')[0];\n const id = item.split(':')[1];\n\n const result = await _this.getForeignStateAsync(id);\n if (result) {\n bindingObject.values[key] = result.val?.toString() || '';\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n value = eval(item);\n }\n }\n await sendToTelegram({\n user: userToSend,\n textToSend: value,\n keyboard: undefined,\n instance: telegramInstance,\n resize_keyboard: one_time_keyboard,\n one_time_keyboard: resize_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: parse_mode,\n });\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nfunction calcValue(\n _this: TelegramMenu,\n textToSend: string,\n val: string,\n): { textToSend: string; val: string } | undefined {\n const { substring } = decomposeText(textToSend, '{math:', '}');\n const mathValue = substring.replace('{math:', '').replace('}', '');\n try {\n val = eval(val + mathValue);\n textToSend = textToSend.replace(substring, '');\n\n return { textToSend: textToSend, val: val };\n } catch (e: any) {\n error([\n { text: 'Error Eval:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction checkValueForOneLine(text: string): string {\n if (!text.includes('&&')) {\n return `${text}&&`;\n }\n return text;\n}\n\nfunction editArrayButtons(val: EditArrayButtons[], _this: TelegramMenu): GeneratedNavMenu[] | null {\n const newVal: GeneratedNavMenu[] = [];\n try {\n val.forEach(element => {\n let value = '';\n if (typeof element.value === 'string') {\n value = checkValueForOneLine(element.value);\n }\n let array: string[] | string[][] = [];\n if (value.indexOf('&&') != -1) {\n array = value.split('&&');\n }\n\n if (array.length > 1) {\n array.forEach(function (element, index: number) {\n if (typeof element === 'string') {\n let navArray = element.split(',');\n navArray = navArray.map(item => item.trim());\n array[index] = navArray;\n }\n });\n } else if (typeof element.value === 'string') {\n array = element.value.split(',');\n array.forEach(function (element, index: number) {\n array[index] = [element.trim()];\n });\n }\n\n newVal.push({ call: element.call, text: element.text, parse_mode: element.parse_mode, nav: array });\n });\n\n return newVal;\n } catch (err: any) {\n error([\n { text: 'Error EditArray:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nconst idBySelector = async (\n _this: TelegramMenu,\n selector: string,\n text: string,\n userToSend: string,\n newline: Newline,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): Promise<void> => {\n let text2Send = '';\n try {\n if (!selector.includes('functions')) {\n return;\n }\n\n const functions = selector.replace('functions=', '');\n let enums: string[] | undefined = [];\n const result = await _this.getEnumsAsync();\n\n if (!result || !result['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n const promises = enums.map(async (id: string) => {\n const value = await _this.getForeignStateAsync(id);\n if (value && value.val !== undefined && value.val !== null) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await _this.getForeignObjectAsync(id);\n _this.log.debug(`Name ${JSON.stringify(res?.common.name)}`);\n\n if (res && res.common.name) {\n newText = newText.replace('{common.name}', res.common.name as string);\n }\n }\n if (text.includes('&amp;&amp;')) {\n text2Send += newText.replace('&amp;&amp;', value.val as string);\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', value.val as string);\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n if (newline === 'true') {\n text2Send += ' \\n';\n } else {\n text2Send += ' ';\n }\n _this.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(() => {\n sendToTelegram({\n user: userToSend,\n textToSend: text2Send,\n keyboard: undefined,\n instance: telegramInstance,\n resize_keyboard: one_time_keyboard,\n one_time_keyboard: resize_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: 'false',\n }).catch(e => {\n error([\n { text: 'Error SendToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n debug([\n { text: 'TextToSend:', val: text2Send },\n { text: 'UserToSend:', val: userToSend },\n ]);\n })\n .catch(e => {\n error([\n { text: 'Error Promise:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n });\n } catch (error: any) {\n error([\n { text: 'Error idBySelector:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ]);\n }\n};\n\nfunction generateNewObjectStructure(val: GeneratedNavMenu[] | null): NewObjectNavStructure | null {\n try {\n if (!val) {\n return null;\n }\n const obj: NewObjectNavStructure = {};\n val.forEach(function (element) {\n const call = element.call;\n obj[call] = {\n nav: element.nav,\n text: element.text,\n parse_mode:\n element.parse_mode == 'true' || element.parse_mode == 'false' ? element.parse_mode : 'false',\n };\n });\n return obj;\n } catch (err: any) {\n error([\n { text: 'Error GenerateNewObjectStructure:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n return null;\n }\n}\n\nfunction generateActions(\n action: Actions,\n userObject: NewObjectNavStructure,\n): { obj: NewObjectNavStructure; ids: string[] } | undefined {\n try {\n const arrayOfEntries: GenerateActionsArrayOfEntries[] = [\n {\n objName: 'echarts',\n name: 'echarts',\n loop: 'preset',\n elements: [\n { name: 'preset' },\n { name: 'echartInstance' },\n { name: 'background' },\n { name: 'theme' },\n { name: 'filename' },\n ],\n },\n {\n objName: 'loc',\n name: 'location',\n loop: 'latitude',\n elements: [{ name: 'latitude' }, { name: 'longitude' }, { name: 'parse_mode', key: 0 }],\n },\n {\n objName: 'pic',\n name: 'sendPic',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'fileName' },\n { name: 'delay', value: 'picSendDelay' },\n ],\n },\n {\n objName: 'get',\n name: 'getData',\n loop: 'IDs',\n elements: [\n { name: 'id', value: 'IDs' },\n { name: 'text', type: 'text' },\n { name: 'newline', value: 'newline_checkbox' },\n { name: 'parse_mode', key: 0 },\n ],\n },\n {\n objName: 'httpRequest',\n name: 'httpRequest',\n loop: 'url',\n elements: [{ name: 'url' }, { name: 'user' }, { name: 'password' }, { name: 'filename' }],\n },\n ];\n\n const listOfSetStateIds: string[] = [];\n action.set.forEach(function (element, key) {\n if (key == 0) {\n userObject[element.trigger[0]] = { switch: [] };\n }\n userObject[element.trigger[0]] = { switch: [] };\n element.IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = element.switch_checkbox[index] === 'true';\n let value;\n\n if (element.values[index] === 'true' || element.values[index] === 'false') {\n value = element.values[index] === 'true';\n } else {\n value = element.values[index];\n }\n const newObj: Switch = {\n id: element.IDs[index],\n value: value.toString(),\n toggle: toggle,\n confirm: element.confirm[index],\n returnText: element.returnText[index],\n ack: element.ack ? element.ack[index] : 'false',\n parse_mode: element.parse_mode ? element.parse_mode[0] : 'false',\n };\n if (userObject[element.trigger[0]] && userObject[element.trigger[0]]?.switch) {\n userObject[element.trigger[0]].switch!.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n if (action[item.objName as keyof Actions]) {\n action[item.objName as keyof Actions].forEach(function (element, index: number) {\n userObject[element.trigger[0]] = { [item.name]: [] };\n if (index == 0) {\n userObject[element.trigger[0]] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (\n id: string,\n key: number,\n ) {\n const newObj: GenerateActionsNewObject = {};\n item.elements.forEach(elementItem => {\n const name = elementItem.name;\n const value = elementItem.value ? elementItem.value : elementItem.name;\n const newKey = elementItem.key ? elementItem.key : key;\n let val: string | boolean;\n\n if (!element[value as keyof typeof element]) {\n val = false;\n } else {\n val = element[value as keyof typeof element][newKey] || 'false';\n }\n\n if (elementItem.type == 'text' && typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&amp;/g, '&') as any;\n } else {\n newObj[name as keyof GenerateActionsNewObject] = val as any;\n }\n });\n if (item.name && typeof item.name === 'string') {\n userObject[element.trigger as string][item?.name as keyof Part].push(newObj);\n }\n });\n });\n }\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n error([\n { text: 'Error generateActions:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nfunction roundValue(val: string, textToSend: string): { val: string; textToSend: string } | undefined {\n try {\n const floatedNumber = parseFloat(val);\n const { substring, textWithoutSubstring } = decomposeText(textToSend, '{round:', '}');\n\n const decimalPlaces = substring.split(':')[1].replace('}', '');\n const floatedString = floatedNumber.toFixed(parseInt(decimalPlaces));\n return { val: floatedString, textToSend: textWithoutSubstring };\n } catch (err: any) {\n error([\n { text: 'Error roundValue:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n}\n\nconst exchangePlaceholderWithValue = (textToSend: string, text: string | number): string => {\n let searchString = '';\n if (textToSend.includes('&&')) {\n searchString = '&&';\n } else if (textToSend.includes('&amp;&amp;')) {\n searchString = '&amp;&amp;';\n }\n searchString !== '' && textToSend.toString().indexOf(searchString) != -1\n ? (textToSend = textToSend.replace(searchString, text.toString()))\n : (textToSend += ` ${text}`);\n\n return textToSend;\n};\n\nconst adjustValueType = (value: keyof NewObjectNavStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value as string)) {\n error([{ text: 'Error: Value is not a number:', val: value }]);\n return false;\n }\n return parseFloat(value as string);\n }\n if (valueType == 'boolean') {\n if (value == 'true') {\n return true;\n }\n error([{ text: 'Error: Value is not a boolean:', val: value }]);\n return false;\n }\n return value;\n};\n\nconst checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n usersInGroup: UserInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu] && dataObject.action[menu].events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n if ((state.val == true || state.val == 'true') && event.condition == 'true') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if ((state.val == false || state.val == 'false') && event.condition[0] == 'false') {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (typeof state.val == 'number' && state.val == parseInt(event.condition[0])) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n } else if (state.val == event.condition[0]) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (ok) {\n if (menuArray.length >= 1) {\n for (const menu of menuArray) {\n if (usersInGroup[menu] && menuData.data[menu][calledNav as keyof DataObject]) {\n for (const user of usersInGroup[menu]) {\n const part = menuData.data[menu][calledNav as keyof DataObject];\n const menus = Object.keys(menuData.data);\n if (part.nav) {\n backMenuFunc(calledNav, part.nav, user);\n }\n if (part?.nav && part?.nav[0][0].includes('menu:')) {\n await callSubMenu(\n JSON.stringify(part?.nav[0]),\n menuData,\n user,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n menuData.data,\n menus,\n null,\n part.nav,\n );\n } else {\n await sendNav(\n part,\n user,\n instanceTelegram,\n userListWithChatID,\n resize_keyboard,\n one_time_keyboard,\n );\n }\n }\n }\n }\n }\n }\n\n return ok;\n};\n\nconst getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | null => {\n let userToSend: string | null = null;\n\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n userToSend = element.name;\n break;\n }\n }\n\n return userToSend;\n};\nconst getMenusWithUserToSend = (menusWithUsers: MenusWithUsers, userToSend: string): string[] => {\n const menus: string[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport {\n editArrayButtons,\n idBySelector,\n generateNewObjectStructure,\n generateActions,\n calcValue,\n roundValue,\n bindingFunc,\n exchangePlaceholderWithValue,\n adjustValueType,\n checkEvent,\n getUserToSendFromUserListWithChatID,\n getMenusWithUserToSend,\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["TelegramMenu", "text", "val", "_this", "value", "element", "item", "userToSend", "telegramInstance", "one_time_keyboard", "resize_keyboard", "userListWithChatID", "error", "textToSend", "substring"]
7
7
  }
@@ -32,16 +32,16 @@ async function adapterStartMenuSend(listOfMenus, startSides, userActiveCheckbox,
32
32
  for (const user of menusWithUsers[menu]) {
33
33
  (0, import_backMenu.backMenuFunc)(startSide, menuData.data[menu][startSide].nav, user);
34
34
  (0, import_logging.debug)([{ text: "User List:", val: userListWithChatID }]);
35
- await (0, import_telegram.sendToTelegram)(
35
+ await (0, import_telegram.sendToTelegram)({
36
36
  user,
37
- menuData.data[menu][startSide].text,
38
- menuData.data[menu][startSide].nav,
39
- instanceTelegram,
37
+ textToSend: menuData.data[menu][startSide].text,
38
+ keyboard: menuData.data[menu][startSide].nav,
39
+ instance: instanceTelegram,
40
40
  resize_keyboard,
41
41
  one_time_keyboard,
42
42
  userListWithChatID,
43
- menuData.data[menu][startSide].parse_mode
44
- );
43
+ parse_mode: menuData.data[menu][startSide].parse_mode
44
+ });
45
45
  }
46
46
  } else {
47
47
  if (startSide == "-") {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/adapterStartMenuSend.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { backMenuFunc } from './backMenu';\nimport { debug } from './logging';\nimport type {\n ListOfMenus,\n StartSides,\n IsUserActiveCheckbox,\n MenusWithUsers,\n MenuData,\n UserListWithChatId,\n NavPart,\n BooleanString,\n} from './telegram-menu';\nasync function adapterStartMenuSend(\n listOfMenus: ListOfMenus,\n startSides: StartSides,\n userActiveCheckbox: IsUserActiveCheckbox,\n menusWithUsers: MenusWithUsers,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n for (const menu of listOfMenus) {\n const startSide = [startSides[menu]].toString();\n\n if (userActiveCheckbox[menu] && startSide != '-' && startSide != '') {\n debug([{ text: 'Startseite:', val: startSide }]);\n for (const user of menusWithUsers[menu]) {\n backMenuFunc(startSide, menuData.data[menu][startSide].nav as NavPart, user);\n debug([{ text: 'User List:', val: userListWithChatID }]);\n\n await sendToTelegram(\n user,\n menuData.data[menu][startSide].text as string,\n menuData.data[menu][startSide].nav,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n menuData.data[menu][startSide].parse_mode as BooleanString,\n );\n }\n } else {\n if (startSide == '-') {\n debug([{ text: `Menu \"${menu}\" is a Submenu.` }]);\n continue;\n }\n debug([{ text: `Menu \"${menu}\" is inactive.` }]);\n }\n }\n}\nexport { adapterStartMenuSend };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,sBAA6B;AAC7B,qBAAsB;AAWtB,eAAe,qBACX,aACA,YACA,oBACA,gBACA,UACA,oBACA,kBACA,iBACA,mBACa;AACb,aAAW,QAAQ,aAAa;AAC5B,UAAM,YAAY,CAAC,WAAW,IAAI,CAAC,EAAE,SAAS;AAE9C,QAAI,mBAAmB,IAAI,KAAK,aAAa,OAAO,aAAa,IAAI;AACjE,gCAAM,CAAC,EAAE,MAAM,eAAe,KAAK,UAAU,CAAC,CAAC;AAC/C,iBAAW,QAAQ,eAAe,IAAI,GAAG;AACrC,0CAAa,WAAW,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE,KAAgB,IAAI;AAC3E,kCAAM,CAAC,EAAE,MAAM,cAAc,KAAK,mBAAmB,CAAC,CAAC;AAEvD,kBAAM;AAAA,UACF;AAAA,UACA,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,UAC/B,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,UAC/B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,QACnC;AAAA,MACJ;AAAA,IACJ,OAAO;AACH,UAAI,aAAa,KAAK;AAClB,kCAAM,CAAC,EAAE,MAAM,SAAS,IAAI,kBAAkB,CAAC,CAAC;AAChD;AAAA,MACJ;AACA,gCAAM,CAAC,EAAE,MAAM,SAAS,IAAI,iBAAiB,CAAC,CAAC;AAAA,IACnD;AAAA,EACJ;AACJ;",
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { backMenuFunc } from './backMenu';\nimport { debug } from './logging';\nimport type {\n ListOfMenus,\n StartSides,\n IsUserActiveCheckbox,\n MenusWithUsers,\n MenuData,\n UserListWithChatId,\n NavPart,\n BooleanString,\n} from '../types/types';\nasync function adapterStartMenuSend(\n listOfMenus: ListOfMenus,\n startSides: StartSides,\n userActiveCheckbox: IsUserActiveCheckbox,\n menusWithUsers: MenusWithUsers,\n menuData: MenuData,\n userListWithChatID: UserListWithChatId[],\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): Promise<void> {\n for (const menu of listOfMenus) {\n const startSide = [startSides[menu]].toString();\n\n if (userActiveCheckbox[menu] && startSide != '-' && startSide != '') {\n debug([{ text: 'Startseite:', val: startSide }]);\n for (const user of menusWithUsers[menu]) {\n backMenuFunc(startSide, menuData.data[menu][startSide].nav as NavPart, user);\n debug([{ text: 'User List:', val: userListWithChatID }]);\n\n await sendToTelegram({\n user: user,\n textToSend: menuData.data[menu][startSide].text as string,\n keyboard: menuData.data[menu][startSide].nav,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: menuData.data[menu][startSide].parse_mode as BooleanString,\n });\n }\n } else {\n if (startSide == '-') {\n debug([{ text: `Menu \"${menu}\" is a Submenu.` }]);\n continue;\n }\n debug([{ text: `Menu \"${menu}\" is inactive.` }]);\n }\n }\n}\nexport { adapterStartMenuSend };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA+B;AAC/B,sBAA6B;AAC7B,qBAAsB;AAWtB,eAAe,qBACX,aACA,YACA,oBACA,gBACA,UACA,oBACA,kBACA,iBACA,mBACa;AACb,aAAW,QAAQ,aAAa;AAC5B,UAAM,YAAY,CAAC,WAAW,IAAI,CAAC,EAAE,SAAS;AAE9C,QAAI,mBAAmB,IAAI,KAAK,aAAa,OAAO,aAAa,IAAI;AACjE,gCAAM,CAAC,EAAE,MAAM,eAAe,KAAK,UAAU,CAAC,CAAC;AAC/C,iBAAW,QAAQ,eAAe,IAAI,GAAG;AACrC,0CAAa,WAAW,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE,KAAgB,IAAI;AAC3E,kCAAM,CAAC,EAAE,MAAM,cAAc,KAAK,mBAAmB,CAAC,CAAC;AAEvD,kBAAM,gCAAe;AAAA,UACjB;AAAA,UACA,YAAY,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,UAC3C,UAAU,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,UACzC,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,SAAS,KAAK,IAAI,EAAE,SAAS,EAAE;AAAA,QAC/C,CAAC;AAAA,MACL;AAAA,IACJ,OAAO;AACH,UAAI,aAAa,KAAK;AAClB,kCAAM,CAAC,EAAE,MAAM,SAAS,IAAI,kBAAkB,CAAC,CAAC;AAChD;AAAA,MACJ;AACA,gCAAM,CAAC,EAAE,MAAM,SAAS,IAAI,iBAAiB,CAAC,CAAC;AAAA,IACnD;AAAA,EACJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,158 @@
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 appUtils_exports = {};
20
+ __export(appUtils_exports, {
21
+ calcValue: () => calcValue,
22
+ checkOneLineValue: () => checkOneLineValue,
23
+ exchangePlaceholderWithValue: () => exchangePlaceholderWithValue,
24
+ getListOfMenusIncludingUser: () => getListOfMenusIncludingUser,
25
+ getNewStructure: () => getNewStructure,
26
+ getParseMode: () => getParseMode,
27
+ getStartSides: () => getStartSides,
28
+ getTypeofTimestamp: () => getTypeofTimestamp,
29
+ isNoTypeDefined: () => isNoTypeDefined,
30
+ isStartside: () => isStartside,
31
+ roundValue: () => roundValue,
32
+ splitNavigation: () => splitNavigation,
33
+ statusIdAndParams: () => statusIdAndParams,
34
+ timeStringReplacer: () => timeStringReplacer
35
+ });
36
+ module.exports = __toCommonJS(appUtils_exports);
37
+ var import_config = require("../config/config");
38
+ var import_string = require("./string");
39
+ var import_math = require("./math");
40
+ var import_utils = require("./utils");
41
+ var import_object = require("./object");
42
+ var import_appUtilsString = require("./appUtilsString");
43
+ const checkOneLineValue = (text) => !text.includes(import_config.config.rowSplitter) ? `${text} ${import_config.config.rowSplitter}` : text;
44
+ function calcValue(textToSend, val, adapter) {
45
+ const { substringExcludeSearch, textExcludeSubstring } = (0, import_string.decomposeText)(
46
+ textToSend,
47
+ import_config.config.math.start,
48
+ import_config.config.math.end
49
+ );
50
+ const { val: evalVal, error } = (0, import_math.evaluate)([val, substringExcludeSearch], adapter);
51
+ return error ? { textToSend: textExcludeSubstring, calculated: val, error } : { textToSend: textExcludeSubstring, calculated: evalVal, error };
52
+ }
53
+ function roundValue(val, textToSend) {
54
+ const floatVal = parseFloat(val);
55
+ const { textExcludeSubstring, substringExcludeSearch: decimalPlaces } = (0, import_string.decomposeText)(
56
+ textToSend,
57
+ import_config.config.round.start,
58
+ import_config.config.round.end
59
+ );
60
+ const decimalPlacesNum = parseInt(decimalPlaces);
61
+ if (isNaN(floatVal)) {
62
+ return { roundedValue: "NaN", text: textExcludeSubstring, error: true };
63
+ }
64
+ if (isNaN(decimalPlacesNum)) {
65
+ return { roundedValue: val, text: textExcludeSubstring, error: true };
66
+ }
67
+ return { roundedValue: floatVal.toFixed(decimalPlacesNum), text: textExcludeSubstring, error: false };
68
+ }
69
+ const getListOfMenusIncludingUser = (menusWithUsers, userToSend) => {
70
+ const menus = [];
71
+ for (const key in menusWithUsers) {
72
+ if (menusWithUsers[key].includes(userToSend)) {
73
+ menus.push(key);
74
+ }
75
+ }
76
+ return menus;
77
+ };
78
+ const getParseMode = (val = false) => val ? "HTML" : "Markdown";
79
+ const getTypeofTimestamp = (val) => val.includes("lc") ? "lc" : "ts";
80
+ const timeStringReplacer = ({ d, h, m, ms, y, s, mo }, string) => {
81
+ if (string) {
82
+ string = string.replace("sss", ms).replace("ss", s).replace("mm", m).replace("hh", h).replace("DD", d).replace("MM", mo).replace("YYYY", y).replace("YY", y.slice(-2)).replace("(", "").replace(")", "");
83
+ }
84
+ return string;
85
+ };
86
+ function statusIdAndParams(substringExcludeSearch) {
87
+ var _a, _b;
88
+ const splitArray = substringExcludeSearch.split(":");
89
+ const firstEl = splitArray[0];
90
+ const secondEl = (_a = splitArray[1]) != null ? _a : "";
91
+ const thirdEl = (_b = splitArray[2]) != null ? _b : "";
92
+ return substringExcludeSearch.includes(import_config.config.status.oldWithId) ? {
93
+ id: (0, import_string.removeQuotes)(secondEl),
94
+ //'id':'ID':true
95
+ shouldChange: (0, import_utils.isTruthy)((0, import_string.removeQuotes)(thirdEl))
96
+ } : {
97
+ id: (0, import_string.removeQuotes)(firstEl),
98
+ //'ID':true
99
+ shouldChange: (0, import_utils.isTruthy)((0, import_string.removeQuotes)(secondEl))
100
+ };
101
+ }
102
+ function isStartside(startSide) {
103
+ return startSide != "-" && startSide != "";
104
+ }
105
+ function splitNavigation(rows) {
106
+ const generatedNavigation = [];
107
+ rows.forEach(({ value, text, parse_mode, call }) => {
108
+ const nav = [];
109
+ checkOneLineValue(value).split(import_config.config.rowSplitter).forEach(function(el, index) {
110
+ nav[index] = (0, import_object.trimAllItems)(el.split(","));
111
+ });
112
+ generatedNavigation.push({ call, text, parse_mode: (0, import_utils.isTruthy)(parse_mode), nav });
113
+ });
114
+ return generatedNavigation;
115
+ }
116
+ function getNewStructure(val) {
117
+ const obj = {};
118
+ val.forEach(function({ nav, text, parse_mode, call }) {
119
+ obj[call] = { nav, text, parse_mode };
120
+ });
121
+ return obj;
122
+ }
123
+ const getStartSides = (menusWithUsers, dataObject) => {
124
+ const startSides = {};
125
+ Object.keys(menusWithUsers).forEach((element) => {
126
+ startSides[element] = dataObject.nav[element][0].call;
127
+ });
128
+ return startSides;
129
+ };
130
+ const exchangePlaceholderWithValue = (textToSend, val) => {
131
+ const searchString = (0, import_appUtilsString.getPlaceholderValue)(textToSend);
132
+ if (searchString !== "") {
133
+ return textToSend.replace(searchString, val.toString()).trim();
134
+ }
135
+ return `${textToSend} ${val}`.trim();
136
+ };
137
+ function isNoTypeDefined(receivedType, obj) {
138
+ var _a, _b;
139
+ return receivedType === ((_a = obj == null ? void 0 : obj.common) == null ? void 0 : _a.type) || !((_b = obj == null ? void 0 : obj.common) == null ? void 0 : _b.type);
140
+ }
141
+ // Annotate the CommonJS export names for ESM import in node:
142
+ 0 && (module.exports = {
143
+ calcValue,
144
+ checkOneLineValue,
145
+ exchangePlaceholderWithValue,
146
+ getListOfMenusIncludingUser,
147
+ getNewStructure,
148
+ getParseMode,
149
+ getStartSides,
150
+ getTypeofTimestamp,
151
+ isNoTypeDefined,
152
+ isStartside,
153
+ roundValue,
154
+ splitNavigation,
155
+ statusIdAndParams,
156
+ timeStringReplacer
157
+ });
158
+ //# sourceMappingURL=appUtils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/appUtils.ts"],
4
+ "sourcesContent": ["import { config } from '../config/config';\nimport type {\n Adapter,\n DataObject,\n GetTimeWithPad,\n MenusWithUsers,\n Navigation,\n NavigationRow,\n NewObjectStructure,\n ParseModeType,\n PrimitiveType,\n splittedNavigation,\n StartSides,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText, removeQuotes } from './string';\nimport { evaluate } from './math';\nimport { isTruthy } from './utils';\nimport { trimAllItems } from './object';\nimport { getPlaceholderValue } from './appUtilsString';\n\nexport const checkOneLineValue = (text: string): string =>\n !text.includes(config.rowSplitter) ? `${text} ${config.rowSplitter}` : text;\n\nexport function calcValue(\n textToSend: string,\n val: string,\n adapter: Adapter,\n): { textToSend: string; calculated: any; error: boolean } {\n const { substringExcludeSearch, textExcludeSubstring } = decomposeText(\n textToSend,\n config.math.start,\n config.math.end,\n );\n const { val: evalVal, error } = evaluate([val, substringExcludeSearch], adapter);\n\n return error\n ? { textToSend: textExcludeSubstring, calculated: val, error }\n : { textToSend: textExcludeSubstring, calculated: evalVal, error };\n}\n\nexport function roundValue(val: string, textToSend: string): { roundedValue: string; text: string; error: boolean } {\n const floatVal = parseFloat(val);\n const { textExcludeSubstring, substringExcludeSearch: decimalPlaces } = decomposeText(\n textToSend,\n config.round.start,\n config.round.end,\n );\n const decimalPlacesNum = parseInt(decimalPlaces);\n\n if (isNaN(floatVal)) {\n return { roundedValue: 'NaN', text: textExcludeSubstring, error: true };\n }\n if (isNaN(decimalPlacesNum)) {\n return { roundedValue: val, text: textExcludeSubstring, error: true };\n }\n\n return { roundedValue: floatVal.toFixed(decimalPlacesNum), text: textExcludeSubstring, error: false };\n}\n\nexport const getListOfMenusIncludingUser = (menusWithUsers: MenusWithUsers, userToSend: string): string[] => {\n const menus: string[] = [];\n for (const key in menusWithUsers) {\n if (menusWithUsers[key].includes(userToSend)) {\n menus.push(key);\n }\n }\n return menus;\n};\n\nexport const getParseMode = (val = false): ParseModeType => (val ? 'HTML' : 'Markdown');\n\nexport const getTypeofTimestamp = (val: string): 'lc' | 'ts' => (val.includes('lc') ? 'lc' : 'ts');\n\nexport const timeStringReplacer = ({ d, h, m, ms, y, s, mo }: GetTimeWithPad, string?: string): string | undefined => {\n if (string) {\n string = string\n .replace('sss', ms)\n .replace('ss', s)\n .replace('mm', m)\n .replace('hh', h)\n .replace('DD', d)\n .replace('MM', mo)\n .replace('YYYY', y)\n .replace('YY', y.slice(-2))\n .replace('(', '')\n .replace(')', '');\n }\n return string;\n};\n\nexport function statusIdAndParams(substringExcludeSearch: string): { id: string; shouldChange: boolean } {\n const splitArray = substringExcludeSearch.split(':');\n const firstEl = splitArray[0];\n const secondEl = splitArray[1] ?? '';\n const thirdEl = splitArray[2] ?? '';\n return substringExcludeSearch.includes(config.status.oldWithId)\n ? {\n id: removeQuotes(secondEl), //'id':'ID':true\n shouldChange: isTruthy(removeQuotes(thirdEl)),\n }\n : {\n id: removeQuotes(firstEl), //'ID':true\n shouldChange: isTruthy(removeQuotes(secondEl)),\n };\n}\n\nexport function isStartside(startSide: string): boolean {\n return startSide != '-' && startSide != '';\n}\n\nexport function splitNavigation(rows: NavigationRow[]): splittedNavigation[] {\n const generatedNavigation: splittedNavigation[] = [];\n\n rows.forEach(({ value, text, parse_mode, call }) => {\n const nav: Navigation = [];\n\n checkOneLineValue(value)\n .split(config.rowSplitter)\n .forEach(function (el, index: number) {\n nav[index] = trimAllItems(el.split(','));\n });\n\n generatedNavigation.push({ call, text, parse_mode: isTruthy(parse_mode), nav });\n });\n return generatedNavigation;\n}\n\nexport function getNewStructure(val: splittedNavigation[]): NewObjectStructure {\n const obj: NewObjectStructure = {};\n val.forEach(function ({ nav, text, parse_mode, call }) {\n obj[call] = { nav, text, parse_mode };\n });\n return obj;\n}\n\nexport const getStartSides = (menusWithUsers: UsersInGroup, dataObject: DataObject): StartSides => {\n const startSides: StartSides = {};\n Object.keys(menusWithUsers).forEach(element => {\n startSides[element] = dataObject.nav[element][0].call;\n });\n return startSides;\n};\n\nexport const exchangePlaceholderWithValue = (textToSend: string, val: PrimitiveType): string => {\n const searchString = getPlaceholderValue(textToSend);\n if (searchString !== '') {\n return textToSend.replace(searchString, val.toString()).trim();\n }\n return `${textToSend} ${val}`.trim();\n};\n\nexport function isNoTypeDefined(\n receivedType: 'undefined' | 'object' | 'boolean' | 'number' | 'string' | 'function' | 'symbol' | 'bigint',\n obj?: ioBroker.Object | null,\n): boolean {\n return receivedType === obj?.common?.type || !obj?.common?.type;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,37 @@
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 appUtilsString_exports = {};
20
+ __export(appUtilsString_exports, {
21
+ getPlaceholderValue: () => getPlaceholderValue
22
+ });
23
+ module.exports = __toCommonJS(appUtilsString_exports);
24
+ function getPlaceholderValue(textToSend) {
25
+ if (textToSend.includes("&&")) {
26
+ return "&&";
27
+ }
28
+ if (textToSend.includes("&amp;&amp;")) {
29
+ return "&amp;&amp;";
30
+ }
31
+ return "";
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ getPlaceholderValue
36
+ });
37
+ //# sourceMappingURL=appUtilsString.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/appUtilsString.ts"],
4
+ "sourcesContent": ["export function getPlaceholderValue(textToSend: string): string {\n if (textToSend.includes('&&')) {\n return '&&';\n }\n if (textToSend.includes('&amp;&amp;')) {\n return '&amp;&amp;';\n }\n return '';\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,oBAAoB,YAA4B;AAC5D,MAAI,WAAW,SAAS,IAAI,GAAG;AAC3B,WAAO;AAAA,EACX;AACA,MAAI,WAAW,SAAS,YAAY,GAAG;AACnC,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
6
+ "names": []
7
+ }
@@ -43,23 +43,23 @@ async function switchBack(userToSend, allMenusWithData, menus, lastMenu = false)
43
43
  var _a, _b, _c, _d;
44
44
  try {
45
45
  const list = backMenu[userToSend] && ((_a = backMenu[userToSend]) == null ? void 0 : _a.list) ? backMenu[userToSend].list : [];
46
- let menuToSend = [];
46
+ let keyboard = { inline_keyboard: [] };
47
47
  let foundedMenu = "";
48
48
  if (list.length != 0) {
49
49
  for (const menu of menus) {
50
50
  if (lastMenu && ((_c = (_b = allMenusWithData[menu]) == null ? void 0 : _b[backMenu[userToSend].last]) == null ? void 0 : _c.nav)) {
51
- menuToSend = allMenusWithData[menu][backMenu[userToSend].last].nav;
51
+ keyboard = allMenusWithData[menu][backMenu[userToSend].last].nav;
52
52
  foundedMenu = menu;
53
53
  break;
54
54
  } else if (((_d = allMenusWithData[menu][list[list.length - 1]]) == null ? void 0 : _d.nav) && !lastMenu) {
55
- menuToSend = allMenusWithData[menu][list[list.length - 1]].nav;
55
+ keyboard = allMenusWithData[menu][list[list.length - 1]].nav;
56
56
  (0, import_logging.debug)([{ text: "Menu call found" }]);
57
57
  foundedMenu = menu;
58
58
  break;
59
59
  }
60
60
  (0, import_logging.debug)([{ text: "Menu call not found in this Menu" }]);
61
61
  }
62
- if (menuToSend && foundedMenu != "") {
62
+ if (keyboard && foundedMenu != "") {
63
63
  let parseMode = "";
64
64
  if (!lastMenu) {
65
65
  let textToSend = allMenusWithData[foundedMenu][backMenu[userToSend].list[backMenu[userToSend].list.length - 1]].text;
@@ -68,12 +68,12 @@ async function switchBack(userToSend, allMenusWithData, menus, lastMenu = false)
68
68
  }
69
69
  parseMode = allMenusWithData[foundedMenu][backMenu[userToSend].list[backMenu[userToSend].list.length - 1]].parse_mode || "false";
70
70
  backMenu[userToSend].last = list.pop();
71
- return { texttosend: textToSend, menuToSend, parseMode };
71
+ return { texttosend: textToSend, menuToSend: keyboard, parseMode };
72
72
  }
73
73
  parseMode = allMenusWithData[foundedMenu][backMenu[userToSend].last].parse_mode || "false";
74
74
  return {
75
75
  texttosend: allMenusWithData[foundedMenu][backMenu[userToSend].last].text,
76
- menuToSend,
76
+ menuToSend: keyboard,
77
77
  parseMode
78
78
  };
79
79
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/backMenu.ts"],
4
- "sourcesContent": ["import { debug, error } from './logging';\nimport type { BackMenu, NavPart, AllMenusWithData, BooleanString } from './telegram-menu';\nimport { checkStatusInfo } from './utilities';\nconst backMenu: BackMenu = {};\n\nfunction backMenuFunc(nav: string, part: NavPart, userToSend: string): void {\n if (!part || !JSON.stringify(part).split(`\"`)[1].includes('menu:')) {\n if (backMenu[userToSend] && backMenu[userToSend].list.length === 20) {\n backMenu[userToSend].list.shift();\n } else if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n if (backMenu[userToSend].last !== '') {\n backMenu[userToSend].list.push(backMenu[userToSend].last);\n }\n backMenu[userToSend].last = nav;\n }\n debug([{ text: 'GoBackMenu', val: backMenu }]);\n}\n\nasync function switchBack(\n userToSend: string,\n allMenusWithData: AllMenusWithData,\n menus: string[],\n lastMenu = false,\n): Promise<{ texttosend: string | undefined; menuToSend: NavPart; parseMode: BooleanString } | undefined> {\n try {\n const list = backMenu[userToSend] && backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n let menuToSend: NavPart | undefined = [];\n let foundedMenu = '';\n if (list.length != 0) {\n for (const menu of menus) {\n if (lastMenu && allMenusWithData[menu]?.[backMenu[userToSend].last]?.nav) {\n menuToSend = allMenusWithData[menu][backMenu[userToSend].last].nav;\n foundedMenu = menu;\n break;\n } else if (allMenusWithData[menu][list[list.length - 1]]?.nav && !lastMenu) {\n menuToSend = allMenusWithData[menu][list[list.length - 1]].nav;\n debug([{ text: 'Menu call found' }]);\n foundedMenu = menu;\n break;\n }\n debug([{ text: 'Menu call not found in this Menu' }]);\n }\n if (menuToSend && foundedMenu != '') {\n let parseMode: BooleanString = '' as BooleanString;\n if (!lastMenu) {\n let textToSend =\n allMenusWithData[foundedMenu][backMenu[userToSend].list[backMenu[userToSend].list.length - 1]]\n .text;\n if (textToSend) {\n textToSend = await checkStatusInfo(textToSend);\n }\n parseMode =\n allMenusWithData[foundedMenu][backMenu[userToSend].list[backMenu[userToSend].list.length - 1]]\n .parse_mode || 'false';\n backMenu[userToSend].last = list.pop();\n\n return { texttosend: textToSend, menuToSend: menuToSend, parseMode: parseMode };\n }\n parseMode = allMenusWithData[foundedMenu][backMenu[userToSend].last].parse_mode || 'false';\n return {\n texttosend: allMenusWithData[foundedMenu][backMenu[userToSend].last].text,\n menuToSend: menuToSend,\n parseMode: parseMode,\n };\n }\n }\n } catch (e: any) {\n error([\n { text: 'Error in switchBack:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { switchBack, backMenuFunc };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA6B;AAE7B,uBAAgC;AAChC,MAAM,WAAqB,CAAC;AAE5B,SAAS,aAAa,KAAa,MAAe,YAA0B;AACxE,MAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AAChE,QAAI,SAAS,UAAU,KAAK,SAAS,UAAU,EAAE,KAAK,WAAW,IAAI;AACjE,eAAS,UAAU,EAAE,KAAK,MAAM;AAAA,IACpC,WAAW,CAAC,SAAS,UAAU,GAAG;AAC9B,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AACA,QAAI,SAAS,UAAU,EAAE,SAAS,IAAI;AAClC,eAAS,UAAU,EAAE,KAAK,KAAK,SAAS,UAAU,EAAE,IAAI;AAAA,IAC5D;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACA,4BAAM,CAAC,EAAE,MAAM,cAAc,KAAK,SAAS,CAAC,CAAC;AACjD;AAEA,eAAe,WACX,YACA,kBACA,OACA,WAAW,OAC2F;AAzB1G;AA0BI,MAAI;AACA,UAAM,OAAO,SAAS,UAAU,OAAK,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AAC/F,QAAI,aAAkC,CAAC;AACvC,QAAI,cAAc;AAClB,QAAI,KAAK,UAAU,GAAG;AAClB,iBAAW,QAAQ,OAAO;AACtB,YAAI,cAAY,4BAAiB,IAAI,MAArB,mBAAyB,SAAS,UAAU,EAAE,UAA9C,mBAAqD,MAAK;AACtE,uBAAa,iBAAiB,IAAI,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAC/D,wBAAc;AACd;AAAA,QACJ,aAAW,sBAAiB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,MAA5C,mBAA+C,QAAO,CAAC,UAAU;AACxE,uBAAa,iBAAiB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE;AAC3D,oCAAM,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC;AACnC,wBAAc;AACd;AAAA,QACJ;AACA,kCAAM,CAAC,EAAE,MAAM,mCAAmC,CAAC,CAAC;AAAA,MACxD;AACA,UAAI,cAAc,eAAe,IAAI;AACjC,YAAI,YAA2B;AAC/B,YAAI,CAAC,UAAU;AACX,cAAI,aACA,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC,CAAC,EACxF;AACT,cAAI,YAAY;AACZ,yBAAa,UAAM,kCAAgB,UAAU;AAAA,UACjD;AACA,sBACI,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC,CAAC,EACxF,cAAc;AACvB,mBAAS,UAAU,EAAE,OAAO,KAAK,IAAI;AAErC,iBAAO,EAAE,YAAY,YAAY,YAAwB,UAAqB;AAAA,QAClF;AACA,oBAAY,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,cAAc;AACnF,eAAO;AAAA,UACH,YAAY,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAAA,UACrE;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,wBAAwB,KAAK,EAAE,QAAQ;AAAA,MAC/C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
4
+ "sourcesContent": ["import { debug, error } from './logging';\nimport type { BackMenu, NavPart, AllMenusWithData, BooleanString, Keyboard } from '../types/types';\nimport { checkStatusInfo } from './utilities';\nconst backMenu: BackMenu = {};\n\nfunction backMenuFunc(nav: string, part: NavPart, userToSend: string): void {\n if (!part || !JSON.stringify(part).split(`\"`)[1].includes('menu:')) {\n if (backMenu[userToSend] && backMenu[userToSend].list.length === 20) {\n backMenu[userToSend].list.shift();\n } else if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n if (backMenu[userToSend].last !== '') {\n backMenu[userToSend].list.push(backMenu[userToSend].last);\n }\n backMenu[userToSend].last = nav;\n }\n debug([{ text: 'GoBackMenu', val: backMenu }]);\n}\n\nasync function switchBack(\n userToSend: string,\n allMenusWithData: AllMenusWithData,\n menus: string[],\n lastMenu = false,\n): Promise<{ texttosend: string | undefined; menuToSend: Keyboard; parseMode: BooleanString } | undefined> {\n try {\n const list = backMenu[userToSend] && backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n let keyboard: Keyboard = { inline_keyboard: [] };\n let foundedMenu = '';\n if (list.length != 0) {\n for (const menu of menus) {\n if (lastMenu && allMenusWithData[menu]?.[backMenu[userToSend].last]?.nav) {\n keyboard = allMenusWithData[menu][backMenu[userToSend].last].nav;\n foundedMenu = menu;\n break;\n } else if (allMenusWithData[menu][list[list.length - 1]]?.nav && !lastMenu) {\n keyboard = allMenusWithData[menu][list[list.length - 1]].nav;\n debug([{ text: 'Menu call found' }]);\n foundedMenu = menu;\n break;\n }\n debug([{ text: 'Menu call not found in this Menu' }]);\n }\n if (keyboard && foundedMenu != '') {\n let parseMode: BooleanString = '' as BooleanString;\n if (!lastMenu) {\n let textToSend = allMenusWithData[foundedMenu][\n backMenu[userToSend].list[backMenu[userToSend].list.length - 1]\n ].text as string | undefined;\n if (textToSend) {\n textToSend = await checkStatusInfo(textToSend);\n }\n parseMode = (allMenusWithData[foundedMenu][\n backMenu[userToSend].list[backMenu[userToSend].list.length - 1]\n ].parse_mode || 'false') as BooleanString;\n backMenu[userToSend].last = list.pop();\n\n return { texttosend: textToSend, menuToSend: keyboard, parseMode: parseMode };\n }\n parseMode = (allMenusWithData[foundedMenu][backMenu[userToSend].last].parse_mode ||\n 'false') as BooleanString;\n return {\n texttosend: allMenusWithData[foundedMenu][backMenu[userToSend].last].text as string,\n menuToSend: keyboard,\n parseMode: parseMode,\n };\n }\n }\n } catch (e: any) {\n error([\n { text: 'Error in switchBack:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { switchBack, backMenuFunc };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA6B;AAE7B,uBAAgC;AAChC,MAAM,WAAqB,CAAC;AAE5B,SAAS,aAAa,KAAa,MAAe,YAA0B;AACxE,MAAI,CAAC,QAAQ,CAAC,KAAK,UAAU,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AAChE,QAAI,SAAS,UAAU,KAAK,SAAS,UAAU,EAAE,KAAK,WAAW,IAAI;AACjE,eAAS,UAAU,EAAE,KAAK,MAAM;AAAA,IACpC,WAAW,CAAC,SAAS,UAAU,GAAG;AAC9B,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AACA,QAAI,SAAS,UAAU,EAAE,SAAS,IAAI;AAClC,eAAS,UAAU,EAAE,KAAK,KAAK,SAAS,UAAU,EAAE,IAAI;AAAA,IAC5D;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACA,4BAAM,CAAC,EAAE,MAAM,cAAc,KAAK,SAAS,CAAC,CAAC;AACjD;AAEA,eAAe,WACX,YACA,kBACA,OACA,WAAW,OAC4F;AAzB3G;AA0BI,MAAI;AACA,UAAM,OAAO,SAAS,UAAU,OAAK,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AAC/F,QAAI,WAAqB,EAAE,iBAAiB,CAAC,EAAE;AAC/C,QAAI,cAAc;AAClB,QAAI,KAAK,UAAU,GAAG;AAClB,iBAAW,QAAQ,OAAO;AACtB,YAAI,cAAY,4BAAiB,IAAI,MAArB,mBAAyB,SAAS,UAAU,EAAE,UAA9C,mBAAqD,MAAK;AACtE,qBAAW,iBAAiB,IAAI,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAC7D,wBAAc;AACd;AAAA,QACJ,aAAW,sBAAiB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,MAA5C,mBAA+C,QAAO,CAAC,UAAU;AACxE,qBAAW,iBAAiB,IAAI,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,EAAE;AACzD,oCAAM,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC;AACnC,wBAAc;AACd;AAAA,QACJ;AACA,kCAAM,CAAC,EAAE,MAAM,mCAAmC,CAAC,CAAC;AAAA,MACxD;AACA,UAAI,YAAY,eAAe,IAAI;AAC/B,YAAI,YAA2B;AAC/B,YAAI,CAAC,UAAU;AACX,cAAI,aAAa,iBAAiB,WAAW,EACzC,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC,CAClE,EAAE;AACF,cAAI,YAAY;AACZ,yBAAa,UAAM,kCAAgB,UAAU;AAAA,UACjD;AACA,sBAAa,iBAAiB,WAAW,EACrC,SAAS,UAAU,EAAE,KAAK,SAAS,UAAU,EAAE,KAAK,SAAS,CAAC,CAClE,EAAE,cAAc;AAChB,mBAAS,UAAU,EAAE,OAAO,KAAK,IAAI;AAErC,iBAAO,EAAE,YAAY,YAAY,YAAY,UAAU,UAAqB;AAAA,QAChF;AACA,oBAAa,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE,cAClE;AACJ,eAAO;AAAA,UACH,YAAY,iBAAiB,WAAW,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;AAAA,UACrE,YAAY;AAAA,UACZ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,wBAAwB,KAAK,EAAE,QAAQ;AAAA,MAC/C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/botAction.ts"],
4
- "sourcesContent": ["import TelegramMenu from '../main';\nimport { debug, error } from './logging';\nimport type { UserListWithChatId } from './telegram-menu';\n\nconst deleteMessageByBot = (\n instance: string,\n user: string,\n userListWithChatID: UserListWithChatId[],\n messageId: number,\n chat_id: string | number,\n): void => {\n const _this = TelegramMenu.getInstance();\n try {\n if (chat_id) {\n debug([{ text: 'Delete Message for', val: `${user} ${chat_id} , MessageId: ${messageId}` }]);\n }\n _this.sendTo(instance, {\n deleteMessage: {\n options: {\n chat_id: chat_id,\n message_id: messageId,\n },\n },\n });\n } catch (e: any) {\n error([\n { text: 'Error deleteMessage:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\nexport { deleteMessageByBot };\n"],
4
+ "sourcesContent": ["import TelegramMenu from '../main';\nimport { debug, error } from './logging';\nimport type { UserListWithChatId } from '../types/types';\n\nconst deleteMessageByBot = (\n instance: string,\n user: string,\n userListWithChatID: UserListWithChatId[],\n messageId: number,\n chat_id: string | number,\n): void => {\n const _this = TelegramMenu.getInstance();\n try {\n if (chat_id) {\n debug([{ text: 'Delete Message for', val: `${user} ${chat_id} , MessageId: ${messageId}` }]);\n }\n _this.sendTo(instance, {\n deleteMessage: {\n options: {\n chat_id: chat_id,\n message_id: messageId,\n },\n },\n });\n } catch (e: any) {\n error([\n { text: 'Error deleteMessage:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\nexport { deleteMessageByBot };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,qBAA6B;AAG7B,MAAM,qBAAqB,CACvB,UACA,MACA,oBACA,WACA,YACO;AACP,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,SAAS;AACT,gCAAM,CAAC,EAAE,MAAM,sBAAsB,KAAK,GAAG,IAAI,IAAI,OAAO,iBAAiB,SAAS,GAAG,CAAC,CAAC;AAAA,IAC/F;AACA,UAAM,OAAO,UAAU;AAAA,MACnB,eAAe;AAAA,QACX,SAAS;AAAA,UACL;AAAA,UACA,YAAY;AAAA,QAChB;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,wBAAwB,KAAK,EAAE,QAAQ;AAAA,MAC/C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
6
6
  "names": ["TelegramMenu"]
7
7
  }
@@ -23,39 +23,39 @@ __export(dynamicSwitch_exports, {
23
23
  module.exports = __toCommonJS(dynamicSwitch_exports);
24
24
  var import_logging = require("./logging");
25
25
  var import_utilities = require("./utilities");
26
- async function dynamicSwitch(calledValue, device2Switch, text) {
26
+ async function dynamicSwitch(calledValue, device, text) {
27
27
  try {
28
28
  const changedCalledValue = await (0, import_utilities.checkStatusInfo)(calledValue);
29
29
  const splittedArray = changedCalledValue == null ? void 0 : changedCalledValue.replace(/"/g, "").split(":");
30
30
  if (!splittedArray) {
31
31
  return;
32
32
  }
33
- device2Switch = splittedArray[2];
33
+ device = splittedArray[2];
34
34
  const arrayOfValues = splittedArray[1].replace("dynSwitch", "").replace(/\]/g, "").replace(/\[/g, "").split(",");
35
35
  const lengthOfRow = parseInt(splittedArray[3]) || 6;
36
36
  const array = [];
37
37
  const keyboard = { inline_keyboard: array };
38
38
  if (arrayOfValues) {
39
- let arrayOfEntriesDynamicSwitch = [];
39
+ let keyboardItemsArray = [];
40
40
  arrayOfValues.forEach((value, index) => {
41
41
  if (value.includes("|")) {
42
42
  const splittedValue = value.split("|");
43
- arrayOfEntriesDynamicSwitch.push({
43
+ keyboardItemsArray.push({
44
44
  text: splittedValue[0],
45
- callback_data: `menu:dynS:${device2Switch}:${splittedValue[1]}`
45
+ callback_data: `menu:dynS:${device}:${splittedValue[1]}`
46
46
  });
47
47
  } else {
48
- arrayOfEntriesDynamicSwitch.push({
48
+ keyboardItemsArray.push({
49
49
  text: value,
50
- callback_data: `menu:dynS:${device2Switch}:${value}`
50
+ callback_data: `menu:dynS:${device}:${value}`
51
51
  });
52
52
  }
53
53
  if ((index + 1) % lengthOfRow == 0 && index != 0 && arrayOfValues.length > 0 || index + 1 == arrayOfValues.length) {
54
- keyboard.inline_keyboard.push(arrayOfEntriesDynamicSwitch);
55
- arrayOfEntriesDynamicSwitch = [];
54
+ keyboard.inline_keyboard.push(keyboardItemsArray);
55
+ keyboardItemsArray = [];
56
56
  }
57
57
  });
58
- return { text, keyboard: JSON.stringify(keyboard), device: device2Switch };
58
+ return { text, keyboard, device };
59
59
  }
60
60
  } catch (e) {
61
61
  (0, import_logging.error)([
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/dynamicSwitch.ts"],
4
- "sourcesContent": ["import { error } from './logging';\nimport type { ArrayOfEntriesDynamicSwitch, Keyboard } from './telegram-menu';\nimport { checkStatusInfo } from './utilities';\nasync function dynamicSwitch(\n calledValue: string,\n device2Switch: string,\n text: string,\n): Promise<{ text?: string; keyboard: string; device: string } | undefined> {\n try {\n const changedCalledValue = await checkStatusInfo(calledValue);\n const splittedArray: string[] | undefined = changedCalledValue?.replace(/\"/g, '').split(':');\n if (!splittedArray) {\n return;\n }\n device2Switch = splittedArray[2];\n const arrayOfValues = splittedArray[1]\n .replace('dynSwitch', '')\n .replace(/\\]/g, '')\n .replace(/\\[/g, '')\n .split(',');\n\n const lengthOfRow = parseInt(splittedArray[3]) || 6;\n\n const array: ArrayOfEntriesDynamicSwitch[][] = [];\n const keyboard: Keyboard = { inline_keyboard: array };\n if (arrayOfValues) {\n let arrayOfEntriesDynamicSwitch: ArrayOfEntriesDynamicSwitch[] = [];\n arrayOfValues.forEach((value, index: number) => {\n if (value.includes('|')) {\n const splittedValue = value.split('|');\n arrayOfEntriesDynamicSwitch.push({\n text: splittedValue[0],\n callback_data: `menu:dynS:${device2Switch}:${splittedValue[1]}`,\n });\n } else {\n arrayOfEntriesDynamicSwitch.push({\n text: value,\n callback_data: `menu:dynS:${device2Switch}:${value}`,\n });\n }\n if (\n ((index + 1) % lengthOfRow == 0 && index != 0 && arrayOfValues.length > 0) ||\n index + 1 == arrayOfValues.length\n ) {\n keyboard.inline_keyboard.push(arrayOfEntriesDynamicSwitch);\n arrayOfEntriesDynamicSwitch = [];\n }\n });\n return { text, keyboard: JSON.stringify(keyboard), device: device2Switch };\n }\n } catch (e: any) {\n error([\n { text: 'Error parsing dynSwitch:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\nexport { dynamicSwitch };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;AAEtB,uBAAgC;AAChC,eAAe,cACX,aACA,eACA,MACwE;AACxE,MAAI;AACA,UAAM,qBAAqB,UAAM,kCAAgB,WAAW;AAC5D,UAAM,gBAAsC,yDAAoB,QAAQ,MAAM,IAAI,MAAM;AACxF,QAAI,CAAC,eAAe;AAChB;AAAA,IACJ;AACA,oBAAgB,cAAc,CAAC;AAC/B,UAAM,gBAAgB,cAAc,CAAC,EAChC,QAAQ,aAAa,EAAE,EACvB,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,MAAM,GAAG;AAEd,UAAM,cAAc,SAAS,cAAc,CAAC,CAAC,KAAK;AAElD,UAAM,QAAyC,CAAC;AAChD,UAAM,WAAqB,EAAE,iBAAiB,MAAM;AACpD,QAAI,eAAe;AACf,UAAI,8BAA6D,CAAC;AAClE,oBAAc,QAAQ,CAAC,OAAO,UAAkB;AAC5C,YAAI,MAAM,SAAS,GAAG,GAAG;AACrB,gBAAM,gBAAgB,MAAM,MAAM,GAAG;AACrC,sCAA4B,KAAK;AAAA,YAC7B,MAAM,cAAc,CAAC;AAAA,YACrB,eAAe,aAAa,aAAa,IAAI,cAAc,CAAC,CAAC;AAAA,UACjE,CAAC;AAAA,QACL,OAAO;AACH,sCAA4B,KAAK;AAAA,YAC7B,MAAM;AAAA,YACN,eAAe,aAAa,aAAa,IAAI,KAAK;AAAA,UACtD,CAAC;AAAA,QACL;AACA,aACM,QAAQ,KAAK,eAAe,KAAK,SAAS,KAAK,cAAc,SAAS,KACxE,QAAQ,KAAK,cAAc,QAC7B;AACE,mBAAS,gBAAgB,KAAK,2BAA2B;AACzD,wCAA8B,CAAC;AAAA,QACnC;AAAA,MACJ,CAAC;AACD,aAAO,EAAE,MAAM,UAAU,KAAK,UAAU,QAAQ,GAAG,QAAQ,cAAc;AAAA,IAC7E;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,4BAA4B,KAAK,EAAE,QAAQ;AAAA,MACnD,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
4
+ "sourcesContent": ["import { error } from './logging';\nimport type { KeyboardItems, Keyboard } from '../types/types';\nimport { checkStatusInfo } from './utilities';\nasync function dynamicSwitch(\n calledValue: string,\n device: string,\n text: string,\n): Promise<{ text?: string; keyboard: Keyboard; device: string } | undefined> {\n try {\n const changedCalledValue = await checkStatusInfo(calledValue);\n const splittedArray: string[] | undefined = changedCalledValue?.replace(/\"/g, '').split(':');\n\n if (!splittedArray) {\n return;\n }\n device = splittedArray[2];\n const arrayOfValues = splittedArray[1]\n .replace('dynSwitch', '')\n .replace(/\\]/g, '')\n .replace(/\\[/g, '')\n .split(',');\n\n const lengthOfRow = parseInt(splittedArray[3]) || 6;\n\n const array: KeyboardItems[][] = [];\n const keyboard: Keyboard = { inline_keyboard: array };\n if (arrayOfValues) {\n let keyboardItemsArray: KeyboardItems[] = [];\n arrayOfValues.forEach((value, index: number) => {\n if (value.includes('|')) {\n const splittedValue = value.split('|');\n keyboardItemsArray.push({\n text: splittedValue[0],\n callback_data: `menu:dynS:${device}:${splittedValue[1]}`,\n });\n } else {\n keyboardItemsArray.push({\n text: value,\n callback_data: `menu:dynS:${device}:${value}`,\n });\n }\n if (\n ((index + 1) % lengthOfRow == 0 && index != 0 && arrayOfValues.length > 0) ||\n index + 1 == arrayOfValues.length\n ) {\n keyboard.inline_keyboard.push(keyboardItemsArray);\n keyboardItemsArray = [];\n }\n });\n return { text, keyboard, device };\n }\n } catch (e: any) {\n error([\n { text: 'Error parsing dynSwitch:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\nexport { dynamicSwitch };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsB;AAEtB,uBAAgC;AAChC,eAAe,cACX,aACA,QACA,MAC0E;AAC1E,MAAI;AACA,UAAM,qBAAqB,UAAM,kCAAgB,WAAW;AAC5D,UAAM,gBAAsC,yDAAoB,QAAQ,MAAM,IAAI,MAAM;AAExF,QAAI,CAAC,eAAe;AAChB;AAAA,IACJ;AACA,aAAS,cAAc,CAAC;AACxB,UAAM,gBAAgB,cAAc,CAAC,EAChC,QAAQ,aAAa,EAAE,EACvB,QAAQ,OAAO,EAAE,EACjB,QAAQ,OAAO,EAAE,EACjB,MAAM,GAAG;AAEd,UAAM,cAAc,SAAS,cAAc,CAAC,CAAC,KAAK;AAElD,UAAM,QAA2B,CAAC;AAClC,UAAM,WAAqB,EAAE,iBAAiB,MAAM;AACpD,QAAI,eAAe;AACf,UAAI,qBAAsC,CAAC;AAC3C,oBAAc,QAAQ,CAAC,OAAO,UAAkB;AAC5C,YAAI,MAAM,SAAS,GAAG,GAAG;AACrB,gBAAM,gBAAgB,MAAM,MAAM,GAAG;AACrC,6BAAmB,KAAK;AAAA,YACpB,MAAM,cAAc,CAAC;AAAA,YACrB,eAAe,aAAa,MAAM,IAAI,cAAc,CAAC,CAAC;AAAA,UAC1D,CAAC;AAAA,QACL,OAAO;AACH,6BAAmB,KAAK;AAAA,YACpB,MAAM;AAAA,YACN,eAAe,aAAa,MAAM,IAAI,KAAK;AAAA,UAC/C,CAAC;AAAA,QACL;AACA,aACM,QAAQ,KAAK,eAAe,KAAK,SAAS,KAAK,cAAc,SAAS,KACxE,QAAQ,KAAK,cAAc,QAC7B;AACE,mBAAS,gBAAgB,KAAK,kBAAkB;AAChD,+BAAqB,CAAC;AAAA,QAC1B;AAAA,MACJ,CAAC;AACD,aAAO,EAAE,MAAM,UAAU,OAAO;AAAA,IACpC;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,4BAA4B,KAAK,EAAE,QAAQ;AAAA,MACnD,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
6
6
  "names": []
7
7
  }