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
@@ -32,16 +32,16 @@ const setDynamicValue = async (returnText, ack, id, userToSend, telegramInstance
32
32
  array = isBraceDeleteEntry(array);
33
33
  const text = array[1];
34
34
  if (text) {
35
- await (0, import_telegram.sendToTelegram)(
36
- userToSend,
37
- text,
38
- void 0,
39
- telegramInstance,
35
+ await (0, import_telegram.sendToTelegram)({
36
+ user: userToSend,
37
+ textToSend: text,
38
+ keyboard: void 0,
39
+ instance: telegramInstance,
40
40
  resize_keyboard,
41
41
  one_time_keyboard,
42
42
  userListWithChatID,
43
43
  parse_mode
44
- );
44
+ });
45
45
  }
46
46
  setDynamicValueObj[userToSend] = {
47
47
  id,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/dynamicValue.ts"],
4
- "sourcesContent": ["import { decomposeText } from './utilities';\nimport { sendToTelegram } from './telegram';\nimport type { SetDynamicValueObj, UserListWithChatId, BooleanString, SetDynamicValue } from './telegram-menu';\nconst setDynamicValueObj: SetDynamicValueObj = {};\nconst setDynamicValue = async (\n returnText: string,\n ack: boolean,\n id: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n confirm: string,\n): Promise<{ confirmText: string; id: string | undefined }> => {\n const { substring } = decomposeText(returnText, '{setDynamicValue:', '}');\n let array = substring.split(':');\n array = isBraceDeleteEntry(array);\n const text = array[1];\n if (text) {\n await sendToTelegram(\n userToSend,\n text,\n undefined,\n telegramInstance,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n parse_mode,\n );\n }\n setDynamicValueObj[userToSend] = {\n id: id,\n ack: ack,\n returnText: text,\n userToSend: userToSend,\n parse_mode: parse_mode,\n confirm: confirm,\n telegramInstance: telegramInstance,\n one_time_keyboard: one_time_keyboard,\n resize_keyboard: resize_keyboard,\n userListWithChatID: userListWithChatID,\n valueType: array[2],\n };\n\n if (array[3] && array[3] != '') {\n return { confirmText: array[3], id: array[4] };\n }\n return { confirmText: '', id: undefined };\n};\n\nconst getDynamicValue = (userToSend: string): SetDynamicValue | null => {\n if (setDynamicValueObj[userToSend]) {\n return setDynamicValueObj[userToSend];\n }\n return null;\n};\nconst removeUserFromDynamicValue = (userToSend: string): boolean => {\n if (setDynamicValueObj[userToSend]) {\n delete setDynamicValueObj[userToSend];\n return true;\n }\n return false;\n};\nexport { setDynamicValue, getDynamicValue, removeUserFromDynamicValue };\n\nfunction isBraceDeleteEntry(array: string[]): string[] {\n if (array[4] === '}') {\n return array.slice(0, 4);\n }\n return array;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA8B;AAC9B,sBAA+B;AAE/B,MAAM,qBAAyC,CAAC;AAChD,MAAM,kBAAkB,OACpB,YACA,KACA,IACA,YACA,kBACA,mBACA,iBACA,oBACA,YACA,YAC2D;AAC3D,QAAM,EAAE,UAAU,QAAI,gCAAc,YAAY,qBAAqB,GAAG;AACxE,MAAI,QAAQ,UAAU,MAAM,GAAG;AAC/B,UAAQ,mBAAmB,KAAK;AAChC,QAAM,OAAO,MAAM,CAAC;AACpB,MAAI,MAAM;AACN,cAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACA,qBAAmB,UAAU,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,MAAM,CAAC;AAAA,EACtB;AAEA,MAAI,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI;AAC5B,WAAO,EAAE,aAAa,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AAAA,EACjD;AACA,SAAO,EAAE,aAAa,IAAI,IAAI,OAAU;AAC5C;AAEA,MAAM,kBAAkB,CAAC,eAA+C;AACpE,MAAI,mBAAmB,UAAU,GAAG;AAChC,WAAO,mBAAmB,UAAU;AAAA,EACxC;AACA,SAAO;AACX;AACA,MAAM,6BAA6B,CAAC,eAAgC;AAChE,MAAI,mBAAmB,UAAU,GAAG;AAChC,WAAO,mBAAmB,UAAU;AACpC,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAGA,SAAS,mBAAmB,OAA2B;AACnD,MAAI,MAAM,CAAC,MAAM,KAAK;AAClB,WAAO,MAAM,MAAM,GAAG,CAAC;AAAA,EAC3B;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import { decomposeText } from './utilities';\nimport { sendToTelegram } from './telegram';\nimport type { SetDynamicValueObj, UserListWithChatId, BooleanString, SetDynamicValue } from '../types/types';\nconst setDynamicValueObj: SetDynamicValueObj = {};\nconst setDynamicValue = async (\n returnText: string,\n ack: boolean,\n id: string,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n confirm: string,\n): Promise<{ confirmText: string; id: string | undefined }> => {\n const { substring } = decomposeText(returnText, '{setDynamicValue:', '}');\n let array = substring.split(':');\n array = isBraceDeleteEntry(array);\n const text = array[1];\n if (text) {\n await sendToTelegram({\n user: userToSend,\n textToSend: text,\n keyboard: undefined,\n instance: telegramInstance,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: parse_mode,\n });\n }\n setDynamicValueObj[userToSend] = {\n id: id,\n ack: ack,\n returnText: text,\n userToSend: userToSend,\n parse_mode: parse_mode,\n confirm: confirm,\n telegramInstance: telegramInstance,\n one_time_keyboard: one_time_keyboard,\n resize_keyboard: resize_keyboard,\n userListWithChatID: userListWithChatID,\n valueType: array[2],\n };\n\n if (array[3] && array[3] != '') {\n return { confirmText: array[3], id: array[4] };\n }\n return { confirmText: '', id: undefined };\n};\n\nconst getDynamicValue = (userToSend: string): SetDynamicValue | null => {\n if (setDynamicValueObj[userToSend]) {\n return setDynamicValueObj[userToSend];\n }\n return null;\n};\nconst removeUserFromDynamicValue = (userToSend: string): boolean => {\n if (setDynamicValueObj[userToSend]) {\n delete setDynamicValueObj[userToSend];\n return true;\n }\n return false;\n};\nexport { setDynamicValue, getDynamicValue, removeUserFromDynamicValue };\n\nfunction isBraceDeleteEntry(array: string[]): string[] {\n if (array[4] === '}') {\n return array.slice(0, 4);\n }\n return array;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA8B;AAC9B,sBAA+B;AAE/B,MAAM,qBAAyC,CAAC;AAChD,MAAM,kBAAkB,OACpB,YACA,KACA,IACA,YACA,kBACA,mBACA,iBACA,oBACA,YACA,YAC2D;AAC3D,QAAM,EAAE,UAAU,QAAI,gCAAc,YAAY,qBAAqB,GAAG;AACxE,MAAI,QAAQ,UAAU,MAAM,GAAG;AAC/B,UAAQ,mBAAmB,KAAK;AAChC,QAAM,OAAO,MAAM,CAAC;AACpB,MAAI,MAAM;AACN,cAAM,gCAAe;AAAA,MACjB,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACA,qBAAmB,UAAU,IAAI;AAAA,IAC7B;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,MAAM,CAAC;AAAA,EACtB;AAEA,MAAI,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI;AAC5B,WAAO,EAAE,aAAa,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE;AAAA,EACjD;AACA,SAAO,EAAE,aAAa,IAAI,IAAI,OAAU;AAC5C;AAEA,MAAM,kBAAkB,CAAC,eAA+C;AACpE,MAAI,mBAAmB,UAAU,GAAG;AAChC,WAAO,mBAAmB,UAAU;AAAA,EACxC;AACA,SAAO;AACX;AACA,MAAM,6BAA6B,CAAC,eAAgC;AAChE,MAAI,mBAAmB,UAAU,GAAG;AAChC,WAAO,mBAAmB,UAAU;AACpC,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAGA,SAAS,mBAAmB,OAA2B;AACnD,MAAI,MAAM,CAAC,MAAM,KAAK;AAClB,WAAO,MAAM,MAAM,GAAG,CAAC;AAAA,EAC3B;AACA,SAAO;AACX;",
6
6
  "names": []
7
7
  }
@@ -58,16 +58,15 @@ function getChart(echarts, directoryPicture, user, instanceTelegram, userListWit
58
58
  fileOnDisk: directoryPicture + echart.filename
59
59
  },
60
60
  (result) => {
61
- (0, import_telegram.sendToTelegram)(
61
+ (0, import_telegram.sendToTelegram)({
62
62
  user,
63
- result.error || directoryPicture + echart.filename,
64
- [],
65
- instanceTelegram,
63
+ textToSend: result.error || directoryPicture + echart.filename,
64
+ instance: instanceTelegram,
66
65
  resize_keyboard,
67
66
  one_time_keyboard,
68
67
  userListWithChatID,
69
- "false"
70
- ).catch((e) => {
68
+ parse_mode: "false"
69
+ }).catch((e) => {
71
70
  (0, import_logging.error)([
72
71
  { text: "Error", val: e.message },
73
72
  { text: "Stack", val: e.stack }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/echarts.ts"],
4
- "sourcesContent": ["import TelegramMenu from '../main';\nimport { error } from './logging';\nimport { sendToTelegram } from './telegram';\nimport type { Echart, UserListWithChatId } from './telegram-menu';\nimport { checkDirectoryIsOk } from './global';\n\nfunction getChart(\n echarts: Echart[],\n directoryPicture: string,\n user: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): void {\n const _this = TelegramMenu.getInstance();\n try {\n if (!echarts) {\n return;\n }\n for (const echart of echarts) {\n const splitPreset = echart.preset.split('.');\n const instanceOfEchart = `${splitPreset[0]}.${splitPreset[1]}`;\n\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n _this.sendTo(\n instanceOfEchart,\n {\n preset: echart.preset,\n renderer: 'jpg',\n background: echart.background,\n theme: echart.theme,\n quality: 1.0,\n fileOnDisk: directoryPicture + echart.filename,\n },\n (result: any) => {\n sendToTelegram(\n user,\n result.error || directoryPicture + echart.filename,\n [],\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n ).catch((e: any) => {\n error([\n { text: 'Error', val: e.message },\n { text: 'Stack', val: e.stack },\n ]);\n });\n },\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { getChart };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,qBAAsB;AACtB,sBAA+B;AAE/B,oBAAmC;AAEnC,SAAS,SACL,SACA,kBACA,MACA,kBACA,oBACA,iBACA,mBACI;AACJ,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,eAAW,UAAU,SAAS;AAC1B,YAAM,cAAc,OAAO,OAAO,MAAM,GAAG;AAC3C,YAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;AAE5D,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM;AAAA,QACF;AAAA,QACA;AAAA,UACI,QAAQ,OAAO;AAAA,UACf,UAAU;AAAA,UACV,YAAY,OAAO;AAAA,UACnB,OAAO,OAAO;AAAA,UACd,SAAS;AAAA,UACT,YAAY,mBAAmB,OAAO;AAAA,QAC1C;AAAA,QACA,CAAC,WAAgB;AACb;AAAA,YACI;AAAA,YACA,OAAO,SAAS,mBAAmB,OAAO;AAAA,YAC1C,CAAC;AAAA,YACD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ,EAAE,MAAM,CAAC,MAAW;AAChB,sCAAM;AAAA,cACF,EAAE,MAAM,SAAS,KAAK,EAAE,QAAQ;AAAA,cAChC,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM;AAAA,YAClC,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,MACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
4
+ "sourcesContent": ["import TelegramMenu from '../main';\nimport { error } from './logging';\nimport { sendToTelegram } from './telegram';\nimport type { Echart, UserListWithChatId } from '../types/types';\nimport { checkDirectoryIsOk } from './global';\n\nfunction getChart(\n echarts: Echart[],\n directoryPicture: string,\n user: string,\n instanceTelegram: string,\n userListWithChatID: UserListWithChatId[],\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n): void {\n const _this = TelegramMenu.getInstance();\n try {\n if (!echarts) {\n return;\n }\n for (const echart of echarts) {\n const splitPreset = echart.preset.split('.');\n const instanceOfEchart = `${splitPreset[0]}.${splitPreset[1]}`;\n\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n _this.sendTo(\n instanceOfEchart,\n {\n preset: echart.preset,\n renderer: 'jpg',\n background: echart.background,\n theme: echart.theme,\n quality: 1.0,\n fileOnDisk: directoryPicture + echart.filename,\n },\n (result: any) => {\n sendToTelegram({\n user: user,\n textToSend: result.error || directoryPicture + echart.filename,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: 'false',\n }).catch((e: any) => {\n error([\n { text: 'Error', val: e.message },\n { text: 'Stack', val: e.stack },\n ]);\n });\n },\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nexport { getChart };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,qBAAsB;AACtB,sBAA+B;AAE/B,oBAAmC;AAEnC,SAAS,SACL,SACA,kBACA,MACA,kBACA,oBACA,iBACA,mBACI;AACJ,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI;AACA,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,eAAW,UAAU,SAAS;AAC1B,YAAM,cAAc,OAAO,OAAO,MAAM,GAAG;AAC3C,YAAM,mBAAmB,GAAG,YAAY,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC;AAE5D,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM;AAAA,QACF;AAAA,QACA;AAAA,UACI,QAAQ,OAAO;AAAA,UACf,UAAU;AAAA,UACV,YAAY,OAAO;AAAA,UACnB,OAAO,OAAO;AAAA,UACd,SAAS;AAAA,UACT,YAAY,mBAAmB,OAAO;AAAA,QAC1C;AAAA,QACA,CAAC,WAAgB;AACb,8CAAe;AAAA,YACX;AAAA,YACA,YAAY,OAAO,SAAS,mBAAmB,OAAO;AAAA,YACtD,UAAU;AAAA,YACV;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY;AAAA,UAChB,CAAC,EAAE,MAAM,CAAC,MAAW;AACjB,sCAAM;AAAA,cACF,EAAE,MAAM,SAAS,KAAK,EAAE,QAAQ;AAAA,cAChC,EAAE,MAAM,SAAS,KAAK,EAAE,MAAM;AAAA,YAClC,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,MACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,IACnC,CAAC;AAAA,EACL;AACJ;",
6
6
  "names": ["TelegramMenu"]
7
7
  }
@@ -78,15 +78,14 @@ function getState(part, userToSend, telegramInstance, one_time_keyboard, resize_
78
78
  return;
79
79
  }
80
80
  await _this.getForeignStateAsync(id).then(async (value) => {
81
- var _a2, _b2;
81
+ var _a2, _b2, _c;
82
82
  if (!(0, import_global.isDefined)(value)) {
83
83
  (0, import_logging.error)([{ text: "The state is empty!" }]);
84
84
  return;
85
85
  }
86
- const valueForJson = ((_a2 = value.val) == null ? void 0 : _a2.toString()) || "";
86
+ const valueForJson = (_b2 = (_a2 = value.val) == null ? void 0 : _a2.toString()) != null ? _b2 : "";
87
87
  (0, import_logging.debug)([{ text: "State:", val: value }]);
88
- let val = JSON.stringify(value.val);
89
- val = val.replace(/\\/g, "").replace(/"/g, "");
88
+ let val = valueForJson.replace(/\\/g, "").replace(/"/g, "");
90
89
  let newline = "";
91
90
  if (element.newline === "true") {
92
91
  newline = "\n";
@@ -106,7 +105,7 @@ function getState(part, userToSend, telegramInstance, one_time_keyboard, resize_
106
105
  if (result) {
107
106
  textToSend = result.textToSend;
108
107
  val = result.val;
109
- _this.log.debug(JSON.stringify({ textToSend, val }));
108
+ _this.log.debug(`TextToSend: ${textToSend} val: ${val}`);
110
109
  }
111
110
  }
112
111
  if (textToSend.includes("round:")) {
@@ -123,16 +122,16 @@ function getState(part, userToSend, telegramInstance, one_time_keyboard, resize_
123
122
  if ((0, import_global.decomposeText)(textToSend, "{json", "}").substring.includes("TextTable")) {
124
123
  const result = (0, import_jsonTable.createTextTableFromJson)(valueForJson, textToSend);
125
124
  if (result) {
126
- await (0, import_telegram.sendToTelegram)(
127
- userToSend,
128
- result,
129
- void 0,
130
- telegramInstance,
131
- one_time_keyboard,
132
- resize_keyboard,
125
+ await (0, import_telegram.sendToTelegram)({
126
+ user: userToSend,
127
+ textToSend: result,
128
+ keyboard: void 0,
129
+ instance: telegramInstance,
130
+ resize_keyboard: one_time_keyboard,
131
+ one_time_keyboard: resize_keyboard,
133
132
  userListWithChatID,
134
133
  parse_mode
135
- );
134
+ });
136
135
  return;
137
136
  }
138
137
  _this.log.debug("Cannot create a Text-Table");
@@ -151,16 +150,16 @@ function getState(part, userToSend, telegramInstance, one_time_keyboard, resize_
151
150
  }
152
151
  return;
153
152
  }
154
- await (0, import_telegram.sendToTelegram)(
155
- userToSend,
156
- "The state is empty!",
157
- void 0,
158
- telegramInstance,
159
- one_time_keyboard,
160
- resize_keyboard,
153
+ await (0, import_telegram.sendToTelegram)({
154
+ user: userToSend,
155
+ textToSend: "The state is empty!",
156
+ keyboard: void 0,
157
+ instance: telegramInstance,
158
+ resize_keyboard: one_time_keyboard,
159
+ one_time_keyboard: resize_keyboard,
161
160
  userListWithChatID,
162
161
  parse_mode
163
- );
162
+ });
164
163
  _this.log.debug("The state is empty!");
165
164
  return;
166
165
  }
@@ -182,18 +181,18 @@ function getState(part, userToSend, telegramInstance, one_time_keyboard, resize_
182
181
  text += `${val} ${newline}`;
183
182
  }
184
183
  (0, import_logging.debug)([{ text: "Text:", val: text }]);
185
- if (i == ((_b2 = part.getData) == null ? void 0 : _b2.length)) {
184
+ if (i == ((_c = part.getData) == null ? void 0 : _c.length)) {
186
185
  if (userToSend) {
187
- await (0, import_telegram.sendToTelegram)(
188
- userToSend,
189
- text,
190
- void 0,
191
- telegramInstance,
192
- one_time_keyboard,
193
- resize_keyboard,
186
+ await (0, import_telegram.sendToTelegram)({
187
+ user: userToSend,
188
+ textToSend: text,
189
+ keyboard: void 0,
190
+ instance: telegramInstance,
191
+ resize_keyboard: one_time_keyboard,
192
+ one_time_keyboard: resize_keyboard,
194
193
  userListWithChatID,
195
194
  parse_mode
196
- );
195
+ });
197
196
  }
198
197
  }
199
198
  i++;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/getstate.ts"],
4
- "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, roundValue, calcValue, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc, processTimeValue, changeValue } from './utilities';\nimport { decomposeText, isDefined } from './global';\nimport { debug, error } from './logging';\nimport TelegramMenu from '../main';\nimport type { Part, UserListWithChatId } from './telegram-menu';\n\nfunction getState(\n part: Part,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): void {\n const _this = TelegramMenu.getInstance();\n let text = '';\n let i = 1;\n // Parse Mode ist nur immer im ersten Element\n const parse_mode = part.getData?.[0].parse_mode || 'false';\n\n part.getData?.forEach(async element => {\n try {\n debug([{ text: 'Get Value ID:', val: element.id }]);\n const specifiedSelektor = 'functions=';\n const id = element.id;\n let textToSend = '';\n\n if (id.indexOf(specifiedSelektor) != -1) {\n await idBySelector(\n _this,\n id,\n element.text,\n userToSend,\n element.newline,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n );\n return;\n }\n\n if (element.text.includes('binding:')) {\n debug([{ text: 'Binding' }]);\n await bindingFunc(\n element.text,\n userToSend,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n return;\n }\n\n await _this.getForeignStateAsync(id).then(async (value: ioBroker.State | null | undefined) => {\n if (!isDefined(value)) {\n error([{ text: 'The state is empty!' }]);\n return;\n }\n const valueForJson: string = value.val?.toString() || '';\n debug([{ text: 'State:', val: value }]);\n\n let val: string | number = JSON.stringify(value.val);\n val = val.replace(/\\\\/g, '').replace(/\"/g, '');\n\n let newline = '';\n if (element.newline === 'true') {\n newline = '\\n';\n }\n if (element.text) {\n textToSend = element.text.toString();\n if (element.text.includes('{time.lc') || element.text.includes('{time.ts')) {\n textToSend = (await processTimeIdLc(element.text, id)) || '';\n val = '';\n }\n if (textToSend.includes('{time}')) {\n textToSend = processTimeValue(textToSend, value);\n val = '';\n }\n if (textToSend.includes('math:')) {\n const result = calcValue(_this, textToSend, val);\n if (result) {\n textToSend = result.textToSend;\n val = result.val;\n _this.log.debug(JSON.stringify({ textToSend: textToSend, val: val }));\n }\n }\n if (textToSend.includes('round:')) {\n const result = roundValue(val, textToSend);\n if (result) {\n _this.log.debug(\n `The Value was rounded ${JSON.stringify(val)} to ${JSON.stringify(result.val)}`,\n );\n val = result.val;\n textToSend = result.textToSend;\n }\n }\n if (textToSend.includes('{json')) {\n if (decomposeText(textToSend, '{json', '}').substring.includes('TextTable')) {\n const result = createTextTableFromJson(valueForJson, textToSend);\n if (result) {\n await sendToTelegram(\n userToSend,\n result,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n return;\n }\n _this.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(valueForJson, textToSend, element.id, userToSend);\n if (valueForJson && valueForJson.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(\n userToSend,\n result.text,\n result.keyboard,\n telegramInstance,\n userListWithChatID,\n parse_mode,\n );\n }\n return;\n }\n await sendToTelegram(\n userToSend,\n 'The state is empty!',\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n _this.log.debug('The state is empty!');\n return;\n }\n }\n\n const resultChange = changeValue(textToSend, val);\n\n if (resultChange) {\n debug([{ text: 'Value Changed to:', val: resultChange }]);\n val = resultChange.val;\n textToSend = resultChange.textToSend;\n } else {\n debug([{ text: 'No Change' }]);\n }\n if (textToSend.indexOf('&&') != -1) {\n text += `${textToSend.replace('&&', val.toString())}${newline}`;\n } else {\n text += `${textToSend} ${val}${newline}`;\n }\n } else {\n text += `${val} ${newline}`;\n }\n debug([{ text: 'Text:', val: text }]);\n\n if (i == part.getData?.length) {\n if (userToSend) {\n await sendToTelegram(\n userToSend,\n text,\n undefined,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n }\n }\n i++;\n });\n } catch (error: any) {\n error({\n array: [\n { text: 'Error GetData:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ],\n });\n }\n });\n}\n\nexport { getState };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, roundValue, calcValue, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc, processTimeValue, changeValue } from './utilities';\nimport { decomposeText, isDefined } from './global';\nimport { debug, error } from './logging';\nimport TelegramMenu from '../main';\nimport type { Part, UserListWithChatId } from '../types/types';\n\nfunction getState(\n part: Part,\n userToSend: string,\n telegramInstance: string,\n one_time_keyboard: boolean,\n resize_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n): void {\n const _this = TelegramMenu.getInstance();\n let text = '';\n let i = 1;\n // Parse Mode ist nur immer im ersten Element\n const parse_mode = part.getData?.[0].parse_mode || 'false';\n\n part.getData?.forEach(async element => {\n try {\n debug([{ text: 'Get Value ID:', val: element.id }]);\n const specifiedSelektor = 'functions=';\n const id = element.id;\n let textToSend = '';\n\n if (id.indexOf(specifiedSelektor) != -1) {\n await idBySelector(\n _this,\n id,\n element.text,\n userToSend,\n element.newline,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n );\n return;\n }\n\n if (element.text.includes('binding:')) {\n debug([{ text: 'Binding' }]);\n await bindingFunc(\n element.text,\n userToSend,\n telegramInstance,\n one_time_keyboard,\n resize_keyboard,\n userListWithChatID,\n parse_mode,\n );\n return;\n }\n\n await _this.getForeignStateAsync(id).then(async (value?: ioBroker.State | null) => {\n if (!isDefined(value)) {\n error([{ text: 'The state is empty!' }]);\n return;\n }\n const valueForJson: string = value.val?.toString() ?? '';\n debug([{ text: 'State:', val: value }]);\n\n let val: string | number = valueForJson.replace(/\\\\/g, '').replace(/\"/g, '');\n\n let newline = '';\n if (element.newline === 'true') {\n newline = '\\n';\n }\n if (element.text) {\n textToSend = element.text.toString();\n if (element.text.includes('{time.lc') || element.text.includes('{time.ts')) {\n textToSend = (await processTimeIdLc(element.text, id)) || '';\n val = '';\n }\n if (textToSend.includes('{time}')) {\n textToSend = processTimeValue(textToSend, value);\n val = '';\n }\n if (textToSend.includes('math:')) {\n const result = calcValue(_this, textToSend, val);\n if (result) {\n textToSend = result.textToSend;\n val = result.val;\n\n _this.log.debug(`TextToSend: ${textToSend} val: ${val}`);\n }\n }\n if (textToSend.includes('round:')) {\n const result = roundValue(val, textToSend);\n if (result) {\n _this.log.debug(\n `The Value was rounded ${JSON.stringify(val)} to ${JSON.stringify(result.val)}`,\n );\n val = result.val;\n textToSend = result.textToSend;\n }\n }\n if (textToSend.includes('{json')) {\n if (decomposeText(textToSend, '{json', '}').substring.includes('TextTable')) {\n const result = createTextTableFromJson(valueForJson, textToSend);\n if (result) {\n await sendToTelegram({\n user: userToSend,\n textToSend: result,\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 return;\n }\n _this.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(valueForJson, textToSend, element.id, userToSend);\n if (valueForJson && valueForJson.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(\n userToSend,\n result.text,\n result.keyboard,\n telegramInstance,\n userListWithChatID,\n parse_mode,\n );\n }\n return;\n }\n await sendToTelegram({\n user: userToSend,\n textToSend: 'The state is empty!',\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 _this.log.debug('The state is empty!');\n return;\n }\n }\n\n const resultChange = changeValue(textToSend, val);\n\n if (resultChange) {\n debug([{ text: 'Value Changed to:', val: resultChange }]);\n val = resultChange.val;\n textToSend = resultChange.textToSend;\n } else {\n debug([{ text: 'No Change' }]);\n }\n if (textToSend.indexOf('&&') != -1) {\n text += `${textToSend.replace('&&', val.toString())}${newline}`;\n } else {\n text += `${textToSend} ${val}${newline}`;\n }\n } else {\n text += `${val} ${newline}`;\n }\n debug([{ text: 'Text:', val: text }]);\n\n if (i == part.getData?.length) {\n if (userToSend) {\n await sendToTelegram({\n user: userToSend,\n textToSend: text,\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 }\n }\n i++;\n });\n } catch (error: any) {\n error({\n array: [\n { text: 'Error GetData:', val: error.message },\n { text: 'Stack:', val: error.stack },\n ],\n });\n }\n });\n}\n\nexport { getState };\n"],
5
+ "mappings": "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",
6
6
  "names": ["TelegramMenu", "_a", "_b", "error"]
7
7
  }
@@ -27,6 +27,7 @@ __export(global_exports, {
27
27
  isJSON: () => isJSON,
28
28
  isString: () => isString,
29
29
  isTruthy: () => isTruthy,
30
+ parseJSON: () => parseJSON,
30
31
  replaceAll: () => replaceAll
31
32
  });
32
33
  module.exports = __toCommonJS(global_exports);
@@ -57,6 +58,9 @@ function decomposeText(text, searchValue, secondValue) {
57
58
  }
58
59
  const deepCopy = (obj) => {
59
60
  try {
61
+ if (!obj) {
62
+ return void 0;
63
+ }
60
64
  return JSON.parse(JSON.stringify(obj));
61
65
  } catch (err) {
62
66
  console.error(`Error deepCopy: ${JSON.stringify(err)}`);
@@ -77,6 +81,14 @@ function checkDirectoryIsOk(directory) {
77
81
  }
78
82
  return true;
79
83
  }
84
+ function parseJSON(value) {
85
+ try {
86
+ return JSON.parse(value);
87
+ } catch (error2) {
88
+ error2([{ text: "Error:", val: error2 }]);
89
+ return void 0;
90
+ }
91
+ }
80
92
  // Annotate the CommonJS export names for ESM import in node:
81
93
  0 && (module.exports = {
82
94
  checkDirectoryIsOk,
@@ -88,6 +100,7 @@ function checkDirectoryIsOk(directory) {
88
100
  isJSON,
89
101
  isString,
90
102
  isTruthy,
103
+ parseJSON,
91
104
  replaceAll
92
105
  });
93
106
  //# sourceMappingURL=global.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/global.ts"],
4
- "sourcesContent": ["import type { DecomposeText } from './telegram-menu';\nimport { error } from './logging';\n\nexport const isDefined = <T>(value: T | undefined | null): value is T => value !== undefined && value !== null;\n\nexport const deleteDoubleEntriesInArray = (arr: string[]): string[] =>\n arr.filter((item, index) => arr.indexOf(item) === index);\n\nexport const replaceAll = (text: string, searchValue: string, replaceValue: string): string =>\n text.replace(new RegExp(searchValue, 'g'), replaceValue);\n\nexport function isJSON(_string: string): boolean {\n try {\n JSON.parse(_string);\n return true;\n } catch (error) {\n console.error([{ text: 'Error:', val: error }]);\n return false;\n }\n}\n\nexport function decomposeText(text: string, searchValue: string, secondValue: string): DecomposeText {\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\nexport const deepCopy = <T>(obj: T): T | undefined => {\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n console.error(`Error deepCopy: ${JSON.stringify(err)}`);\n }\n};\n\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\nexport const isTruthy = (value: string | number | boolean): boolean => ['1', 1, true, 'true'].includes(value);\n\nexport const isFalsy = (value: string | number | boolean | undefined | null): boolean =>\n ['0', 0, false, 'false', undefined, null].includes(value);\n\nexport function checkDirectoryIsOk(directory: string): boolean {\n if (['', null, undefined].includes(directory)) {\n error([\n {\n text: 'Error:',\n val: 'No directory to save the picture. Please add a directory in the settings with full read and write permissions.',\n },\n ]);\n return false;\n }\n return true;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAsB;AAEf,MAAM,YAAY,CAAI,UAA4C,UAAU,UAAa,UAAU;AAEnG,MAAM,6BAA6B,CAAC,QACvC,IAAI,OAAO,CAAC,MAAM,UAAU,IAAI,QAAQ,IAAI,MAAM,KAAK;AAEpD,MAAM,aAAa,CAAC,MAAc,aAAqB,iBAC1D,KAAK,QAAQ,IAAI,OAAO,aAAa,GAAG,GAAG,YAAY;AAEpD,SAAS,OAAO,SAA0B;AAC7C,MAAI;AACA,SAAK,MAAM,OAAO;AAClB,WAAO;AAAA,EACX,SAASA,QAAO;AACZ,YAAQ,MAAM,CAAC,EAAE,MAAM,UAAU,KAAKA,OAAM,CAAC,CAAC;AAC9C,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,cAAc,MAAc,aAAqB,aAAoC;AACjG,QAAM,aAAa,KAAK,QAAQ,WAAW;AAC3C,QAAM,WAAW,KAAK,QAAQ,aAAa,UAAU;AACrD,QAAM,YAAY,KAAK,UAAU,YAAY,WAAW,YAAY,MAAM;AAC1E,QAAM,uBAAuB,KAAK,QAAQ,WAAW,EAAE,EAAE,KAAK;AAC9D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEO,MAAM,WAAW,CAAI,QAA0B;AAClD,MAAI;AACA,WAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACzC,SAAS,KAAK;AACV,YAAQ,MAAM,mBAAmB,KAAK,UAAU,GAAG,CAAC,EAAE;AAAA,EAC1D;AACJ;AAEO,MAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,MAAM,WAAW,CAAC,UAA8C,CAAC,KAAK,GAAG,MAAM,MAAM,EAAE,SAAS,KAAK;AAErG,MAAM,UAAU,CAAC,UACpB,CAAC,KAAK,GAAG,OAAO,SAAS,QAAW,IAAI,EAAE,SAAS,KAAK;AAErD,SAAS,mBAAmB,WAA4B;AAC3D,MAAI,CAAC,IAAI,MAAM,MAAS,EAAE,SAAS,SAAS,GAAG;AAC3C,8BAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,KAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import type { DecomposeText } from '../types/types';\nimport { error } from './logging';\n\nexport const isDefined = <T>(value: T | undefined | null): value is T => value !== undefined && value !== null;\n\nexport const deleteDoubleEntriesInArray = (arr: string[]): string[] =>\n arr.filter((item, index) => arr.indexOf(item) === index);\n\nexport const replaceAll = (text: string, searchValue: string, replaceValue: string): string =>\n text.replace(new RegExp(searchValue, 'g'), replaceValue);\n\nexport function isJSON(_string: string): boolean {\n try {\n JSON.parse(_string);\n return true;\n } catch (error) {\n console.error([{ text: 'Error:', val: error }]);\n return false;\n }\n}\n\nexport function decomposeText(text: string, searchValue: string, secondValue: string): DecomposeText {\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\nexport const deepCopy = <T>(obj: T): T | undefined => {\n try {\n if (!obj) {\n return undefined;\n }\n return JSON.parse(JSON.stringify(obj));\n } catch (err) {\n console.error(`Error deepCopy: ${JSON.stringify(err)}`);\n }\n};\n\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\nexport const isTruthy = (value: string | number | boolean): boolean => ['1', 1, true, 'true'].includes(value);\n\nexport const isFalsy = (value: string | number | boolean | undefined | null): boolean =>\n ['0', 0, false, 'false', undefined, null].includes(value);\n\nexport function checkDirectoryIsOk(directory: string): boolean {\n if (['', null, undefined].includes(directory)) {\n error([\n {\n text: 'Error:',\n val: 'No directory to save the picture. Please add a directory in the settings with full read and write permissions.',\n },\n ]);\n return false;\n }\n return true;\n}\n\nexport function parseJSON<T>(value: string): T | undefined {\n try {\n return JSON.parse(value);\n } catch (error) {\n // @ts-expect-error\n error([{ text: 'Error:', val: error }]);\n return undefined;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBAAsB;AAEf,MAAM,YAAY,CAAI,UAA4C,UAAU,UAAa,UAAU;AAEnG,MAAM,6BAA6B,CAAC,QACvC,IAAI,OAAO,CAAC,MAAM,UAAU,IAAI,QAAQ,IAAI,MAAM,KAAK;AAEpD,MAAM,aAAa,CAAC,MAAc,aAAqB,iBAC1D,KAAK,QAAQ,IAAI,OAAO,aAAa,GAAG,GAAG,YAAY;AAEpD,SAAS,OAAO,SAA0B;AAC7C,MAAI;AACA,SAAK,MAAM,OAAO;AAClB,WAAO;AAAA,EACX,SAASA,QAAO;AACZ,YAAQ,MAAM,CAAC,EAAE,MAAM,UAAU,KAAKA,OAAM,CAAC,CAAC;AAC9C,WAAO;AAAA,EACX;AACJ;AAEO,SAAS,cAAc,MAAc,aAAqB,aAAoC;AACjG,QAAM,aAAa,KAAK,QAAQ,WAAW;AAC3C,QAAM,WAAW,KAAK,QAAQ,aAAa,UAAU;AACrD,QAAM,YAAY,KAAK,UAAU,YAAY,WAAW,YAAY,MAAM;AAC1E,QAAM,uBAAuB,KAAK,QAAQ,WAAW,EAAE,EAAE,KAAK;AAC9D,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAEO,MAAM,WAAW,CAAI,QAA0B;AAClD,MAAI;AACA,QAAI,CAAC,KAAK;AACN,aAAO;AAAA,IACX;AACA,WAAO,KAAK,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EACzC,SAAS,KAAK;AACV,YAAQ,MAAM,mBAAmB,KAAK,UAAU,GAAG,CAAC,EAAE;AAAA,EAC1D;AACJ;AAEO,MAAM,WAAW,CAAC,UAAoC,OAAO,UAAU;AAEvE,MAAM,WAAW,CAAC,UAA8C,CAAC,KAAK,GAAG,MAAM,MAAM,EAAE,SAAS,KAAK;AAErG,MAAM,UAAU,CAAC,UACpB,CAAC,KAAK,GAAG,OAAO,SAAS,QAAW,IAAI,EAAE,SAAS,KAAK;AAErD,SAAS,mBAAmB,WAA4B;AAC3D,MAAI,CAAC,IAAI,MAAM,MAAS,EAAE,SAAS,SAAS,GAAG;AAC3C,8BAAM;AAAA,MACF;AAAA,QACI,MAAM;AAAA,QACN,KAAK;AAAA,MACT;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,EACX;AACA,SAAO;AACX;AAEO,SAAS,UAAa,OAA8B;AACvD,MAAI;AACA,WAAO,KAAK,MAAM,KAAK;AAAA,EAC3B,SAASA,QAAO;AAEZ,IAAAA,OAAM,CAAC,EAAE,MAAM,UAAU,KAAKA,OAAM,CAAC,CAAC;AACtC,WAAO;AAAA,EACX;AACJ;",
6
6
  "names": ["error"]
7
7
  }
@@ -72,16 +72,15 @@ async function httpRequest(parts, userToSend, instanceTelegram, resize_keyboard,
72
72
  const imagePath = import_path.default.join(directoryPicture, part.filename);
73
73
  import_fs.default.writeFileSync(imagePath, Buffer.from(response.data), "binary");
74
74
  (0, import_logging.debug)([{ text: "Pic saved:", val: imagePath }]);
75
- await (0, import_telegram.sendToTelegram)(
76
- userToSend,
77
- imagePath,
78
- [],
79
- instanceTelegram,
75
+ await (0, import_telegram.sendToTelegram)({
76
+ user: userToSend,
77
+ textToSend: imagePath,
78
+ instance: instanceTelegram,
80
79
  resize_keyboard,
81
80
  one_time_keyboard,
82
81
  userListWithChatID,
83
- "false"
84
- );
82
+ parse_mode: "false"
83
+ });
85
84
  } catch (e) {
86
85
  (0, import_logging.error)([
87
86
  { text: "Error:", val: e.message },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/httpRequest.ts"],
4
- "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { debug, error } from './logging';\nimport type { Part, UserListWithChatId } from './telegram-menu';\nimport { checkDirectoryIsOk } from './global';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const part of parts.httpRequest) {\n const url = part.url;\n const userName = part.user;\n const password = part.password;\n const method = 'get';\n debug([{ text: 'URL:', val: url }]);\n try {\n //prettier-ignore\n const response = await axios(\n userName && password\n ? {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n auth: {\n username: userName,\n password: password,\n },\n }\n : {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n },\n );\n if (!part.filename) {\n return;\n }\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, part.filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n debug([{ text: 'Pic saved:', val: imagePath }]);\n\n await sendToTelegram(\n userToSend,\n imagePath,\n [],\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n 'false',\n );\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n { text: 'Server Response:', val: e.response.status },\n { text: 'Server data:', val: e.response.data },\n ]);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA6B;AAE7B,oBAAmC;AAEnC,eAAe,YACX,OACA,YACA,kBACA,iBACA,mBACA,oBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,QAAQ,MAAM,aAAa;AAClC,UAAM,MAAM,KAAK;AACjB,UAAM,WAAW,KAAK;AACtB,UAAM,WAAW,KAAK;AACtB,UAAM,SAAS;AACf,8BAAM,CAAC,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC;AAClC,QAAI;AAEA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF,UAAU;AAAA,YACV;AAAA,UACJ;AAAA,QACJ,IACE;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACR;AACA,UAAI,CAAC,KAAK,UAAU;AAChB;AAAA,MACJ;AACA,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,KAAK,QAAQ;AAE3D,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,gCAAM,CAAC,EAAE,MAAM,cAAc,KAAK,UAAU,CAAC,CAAC;AAE9C,gBAAM;AAAA,QACF;AAAA,QACA;AAAA,QACA,CAAC;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,SAAS,GAAQ;AACb,gCAAM;AAAA,QACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,QACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,QAC/B,EAAE,MAAM,oBAAoB,KAAK,EAAE,SAAS,OAAO;AAAA,QACnD,EAAE,MAAM,gBAAgB,KAAK,EAAE,SAAS,KAAK;AAAA,MACjD,CAAC;AAAA,IACL;AAAA,EACJ;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { debug, error } from './logging';\nimport type { Part, UserListWithChatId } from '../types/types';\nimport { checkDirectoryIsOk } from './global';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const part of parts.httpRequest) {\n const url = part.url;\n const userName = part.user;\n const password = part.password;\n const method = 'get';\n debug([{ text: 'URL:', val: url }]);\n try {\n //prettier-ignore\n const response = await axios(\n userName && password\n ? {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n auth: {\n username: userName,\n password: password,\n },\n }\n : {\n method: method,\n url: url,\n responseType: \"arraybuffer\",\n },\n );\n if (!part.filename) {\n return;\n }\n if (!checkDirectoryIsOk(directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, part.filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n debug([{ text: 'Pic saved:', val: imagePath }]);\n\n await sendToTelegram({\n user: userToSend,\n textToSend: imagePath,\n instance: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n parse_mode: 'false',\n });\n } catch (e: any) {\n error([\n { text: 'Error:', val: e.message },\n { text: 'Stack:', val: e.stack },\n { text: 'Server Response:', val: e.response.status },\n { text: 'Server data:', val: e.response.data },\n ]);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA6B;AAE7B,oBAAmC;AAEnC,eAAe,YACX,OACA,YACA,kBACA,iBACA,mBACA,oBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,QAAQ,MAAM,aAAa;AAClC,UAAM,MAAM,KAAK;AACjB,UAAM,WAAW,KAAK;AACtB,UAAM,WAAW,KAAK;AACtB,UAAM,SAAS;AACf,8BAAM,CAAC,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC,CAAC;AAClC,QAAI;AAEA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF,UAAU;AAAA,YACV;AAAA,UACJ;AAAA,QACJ,IACE;AAAA,UACE;AAAA,UACA;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACR;AACA,UAAI,CAAC,KAAK,UAAU;AAChB;AAAA,MACJ;AACA,UAAI,KAAC,kCAAmB,gBAAgB,GAAG;AACvC;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,KAAK,QAAQ;AAE3D,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,gCAAM,CAAC,EAAE,MAAM,cAAc,KAAK,UAAU,CAAC,CAAC;AAE9C,gBAAM,gCAAe;AAAA,QACjB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MAChB,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,gCAAM;AAAA,QACF,EAAE,MAAM,UAAU,KAAK,EAAE,QAAQ;AAAA,QACjC,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,QAC/B,EAAE,MAAM,oBAAoB,KAAK,EAAE,SAAS,OAAO;AAAA,QACnD,EAAE,MAAM,gBAAgB,KAAK,EAAE,SAAS,KAAK;AAAA,MACjD,CAAC;AAAA,IACL;AAAA,EACJ;AACA,SAAO;AACX;",
6
6
  "names": ["axios", "path", "fs"]
7
7
  }
@@ -0,0 +1,54 @@
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 json_exports = {};
20
+ __export(json_exports, {
21
+ escapeJsonString: () => escapeJsonString,
22
+ makeValidJson: () => makeValidJson,
23
+ toJson: () => toJson
24
+ });
25
+ module.exports = __toCommonJS(json_exports);
26
+ var import_logging = require("../app/logging");
27
+ const escapeJsonString = (input) => {
28
+ return input.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/'/g, '"');
29
+ };
30
+ const makeValidJson = (input, adapter) => {
31
+ try {
32
+ const sanitizedInput = input.trim();
33
+ const parsed = JSON.parse(sanitizedInput);
34
+ return { validJson: JSON.stringify(parsed), error: false };
35
+ } catch (error) {
36
+ console.log(error);
37
+ try {
38
+ const escapedString = escapeJsonString(input);
39
+ const parsed = JSON.parse(escapedString);
40
+ return { validJson: JSON.stringify(parsed), error: false };
41
+ } catch (innerError) {
42
+ (0, import_logging.errorLogger)("Error makeValidJson:", innerError, adapter);
43
+ return { validJson: input, error: true };
44
+ }
45
+ }
46
+ };
47
+ const toJson = (val) => JSON.stringify(val, null, 2);
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ escapeJsonString,
51
+ makeValidJson,
52
+ toJson
53
+ });
54
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/json.ts"],
4
+ "sourcesContent": ["import { errorLogger } from '../app/logging';\nimport type { Adapter } from '../types/types';\n\nexport const escapeJsonString = (input: string): string => {\n return input\n .replace(/\\\\/g, '\\\\\\\\') // Escape Backslashes\n .replace(/\"/g, '\\\\\"') // Escape doppelte Anf\u00FChrungszeichen\n .replace(/'/g, '\"'); // Ersetze einfache Anf\u00FChrungszeichen durch doppelte\n};\n\nexport const makeValidJson = (input: string, adapter: Adapter): { validJson: string; error: boolean } => {\n try {\n // Entferne unn\u00F6tige Leerzeichen und \u00FCberpr\u00FCfe die Struktur\n const sanitizedInput = input.trim();\n\n // Versuche, den String direkt zu parsen\n const parsed = JSON.parse(sanitizedInput);\n return { validJson: JSON.stringify(parsed), error: false };\n } catch (error) {\n console.log(error);\n // Wenn der direkte Parse-Versuch fehlschl\u00E4gt, wende Escaping an\n try {\n const escapedString = escapeJsonString(input);\n const parsed = JSON.parse(escapedString);\n return { validJson: JSON.stringify(parsed), error: false };\n } catch (innerError) {\n errorLogger('Error makeValidJson:', innerError, adapter);\n return { validJson: input, error: true };\n }\n }\n};\n\nexport const toJson = (val: string | number | boolean | object): string => JSON.stringify(val, null, 2);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAGrB,MAAM,mBAAmB,CAAC,UAA0B;AACvD,SAAO,MACF,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,MAAM,GAAG;AAC1B;AAEO,MAAM,gBAAgB,CAAC,OAAe,YAA4D;AACrG,MAAI;AAEA,UAAM,iBAAiB,MAAM,KAAK;AAGlC,UAAM,SAAS,KAAK,MAAM,cAAc;AACxC,WAAO,EAAE,WAAW,KAAK,UAAU,MAAM,GAAG,OAAO,MAAM;AAAA,EAC7D,SAAS,OAAO;AACZ,YAAQ,IAAI,KAAK;AAEjB,QAAI;AACA,YAAM,gBAAgB,iBAAiB,KAAK;AAC5C,YAAM,SAAS,KAAK,MAAM,aAAa;AACvC,aAAO,EAAE,WAAW,KAAK,UAAU,MAAM,GAAG,OAAO,MAAM;AAAA,IAC7D,SAAS,YAAY;AACjB,sCAAY,wBAAwB,YAAY,OAAO;AACvD,aAAO,EAAE,WAAW,OAAO,OAAO,KAAK;AAAA,IAC3C;AAAA,EACJ;AACJ;AAEO,MAAM,SAAS,CAAC,QAAoD,KAAK,UAAU,KAAK,MAAM,CAAC;",
6
+ "names": []
7
+ }
@@ -39,17 +39,15 @@ const createKeyboardFromJson = (val, text, id, user) => {
39
39
  if (array.length > 3 && array[3] == "shoppinglist") {
40
40
  idShoppingList = true;
41
41
  }
42
- let valArray = [];
43
42
  (0, import_logging.debug)([
44
43
  { text: "Val:", val },
45
44
  { text: "Type of Val:", val }
46
45
  ]);
47
- if (typeof val == "string") {
48
- valArray = JSON.parse(val);
49
- } else {
50
- valArray = val;
46
+ const valArray = (0, import_global.parseJSON)(val);
47
+ if (!valArray) {
48
+ return;
51
49
  }
52
- const keyboard = [];
50
+ const keyboard = { inline_keyboard: [] };
53
51
  valArray.forEach((element, index) => {
54
52
  const firstRow = [];
55
53
  const rowArray = [];
@@ -75,13 +73,12 @@ const createKeyboardFromJson = (val, text, id, user) => {
75
73
  }
76
74
  });
77
75
  if (index == 0) {
78
- keyboard.push(firstRow);
76
+ keyboard.inline_keyboard.push(firstRow);
79
77
  }
80
- keyboard.push(rowArray);
78
+ keyboard.inline_keyboard.push(rowArray);
81
79
  });
82
- const inline_keyboard = { inline_keyboard: keyboard };
83
- (0, import_logging.debug)([{ text: "keyboard:", val: inline_keyboard }]);
84
- return { text: headline, keyboard: JSON.stringify(inline_keyboard) };
80
+ (0, import_logging.debug)([{ text: "keyboard:", val: keyboard }]);
81
+ return { text: headline, keyboard };
85
82
  } catch (err) {
86
83
  (0, import_logging.error)([
87
84
  { text: "Error createKeyboardFromJson:", val: err.message },
@@ -119,8 +116,8 @@ function createTextTableFromJson(val, textToSend) {
119
116
  \``;
120
117
  const enlargeColumn = 1;
121
118
  const reduce = lengthArray.length == 1 ? 2 : 0;
122
- const lineLenght = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;
123
- textTable += `${"-".repeat(lineLenght)}
119
+ const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;
120
+ textTable += `${"-".repeat(lineLength)}
124
121
  `;
125
122
  valArray.forEach((element, elementIndex) => {
126
123
  itemArray.forEach((item, index) => {
@@ -131,7 +128,7 @@ function createTextTableFromJson(val, textToSend) {
131
128
  textTable += ` ${item2.split(":")[1].toString().padEnd(lengthArray[i] + enlargeColumn, " ")}|`;
132
129
  if (i == itemArray.length - 1) {
133
130
  textTable += "\n";
134
- textTable += `${"-".repeat(lineLenght)}
131
+ textTable += `${"-".repeat(lineLength)}
135
132
  `;
136
133
  }
137
134
  } else {
@@ -148,7 +145,7 @@ function createTextTableFromJson(val, textToSend) {
148
145
  }
149
146
  });
150
147
  });
151
- textTable += "-".repeat(lineLenght);
148
+ textTable += "-".repeat(lineLength);
152
149
  textTable += "`";
153
150
  return textTable;
154
151
  } catch (e) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/jsonTable.ts"],
4
- "sourcesContent": ["import { decomposeText } from './global';\nimport { debug, error } from './logging';\nimport type { LastText, ValArray, FirstRow, RowArray } from './telegram-menu';\nconst lastText: LastText = {};\nconst createKeyboardFromJson = (\n val: string,\n text: string | null,\n id: string,\n user: string,\n): { text: string; keyboard: string } | undefined => {\n try {\n if (text) {\n lastText[user] = text;\n } else {\n text = lastText[user];\n }\n const array = decomposeText(text, '{json:', '}').substring.split(';');\n const headline = array[2];\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n let idShoppingList = false;\n if (array.length > 3 && array[3] == 'shoppinglist') {\n idShoppingList = true;\n }\n\n let valArray: ValArray[] = [];\n debug([\n { text: 'Val:', val },\n { text: 'Type of Val:', val },\n ]);\n\n if (typeof val == 'string') {\n valArray = JSON.parse(val);\n } else {\n valArray = val;\n }\n const keyboard: (FirstRow | RowArray)[][] = [];\n\n valArray.forEach((element, index) => {\n const firstRow: FirstRow[] = [];\n const rowArray: RowArray[] = [];\n itemArray.forEach(item => {\n if (index == 0) {\n const btnText: string = item.split(':')[1];\n if (btnText.length > 0) {\n firstRow.push({ text: btnText, callback_data: '1' });\n }\n }\n if (idShoppingList) {\n const value = element.buttondelete;\n const valueDeleteLinkArray = decomposeText(value, \"('\", \"')\")\n .substring.replace(\"('\", '')\n .replace(\",true')\", '')\n .split('.');\n const instanceAlexa = valueDeleteLinkArray[1];\n const valueDeleteId = valueDeleteLinkArray[5];\n\n const instanceShoppingListID = `${id.split('.')[1]}.${id.split('.')[2]}`;\n rowArray.push({\n text: element[item.split(':')[0]],\n callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`,\n });\n } else {\n rowArray.push({ text: element[item.split(':')[0]], callback_data: '1' });\n }\n });\n if (index == 0) {\n keyboard.push(firstRow);\n }\n keyboard.push(rowArray);\n });\n const inline_keyboard = { inline_keyboard: keyboard };\n debug([{ text: 'keyboard:', val: inline_keyboard }]);\n\n return { text: headline, keyboard: JSON.stringify(inline_keyboard) };\n } catch (err: any) {\n error([\n { text: 'Error createKeyboardFromJson:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n};\n\nfunction createTextTableFromJson(val: string, textToSend: string): string | undefined {\n try {\n if (!val) {\n return;\n }\n const substring = decomposeText(textToSend, '{json:', '}').substring;\n const array = substring.split(';');\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n const valArray: ValArray[] = JSON.parse(val);\n // Array f\u00FCr die Gr\u00F6\u00DFte L\u00E4nge der Items\n const lengthArray: number[] = [];\n // Tr\u00E4gt f\u00FCr jedes Item einen Eintrag im lengthArray ein\n itemArray.forEach(element => {\n lengthArray.push(element.split(':')[1].length);\n });\n valArray.forEach(element => {\n itemArray.forEach((item, index) => {\n if (lengthArray[index] < element[item.split(':')[0]].toString().length) {\n lengthArray[index] = element[item.split(':')[0]].toString().length;\n }\n });\n });\n debug([{ text: 'Length of rows', val: lengthArray }]);\n const headline = array[2];\n let textTable = textToSend.replace(substring, '').trim();\n if (textTable != '') {\n textTable += ' \\n\\n';\n }\n textTable += ` ${headline} \\n\\``;\n const enlargeColumn = 1;\n const reduce = lengthArray.length == 1 ? 2 : 0;\n const lineLenght = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;\n // Breakline\n textTable += `${'-'.repeat(lineLenght)} \\n`;\n valArray.forEach((element, elementIndex) => {\n itemArray.forEach((item, index) => {\n // TableHead\n if (elementIndex == 0 && index == 0) {\n textTable += '|';\n itemArray.forEach((item2, i) => {\n if (item2.split(':')[1].length > 0) {\n textTable += ` ${item2\n .split(':')[1]\n .toString()\n .padEnd(lengthArray[i] + enlargeColumn, ' ')}|`;\n if (i == itemArray.length - 1) {\n textTable += '\\n';\n // Breakline\n textTable += `${'-'.repeat(lineLenght)} \\n`;\n }\n } else {\n textTable = textTable.slice(0, -1);\n }\n });\n }\n // TableBody\n if (index == 0) {\n textTable += '|';\n }\n textTable += ` ${element[item.split(':')[0]].toString().padEnd(lengthArray[index] + enlargeColumn, ' ')}|`;\n if (index == itemArray.length - 1) {\n textTable += '\\n';\n }\n });\n });\n // Breakline\n textTable += '-'.repeat(lineLenght);\n textTable += '`';\n return textTable;\n } catch (e: any) {\n error([\n { text: 'Error createTextTableFromJson:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\nexport { createKeyboardFromJson, createTextTableFromJson };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { decomposeText, parseJSON } from './global';\nimport { debug, error } from './logging';\nimport type { LastText, ValArray, KeyboardItem, Keyboard } from '../types/types';\nconst lastText: LastText = {};\nconst createKeyboardFromJson = (\n val: string,\n text: string | null,\n id: string,\n user: string,\n): { text: string; keyboard: Keyboard } | undefined => {\n try {\n if (text) {\n lastText[user] = text;\n } else {\n text = lastText[user];\n }\n const array = decomposeText(text, '{json:', '}').substring.split(';');\n const headline = array[2];\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n let idShoppingList = false;\n if (array.length > 3 && array[3] == 'shoppinglist') {\n idShoppingList = true;\n }\n\n debug([\n { text: 'Val:', val },\n { text: 'Type of Val:', val },\n ]);\n\n const valArray: ValArray[] | undefined = parseJSON(val);\n if (!valArray) {\n return;\n }\n\n const keyboard: Keyboard = { inline_keyboard: [] };\n\n valArray.forEach((element, index) => {\n const firstRow: KeyboardItem[] = [];\n const rowArray: KeyboardItem[] = [];\n itemArray.forEach(item => {\n if (index == 0) {\n const btnText: string = item.split(':')[1];\n if (btnText.length > 0) {\n firstRow.push({ text: btnText, callback_data: '1' });\n }\n }\n if (idShoppingList) {\n const value = element.buttondelete;\n const valueDeleteLinkArray = decomposeText(value, \"('\", \"')\")\n .substring.replace(\"('\", '')\n .replace(\",true')\", '')\n .split('.');\n const instanceAlexa = valueDeleteLinkArray[1];\n const valueDeleteId = valueDeleteLinkArray[5];\n\n const instanceShoppingListID = `${id.split('.')[1]}.${id.split('.')[2]}`;\n rowArray.push({\n text: element[item.split(':')[0]],\n callback_data: `sList:${instanceShoppingListID}:${instanceAlexa}:${valueDeleteId}:`,\n });\n } else {\n rowArray.push({ text: element[item.split(':')[0]], callback_data: '1' });\n }\n });\n if (index == 0) {\n keyboard.inline_keyboard.push(firstRow);\n }\n keyboard.inline_keyboard.push(rowArray);\n });\n\n debug([{ text: 'keyboard:', val: keyboard }]);\n\n return { text: headline, keyboard };\n } catch (err: any) {\n error([\n { text: 'Error createKeyboardFromJson:', val: err.message },\n { text: 'Stack:', val: err.stack },\n ]);\n }\n};\n\nfunction createTextTableFromJson(val: string, textToSend: string): string | undefined {\n try {\n if (!val) {\n return;\n }\n const substring = decomposeText(textToSend, '{json:', '}').substring;\n const array = substring.split(';');\n const itemArray: string[] = array[1].replace('[', '').replace(']', '').replace(/\"/g, '').split(',');\n const valArray: ValArray[] = JSON.parse(val);\n // Array f\u00FCr die Gr\u00F6\u00DFte L\u00E4nge der Items\n const lengthArray: number[] = [];\n // Tr\u00E4gt f\u00FCr jedes Item einen Eintrag im lengthArray ein\n itemArray.forEach(element => {\n lengthArray.push(element.split(':')[1].length);\n });\n valArray.forEach(element => {\n itemArray.forEach((item, index) => {\n if (lengthArray[index] < element[item.split(':')[0]].toString().length) {\n lengthArray[index] = element[item.split(':')[0]].toString().length;\n }\n });\n });\n debug([{ text: 'Length of rows', val: lengthArray }]);\n const headline = array[2];\n let textTable = textToSend.replace(substring, '').trim();\n if (textTable != '') {\n textTable += ' \\n\\n';\n }\n textTable += ` ${headline} \\n\\``;\n const enlargeColumn = 1;\n const reduce = lengthArray.length == 1 ? 2 : 0;\n const lineLength = lengthArray.reduce((a, b) => a + b, 0) + 5 - reduce + enlargeColumn * lengthArray.length;\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n valArray.forEach((element, elementIndex) => {\n itemArray.forEach((item, index) => {\n // TableHead\n if (elementIndex == 0 && index == 0) {\n textTable += '|';\n itemArray.forEach((item2, i) => {\n if (item2.split(':')[1].length > 0) {\n textTable += ` ${item2\n .split(':')[1]\n .toString()\n .padEnd(lengthArray[i] + enlargeColumn, ' ')}|`;\n if (i == itemArray.length - 1) {\n textTable += '\\n';\n // Breakline\n textTable += `${'-'.repeat(lineLength)} \\n`;\n }\n } else {\n textTable = textTable.slice(0, -1);\n }\n });\n }\n // TableBody\n if (index == 0) {\n textTable += '|';\n }\n textTable += ` ${element[item.split(':')[0]].toString().padEnd(lengthArray[index] + enlargeColumn, ' ')}|`;\n if (index == itemArray.length - 1) {\n textTable += '\\n';\n }\n });\n });\n // Breakline\n textTable += '-'.repeat(lineLength);\n textTable += '`';\n return textTable;\n } catch (e: any) {\n error([\n { text: 'Error createTextTableFromJson:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\nexport { createKeyboardFromJson, createTextTableFromJson };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }