iobroker.telegram-menu 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +12 -0
  2. package/admin/build/index.js +49 -49
  3. package/admin/build/index.js.map +3 -3
  4. package/admin/css/button.css +3 -0
  5. package/admin/css/row-editor.css +1 -1
  6. package/admin/css/style.css +46 -25
  7. package/admin/css/textarea.css +7 -11
  8. package/admin/i18n/de/translations.json +124 -123
  9. package/admin/i18n/en/translations.json +3 -2
  10. package/admin/i18n/es/translations.json +3 -2
  11. package/admin/i18n/fr/translations.json +3 -2
  12. package/admin/i18n/it/translations.json +3 -2
  13. package/admin/i18n/nl/translations.json +3 -2
  14. package/admin/i18n/pl/translations.json +3 -2
  15. package/admin/i18n/pt/translations.json +3 -2
  16. package/admin/i18n/ru/translations.json +3 -2
  17. package/admin/i18n/uk/translations.json +3 -2
  18. package/admin/i18n/zh-cn/translations.json +3 -2
  19. package/admin/words.js +3 -1
  20. package/build/admin/src/config/helper.js +178 -0
  21. package/build/admin/src/config/helper.js.map +1 -0
  22. package/build/admin/src/lib/Utils.js +64 -0
  23. package/build/admin/src/lib/Utils.js.map +1 -0
  24. package/build/admin/src/types/event.js +3 -0
  25. package/build/admin/src/types/event.js.map +1 -0
  26. package/build/app/action.js +270 -0
  27. package/build/app/action.js.map +7 -0
  28. package/build/app/adapterManager.js +36 -0
  29. package/build/app/adapterManager.js.map +7 -0
  30. package/build/app/adapterStartMenuSend.js +59 -0
  31. package/build/app/adapterStartMenuSend.js.map +7 -0
  32. package/build/app/backMenu.js +110 -0
  33. package/build/app/backMenu.js.map +7 -0
  34. package/build/app/botAction.js +47 -0
  35. package/build/app/botAction.js.map +7 -0
  36. package/build/app/configVariables.js +56 -0
  37. package/build/app/configVariables.js.map +7 -0
  38. package/build/app/connection.js +42 -0
  39. package/build/app/connection.js.map +7 -0
  40. package/build/app/createState.js +42 -0
  41. package/build/app/createState.js.map +7 -0
  42. package/build/app/dynamicSwitch.js +69 -0
  43. package/build/app/dynamicSwitch.js.map +7 -0
  44. package/build/app/dynamicSwitchMenu.js +69 -0
  45. package/build/app/dynamicSwitchMenu.js.map +7 -0
  46. package/build/app/dynamicValue.js +80 -0
  47. package/build/app/dynamicValue.js.map +7 -0
  48. package/build/app/echarts.js +60 -0
  49. package/build/app/echarts.js.map +7 -0
  50. package/build/app/getstate.js +148 -0
  51. package/build/app/getstate.js.map +7 -0
  52. package/build/app/global.js +2 -0
  53. package/build/app/global.js.map +7 -0
  54. package/build/app/httpRequest.js +84 -0
  55. package/build/app/httpRequest.js.map +7 -0
  56. package/build/app/jsonTable.js +158 -0
  57. package/build/app/jsonTable.js.map +7 -0
  58. package/build/app/logging.js +46 -0
  59. package/build/app/logging.js.map +7 -0
  60. package/build/app/messageIds.js +116 -0
  61. package/build/app/messageIds.js.map +7 -0
  62. package/build/app/processData.js +198 -0
  63. package/build/app/processData.js.map +7 -0
  64. package/build/app/sendNav.js +49 -0
  65. package/build/app/sendNav.js.map +7 -0
  66. package/build/app/sendpic.js +95 -0
  67. package/build/app/sendpic.js.map +7 -0
  68. package/build/app/sentry.js +43 -0
  69. package/build/app/sentry.js.map +7 -0
  70. package/build/app/setStateIdsToListenTo.js +42 -0
  71. package/build/app/setStateIdsToListenTo.js.map +7 -0
  72. package/build/app/setstate.js +145 -0
  73. package/build/app/setstate.js.map +7 -0
  74. package/build/app/shoppingList.js +97 -0
  75. package/build/app/shoppingList.js.map +7 -0
  76. package/build/app/subMenu.js +281 -0
  77. package/build/app/subMenu.js.map +7 -0
  78. package/build/app/subscribeStates.js +41 -0
  79. package/build/app/subscribeStates.js.map +7 -0
  80. package/build/app/telegram.js +131 -0
  81. package/build/app/telegram.js.map +7 -0
  82. package/build/app/validateMenus.js +64 -0
  83. package/build/app/validateMenus.js.map +7 -0
  84. package/build/build/src/app/action.js +447 -0
  85. package/build/build/src/app/adapterStartMenuSend.js +37 -0
  86. package/build/build/src/app/backMenu.js +70 -0
  87. package/build/build/src/app/botAction.js +25 -0
  88. package/build/build/src/app/connection.js +19 -0
  89. package/build/build/src/app/createState.js +19 -0
  90. package/build/build/src/app/dynamicSwitch.js +51 -0
  91. package/build/build/src/app/dynamicValue.js +64 -0
  92. package/build/build/src/app/echarts.js +45 -0
  93. package/build/build/src/app/getstate.js +157 -0
  94. package/build/build/src/app/global.js +59 -0
  95. package/build/build/src/app/httpRequest.js +64 -0
  96. package/build/build/src/app/jsonTable.js +147 -0
  97. package/build/build/src/app/logging.js +13 -0
  98. package/build/build/src/app/messageIds.js +88 -0
  99. package/build/build/src/app/processData.js +208 -0
  100. package/build/build/src/app/sendNav.js +30 -0
  101. package/build/build/src/app/sendpic.js +69 -0
  102. package/build/build/src/app/setstate.js +126 -0
  103. package/build/build/src/app/shoppingList.js +72 -0
  104. package/build/build/src/app/subMenu.js +361 -0
  105. package/build/build/src/app/subscribeStates.js +25 -0
  106. package/build/build/src/app/telegram.js +101 -0
  107. package/build/build/src/lib/string.js +28 -0
  108. package/build/build/src/lib/time.js +23 -0
  109. package/build/build/src/lib/utilities.js +263 -0
  110. package/build/build/src/lib/utils.js +13 -0
  111. package/build/build/src/main.js +402 -0
  112. package/build/config/config.js +134 -0
  113. package/build/config/config.js.map +7 -0
  114. package/build/io-package.json +87 -87
  115. package/build/lib/action.js +1 -3
  116. package/build/lib/action.js.map +2 -2
  117. package/build/lib/adapterStartMenuSend.js.map +1 -1
  118. package/build/lib/appUtils.js +158 -0
  119. package/build/lib/appUtils.js.map +7 -0
  120. package/build/lib/appUtilsString.js +37 -0
  121. package/build/lib/appUtilsString.js.map +7 -0
  122. package/build/lib/backMenu.js.map +2 -2
  123. package/build/lib/botAction.js.map +1 -1
  124. package/build/lib/dynamicSwitch.js.map +1 -1
  125. package/build/lib/dynamicValue.js.map +1 -1
  126. package/build/lib/echarts.js.map +1 -1
  127. package/build/lib/getstate.js.map +1 -1
  128. package/build/lib/global.js.map +1 -1
  129. package/build/lib/httpRequest.js.map +1 -1
  130. package/build/lib/json.js +54 -0
  131. package/build/lib/json.js.map +7 -0
  132. package/build/lib/jsonTable.js.map +1 -1
  133. package/build/lib/math.js +41 -0
  134. package/build/lib/math.js.map +7 -0
  135. package/build/lib/messageIds.js.map +1 -1
  136. package/build/lib/object.js +35 -0
  137. package/build/lib/object.js.map +7 -0
  138. package/build/lib/processData.js +4 -18
  139. package/build/lib/processData.js.map +3 -3
  140. package/build/lib/sendNav.js.map +1 -1
  141. package/build/lib/sendpic.js +23 -22
  142. package/build/lib/sendpic.js.map +2 -2
  143. package/build/lib/setstate.js.map +1 -1
  144. package/build/lib/shoppingList.js.map +1 -1
  145. package/build/lib/splitValues.js +63 -0
  146. package/build/lib/splitValues.js.map +7 -0
  147. package/build/lib/string.js +125 -3
  148. package/build/lib/string.js.map +2 -2
  149. package/build/lib/subMenu.js +1 -2
  150. package/build/lib/subMenu.js.map +2 -2
  151. package/build/lib/subscribeStates.js.map +1 -1
  152. package/build/lib/telegram.js.map +1 -1
  153. package/build/lib/time.js +93 -0
  154. package/build/lib/time.js.map +7 -0
  155. package/build/lib/utilities.js +84 -281
  156. package/build/lib/utilities.js.map +3 -3
  157. package/build/lib/utils.js +66 -0
  158. package/build/lib/utils.js.map +7 -0
  159. package/build/main.js +151 -233
  160. package/build/main.js.map +3 -3
  161. package/build/src/app/action.js +239 -0
  162. package/build/src/app/action.js.map +1 -0
  163. package/build/src/app/adapterManager.js +12 -0
  164. package/build/src/app/adapterManager.js.map +1 -0
  165. package/build/src/app/adapterStartMenuSend.js +36 -0
  166. package/build/src/app/adapterStartMenuSend.js.map +1 -0
  167. package/build/src/app/backMenu.js +81 -0
  168. package/build/src/app/backMenu.js.map +1 -0
  169. package/build/src/app/botAction.js +25 -0
  170. package/build/src/app/botAction.js.map +1 -0
  171. package/build/src/app/configVariables.js +32 -0
  172. package/build/src/app/configVariables.js.map +1 -0
  173. package/build/src/app/connection.js +20 -0
  174. package/build/src/app/connection.js.map +1 -0
  175. package/build/src/app/createState.js +19 -0
  176. package/build/src/app/createState.js.map +1 -0
  177. package/build/src/app/dynamicSwitch.js +52 -0
  178. package/build/src/app/dynamicSwitch.js.map +1 -0
  179. package/build/src/app/dynamicSwitchMenu.js +52 -0
  180. package/build/src/app/dynamicSwitchMenu.js.map +1 -0
  181. package/build/src/app/dynamicValue.js +52 -0
  182. package/build/src/app/dynamicValue.js.map +1 -0
  183. package/build/src/app/echarts.js +33 -0
  184. package/build/src/app/echarts.js.map +1 -0
  185. package/build/src/app/getstate.js +122 -0
  186. package/build/src/app/getstate.js.map +1 -0
  187. package/build/src/app/global.js +8 -0
  188. package/build/src/app/global.js.map +1 -0
  189. package/build/src/app/httpRequest.js +55 -0
  190. package/build/src/app/httpRequest.js.map +1 -0
  191. package/build/src/app/jsonTable.js +147 -0
  192. package/build/src/app/jsonTable.js.map +1 -0
  193. package/build/src/app/logging.js +22 -0
  194. package/build/src/app/logging.js.map +1 -0
  195. package/build/src/app/messageIds.js +89 -0
  196. package/build/src/app/messageIds.js.map +1 -0
  197. package/build/src/app/processData.js +153 -0
  198. package/build/src/app/processData.js.map +1 -0
  199. package/build/src/app/sendNav.js +26 -0
  200. package/build/src/app/sendNav.js.map +1 -0
  201. package/build/src/app/sendpic.js +66 -0
  202. package/build/src/app/sendpic.js.map +1 -0
  203. package/build/src/app/sentry.js +18 -0
  204. package/build/src/app/sentry.js.map +1 -0
  205. package/build/src/app/setStateIdsToListenTo.js +17 -0
  206. package/build/src/app/setStateIdsToListenTo.js.map +1 -0
  207. package/build/src/app/setstate.js +114 -0
  208. package/build/src/app/setstate.js.map +1 -0
  209. package/build/src/app/shoppingList.js +74 -0
  210. package/build/src/app/shoppingList.js.map +1 -0
  211. package/build/src/app/subMenu.js +237 -0
  212. package/build/src/app/subMenu.js.map +1 -0
  213. package/build/src/app/subscribeStates.js +17 -0
  214. package/build/src/app/subscribeStates.js.map +1 -0
  215. package/build/src/app/telegram.js +83 -0
  216. package/build/src/app/telegram.js.map +1 -0
  217. package/build/src/app/validateMenus.js +30 -0
  218. package/build/src/app/validateMenus.js.map +1 -0
  219. package/build/src/config/config.js +100 -0
  220. package/build/src/config/config.js.map +1 -0
  221. package/build/src/lib/appUtils.js +126 -0
  222. package/build/src/lib/appUtils.js.map +1 -0
  223. package/build/src/lib/appUtilsString.js +13 -0
  224. package/build/src/lib/appUtilsString.js.map +1 -0
  225. package/build/src/lib/json.js +37 -0
  226. package/build/src/lib/json.js.map +1 -0
  227. package/build/src/lib/math.js +17 -0
  228. package/build/src/lib/math.js.map +1 -0
  229. package/build/src/lib/object.js +10 -0
  230. package/build/src/lib/object.js.map +1 -0
  231. package/build/src/lib/splitValues.js +35 -0
  232. package/build/src/lib/splitValues.js.map +1 -0
  233. package/build/src/lib/string.js +121 -0
  234. package/build/src/lib/string.js.map +1 -0
  235. package/build/src/lib/time.js +57 -0
  236. package/build/src/lib/time.js.map +1 -0
  237. package/build/src/lib/utilities.js +111 -0
  238. package/build/src/lib/utilities.js.map +1 -0
  239. package/build/src/lib/utils.js +37 -0
  240. package/build/src/lib/utils.js.map +1 -0
  241. package/build/src/main.js +332 -0
  242. package/build/src/main.js.map +1 -0
  243. package/build/src/test/setup.js +12 -0
  244. package/build/src/test/setup.js.map +1 -0
  245. package/build/src/types/types.js +3 -0
  246. package/build/src/types/types.js.map +1 -0
  247. package/build/test/integration.js +0 -1
  248. package/build/test/integration.js.map +1 -1
  249. package/build/test/mocha.setup.js +0 -1
  250. package/build/test/mocha.setup.js.map +1 -1
  251. package/build/test/package.js +0 -1
  252. package/build/test/package.js.map +1 -1
  253. package/build/test/setup.js +12 -0
  254. package/build/test/setup.js.map +1 -0
  255. package/build/test/test/appUtils.test.js +507 -0
  256. package/build/test/test/appUtils.test.js.map +1 -0
  257. package/build/test/test/appUtilsString.test.js +16 -0
  258. package/build/test/test/appUtilsString.test.js.map +1 -0
  259. package/build/test/test/math.test.js +33 -0
  260. package/build/test/test/math.test.js.map +1 -0
  261. package/build/test/test/object.test.js +54 -0
  262. package/build/test/test/object.test.js.map +1 -0
  263. package/build/test/test/string.test.js +361 -0
  264. package/build/test/test/string.test.js.map +1 -0
  265. package/build/test/test/time.test.js +201 -0
  266. package/build/test/test/time.test.js.map +1 -0
  267. package/build/test/test/utils.test.js +115 -0
  268. package/build/test/test/utils.test.js.map +1 -0
  269. package/build/types/types.js +15 -0
  270. package/build/types/types.js.map +3 -3
  271. package/io-package.json +19 -14
  272. package/package.json +14 -10
  273. package/build/main.test.js +0 -24
  274. package/build/main.test.js.map +0 -1
