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.
- package/README.md +7 -3
- package/admin/assets/{createSvgIcon-BdRvDw53.js → createSvgIcon-BQT-7-GS.js} +1 -1
- package/admin/assets/{docs-6na4NFtj.js → docs-BrInh2Pn.js} +2 -2
- package/admin/assets/index-B0RKH_iG.js +1329 -0
- package/admin/assets/index-CfuHVX2B.js +193 -0
- package/admin/assets/index-CuCs5aLs.js +5 -0
- package/admin/assets/index-tExaxF69.js +930 -0
- package/admin/assets/inheritsLoose--KnFDOw1.js +36 -0
- package/admin/assets/{useTheme-Cl1QmYFL.js → useTheme-DF6qfrtI.js} +1 -1
- package/admin/custom/assets/{Components-ChpTW7sE.js → Components-D9kRsHNY.js} +1 -1
- package/admin/custom/assets/{DefaultPropsProvider-CHpMCMgA.js → DefaultPropsProvider-9qubdy-V.js} +2 -2
- package/admin/custom/assets/{FilledInput-CtcQVKyj.js → FilledInput-BpuM_GyB.js} +1 -1
- package/admin/custom/assets/Tabs-CvEv0KOT.js +138 -0
- package/admin/custom/assets/ThemeProvider-DZTpMR8n.js +29 -0
- package/admin/custom/assets/{createSvgIcon-C_vAELFU.js → createSvgIcon-BQThUM-f.js} +1 -1
- package/admin/custom/assets/hostInit-CrAs5YZS.js +1 -1
- package/admin/custom/assets/{index-DwsbskQy.js → index-DIWNdd4a.js} +1 -1
- package/admin/custom/assets/index-DZqbj5K4.js +55 -0
- package/admin/custom/assets/{index-D5apCzjJ.js → index-Dbe-II7_.js} +6 -6
- package/admin/custom/assets/index-az76fZMP.js +904 -0
- package/admin/custom/assets/index-sawv1cUe.js +1399 -0
- package/admin/custom/assets/{virtualExposes-BPncCdUy.js → virtualExposes-BMKIjWrE.js} +2 -2
- package/admin/custom/customComponents.js +2 -2
- package/admin/custom/i18n/de.json +29 -29
- package/admin/custom/i18n/es.json +29 -29
- package/admin/custom/i18n/fr.json +29 -29
- package/admin/custom/i18n/it.json +29 -29
- package/admin/custom/i18n/nl.json +29 -29
- package/admin/custom/i18n/pl.json +29 -29
- package/admin/custom/i18n/pt.json +29 -29
- package/admin/custom/i18n/ru.json +29 -29
- package/admin/custom/i18n/uk.json +29 -29
- package/admin/custom/i18n/zh-cn.json +29 -29
- package/admin/google-blockly/blockly_compressed.js +875 -887
- package/admin/google-blockly/blocks_compressed.js +38 -41
- package/admin/google-blockly/javascript_compressed.js +19 -54
- package/admin/google-blockly/media/delete-icon.svg +1 -0
- package/admin/google-blockly/media/foldout-icon.svg +1 -0
- package/admin/google-blockly/media/resize-handle.svg +3 -0
- package/admin/jsonConfig.json +2 -0
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +2 -2
- package/admin/tab.html +4 -4
- package/admin/vsFont/README.md +1 -1
- package/admin/vsFont/createJson.js +1 -1
- package/build-backend/lib/consts.js +346 -0
- package/build-backend/lib/consts.js.map +1 -0
- package/build-backend/lib/convert.js +120 -0
- package/build-backend/lib/convert.js.map +1 -0
- package/build-backend/lib/debug.js +163 -0
- package/build-backend/lib/debug.js.map +1 -0
- package/{lib → build-backend/lib}/debugger.js +261 -232
- package/build-backend/lib/debugger.js.map +1 -0
- package/build-backend/lib/eventObj.js +177 -0
- package/build-backend/lib/eventObj.js.map +1 -0
- package/build-backend/lib/inspect.js +728 -0
- package/build-backend/lib/inspect.js.map +1 -0
- package/build-backend/lib/javascript.d.ts +1972 -0
- package/{lib → build-backend/lib}/mirror.js +185 -182
- package/build-backend/lib/mirror.js.map +1 -0
- package/build-backend/lib/nodeModulesManagement.js +25 -0
- package/build-backend/lib/nodeModulesManagement.js.map +1 -0
- package/build-backend/lib/patternCompareFunctions.js +321 -0
- package/build-backend/lib/patternCompareFunctions.js.map +1 -0
- package/build-backend/lib/protectFs.js +477 -0
- package/build-backend/lib/protectFs.js.map +1 -0
- package/build-backend/lib/request.js +89 -0
- package/build-backend/lib/request.js.map +1 -0
- package/{lib → build-backend/lib}/sandbox.js +2046 -1852
- package/build-backend/lib/sandbox.js.map +1 -0
- package/build-backend/lib/scheduler.js +553 -0
- package/build-backend/lib/scheduler.js.map +1 -0
- package/build-backend/lib/tools.js +183 -0
- package/build-backend/lib/tools.js.map +1 -0
- package/build-backend/lib/typescriptSettings.js +39 -0
- package/build-backend/lib/typescriptSettings.js.map +1 -0
- package/build-backend/lib/typescriptTools.js +435 -0
- package/build-backend/lib/typescriptTools.js.map +1 -0
- package/build-backend/lib/utils.js +66 -0
- package/build-backend/lib/utils.js.map +1 -0
- package/{lib → build-backend/lib}/words.js +23 -30
- package/build-backend/lib/words.js.map +1 -0
- package/build-backend/main.js +2671 -0
- package/build-backend/main.js.map +1 -0
- package/build-backend/types.d.ts +742 -0
- package/docs/de/README.md +1 -1
- package/docs/en/README.md +1 -1
- package/docs/en/javascript.md +10 -6
- package/docs/ru/README.md +1 -1
- package/install/installTypings.js +34 -47
- package/io-package.json +14 -14
- package/package.json +14 -14
- package/admin/assets/index-DCkkMRRa.js +0 -1335
- package/admin/assets/index-DJfSBoBB.js +0 -192
- package/admin/assets/index-DTiA4WdK.js +0 -930
- package/admin/assets/index-qABB1JVe.js +0 -5
- package/admin/assets/inheritsLoose-BW-3V39H.js +0 -36
- package/admin/custom/assets/Tabs-C1KOyWRi.js +0 -137
- package/admin/custom/assets/ThemeProvider-Buvx5nSd.js +0 -29
- package/admin/custom/assets/index-BGCRznKh.js +0 -904
- package/admin/custom/assets/index-DfBPYXqA.js +0 -55
- package/admin/custom/assets/index-jIr6kOLK.js +0 -1398
- package/lib/adapter-config.d.ts +0 -16
- package/lib/consts.js +0 -83
- package/lib/convert.js +0 -106
- package/lib/debug.js +0 -154
- package/lib/eventObj.js +0 -201
- package/lib/inspect.js +0 -688
- package/lib/javascript.d.ts +0 -1858
- package/lib/nodeModulesManagement.js +0 -26
- package/lib/patternCompareFunctions.js +0 -391
- package/lib/protectFs.js +0 -401
- package/lib/request.js +0 -72
- package/lib/scheduler.js +0 -447
- package/lib/tools.js +0 -192
- package/lib/typescriptSettings.js +0 -44
- package/lib/typescriptTools.js +0 -529
- package/lib/utils.js +0 -87
- package/main.js +0 -2653
package/lib/adapter-config.d.ts
DELETED
|
@@ -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
|
-
};
|