iobroker.javascript 8.9.2 → 9.0.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 (119) hide show
  1. package/README.md +7 -3
  2. package/admin/assets/{createSvgIcon-BdRvDw53.js → createSvgIcon-BQT-7-GS.js} +1 -1
  3. package/admin/assets/{docs-6na4NFtj.js → docs-BrInh2Pn.js} +2 -2
  4. package/admin/assets/index-B0RKH_iG.js +1329 -0
  5. package/admin/assets/index-CfuHVX2B.js +193 -0
  6. package/admin/assets/index-CuCs5aLs.js +5 -0
  7. package/admin/assets/index-tExaxF69.js +930 -0
  8. package/admin/assets/inheritsLoose--KnFDOw1.js +36 -0
  9. package/admin/assets/{useTheme-Cl1QmYFL.js → useTheme-DF6qfrtI.js} +1 -1
  10. package/admin/custom/assets/{Components-ChpTW7sE.js → Components-D9kRsHNY.js} +1 -1
  11. package/admin/custom/assets/{DefaultPropsProvider-CHpMCMgA.js → DefaultPropsProvider-9qubdy-V.js} +2 -2
  12. package/admin/custom/assets/{FilledInput-CtcQVKyj.js → FilledInput-BpuM_GyB.js} +1 -1
  13. package/admin/custom/assets/Tabs-CvEv0KOT.js +138 -0
  14. package/admin/custom/assets/ThemeProvider-DZTpMR8n.js +29 -0
  15. package/admin/custom/assets/{createSvgIcon-C_vAELFU.js → createSvgIcon-BQThUM-f.js} +1 -1
  16. package/admin/custom/assets/hostInit-CrAs5YZS.js +1 -1
  17. package/admin/custom/assets/{index-DwsbskQy.js → index-DIWNdd4a.js} +1 -1
  18. package/admin/custom/assets/index-DZqbj5K4.js +55 -0
  19. package/admin/custom/assets/{index-D5apCzjJ.js → index-Dbe-II7_.js} +6 -6
  20. package/admin/custom/assets/index-az76fZMP.js +904 -0
  21. package/admin/custom/assets/index-sawv1cUe.js +1399 -0
  22. package/admin/custom/assets/{virtualExposes-BPncCdUy.js → virtualExposes-BMKIjWrE.js} +2 -2
  23. package/admin/custom/customComponents.js +2 -2
  24. package/admin/custom/i18n/de.json +29 -29
  25. package/admin/custom/i18n/es.json +29 -29
  26. package/admin/custom/i18n/fr.json +29 -29
  27. package/admin/custom/i18n/it.json +29 -29
  28. package/admin/custom/i18n/nl.json +29 -29
  29. package/admin/custom/i18n/pl.json +29 -29
  30. package/admin/custom/i18n/pt.json +29 -29
  31. package/admin/custom/i18n/ru.json +29 -29
  32. package/admin/custom/i18n/uk.json +29 -29
  33. package/admin/custom/i18n/zh-cn.json +29 -29
  34. package/admin/google-blockly/blockly_compressed.js +875 -887
  35. package/admin/google-blockly/blocks_compressed.js +38 -41
  36. package/admin/google-blockly/javascript_compressed.js +19 -54
  37. package/admin/google-blockly/media/delete-icon.svg +1 -0
  38. package/admin/google-blockly/media/foldout-icon.svg +1 -0
  39. package/admin/google-blockly/media/resize-handle.svg +3 -0
  40. package/admin/jsonConfig.json +2 -0
  41. package/admin/mf-manifest.json +1 -1
  42. package/admin/remoteEntry.js +2 -2
  43. package/admin/tab.html +4 -4
  44. package/admin/vsFont/README.md +1 -1
  45. package/admin/vsFont/createJson.js +1 -1
  46. package/build-backend/lib/consts.js +346 -0
  47. package/build-backend/lib/consts.js.map +1 -0
  48. package/build-backend/lib/convert.js +120 -0
  49. package/build-backend/lib/convert.js.map +1 -0
  50. package/build-backend/lib/debug.js +163 -0
  51. package/build-backend/lib/debug.js.map +1 -0
  52. package/{lib → build-backend/lib}/debugger.js +261 -232
  53. package/build-backend/lib/debugger.js.map +1 -0
  54. package/build-backend/lib/eventObj.js +177 -0
  55. package/build-backend/lib/eventObj.js.map +1 -0
  56. package/build-backend/lib/inspect.js +728 -0
  57. package/build-backend/lib/inspect.js.map +1 -0
  58. package/build-backend/lib/javascript.d.ts +1972 -0
  59. package/{lib → build-backend/lib}/mirror.js +185 -182
  60. package/build-backend/lib/mirror.js.map +1 -0
  61. package/build-backend/lib/nodeModulesManagement.js +25 -0
  62. package/build-backend/lib/nodeModulesManagement.js.map +1 -0
  63. package/build-backend/lib/patternCompareFunctions.js +321 -0
  64. package/build-backend/lib/patternCompareFunctions.js.map +1 -0
  65. package/build-backend/lib/protectFs.js +477 -0
  66. package/build-backend/lib/protectFs.js.map +1 -0
  67. package/build-backend/lib/request.js +89 -0
  68. package/build-backend/lib/request.js.map +1 -0
  69. package/{lib → build-backend/lib}/sandbox.js +2046 -1852
  70. package/build-backend/lib/sandbox.js.map +1 -0
  71. package/build-backend/lib/scheduler.js +553 -0
  72. package/build-backend/lib/scheduler.js.map +1 -0
  73. package/build-backend/lib/tools.js +183 -0
  74. package/build-backend/lib/tools.js.map +1 -0
  75. package/build-backend/lib/typescriptSettings.js +39 -0
  76. package/build-backend/lib/typescriptSettings.js.map +1 -0
  77. package/build-backend/lib/typescriptTools.js +435 -0
  78. package/build-backend/lib/typescriptTools.js.map +1 -0
  79. package/build-backend/lib/utils.js +66 -0
  80. package/build-backend/lib/utils.js.map +1 -0
  81. package/{lib → build-backend/lib}/words.js +23 -30
  82. package/build-backend/lib/words.js.map +1 -0
  83. package/build-backend/main.js +2671 -0
  84. package/build-backend/main.js.map +1 -0
  85. package/build-backend/types.d.ts +742 -0
  86. package/docs/de/README.md +1 -1
  87. package/docs/en/README.md +1 -1
  88. package/docs/en/javascript.md +10 -6
  89. package/docs/ru/README.md +1 -1
  90. package/install/installTypings.js +34 -47
  91. package/io-package.json +14 -14
  92. package/package.json +14 -14
  93. package/admin/assets/index-DCkkMRRa.js +0 -1335
  94. package/admin/assets/index-DJfSBoBB.js +0 -192
  95. package/admin/assets/index-DTiA4WdK.js +0 -930
  96. package/admin/assets/index-qABB1JVe.js +0 -5
  97. package/admin/assets/inheritsLoose-BW-3V39H.js +0 -36
  98. package/admin/custom/assets/Tabs-C1KOyWRi.js +0 -137
  99. package/admin/custom/assets/ThemeProvider-Buvx5nSd.js +0 -29
  100. package/admin/custom/assets/index-BGCRznKh.js +0 -904
  101. package/admin/custom/assets/index-DfBPYXqA.js +0 -55
  102. package/admin/custom/assets/index-jIr6kOLK.js +0 -1398
  103. package/lib/adapter-config.d.ts +0 -16
  104. package/lib/consts.js +0 -83
  105. package/lib/convert.js +0 -106
  106. package/lib/debug.js +0 -154
  107. package/lib/eventObj.js +0 -201
  108. package/lib/inspect.js +0 -688
  109. package/lib/javascript.d.ts +0 -1858
  110. package/lib/nodeModulesManagement.js +0 -26
  111. package/lib/patternCompareFunctions.js +0 -391
  112. package/lib/protectFs.js +0 -401
  113. package/lib/request.js +0 -72
  114. package/lib/scheduler.js +0 -447
  115. package/lib/tools.js +0 -192
  116. package/lib/typescriptSettings.js +0 -44
  117. package/lib/typescriptTools.js +0 -529
  118. package/lib/utils.js +0 -87
  119. package/main.js +0 -2653
