iobroker.javascript 10.0.0 → 10.1.1
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 +48 -12
- package/admin/assets/AiChatPanel-C_WbKMGX.js +242 -0
- package/admin/assets/AiDiffView-BtXbDWZ8.js +1 -0
- package/admin/assets/Debugger-DAdJnEhw.js +15 -0
- package/admin/assets/Error-DQ1pzKcf.js +1 -0
- package/admin/assets/Import-BjMtH6Gk.js +1 -0
- package/admin/assets/RulesEditor-dDRPHw4X.js +1 -0
- package/admin/assets/RulesEditor-k-DMHotH.css +1 -0
- package/admin/assets/{ScriptEditor-BGIuoNei.js → ScriptEditor-CZSc7rwE.js} +2 -2
- package/admin/assets/ScriptEditorVanillaMonaco-DEKg14_A.js +3 -0
- package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-DPmwd_G2.js +1 -0
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-C8inUeKt.js +1243 -0
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-VcQjt7_9.js +9 -0
- package/admin/assets/aiPromptBuilder-D5FDo74i.js +1 -0
- package/admin/assets/blockly-DBw-ytY1.js +1047 -0
- package/admin/assets/blocks_action-BqfWEwpf.js +1 -0
- package/admin/assets/blocks_convert-CX0i-JfS.js +3 -0
- package/admin/assets/blocks_logic-D-QSzw95.js +1 -0
- package/admin/assets/blocks_number-D7JuNYsw.js +1 -0
- package/admin/assets/blocks_object-C9DzAlc7.js +1 -0
- package/admin/assets/blocks_procedures-BJMz6HWW.js +3 -0
- package/admin/assets/blocks_sendto-DRh7lk9o.js +5 -0
- package/admin/assets/blocks_switch-BfmboMex.js +2 -0
- package/admin/assets/blocks_system-B-78JfAc.js +1 -0
- package/admin/assets/blocks_text-CGbR0Ozw.js +1 -0
- package/admin/assets/blocks_time-5vS2geJg.js +1 -0
- package/admin/assets/blocks_timeout-BdaTywfN.js +1 -0
- package/admin/assets/blocks_trigger-D8kgHKbg.js +2 -0
- package/admin/assets/blocks_words-BhHIf_1o.js +1 -0
- package/admin/assets/{cronHoverProvider-pKJkSevo.js → cronHoverProvider-DpgESCox.js} +1 -1
- package/admin/assets/dist-CaOsN0XW.js +4 -0
- package/admin/assets/field_cron-B40zwSfJ.js +1 -0
- package/admin/assets/field_oid-KfoBnEM9.js +1 -0
- package/admin/assets/field_script-yXhe1iCp.js +1 -0
- package/admin/assets/helpers-B0ByElPJ.js +1 -0
- package/admin/assets/hostInit-9REPDUe7.js +1 -0
- package/admin/assets/index-07o_WKsX.js +726 -0
- package/admin/assets/index-Z8Hkv58g.css +1 -0
- package/admin/assets/{inlineChatWidget-ZaisTOLh.js → inlineChatWidget-B9y_gQcH.js} +2 -2
- package/admin/assets/{inlineDiffController-hTwHHqcc.js → inlineDiffController-C07CdIFo.js} +2 -2
- package/admin/assets/{mf-entry-bootstrap-0-d6052b31.js → mf-entry-bootstrap-0-efcb49d3.js} +7 -2
- package/admin/assets/stateHoverProvider-CqeoOjXs.js +9 -0
- package/admin/assets/{virtualExposes-Ed0lGq7k.js → virtualExposes-DgGB-18P.js} +1 -1
- package/admin/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-BwSvIKEV.js +1 -0
- package/admin/assets/virtual_mf-exposes___mfe_internal__iobroker_javascript__remoteEntry_js-ChiJXsfH.js +1 -0
- package/admin/custom/assets/Components-BCQTjBgm.js +1 -0
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-BuAc8OyX.js +1 -0
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BGJv4zZP.js +1 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-CGb5Cofy.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-B4E6MFJ4.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BVCIAgbo.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-aRlxyEhq.js} +78 -78
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-DQwzYx75.js +1494 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare__leaflet__loadShare__.js-h-rCw3iz.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare__leaflet__loadShare__.js-n2zIPi0L.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-xxszBNje.js +9 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__prebuild__date_mf_2_fns__prebuild__-Cb5TR7FB.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__prebuild__date_mf_2_fns__prebuild__-Tq7tesSS.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__prebuild__leaflet__prebuild__-DARUoA03.js → _virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__prebuild__leaflet__prebuild__-BeF0jEWM.js} +1 -1
- package/admin/custom/assets/hostInit-CHwrowP4.js +1 -0
- package/admin/custom/assets/{index-uEKAoVT7.js → index-Cm6xl9K4.js} +1 -1
- package/admin/custom/assets/{lib-Yj8cfN0A.js → lib-bhrFL6jR.js} +1 -1
- package/admin/custom/assets/{mf-entry-bootstrap-0-77793feb.js → mf-entry-bootstrap-0-f08941e2.js} +7 -2
- package/admin/custom/assets/{setYear-DJ9FbdkO.js → setYear-DzTZ2h9A.js} +1 -1
- package/admin/custom/assets/virtualExposes-B5LJmnfO.js +1 -0
- package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-ML-chjs6.js +1 -0
- package/admin/custom/assets/virtual_mf-exposes___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-C3ImybiM.js +2 -0
- package/admin/custom/customComponents.js +12 -1
- package/admin/custom/i18n/de.json +11 -1
- package/admin/custom/i18n/en.json +11 -1
- package/admin/custom/i18n/es.json +11 -1
- package/admin/custom/i18n/fr.json +11 -1
- package/admin/custom/i18n/it.json +11 -1
- package/admin/custom/i18n/nl.json +11 -1
- package/admin/custom/i18n/pl.json +11 -1
- package/admin/custom/i18n/pt.json +11 -1
- package/admin/custom/i18n/ru.json +11 -1
- package/admin/custom/i18n/uk.json +11 -1
- package/admin/custom/i18n/zh-cn.json +11 -1
- package/admin/google-blockly/VERSION +1 -0
- package/admin/google-blockly/media/drop.mp3 +0 -0
- package/admin/google-blockly/msg/js/de.js +332 -56
- package/admin/google-blockly/msg/js/en.js +319 -43
- package/admin/google-blockly/msg/js/es.js +319 -42
- package/admin/google-blockly/msg/js/fr.js +315 -39
- package/admin/google-blockly/msg/js/it.js +327 -51
- package/admin/google-blockly/msg/js/nl.js +376 -100
- package/admin/google-blockly/msg/js/pl.js +318 -42
- package/admin/google-blockly/msg/js/pt.js +318 -42
- package/admin/google-blockly/msg/js/ru.js +320 -44
- package/admin/google-blockly/msg/js/uk.js +326 -50
- package/admin/google-blockly/msg/js/zh-cn.js +322 -46
- package/admin/i18n/de.json +51 -26
- package/admin/i18n/en.json +50 -25
- package/admin/i18n/es.json +51 -18
- package/admin/i18n/fr.json +50 -17
- package/admin/i18n/it.json +50 -17
- package/admin/i18n/nl.json +50 -17
- package/admin/i18n/pl.json +51 -18
- package/admin/i18n/pt.json +50 -17
- package/admin/i18n/ru.json +50 -17
- package/admin/i18n/uk.json +50 -17
- package/admin/i18n/zh-cn.json +50 -17
- package/admin/jsonConfig.json +398 -0
- package/admin/mf-manifest.json +1 -1
- package/admin/mf-stats.json +1 -1
- package/admin/remoteEntry.js +12 -1
- package/admin/tab.html +6 -98
- package/build/lib/javascript.d.ts +48 -0
- package/build/lib/mirror.js +9 -0
- package/build/lib/mirror.js.map +1 -1
- package/build/lib/sandbox.js +37 -0
- package/build/lib/sandbox.js.map +1 -1
- package/build/lib/secrets.js +220 -0
- package/build/lib/secrets.js.map +1 -0
- package/build/lib/typescriptSettings.js +112 -2
- package/build/lib/typescriptSettings.js.map +1 -1
- package/build/lib/typescriptTools.js +168 -43
- package/build/lib/typescriptTools.js.map +1 -1
- package/build/main.js +61 -5
- package/build/main.js.map +1 -1
- package/build/types.d.ts +48 -0
- package/docs/en/blockly.md +29 -0
- package/docs/en/javascript.md +72 -0
- package/docs/en/upgrade-guide.md +3 -0
- package/io-package.json +59 -28
- package/package.json +8 -3
- package/admin/assets/AiChatPanel-p0KAg6Cs.js +0 -237
- package/admin/assets/AiDiffView-BPTLnNx1.js +0 -1
- package/admin/assets/AiScriptAnalyzer--BHML2rN.js +0 -9
- package/admin/assets/BlocklyEditor-CAjVMhYT.js +0 -81
- package/admin/assets/ContextWrapper-BVc8wTK_.css +0 -1
- package/admin/assets/ContextWrapper-D9CrnNKs.js +0 -127
- package/admin/assets/Debugger-SjROokFI.js +0 -15
- package/admin/assets/Error-DDfrxAt2.js +0 -1
- package/admin/assets/Import-DpTg1Jow.js +0 -1
- package/admin/assets/RulesEditor-BSRFWpEm.css +0 -1
- package/admin/assets/RulesEditor-D0hgrcBc.js +0 -1
- package/admin/assets/ScriptEditorVanillaMonaco-DyMQtoTQ.js +0 -3
- package/admin/assets/_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-DWJotR1B.js +0 -1
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CxICLr5Z.js +0 -1243
- package/admin/assets/_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BBAXJaqI.js +0 -9
- package/admin/assets/aiCodeLensProvider-hyAmut0e.js +0 -4
- package/admin/assets/aiPromptBuilder-Bs27qOHT.js +0 -7
- package/admin/assets/blocklyDarkTheme-DEiAX5DT.js +0 -1
- package/admin/assets/dist-uw5orDgd.js +0 -4
- package/admin/assets/hostInit-BFg5u9hY.js +0 -1
- package/admin/assets/index-B1gICjdq.js +0 -192
- package/admin/assets/index-BHhhebRG.css +0 -1
- package/admin/assets/mjs-DWqivHEk.js +0 -90
- package/admin/assets/stateHoverProvider-C7DawIs-.js +0 -9
- package/admin/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-BYs71IQF.js +0 -1
- package/admin/assets/virtual_mf-exposes___mfe_internal__iobroker_javascript__remoteEntry_js-DnnXQRkG.js +0 -1
- package/admin/custom/assets/Components-BrDyDHXh.js +0 -1
- package/admin/custom/assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1-CyYJM2-v.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BdzCssLn.js +0 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-BkB0anQX.js +0 -1494
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomJavascriptSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BotqDuw-.js +0 -9
- package/admin/custom/assets/hostInit-DJx2uXXy.js +0 -1
- package/admin/custom/assets/virtualExposes-CxDjLoYu.js +0 -1
- package/admin/custom/assets/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-BU-ugy_7.js +0 -1
- package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-BEfZbrf7.js +0 -2
- package/admin/custom/assets/virtual_mf-exposes___mfe_internal__ConfigCustomJavascriptSet__customComponents_js-CTeZ0Jpm.js +0 -2
- package/admin/google-blockly/blockly_compressed.js +0 -1679
- package/admin/google-blockly/blocks_compressed.js +0 -193
- package/admin/google-blockly/javascript_compressed.js +0 -264
- package/admin/google-blockly/msg/messages.js +0 -1630
- package/admin/google-blockly/own/blocks_action.js +0 -765
- package/admin/google-blockly/own/blocks_convert.js +0 -480
- package/admin/google-blockly/own/blocks_logic.js +0 -459
- package/admin/google-blockly/own/blocks_number.js +0 -30
- package/admin/google-blockly/own/blocks_object.js +0 -402
- package/admin/google-blockly/own/blocks_procedures.js +0 -688
- package/admin/google-blockly/own/blocks_sendto.js +0 -702
- package/admin/google-blockly/own/blocks_switch.js +0 -257
- package/admin/google-blockly/own/blocks_system.js +0 -1409
- package/admin/google-blockly/own/blocks_text.js +0 -104
- package/admin/google-blockly/own/blocks_time.js +0 -639
- package/admin/google-blockly/own/blocks_timeout.js +0 -551
- package/admin/google-blockly/own/blocks_trigger.js +0 -1791
- package/admin/google-blockly/own/blocks_words.js +0 -708
- package/admin/google-blockly/own/field_cron.js +0 -158
- package/admin/google-blockly/own/field_oid.js +0 -642
- package/admin/google-blockly/own/field_script.js +0 -159
package/build/main.js
CHANGED
|
@@ -78,6 +78,7 @@ const protectFs_1 = __importDefault(require("./lib/protectFs"));
|
|
|
78
78
|
const words_1 = require("./lib/words");
|
|
79
79
|
const sandbox_1 = require("./lib/sandbox");
|
|
80
80
|
const nodeModulesManagement_1 = require("./lib/nodeModulesManagement");
|
|
81
|
+
const secrets_1 = require("./lib/secrets");
|
|
81
82
|
const aiProviderResolver_1 = require("./lib/aiProviderResolver");
|
|
82
83
|
const anthropicAdapter_1 = require("./lib/anthropicAdapter");
|
|
83
84
|
const eventObj_1 = require("./lib/eventObj");
|
|
@@ -89,7 +90,11 @@ const crypto_1 = require("./lib/crypto");
|
|
|
89
90
|
/**
|
|
90
91
|
* List of forbidden Locations for a mirror directory
|
|
91
92
|
* relative to the default data directory
|
|
92
|
-
*
|
|
93
|
+
*
|
|
94
|
+
* ATTENTION: the same list is also in the `validator` of `mirrorPath` in `admin/jsonConfig.json`,
|
|
95
|
+
* which rejects such a path before it is saved. That one has to assume the default installation
|
|
96
|
+
* directory, because the browser cannot know where the data directory of the host is - so this check
|
|
97
|
+
* here is the authoritative one and stays.
|
|
93
98
|
*/
|
|
94
99
|
const forbiddenMirrorLocations = [
|
|
95
100
|
'backup-objects',
|
|
@@ -324,6 +329,11 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
324
329
|
aiCredentialCache = new Map();
|
|
325
330
|
/** Unsubscribe callbacks for the AI credential subscriptions (manager mode). */
|
|
326
331
|
aiCredentialUnsubscribers = [];
|
|
332
|
+
/**
|
|
333
|
+
* Decrypted credentials of the central ioBroker credential store (`system.credentials.*`),
|
|
334
|
+
* exposed to the scripts as the global `SECRETS` object. Kept up to date by `onObjectChange`.
|
|
335
|
+
*/
|
|
336
|
+
secretsManager = new secrets_1.SecretsManager(this);
|
|
327
337
|
globalScript = '';
|
|
328
338
|
/** Generated declarations for global TypeScripts */
|
|
329
339
|
globalDeclarations = '';
|
|
@@ -475,6 +485,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
475
485
|
adapter: this,
|
|
476
486
|
logError: this.logError.bind(this),
|
|
477
487
|
allowSelfSignedCerts: false,
|
|
488
|
+
secrets: this.secretsManager.secrets,
|
|
478
489
|
};
|
|
479
490
|
this.tsServer = new virtual_tsc_1.Server(typescriptSettings_1.tsCompilerOptions, this.tsLog);
|
|
480
491
|
}
|
|
@@ -505,6 +516,16 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
505
516
|
this._enums.delete(id);
|
|
506
517
|
}
|
|
507
518
|
}
|
|
519
|
+
// Keep the decrypted credentials (global `SECRETS`) in sync with the central credential store
|
|
520
|
+
if ((0, secrets_1.isSecretId)(id)) {
|
|
521
|
+
if (obj) {
|
|
522
|
+
await this.secretsManager.update(id);
|
|
523
|
+
}
|
|
524
|
+
else {
|
|
525
|
+
this.secretsManager.remove(id);
|
|
526
|
+
}
|
|
527
|
+
this.updateSecretsDeclarations();
|
|
528
|
+
}
|
|
508
529
|
// IO-9: Invalidate sendTo instance-cache when adapter instances change
|
|
509
530
|
if (id.startsWith('system.adapter.')) {
|
|
510
531
|
const parts = id.split('.');
|
|
@@ -773,6 +794,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
773
794
|
this.setStateCountCheckInterval = null;
|
|
774
795
|
}
|
|
775
796
|
await this.unsubscribeAiCredentials();
|
|
797
|
+
this.secretsManager.destroy();
|
|
776
798
|
await this.stopAllScripts();
|
|
777
799
|
}
|
|
778
800
|
catch (err) {
|
|
@@ -982,7 +1004,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
982
1004
|
const typings = {};
|
|
983
1005
|
// try to load TypeScript lib files from disk
|
|
984
1006
|
try {
|
|
985
|
-
const typescriptLibs = (0, typescriptTools_1.resolveTypescriptLibs)(typescriptSettings_1.
|
|
1007
|
+
const typescriptLibs = (0, typescriptTools_1.resolveTypescriptLibs)((0, typescriptSettings_1.getTargetTsLib)(this.config));
|
|
986
1008
|
Object.assign(typings, typescriptLibs);
|
|
987
1009
|
}
|
|
988
1010
|
catch {
|
|
@@ -1397,6 +1419,18 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1397
1419
|
}
|
|
1398
1420
|
break;
|
|
1399
1421
|
}
|
|
1422
|
+
case 'getSecrets': {
|
|
1423
|
+
// Reports which credentials exist and which fields they have, so the instance
|
|
1424
|
+
// settings and the Blockly editor can show the available `SECRETS.<name>.<field>`
|
|
1425
|
+
// expressions. The decrypted values never leave the backend.
|
|
1426
|
+
if (obj.callback) {
|
|
1427
|
+
this.sendTo(obj.from, obj.command, {
|
|
1428
|
+
enabled: this.config.enableSecrets !== false,
|
|
1429
|
+
secrets: this.secretsManager.getStructure(),
|
|
1430
|
+
}, obj.callback);
|
|
1431
|
+
}
|
|
1432
|
+
break;
|
|
1433
|
+
}
|
|
1400
1434
|
case 'prettier': {
|
|
1401
1435
|
// Format the code with Prettier
|
|
1402
1436
|
if (obj.message && typeof obj.message.code === 'string') {
|
|
@@ -1546,6 +1580,9 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1546
1580
|
this.activeStr = `${this.namespace}.scriptEnabled.`;
|
|
1547
1581
|
this.mods.fs = new protectFs_1.default(this.log, (0, adapter_core_1.getAbsoluteDefaultDataDir)());
|
|
1548
1582
|
this.mods['fs/promises'] = this.mods.fs.promises; // to avoid require('fs/promises');
|
|
1583
|
+
// The instance configuration is only available now, so the compiler has to be created again
|
|
1584
|
+
// with the options the user has selected in the "TypeScript" tab
|
|
1585
|
+
this.tsServer = new virtual_tsc_1.Server((0, typescriptSettings_1.getTsCompilerOptions)(this.config), this.tsLog);
|
|
1549
1586
|
// try to read TS declarations
|
|
1550
1587
|
try {
|
|
1551
1588
|
tsAmbient = {
|
|
@@ -1581,6 +1618,10 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1581
1618
|
// In `manager` credential mode, subscribe to the configured AI credentials so changes in the
|
|
1582
1619
|
// central credential store are picked up live (the keys are cached for the AI sendTo handlers).
|
|
1583
1620
|
await this.subscribeAiCredentials();
|
|
1621
|
+
// Read the central credential store, so the scripts can use `SECRETS.<name>.<field>`.
|
|
1622
|
+
// Later changes are picked up in `onObjectChange`.
|
|
1623
|
+
await this.secretsManager.load(this.config.enableSecrets !== false);
|
|
1624
|
+
this.updateSecretsDeclarations();
|
|
1584
1625
|
const doc = await this.getObjectViewAsync('script', 'javascript', {});
|
|
1585
1626
|
if (doc?.rows?.length) {
|
|
1586
1627
|
// sort global scripts if configured
|
|
@@ -1752,6 +1793,23 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1752
1793
|
}
|
|
1753
1794
|
}, 60_000).unref();
|
|
1754
1795
|
}
|
|
1796
|
+
/**
|
|
1797
|
+
* Publishes the names of the existing credentials as ambient declarations, so the editor can
|
|
1798
|
+
* suggest them after typing `SECRETS.` and the TypeScript compiler knows them.
|
|
1799
|
+
*/
|
|
1800
|
+
updateSecretsDeclarations() {
|
|
1801
|
+
if (!tsAmbient) {
|
|
1802
|
+
return;
|
|
1803
|
+
}
|
|
1804
|
+
const declarationPath = 'secrets.d.ts';
|
|
1805
|
+
const declarations = this.secretsManager.getDeclarations();
|
|
1806
|
+
if (tsAmbient[declarationPath] === declarations) {
|
|
1807
|
+
return;
|
|
1808
|
+
}
|
|
1809
|
+
tsAmbient[declarationPath] = declarations;
|
|
1810
|
+
this.tsServer.provideAmbientDeclarations({ [declarationPath]: declarations });
|
|
1811
|
+
jsDeclarationServer.provideAmbientDeclarations({ [declarationPath]: declarations });
|
|
1812
|
+
}
|
|
1755
1813
|
loadTypeScriptDeclarations() {
|
|
1756
1814
|
// try to load the typings on disk for all 3rd party modules
|
|
1757
1815
|
const packages = [
|
|
@@ -1794,9 +1852,7 @@ class JavaScript extends adapter_core_1.Adapter {
|
|
|
1794
1852
|
}
|
|
1795
1853
|
}
|
|
1796
1854
|
for (const pkg of packages) {
|
|
1797
|
-
let pkgTypings = (0, typescriptTools_1.resolveTypings)(pkg, this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg
|
|
1798
|
-
// node needs ambient typings, so we don't wrap it in declare module
|
|
1799
|
-
pkg !== 'node');
|
|
1855
|
+
let pkgTypings = (0, typescriptTools_1.resolveTypings)(pkg, this.getAdapterScopedPackageIdentifier ? this.getAdapterScopedPackageIdentifier(pkg) : pkg);
|
|
1800
1856
|
if (!pkgTypings) {
|
|
1801
1857
|
// Create the empty dummy declarations so users don't get the "not found" error
|
|
1802
1858
|
// for installed packages
|