iobroker.javascript 9.0.11 → 9.0.13
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 +3 -5
- package/admin/assets/OpenAiDialog-BmcYPsVa.js +36 -0
- package/admin/assets/{Save--0ldNXLf.js → Save-DXaUpIPM.js} +1 -1
- package/admin/assets/{ScriptEditor-CpRWvDSw.js → ScriptEditor-BoSBgnK-.js} +1 -1
- package/admin/assets/{ScriptEditorVanillaMonaco-BWe9MiKn.js → ScriptEditorVanillaMonaco-Xge2wqgO.js} +1 -1
- package/admin/assets/{createSvgIcon-C_ElRFrf.js → createSvgIcon-DlIk-fDn.js} +3 -3
- package/admin/assets/hostInit-OBG53iVO.js +2 -0
- package/admin/assets/index-BCK6q-N6.css +1 -0
- package/admin/assets/{index-BLZa2V1g.js → index-BMwfsknM.js} +1 -1
- package/admin/assets/{index-Dr_ZFwru.css → index-BTsjunTt.css} +1 -1
- package/admin/assets/{index-CMttI-gM.js → index-BWM5lJbO.js} +4 -4
- package/admin/assets/index-Br_QjNUk.js +942 -0
- package/admin/assets/index-CePzv5-W.js +1294 -0
- package/admin/assets/index-Cjl4b70e.js +5 -0
- package/admin/assets/{index-BompUVvy.js → index-DZ3lKVw8.js} +1 -1
- package/admin/assets/{index-DmpUKunr.js → index-DwcZPzOL.js} +2 -2
- package/admin/assets/index-OIiv3PJA.js +16 -0
- package/admin/assets/{inheritsLoose-CLw44UEv.js → inheritsLoose-DNrhibGS.js} +1 -1
- package/admin/assets/{iobroker_javascript__loadShare__react__loadShare__-B-pIv4x_.js → iobroker_javascript__loadShare__react__loadShare__-i8pXne9X.js} +1 -1
- package/admin/assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-DZdFIfoQ.js +5 -0
- package/admin/assets/preload-helper-BDBacUwf.js +1 -0
- package/admin/assets/useTheme-DakN8Abq.js +1 -0
- package/admin/custom/assets/{Components-za_0yG9W.js → Components-DjQ_LxKw.js} +1 -1
- package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-BHJt30My.js → ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DaN0pfsw.js} +1 -1
- package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-WrqdT1Hz.js → ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BqzgglHd.js} +1 -1
- package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare__react__loadShare__-B_YWmFeG.js → ConfigCustomJavascriptSet__loadShare__react__loadShare__-BNbscXK6.js} +1 -1
- package/admin/custom/assets/{ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-DYzjQQsF.js → ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-N2_tx_mJ.js} +1 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-jdUmHa_i.js +5 -0
- package/admin/custom/assets/DefaultPropsProvider-B8ZCC-c2.js +1 -0
- package/admin/custom/assets/DefaultPropsProvider-DfdXSIBu.js +1 -0
- package/admin/custom/assets/{FilledInput-BGGUNS4j.js → FilledInput-CSjr0QT8.js} +2 -2
- package/admin/custom/assets/{Tabs-DjdFNknI.js → Tabs-CiTQkBjL.js} +6 -6
- package/admin/custom/assets/{ThemeProvider-Uan4kCQd.js → ThemeProvider-C50pIiW4.js} +2 -2
- package/admin/custom/assets/_commonjsHelpers-CE1G-McA.js +1 -0
- package/admin/custom/assets/{createSvgIcon-BxCMHFh5.js → createSvgIcon-C7qUEvjp.js} +1 -1
- package/admin/custom/assets/createTheme-Bm92JF8u.js +8 -0
- package/admin/custom/assets/defaultTheme-BlO0eCf6.js +1 -0
- package/admin/custom/assets/{hostInit-CrAs5YZS.js → hostInit-BJ6gSofk.js} +2 -2
- package/admin/custom/assets/index-4wMOc304.js +1 -0
- package/admin/custom/assets/{index-UhQfKbTz.js → index-5CTGLw4h.js} +1 -1
- package/admin/custom/assets/index-BHN4DzE4.js +908 -0
- package/admin/custom/assets/{index-yiPj_-Rb.js → index-BkjEWGjf.js} +1 -1
- package/admin/custom/assets/{index-bxilEzdP.js → index-COcxCdeX.js} +2 -18
- package/admin/custom/assets/{index-DXg_kRe6.js → index-CnpybLRW.js} +1 -1
- package/admin/custom/assets/{index-ClFSKKDu.js → index-Db8nkuMR.js} +2 -2
- package/admin/custom/assets/{index-B2rBO0oC.js → index-DcK0RDrH.js} +1 -1
- package/admin/custom/assets/{index-7YkEnLQM.js → index-Df6OaCxx.js} +1 -1
- package/admin/custom/assets/{index-DOnIDI_a.js → index-Dx7rDE4p.js} +1 -1
- package/admin/custom/assets/index-t-NMdeH5.js +31 -0
- package/admin/custom/assets/index-u8R8UVCf.js +1393 -0
- package/admin/custom/assets/jsx-runtime-C1csJtRx.js +1 -0
- package/admin/custom/assets/leaflet-src-DpWQqQWv.js +1 -0
- package/admin/custom/assets/preload-helper-BDBacUwf.js +1 -0
- package/admin/custom/assets/useEnhancedEffect-aUb-5tTL.js +1 -0
- package/admin/custom/assets/{useTheme-DWmRkwMP.js → useTheme-Cgjfsi-1.js} +1 -1
- package/admin/custom/assets/useTheme-DFGylj2o.js +1 -0
- package/admin/custom/assets/virtualExposes-C_DtjFte.js +2 -0
- package/admin/custom/customComponents.js +2 -2
- package/admin/i18n/de.json +1 -1
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +2 -2
- package/admin/tab.html +10 -13
- package/build/lib/crypto.js +32 -0
- package/build/lib/crypto.js.map +1 -0
- package/{build-backend → build}/lib/javascript.d.ts +3 -0
- package/{build-backend → build}/lib/utils.js.map +1 -1
- package/{build-backend → build}/main.js +20 -12
- package/build/main.js.map +1 -0
- package/{build-backend → build}/types.d.ts +1 -0
- package/docs/en/javascript.md +1 -1
- package/io-package.json +14 -14
- package/package.json +21 -20
- package/admin/assets/OpenAiDialog-BYXyaWDU.js +0 -36
- package/admin/assets/hostInit-fzxL8JAx.js +0 -2
- package/admin/assets/index-BUU5hWiL.js +0 -1294
- package/admin/assets/index-DUBaHZ92.css +0 -1
- package/admin/assets/index-DeFm7TiX.js +0 -5
- package/admin/assets/index-T5pCS60x.js +0 -16
- package/admin/assets/index-fhg5Z_KX.js +0 -930
- package/admin/assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CmuPLb0X.js +0 -5
- package/admin/assets/preload-helper-Dp1pzeXC.js +0 -1
- package/admin/assets/useTheme-CpAj0H76.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-Cib3-eWa.js +0 -5
- package/admin/custom/assets/DefaultPropsProvider-B41fRCEO.js +0 -1
- package/admin/custom/assets/DefaultPropsProvider-CfXkmG16.js +0 -7
- package/admin/custom/assets/_commonjsHelpers-D6-XlEtG.js +0 -1
- package/admin/custom/assets/createTheme-Ajie0adn.js +0 -16
- package/admin/custom/assets/defaultTheme-C_aSR-NR.js +0 -1
- package/admin/custom/assets/index-BkKMt4bp.js +0 -31
- package/admin/custom/assets/index-Bw5ZKbIF.js +0 -1399
- package/admin/custom/assets/index-Co3YA5NW.js +0 -9
- package/admin/custom/assets/index-DsPFm5o5.js +0 -904
- package/admin/custom/assets/jsx-runtime-lE4rOet2.js +0 -9
- package/admin/custom/assets/leaflet-src-A2ZHl6nF.js +0 -4
- package/admin/custom/assets/preload-helper-Dp1pzeXC.js +0 -1
- package/admin/custom/assets/useEnhancedEffect-DSK35Rma.js +0 -8
- package/admin/custom/assets/useTheme-CpiJlUE9.js +0 -1
- package/admin/custom/assets/virtualExposes-4pgHXHfp.js +0 -2
- package/build-backend/main.js.map +0 -1
- /package/{build-backend → build}/lib/consts.js +0 -0
- /package/{build-backend → build}/lib/consts.js.map +0 -0
- /package/{build-backend → build}/lib/convert.js +0 -0
- /package/{build-backend → build}/lib/convert.js.map +0 -0
- /package/{build-backend → build}/lib/debug.js +0 -0
- /package/{build-backend → build}/lib/debug.js.map +0 -0
- /package/{build-backend → build}/lib/debugger.js +0 -0
- /package/{build-backend → build}/lib/debugger.js.map +0 -0
- /package/{build-backend → build}/lib/eventObj.js +0 -0
- /package/{build-backend → build}/lib/eventObj.js.map +0 -0
- /package/{build-backend → build}/lib/inspect.js +0 -0
- /package/{build-backend → build}/lib/inspect.js.map +0 -0
- /package/{build-backend → build}/lib/mirror.js +0 -0
- /package/{build-backend → build}/lib/mirror.js.map +0 -0
- /package/{build-backend → build}/lib/nodeModulesManagement.js +0 -0
- /package/{build-backend → build}/lib/nodeModulesManagement.js.map +0 -0
- /package/{build-backend → build}/lib/patternCompareFunctions.js +0 -0
- /package/{build-backend → build}/lib/patternCompareFunctions.js.map +0 -0
- /package/{build-backend → build}/lib/protectFs.js +0 -0
- /package/{build-backend → build}/lib/protectFs.js.map +0 -0
- /package/{build-backend → build}/lib/request.js +0 -0
- /package/{build-backend → build}/lib/request.js.map +0 -0
- /package/{build-backend → build}/lib/sandbox.js +0 -0
- /package/{build-backend → build}/lib/sandbox.js.map +0 -0
- /package/{build-backend → build}/lib/scheduler.js +0 -0
- /package/{build-backend → build}/lib/scheduler.js.map +0 -0
- /package/{build-backend → build}/lib/tools.js +0 -0
- /package/{build-backend → build}/lib/tools.js.map +0 -0
- /package/{build-backend → build}/lib/typescriptSettings.js +0 -0
- /package/{build-backend → build}/lib/typescriptSettings.js.map +0 -0
- /package/{build-backend → build}/lib/typescriptTools.js +0 -0
- /package/{build-backend → build}/lib/typescriptTools.js.map +0 -0
- /package/{build-backend → build}/lib/utils.js +0 -0
- /package/{build-backend → build}/lib/words.js +0 -0
- /package/{build-backend → build}/lib/words.js.map +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encryptText = encryptText;
|
|
4
|
+
exports.decryptText = decryptText;
|
|
5
|
+
/**
|
|
6
|
+
* Encrypt the password/value with given key
|
|
7
|
+
*
|
|
8
|
+
* @param password - Secret key
|
|
9
|
+
* @param plainText - value to encrypt
|
|
10
|
+
*/
|
|
11
|
+
function encryptText(password, plainText) {
|
|
12
|
+
let result = '';
|
|
13
|
+
for (let i = 0; i < plainText.length; i++) {
|
|
14
|
+
result += String.fromCharCode(password[i % password.length].charCodeAt(0) ^ plainText.charCodeAt(i));
|
|
15
|
+
}
|
|
16
|
+
return Buffer.from(result).toString('base64');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Decrypt the password/value with given key
|
|
20
|
+
*
|
|
21
|
+
* @param password - Secret key
|
|
22
|
+
* @param base64Text - value to decrypt
|
|
23
|
+
*/
|
|
24
|
+
function decryptText(password, base64Text) {
|
|
25
|
+
let result = '';
|
|
26
|
+
const plainText = Buffer.from(base64Text, 'base64').toString();
|
|
27
|
+
for (let i = 0; i < plainText.length; i++) {
|
|
28
|
+
result += String.fromCharCode(password[i % password.length].charCodeAt(0) ^ plainText.charCodeAt(i));
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/lib/crypto.ts"],"names":[],"mappings":";;AAMA,kCAMC;AAQD,kCAOC;AA3BD;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,SAAiB;IAC3D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,UAAkB;IAC5D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC","sourcesContent":["/**\n * Encrypt the password/value with given key\n *\n * @param password - Secret key\n * @param plainText - value to encrypt\n */\nexport function encryptText(password: string, plainText: string): string {\n let result = '';\n for (let i = 0; i < plainText.length; i++) {\n result += String.fromCharCode(password[i % password.length].charCodeAt(0) ^ plainText.charCodeAt(i));\n }\n return Buffer.from(result).toString('base64');\n}\n\n/**\n * Decrypt the password/value with given key\n *\n * @param password - Secret key\n * @param base64Text - value to decrypt\n */\nexport function decryptText(password: string, base64Text: string): string {\n let result = '';\n const plainText = Buffer.from(base64Text, 'base64').toString();\n for (let i = 0; i < plainText.length; i++) {\n result += String.fromCharCode(password[i % password.length].charCodeAt(0) ^ plainText.charCodeAt(i));\n }\n return result;\n}\n"]}
|
|
@@ -1826,6 +1826,9 @@ declare global {
|
|
|
1826
1826
|
interface ScriptObject extends BaseObject {
|
|
1827
1827
|
type: 'script';
|
|
1828
1828
|
common: ScriptCommon;
|
|
1829
|
+
native: {
|
|
1830
|
+
encrypted?: boolean;
|
|
1831
|
+
};
|
|
1829
1832
|
}
|
|
1830
1833
|
|
|
1831
1834
|
interface PartialScriptObject extends Partial<Omit<ScriptObject, 'common'>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;;AAyDA,8BASC;AAlED,qCAAmD;AACnD,yCAA0C;AAG1C,MAAM,UAAU,GAAG;IACf,QAAQ,EAAE,CAAC;IACX,uBAAuB,EAAE,EAAE;CAC9B,CAAC;AAEF;;;GAGG;AACH,SAAS,UAAU;IACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAmB;IACzC,kCAAkC;IAClC,MAAM,aAAa,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAC3E,IAAI,cAAkC,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC3B,cAAc,GAAG,YAAY,CAAC;gBAC9B,MAAM;YACV,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,eAAe;QACnB,CAAC;IACL,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,OAAO,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC;AACnC,CAAC;AAEY,QAAA,OAAO,GAAG,UAAU,EAAE,CAAC;AACvB,QAAA,aAAa,GAAG,gBAAgB,CACzC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CACvF,CAAC;AAEF;;GAEG;AACH,SAAgB,SAAS;IACrB,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAA,oBAAU,EAAC,CAAC,UAAU,GAAG,IAAA,gBAAI,EAAC,qBAAa,EAAE,MAAM,EAAE,GAAG,eAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAA,oBAAU,EAAC,CAAC,UAAU,GAAG,IAAA,gBAAI,EAAC,qBAAa,EAAE,MAAM,EAAE,GAAG,CAAC,eAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,eAAe,qBAAa,SAAS,eAAO,OAAO,CAAC,CAAC;AACzE,CAAC;AAEY,QAAA,OAAO,GAAG,OAAO,CAAC,IAAA,gBAAI,EAAC,qBAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC","sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport type { IoBJson } from '@iobroker/types/build/config';\n\nconst EXIT_CODES = {\n NO_ERROR: 0,\n CANNOT_FIND_ADAPTER_DIR: 10,\n};\n\n/**\n * Returns the application name\n * The name of the application can be different, and this function finds it out.\n */\nfunction getAppName(): string {\n const parts = __dirname.replace(/\\\\/g, '/').split('/');\n return parts[parts.length - 2].split('.')[0];\n}\n\n/**\n * looks for js-controller home folder\n */\nfunction getControllerDir(isInstall?: boolean): string {\n // Find the js-controller location\n const possibilities = ['iobroker.js-controller', 'ioBroker.js-controller'];\n let controllerPath: string | undefined;\n for (const pkg of possibilities) {\n try {\n const possiblePath = require.resolve(pkg);\n if (existsSync(possiblePath)) {\n controllerPath = possiblePath;\n break;\n }\n } catch {\n /* not found */\n }\n }\n if (!controllerPath) {\n if (!isInstall) {\n console.log('Cannot find js-controller');\n process.exit(EXIT_CODES.CANNOT_FIND_ADAPTER_DIR);\n } else {\n process.exit(EXIT_CODES.NO_ERROR);\n }\n }\n\n // we found the controller\n return dirname(controllerPath);\n}\n\nexport const appName = getAppName();\nexport const controllerDir = getControllerDir(\n typeof process !== 'undefined' && process.argv && process.argv.includes('--install'),\n);\n\n/**\n * Reads controller base settings\n */\nexport function getConfig(): IoBJson {\n let configPath: string;\n if (existsSync((configPath = join(controllerDir, 'conf', `${appName}.json`)))) {\n return JSON.parse(readFileSync(configPath, 'utf8'));\n }\n if (existsSync((configPath = join(controllerDir, 'conf', `${+appName.toLowerCase()}.json`)))) {\n return JSON.parse(readFileSync(configPath, 'utf8'));\n }\n throw new Error(`Cannot find ${controllerDir}/conf/${appName}.json`);\n}\n\nexport const Adapter = require(join(controllerDir, 'lib/adapter.js'))
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;;AAyDA,8BASC;AAlED,qCAAmD;AACnD,yCAA0C;AAG1C,MAAM,UAAU,GAAG;IACf,QAAQ,EAAE,CAAC;IACX,uBAAuB,EAAE,EAAE;CAC9B,CAAC;AAEF;;;GAGG;AACH,SAAS,UAAU;IACf,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAmB;IACzC,kCAAkC;IAClC,MAAM,aAAa,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAC3E,IAAI,cAAkC,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;gBAC3B,cAAc,GAAG,YAAY,CAAC;gBAC9B,MAAM;YACV,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,eAAe;QACnB,CAAC;IACL,CAAC;IACD,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,OAAO,IAAA,mBAAO,EAAC,cAAc,CAAC,CAAC;AACnC,CAAC;AAEY,QAAA,OAAO,GAAG,UAAU,EAAE,CAAC;AACvB,QAAA,aAAa,GAAG,gBAAgB,CACzC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CACvF,CAAC;AAEF;;GAEG;AACH,SAAgB,SAAS;IACrB,IAAI,UAAkB,CAAC;IACvB,IAAI,IAAA,oBAAU,EAAC,CAAC,UAAU,GAAG,IAAA,gBAAI,EAAC,qBAAa,EAAE,MAAM,EAAE,GAAG,eAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAA,oBAAU,EAAC,CAAC,UAAU,GAAG,IAAA,gBAAI,EAAC,qBAAa,EAAE,MAAM,EAAE,GAAG,CAAC,eAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,eAAe,qBAAa,SAAS,eAAO,OAAO,CAAC,CAAC;AACzE,CAAC;AAEY,QAAA,OAAO,GAAG,OAAO,CAAC,IAAA,gBAAI,EAAC,qBAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC","sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport type { IoBJson } from '@iobroker/types/build/config';\n\nconst EXIT_CODES = {\n NO_ERROR: 0,\n CANNOT_FIND_ADAPTER_DIR: 10,\n};\n\n/**\n * Returns the application name\n * The name of the application can be different, and this function finds it out.\n */\nfunction getAppName(): string {\n const parts = __dirname.replace(/\\\\/g, '/').split('/');\n return parts[parts.length - 2].split('.')[0];\n}\n\n/**\n * looks for js-controller home folder\n */\nfunction getControllerDir(isInstall?: boolean): string {\n // Find the js-controller location\n const possibilities = ['iobroker.js-controller', 'ioBroker.js-controller'];\n let controllerPath: string | undefined;\n for (const pkg of possibilities) {\n try {\n const possiblePath = require.resolve(pkg);\n if (existsSync(possiblePath)) {\n controllerPath = possiblePath;\n break;\n }\n } catch {\n /* not found */\n }\n }\n if (!controllerPath) {\n if (!isInstall) {\n console.log('Cannot find js-controller');\n process.exit(EXIT_CODES.CANNOT_FIND_ADAPTER_DIR);\n } else {\n process.exit(EXIT_CODES.NO_ERROR);\n }\n }\n\n // we found the controller\n return dirname(controllerPath);\n}\n\nexport const appName = getAppName();\nexport const controllerDir = getControllerDir(\n typeof process !== 'undefined' && process.argv && process.argv.includes('--install'),\n);\n\n/**\n * Reads controller base settings\n */\nexport function getConfig(): IoBJson {\n let configPath: string;\n if (existsSync((configPath = join(controllerDir, 'conf', `${appName}.json`)))) {\n return JSON.parse(readFileSync(configPath, 'utf8'));\n }\n if (existsSync((configPath = join(controllerDir, 'conf', `${+appName.toLowerCase()}.json`)))) {\n return JSON.parse(readFileSync(configPath, 'utf8'));\n }\n throw new Error(`Cannot find ${controllerDir}/conf/${appName}.json`);\n}\n\nexport const Adapter = require(join(controllerDir, 'lib/adapter.js'));"]}
|
|
@@ -83,6 +83,7 @@ const scheduler_1 = require("./lib/scheduler");
|
|
|
83
83
|
const typescriptSettings_1 = require("./lib/typescriptSettings");
|
|
84
84
|
const tools_1 = require("./lib/tools");
|
|
85
85
|
const typescriptTools_1 = require("./lib/typescriptTools");
|
|
86
|
+
const crypto_1 = require("./lib/crypto");
|
|
86
87
|
/**
|
|
87
88
|
* List of forbidden Locations for a mirror directory
|
|
88
89
|
* relative to the default data directory
|
|
@@ -250,6 +251,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
250
251
|
_enums = [];
|
|
251
252
|
names = {}; // name: id
|
|
252
253
|
scripts = {};
|
|
254
|
+
password = '';
|
|
253
255
|
messageBusHandlers = {};
|
|
254
256
|
logSubscriptions = {};
|
|
255
257
|
tempDirectories = {}; // name: path
|
|
@@ -1300,11 +1302,11 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1300
1302
|
const parts = id.split('.');
|
|
1301
1303
|
parts.pop();
|
|
1302
1304
|
const chn = parts.join('.');
|
|
1303
|
-
this.context.channels[chn]
|
|
1305
|
+
this.context.channels[chn] ||= [];
|
|
1304
1306
|
this.context.channels[chn].push(id);
|
|
1305
1307
|
parts.pop();
|
|
1306
1308
|
const dev = parts.join('.');
|
|
1307
|
-
this.context.devices[dev]
|
|
1309
|
+
this.context.devices[dev] ||= [];
|
|
1308
1310
|
this.context.devices[dev].push(id);
|
|
1309
1311
|
}
|
|
1310
1312
|
}
|
|
@@ -1491,6 +1493,9 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1491
1493
|
}
|
|
1492
1494
|
this.addGetProperty(this.objects);
|
|
1493
1495
|
const systemConfig = this.objects['system.config'];
|
|
1496
|
+
this.password = systemConfig?.native?.javascriptPassword
|
|
1497
|
+
? this.decrypt(systemConfig?.native.javascriptPassword)
|
|
1498
|
+
: '';
|
|
1494
1499
|
// set language for debug messages
|
|
1495
1500
|
if (systemConfig?.common?.language) {
|
|
1496
1501
|
(0, words_1.setLanguage)(systemConfig.common.language);
|
|
@@ -1526,14 +1531,14 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1526
1531
|
else if (this.config.longitude < -180 || this.config.longitude > 180) {
|
|
1527
1532
|
this.log.warn(`Configured longitude "${this.config.longitude}" is invalid - check (instance/system) configuration`);
|
|
1528
1533
|
}
|
|
1529
|
-
this.config.sunriseEvent
|
|
1530
|
-
this.config.sunriseOffset
|
|
1531
|
-
this.config.sunriseLimitStart
|
|
1532
|
-
this.config.sunriseLimitEnd
|
|
1533
|
-
this.config.sunsetEvent
|
|
1534
|
-
this.config.sunsetOffset
|
|
1535
|
-
this.config.sunsetLimitStart
|
|
1536
|
-
this.config.sunsetLimitEnd
|
|
1534
|
+
this.config.sunriseEvent ||= 'nightEnd';
|
|
1535
|
+
this.config.sunriseOffset ||= 0;
|
|
1536
|
+
this.config.sunriseLimitStart ||= '06:00';
|
|
1537
|
+
this.config.sunriseLimitEnd ||= '12:00';
|
|
1538
|
+
this.config.sunsetEvent ||= 'dusk';
|
|
1539
|
+
this.config.sunsetOffset ||= 0;
|
|
1540
|
+
this.config.sunsetLimitStart ||= '18:00';
|
|
1541
|
+
this.config.sunsetLimitEnd ||= '23:00';
|
|
1537
1542
|
this.objectsInitDone = true;
|
|
1538
1543
|
this.log.info('received all objects');
|
|
1539
1544
|
})
|
|
@@ -2064,6 +2069,9 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
2064
2069
|
(obj.common.enabled || this.context.debugMode === obj._id) &&
|
|
2065
2070
|
obj.common.engine === `system.adapter.${this.namespace}`) {
|
|
2066
2071
|
const name = obj._id;
|
|
2072
|
+
if (this.password && obj.native?.protected) {
|
|
2073
|
+
obj.common.source = (0, crypto_1.decryptText)(this.password, obj.common.source);
|
|
2074
|
+
}
|
|
2067
2075
|
const nameId = name.substring(SCRIPT_CODE_MARKER.length);
|
|
2068
2076
|
if (!nameId.length || nameId.endsWith('.')) {
|
|
2069
2077
|
this.log.error(`${name}: Script name "${name}" is invalid!`);
|
|
@@ -2074,7 +2082,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
2074
2082
|
this.interimStateValues[idActive] = this.prepareStateObjectSimple(`${this.namespace}.${idActive}`, true, true);
|
|
2075
2083
|
}
|
|
2076
2084
|
await this.setState(idActive, true, true);
|
|
2077
|
-
obj.common.engineType
|
|
2085
|
+
obj.common.engineType ||= '';
|
|
2078
2086
|
if (obj.common.engineType.toLowerCase().startsWith('javascript') ||
|
|
2079
2087
|
obj.common.engineType === 'Blockly' ||
|
|
2080
2088
|
obj.common.engineType === 'Rules') {
|
|
@@ -2506,7 +2514,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
2506
2514
|
this.debugState.endTimeout = null;
|
|
2507
2515
|
this.debugState.child?.kill('SIGTERM');
|
|
2508
2516
|
}, 500);
|
|
2509
|
-
this.debugState.promiseOnEnd
|
|
2517
|
+
this.debugState.promiseOnEnd ||= Promise.resolve(0);
|
|
2510
2518
|
}
|
|
2511
2519
|
else {
|
|
2512
2520
|
this.debugState.promiseOnEnd = Promise.resolve(0);
|