@@ -1,16 +0,0 @@
1
- // This file extends the AdapterConfig type from "@types/iobroker"
2
- // using the actual properties present in io-package.json
3
- // in order to provide typings for adapter.config properties
4
-
5
- import { native } from '../io-package.json';
6
-
7
- type _AdapterConfig = typeof native;
8
-
9
- // Augment the globally declared type ioBroker.AdapterConfig
10
- declare global {
11
- namespace ioBroker {
12
- interface AdapterConfig extends _AdapterConfig {
13
- // Do not enter anything here!
14
- }
15
- }
16
- }
package/lib/consts.js DELETED
@@ -1,83 +0,0 @@
1
- 'use strict';
2
-
3
- const dayOfWeeksFull = {
4
- en: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
5
- de: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
6
- ru: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
7
- pt: ['Domingo', 'Segunda-feira', 'Terça-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sábado'],
8
- nl: ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'],
9
- fr: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
10
- it: ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'],
11
- es: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
12
- pl: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],
13
- uk: ['неділя', 'понеділок', 'вівторок', 'Середа', 'четвер', 'П\'ятниця', 'Субота'],
14
- 'zh-cn': ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
15
- };
16
- const dayOfWeeksShort = {
17
- en: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
18
- de: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
19
- ru: ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
20
- pt: ['Do', 'Se', 'Te', 'Qu', 'Qu', 'Se', 'Sá'],
21
- nl: ['Zo', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za'],
22
- fr: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
23
- it: ['Do', 'Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa'],
24
- es: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
25
- pl: ['Ni', 'Po', 'Wt', 'Śr', 'Cz', 'Pi', 'So'],
26
- uk: ['Нд', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб'],
27
- 'zh-cn': ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
28
- };
29
-
30
- const monthFull = {
31
- en: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
32
- de: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
33
- ru: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
34
- pt: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
35
- nl: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
36
- fr: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
37
- it: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
38
- es: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
39
- pl: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
40
- uk: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
41
- 'zh-cn': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
42
- };
43
-
44
- const monthFullGen = {
45
- en: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
46
- de: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
47
- ru: ['Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'],
48
- pt: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
49
- nl: ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'],
50
- fr: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
51
- it: ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'],
52
- es: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
53
- pl: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
54
- uk: ['Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'],
55
- 'zh-cn': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
56
- };
57
-
58
- const monthShort = {
59
- en: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'],
60
- de: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
61
- ru: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июнь', 'Июль', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
62
- pt: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
63
- nl: ['Jan', 'Feb', 'Maa', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
64
- fr: ['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc'],
65
- it: ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'],
66
- es: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
67
- pl: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'],
68
- uk: ['Січ', 'Лют', 'Бер', 'Кві', 'Тра', 'Чер', 'Лип', 'Сер', 'Вер', 'Жов', 'Лис', 'Гру'],
69
- 'zh-cn': ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
70
- };
71
-
72
- const astroList = ['sunrise', 'sunset', 'sunriseEnd', 'sunsetStart', 'dawn', 'dusk', 'nauticalDawn', 'nauticalDusk', 'nadir', 'nightEnd', 'night', 'goldenHourEnd', 'goldenHour', 'solarNoon'];
73
- const astroListLow = astroList.map(str => str.toLowerCase());
74
-
75
- module.exports = {
76
- dayOfWeeksFull,
77
- dayOfWeeksShort,
78
- monthFull,
79
- monthFullGen,
80
- monthShort,
81
- astroList,
82
- astroListLow
83
- };
package/lib/convert.js DELETED
@@ -1,106 +0,0 @@
1
- 'use strict';
2
-
3
- // controller uses this file when build uploads
4
- function stringify(data) {
5
- let obj = data.data;
6
- let id = data.id;
7
- if (data.data.type === 'channel') {
8
- id = `${id.replace(/\./g, '/').substring('script.js.'.length)}/_dir.json`;
9
- obj = JSON.stringify(obj, null, 2);
10
- } else if (data.data.type === 'script') {
11
- id = `${id.replace(/\./g, '/').substring('script.js.'.length)}.json`;
12
- if (obj.common && obj.common.source) {
13
- const source = obj.common.source;
14
- if (obj.common.enabled) delete obj.common.enabled;
15
- if (obj.common.engine === 'system.adapter.javascript.0') delete obj.common.engine;
16
- if (obj.common.engineType === 'Javascript/js') delete obj.common.engineType;
17
- delete obj.common.name;
18
- delete obj.common.source;
19
- if (JSON.stringify(obj.common) !== '{}') {
20
- obj = `/* -- do not edit following lines - START --\n${JSON.stringify(obj.common, null, 2)}\n-- do not edit previous lines - END --*/\n${source}`;
21
- } else {
22
- obj = source;
23
- }
24
- } else {
25
- obj = JSON.stringify(obj, null, 2);
26
- }
27
- }
28
-
29
- return {id: id, data: obj};
30
- }
31
-
32
- function parse(data) {
33
- let obj = data.data;
34
- let id = data.id;
35
- let error;
36
- let name;
37
- if (id[id.length - 1] === '/') {
38
- id = id.substring(0, id.length - 1);
39
- }
40
-
41
- if (!id.match(/\.json$/)) {
42
- return null;
43
- }
44
-
45
- if (id.match(/_dir\.json$/)) {
46
- name = id.substring(0, id.length - '/_dir.json'.length).replace(/\//g, '.');
47
-
48
- try {
49
- obj = JSON.parse(obj);
50
- } catch (e) {
51
- error = `Cannot parse object "${name}": ${e}`;
52
- obj = {
53
- common: {
54
- name: name.split('.').pop(),
55
- },
56
- type: 'channel',
57
- _id: `script.js.${name}`,
58
- };
59
- }
60
- id = `script.js.${name}`;
61
- } else {
62
- //script
63
- name = id.substring(0, id.length - '.json'.length).replace(/\//g, '.');
64
- let source;
65
- if (obj.match(/^\/\*\s--\sdo\snot/)) {
66
- obj = obj.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
67
- const lines = obj.split('\n');
68
- let stringObj = '';
69
- let line = 1;
70
- while (line < lines.length) {
71
- if (lines[line].match(/^--\sdo\snot/)) {
72
- break;
73
- }
74
- stringObj += lines[line];
75
- line++;
76
- }
77
- lines.splice(0, line + 1);
78
- source = lines.join('\n');
79
- try {
80
- obj = {};
81
- obj.common = JSON.parse(stringObj);
82
- obj.common.source = source;
83
- } catch (e) {
84
- error = `Cannot parse object "${id}": ${e}`;
85
- }
86
- } else {
87
- source = obj;
88
- obj = null;
89
- }
90
-
91
- obj = obj || {};
92
- obj.common = obj.common || {};
93
- obj._id = `script.js.${name}`;
94
- obj.type = 'script';
95
- obj.common.name = name.split('.').pop();
96
- obj.common.enabled = (obj.common.enabled === undefined) ? true : obj.common.enabled;
97
- obj.common.engine = obj.common.engine || 'system.adapter.javascript.0';
98
- obj.common.engineType = obj.common.engineType || 'Javascript/js';
99
- obj.common.source = obj.common.source || source;
100
- id = `script.js.${name}`;
101
- }
102
-
103
- return { id: id, data: obj, error: error };
104
- }
105
- module.exports.stringify = stringify;
106
- module.exports.parse = parse;
package/lib/debug.js DELETED
@@ -1,154 +0,0 @@
1
- const fork = require('node:child_process').fork;
2
-
3
- const adapter = {
4
- log: {
5
- error: text => console.error(text),
6
- info: text => console.log(text),
7
- warn: text => console.warn(text),
8
- debug: text => console.log(text),
9
- },
10
- setState: (id, val) => {
11
- try {
12
- val = JSON.parse(val);
13
- } catch (e) {
14
- console.error(e);
15
- }
16
- console.log(`FROM: ${JSON.stringify(val)}`);
17
- }
18
- };
19
- const context = {
20
- objects: {}
21
- };
22
-
23
- const debugState = {
24
- scriptName: '',
25
- child: null,
26
- promiseOnEnd: null,
27
- paused: false,
28
- };
29
-
30
- function stopDebug() {
31
- if (debugState.child) {
32
- sendToInspector({ cmd: 'end' });
33
- debugState.endTimeout = setTimeout(() => {
34
- debugState.endTimeout = null;
35
- debugState.child.kill('SIGTERM');
36
- });
37
- } else {
38
- debugState.promiseOnEnd = Promise.resolve();
39
- }
40
-
41
- return debugState.promiseOnEnd
42
- .then(() => {
43
- debugState.child = null;
44
- debugState.running = false;
45
- debugState.scriptName = '';
46
- debugState.endTimeout && clearTimeout(debugState.endTimeout);
47
- debugState.endTimeout = null;
48
- });
49
- }
50
-
51
- function disableScript(id) {
52
- const obj = context.objects[id];
53
- if (obj && obj.common && obj.common.enabled) {
54
- return adapter.extendForeignObjectAsync(obj._id, {common: {enabled: false}});
55
- } else {
56
- return Promise.resolve();
57
- }
58
- }
59
-
60
- function sendToInspector(message) {
61
- if (typeof message === 'string') {
62
- try {
63
- message = JSON.parse(message);
64
- } catch (e) {
65
- adapter.log.error(`Cannot parse message to inspector: ${message}`);
66
- return adapter.setState('debug.from', JSON.stringify({ error: 'Cannot parse message to inspector' }));
67
- }
68
- }
69
-
70
- if (debugState.child) {
71
- debugState.child.send(JSON.stringify(message));
72
- } else {
73
- adapter.log.error(`Cannot send command to terminated inspector`);
74
- return adapter.setState('debug.from', JSON.stringify({ error: `Cannot send command to terminated inspector` }));
75
- }
76
- }
77
-
78
- function childPrint(text) {
79
- console.log(
80
- text.toString()
81
- .split(/\r\n|\r|\n/g)
82
- .filter((chunk) => !!chunk)
83
- .map((chunk) => `< ${chunk}`)
84
- .join('\n')
85
- );
86
- }
87
-
88
- function debugScript(data) {
89
- // stop a script if it is running
90
-
91
- return disableScript(data.scriptName)
92
- .then(() => stopDebug())
93
- .then(() => {
94
- debugState.scriptName = data.scriptName;
95
- debugState.breakOnStart = data.breakOnStart;
96
-
97
- const options = {
98
- stdio: ['ignore', 'inherit', 'inherit', 'ipc']
99
- };
100
-
101
- debugState.child = fork(`${__dirname}/../inspect.js`, [], options);
102
-
103
- /*debugState.child.stdout.setEncoding('utf8');
104
- debugState.child.stderr.setEncoding('utf8');
105
- debugState.child.stdout.on('data', childPrint);
106
- debugState.child.stderr.on('data', childPrint);*/
107
-
108
- debugState.child.on('message', message => {
109
- try {
110
- message = JSON.parse(message);
111
- } catch (e) {
112
- return adapter.log.error(`Cannot parse message from inspector: ${message}`);
113
- }
114
-
115
- adapter.setState('debug.from', JSON.stringify(message));
116
-
117
- switch (message.cmd) {
118
- case 'ready': {
119
- debugState.child.send(JSON.stringify({ cmd: 'start', scriptName: debugState.scriptName }));
120
- break;
121
- }
122
-
123
- case 'watched': {
124
- console.log(`WATCHED: ${JSON.stringify(message)}`);
125
- break;
126
- }
127
-
128
- case 'paused': {
129
- debugState.paused = true;
130
- console.log(`PAUSED`);
131
- break;
132
- }
133
-
134
- case 'resumed' : {
135
- debugState.paused = false;
136
- console.log(`STARTED`);
137
- break;
138
- }
139
-
140
- case 'log' : {
141
- console.log(`[${message.severity}] ${message.text}`);
142
- break;
143
- }
144
-
145
- case 'readyToDebug': {
146
- console.log(`readyToDebug (set breakpoints): [${message.scriptId}] ${message.script}`);
147
- break;
148
- }
149
- }
150
- });
151
- });
152
- }
153
-
154
- debugScript({ scriptName: 'script.js.Skript_1' });
package/lib/eventObj.js DELETED
@@ -1,201 +0,0 @@
1
- 'use strict';
2
- let inited = false;
3
-
4
- function getObjectEnumsSync(context, idObj, enumIds, enumNames) {
5
- if (!enumIds) enumIds = [];
6
- if (!enumNames) enumNames = [];
7
-
8
- if (context.cacheObjectEnums[idObj]) {
9
- for (const enumId of context.cacheObjectEnums[idObj].enumIds) {
10
- if (!enumIds.includes(enumId)) {
11
- enumIds.push(enumId);
12
- }
13
- }
14
- for (const enumName of context.cacheObjectEnums[idObj].enumNames) {
15
- if (!enumNames.includes(enumName)) {
16
- enumNames.push(enumName);
17
- }
18
- }
19
- return {enumIds: enumIds, enumNames: enumNames};
20
- }
21
-
22
-
23
- for (let i = 0, l = context.enums.length; i < l; i++) {
24
- if (context.objects[context.enums[i]] &&
25
- context.objects[context.enums[i]].common &&
26
- context.objects[context.enums[i]].common.members &&
27
- context.objects[context.enums[i]].common.members.indexOf(idObj) !== -1) {
28
- if (enumIds.indexOf(context.enums[i]) === -1) enumIds.push(context.enums[i]);
29
- if (enumNames.indexOf(context.objects[context.enums[i]].common.name) === -1) enumNames.push(context.objects[context.enums[i]].common.name);
30
- }
31
- }
32
-
33
- if (context.objects[idObj]) {
34
- const pos = idObj.lastIndexOf('.');
35
- if (pos !== -1) {
36
- const parent = idObj.substring(0, pos);
37
- if (parent && context.objects[parent]) {
38
- const parentEnumIds = [];
39
- const parentEnumNames = [];
40
- //get parent enums but do not propagate our enums to parent.
41
- getObjectEnumsSync(context, parent, parentEnumIds, parentEnumNames);
42
- for (const enumId of parentEnumIds) {
43
- if (!enumIds.includes(enumId)) {
44
- enumIds.push(enumId);
45
- }
46
- }
47
- for (const enumName of parentEnumNames) {
48
- if (!enumNames.includes(enumName)) {
49
- enumNames.push(enumName);
50
- }
51
- }
52
- }
53
- }
54
- }
55
-
56
- context.cacheObjectEnums[idObj] = {enumIds: enumIds, enumNames: enumNames};
57
- return context.cacheObjectEnums[idObj];
58
- }
59
-
60
- function doGetter(obj, name, ret) {
61
- //adapter.log.debug('getter: ' + name + ' returns ' + ret);
62
- Object.defineProperty(obj, name, {value: ret});
63
- return ret;
64
- }
65
-
66
- function EventObj(id, state, oldState) {
67
- if (!(this instanceof EventObj)) {
68
- return new EventObj(id, state, oldState);
69
- }
70
- this.id = id;
71
- this.newState = {
72
- val: state.val,
73
- ts: state.ts,
74
- ack: state.ack,
75
- lc: state.lc,
76
- from: state.from,
77
- q: state.q,
78
- c: state.c,
79
- user: state.user,
80
- };
81
- //if (oldState === undefined) oldState = {};
82
- if (!oldState) {
83
- this.oldState = {
84
- val: undefined,
85
- ts: undefined,
86
- ack: undefined,
87
- lc: undefined,
88
- from: undefined,
89
- q: undefined,
90
- c: undefined,
91
- user: undefined,
92
- };
93
- } else {
94
- this.oldState = {
95
- val: oldState.val,
96
- ts: oldState.ts,
97
- ack: oldState.ack,
98
- lc: oldState.lc,
99
- from: oldState.from,
100
- q: oldState.q,
101
- c: oldState.c,
102
- user: oldState.user,
103
- };
104
- }
105
- this.state = this.newState;
106
- }
107
-
108
- function createEventObject(context, id, state, oldState) {
109
- if (!inited) {
110
- inited = true;
111
- const eventObjectProperties = {
112
- common: {
113
- get: function () {
114
- const ret = context.objects[this.id] ? context.objects[this.id].common : {};
115
- return doGetter(this, 'common', ret);
116
- },
117
- configurable: true,
118
- },
119
- native: {
120
- get: function () {
121
- const ret = context.objects[this.id] ? context.objects[this.id].native : {};
122
- return doGetter(this, 'native', ret);
123
- },
124
- configurable: true,
125
- },
126
- name: {
127
- get: function () {
128
- const ret = this.common ? this.common.name : null;
129
- return doGetter(this, 'name', ret);
130
- },
131
- configurable: true,
132
- },
133
- channelId: {
134
- get: function () {
135
- const ret = this.id.replace (/\.*[^.]+$/, '');
136
- return doGetter(this, 'channelId', context.objects[ret] ? ret : null);
137
- },
138
- configurable: true,
139
- },
140
- channelName: {
141
- get: function () {
142
- const channelId = this.channelId;
143
- const ret = channelId && context.objects[channelId].common ? context.objects[channelId].common.name : null;
144
- return doGetter(this, 'channelName', ret);
145
- },
146
- configurable: true,
147
- },
148
- deviceId: {
149
- get: function () {
150
- let deviceId;
151
- const channelId = this.channelId;
152
- if (!channelId || !(deviceId = channelId.replace (/\.*[^.]+$/, '')) || !context.objects[deviceId]) {
153
- Object.defineProperty(this, 'deviceName', { value: null });
154
- return doGetter(this, 'deviceId', null);
155
- }
156
- return doGetter(this, 'deviceId', deviceId);
157
- },
158
- configurable: true,
159
- },
160
- deviceName: {
161
- get: function () {
162
- const deviceId = this.deviceId;
163
- const ret = deviceId && context.objects[deviceId].common ? context.objects[deviceId].common.name : null;
164
- return doGetter(this, 'deviceName', ret);
165
- },
166
- configurable: true,
167
- },
168
- enumIds: {
169
- get: function () {
170
- if (!context.isEnums) return undefined;
171
- const enumIds = [];
172
- const enumNames = [];
173
- getObjectEnumsSync(context, this.id, enumIds, enumNames);
174
- Object.defineProperty(this, 'enumNames', { value: enumNames });
175
- return doGetter(this, 'enumIds', enumIds);
176
- },
177
- configurable: true,
178
- },
179
- enumNames: {
180
- get: function () {
181
- if (!context.isEnums) return undefined;
182
- const enumIds = [];
183
- const enumNames = [];
184
- getObjectEnumsSync(context, this.id, enumIds, enumNames);
185
- Object.defineProperty(this, 'enumIds', { value: enumIds });
186
- return doGetter(this, 'enumNames', enumNames);
187
- },
188
- configurable: true,
189
- }
190
- };
191
- Object.defineProperties(EventObj.prototype, eventObjectProperties);
192
- inited = true;
193
- }
194
-
195
- return new EventObj(id, state, oldState);
196
- }
197
-
198
- module.exports = {
199
- createEventObject,
200
- getObjectEnumsSync
201
- };