iobroker.telegram-menu 2.3.0 → 2.4.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 (56) hide show
  1. package/README.md +12 -0
  2. package/build/app/action.js +10 -65
  3. package/build/app/action.js.map +2 -2
  4. package/build/app/backMenu.js +1 -1
  5. package/build/app/backMenu.js.map +2 -2
  6. package/build/app/dynamicSwitchMenu.js +1 -1
  7. package/build/app/dynamicSwitchMenu.js.map +2 -2
  8. package/build/app/getstate.js +9 -11
  9. package/build/app/getstate.js.map +2 -2
  10. package/build/app/httpRequest.js +2 -2
  11. package/build/app/httpRequest.js.map +2 -2
  12. package/build/app/idBySelector.js +103 -0
  13. package/build/app/idBySelector.js.map +7 -0
  14. package/build/app/jsonTable.js +3 -3
  15. package/build/app/jsonTable.js.map +2 -2
  16. package/build/app/messageIds.js +7 -1
  17. package/build/app/messageIds.js.map +2 -2
  18. package/build/app/processData.js +7 -7
  19. package/build/app/processData.js.map +2 -2
  20. package/build/app/sendNav.js +1 -1
  21. package/build/app/sendNav.js.map +2 -2
  22. package/build/app/sendpic.js +4 -5
  23. package/build/app/sendpic.js.map +2 -2
  24. package/build/app/setstate.js +9 -9
  25. package/build/app/setstate.js.map +3 -3
  26. package/build/app/shoppingList.js +3 -3
  27. package/build/app/shoppingList.js.map +2 -2
  28. package/build/app/subMenu.js +21 -32
  29. package/build/app/subMenu.js.map +2 -2
  30. package/build/app/telegram.js +14 -10
  31. package/build/app/telegram.js.map +2 -2
  32. package/build/lib/appUtils.js +6 -17
  33. package/build/lib/appUtils.js.map +2 -2
  34. package/build/lib/exchangeValue.js +81 -0
  35. package/build/lib/exchangeValue.js.map +7 -0
  36. package/build/lib/string.js +1 -23
  37. package/build/lib/string.js.map +2 -2
  38. package/build/lib/utilities.js +14 -13
  39. package/build/lib/utilities.js.map +2 -2
  40. package/build/main.js +11 -25
  41. package/build/main.js.map +3 -3
  42. package/build/src/lib/appUtils.js +3 -3
  43. package/build/src/lib/appUtils.js.map +1 -1
  44. package/build/src/lib/utilities.js +1 -1
  45. package/build/src/lib/utilities.js.map +1 -1
  46. package/build/test/test/appUtils.test.js +12 -0
  47. package/build/test/test/appUtils.test.js.map +1 -1
  48. package/build/test/test/object.test.js +12 -0
  49. package/build/test/test/object.test.js.map +1 -1
  50. package/build/test/test/string.test.js +30 -6
  51. package/build/test/test/string.test.js.map +1 -1
  52. package/build/test/test/time.test.js +183 -198
  53. package/build/test/test/time.test.js.map +1 -1
  54. package/build/types/types.js.map +1 -1
  55. package/io-package.json +27 -27
  56. package/package.json +1 -1
package/README.md CHANGED
@@ -35,6 +35,18 @@ You can create different groups with separate menus, and then assign users to th
35
35
  Placeholder for the next version (at the beginning of the line):
36
36
  ### **WORK IN PROGRESS**
37
37
  -->
38
+ ### 2.4.0 (2025-05-24)
39
+
40
+ - FIX: Error returnText is empty
41
+ - FEAT: Extension for get by function
42
+ - FIX: Errors reported by sentry
43
+
44
+ ### 2.3.1 (2025-05-20)
45
+
46
+
47
+ - FIX: #309 SetState only sets false
48
+ - FIX: #311 Delete does not navigate
49
+
38
50
  ### 2.3.0 (2025-05-12)
39
51
 
40
52
  - FIX: #303 GetState output in incorrect order
@@ -22,8 +22,7 @@ __export(action_exports, {
22
22
  bindingFunc: () => bindingFunc,
23
23
  checkEvent: () => checkEvent,
24
24
  generateActions: () => generateActions,
25
- getUserToSendFromUserListWithChatID: () => getUserToSendFromUserListWithChatID,
26
- idBySelector: () => idBySelector
25
+ getUserToSendFromUserListWithChatID: () => getUserToSendFromUserListWithChatID
27
26
  });
28
27
  module.exports = __toCommonJS(action_exports);
29
28
  var import_telegram = require("./telegram");
@@ -73,62 +72,6 @@ const bindingFunc = async (text, userToSend, telegramParams, parse_mode) => {
73
72
  (0, import_logging.errorLogger)("Error Binding function: ", e, import_main.adapter);
74
73
  }
75
74
  };
