iobroker.javascript 9.0.18 → 9.1.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 +13 -6
- package/admin/assets/OpenAiDialog-Dx-XNET0.js +13 -0
- package/admin/assets/{Save-C-o2LLTD.js → Save-Cld9qv9i.js} +1 -1
- package/admin/assets/ScriptEditor-BVaX7Hcs.js +2 -0
- package/admin/assets/ScriptEditorVanillaMonaco-yq11eIYC.js +1 -0
- package/admin/assets/createSvgIcon-DPvF8xqu.js +8 -0
- package/admin/assets/hostInit-LzITLWDa.js +1 -0
- package/admin/assets/index-BkyLyaYT.js +8 -0
- package/admin/assets/index-CLJ6-h9Q.js +1 -0
- package/admin/assets/index-COZhHfBn.js +1230 -0
- package/admin/assets/index-CVZSzCXy.js +1 -0
- package/admin/assets/index-Cu-TydZj.js +5 -0
- package/admin/assets/index-D8iYqogF.js +16 -0
- package/admin/assets/index-DlDUIfpA.js +193 -0
- package/admin/assets/index-Dnbw7_L3.js +986 -0
- package/admin/assets/index-Dsh1HfIY.js +1 -0
- package/admin/assets/index-gIA8x-8f.js +1 -0
- package/admin/assets/inheritsLoose-B0Ba5G9z.js +29 -0
- package/admin/assets/iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-QWG5Arqe.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js +1 -0
- package/admin/assets/iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js +1 -0
- package/admin/assets/localSharedImportMap-AxgBkrOR.js +1 -0
- package/admin/assets/useTheme-hy6f3gra.js +1 -0
- package/admin/assets/virtualExposes-BPsCufin.js +1 -0
- package/admin/assets/virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-C9suQF96.js +8 -0
- package/admin/custom/assets/Components-FfVbavBM.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-B7D2xOvV.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.mjs-ClsgYnEX.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.mjs-B551AMx-.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-KsT5vKjV.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_x_mf_2_date_mf_2_pickers__loadShare__.mjs-DgHZUNxn.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__leaflet__loadShare__.mjs-BYONkEgA.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__.mjs-0SjJESw9.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__.mjs_commonjs-proxy-CInLgMWW.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__.mjs-CL--xmjC.js +1 -0
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-CorOEig8.js +1 -0
- package/admin/custom/assets/DefaultPropsProvider-CGb21NGY.js +1 -0
- package/admin/custom/assets/TextField-DNzklBSl.js +139 -0
- package/admin/custom/assets/ThemeProvider-B4G3jidj.js +29 -0
- package/admin/custom/assets/blue-CagzI6CQ.js +1 -0
- package/admin/custom/assets/createSvgIcon-ZdrQ8zSU.js +1 -0
- package/admin/custom/assets/createTheme-Wd4QxQE0.js +8 -0
- package/admin/custom/assets/defaultTheme-F2iJF2G2.js +1 -0
- package/admin/custom/assets/hostInit-iUL-wyj1.js +1 -0
- package/admin/custom/assets/index-AZB1OHDH.js +1 -0
- package/admin/custom/assets/index-Be7j5wvd.js +1523 -0
- package/admin/custom/assets/index-BptSiKBK.js +55 -0
- package/admin/custom/assets/index-Bvwv5H7k.js +1 -0
- package/admin/custom/assets/index-C0RmLaAj.js +1 -0
- package/admin/custom/assets/index-CYc31Gwg.js +960 -0
- package/admin/custom/assets/index-CmJ8HzSc.js +1 -0
- package/admin/custom/assets/index-D0iTiVVG.js +8 -0
- package/admin/custom/assets/index-DNdWk-cT.js +1 -0
- package/admin/custom/assets/index-Dp7A3XHd.js +7 -0
- package/admin/custom/assets/index-YBvFYuP6.js +31 -0
- package/admin/custom/assets/index-huvZQhZw.js +1 -0
- package/admin/custom/assets/index-iRHaQfi-.js +1 -0
- package/admin/custom/assets/isSameWeek-DDsSIa_t.js +1 -0
- package/admin/custom/assets/jsx-runtime-DfVU3AZG.js +1 -0
- package/admin/custom/assets/leaflet-src-k2rCV-Ix.js +1 -0
- package/admin/custom/assets/localSharedImportMap-BRxFonIn.js +1 -0
- package/admin/custom/assets/useTheme-BfhDdtAr.js +1 -0
- package/admin/custom/assets/useTheme-DWZ6jNyq.js +1 -0
- package/admin/custom/assets/virtualExposes-DyedJotb.js +2 -0
- package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID_ConfigCustomJavascriptSet__customComponents_js-BtJxKB87.js +8 -0
- package/admin/custom/customComponents.js +1 -2
- package/admin/i18n/de.json +10 -1
- package/admin/i18n/en.json +10 -1
- package/admin/i18n/es.json +10 -1
- package/admin/i18n/fr.json +10 -1
- package/admin/i18n/it.json +10 -1
- package/admin/i18n/nl.json +10 -1
- package/admin/i18n/pl.json +10 -1
- package/admin/i18n/pt.json +10 -1
- package/admin/i18n/ru.json +10 -1
- package/admin/i18n/uk.json +10 -1
- package/admin/i18n/zh-cn.json +10 -1
- package/admin/jsonConfig.json +195 -130
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +1 -2
- package/admin/tab.html +13 -8
- package/build/lib/javascript.d.ts +4 -2
- package/build/lib/nodeModulesManagement.js +3 -2
- package/build/lib/nodeModulesManagement.js.map +1 -1
- package/build/lib/protectFs.js +27 -12
- package/build/lib/protectFs.js.map +1 -1
- package/build/lib/sandbox.js +3 -3
- package/build/lib/sandbox.js.map +1 -1
- package/build/lib/tools.js +7 -2
- package/build/lib/tools.js.map +1 -1
- package/build/main.js +236 -19
- package/build/main.js.map +1 -1
- package/build/types.d.ts +5 -0
- package/docs/de/README.md +75 -0
- package/docs/en/README.md +75 -0
- package/io-package.json +19 -15
- package/package.json +14 -14
- package/admin/assets/OpenAiDialog-BVH3CrDi.js +0 -36
- package/admin/assets/ScriptEditor-CAoVSrVf.js +0 -2
- package/admin/assets/ScriptEditorVanillaMonaco-Cf9lA3Q5.js +0 -1
- package/admin/assets/_commonjsHelpers-Cpj98o6Y.js +0 -1
- package/admin/assets/createSvgIcon-XLoRKyxt.js +0 -30
- package/admin/assets/hostInit-OBG53iVO.js +0 -2
- package/admin/assets/index-BDco9K7T.js +0 -942
- package/admin/assets/index-C96hfBFW.js +0 -16
- package/admin/assets/index-CFhFEZTW.js +0 -5
- package/admin/assets/index-Cm-iTDHo.js +0 -193
- package/admin/assets/index-DCTpQXgR.js +0 -1294
- package/admin/assets/index-DKvqhUY5.js +0 -24
- package/admin/assets/index-DQiceR5U.js +0 -1
- package/admin/assets/index-DZ3lKVw8.js +0 -1
- package/admin/assets/index-DcrzW8Zn.js +0 -1
- package/admin/assets/index-Do-nCdWy.js +0 -9
- package/admin/assets/inheritsLoose-tR_kcxUR.js +0 -36
- package/admin/assets/iobroker_javascript__loadShare__react__loadShare__-6sH5wUl6.js +0 -1
- package/admin/assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CMP-NJnH.js +0 -8
- package/admin/assets/useTheme-C2oUi01-.js +0 -1
- package/admin/assets/virtualExposes-BIHI7g3E.js +0 -1
- package/admin/custom/assets/Components-DjQ_LxKw.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__-DaN0pfsw.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare___mf_0_mui_mf_1_material__loadShare__-BqzgglHd.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react__loadShare__-BNbscXK6.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__loadShare__react_mf_2_dom__loadShare__-N2_tx_mJ.js +0 -1
- package/admin/custom/assets/ConfigCustomJavascriptSet__mf_v__runtimeInit__mf_v__-jdUmHa_i.js +0 -5
- package/admin/custom/assets/DefaultPropsProvider-B8ZCC-c2.js +0 -1
- package/admin/custom/assets/DefaultPropsProvider-DfdXSIBu.js +0 -1
- package/admin/custom/assets/FilledInput-CSjr0QT8.js +0 -2
- package/admin/custom/assets/Tabs-CiTQkBjL.js +0 -138
- package/admin/custom/assets/ThemeProvider-C50pIiW4.js +0 -29
- package/admin/custom/assets/_commonjsHelpers-CE1G-McA.js +0 -1
- package/admin/custom/assets/createSvgIcon-C7qUEvjp.js +0 -1
- package/admin/custom/assets/createTheme-Bm92JF8u.js +0 -8
- package/admin/custom/assets/defaultTheme-BlO0eCf6.js +0 -1
- package/admin/custom/assets/hostInit-BJ6gSofk.js +0 -2
- package/admin/custom/assets/index-4wMOc304.js +0 -1
- package/admin/custom/assets/index-5CTGLw4h.js +0 -55
- package/admin/custom/assets/index-BkjEWGjf.js +0 -1
- package/admin/custom/assets/index-Bym4WjyH.js +0 -908
- package/admin/custom/assets/index-COcxCdeX.js +0 -8
- package/admin/custom/assets/index-CnpybLRW.js +0 -1
- package/admin/custom/assets/index-Db8nkuMR.js +0 -7
- package/admin/custom/assets/index-DcK0RDrH.js +0 -1
- package/admin/custom/assets/index-Df6OaCxx.js +0 -1
- package/admin/custom/assets/index-Dx7rDE4p.js +0 -1
- package/admin/custom/assets/index-t-NMdeH5.js +0 -31
- package/admin/custom/assets/index-u8R8UVCf.js +0 -1393
- package/admin/custom/assets/jsx-runtime-C1csJtRx.js +0 -1
- package/admin/custom/assets/leaflet-src-DpWQqQWv.js +0 -1
- package/admin/custom/assets/useEnhancedEffect-aUb-5tTL.js +0 -1
- package/admin/custom/assets/useTheme-Cgjfsi-1.js +0 -1
- package/admin/custom/assets/useTheme-DFGylj2o.js +0 -1
- package/admin/custom/assets/virtualExposes-C_DtjFte.js +0 -2
package/admin/jsonConfig.json
CHANGED
|
@@ -1,136 +1,201 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
"type": "tabs",
|
|
3
|
+
"i18n": true,
|
|
4
|
+
"iconPosition": "top",
|
|
5
|
+
"items": {
|
|
6
|
+
"_main": {
|
|
7
|
+
"type": "panel",
|
|
8
|
+
"label": "Main settings",
|
|
9
|
+
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQ5NS45IDE2Ni42YzMuMiA4LjcgLjUgMTguNC02LjQgMjQuNmwtNDMuMyAzOS40YzEuMSA4LjMgMS43IDE2LjggMS43IDI1LjRzLS42IDE3LjEtMS43IDI1LjRsNDMuMyAzOS40YzYuOSA2LjIgOS42IDE1LjkgNi40IDI0LjZjLTQuNCAxMS45LTkuNyAyMy4zLTE1LjggMzQuM2wtNC43IDguMWMtNi42IDExLTE0IDIxLjQtMjIuMSAzMS4yYy01LjkgNy4yLTE1LjcgOS42LTI0LjUgNi44bC01NS43LTE3LjdjLTEzLjQgMTAuMy0yOC4yIDE4LjktNDQgMjUuNGwtMTIuNSA1Ny4xYy0yIDkuMS05IDE2LjMtMTguMiAxNy44Yy0xMy44IDIuMy0yOCAzLjUtNDIuNSAzLjVzLTI4LjctMS4yLTQyLjUtMy41Yy05LjItMS41LTE2LjItOC43LTE4LjItMTcuOGwtMTIuNS01Ny4xYy0xNS44LTYuNS0zMC42LTE1LjEtNDQtMjUuNEw4My4xIDQyNS45Yy04LjggMi44LTE4LjYgLjMtMjQuNS02LjhjLTguMS05LjgtMTUuNS0yMC4yLTIyLjEtMzEuMmwtNC43LTguMWMtNi4xLTExLTExLjQtMjIuNC0xNS44LTM0LjNjLTMuMi04LjctLjUtMTguNCA2LjQtMjQuNmw0My4zLTM5LjRDNjQuNiAyNzMuMSA2NCAyNjQuNiA2NCAyNTZzLjYtMTcuMSAxLjctMjUuNEwyMi40IDE5MS4yYy02LjktNi4yLTkuNi0xNS45LTYuNC0yNC42YzQuNC0xMS45IDkuNy0yMy4zIDE1LjgtMzQuM2w0LjctOC4xYzYuNi0xMSAxNC0yMS40IDIyLjEtMzEuMmM1LjktNy4yIDE1LjctOS42IDI0LjUtNi44bDU1LjcgMTcuN2MxMy40LTEwLjMgMjguMi0xOC45IDQ0LTI1LjRsMTIuNS01Ny4xYzItOS4xIDktMTYuMyAxOC4yLTE3LjhDMjI3LjMgMS4yIDI0MS41IDAgMjU2IDBzMjguNyAxLjIgNDIuNSAzLjVjOS4yIDEuNSAxNi4yIDguNyAxOC4yIDE3LjhsMTIuNSA1Ny4xYzE1LjggNi41IDMwLjYgMTUuMSA0NCAyNS40bDU1LjctMTcuN2M4LjgtMi44IDE4LjYtLjMgMjQuNSA2LjhjOC4xIDkuOCAxNS41IDIwLjIgMjIuMSAzMS4ybDQuNyA4LjFjNi4xIDExIDExLjQgMjIuNCAxNS44IDM0LjN6TTI1NiAzMzZhODAgODAgMCAxIDAgMC0xNjAgODAgODAgMCAxIDAgMCAxNjB6Ii8+Cjwvc3ZnPgo=",
|
|
10
|
+
"items": {
|
|
11
|
+
"libraries": {
|
|
12
|
+
"type": "chips",
|
|
13
|
+
"label": "Additional npm modules",
|
|
14
|
+
"delimiter": " ",
|
|
15
|
+
"xs": 12,
|
|
16
|
+
"sm": 12
|
|
17
|
+
},
|
|
18
|
+
"libraryTypings": {
|
|
19
|
+
"newLine": true,
|
|
20
|
+
"type": "chips",
|
|
21
|
+
"label": "Activate syntax help for these npm modules",
|
|
22
|
+
"delimiter": " ",
|
|
23
|
+
"xs": 12,
|
|
24
|
+
"sm": 12
|
|
25
|
+
},
|
|
26
|
+
"mirrorPath": {
|
|
27
|
+
"newLine": true,
|
|
28
|
+
"type": "text",
|
|
29
|
+
"label": "Mirror scripts to file path",
|
|
30
|
+
"xs": 12,
|
|
31
|
+
"sm": 8
|
|
32
|
+
},
|
|
33
|
+
"mirrorInstance": {
|
|
34
|
+
"hidden": "!data.mirrorPath",
|
|
35
|
+
"type": "instance",
|
|
36
|
+
"adapter": "javascript",
|
|
37
|
+
"label": "Instance, that do mirroring",
|
|
38
|
+
"xs": 12,
|
|
39
|
+
"sm": 4
|
|
40
|
+
},
|
|
41
|
+
"enableSetObject": {
|
|
42
|
+
"newLine": true,
|
|
43
|
+
"type": "checkbox",
|
|
44
|
+
"label": "Enable command \"setObject\"",
|
|
45
|
+
"xs": 12,
|
|
46
|
+
"sm": 12,
|
|
47
|
+
"md": 6
|
|
48
|
+
},
|
|
49
|
+
"enableSendToHost": {
|
|
50
|
+
"type": "checkbox",
|
|
51
|
+
"label": "Enable command \"sendToHost\"",
|
|
52
|
+
"xs": 12,
|
|
53
|
+
"sm": 12,
|
|
54
|
+
"md": 6
|
|
55
|
+
},
|
|
56
|
+
"enableExec": {
|
|
57
|
+
"newLine": true,
|
|
58
|
+
"type": "checkbox",
|
|
59
|
+
"label": "Enable command \"exec\"",
|
|
60
|
+
"xs": 12,
|
|
61
|
+
"sm": 12,
|
|
62
|
+
"md": 6
|
|
63
|
+
},
|
|
64
|
+
"subscribe": {
|
|
65
|
+
"type": "checkbox",
|
|
66
|
+
"label": "Do not subscribe all states on start",
|
|
67
|
+
"xs": 12,
|
|
68
|
+
"sm": 12,
|
|
69
|
+
"md": 6
|
|
70
|
+
},
|
|
71
|
+
"maxSetStatePerMinute": {
|
|
72
|
+
"newLine": true,
|
|
73
|
+
"type": "number",
|
|
74
|
+
"label": "Maximum setState requests per Minute per Script",
|
|
75
|
+
"help": "default 1000",
|
|
76
|
+
"min": 20,
|
|
77
|
+
"max": 100000,
|
|
78
|
+
"xs": 12,
|
|
79
|
+
"sm": 12,
|
|
80
|
+
"md": 6
|
|
81
|
+
},
|
|
82
|
+
"maxTriggersPerScript": {
|
|
83
|
+
"type": "number",
|
|
84
|
+
"label": "Maximum triggers per Script (until warning)",
|
|
85
|
+
"help": "default 100",
|
|
86
|
+
"min": 20,
|
|
87
|
+
"max": 100000,
|
|
88
|
+
"xs": 12,
|
|
89
|
+
"sm": 12,
|
|
90
|
+
"md": 6
|
|
91
|
+
},
|
|
92
|
+
"allowSelfSignedCerts": {
|
|
93
|
+
"newLine": true,
|
|
94
|
+
"type": "checkbox",
|
|
95
|
+
"label": "Allow self-signed certificates for URL requests",
|
|
96
|
+
"xs": 12,
|
|
97
|
+
"sm": 12
|
|
98
|
+
}
|
|
99
|
+
}
|
|
17
100
|
},
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
101
|
+
"_astro": {
|
|
102
|
+
"type": "panel",
|
|
103
|
+
"label": "Astro settings",
|
|
104
|
+
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQ5NC4yIDIyMS45bC01OS44LTQwLjUgMTMuNy03MWMyLjYtMTMuMi0xLjYtMjYuOC0xMS4xLTM2LjQtOS42LTkuNS0yMy4yLTEzLjctMzYuMi0xMS4xbC03MC45IDEzLjctNDAuNC01OS45Yy0xNS4xLTIyLjMtNTEuOS0yMi4zLTY3IDBsLTQwLjQgNTkuOS03MC44LTEzLjdDOTggNjAuNCA4NC41IDY0LjUgNzUgNzQuMWMtOS41IDkuNi0xMy43IDIzLjEtMTEuMSAzNi4zbDEzLjcgNzEtNTkuOCA0MC41QzYuNiAyMjkuNSAwIDI0MiAwIDI1NS41czYuNyAyNiAxNy44IDMzLjVsNTkuOCA0MC41LTEzLjcgNzFjLTIuNiAxMy4yIDEuNiAyNi44IDExLjEgMzYuMyA5LjUgOS41IDIyLjkgMTMuNyAzNi4zIDExLjFsNzAuOC0xMy43IDQwLjQgNTkuOUMyMzAgNTA1LjMgMjQyLjYgNTEyIDI1NiA1MTJzMjYtNi43IDMzLjUtMTcuOGw0MC40LTU5LjkgNzAuOSAxMy43YzEzLjQgMi43IDI2LjgtMS42IDM2LjMtMTEuMSA5LjUtOS41IDEzLjYtMjMuMSAxMS4xLTM2LjNsLTEzLjctNzEgNTkuOC00MC41YzExLjEtNy41IDE3LjgtMjAuMSAxNy44LTMzLjUtLjEtMTMuNi02LjctMjYuMS0xNy45LTMzLjd6bS0xMTIuOSA4NS42bDE3LjYgOTEuMi05MS0xNy42TDI1NiA0NThsLTUxLjktNzctOTAuOSAxNy42IDE3LjYtOTEuMi03Ni44LTUyIDc2LjgtNTItMTcuNi05MS4yIDkxIDE3LjZMMjU2IDUzbDUxLjkgNzYuOSA5MS0xNy42LTE3LjYgOTEuMSA3Ni44IDUyLTc2LjggNTIuMXpNMjU2IDE1MmMtNTcuMyAwLTEwNCA0Ni43LTEwNCAxMDRzNDYuNyAxMDQgMTA0IDEwNCAxMDQtNDYuNyAxMDQtMTA0LTQ2LjctMTA0LTEwNC0xMDR6bTAgMTYwYy0zMC45IDAtNTYtMjUuMS01Ni01NnMyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTYtMjUuMSA1Ni01NiA1NnoiLz4KPC9zdmc+Cg==",
|
|
105
|
+
"items": {
|
|
106
|
+
"_astroConfig": {
|
|
107
|
+
"type": "custom",
|
|
108
|
+
"i18n": true,
|
|
109
|
+
"xs": 12,
|
|
110
|
+
"sm": 12,
|
|
111
|
+
"md": 12,
|
|
112
|
+
"lg": 12,
|
|
113
|
+
"url": "custom/customComponents.js",
|
|
114
|
+
"name": "ConfigCustomJavascriptSet/Components/Astro",
|
|
115
|
+
"bundlerType": "module"
|
|
116
|
+
},
|
|
117
|
+
"createAstroStates": {
|
|
118
|
+
"newLine": true,
|
|
119
|
+
"type": "checkbox",
|
|
120
|
+
"label": "Create states for all astro times",
|
|
121
|
+
"xs": 12,
|
|
122
|
+
"sm": 12
|
|
123
|
+
}
|
|
124
|
+
}
|
|
25
125
|
},
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"gptKey": {
|
|
100
|
-
"newLine": true,
|
|
101
|
-
"type": "text",
|
|
102
|
-
"label": "ChatGPT API key",
|
|
103
|
-
"xs": 12,
|
|
104
|
-
"sm": 12,
|
|
105
|
-
"help": "platform.openai.com",
|
|
106
|
-
"helpLink": "https://platform.openai.com/api-keys"
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
"_astro": {
|
|
111
|
-
"type": "panel",
|
|
112
|
-
"label": "Astro settings",
|
|
113
|
-
"icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj4KICAgIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTQ5NC4yIDIyMS45bC01OS44LTQwLjUgMTMuNy03MWMyLjYtMTMuMi0xLjYtMjYuOC0xMS4xLTM2LjQtOS42LTkuNS0yMy4yLTEzLjctMzYuMi0xMS4xbC03MC45IDEzLjctNDAuNC01OS45Yy0xNS4xLTIyLjMtNTEuOS0yMi4zLTY3IDBsLTQwLjQgNTkuOS03MC44LTEzLjdDOTggNjAuNCA4NC41IDY0LjUgNzUgNzQuMWMtOS41IDkuNi0xMy43IDIzLjEtMTEuMSAzNi4zbDEzLjcgNzEtNTkuOCA0MC41QzYuNiAyMjkuNSAwIDI0MiAwIDI1NS41czYuNyAyNiAxNy44IDMzLjVsNTkuOCA0MC41LTEzLjcgNzFjLTIuNiAxMy4yIDEuNiAyNi44IDExLjEgMzYuMyA5LjUgOS41IDIyLjkgMTMuNyAzNi4zIDExLjFsNzAuOC0xMy43IDQwLjQgNTkuOUMyMzAgNTA1LjMgMjQyLjYgNTEyIDI1NiA1MTJzMjYtNi43IDMzLjUtMTcuOGw0MC40LTU5LjkgNzAuOSAxMy43YzEzLjQgMi43IDI2LjgtMS42IDM2LjMtMTEuMSA5LjUtOS41IDEzLjYtMjMuMSAxMS4xLTM2LjNsLTEzLjctNzEgNTkuOC00MC41YzExLjEtNy41IDE3LjgtMjAuMSAxNy44LTMzLjUtLjEtMTMuNi02LjctMjYuMS0xNy45LTMzLjd6bS0xMTIuOSA4NS42bDE3LjYgOTEuMi05MS0xNy42TDI1NiA0NThsLTUxLjktNzctOTAuOSAxNy42IDE3LjYtOTEuMi03Ni44LTUyIDc2LjgtNTItMTcuNi05MS4yIDkxIDE3LjZMMjU2IDUzbDUxLjkgNzYuOSA5MS0xNy42LTE3LjYgOTEuMSA3Ni44IDUyLTc2LjggNTIuMXpNMjU2IDE1MmMtNTcuMyAwLTEwNCA0Ni43LTEwNCAxMDRzNDYuNyAxMDQgMTA0IDEwNCAxMDQtNDYuNyAxMDQtMTA0LTQ2LjctMTA0LTEwNC0xMDR6bTAgMTYwYy0zMC45IDAtNTYtMjUuMS01Ni01NnMyNS4xLTU2IDU2LTU2IDU2IDI1LjEgNTYgNTYtMjUuMSA1Ni01NiA1NnoiLz4KPC9zdmc+Cg==",
|
|
114
|
-
"items": {
|
|
115
|
-
"_astroConfig": {
|
|
116
|
-
"type": "custom",
|
|
117
|
-
"i18n": true,
|
|
118
|
-
"xs": 12,
|
|
119
|
-
"sm": 12,
|
|
120
|
-
"md": 12,
|
|
121
|
-
"lg": 12,
|
|
122
|
-
"url": "custom/customComponents.js",
|
|
123
|
-
"name": "ConfigCustomJavascriptSet/Components/Astro",
|
|
124
|
-
"bundlerType": "module"
|
|
125
|
-
},
|
|
126
|
-
"createAstroStates": {
|
|
127
|
-
"newLine": true,
|
|
128
|
-
"type": "checkbox",
|
|
129
|
-
"label": "Create states for all astro times",
|
|
130
|
-
"xs": 12,
|
|
131
|
-
"sm": 12
|
|
126
|
+
"_ai": {
|
|
127
|
+
"type": "panel",
|
|
128
|
+
"label": "AI settings",
|
|
129
|
+
"icon": "data:image/svg+xml;base64,",
|
|
130
|
+
"items": {
|
|
131
|
+
"_aiDescription": {
|
|
132
|
+
"type": "staticText",
|
|
133
|
+
"label": "AI settings description",
|
|
134
|
+
"xs": 12,
|
|
135
|
+
"sm": 12,
|
|
136
|
+
"style": {
|
|
137
|
+
"marginBottom": 16
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"gptKey": {
|
|
141
|
+
"newLine": true,
|
|
142
|
+
"type": "text",
|
|
143
|
+
"label": "ChatGPT API key",
|
|
144
|
+
"xs": 12,
|
|
145
|
+
"sm": 12,
|
|
146
|
+
"help": "platform.openai.com",
|
|
147
|
+
"helpLink": "https://platform.openai.com/api-keys"
|
|
148
|
+
},
|
|
149
|
+
"claudeKey": {
|
|
150
|
+
"newLine": true,
|
|
151
|
+
"type": "text",
|
|
152
|
+
"label": "Anthropic API key",
|
|
153
|
+
"xs": 12,
|
|
154
|
+
"sm": 12,
|
|
155
|
+
"help": "console.anthropic.com",
|
|
156
|
+
"helpLink": "https://console.anthropic.com/settings/keys"
|
|
157
|
+
},
|
|
158
|
+
"geminiKey": {
|
|
159
|
+
"newLine": true,
|
|
160
|
+
"type": "text",
|
|
161
|
+
"label": "Gemini API key",
|
|
162
|
+
"xs": 12,
|
|
163
|
+
"sm": 12,
|
|
164
|
+
"help": "aistudio.google.com",
|
|
165
|
+
"helpLink": "https://aistudio.google.com/apikey"
|
|
166
|
+
},
|
|
167
|
+
"deepseekKey": {
|
|
168
|
+
"newLine": true,
|
|
169
|
+
"type": "text",
|
|
170
|
+
"label": "DeepSeek API key",
|
|
171
|
+
"xs": 12,
|
|
172
|
+
"sm": 12,
|
|
173
|
+
"help": "platform.deepseek.com",
|
|
174
|
+
"helpLink": "https://platform.deepseek.com/api_keys"
|
|
175
|
+
},
|
|
176
|
+
"gptBaseUrl": {
|
|
177
|
+
"newLine": true,
|
|
178
|
+
"type": "text",
|
|
179
|
+
"label": "Custom API Base URL",
|
|
180
|
+
"xs": 12,
|
|
181
|
+
"sm": 12,
|
|
182
|
+
"help": "Custom API Base URL help",
|
|
183
|
+
"placeholder": "https://api.openai.com/v1"
|
|
184
|
+
},
|
|
185
|
+
"_testApiConnection": {
|
|
186
|
+
"newLine": true,
|
|
187
|
+
"type": "sendTo",
|
|
188
|
+
"label": "Test API connection",
|
|
189
|
+
"command": "testApiConnection",
|
|
190
|
+
"jsonData": "{\"apiKey\": \"${data.gptKey}\", \"baseUrl\": \"${data.gptBaseUrl}\"}",
|
|
191
|
+
"variant": "outlined",
|
|
192
|
+
"xs": 12,
|
|
193
|
+
"sm": 6,
|
|
194
|
+
"alsoDependsOn": ["gptKey", "gptBaseUrl"],
|
|
195
|
+
"showProcess": true,
|
|
196
|
+
"resultStringToError": "error"
|
|
197
|
+
}
|
|
198
|
+
}
|
|
132
199
|
}
|
|
133
|
-
}
|
|
134
200
|
}
|
|
135
|
-
}
|
|
136
201
|
}
|
package/admin/mf-manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript
|
|
1
|
+
{"id":"iobroker_javascript","name":"iobroker_javascript","metaData":{"name":"iobroker_javascript","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"iobroker_javascript"},"remoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"ssrRemoteEntry":{"name":"remoteEntry.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"iobroker_javascript","pluginVersion":"0.2.5","publicPath":"./"},"shared":[{"id":"iobroker_javascript:react","name":"react","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Dsh1HfIY.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:react-dom","name":"react-dom","version":"18.3.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-BkyLyaYT.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@mui/material","name":"@mui/material","version":"6.5.0","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-DlDUIfpA.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:prop-types","name":"prop-types","version":"15.8.1","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-CVZSzCXy.js"]},"css":{"async":[],"sync":[]}}},{"id":"iobroker_javascript:@iobroker/adapter-react-v5","name":"@iobroker/adapter-react-v5","version":"8.1.3","requiredVersion":"*","assets":{"js":{"async":[],"sync":["assets/index-Dnbw7_L3.js"]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[]}
|
package/admin/remoteEntry.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import{i as d,a as m}from"./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CMP-NJnH.js";import s from"./assets/virtualExposes-BIHI7g3E.js";import{_ as a}from"./assets/preload-helper-BDBacUwf.js";const i={"@iobroker/adapter-react-v5":async()=>await a(()=>import("./assets/index-BDco9K7T.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url),"@mui/material":async()=>await a(()=>import("./assets/index-Cm-iTDHo.js"),__vite__mapDeps([9,1,2,3,4,10,7]),import.meta.url),"prop-types":async()=>await a(()=>import("./assets/index-DQiceR5U.js").then(t=>t.i),__vite__mapDeps([11,3]),import.meta.url),react:async()=>await a(()=>import("./assets/index-Do-nCdWy.js").then(t=>t.i),__vite__mapDeps([12,3]),import.meta.url),"react-dom":async()=>await a(()=>import("./assets/index-DKvqhUY5.js").then(t=>t.i),__vite__mapDeps([13,3,2,4]),import.meta.url)},o={"@iobroker/adapter-react-v5":{name:"@iobroker/adapter-react-v5",version:"8.0.13",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@iobroker/adapter-react-v5"].loaded=!0;const{"@iobroker/adapter-react-v5":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"@mui/material":{name:"@mui/material",version:"6.5.0",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["@mui/material"].loaded=!0;const{"@mui/material":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"prop-types":{name:"prop-types",version:"15.8.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["prop-types"].loaded=!0;const{"prop-types":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},react:{name:"react",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o.react.loaded=!0;const{react:e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}},"react-dom":{name:"react-dom",version:"18.3.1",scope:["default"],loaded:!1,from:"iobroker_javascript",async get(){o["react-dom"].loaded=!0;const{"react-dom":e}=i,r={...await e()};return Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:"*"}}},_=[],u={},p="default",c="iobroker_javascript";async function k(e={},t=[]){const r=d({name:c,remotes:_,shared:o,plugins:[],shareStrategy:"version-first"});var n=u[p];if(n||(n=u[p]={from:c}),!(t.indexOf(n)>=0)){t.push(n),r.initShareScopeMap("default",e);try{await Promise.all(await r.initializeSharing("default",{strategy:"version-first",from:"build",initScope:t}))}catch(l){console.error(l)}return m.initResolve(r),r}}function y(e){if(!(e in s))throw new Error(`Module ${e} does not exist in container.`);return s[e]().then(t=>()=>t)}export{y as get,k as init};
|
|
1
|
+
import"./assets/preload-helper-BDBacUwf.js";import{g as r,i as a}from"./assets/virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-C9suQF96.js";export{r as get,a as init};
|
package/admin/tab.html
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<script type="module" src="./assets/hostInit-
|
|
4
|
+
<script type="module" src="./assets/hostInit-LzITLWDa.js"></script>
|
|
5
5
|
|
|
6
6
|
<meta charset="utf-8" />
|
|
7
7
|
<link
|
|
@@ -115,14 +115,19 @@
|
|
|
115
115
|
type="text/javascript"
|
|
116
116
|
src="google-blockly/own/blocks_object.js"
|
|
117
117
|
></script>
|
|
118
|
-
<script type="module" crossorigin src="./assets/index-
|
|
119
|
-
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__mf_v__runtimeInit__mf_v__-CMP-NJnH.js">
|
|
120
|
-
<link rel="modulepreload" crossorigin href="./assets/_commonjsHelpers-Cpj98o6Y.js">
|
|
121
|
-
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__react__loadShare__-6sH5wUl6.js">
|
|
122
|
-
<link rel="modulepreload" crossorigin href="./assets/createSvgIcon-XLoRKyxt.js">
|
|
123
|
-
<link rel="modulepreload" crossorigin href="./assets/inheritsLoose-tR_kcxUR.js">
|
|
124
|
-
<link rel="modulepreload" crossorigin href="./assets/index-CFhFEZTW.js">
|
|
118
|
+
<script type="module" crossorigin src="./assets/index-COZhHfBn.js"></script>
|
|
125
119
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
|
|
120
|
+
<link rel="modulepreload" crossorigin href="./assets/virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-C9suQF96.js">
|
|
121
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js">
|
|
122
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js">
|
|
123
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js">
|
|
124
|
+
<link rel="modulepreload" crossorigin href="./assets/createSvgIcon-DPvF8xqu.js">
|
|
125
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js">
|
|
126
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js">
|
|
127
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-QWG5Arqe.js">
|
|
128
|
+
<link rel="modulepreload" crossorigin href="./assets/iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js">
|
|
129
|
+
<link rel="modulepreload" crossorigin href="./assets/index-Cu-TydZj.js">
|
|
130
|
+
<link rel="modulepreload" crossorigin href="./assets/inheritsLoose-B0Ba5G9z.js">
|
|
126
131
|
<link rel="stylesheet" crossorigin href="./assets/index-BTsjunTt.css">
|
|
127
132
|
</head>
|
|
128
133
|
<body>
|
|
@@ -2024,8 +2024,10 @@ declare global {
|
|
|
2024
2024
|
type SettableOtherObject = SettableObject<OtherObject>;
|
|
2025
2025
|
|
|
2026
2026
|
/** Represents the change of a state */
|
|
2027
|
-
interface ChangedStateObject<
|
|
2028
|
-
extends
|
|
2027
|
+
interface ChangedStateObject<
|
|
2028
|
+
TOld extends iobJS.StateValue = any,
|
|
2029
|
+
TNew extends iobJS.StateValue = TOld,
|
|
2030
|
+
> extends StateObject {
|
|
2029
2031
|
common: StateCommon;
|
|
2030
2032
|
native: Record<string, any>;
|
|
2031
2033
|
id?: string;
|
|
@@ -9,13 +9,14 @@ const child_process_1 = require("child_process");
|
|
|
9
9
|
*/
|
|
10
10
|
async function requestModuleNameByUrl(url) {
|
|
11
11
|
return new Promise((resolve, reject) => {
|
|
12
|
-
(0, child_process_1.
|
|
12
|
+
(0, child_process_1.execFile)('npm', ['view', url, 'name'], { windowsHide: true, encoding: 'utf8', shell: false }, (error, stdout) => {
|
|
13
13
|
if (error) {
|
|
14
14
|
reject(error);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
17
|
if (typeof stdout !== 'string') {
|
|
18
|
-
|
|
18
|
+
reject(new Error(`Could not determine module name for url "${url}". Unexpected stdout: "${stdout ? JSON.stringify(stdout) : ''}"`));
|
|
19
|
+
return;
|
|
19
20
|
}
|
|
20
21
|
resolve(stdout.trim());
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeModulesManagement.js","sourceRoot":"","sources":["../../src/lib/nodeModulesManagement.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"nodeModulesManagement.js","sourceRoot":"","sources":["../../src/lib/nodeModulesManagement.ts"],"names":[],"mappings":";;AAOA,wDAwBC;AA/BD,iDAAiE;AAEjE;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CAAC,GAAW;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAA,wBAAQ,EACJ,KAAK,EACL,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,EACrB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EACrD,CAAC,KAA+B,EAAE,MAAc,EAAE,EAAE;YAChD,IAAI,KAAK,EAAE,CAAC;gBACR,MAAM,CAAC,KAAc,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACJ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,CACF,IAAI,KAAK,CACL,4CAA4C,GAAG,0BAA0B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CACnH,CACJ,CAAC;oBACF,OAAO;gBACX,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC,CACJ,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import { execFile, type ExecFileException } from 'child_process';\n\n/**\n * Request a module name by given url using `npm view`\n *\n * @param url the url to the package which should be installed via npm\n */\nexport async function requestModuleNameByUrl(url: string): Promise<string> {\n return new Promise((resolve, reject) => {\n execFile(\n 'npm',\n ['view', url, 'name'],\n { windowsHide: true, encoding: 'utf8', shell: false },\n (error: ExecFileException | null, stdout: string) => {\n if (error) {\n reject(error as Error);\n } else {\n if (typeof stdout !== 'string') {\n reject(\n new Error(\n `Could not determine module name for url \"${url}\". Unexpected stdout: \"${stdout ? JSON.stringify(stdout) : ''}\"`,\n ),\n );\n return;\n }\n\n resolve(stdout.trim());\n }\n },\n );\n });\n}\n"]}
|
package/build/lib/protectFs.js
CHANGED
|
@@ -160,9 +160,9 @@ class ProtectFs {
|
|
|
160
160
|
ProtectFs.checkProtected(path, false);
|
|
161
161
|
return nodeFS.promises.rm.call(this, path, options); // async function rm(path, options) {
|
|
162
162
|
},
|
|
163
|
-
rmdir: async (path
|
|
163
|
+
rmdir: async (path) => {
|
|
164
164
|
ProtectFs.checkProtected(path, false);
|
|
165
|
-
return nodeFS.promises.rmdir.call(this, path
|
|
165
|
+
return nodeFS.promises.rmdir.call(this, path); // async function rmdir(path, options) {
|
|
166
166
|
},
|
|
167
167
|
};
|
|
168
168
|
// Add missing constants
|
|
@@ -189,19 +189,35 @@ class ProtectFs {
|
|
|
189
189
|
}
|
|
190
190
|
static checkProtected(file, readOnly) {
|
|
191
191
|
if (file.fd) {
|
|
192
|
+
// FileHandle objects bypass path checks — they were already validated at open() time.
|
|
193
|
+
// This is safe because the sandbox only exposes the wrapped fs where open() is protected.
|
|
192
194
|
return;
|
|
193
195
|
}
|
|
194
|
-
|
|
196
|
+
let filePath;
|
|
197
|
+
try {
|
|
198
|
+
// Use resolve() instead of normalize() to get an absolute path and eliminate .. traversals.
|
|
199
|
+
// Then try realpath to resolve symlinks — fall back to resolved path if file doesn't exist yet.
|
|
200
|
+
const resolved = (0, node_path_1.resolve)(file.toString());
|
|
201
|
+
try {
|
|
202
|
+
filePath = nodeFS.realpathSync(resolved);
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
filePath = resolved;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
filePath = (0, node_path_1.normalize)(file.toString());
|
|
210
|
+
}
|
|
195
211
|
if (filePath.endsWith(`-data${node_path_1.sep}objects.json`) || filePath.endsWith(`-data${node_path_1.sep}objects.jsonl`)) {
|
|
196
|
-
ProtectFs.log?.error(`May not
|
|
212
|
+
ProtectFs.log?.error(`May not access ${file.toString()}`);
|
|
197
213
|
throw new Error('Permission denied');
|
|
198
214
|
}
|
|
199
215
|
if (!readOnly && filePath.startsWith((0, node_path_1.join)(ProtectFs.staticIoBrokerDataDir, 'files'))) {
|
|
200
|
-
ProtectFs.log?.error(`May not
|
|
216
|
+
ProtectFs.log?.error(`May not write ${file.toString()} - use writeFile instead`);
|
|
201
217
|
throw new Error('Permission denied');
|
|
202
218
|
}
|
|
203
219
|
if (!readOnly && filePath.startsWith(`file://${(0, node_path_1.join)(ProtectFs.staticIoBrokerDataDir, 'files')}`)) {
|
|
204
|
-
ProtectFs.log?.error(`May not
|
|
220
|
+
ProtectFs.log?.error(`May not write ${file.toString()} - use writeFile instead`);
|
|
205
221
|
throw new Error('Permission denied');
|
|
206
222
|
}
|
|
207
223
|
}
|
|
@@ -501,17 +517,16 @@ class ProtectFs {
|
|
|
501
517
|
ProtectFs.checkProtected(path, false);
|
|
502
518
|
return nodeFS.rmSync.call(this, path, options);
|
|
503
519
|
}
|
|
504
|
-
rmdir(path,
|
|
520
|
+
rmdir(path, callback) {
|
|
505
521
|
ProtectFs.checkProtected(path, false);
|
|
506
522
|
if (typeof callback === 'function') {
|
|
507
|
-
return nodeFS.rmdir.call(this, path,
|
|
523
|
+
return nodeFS.rmdir.call(this, path, callback);
|
|
508
524
|
}
|
|
509
|
-
|
|
510
|
-
return nodeFS.rmdir.call(this, path, options);
|
|
525
|
+
return nodeFS.rmdirSync.call(this, path);
|
|
511
526
|
}
|
|
512
|
-
rmdirSync(path
|
|
527
|
+
rmdirSync(path) {
|
|
513
528
|
ProtectFs.checkProtected(path, false);
|
|
514
|
-
return nodeFS.rmdirSync.call(this, path
|
|
529
|
+
return nodeFS.rmdirSync.call(this, path);
|
|
515
530
|
}
|
|
516
531
|
watch(filename, options, listener) {
|
|
517
532
|
ProtectFs.checkProtected(filename, true);
|