@@ -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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AAevB,oBAA4C;AAC5C,kBAAyB;AACzB,mBAAyB;AACzB,oBAA6B;AAC7B,4BAAoC;AAE7B,MAAM,oBAAoB,CAAC,SAC9B,CAAC,KAAK,SAAS,qBAAO,WAAW,IAAI,GAAG,IAAI,IAAI,qBAAO,WAAW,KAAK;AAEpE,SAAS,UACZ,YACA,KACA,SACuD;AACvD,QAAM,EAAE,wBAAwB,qBAAqB,QAAI;AAAA,IACrD;AAAA,IACA,qBAAO,KAAK;AAAA,IACZ,qBAAO,KAAK;AAAA,EAChB;AACA,QAAM,EAAE,KAAK,SAAS,MAAM,QAAI,sBAAS,CAAC,KAAK,sBAAsB,GAAG,OAAO;AAE/E,SAAO,QACD,EAAE,YAAY,sBAAsB,YAAY,KAAK,MAAM,IAC3D,EAAE,YAAY,sBAAsB,YAAY,SAAS,MAAM;AACzE;AAEO,SAAS,WAAW,KAAa,YAA4E;AAChH,QAAM,WAAW,WAAW,GAAG;AAC/B,QAAM,EAAE,sBAAsB,wBAAwB,cAAc,QAAI;AAAA,IACpE;AAAA,IACA,qBAAO,MAAM;AAAA,IACb,qBAAO,MAAM;AAAA,EACjB;AACA,QAAM,mBAAmB,SAAS,aAAa;AAE/C,MAAI,MAAM,QAAQ,GAAG;AACjB,WAAO,EAAE,cAAc,OAAO,MAAM,sBAAsB,OAAO,KAAK;AAAA,EAC1E;AACA,MAAI,MAAM,gBAAgB,GAAG;AACzB,WAAO,EAAE,cAAc,KAAK,MAAM,sBAAsB,OAAO,KAAK;AAAA,EACxE;AAEA,SAAO,EAAE,cAAc,SAAS,QAAQ,gBAAgB,GAAG,MAAM,sBAAsB,OAAO,MAAM;AACxG;AAEO,MAAM,8BAA8B,CAAC,gBAAgC,eAAiC;AACzG,QAAM,QAAkB,CAAC;AACzB,aAAW,OAAO,gBAAgB;AAC9B,QAAI,eAAe,GAAG,EAAE,SAAS,UAAU,GAAG;AAC1C,YAAM,KAAK,GAAG;AAAA,IAClB;AAAA,EACJ;AACA,SAAO;AACX;AAEO,MAAM,eAAe,CAAC,MAAM,UAA0B,MAAM,SAAS;AAErE,MAAM,qBAAqB,CAAC,QAA8B,IAAI,SAAS,IAAI,IAAI,OAAO;AAEtF,MAAM,qBAAqB,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAmB,WAAwC;AAClH,MAAI,QAAQ;AACR,aAAS,OACJ,QAAQ,OAAO,EAAE,EACjB,QAAQ,MAAM,CAAC,EACf,QAAQ,MAAM,CAAC,EACf,QAAQ,MAAM,CAAC,EACf,QAAQ,MAAM,CAAC,EACf,QAAQ,MAAM,EAAE,EAChB,QAAQ,QAAQ,CAAC,EACjB,QAAQ,MAAM,EAAE,MAAM,EAAE,CAAC,EACzB,QAAQ,KAAK,EAAE,EACf,QAAQ,KAAK,EAAE;AAAA,EACxB;AACA,SAAO;AACX;AAEO,SAAS,kBAAkB,wBAAuE;AA3FzG;AA4FI,QAAM,aAAa,uBAAuB,MAAM,GAAG;AACnD,QAAM,UAAU,WAAW,CAAC;AAC5B,QAAM,YAAW,gBAAW,CAAC,MAAZ,YAAiB;AAClC,QAAM,WAAU,gBAAW,CAAC,MAAZ,YAAiB;AACjC,SAAO,uBAAuB,SAAS,qBAAO,OAAO,SAAS,IACxD;AAAA,IACI,QAAI,4BAAa,QAAQ;AAAA;AAAA,IACzB,kBAAc,2BAAS,4BAAa,OAAO,CAAC;AAAA,EAChD,IACA;AAAA,IACI,QAAI,4BAAa,OAAO;AAAA;AAAA,IACxB,kBAAc,2BAAS,4BAAa,QAAQ,CAAC;AAAA,EACjD;AACV;AAEO,SAAS,YAAY,WAA4B;AACpD,SAAO,aAAa,OAAO,aAAa;AAC5C;AAEO,SAAS,gBAAgB,MAA6C;AACzE,QAAM,sBAA4C,CAAC;AAEnD,OAAK,QAAQ,CAAC,EAAE,OAAO,MAAM,YAAY,KAAK,MAAM;AAChD,UAAM,MAAkB,CAAC;AAEzB,sBAAkB,KAAK,EAClB,MAAM,qBAAO,WAAW,EACxB,QAAQ,SAAU,IAAI,OAAe;AAClC,UAAI,KAAK,QAAI,4BAAa,GAAG,MAAM,GAAG,CAAC;AAAA,IAC3C,CAAC;AAEL,wBAAoB,KAAK,EAAE,MAAM,MAAM,gBAAY,uBAAS,UAAU,GAAG,IAAI,CAAC;AAAA,EAClF,CAAC;AACD,SAAO;AACX;AAEO,SAAS,gBAAgB,KAA+C;AAC3E,QAAM,MAA0B,CAAC;AACjC,MAAI,QAAQ,SAAU,EAAE,KAAK,MAAM,YAAY,KAAK,GAAG;AACnD,QAAI,IAAI,IAAI,EAAE,KAAK,MAAM,WAAW;AAAA,EACxC,CAAC;AACD,SAAO;AACX;AAEO,MAAM,gBAAgB,CAAC,gBAA8B,eAAuC;AAC/F,QAAM,aAAyB,CAAC;AAChC,SAAO,KAAK,cAAc,EAAE,QAAQ,aAAW;AAC3C,eAAW,OAAO,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC,EAAE;AAAA,EACrD,CAAC;AACD,SAAO;AACX;AAEO,MAAM,+BAA+B,CAAC,YAAoB,QAA+B;AAC5F,QAAM,mBAAe,2CAAoB,UAAU;AACnD,MAAI,iBAAiB,IAAI;AACrB,WAAO,WAAW,QAAQ,cAAc,IAAI,SAAS,CAAC,EAAE,KAAK;AAAA,EACjE;AACA,SAAO,GAAG,UAAU,IAAI,GAAG,GAAG,KAAK;AACvC;AAEO,SAAS,gBACZ,cACA,KACO;AA3JX;AA4JI,SAAO,mBAAiB,gCAAK,WAAL,mBAAa,SAAQ,GAAC,gCAAK,WAAL,mBAAa;AAC/D;",
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("&&")) {
29
+ return "&&";
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('&&')) {\n return '&&';\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
+ }
@@ -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, Keyboard } 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: 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 =\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: keyboard, 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: 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,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,YAAY,UAAU,UAAqB;AAAA,QAChF;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,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;",
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
  }