76
- const idBySelector = async ({
77
- selector,
78
- text,
79
- userToSend,
80
- newline,
81
- telegramParams
82
- }) => {
83
- let text2Send = "";
84
- try {
85
- const functions = selector.replace(import_config.config.functionSelektor, "");
86
- let enums = [];
87
- const result = await import_main.adapter.getEnumsAsync();
88
- if (!(result == null ? void 0 : result["enum.functions"][`enum.functions.${functions}`])) {
89
- return;
90
- }
91
- enums = result["enum.functions"][`enum.functions.${functions}`].common.members;
92
- if (!enums) {
93
- return;
94
- }
95
- const promises = enums.map(async (id) => {
96
- const value = await import_main.adapter.getForeignStateAsync(id);
97
- if ((0, import_utils.isDefined)(value == null ? void 0 : value.val)) {
98
- let newText = text;
99
- let res;
100
- if (text.includes("{common.name}")) {
101
- res = await import_main.adapter.getForeignObjectAsync(id);
102
- import_main.adapter.log.debug(`Name ${(0, import_string.jsonString)(res == null ? void 0 : res.common.name)}`);
103
- if (res && typeof res.common.name === "string") {
104
- newText = newText.replace("{common.name}", res.common.name);
105
- }
106
- }
107
- if (text.includes("&&")) {
108
- text2Send += newText.replace("&&", String(value.val));
109
- } else if (text.includes("&&")) {
110
- text2Send += newText.replace("&&", String(value.val));
111
- } else {
112
- text2Send += newText;
113
- text2Send += ` ${value.val}`;
114
- }
115
- }
116
- text2Send += (0, import_string.getNewline)(newline);
117
- import_main.adapter.log.debug(`text2send ${JSON.stringify(text2Send)}`);
118
- });
119
- Promise.all(promises).then(async () => {
120
- await (0, import_telegram.sendToTelegram)({
121
- userToSend,
122
- textToSend: text2Send,
123
- telegramParams
124
- });
125
- }).catch((e) => {
126
- (0, import_logging.errorLogger)("Error Promise:", e, import_main.adapter);
127
- });
128
- } catch (error) {
129
- (0, import_logging.errorLogger)("Error idBySelector: ", error, import_main.adapter);
130
- }
131
- };
132
75
  function generateActions({
133
76
  action,
134
77
  userObject
@@ -142,7 +85,7 @@ function generateActions({
142
85
  }
143
86
  userObject[triggerName] = { switch: [] };
144
87
  IDs.forEach(function(id, index2) {
145
- var _a;
88
+ var _a, _b;
146
89
  listOfSetStateIds.push(id);
147
90
  const toggle = (0, import_utils.isTruthy)(switch_checkbox[index2]);
148
91
  const newObj = {
@@ -151,10 +94,10 @@ function generateActions({
151
94
  toggle,
152
95
  confirm: confirm[index2],
153
96
  returnText: returnText[index2],
154
- ack: (0, import_utils.isTruthy)(ack[index2]),
97
+ ack: (0, import_utils.isTruthy)((_a = ack == null ? void 0 : ack[index2]) != null ? _a : false),
155
98
  parse_mode: (0, import_utils.isTruthy)(parse_mode[0])
156
99
  };
157
- if (Array.isArray((_a = userObject[triggerName]) == null ? void 0 : _a.switch)) {
100
+ if (Array.isArray((_b = userObject[triggerName]) == null ? void 0 : _b.switch)) {
158
101
  userObject[triggerName].switch.push(newObj);
159
102
  }
160
103
  });
@@ -208,9 +151,12 @@ const checkEvent = async (dataObject, id, state, menuData, telegramParams, users
208
151
  const menuArray = [];
209
152
  let ok = false;
210
153
  let calledNav = "";
154
+ if (!dataObject.action) {
155
+ return false;
156
+ }
211
157
  Object.keys(dataObject.action).forEach((menu) => {
212
- var _a2;
213
- if ((_a2 = dataObject.action[menu]) == null ? void 0 : _a2.events) {
158
+ var _a2, _b;
159
+ if ((_b = (_a2 = dataObject.action) == null ? void 0 : _a2[menu]) == null ? void 0 : _b.events) {
214
160
  dataObject.action[menu].events.forEach((event) => {
215
161
  if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {
216
162
  const condition = event.condition[0];
@@ -264,7 +210,6 @@ const getUserToSendFromUserListWithChatID = (userListWithChatID, chatID) => {
264
210
  bindingFunc,
265
211
  checkEvent,
266
212
  generateActions,
267
- getUserToSendFromUserListWithChatID,
268
- idBySelector
213
+ getUserToSendFromUserListWithChatID
269
214
  });
270
215
  //# sourceMappingURL=action.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/action.ts"],
4
- "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { callSubMenu } from './subMenu';\nimport { sendNav } from './sendNav';\nimport { backMenuFunc } from './backMenu';\nimport { errorLogger } from './logging';\nimport { adapter } from '../main';\nimport type {\n Actions,\n BindingObject,\n BooleanString,\n DataObject,\n GenerateActionsNewObject,\n MenuData,\n NewObjectStructure,\n Part,\n Switch,\n TelegramParams,\n UserListWithChatId,\n UserObjectActions,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText, getNewline, jsonString } from '../lib/string';\nimport { isDefined, isFalsy, isTruthy } from '../lib/utils';\nimport { evaluate } from '../lib/math';\nimport { arrayOfEntries, config } from '../config/config';\nimport { getBindingValues } from '../lib/splitValues';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): Promise<void> => {\n let textToSend;\n\n try {\n const { substringExcludeSearch } = decomposeText(text, config.binding.start, config.binding.end);\n const arrayOfItems = substringExcludeSearch.split(config.binding.splitChar);\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const { key, id } = getBindingValues(item);\n if (id) {\n const result = await adapter.getForeignStateAsync(id);\n\n if (result) {\n bindingObject.values[key] = result.val?.toString() ?? '';\n }\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n const { val } = evaluate(item, adapter);\n textToSend = String(val);\n }\n }\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n } catch (e: any) {\n errorLogger('Error Binding function: ', e, adapter);\n }\n};\n\nconst idBySelector = async ({\n selector,\n text,\n userToSend,\n newline,\n telegramParams,\n}: {\n selector: string;\n text: string;\n userToSend: string;\n newline: BooleanString;\n telegramParams: TelegramParams;\n}): Promise<void> => {\n let text2Send = '';\n try {\n const functions = selector.replace(config.functionSelektor, '');\n let enums: string[] | undefined = [];\n const result = await adapter.getEnumsAsync();\n\n if (!result?.['enum.functions'][`enum.functions.${functions}`]) {\n return;\n }\n enums = result['enum.functions'][`enum.functions.${functions}`].common.members;\n if (!enums) {\n return;\n }\n\n const promises = enums.map(async (id: string) => {\n const value = await adapter.getForeignStateAsync(id);\n if (isDefined(value?.val)) {\n let newText = text;\n let res;\n\n if (text.includes('{common.name}')) {\n res = await adapter.getForeignObjectAsync(id);\n adapter.log.debug(`Name ${jsonString(res?.common.name)}`);\n\n if (res && typeof res.common.name === 'string') {\n newText = newText.replace('{common.name}', res.common.name);\n }\n }\n if (text.includes('&amp;&amp;')) {\n text2Send += newText.replace('&amp;&amp;', String(value.val));\n } else if (text.includes('&&')) {\n text2Send += newText.replace('&&', String(value.val));\n } else {\n text2Send += newText;\n text2Send += ` ${value.val}`;\n }\n }\n\n text2Send += getNewline(newline);\n\n adapter.log.debug(`text2send ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(async () => {\n await sendToTelegram({\n userToSend,\n textToSend: text2Send,\n telegramParams,\n });\n })\n .catch(e => {\n errorLogger('Error Promise:', e, adapter);\n });\n } catch (error: any) {\n errorLogger('Error idBySelector: ', error, adapter);\n }\n};\n\nfunction generateActions({\n action,\n userObject,\n}: {\n action?: Actions;\n userObject: NewObjectStructure;\n}): { obj: NewObjectStructure; ids: string[] } | undefined {\n try {\n const listOfSetStateIds: string[] = [];\n action?.set.forEach(function (\n { trigger, switch_checkbox, returnText, parse_mode, values, confirm, ack, IDs },\n index,\n ) {\n const triggerName = trigger[0];\n if (index == 0) {\n userObject[triggerName] = { switch: [] };\n }\n userObject[triggerName] = { switch: [] };\n\n IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = isTruthy(switch_checkbox[index]);\n\n const newObj: Switch = {\n id: IDs[index],\n value: values[index],\n toggle: toggle,\n confirm: confirm[index],\n returnText: returnText[index],\n ack: isTruthy(ack[index]),\n parse_mode: isTruthy(parse_mode[0]),\n };\n if (Array.isArray(userObject[triggerName]?.switch)) {\n userObject[triggerName].switch.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n const actions = action?.[item.objName as keyof Actions];\n\n actions?.forEach(function (element, index) {\n const trigger = element.trigger[0];\n userObject[trigger] = { [item.name]: [] };\n if (index == 0) {\n userObject[trigger] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (id, index) {\n const newObj = {} as GenerateActionsNewObject;\n item.elements.forEach(({ name, value, index: elIndex }) => {\n const elName = (value ? value : name) as keyof typeof element;\n const newIndex = elIndex ? elIndex : index;\n\n const val = !element[elName] ? false : element[elName][newIndex] || 'false';\n\n if (name === 'parse_mode') {\n newObj.parse_mode = isTruthy(val);\n }\n\n if (typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&amp;/g, '&') as any;\n }\n });\n\n (userObject?.[trigger]?.[item.name as keyof Part] as GenerateActionsNewObject[]).push(newObj);\n });\n });\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n errorLogger('Error generateActions:', err, adapter);\n }\n}\n\nconst adjustValueType = (value: keyof NewObjectStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value)) {\n adapter.log.error(`Error: Value is not a number: ${value}`);\n return false;\n }\n return parseFloat(value);\n }\n if (valueType == 'boolean') {\n return isTruthy(value);\n }\n return value;\n};\n\nexport const checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n telegramParams: TelegramParams,\n usersInGroup: UsersInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action[menu]?.events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n const condition = event.condition[0];\n if (\n ((state.val == true || state.val == 'true') && isTruthy(condition)) ||\n ((state.val == false || state.val == 'false') && isFalsy(condition)) ||\n (typeof state.val == 'number' && state.val == parseInt(condition)) ||\n state.val == condition\n ) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (!ok || !menuArray.length) {\n return false;\n }\n\n for (const menu of menuArray) {\n const part = menuData[menu][calledNav as keyof DataObject];\n if (usersInGroup[menu] && part) {\n for (const user of usersInGroup[menu]) {\n const menus = Object.keys(menuData);\n\n if (part.nav) {\n backMenuFunc({ activePage: calledNav, navigation: part.nav, userToSend: user });\n }\n\n if (part?.nav?.[0][0].includes('menu:')) {\n await callSubMenu({\n jsonStringNav: part.nav[0][0],\n userToSend: user,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: menuData,\n menus: menus,\n });\n return true;\n }\n await sendNav(part, user, telegramParams);\n }\n }\n }\n return true;\n};\n\nexport const getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | undefined => {\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n return element.name;\n }\n }\n};\n\nexport { idBySelector, generateActions, bindingFunc, adjustValueType };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { sendToTelegram } from './telegram';\nimport { callSubMenu } from './subMenu';\nimport { sendNav } from './sendNav';\nimport { backMenuFunc } from './backMenu';\nimport { errorLogger } from './logging';\n\nimport { adapter } from '../main';\n\nimport type {\n Actions,\n BindingObject,\n DataObject,\n GenerateActionsNewObject,\n MenuData,\n NewObjectStructure,\n Part,\n Switch,\n TelegramParams,\n UserListWithChatId,\n UserObjectActions,\n UsersInGroup,\n} from '../types/types';\nimport { decomposeText } from '../lib/string';\nimport { isFalsy, isTruthy } from '../lib/utils';\nimport { evaluate } from '../lib/math';\nimport { arrayOfEntries, config } from '../config/config';\nimport { getBindingValues } from '../lib/splitValues';\n\nconst bindingFunc = async (\n text: string,\n userToSend: string,\n telegramParams: TelegramParams,\n parse_mode?: boolean,\n): Promise<void> => {\n let textToSend;\n\n try {\n const { substringExcludeSearch } = decomposeText(text, config.binding.start, config.binding.end);\n const arrayOfItems = substringExcludeSearch.split(config.binding.splitChar);\n const bindingObject: BindingObject = {\n values: {},\n };\n\n for (let item of arrayOfItems) {\n if (!item.includes('?')) {\n const { key, id } = getBindingValues(item);\n if (id) {\n const result = await adapter.getForeignStateAsync(id);\n\n if (result) {\n bindingObject.values[key] = result.val?.toString() ?? '';\n }\n }\n } else {\n Object.keys(bindingObject.values).forEach(function (key) {\n item = item.replace(key, bindingObject.values[key]);\n });\n\n const { val } = evaluate(item, adapter);\n textToSend = String(val);\n }\n }\n await sendToTelegram({\n userToSend,\n textToSend,\n telegramParams,\n parse_mode,\n });\n } catch (e: any) {\n errorLogger('Error Binding function: ', e, adapter);\n }\n};\n\nfunction generateActions({\n action,\n userObject,\n}: {\n action?: Actions;\n userObject: NewObjectStructure;\n}): { obj: NewObjectStructure; ids: string[] } | undefined {\n try {\n const listOfSetStateIds: string[] = [];\n action?.set.forEach(function (\n { trigger, switch_checkbox, returnText, parse_mode, values, confirm, ack, IDs },\n index,\n ) {\n const triggerName = trigger[0];\n if (index == 0) {\n userObject[triggerName] = { switch: [] };\n }\n userObject[triggerName] = { switch: [] };\n\n IDs.forEach(function (id: string, index: number) {\n listOfSetStateIds.push(id);\n const toggle = isTruthy(switch_checkbox[index]);\n\n const newObj: Switch = {\n id: IDs[index],\n value: values[index],\n toggle: toggle,\n confirm: confirm[index],\n returnText: returnText[index],\n ack: isTruthy(ack?.[index] ?? false),\n parse_mode: isTruthy(parse_mode[0]),\n };\n if (Array.isArray(userObject[triggerName]?.switch)) {\n userObject[triggerName].switch.push(newObj);\n }\n });\n });\n\n arrayOfEntries.forEach(item => {\n const actions = action?.[item.objName as keyof Actions];\n\n actions?.forEach(function (element, index) {\n const trigger = element.trigger[0];\n userObject[trigger] = { [item.name]: [] };\n if (index == 0) {\n userObject[trigger] = { [item.name as keyof UserObjectActions]: [] };\n }\n\n (element[item.loop as keyof typeof element] as string[]).forEach(function (id, index) {\n const newObj = {} as GenerateActionsNewObject;\n item.elements.forEach(({ name, value, index: elIndex }) => {\n const elName = (value ? value : name) as keyof typeof element;\n const newIndex = elIndex ? elIndex : index;\n\n const val = !element[elName] ? false : element[elName][newIndex] || 'false';\n\n if (name === 'parse_mode') {\n newObj.parse_mode = isTruthy(val);\n }\n\n if (typeof val === 'string') {\n newObj[name as keyof GenerateActionsNewObject] = val.replace(/&amp;/g, '&') as any;\n }\n });\n\n (userObject?.[trigger]?.[item.name as keyof Part] as GenerateActionsNewObject[]).push(newObj);\n });\n });\n });\n\n return { obj: userObject, ids: listOfSetStateIds };\n } catch (err: any) {\n errorLogger('Error generateActions:', err, adapter);\n }\n}\n\nconst adjustValueType = (value: keyof NewObjectStructure, valueType: string): boolean | string | number => {\n if (valueType == 'number') {\n if (!parseFloat(value)) {\n adapter.log.error(`Error: Value is not a number: ${value}`);\n return false;\n }\n return parseFloat(value);\n }\n if (valueType == 'boolean') {\n return isTruthy(value);\n }\n return value;\n};\n\nexport const checkEvent = async (\n dataObject: DataObject,\n id: string,\n state: ioBroker.State,\n menuData: MenuData,\n telegramParams: TelegramParams,\n usersInGroup: UsersInGroup,\n): Promise<boolean> => {\n const menuArray: string[] = [];\n let ok = false;\n let calledNav = '';\n\n if (!dataObject.action) {\n return false;\n }\n\n Object.keys(dataObject.action).forEach(menu => {\n if (dataObject.action?.[menu]?.events) {\n dataObject.action[menu].events.forEach(event => {\n if (event.ID[0] == id && event.ack[0] == state.ack.toString()) {\n const condition = event.condition[0];\n if (\n ((state.val == true || state.val == 'true') && isTruthy(condition)) ||\n ((state.val == false || state.val == 'false') && isFalsy(condition)) ||\n (typeof state.val == 'number' && state.val == parseInt(condition)) ||\n state.val == condition\n ) {\n ok = true;\n menuArray.push(menu);\n calledNav = event.menu[0];\n }\n }\n });\n }\n });\n if (!ok || !menuArray.length) {\n return false;\n }\n\n for (const menu of menuArray) {\n const part = menuData[menu][calledNav as keyof DataObject];\n if (usersInGroup[menu] && part) {\n for (const user of usersInGroup[menu]) {\n const menus = Object.keys(menuData);\n\n if (part.nav) {\n backMenuFunc({ activePage: calledNav, navigation: part.nav, userToSend: user });\n }\n\n if (part?.nav?.[0][0].includes('menu:')) {\n await callSubMenu({\n jsonStringNav: part.nav[0][0],\n userToSend: user,\n telegramParams: telegramParams,\n part: part,\n allMenusWithData: menuData,\n menus: menus,\n });\n return true;\n }\n await sendNav(part, user, telegramParams);\n }\n }\n }\n return true;\n};\n\nexport const getUserToSendFromUserListWithChatID = (\n userListWithChatID: UserListWithChatId[],\n chatID: string,\n): string | undefined => {\n for (const element of userListWithChatID) {\n if (element.chatID == chatID) {\n return element.name;\n }\n }\n};\n\nexport { generateActions, bindingFunc, adjustValueType };\n"],
5
+ "mappings": "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",
6
6
  "names": ["index", "_a"]
7
7
  }
@@ -83,7 +83,7 @@ async function switchBack(userToSend, allMenusWithData, menus, lastMenu = false)
83
83
  const { text, parse_mode: parse_mode2 } = allMenusWithData[foundedMenu][lastListElement2];
84
84
  let textToSend2 = text;
85
85
  if (textToSend2) {
86
- textToSend2 = await (0, import_utilities.checkStatusInfo)(textToSend2);
86
+ textToSend2 = await (0, import_utilities.returnTextModifier)(textToSend2);
87
87
  }
88
88
  if ((_h = backMenu[userToSend]) == null ? void 0 : _h.last) {
89
89
  backMenu[userToSend].last = (_i = list2.pop()) != null ? _i : "";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/backMenu.ts"],
4
- "sourcesContent": ["import { errorLogger } from './logging';\nimport type { BackMenu, Keyboard, MenuData, Navigation } from '../types/types';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { adapter } from '../main';\nimport { jsonString } from '../lib/string';\nimport { backMenuLength } from '../config/config';\n\nconst backMenu: BackMenu = {};\n\nexport function backMenuFunc({\n activePage,\n navigation,\n userToSend,\n}: {\n activePage: string;\n navigation?: Navigation;\n userToSend: string;\n}): void {\n if (!navigation || !jsonString(navigation).split(`\"`)[1].includes('menu:')) {\n const list = backMenu[userToSend]?.list;\n const lastMenu = backMenu[userToSend]?.last;\n\n if (list?.length === backMenuLength) {\n list.shift();\n }\n if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n\n if (lastMenu && lastMenu !== '' && list) {\n list.push(lastMenu);\n }\n backMenu[userToSend].last = activePage;\n }\n}\n\nexport async function switchBack(\n userToSend: string,\n allMenusWithData: MenuData,\n menus: string[],\n lastMenu = false,\n): Promise<{ textToSend: string | undefined; keyboard: Keyboard; parse_mode: boolean | undefined } | undefined> {\n try {\n const list = backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n const lastListElement = list[list.length - 1];\n const lastElement = backMenu[userToSend]?.last;\n let keyboard: Keyboard;\n let foundedMenu = '';\n\n if (list.length) {\n for (const menu of menus) {\n const nav = lastElement ? allMenusWithData[menu]?.[lastElement]?.nav : undefined;\n const navBefore = allMenusWithData[menu]?.[lastListElement]?.nav;\n\n if (lastMenu && nav) {\n keyboard = nav;\n foundedMenu = menu;\n break;\n } else if (navBefore && !lastMenu) {\n keyboard = navBefore;\n foundedMenu = menu;\n break;\n }\n\n adapter.log.debug(`Menu call not found in this Menu: ${menu}`);\n }\n\n if (keyboard && foundedMenu != '') {\n if (!lastMenu) {\n const list = backMenu[userToSend]?.list;\n const listLength = list ? list.length - 1 : 0;\n const lastListElement = list?.[listLength];\n if (!lastListElement) {\n return;\n }\n const { text, parse_mode } = allMenusWithData[foundedMenu][lastListElement];\n let textToSend = text;\n if (textToSend) {\n textToSend = await checkStatusInfo(textToSend);\n }\n if (backMenu[userToSend]?.last) {\n backMenu[userToSend].last = list.pop() ?? '';\n }\n\n return { textToSend, keyboard, parse_mode };\n }\n\n const lastElement = backMenu[userToSend]?.last;\n if (!lastElement) {\n return;\n }\n const { parse_mode, text: textToSend } = allMenusWithData[foundedMenu][lastElement];\n\n return { textToSend, keyboard, parse_mode };\n }\n }\n } catch (e: any) {\n errorLogger('Error in switchBack:', e, adapter);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAgC;AAChC,kBAAwB;AACxB,oBAA2B;AAC3B,oBAA+B;AAE/B,MAAM,WAAqB,CAAC;AAErB,SAAS,aAAa;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AAjBT;AAkBI,MAAI,CAAC,cAAc,KAAC,0BAAW,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AACxE,UAAM,QAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,UAAM,YAAW,cAAS,UAAU,MAAnB,mBAAsB;AAEvC,SAAI,6BAAM,YAAW,8BAAgB;AACjC,WAAK,MAAM;AAAA,IACf;AACA,QAAI,CAAC,SAAS,UAAU,GAAG;AACvB,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AAEA,QAAI,YAAY,aAAa,MAAM,MAAM;AACrC,WAAK,KAAK,QAAQ;AAAA,IACtB;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACJ;AAEA,eAAsB,WAClB,YACA,kBACA,OACA,WAAW,OACiG;AAzChH;AA0CI,MAAI;AACA,UAAM,SAAO,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AACvE,UAAM,kBAAkB,KAAK,KAAK,SAAS,CAAC;AAC5C,UAAM,eAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,QAAI;AACJ,QAAI,cAAc;AAElB,QAAI,KAAK,QAAQ;AACb,iBAAW,QAAQ,OAAO;AACtB,cAAM,MAAM,eAAc,4BAAiB,IAAI,MAArB,mBAAyB,iBAAzB,mBAAuC,MAAM;AACvE,cAAM,aAAY,4BAAiB,IAAI,MAArB,mBAAyB,qBAAzB,mBAA2C;AAE7D,YAAI,YAAY,KAAK;AACjB,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ,WAAW,aAAa,CAAC,UAAU;AAC/B,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,qCAAqC,IAAI,EAAE;AAAA,MACjE;AAEA,UAAI,YAAY,eAAe,IAAI;AAC/B,YAAI,CAAC,UAAU;AACX,gBAAMA,SAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,gBAAM,aAAaA,QAAOA,MAAK,SAAS,IAAI;AAC5C,gBAAMC,mBAAkBD,SAAA,gBAAAA,MAAO;AAC/B,cAAI,CAACC,kBAAiB;AAClB;AAAA,UACJ;AACA,gBAAM,EAAE,MAAM,YAAAC,YAAW,IAAI,iBAAiB,WAAW,EAAED,gBAAe;AAC1E,cAAIE,cAAa;AACjB,cAAIA,aAAY;AACZ,YAAAA,cAAa,UAAM,kCAAgBA,WAAU;AAAA,UACjD;AACA,eAAI,cAAS,UAAU,MAAnB,mBAAsB,MAAM;AAC5B,qBAAS,UAAU,EAAE,QAAO,KAAAH,MAAK,IAAI,MAAT,YAAc;AAAA,UAC9C;AAEA,iBAAO,EAAE,YAAAG,aAAY,UAAU,YAAAD,YAAW;AAAA,QAC9C;AAEA,cAAME,gBAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,YAAI,CAACA,cAAa;AACd;AAAA,QACJ;AACA,cAAM,EAAE,YAAY,MAAM,WAAW,IAAI,iBAAiB,WAAW,EAAEA,YAAW;AAElF,eAAO,EAAE,YAAY,UAAU,WAAW;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,wBAAwB,GAAG,mBAAO;AAAA,EAClD;AACJ;",
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport type { BackMenu, Keyboard, MenuData, Navigation } from '../types/types';\nimport { returnTextModifier } from '../lib/utilities';\nimport { adapter } from '../main';\nimport { jsonString } from '../lib/string';\nimport { backMenuLength } from '../config/config';\n\nconst backMenu: BackMenu = {};\n\nexport function backMenuFunc({\n activePage,\n navigation,\n userToSend,\n}: {\n activePage: string;\n navigation?: Navigation;\n userToSend: string;\n}): void {\n if (!navigation || !jsonString(navigation).split(`\"`)[1].includes('menu:')) {\n const list = backMenu[userToSend]?.list;\n const lastMenu = backMenu[userToSend]?.last;\n\n if (list?.length === backMenuLength) {\n list.shift();\n }\n if (!backMenu[userToSend]) {\n backMenu[userToSend] = { list: [], last: '' };\n }\n\n if (lastMenu && lastMenu !== '' && list) {\n list.push(lastMenu);\n }\n backMenu[userToSend].last = activePage;\n }\n}\n\nexport async function switchBack(\n userToSend: string,\n allMenusWithData: MenuData,\n menus: string[],\n lastMenu = false,\n): Promise<{ textToSend: string | undefined; keyboard: Keyboard; parse_mode: boolean | undefined } | undefined> {\n try {\n const list = backMenu[userToSend]?.list ? backMenu[userToSend].list : [];\n const lastListElement = list[list.length - 1];\n const lastElement = backMenu[userToSend]?.last;\n let keyboard: Keyboard;\n let foundedMenu = '';\n\n if (list.length) {\n for (const menu of menus) {\n const nav = lastElement ? allMenusWithData[menu]?.[lastElement]?.nav : undefined;\n const navBefore = allMenusWithData[menu]?.[lastListElement]?.nav;\n\n if (lastMenu && nav) {\n keyboard = nav;\n foundedMenu = menu;\n break;\n } else if (navBefore && !lastMenu) {\n keyboard = navBefore;\n foundedMenu = menu;\n break;\n }\n\n adapter.log.debug(`Menu call not found in this Menu: ${menu}`);\n }\n\n if (keyboard && foundedMenu != '') {\n if (!lastMenu) {\n const list = backMenu[userToSend]?.list;\n const listLength = list ? list.length - 1 : 0;\n const lastListElement = list?.[listLength];\n if (!lastListElement) {\n return;\n }\n const { text, parse_mode } = allMenusWithData[foundedMenu][lastListElement];\n let textToSend = text;\n if (textToSend) {\n textToSend = await returnTextModifier(textToSend);\n }\n if (backMenu[userToSend]?.last) {\n backMenu[userToSend].last = list.pop() ?? '';\n }\n\n return { textToSend, keyboard, parse_mode };\n }\n\n const lastElement = backMenu[userToSend]?.last;\n if (!lastElement) {\n return;\n }\n const { parse_mode, text: textToSend } = allMenusWithData[foundedMenu][lastElement];\n\n return { textToSend, keyboard, parse_mode };\n }\n }\n } catch (e: any) {\n errorLogger('Error in switchBack:', e, adapter);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAmC;AACnC,kBAAwB;AACxB,oBAA2B;AAC3B,oBAA+B;AAE/B,MAAM,WAAqB,CAAC;AAErB,SAAS,aAAa;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACJ,GAIS;AAjBT;AAkBI,MAAI,CAAC,cAAc,KAAC,0BAAW,UAAU,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS,OAAO,GAAG;AACxE,UAAM,QAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,UAAM,YAAW,cAAS,UAAU,MAAnB,mBAAsB;AAEvC,SAAI,6BAAM,YAAW,8BAAgB;AACjC,WAAK,MAAM;AAAA,IACf;AACA,QAAI,CAAC,SAAS,UAAU,GAAG;AACvB,eAAS,UAAU,IAAI,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG;AAAA,IAChD;AAEA,QAAI,YAAY,aAAa,MAAM,MAAM;AACrC,WAAK,KAAK,QAAQ;AAAA,IACtB;AACA,aAAS,UAAU,EAAE,OAAO;AAAA,EAChC;AACJ;AAEA,eAAsB,WAClB,YACA,kBACA,OACA,WAAW,OACiG;AAzChH;AA0CI,MAAI;AACA,UAAM,SAAO,cAAS,UAAU,MAAnB,mBAAsB,QAAO,SAAS,UAAU,EAAE,OAAO,CAAC;AACvE,UAAM,kBAAkB,KAAK,KAAK,SAAS,CAAC;AAC5C,UAAM,eAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,QAAI;AACJ,QAAI,cAAc;AAElB,QAAI,KAAK,QAAQ;AACb,iBAAW,QAAQ,OAAO;AACtB,cAAM,MAAM,eAAc,4BAAiB,IAAI,MAArB,mBAAyB,iBAAzB,mBAAuC,MAAM;AACvE,cAAM,aAAY,4BAAiB,IAAI,MAArB,mBAAyB,qBAAzB,mBAA2C;AAE7D,YAAI,YAAY,KAAK;AACjB,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ,WAAW,aAAa,CAAC,UAAU;AAC/B,qBAAW;AACX,wBAAc;AACd;AAAA,QACJ;AAEA,4BAAQ,IAAI,MAAM,qCAAqC,IAAI,EAAE;AAAA,MACjE;AAEA,UAAI,YAAY,eAAe,IAAI;AAC/B,YAAI,CAAC,UAAU;AACX,gBAAMA,SAAO,cAAS,UAAU,MAAnB,mBAAsB;AACnC,gBAAM,aAAaA,QAAOA,MAAK,SAAS,IAAI;AAC5C,gBAAMC,mBAAkBD,SAAA,gBAAAA,MAAO;AAC/B,cAAI,CAACC,kBAAiB;AAClB;AAAA,UACJ;AACA,gBAAM,EAAE,MAAM,YAAAC,YAAW,IAAI,iBAAiB,WAAW,EAAED,gBAAe;AAC1E,cAAIE,cAAa;AACjB,cAAIA,aAAY;AACZ,YAAAA,cAAa,UAAM,qCAAmBA,WAAU;AAAA,UACpD;AACA,eAAI,cAAS,UAAU,MAAnB,mBAAsB,MAAM;AAC5B,qBAAS,UAAU,EAAE,QAAO,KAAAH,MAAK,IAAI,MAAT,YAAc;AAAA,UAC9C;AAEA,iBAAO,EAAE,YAAAG,aAAY,UAAU,YAAAD,YAAW;AAAA,QAC9C;AAEA,cAAME,gBAAc,cAAS,UAAU,MAAnB,mBAAsB;AAC1C,YAAI,CAACA,cAAa;AACd;AAAA,QACJ;AACA,cAAM,EAAE,YAAY,MAAM,WAAW,IAAI,iBAAiB,WAAW,EAAEA,YAAW;AAElF,eAAO,EAAE,YAAY,UAAU,WAAW;AAAA,MAC9C;AAAA,IACJ;AAAA,EACJ,SAAS,GAAQ;AACb,oCAAY,wBAAwB,GAAG,mBAAO;AAAA,EAClD;AACJ;",
6
6
  "names": ["list", "lastListElement", "parse_mode", "textToSend", "lastElement"]
7
7
  }
@@ -26,7 +26,7 @@ var import_utilities = require("../lib/utilities");
26
26
  var import_main = require("../main");
27
27
  async function createDynamicSwitchMenu(calledValue, device, text) {
28
28
  try {
29
- const changedCalledValue = await (0, import_utilities.checkStatusInfo)(calledValue);
29
+ const changedCalledValue = await (0, import_utilities.returnTextModifier)(calledValue);
30
30
  const splittedArray = changedCalledValue == null ? void 0 : changedCalledValue.replace(/"/g, "").split(":");
31
31
  if (!splittedArray) {
32
32
  return;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/dynamicSwitchMenu.ts"],
4
- "sourcesContent": ["import { errorLogger } from './logging';\nimport type { KeyboardItems, Keyboard } from '../types/types';\nimport { checkStatusInfo } from '../lib/utilities';\nimport { adapter } from '../main';\n\nasync function createDynamicSwitchMenu(\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 errorLogger('Error parsing dynSwitch:', e, adapter);\n }\n}\nexport { createDynamicSwitchMenu };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAgC;AAChC,kBAAwB;AAExB,eAAe,wBACX,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,oCAAY,4BAA4B,GAAG,mBAAO;AAAA,EACtD;AACJ;",
4
+ "sourcesContent": ["import { errorLogger } from './logging';\nimport type { KeyboardItems, Keyboard } from '../types/types';\nimport { returnTextModifier } from '../lib/utilities';\nimport { adapter } from '../main';\n\nasync function createDynamicSwitchMenu(\n calledValue: string,\n device: string,\n text: string,\n): Promise<{ text?: string; keyboard: Keyboard; device: string } | undefined> {\n try {\n const changedCalledValue = await returnTextModifier(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 errorLogger('Error parsing dynSwitch:', e, adapter);\n }\n}\nexport { createDynamicSwitchMenu };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4B;AAE5B,uBAAmC;AACnC,kBAAwB;AAExB,eAAe,wBACX,aACA,QACA,MAC0E;AAC1E,MAAI;AACA,UAAM,qBAAqB,UAAM,qCAAmB,WAAW;AAC/D,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,oCAAY,4BAA4B,GAAG,mBAAO;AAAA,EACtD;AACJ;",
6
6
  "names": []
7
7
  }
@@ -32,6 +32,8 @@ var import_string = require("../lib/string");
32
32
  var import_appUtils = require("../lib/appUtils");
33
33
  var import_config = require("../config/config");
34
34
  var import_logging = require("./logging");
35
+ var import_exchangeValue = require("../lib/exchangeValue");
36
+ var import_idBySelector = require("./idBySelector");
35
37
  async function getState(part, userToSend, telegramParams) {
36
38
  var _a;
37
39
  try {
@@ -41,7 +43,8 @@ async function getState(part, userToSend, telegramParams) {
41
43
  var _a2;
42
44
  import_main.adapter.log.debug(`Get Value ID: ${id}`);
43
45
  if (id.includes(import_config.config.functionSelektor)) {
44
- await (0, import_action.idBySelector)({
46
+ await (0, import_idBySelector.idBySelector)({
47
+ adapter: import_main.adapter,
45
48
  selector: id,
46
49
  text,
47
50
  userToSend,
@@ -76,7 +79,7 @@ async function getState(part, userToSend, telegramParams) {
76
79
  if (!error2) {
77
80
  modifiedTextToSend = textToSend;
78
81
  modifiedStateVal = calculated;
79
- import_main.adapter.log.debug(`TextToSend: ${modifiedTextToSend} val: ${modifiedStateVal}`);
82
+ import_main.adapter.log.debug(`textToSend : ${modifiedTextToSend} val : ${modifiedStateVal}`);
80
83
  }
81
84
  }
82
85
  if (modifiedTextToSend.includes(import_config.config.round.start)) {
@@ -119,16 +122,11 @@ async function getState(part, userToSend, telegramParams) {
119
122
  return;
120
123
  }
121
124
  }
122
- const {
123
- newValue: _val,
124
- textToSend: _text,
125
- error
126
- } = (0, import_string.getValueToExchange)(import_main.adapter, modifiedTextToSend, modifiedStateVal);
127
- modifiedStateVal = String(_val);
128
- modifiedTextToSend = _text;
129
- import_main.adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);
125
+ const { textToSend: _text, error } = (0, import_exchangeValue.exchangeValue)(import_main.adapter, modifiedTextToSend, modifiedStateVal);
130
126
  const isNewline = (0, import_string.getNewline)(newline);
131
- valueArrayForCorrectOrder[index] = modifiedTextToSend.includes(import_config.config.rowSplitter) ? `${modifiedTextToSend.replace(import_config.config.rowSplitter, modifiedStateVal.toString())}${isNewline}` : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;
127
+ modifiedTextToSend = `${_text} ${isNewline}`;
128
+ import_main.adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);
129
+ valueArrayForCorrectOrder[index] = modifiedTextToSend;
132
130
  });
133
131
  await Promise.all(promises);
134
132
  await (0, import_telegram.sendToTelegram)({
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/getstate.ts"],
4
- "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc, idBySelector } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, getValueToExchange, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`TextToSend: ${modifiedTextToSend} val: ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const {\n newValue: _val,\n textToSend: _text,\n error,\n } = getValueToExchange(adapter, modifiedTextToSend, modifiedStateVal);\n\n modifiedStateVal = String(_val);\n modifiedTextToSend = _text;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n const isNewline = getNewline(newline);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend.includes(config.rowSplitter)\n ? `${modifiedTextToSend.replace(config.rowSplitter, modifiedStateVal.toString())}${isNewline}`\n : `${modifiedTextToSend} ${modifiedStateVal} ${isNewline}`;\n });\n await Promise.all(promises);\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { bindingFunc } from './action';\nimport { createKeyboardFromJson, createTextTableFromJson } from './jsonTable';\nimport { processTimeIdLc } from '../lib/utilities';\nimport { isDefined } from '../lib/utils';\nimport { adapter } from '../main';\nimport type { Part, TelegramParams } from '../types/types';\nimport { integrateTimeIntoText } from '../lib/time';\nimport { cleanUpString, decomposeText, getNewline, jsonString } from '../lib/string';\nimport { calcValue, roundValue } from '../lib/appUtils';\nimport { config } from '../config/config';\nimport { errorLogger } from './logging';\nimport { exchangeValue } from '../lib/exchangeValue';\nimport { idBySelector } from './idBySelector';\n\nexport async function getState(part: Part, userToSend: string, telegramParams: TelegramParams): Promise<void> {\n try {\n const parse_mode = part.getData?.[0].parse_mode; // Parse Mode ist nur immer im ersten Element\n const valueArrayForCorrectOrder: string[] = [];\n const promises = (part.getData || []).map(async ({ newline, text, id }, index): Promise<void> => {\n adapter.log.debug(`Get Value ID: ${id}`);\n\n if (id.includes(config.functionSelektor)) {\n await idBySelector({\n adapter,\n selector: id,\n text,\n userToSend,\n newline,\n telegramParams,\n });\n return;\n }\n\n if (text.includes(config.binding.start)) {\n await bindingFunc(text, userToSend, telegramParams, parse_mode);\n return;\n }\n\n const state = await adapter.getForeignStateAsync(id);\n\n if (!isDefined(state)) {\n adapter.log.error('The state is empty!');\n valueArrayForCorrectOrder[index] = 'N/A';\n return Promise.resolve();\n }\n\n const stateValue = cleanUpString(state.val?.toString());\n\n let modifiedStateVal = stateValue;\n let modifiedTextToSend = text;\n\n if (text.includes(config.timestamp.ts) || text.includes(config.timestamp.lc)) {\n modifiedTextToSend = await processTimeIdLc(text, id);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.time)) {\n modifiedTextToSend = integrateTimeIntoText(modifiedTextToSend, stateValue);\n modifiedStateVal = '';\n }\n\n if (modifiedTextToSend.includes(config.math.start)) {\n const { textToSend, calculated, error } = calcValue(modifiedTextToSend, modifiedStateVal, adapter);\n if (!error) {\n modifiedTextToSend = textToSend;\n modifiedStateVal = calculated;\n\n adapter.log.debug(`textToSend : ${modifiedTextToSend} val : ${modifiedStateVal}`);\n }\n }\n\n if (modifiedTextToSend.includes(config.round.start)) {\n const { error, text, roundedValue } = roundValue(String(modifiedStateVal), modifiedTextToSend);\n if (!error) {\n adapter.log.debug(`Rounded from ${jsonString(modifiedStateVal)} to ${jsonString(roundedValue)}`);\n modifiedStateVal = roundedValue;\n modifiedTextToSend = text;\n }\n }\n\n if (modifiedTextToSend.includes(config.json.start)) {\n const { substring } = decomposeText(modifiedTextToSend, config.json.start, config.json.end);\n\n if (substring.includes(config.json.textTable)) {\n const result = createTextTableFromJson(stateValue, modifiedTextToSend);\n if (result) {\n await sendToTelegram({\n userToSend,\n textToSend: result,\n telegramParams,\n parse_mode,\n });\n return;\n }\n adapter.log.debug('Cannot create a Text-Table');\n } else {\n const result = createKeyboardFromJson(stateValue, modifiedTextToSend, id, userToSend);\n if (stateValue && stateValue.length > 0) {\n if (result && result.text && result.keyboard) {\n sendToTelegramSubmenu(userToSend, result.text, result.keyboard, telegramParams, parse_mode);\n }\n return;\n }\n await sendToTelegram({\n userToSend,\n textToSend: 'The state is empty!',\n telegramParams,\n parse_mode,\n });\n adapter.log.debug('The state is empty!');\n return;\n }\n }\n\n const { textToSend: _text, error } = exchangeValue(adapter, modifiedTextToSend, modifiedStateVal);\n\n const isNewline = getNewline(newline);\n modifiedTextToSend = `${_text} ${isNewline}`;\n\n adapter.log.debug(!error ? `Value Changed to: ${modifiedTextToSend}` : `No Change`);\n\n valueArrayForCorrectOrder[index] = modifiedTextToSend;\n });\n await Promise.all(promises);\n\n await sendToTelegram({\n userToSend,\n textToSend: valueArrayForCorrectOrder.join(''),\n telegramParams,\n parse_mode,\n });\n } catch (error: any) {\n errorLogger('Error GetData:', error, adapter);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["_a", "error", "text"]
7
7
  }
@@ -43,7 +43,7 @@ async function httpRequest(parts, userToSend, telegramParams, directoryPicture)
43
43
  return;
44
44
  }
45
45
  for (const { url, password, user: username, filename } of parts.httpRequest) {
46
- import_main.adapter.log.debug(`URL: ${url}`);
46
+ import_main.adapter.log.debug(`URL : ${url}`);
47
47
  try {
48
48
  const response = await (0, import_axios.default)(
49
49
  username && password ? {
@@ -65,7 +65,7 @@ async function httpRequest(parts, userToSend, telegramParams, directoryPicture)
65
65
  }
66
66
  const imagePath = import_path.default.join(directoryPicture, filename);
67
67
  import_fs.default.writeFileSync(imagePath, Buffer.from(response.data), "binary");
68
- import_main.adapter.log.debug(`Pic saved: ${imagePath}`);
68
+ import_main.adapter.log.debug(`Pic saved : ${imagePath}`);
69
69
  await (0, import_telegram.sendToTelegram)({
70
70
  userToSend,
71
71
  textToSend: imagePath,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app/httpRequest.ts"],
4
- "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { validateDirectory } from '../lib/utils';\nimport { adapter } from '../main';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const { url, password, user: username, filename } of parts.httpRequest) {\n adapter.log.debug(`URL: ${url}`);\n\n try {\n //prettier-ignore\n\n const response = await axios(\n username && password\n ? {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n auth: {\n username,\n password,\n },\n }\n : {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n },\n );\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n adapter.log.debug(`Pic saved: ${imagePath}`);\n\n await sendToTelegram({\n userToSend,\n textToSend: imagePath,\n telegramParams,\n });\n } catch (e: any) {\n errorLogger('Error http request:', e, adapter);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA4B;AAE5B,mBAAkC;AAClC,kBAAwB;AAExB,eAAe,YACX,OACA,YACA,gBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,EAAE,KAAK,UAAU,MAAM,UAAU,SAAS,KAAK,MAAM,aAAa;AACzE,wBAAQ,IAAI,MAAM,QAAQ,GAAG,EAAE;AAE/B,QAAI;AAGA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,IACA;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACV;AAEA,UAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,QAAQ;AAEtD,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,0BAAQ,IAAI,MAAM,cAAc,SAAS,EAAE;AAE3C,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,sCAAY,uBAAuB,GAAG,mBAAO;AAAA,IACjD;AAAA,EACJ;AACA,SAAO;AACX;",
4
+ "sourcesContent": ["import axios from 'axios';\nimport { sendToTelegram } from './telegram';\nimport path from 'path';\nimport fs from 'fs';\nimport { errorLogger } from './logging';\nimport type { Part, TelegramParams } from '../types/types';\nimport { validateDirectory } from '../lib/utils';\nimport { adapter } from '../main';\n\nasync function httpRequest(\n parts: Part,\n userToSend: string,\n telegramParams: TelegramParams,\n directoryPicture: string,\n): Promise<boolean | undefined> {\n if (!parts.httpRequest) {\n return;\n }\n for (const { url, password, user: username, filename } of parts.httpRequest) {\n adapter.log.debug(`URL : ${url}`);\n\n try {\n //prettier-ignore\n\n const response = await axios(\n username && password\n ? {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n auth: {\n username,\n password,\n },\n }\n : {\n method: 'get',\n url,\n responseType: 'arraybuffer',\n },\n );\n\n if (!validateDirectory(adapter, directoryPicture)) {\n return;\n }\n const imagePath = path.join(directoryPicture, filename);\n\n fs.writeFileSync(imagePath, Buffer.from(response.data), 'binary');\n adapter.log.debug(`Pic saved : ${imagePath}`);\n\n await sendToTelegram({\n userToSend,\n textToSend: imagePath,\n telegramParams,\n });\n } catch (e: any) {\n errorLogger('Error http request:', e, adapter);\n }\n }\n return true;\n}\n\nexport { httpRequest };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,sBAA+B;AAC/B,kBAAiB;AACjB,gBAAe;AACf,qBAA4B;AAE5B,mBAAkC;AAClC,kBAAwB;AAExB,eAAe,YACX,OACA,YACA,gBACA,kBAC4B;AAC5B,MAAI,CAAC,MAAM,aAAa;AACpB;AAAA,EACJ;AACA,aAAW,EAAE,KAAK,UAAU,MAAM,UAAU,SAAS,KAAK,MAAM,aAAa;AACzE,wBAAQ,IAAI,MAAM,SAAS,GAAG,EAAE;AAEhC,QAAI;AAGA,YAAM,WAAW,UAAM,aAAAA;AAAA,QACnB,YAAY,WACN;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UACd,MAAM;AAAA,YACF;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,IACA;AAAA,UACI,QAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,QAClB;AAAA,MACV;AAEA,UAAI,KAAC,gCAAkB,qBAAS,gBAAgB,GAAG;AAC/C;AAAA,MACJ;AACA,YAAM,YAAY,YAAAC,QAAK,KAAK,kBAAkB,QAAQ;AAEtD,gBAAAC,QAAG,cAAc,WAAW,OAAO,KAAK,SAAS,IAAI,GAAG,QAAQ;AAChE,0BAAQ,IAAI,MAAM,eAAe,SAAS,EAAE;AAE5C,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,GAAQ;AACb,sCAAY,uBAAuB,GAAG,mBAAO;AAAA,IACjD;AAAA,EACJ;AACA,SAAO;AACX;",
6
6
  "names": ["axios", "path", "fs"]
7
7
  }
@@ -0,0 +1,103 @@
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 idBySelector_exports = {};
20
+ __export(idBySelector_exports, {
21
+ idBySelector: () => idBySelector
22
+ });
23
+ module.exports = __toCommonJS(idBySelector_exports);
24
+ var import_config = require("../config/config");
25
+ var import_exchangeValue = require("../lib/exchangeValue");
26
+ var import_string = require("../lib/string");
27
+ var import_telegram = require("./telegram");
28
+ var import_logging = require("./logging");
29
+ const idBySelector = async ({
30
+ adapter,
31
+ selector,
32
+ text,
33
+ userToSend,
34
+ newline,
35
+ telegramParams
36
+ }) => {
37
+ let text2Send = "";
38
+ try {
39
+ const functions = selector.replace(import_config.config.functionSelektor, "");
40
+ let enums = [];
41
+ const result = await adapter.getEnumsAsync();
42
+ const enumsFunctions = result == null ? void 0 : result["enum.functions"][`enum.functions.${functions}`];
43
+ if (!enumsFunctions) {
44
+ return;
45
+ }
46
+ enums = enumsFunctions.common.members;
47
+ if (!enums) {
48
+ return;
49
+ }
50
+ const promises = enums.map(async (id) => {
51
+ var _a;
52
+ const value = await adapter.getForeignStateAsync(id);
53
+ let newText = text;
54
+ if (text.includes("{common.name}")) {
55
+ const result2 = await adapter.getForeignObjectAsync(id);
56
+ newText = newText.replace("{common.name}", getCommonName({ name: result2 == null ? void 0 : result2.common.name, adapter }));
57
+ }
58
+ if (text.includes("{folder.name}")) {
59
+ const result2 = await adapter.getForeignObjectAsync(removeLastPartOfId(id));
60
+ newText = newText.replace("{folder.name}", getCommonName({ name: result2 == null ? void 0 : result2.common.name, adapter }));
61
+ }
62
+ const { textToSend } = (0, import_exchangeValue.exchangeValue)(adapter, newText, (_a = value == null ? void 0 : value.val) != null ? _a : "");
63
+ text2Send += textToSend;
64
+ text2Send += (0, import_string.getNewline)(newline);
65
+ adapter.log.debug(`Text to send: ${JSON.stringify(text2Send)}`);
66
+ });
67
+ Promise.all(promises).then(async () => {
68
+ await (0, import_telegram.sendToTelegram)({
69
+ userToSend,
70
+ textToSend: text2Send,
71
+ telegramParams
72
+ });
73
+ }).catch((e) => {
74
+ (0, import_logging.errorLogger)("Error Promise", e, adapter);
75
+ });
76
+ } catch (error) {
77
+ (0, import_logging.errorLogger)("Error idBySelector", error, adapter);
78
+ }
79
+ };
80
+ function getCommonName({ name, adapter }) {
81
+ var _a, _b;
82
+ const language = (_a = adapter.language) != null ? _a : "en";
83
+ if (!name) {
84
+ return "";
85
+ }
86
+ if (typeof name === "string") {
87
+ return name;
88
+ }
89
+ if (language) {
90
+ return (_b = name[language]) != null ? _b : "";
91
+ }
92
+ return "";
93
+ }
94
+ function removeLastPartOfId(id) {
95
+ const parts = id.split(".");
96
+ parts.pop();
97
+ return parts.join(".");
98
+ }
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ idBySelector
102
+ });
103
+ //# sourceMappingURL=idBySelector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/app/idBySelector.ts"],
4
+ "sourcesContent": ["import type { BooleanString, TelegramParams } from '../types/types';\nimport { config } from '../config/config';\nimport type TelegramMenu from '../main';\nimport { exchangeValue } from '../lib/exchangeValue';\nimport { getNewline } from '../lib/string';\nimport { sendToTelegram } from './telegram';\nimport { errorLogger } from './logging';\n\nexport const idBySelector = async ({\n adapter,\n selector,\n text,\n userToSend,\n newline,\n telegramParams,\n}: {\n adapter: TelegramMenu;\n selector: string;\n text: string;\n userToSend: string;\n newline: BooleanString;\n telegramParams: TelegramParams;\n}): Promise<void> => {\n let text2Send = '';\n try {\n const functions = selector.replace(config.functionSelektor, '');\n let enums: string[] | undefined = [];\n const result = await adapter.getEnumsAsync();\n const enumsFunctions = result?.['enum.functions'][`enum.functions.${functions}`];\n if (!enumsFunctions) {\n return;\n }\n enums = enumsFunctions.common.members;\n if (!enums) {\n return;\n }\n\n const promises = enums.map(async (id: string) => {\n const value = await adapter.getForeignStateAsync(id);\n\n let newText = text;\n\n if (text.includes('{common.name}')) {\n const result = await adapter.getForeignObjectAsync(id);\n newText = newText.replace('{common.name}', getCommonName({ name: result?.common.name, adapter }));\n }\n if (text.includes('{folder.name}')) {\n const result = await adapter.getForeignObjectAsync(removeLastPartOfId(id));\n newText = newText.replace('{folder.name}', getCommonName({ name: result?.common.name, adapter }));\n }\n\n const { textToSend } = exchangeValue(adapter, newText, value?.val ?? '');\n\n text2Send += textToSend;\n text2Send += getNewline(newline);\n\n adapter.log.debug(`Text to send: ${JSON.stringify(text2Send)}`);\n });\n Promise.all(promises)\n .then(async () => {\n await sendToTelegram({\n userToSend,\n textToSend: text2Send,\n telegramParams,\n });\n })\n .catch(e => {\n errorLogger('Error Promise', e, adapter);\n });\n } catch (error: any) {\n errorLogger('Error idBySelector', error, adapter);\n }\n};\n\nfunction getCommonName({ name, adapter }: { name?: ioBroker.StringOrTranslated; adapter: TelegramMenu }): string {\n const language = adapter.language ?? 'en';\n if (!name) {\n return '';\n }\n if (typeof name === 'string') {\n return name;\n }\n if (language) {\n return name[language] ?? '';\n }\n return '';\n}\n\nfunction removeLastPartOfId(id: string): string {\n const parts = id.split('.');\n parts.pop();\n return parts.join('.');\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAuB;AAEvB,2BAA8B;AAC9B,oBAA2B;AAC3B,sBAA+B;AAC/B,qBAA4B;AAErB,MAAM,eAAe,OAAO;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAOqB;AACjB,MAAI,YAAY;AAChB,MAAI;AACA,UAAM,YAAY,SAAS,QAAQ,qBAAO,kBAAkB,EAAE;AAC9D,QAAI,QAA8B,CAAC;AACnC,UAAM,SAAS,MAAM,QAAQ,cAAc;AAC3C,UAAM,iBAAiB,iCAAS,kBAAkB,kBAAkB,SAAS;AAC7E,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA,YAAQ,eAAe,OAAO;AAC9B,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM,IAAI,OAAO,OAAe;AArCzD;AAsCY,YAAM,QAAQ,MAAM,QAAQ,qBAAqB,EAAE;AAEnD,UAAI,UAAU;AAEd,UAAI,KAAK,SAAS,eAAe,GAAG;AAChC,cAAMA,UAAS,MAAM,QAAQ,sBAAsB,EAAE;AACrD,kBAAU,QAAQ,QAAQ,iBAAiB,cAAc,EAAE,MAAMA,WAAA,gBAAAA,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MACpG;AACA,UAAI,KAAK,SAAS,eAAe,GAAG;AAChC,cAAMA,UAAS,MAAM,QAAQ,sBAAsB,mBAAmB,EAAE,CAAC;AACzE,kBAAU,QAAQ,QAAQ,iBAAiB,cAAc,EAAE,MAAMA,WAAA,gBAAAA,QAAQ,OAAO,MAAM,QAAQ,CAAC,CAAC;AAAA,MACpG;AAEA,YAAM,EAAE,WAAW,QAAI,oCAAc,SAAS,UAAS,oCAAO,QAAP,YAAc,EAAE;AAEvE,mBAAa;AACb,uBAAa,0BAAW,OAAO;AAE/B,cAAQ,IAAI,MAAM,kBAAkB,KAAK,UAAU,SAAS,CAAC,EAAE;AAAA,IACnE,CAAC;AACD,YAAQ,IAAI,QAAQ,EACf,KAAK,YAAY;AACd,gBAAM,gCAAe;AAAA,QACjB;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,CAAC,EACA,MAAM,OAAK;AACR,sCAAY,iBAAiB,GAAG,OAAO;AAAA,IAC3C,CAAC;AAAA,EACT,SAAS,OAAY;AACjB,oCAAY,sBAAsB,OAAO,OAAO;AAAA,EACpD;AACJ;AAEA,SAAS,cAAc,EAAE,MAAM,QAAQ,GAA0E;AA1EjH;AA2EI,QAAM,YAAW,aAAQ,aAAR,YAAoB;AACrC,MAAI,CAAC,MAAM;AACP,WAAO;AAAA,EACX;AACA,MAAI,OAAO,SAAS,UAAU;AAC1B,WAAO;AAAA,EACX;AACA,MAAI,UAAU;AACV,YAAO,UAAK,QAAQ,MAAb,YAAkB;AAAA,EAC7B;AACA,SAAO;AACX;AAEA,SAAS,mBAAmB,IAAoB;AAC5C,QAAM,QAAQ,GAAG,MAAM,GAAG;AAC1B,QAAM,IAAI;AACV,SAAO,MAAM,KAAK,GAAG;AACzB;",
6
+ "names": ["result"]
7
+ }
@@ -43,7 +43,7 @@ const createKeyboardFromJson = (val, text, id, user) => {
43
43
  idShoppingList = true;
44
44
  }
45
45
  const { validJson, error } = (0, import_json.makeValidJson)(val, import_main.adapter);
46
- import_main.adapter.log.debug(`Val: ${validJson} with type: ${typeof val}`);
46
+ import_main.adapter.log.debug(`Val ${validJson} with type ${typeof val}`);
47
47
  if (error) {
48
48
  return;
49
49
  }
@@ -81,7 +81,7 @@ const createKeyboardFromJson = (val, text, id, user) => {
81
81
  }
82
82
  keyboard.inline_keyboard.push(rowArray);
83
83
  });
84
- import_main.adapter.log.debug(`Keyboard: ${(0, import_string.jsonString)(keyboard)}`);
84
+ import_main.adapter.log.debug(`Keyboard : ${(0, import_string.jsonString)(keyboard)}`);
85
85
  return { text: headline, keyboard };
86
86
  } catch (err) {
87
87
  (0, import_logging.errorLogger)("Error createKeyboardFromJson:", err, import_main.adapter);
@@ -104,7 +104,7 @@ function createTextTableFromJson(val, textToSend) {
104
104
  }
105
105
  });
106
106
  });
107
- import_main.adapter.log.debug(`Length of rows: ${(0, import_string.jsonString)(lengthArray)}`);
107
+ import_main.adapter.log.debug(`Length of rows : ${(0, import_string.jsonString)(lengthArray)}`);
108
108
  const headline = array[2];
109
109
  let textTable = textToSend.replace(substring, "").trim();
110
110
  if (textTable != "") {