@@ -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 { KeyboardItems, Keyboard } from './telegram-menu';\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"],
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
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
  }
@@ -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 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"],
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
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
  }
@@ -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: 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"],
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
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
  }
@@ -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) => {\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"],
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
5
  "mappings": "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",
6
6
  "names": ["TelegramMenu", "_a", "_b", "error"]
7
7
  }
@@ -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 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"],
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
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
  }
@@ -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 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"],
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
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
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/lib/jsonTable.ts"],
4
- "sourcesContent": ["import { decomposeText, parseJSON } from './global';\nimport { debug, error } from './logging';\nimport type { LastText, ValArray, KeyboardItem, Keyboard } 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: 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"],
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
5
  "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,41 @@
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 math_exports = {};
20
+ __export(math_exports, {
21
+ evaluate: () => evaluate
22
+ });
23
+ module.exports = __toCommonJS(math_exports);
24
+ var import_logging = require("../app/logging");
25
+ function evaluate(val, adapter) {
26
+ var _a;
27
+ try {
28
+ if (Array.isArray(val)) {
29
+ return { val: (_a = eval(val.join(" "))) != null ? _a : "", error: false };
30
+ }
31
+ return { val: eval(val), error: false };
32
+ } catch (e) {
33
+ (0, import_logging.errorLogger)("Error Eval:", e, adapter);
34
+ return { val: "", error: true };
35
+ }
36
+ }
37
+ // Annotate the CommonJS export names for ESM import in node:
38
+ 0 && (module.exports = {
39
+ evaluate
40
+ });
41
+ //# sourceMappingURL=math.js.map