@iobroker/js-controller-cli 7.2.3 → 8.0.0-alpha.1-20260921-e5941ca8a
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/build/cjs/index.js +3 -3
- package/build/cjs/lib/_Types.d.ts +8 -1
- package/build/cjs/lib/cli/cliCert.d.ts +7 -4
- package/build/cjs/lib/cli/cliCert.js +10 -6
- package/build/cjs/lib/cli/cliCert.js.map +2 -2
- package/build/cjs/lib/cli/cliCommand.d.ts +63 -15
- package/build/cjs/lib/cli/cliCommand.js +8 -1
- package/build/cjs/lib/cli/cliCommand.js.map +2 -2
- package/build/cjs/lib/cli/cliCompact.d.ts +5 -2
- package/build/cjs/lib/cli/cliCompact.js +9 -2
- package/build/cjs/lib/cli/cliCompact.js.map +2 -2
- package/build/cjs/lib/cli/cliDebug.d.ts +5 -2
- package/build/cjs/lib/cli/cliDebug.js +8 -1
- package/build/cjs/lib/cli/cliDebug.js.map +2 -2
- package/build/cjs/lib/cli/cliHost.d.ts +13 -10
- package/build/cjs/lib/cli/cliHost.js +13 -5
- package/build/cjs/lib/cli/cliHost.js.map +2 -2
- package/build/cjs/lib/cli/cliLogs.d.ts +9 -3
- package/build/cjs/lib/cli/cliLogs.js +12 -1
- package/build/cjs/lib/cli/cliLogs.js.map +2 -2
- package/build/cjs/lib/cli/cliMessage.d.ts +2 -1
- package/build/cjs/lib/cli/cliMessage.js +5 -0
- package/build/cjs/lib/cli/cliMessage.js.map +2 -2
- package/build/cjs/lib/cli/cliObjects.d.ts +21 -18
- package/build/cjs/lib/cli/cliObjects.js +51 -33
- package/build/cjs/lib/cli/cliObjects.js.map +2 -2
- package/build/cjs/lib/cli/cliPlugin.d.ts +3 -3
- package/build/cjs/lib/cli/cliPlugin.js +6 -0
- package/build/cjs/lib/cli/cliPlugin.js.map +2 -2
- package/build/cjs/lib/cli/cliProcess.d.ts +17 -7
- package/build/cjs/lib/cli/cliProcess.js +77 -24
- package/build/cjs/lib/cli/cliProcess.js.map +3 -3
- package/build/cjs/lib/cli/cliStates.d.ts +7 -4
- package/build/cjs/lib/cli/cliStates.js +14 -6
- package/build/cjs/lib/cli/cliStates.js.map +2 -2
- package/build/cjs/lib/cli/cliTools.js +11 -0
- package/build/cjs/lib/cli/cliTools.js.map +1 -1
- package/build/cjs/lib/cli/messages.js +47 -46
- package/build/cjs/lib/cli/messages.js.map +1 -1
- package/build/cjs/lib/progressBar.d.ts +59 -0
- package/build/cjs/lib/progressBar.js +115 -0
- package/build/cjs/lib/progressBar.js.map +7 -0
- package/build/cjs/lib/setup/customError.d.ts +4 -0
- package/build/cjs/lib/setup/customError.js +7 -0
- package/build/cjs/lib/setup/customError.js.map +2 -2
- package/build/cjs/lib/setup/dbConnection.js +69 -64
- package/build/cjs/lib/setup/dbConnection.js.map +3 -3
- package/build/cjs/lib/setup/formatters.d.ts +4 -4
- package/build/cjs/lib/setup/formatters.js +5 -0
- package/build/cjs/lib/setup/formatters.js.map +2 -2
- package/build/cjs/lib/setup/multihostClient.js +6 -2
- package/build/cjs/lib/setup/multihostClient.js.map +1 -1
- package/build/cjs/lib/setup/pluginInfos.d.ts +5 -0
- package/build/cjs/lib/setup/pluginInfos.js +2 -0
- package/build/cjs/lib/setup/pluginInfos.js.map +2 -2
- package/build/cjs/lib/setup/setupBackup.d.ts +53 -0
- package/build/cjs/lib/setup/setupBackup.js +125 -14
- package/build/cjs/lib/setup/setupBackup.js.map +3 -3
- package/build/cjs/lib/setup/setupInstall.d.ts +51 -15
- package/build/cjs/lib/setup/setupInstall.js +212 -28
- package/build/cjs/lib/setup/setupInstall.js.map +2 -2
- package/build/cjs/lib/setup/setupLicense.d.ts +13 -0
- package/build/cjs/lib/setup/setupLicense.js +33 -2
- package/build/cjs/lib/setup/setupLicense.js.map +2 -2
- package/build/cjs/lib/setup/setupList.d.ts +55 -1
- package/build/cjs/lib/setup/setupList.js +78 -24
- package/build/cjs/lib/setup/setupList.js.map +3 -3
- package/build/cjs/lib/setup/setupMultihost.d.ts +7 -0
- package/build/cjs/lib/setup/setupMultihost.js +78 -11
- package/build/cjs/lib/setup/setupMultihost.js.map +3 -3
- package/build/cjs/lib/setup/setupPacketManager.d.ts +10 -0
- package/build/cjs/lib/setup/setupPacketManager.js +16 -6
- package/build/cjs/lib/setup/setupPacketManager.js.map +2 -2
- package/build/cjs/lib/setup/setupRepo.d.ts +19 -0
- package/build/cjs/lib/setup/setupRepo.js +141 -13
- package/build/cjs/lib/setup/setupRepo.js.map +2 -2
- package/build/cjs/lib/setup/setupSetup.d.ts +34 -0
- package/build/cjs/lib/setup/setupSetup.js +209 -35
- package/build/cjs/lib/setup/setupSetup.js.map +3 -3
- package/build/cjs/lib/setup/setupUpgrade.d.ts +13 -2
- package/build/cjs/lib/setup/setupUpgrade.js +72 -12
- package/build/cjs/lib/setup/setupUpgrade.js.map +2 -2
- package/build/cjs/lib/setup/setupUpload.d.ts +77 -1
- package/build/cjs/lib/setup/setupUpload.js +152 -9
- package/build/cjs/lib/setup/setupUpload.js.map +2 -2
- package/build/cjs/lib/setup/setupUsers.d.ts +44 -14
- package/build/cjs/lib/setup/setupUsers.js +330 -17
- package/build/cjs/lib/setup/setupUsers.js.map +2 -2
- package/build/cjs/lib/setup/setupVendor.d.ts +14 -1
- package/build/cjs/lib/setup/setupVendor.js +40 -8
- package/build/cjs/lib/setup/setupVendor.js.map +2 -2
- package/build/cjs/lib/setup/setupVisDebug.d.ts +16 -2
- package/build/cjs/lib/setup/setupVisDebug.js +41 -17
- package/build/cjs/lib/setup/setupVisDebug.js.map +3 -3
- package/build/cjs/lib/setup/utils.d.ts +1 -1
- package/build/cjs/lib/setup/utils.js +13 -9
- package/build/cjs/lib/setup/utils.js.map +3 -3
- package/build/cjs/lib/setup.d.ts +1 -1
- package/build/cjs/lib/setup.js +858 -1758
- package/build/cjs/lib/setup.js.map +3 -3
- package/build/esm/lib/_Types.d.ts +8 -1
- package/build/esm/lib/_Types.d.ts.map +1 -1
- package/build/esm/lib/cli/cliCert.d.ts +7 -4
- package/build/esm/lib/cli/cliCert.d.ts.map +1 -1
- package/build/esm/lib/cli/cliCert.js +6 -6
- package/build/esm/lib/cli/cliCert.js.map +1 -1
- package/build/esm/lib/cli/cliCommand.d.ts +63 -15
- package/build/esm/lib/cli/cliCommand.d.ts.map +1 -1
- package/build/esm/lib/cli/cliCommand.js +4 -1
- package/build/esm/lib/cli/cliCommand.js.map +1 -1
- package/build/esm/lib/cli/cliCompact.d.ts +5 -2
- package/build/esm/lib/cli/cliCompact.d.ts.map +1 -1
- package/build/esm/lib/cli/cliCompact.js +5 -2
- package/build/esm/lib/cli/cliCompact.js.map +1 -1
- package/build/esm/lib/cli/cliDebug.d.ts +5 -2
- package/build/esm/lib/cli/cliDebug.d.ts.map +1 -1
- package/build/esm/lib/cli/cliDebug.js +4 -1
- package/build/esm/lib/cli/cliDebug.js.map +1 -1
- package/build/esm/lib/cli/cliHost.d.ts +13 -10
- package/build/esm/lib/cli/cliHost.d.ts.map +1 -1
- package/build/esm/lib/cli/cliHost.js +8 -5
- package/build/esm/lib/cli/cliHost.js.map +1 -1
- package/build/esm/lib/cli/cliLogs.d.ts +9 -3
- package/build/esm/lib/cli/cliLogs.d.ts.map +1 -1
- package/build/esm/lib/cli/cliLogs.js +8 -1
- package/build/esm/lib/cli/cliLogs.js.map +1 -1
- package/build/esm/lib/cli/cliMessage.d.ts +2 -1
- package/build/esm/lib/cli/cliMessage.d.ts.map +1 -1
- package/build/esm/lib/cli/cliMessage.js +1 -0
- package/build/esm/lib/cli/cliMessage.js.map +1 -1
- package/build/esm/lib/cli/cliObjects.d.ts +21 -18
- package/build/esm/lib/cli/cliObjects.d.ts.map +1 -1
- package/build/esm/lib/cli/cliObjects.js +44 -38
- package/build/esm/lib/cli/cliObjects.js.map +1 -1
- package/build/esm/lib/cli/cliPlugin.d.ts +3 -3
- package/build/esm/lib/cli/cliPlugin.d.ts.map +1 -1
- package/build/esm/lib/cli/cliPlugin.js +1 -1
- package/build/esm/lib/cli/cliPlugin.js.map +1 -1
- package/build/esm/lib/cli/cliProcess.d.ts +17 -7
- package/build/esm/lib/cli/cliProcess.d.ts.map +1 -1
- package/build/esm/lib/cli/cliProcess.js +73 -12
- package/build/esm/lib/cli/cliProcess.js.map +1 -1
- package/build/esm/lib/cli/cliStates.d.ts +7 -4
- package/build/esm/lib/cli/cliStates.d.ts.map +1 -1
- package/build/esm/lib/cli/cliStates.js +6 -2
- package/build/esm/lib/cli/cliStates.js.map +1 -1
- package/build/esm/lib/progressBar.d.ts +59 -0
- package/build/esm/lib/progressBar.d.ts.map +1 -0
- package/build/esm/lib/progressBar.js +104 -0
- package/build/esm/lib/progressBar.js.map +1 -0
- package/build/esm/lib/setup/customError.d.ts +4 -0
- package/build/esm/lib/setup/customError.d.ts.map +1 -1
- package/build/esm/lib/setup/customError.js +3 -0
- package/build/esm/lib/setup/customError.js.map +1 -1
- package/build/esm/lib/setup/dbConnection.d.ts.map +1 -1
- package/build/esm/lib/setup/dbConnection.js +10 -13
- package/build/esm/lib/setup/dbConnection.js.map +1 -1
- package/build/esm/lib/setup/formatters.d.ts +4 -4
- package/build/esm/lib/setup/formatters.js +4 -4
- package/build/esm/lib/setup/pluginInfos.d.ts +5 -0
- package/build/esm/lib/setup/pluginInfos.d.ts.map +1 -1
- package/build/esm/lib/setup/pluginInfos.js +5 -0
- package/build/esm/lib/setup/pluginInfos.js.map +1 -1
- package/build/esm/lib/setup/setupBackup.d.ts +53 -0
- package/build/esm/lib/setup/setupBackup.d.ts.map +1 -1
- package/build/esm/lib/setup/setupBackup.js +132 -13
- package/build/esm/lib/setup/setupBackup.js.map +1 -1
- package/build/esm/lib/setup/setupInstall.d.ts +51 -15
- package/build/esm/lib/setup/setupInstall.d.ts.map +1 -1
- package/build/esm/lib/setup/setupInstall.js +228 -23
- package/build/esm/lib/setup/setupInstall.js.map +1 -1
- package/build/esm/lib/setup/setupLicense.d.ts +13 -0
- package/build/esm/lib/setup/setupLicense.d.ts.map +1 -1
- package/build/esm/lib/setup/setupLicense.js +31 -1
- package/build/esm/lib/setup/setupLicense.js.map +1 -1
- package/build/esm/lib/setup/setupList.d.ts +55 -1
- package/build/esm/lib/setup/setupList.d.ts.map +1 -1
- package/build/esm/lib/setup/setupList.js +61 -8
- package/build/esm/lib/setup/setupList.js.map +1 -1
- package/build/esm/lib/setup/setupMultihost.d.ts +7 -0
- package/build/esm/lib/setup/setupMultihost.d.ts.map +1 -1
- package/build/esm/lib/setup/setupMultihost.js +85 -6
- package/build/esm/lib/setup/setupMultihost.js.map +1 -1
- package/build/esm/lib/setup/setupPacketManager.d.ts +10 -0
- package/build/esm/lib/setup/setupPacketManager.d.ts.map +1 -1
- package/build/esm/lib/setup/setupPacketManager.js +9 -0
- package/build/esm/lib/setup/setupPacketManager.js.map +1 -1
- package/build/esm/lib/setup/setupRepo.d.ts +19 -0
- package/build/esm/lib/setup/setupRepo.d.ts.map +1 -1
- package/build/esm/lib/setup/setupRepo.js +164 -14
- package/build/esm/lib/setup/setupRepo.js.map +1 -1
- package/build/esm/lib/setup/setupSetup.d.ts +34 -0
- package/build/esm/lib/setup/setupSetup.d.ts.map +1 -1
- package/build/esm/lib/setup/setupSetup.js +218 -21
- package/build/esm/lib/setup/setupSetup.js.map +1 -1
- package/build/esm/lib/setup/setupUpgrade.d.ts +13 -2
- package/build/esm/lib/setup/setupUpgrade.d.ts.map +1 -1
- package/build/esm/lib/setup/setupUpgrade.js +70 -6
- package/build/esm/lib/setup/setupUpgrade.js.map +1 -1
- package/build/esm/lib/setup/setupUpload.d.ts +77 -1
- package/build/esm/lib/setup/setupUpload.d.ts.map +1 -1
- package/build/esm/lib/setup/setupUpload.js +164 -7
- package/build/esm/lib/setup/setupUpload.js.map +1 -1
- package/build/esm/lib/setup/setupUsers.d.ts +44 -14
- package/build/esm/lib/setup/setupUsers.d.ts.map +1 -1
- package/build/esm/lib/setup/setupUsers.js +346 -14
- package/build/esm/lib/setup/setupUsers.js.map +1 -1
- package/build/esm/lib/setup/setupVendor.d.ts +14 -1
- package/build/esm/lib/setup/setupVendor.d.ts.map +1 -1
- package/build/esm/lib/setup/setupVendor.js +33 -2
- package/build/esm/lib/setup/setupVendor.js.map +1 -1
- package/build/esm/lib/setup/setupVisDebug.d.ts +16 -2
- package/build/esm/lib/setup/setupVisDebug.d.ts.map +1 -1
- package/build/esm/lib/setup/setupVisDebug.js +39 -14
- package/build/esm/lib/setup/setupVisDebug.js.map +1 -1
- package/build/esm/lib/setup/utils.d.ts +1 -1
- package/build/esm/lib/setup/utils.d.ts.map +1 -1
- package/build/esm/lib/setup/utils.js +2 -4
- package/build/esm/lib/setup/utils.js.map +1 -1
- package/build/esm/lib/setup.d.ts +1 -1
- package/build/esm/lib/setup.d.ts.map +1 -1
- package/build/esm/lib/setup.js +959 -1910
- package/build/esm/lib/setup.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +14 -14
|
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
9
|
var __export = (target, all) => {
|
|
9
10
|
for (var name in all)
|
|
10
11
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -34,12 +35,10 @@ __export(dbConnection_exports, {
|
|
|
34
35
|
resetDbConnect: () => resetDbConnect
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(dbConnection_exports);
|
|
38
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
37
39
|
var import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
38
40
|
var import_js_controller_common = require("@iobroker/js-controller-common");
|
|
39
|
-
var import_js_controller_common2 = require("@iobroker/js-controller-common");
|
|
40
|
-
var import_js_controller_common3 = require("@iobroker/js-controller-common");
|
|
41
41
|
var import_promises = require("node:timers/promises");
|
|
42
|
-
var import_node_path = __toESM(require("node:path"), 1);
|
|
43
42
|
var import_plugin_base = require("@iobroker/plugin-base");
|
|
44
43
|
let pluginHandler;
|
|
45
44
|
let Objects;
|
|
@@ -64,7 +63,7 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
64
63
|
throw new Error("No callback for dbConnect");
|
|
65
64
|
}
|
|
66
65
|
params = params || {};
|
|
67
|
-
const config = import_fs_extra.default.readJSONSync(
|
|
66
|
+
const config = import_fs_extra.default.readJSONSync(import_js_controller_common.tools.getConfigFileName());
|
|
68
67
|
if (objects && states) {
|
|
69
68
|
return void callback({ objects, states, isOffline: false, objectsDBType: config.objects.type, config });
|
|
70
69
|
}
|
|
@@ -91,16 +90,16 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
91
90
|
objects = new Objects({
|
|
92
91
|
connection: config.objects,
|
|
93
92
|
logger: {
|
|
94
|
-
silly: (_msg) => {
|
|
95
|
-
},
|
|
96
|
-
debug: (_msg) => {
|
|
97
|
-
},
|
|
98
|
-
info: (_msg) => {
|
|
99
|
-
},
|
|
100
|
-
warn: (msg) => console.log(msg),
|
|
101
|
-
error: (msg) => console.log(msg)
|
|
93
|
+
silly: /* @__PURE__ */ __name((_msg) => {
|
|
94
|
+
}, "silly"),
|
|
95
|
+
debug: /* @__PURE__ */ __name((_msg) => {
|
|
96
|
+
}, "debug"),
|
|
97
|
+
info: /* @__PURE__ */ __name((_msg) => {
|
|
98
|
+
}, "info"),
|
|
99
|
+
warn: /* @__PURE__ */ __name((msg) => console.log(msg), "warn"),
|
|
100
|
+
error: /* @__PURE__ */ __name((msg) => console.log(msg), "error")
|
|
102
101
|
},
|
|
103
|
-
connected: async () => {
|
|
102
|
+
connected: /* @__PURE__ */ __name(async () => {
|
|
104
103
|
isObjectConnected = true;
|
|
105
104
|
if (isStatesConnected && typeof callback === "function") {
|
|
106
105
|
try {
|
|
@@ -115,7 +114,7 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
115
114
|
config
|
|
116
115
|
});
|
|
117
116
|
}
|
|
118
|
-
}
|
|
117
|
+
}, "connected")
|
|
119
118
|
});
|
|
120
119
|
} else {
|
|
121
120
|
console.log(`No connection to objects ${Array.isArray(config.objects.host) ? config.objects.host.join(", ") : config.objects.host}:${Array.isArray(config.objects.port) ? config.objects.port.join(", ") : config.objects.port}[${config.objects.type}]`);
|
|
@@ -129,7 +128,7 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
129
128
|
});
|
|
130
129
|
callback = void 0;
|
|
131
130
|
} else {
|
|
132
|
-
return void exitApplicationSave(
|
|
131
|
+
return void exitApplicationSave(import_js_controller_common.EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);
|
|
133
132
|
}
|
|
134
133
|
}
|
|
135
134
|
}
|
|
@@ -144,16 +143,16 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
144
143
|
states = new States({
|
|
145
144
|
connection: config.states,
|
|
146
145
|
logger: {
|
|
147
|
-
silly: (_msg) => {
|
|
148
|
-
},
|
|
149
|
-
debug: (_msg) => {
|
|
150
|
-
},
|
|
151
|
-
info: (_msg) => {
|
|
152
|
-
},
|
|
153
|
-
warn: (msg) => console.log(msg),
|
|
154
|
-
error: (msg) => console.log(msg)
|
|
146
|
+
silly: /* @__PURE__ */ __name((_msg) => {
|
|
147
|
+
}, "silly"),
|
|
148
|
+
debug: /* @__PURE__ */ __name((_msg) => {
|
|
149
|
+
}, "debug"),
|
|
150
|
+
info: /* @__PURE__ */ __name((_msg) => {
|
|
151
|
+
}, "info"),
|
|
152
|
+
warn: /* @__PURE__ */ __name((msg) => console.log(msg), "warn"),
|
|
153
|
+
error: /* @__PURE__ */ __name((msg) => console.log(msg), "error")
|
|
155
154
|
},
|
|
156
|
-
connected: async () => {
|
|
155
|
+
connected: /* @__PURE__ */ __name(async () => {
|
|
157
156
|
isStatesConnected = true;
|
|
158
157
|
if (isObjectConnected && typeof callback === "function") {
|
|
159
158
|
try {
|
|
@@ -168,10 +167,10 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
168
167
|
config
|
|
169
168
|
});
|
|
170
169
|
}
|
|
171
|
-
},
|
|
170
|
+
}, "connected"),
|
|
172
171
|
// react on change
|
|
173
172
|
// @ts-expect-error todo according to types and first look states.onchange does not exist
|
|
174
|
-
change: (id, msg) => states?.onChange(id, msg)
|
|
173
|
+
change: /* @__PURE__ */ __name((id, msg) => states?.onChange(id, msg), "change")
|
|
175
174
|
});
|
|
176
175
|
states.onChange = null;
|
|
177
176
|
} else {
|
|
@@ -194,7 +193,7 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
194
193
|
});
|
|
195
194
|
callback = void 0;
|
|
196
195
|
} else {
|
|
197
|
-
return void exitApplicationSave(
|
|
196
|
+
return void exitApplicationSave(import_js_controller_common.EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);
|
|
198
197
|
}
|
|
199
198
|
}
|
|
200
199
|
}
|
|
@@ -204,7 +203,7 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
204
203
|
}
|
|
205
204
|
console.log("No connection to databases possible ...");
|
|
206
205
|
if (onlyCheck) {
|
|
207
|
-
callback
|
|
206
|
+
callback?.({
|
|
208
207
|
// TODO types: allow null if onlyCheck is true
|
|
209
208
|
objects: null,
|
|
210
209
|
states: null,
|
|
@@ -214,22 +213,22 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
214
213
|
});
|
|
215
214
|
callback = void 0;
|
|
216
215
|
} else {
|
|
217
|
-
return void exitApplicationSave(
|
|
216
|
+
return void exitApplicationSave(import_js_controller_common.EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);
|
|
218
217
|
}
|
|
219
218
|
}, params.timeout || config.objects.connectTimeout * 2);
|
|
220
219
|
objects = new Objects({
|
|
221
220
|
connection: config.objects,
|
|
222
221
|
logger: {
|
|
223
|
-
silly: (_msg) => {
|
|
224
|
-
},
|
|
225
|
-
debug: (_msg) => {
|
|
226
|
-
},
|
|
227
|
-
info: (_msg) => {
|
|
228
|
-
},
|
|
229
|
-
warn: (msg) => console.log(msg),
|
|
230
|
-
error: (msg) => console.log(msg)
|
|
222
|
+
silly: /* @__PURE__ */ __name((_msg) => {
|
|
223
|
+
}, "silly"),
|
|
224
|
+
debug: /* @__PURE__ */ __name((_msg) => {
|
|
225
|
+
}, "debug"),
|
|
226
|
+
info: /* @__PURE__ */ __name((_msg) => {
|
|
227
|
+
}, "info"),
|
|
228
|
+
warn: /* @__PURE__ */ __name((msg) => console.log(msg), "warn"),
|
|
229
|
+
error: /* @__PURE__ */ __name((msg) => console.log(msg), "error")
|
|
231
230
|
},
|
|
232
|
-
connected: async () => {
|
|
231
|
+
connected: /* @__PURE__ */ __name(async () => {
|
|
233
232
|
if (isObjectConnected) {
|
|
234
233
|
return;
|
|
235
234
|
}
|
|
@@ -242,21 +241,21 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
242
241
|
}
|
|
243
242
|
callback({ objects, states, isOffline, objectsDBType: config.objects.type, config });
|
|
244
243
|
}
|
|
245
|
-
}
|
|
244
|
+
}, "connected")
|
|
246
245
|
});
|
|
247
246
|
states = new States({
|
|
248
247
|
connection: config.states,
|
|
249
248
|
logger: {
|
|
250
|
-
silly: (_msg) => {
|
|
251
|
-
},
|
|
252
|
-
debug: (_msg) => {
|
|
253
|
-
},
|
|
254
|
-
info: (_msg) => {
|
|
255
|
-
},
|
|
256
|
-
warn: (msg) => console.log(msg),
|
|
257
|
-
error: (msg) => console.log(msg)
|
|
249
|
+
silly: /* @__PURE__ */ __name((_msg) => {
|
|
250
|
+
}, "silly"),
|
|
251
|
+
debug: /* @__PURE__ */ __name((_msg) => {
|
|
252
|
+
}, "debug"),
|
|
253
|
+
info: /* @__PURE__ */ __name((_msg) => {
|
|
254
|
+
}, "info"),
|
|
255
|
+
warn: /* @__PURE__ */ __name((msg) => console.log(msg), "warn"),
|
|
256
|
+
error: /* @__PURE__ */ __name((msg) => console.log(msg), "error")
|
|
258
257
|
},
|
|
259
|
-
connected: async () => {
|
|
258
|
+
connected: /* @__PURE__ */ __name(async () => {
|
|
260
259
|
if (isStatesConnected) {
|
|
261
260
|
return;
|
|
262
261
|
}
|
|
@@ -269,14 +268,16 @@ async function dbConnect(onlyCheck, params, callback) {
|
|
|
269
268
|
}
|
|
270
269
|
callback({ objects, states, isOffline, objectsDBType: config.objects.type, config });
|
|
271
270
|
}
|
|
272
|
-
},
|
|
271
|
+
}, "connected"),
|
|
273
272
|
// @ts-expect-error todo according to types and first look states.onchange does not exist
|
|
274
|
-
change: (id, state) => states?.onChange(id, state)
|
|
273
|
+
change: /* @__PURE__ */ __name((id, state) => states?.onChange(id, state), "change")
|
|
275
274
|
});
|
|
276
275
|
}
|
|
276
|
+
__name(dbConnect, "dbConnect");
|
|
277
277
|
function dbConnectAsync(onlyCheck, params) {
|
|
278
278
|
return new Promise((resolve) => dbConnect(onlyCheck, params || {}, (params2) => resolve(params2)));
|
|
279
279
|
}
|
|
280
|
+
__name(dbConnectAsync, "dbConnectAsync");
|
|
280
281
|
async function resetDbConnect() {
|
|
281
282
|
if (objects) {
|
|
282
283
|
await objects.destroy();
|
|
@@ -296,29 +297,31 @@ async function resetDbConnect() {
|
|
|
296
297
|
await pluginHandler.destroyAll();
|
|
297
298
|
}
|
|
298
299
|
}
|
|
300
|
+
__name(resetDbConnect, "resetDbConnect");
|
|
299
301
|
async function exitApplicationSave(exitCode) {
|
|
300
302
|
await resetDbConnect();
|
|
301
303
|
await (0, import_promises.setTimeout)(1e3);
|
|
302
304
|
process.exit(exitCode);
|
|
303
305
|
}
|
|
306
|
+
__name(exitApplicationSave, "exitApplicationSave");
|
|
304
307
|
function initializePlugins(config) {
|
|
305
|
-
const ioPackage = import_fs_extra.default.readJsonSync(import_node_path.default.join(
|
|
306
|
-
const packageJson = import_fs_extra.default.readJsonSync(import_node_path.default.join(
|
|
307
|
-
const hostname =
|
|
308
|
+
const ioPackage = import_fs_extra.default.readJsonSync(import_node_path.default.join(import_js_controller_common.tools.getControllerDir(), "io-package.json"));
|
|
309
|
+
const packageJson = import_fs_extra.default.readJsonSync(import_node_path.default.join(import_js_controller_common.tools.getControllerDir(), "package.json"));
|
|
310
|
+
const hostname = import_js_controller_common.tools.getHostName();
|
|
308
311
|
const pluginSettings = {
|
|
309
312
|
namespace: `system.host.${hostname}`,
|
|
310
313
|
logNamespace: `host.${hostname}`,
|
|
311
314
|
scope: "controller",
|
|
312
315
|
log: {
|
|
313
316
|
// cli should be clean, only log warn/error
|
|
314
|
-
silly: (_msg) => {
|
|
315
|
-
},
|
|
316
|
-
debug: (_msg) => {
|
|
317
|
-
},
|
|
318
|
-
info: (_msg) => {
|
|
319
|
-
},
|
|
320
|
-
warn: (msg) => console.log(msg),
|
|
321
|
-
error: (msg) => console.log(msg),
|
|
317
|
+
silly: /* @__PURE__ */ __name((_msg) => {
|
|
318
|
+
}, "silly"),
|
|
319
|
+
debug: /* @__PURE__ */ __name((_msg) => {
|
|
320
|
+
}, "debug"),
|
|
321
|
+
info: /* @__PURE__ */ __name((_msg) => {
|
|
322
|
+
}, "info"),
|
|
323
|
+
warn: /* @__PURE__ */ __name((msg) => console.log(msg), "warn"),
|
|
324
|
+
error: /* @__PURE__ */ __name((msg) => console.log(msg), "error"),
|
|
322
325
|
level: "warn"
|
|
323
326
|
},
|
|
324
327
|
iobrokerConfig: config,
|
|
@@ -326,11 +329,12 @@ function initializePlugins(config) {
|
|
|
326
329
|
controllerVersion: ioPackage.common.version
|
|
327
330
|
};
|
|
328
331
|
pluginHandler = new import_plugin_base.PluginHandler(pluginSettings);
|
|
329
|
-
pluginHandler.addPlugins(ioPackage.common.plugins,
|
|
330
|
-
pluginHandler.addPlugins(config.plugins,
|
|
332
|
+
pluginHandler.addPlugins(ioPackage.common.plugins, import_js_controller_common.tools.getControllerDir());
|
|
333
|
+
pluginHandler.addPlugins(config.plugins, import_js_controller_common.tools.getControllerDir());
|
|
331
334
|
pluginHandler.setDatabaseForPlugins(objects, states);
|
|
332
335
|
return pluginHandler.initPlugins(ioPackage);
|
|
333
336
|
}
|
|
337
|
+
__name(initializePlugins, "initializePlugins");
|
|
334
338
|
async function checkSystemOffline(onlyCheck) {
|
|
335
339
|
if (!objects || !states) {
|
|
336
340
|
return true;
|
|
@@ -338,9 +342,10 @@ async function checkSystemOffline(onlyCheck) {
|
|
|
338
342
|
if (onlyCheck) {
|
|
339
343
|
return true;
|
|
340
344
|
}
|
|
341
|
-
const offlineStatus = !await
|
|
345
|
+
const offlineStatus = !await import_js_controller_common.tools.isHostRunning(objects, states);
|
|
342
346
|
return offlineStatus;
|
|
343
347
|
}
|
|
348
|
+
__name(checkSystemOffline, "checkSystemOffline");
|
|
344
349
|
// Annotate the CommonJS export names for ESM import in node:
|
|
345
350
|
0 && (module.exports = {
|
|
346
351
|
dbConnect,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/setup/dbConnection.ts"],
|
|
4
|
-
"sourcesContent": ["import type { DbConnectAsyncReturn, DbConnectCallback } from '../_Types.js';\nimport fs from 'fs-extra';\nimport {\n getObjectsConstructor,\n getStatesConstructor,\n objectsDbHasServer,\n statesDbHasServer,\n} from '@iobroker/js-controller-common';\nimport { EXIT_CODES } from '@iobroker/js-controller-common';\nimport { tools } from '@iobroker/js-controller-common';\nimport { setTimeout as wait } from 'node:timers/promises';\nimport type { Client as StatesRedisClient } from '@iobroker/db-states-redis';\nimport type { Client as ObjectsInRedisClient } from '@iobroker/db-objects-redis';\nimport path from 'node:path';\nimport type { InternalAdapterJsonConfig, PluginHandlerSettings } from '@iobroker/plugin-base';\nimport { PluginHandler } from '@iobroker/plugin-base';\n\nlet pluginHandler: InstanceType<typeof PluginHandler>;\nlet Objects: typeof ObjectsInRedisClient | null; // constructor\nlet objects: ObjectsInRedisClient | null; // instance\nlet States: typeof StatesRedisClient | null; // constructor\nlet states: StatesRedisClient | null; // instance\n\ninterface DbConnectParams {\n /** DB connect timeout, default is 10_000 */\n timeout?: number;\n}\n\nexport function dbConnect(callback: DbConnectCallback): void;\nexport function dbConnect(params: Record<string, any>, callback: DbConnectCallback): void;\nexport function dbConnect(onlyCheck: boolean, params: Record<string, any>, callback: DbConnectCallback): void;\n/**\n * Connects to the DB or tests the connection.\n *\n * @param onlyCheck if only connection check should be performed\n * @param params options used by dbConnect\n * @param callback called when connection is established or check is done\n */\nexport async function dbConnect(\n onlyCheck: boolean | Record<string, any> | DbConnectCallback,\n params?: DbConnectParams | DbConnectCallback,\n callback?: DbConnectCallback,\n): Promise<void> {\n if (typeof onlyCheck === 'object') {\n callback = params as DbConnectCallback;\n params = onlyCheck;\n onlyCheck = false;\n }\n if (typeof onlyCheck === 'function') {\n callback = onlyCheck;\n onlyCheck = false;\n }\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n if (!callback) {\n throw new Error('No callback for dbConnect');\n }\n\n params = params || {};\n\n const config: ioBroker.IoBrokerJson = fs.readJSONSync(tools.getConfigFileName());\n\n if (objects && states) {\n return void callback({ objects, states, isOffline: false, objectsDBType: config.objects.type, config });\n }\n\n config.states = config.states || { type: 'jsonl' };\n config.objects = config.objects || { type: 'jsonl' };\n // Make sure the DB has enough time (5s). JsonL can take a bit longer if the process just crashed before\n // because the lockfile might not have been freed.\n config.states.connectTimeout = Math.max(config.states.connectTimeout || 0, 5_000);\n config.objects.connectTimeout = Math.max(config.objects.connectTimeout || 0, 5_000);\n\n Objects = await getObjectsConstructor(); // Objects DB Client object\n States = await getStatesConstructor(); // States DB Client object\n\n let isObjectConnected = false;\n let isStatesConnected = false;\n\n // Detect timeout or try to open file itself\n setTimeout(\n async () => {\n if (isObjectConnected && isStatesConnected) {\n return;\n }\n\n if (!isObjectConnected) {\n if (objects) {\n // Destroy Client we tried to connect with\n await objects.destroy();\n objects = null;\n }\n\n const hasObjectsServer = await objectsDbHasServer(config.objects.type);\n\n if (hasObjectsServer) {\n // Just open in memory DB itself\n Objects = (await import(`@iobroker/db-objects-${config.objects.type}`)).Server;\n objects = new Objects!({\n connection: config.objects,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n isObjectConnected = true;\n if (isStatesConnected && typeof callback === 'function') {\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n return void callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n }\n },\n });\n } else {\n console.log(\n `No connection to objects ${Array.isArray(config.objects.host) ? config.objects.host.join(', ') : config.objects.host}:${Array.isArray(config.objects.port) ? config.objects.port.join(', ') : config.objects.port}[${config.objects.type}]`,\n );\n if (onlyCheck) {\n callback?.({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n }\n }\n\n if (!isStatesConnected) {\n if (states) {\n // Destroy Client we tried to connect with\n await states.destroy();\n states = null;\n }\n\n const hasStatesServer = await statesDbHasServer(config.states.type);\n\n if (hasStatesServer) {\n // Just open in memory DB itself\n States = (await import(`@iobroker/db-states-${config.states.type}`)).Server;\n\n states = new States!({\n connection: config.states,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n isStatesConnected = true;\n if (isObjectConnected && typeof callback === 'function') {\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n return void callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n }\n },\n // react on change\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n change: (id, msg) => states?.onChange(id, msg),\n });\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n states.onChange = null; // here the custom onChange handler could be installed\n } else {\n if (states) {\n // Destroy Client we tried to connect with\n await (states as StatesRedisClient).destroy();\n states = null;\n }\n if (objects) {\n // Destroy Client we tried to connect with\n await objects.destroy();\n objects = null;\n }\n console.log(\n `No connection to states ${Array.isArray(config.states.host) ? config.states.host.join(', ') : config.states.host}:${Array.isArray(config.states.port) ? config.states.port.join(', ') : config.states.port}[${config.states.type}]`,\n );\n if (onlyCheck) {\n callback &&\n callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n }\n }\n\n await wait((params.timeout || 10_000) + config.objects.connectTimeout);\n\n // Failsafe\n if (isObjectConnected && isStatesConnected) {\n return;\n }\n\n console.log('No connection to databases possible ...');\n if (onlyCheck) {\n callback &&\n callback({\n // TODO types: allow null if onlyCheck is true\n objects: null as any,\n states: null as any,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n },\n params.timeout || config.objects.connectTimeout * 2,\n );\n\n // try to connect as client\n objects = new Objects({\n connection: config.objects,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n if (isObjectConnected) {\n return;\n }\n isObjectConnected = true;\n\n if (isStatesConnected && typeof callback === 'function') {\n const isOffline = await checkSystemOffline(onlyCheck);\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n callback({ objects: objects!, states: states!, isOffline, objectsDBType: config.objects.type, config });\n }\n },\n });\n\n states = new States({\n connection: config.states,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n if (isStatesConnected) {\n return;\n }\n isStatesConnected = true;\n\n if (isObjectConnected && typeof callback === 'function') {\n const isOffline = await checkSystemOffline(onlyCheck);\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n callback({ objects: objects!, states: states!, isOffline, objectsDBType: config.objects.type, config });\n }\n },\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n change: (id, state) => states?.onChange(id, state),\n });\n}\n\n/**\n * Connects to the DB or tests the connection.\n *\n * @param onlyCheck if only connection check should be performed\n * @param params options used by dbConnect\n */\nexport function dbConnectAsync(onlyCheck: boolean, params?: DbConnectParams): Promise<DbConnectAsyncReturn> {\n return new Promise(resolve => dbConnect(onlyCheck, params || {}, params => resolve(params)));\n}\n\n/**\n * Disconnect the database\n */\nexport async function resetDbConnect(): Promise<void> {\n if (objects) {\n await objects.destroy();\n objects = null;\n }\n if (states) {\n await states.destroy();\n states = null;\n }\n if (Objects) {\n Objects = null;\n }\n if (States) {\n States = null;\n }\n\n if (pluginHandler) {\n await pluginHandler.destroyAll();\n }\n}\n\n/**\n * Exits the process and saves objects before exit - never resolves\n *\n * @param exitCode code passed to process.exit\n */\nexport async function exitApplicationSave(exitCode?: number): Promise<never> {\n await resetDbConnect();\n await wait(1_000);\n process.exit(exitCode);\n}\n\n/**\n * Initialize plugins from io-pack and config json\n *\n * @param config - parsed content of iobroker.json\n */\nfunction initializePlugins(config: Record<string, any>): Promise<void> {\n const ioPackage = fs.readJsonSync(path.join(tools.getControllerDir(), 'io-package.json'));\n const packageJson = fs.readJsonSync(path.join(tools.getControllerDir(), 'package.json'));\n const hostname = tools.getHostName();\n\n const pluginSettings: PluginHandlerSettings = {\n namespace: `system.host.${hostname}`,\n logNamespace: `host.${hostname}`,\n scope: 'controller',\n log: {\n // cli should be clean, only log warn/error\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n level: 'warn',\n },\n iobrokerConfig: config as InternalAdapterJsonConfig,\n parentPackage: packageJson,\n controllerVersion: ioPackage.common.version,\n };\n\n pluginHandler = new PluginHandler(pluginSettings);\n pluginHandler.addPlugins(ioPackage.common.plugins, tools.getControllerDir()); // Plugins from io-package have priority over ...\n pluginHandler.addPlugins(config.plugins, tools.getControllerDir()); // ... plugins from iobroker.json\n // @ts-expect-error objects and state object version conflicts that are none\n pluginHandler.setDatabaseForPlugins(objects, states);\n\n return pluginHandler.initPlugins(ioPackage);\n}\n\n/**\n * Checks if system is offline\n *\n * @param onlyCheck - returns true then\n */\nasync function checkSystemOffline(onlyCheck: boolean): Promise<boolean> {\n if (!objects || !states) {\n // should never happen\n return true;\n }\n if (onlyCheck) {\n return true;\n }\n\n const offlineStatus = !(await tools.isHostRunning(objects, states));\n\n return offlineStatus;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import path from 'node:path';\nimport fs from 'fs-extra';\n\nimport {\n tools,\n EXIT_CODES,\n getObjectsConstructor,\n getStatesConstructor,\n objectsDbHasServer,\n statesDbHasServer,\n} from '@iobroker/js-controller-common';\nimport { setTimeout as wait } from 'node:timers/promises';\nimport type { Client as StatesRedisClient } from '@iobroker/db-states-redis';\nimport type { Client as ObjectsInRedisClient } from '@iobroker/db-objects-redis';\nimport { PluginHandler, type InternalAdapterJsonConfig, type PluginHandlerSettings } from '@iobroker/plugin-base';\nimport type { DbConnectAsyncReturn, DbConnectCallback } from '../_Types.js';\n\nlet pluginHandler: InstanceType<typeof PluginHandler>;\nlet Objects: typeof ObjectsInRedisClient | null; // constructor\nlet objects: ObjectsInRedisClient | null; // instance\nlet States: typeof StatesRedisClient | null; // constructor\nlet states: StatesRedisClient | null; // instance\n\ninterface DbConnectParams {\n /** DB connect timeout, default is 10_000 */\n timeout?: number;\n}\n\nexport function dbConnect(callback: DbConnectCallback): void;\nexport function dbConnect(params: Record<string, any>, callback: DbConnectCallback): void;\nexport function dbConnect(onlyCheck: boolean, params: Record<string, any>, callback: DbConnectCallback): void;\n/**\n * Connects to the DB or tests the connection.\n *\n * @param onlyCheck if only connection check should be performed\n * @param params options used by dbConnect\n * @param callback called when connection is established or check is done\n */\nexport async function dbConnect(\n onlyCheck: boolean | Record<string, any> | DbConnectCallback,\n params?: DbConnectParams | DbConnectCallback,\n callback?: DbConnectCallback,\n): Promise<void> {\n if (typeof onlyCheck === 'object') {\n callback = params as DbConnectCallback;\n params = onlyCheck;\n onlyCheck = false;\n }\n if (typeof onlyCheck === 'function') {\n callback = onlyCheck;\n onlyCheck = false;\n }\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n if (!callback) {\n throw new Error('No callback for dbConnect');\n }\n\n params = params || {};\n\n const config: ioBroker.IoBrokerJson = fs.readJSONSync(tools.getConfigFileName());\n\n if (objects && states) {\n return void callback({ objects, states, isOffline: false, objectsDBType: config.objects.type, config });\n }\n\n config.states = config.states || { type: 'jsonl' };\n config.objects = config.objects || { type: 'jsonl' };\n // Make sure the DB has enough time (5s). JsonL can take a bit longer if the process just crashed before\n // because the lockfile might not have been freed.\n config.states.connectTimeout = Math.max(config.states.connectTimeout || 0, 5_000);\n config.objects.connectTimeout = Math.max(config.objects.connectTimeout || 0, 5_000);\n\n Objects = await getObjectsConstructor(); // Objects DB Client object\n States = await getStatesConstructor(); // States DB Client object\n\n let isObjectConnected = false;\n let isStatesConnected = false;\n\n // Detect timeout or try to open file itself\n setTimeout(\n async () => {\n if (isObjectConnected && isStatesConnected) {\n return;\n }\n\n if (!isObjectConnected) {\n if (objects) {\n // Destroy Client we tried to connect with\n await objects.destroy();\n objects = null;\n }\n\n const hasObjectsServer = await objectsDbHasServer(config.objects.type);\n\n if (hasObjectsServer) {\n // Just open in memory DB itself\n Objects = (await import(`@iobroker/db-objects-${config.objects.type}`)).Server;\n objects = new Objects!({\n connection: config.objects,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n isObjectConnected = true;\n if (isStatesConnected && typeof callback === 'function') {\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n return void callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n }\n },\n });\n } else {\n console.log(\n `No connection to objects ${Array.isArray(config.objects.host) ? config.objects.host.join(', ') : config.objects.host}:${Array.isArray(config.objects.port) ? config.objects.port.join(', ') : config.objects.port}[${config.objects.type}]`,\n );\n if (onlyCheck) {\n callback?.({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n }\n }\n\n if (!isStatesConnected) {\n if (states) {\n // Destroy Client we tried to connect with\n await states.destroy();\n states = null;\n }\n\n const hasStatesServer = await statesDbHasServer(config.states.type);\n\n if (hasStatesServer) {\n // Just open in memory DB itself\n States = (await import(`@iobroker/db-states-${config.states.type}`)).Server;\n\n states = new States!({\n connection: config.states,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n isStatesConnected = true;\n if (isObjectConnected && typeof callback === 'function') {\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n return void callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n }\n },\n // react on change\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n change: (id, msg) => states?.onChange(id, msg),\n });\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n states.onChange = null; // here the custom onChange handler could be installed\n } else {\n if (states) {\n // Destroy Client we tried to connect with\n await (states as StatesRedisClient).destroy();\n states = null;\n }\n if (objects) {\n // Destroy Client we tried to connect with\n await objects.destroy();\n objects = null;\n }\n console.log(\n `No connection to states ${Array.isArray(config.states.host) ? config.states.host.join(', ') : config.states.host}:${Array.isArray(config.states.port) ? config.states.port.join(', ') : config.states.port}[${config.states.type}]`,\n );\n if (onlyCheck) {\n callback &&\n callback({\n objects: objects!,\n states: states!,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n }\n }\n\n await wait((params.timeout || 10_000) + config.objects.connectTimeout);\n\n // Failsafe\n if (isObjectConnected && isStatesConnected) {\n return;\n }\n\n console.log('No connection to databases possible ...');\n if (onlyCheck) {\n callback?.({\n // TODO types: allow null if onlyCheck is true\n objects: null as any,\n states: null as any,\n isOffline: true,\n objectsDBType: config.objects.type,\n config,\n });\n callback = undefined;\n } else {\n return void exitApplicationSave(EXIT_CODES.NO_CONNECTION_TO_OBJ_DB);\n }\n },\n params.timeout || config.objects.connectTimeout * 2,\n );\n\n // try to connect as client\n objects = new Objects({\n connection: config.objects,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n if (isObjectConnected) {\n return;\n }\n isObjectConnected = true;\n\n if (isStatesConnected && typeof callback === 'function') {\n const isOffline = await checkSystemOffline(onlyCheck);\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n callback({ objects: objects!, states: states!, isOffline, objectsDBType: config.objects.type, config });\n }\n },\n });\n\n states = new States({\n connection: config.states,\n logger: {\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n },\n connected: async () => {\n if (isStatesConnected) {\n return;\n }\n isStatesConnected = true;\n\n if (isObjectConnected && typeof callback === 'function') {\n const isOffline = await checkSystemOffline(onlyCheck);\n try {\n await initializePlugins(config);\n } catch {\n // ignore in silence\n }\n callback({ objects: objects!, states: states!, isOffline, objectsDBType: config.objects.type, config });\n }\n },\n // @ts-expect-error todo according to types and first look states.onchange does not exist\n change: (id, state) => states?.onChange(id, state),\n });\n}\n\n/**\n * Connects to the DB or tests the connection.\n *\n * @param onlyCheck if only connection check should be performed\n * @param params options used by dbConnect\n */\nexport function dbConnectAsync(onlyCheck: boolean, params?: DbConnectParams): Promise<DbConnectAsyncReturn> {\n return new Promise(resolve => dbConnect(onlyCheck, params || {}, params => resolve(params)));\n}\n\n/**\n * Disconnect the database\n */\nexport async function resetDbConnect(): Promise<void> {\n if (objects) {\n await objects.destroy();\n objects = null;\n }\n if (states) {\n await states.destroy();\n states = null;\n }\n if (Objects) {\n Objects = null;\n }\n if (States) {\n States = null;\n }\n\n if (pluginHandler) {\n await pluginHandler.destroyAll();\n }\n}\n\n/**\n * Exits the process and saves objects before exit - never resolves\n *\n * @param exitCode code passed to process.exit\n */\nexport async function exitApplicationSave(exitCode?: number): Promise<never> {\n await resetDbConnect();\n await wait(1_000);\n process.exit(exitCode);\n}\n\n/**\n * Initialize plugins from io-pack and config json\n *\n * @param config - parsed content of iobroker.json\n */\nfunction initializePlugins(config: Record<string, any>): Promise<void> {\n const ioPackage = fs.readJsonSync(path.join(tools.getControllerDir(), 'io-package.json'));\n const packageJson = fs.readJsonSync(path.join(tools.getControllerDir(), 'package.json'));\n const hostname = tools.getHostName();\n\n const pluginSettings: PluginHandlerSettings = {\n namespace: `system.host.${hostname}`,\n logNamespace: `host.${hostname}`,\n scope: 'controller',\n log: {\n // cli should be clean, only log warn/error\n silly: (_msg: string) => {\n /** do not log on this level */\n },\n debug: (_msg: string) => {\n /** do not log on this level */\n },\n info: (_msg: string) => {\n /** do not log on this level */\n },\n warn: (msg: string) => console.log(msg),\n error: (msg: string) => console.log(msg),\n level: 'warn',\n },\n iobrokerConfig: config as InternalAdapterJsonConfig,\n parentPackage: packageJson,\n controllerVersion: ioPackage.common.version,\n };\n\n pluginHandler = new PluginHandler(pluginSettings);\n pluginHandler.addPlugins(ioPackage.common.plugins, tools.getControllerDir()); // Plugins from io-package have priority over ...\n pluginHandler.addPlugins(config.plugins, tools.getControllerDir()); // ... plugins from iobroker.json\n // @ts-expect-error objects and state object version conflicts that are none\n pluginHandler.setDatabaseForPlugins(objects, states);\n\n return pluginHandler.initPlugins(ioPackage);\n}\n\n/**\n * Checks if system is offline\n *\n * @param onlyCheck - returns true then\n */\nasync function checkSystemOffline(onlyCheck: boolean): Promise<boolean> {\n if (!objects || !states) {\n // should never happen\n return true;\n }\n if (onlyCheck) {\n return true;\n }\n\n const offlineStatus = !(await tools.isHostRunning(objects, states));\n\n return offlineStatus;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AAAA,uBAAiB;AACjB,sBAAe;AAEf,kCAOO;AACP,sBAAmC;AAGnC,yBAA0F;AAG1F,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AACJ,IAAI;AAiBJ,eAAsB,UAClB,WACA,QACA,UAA4B;AAE5B,MAAI,OAAO,cAAc,UAAU;AAC/B,eAAW;AACX,aAAS;AACT,gBAAY;EAChB;AACA,MAAI,OAAO,cAAc,YAAY;AACjC,eAAW;AACX,gBAAY;EAChB;AACA,MAAI,OAAO,WAAW,YAAY;AAC9B,eAAW;AACX,aAAS,CAAA;EACb;AAEA,MAAI,CAAC,UAAU;AACX,UAAM,IAAI,MAAM,2BAA2B;EAC/C;AAEA,WAAS,UAAU,CAAA;AAEnB,QAAM,SAAgC,gBAAAA,QAAG,aAAa,kCAAM,kBAAiB,CAAE;AAE/E,MAAI,WAAW,QAAQ;AACnB,WAAO,KAAK,SAAS,EAAE,SAAS,QAAQ,WAAW,OAAO,eAAe,OAAO,QAAQ,MAAM,OAAM,CAAE;EAC1G;AAEA,SAAO,SAAS,OAAO,UAAU,EAAE,MAAM,QAAO;AAChD,SAAO,UAAU,OAAO,WAAW,EAAE,MAAM,QAAO;AAGlD,SAAO,OAAO,iBAAiB,KAAK,IAAI,OAAO,OAAO,kBAAkB,GAAG,GAAK;AAChF,SAAO,QAAQ,iBAAiB,KAAK,IAAI,OAAO,QAAQ,kBAAkB,GAAG,GAAK;AAElF,YAAU,UAAM,mDAAqB;AACrC,WAAS,UAAM,kDAAoB;AAEnC,MAAI,oBAAoB;AACxB,MAAI,oBAAoB;AAGxB,aACI,YAAW;AACP,QAAI,qBAAqB,mBAAmB;AACxC;IACJ;AAEA,QAAI,CAAC,mBAAmB;AACpB,UAAI,SAAS;AAET,cAAM,QAAQ,QAAO;AACrB,kBAAU;MACd;AAEA,YAAM,mBAAmB,UAAM,gDAAmB,OAAO,QAAQ,IAAI;AAErE,UAAI,kBAAkB;AAElB,mBAAW,MAAM,OAAO,wBAAwB,OAAO,QAAQ,IAAI,KAAK;AACxE,kBAAU,IAAI,QAAS;UACnB,YAAY,OAAO;UACnB,QAAQ;YACJ,OAAO,wBAAC,SAAgB;YAExB,GAFO;YAGP,OAAO,wBAAC,SAAgB;YAExB,GAFO;YAGP,MAAM,wBAAC,SAAgB;YAEvB,GAFM;YAGN,MAAM,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;YACN,OAAO,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;;UAEX,WAAW,mCAAW;AAClB,gCAAoB;AACpB,gBAAI,qBAAqB,OAAO,aAAa,YAAY;AACrD,kBAAI;AACA,sBAAM,kBAAkB,MAAM;cAClC,QAAQ;cAER;AACA,qBAAO,KAAK,SAAS;gBACjB;gBACA;gBACA,WAAW;gBACX,eAAe,OAAO,QAAQ;gBAC9B;eACH;YACL;UACJ,GAhBW;SAiBd;MACL,OAAO;AACH,gBAAQ,IACJ,4BAA4B,MAAM,QAAQ,OAAO,QAAQ,IAAI,IAAI,OAAO,QAAQ,KAAK,KAAK,IAAI,IAAI,OAAO,QAAQ,IAAI,IAAI,MAAM,QAAQ,OAAO,QAAQ,IAAI,IAAI,OAAO,QAAQ,KAAK,KAAK,IAAI,IAAI,OAAO,QAAQ,IAAI,IAAI,OAAO,QAAQ,IAAI,GAAG;AAEhP,YAAI,WAAW;AACX,qBAAW;YACP;YACA;YACA,WAAW;YACX,eAAe,OAAO,QAAQ;YAC9B;WACH;AACD,qBAAW;QACf,OAAO;AACH,iBAAO,KAAK,oBAAoB,uCAAW,uBAAuB;QACtE;MACJ;IACJ;AAEA,QAAI,CAAC,mBAAmB;AACpB,UAAI,QAAQ;AAER,cAAM,OAAO,QAAO;AACpB,iBAAS;MACb;AAEA,YAAM,kBAAkB,UAAM,+CAAkB,OAAO,OAAO,IAAI;AAElE,UAAI,iBAAiB;AAEjB,kBAAU,MAAM,OAAO,uBAAuB,OAAO,OAAO,IAAI,KAAK;AAErE,iBAAS,IAAI,OAAQ;UACjB,YAAY,OAAO;UACnB,QAAQ;YACJ,OAAO,wBAAC,SAAgB;YAExB,GAFO;YAGP,OAAO,wBAAC,SAAgB;YAExB,GAFO;YAGP,MAAM,wBAAC,SAAgB;YAEvB,GAFM;YAGN,MAAM,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;YACN,OAAO,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;;UAEX,WAAW,mCAAW;AAClB,gCAAoB;AACpB,gBAAI,qBAAqB,OAAO,aAAa,YAAY;AACrD,kBAAI;AACA,sBAAM,kBAAkB,MAAM;cAClC,QAAQ;cAER;AACA,qBAAO,KAAK,SAAS;gBACjB;gBACA;gBACA,WAAW;gBACX,eAAe,OAAO,QAAQ;gBAC9B;eACH;YACL;UACJ,GAhBW;;;UAmBX,QAAQ,wBAAC,IAAI,QAAQ,QAAQ,SAAS,IAAI,GAAG,GAArC;SACX;AAED,eAAO,WAAW;MACtB,OAAO;AACH,YAAI,QAAQ;AAER,gBAAO,OAA6B,QAAO;AAC3C,mBAAS;QACb;AACA,YAAI,SAAS;AAET,gBAAM,QAAQ,QAAO;AACrB,oBAAU;QACd;AACA,gBAAQ,IACJ,2BAA2B,MAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,IAAI,IAAI,MAAM,QAAQ,OAAO,OAAO,IAAI,IAAI,OAAO,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,IAAI,IAAI,OAAO,OAAO,IAAI,GAAG;AAExO,YAAI,WAAW;AACX,sBACI,SAAS;YACL;YACA;YACA,WAAW;YACX,eAAe,OAAO,QAAQ;YAC9B;WACH;AACL,qBAAW;QACf,OAAO;AACH,iBAAO,KAAK,oBAAoB,uCAAW,uBAAuB;QACtE;MACJ;IACJ;AAEA,cAAM,gBAAAC,aAAM,OAAO,WAAW,OAAU,OAAO,QAAQ,cAAc;AAGrE,QAAI,qBAAqB,mBAAmB;AACxC;IACJ;AAEA,YAAQ,IAAI,yCAAyC;AACrD,QAAI,WAAW;AACX,iBAAW;;QAEP,SAAS;QACT,QAAQ;QACR,WAAW;QACX,eAAe,OAAO,QAAQ;QAC9B;OACH;AACD,iBAAW;IACf,OAAO;AACH,aAAO,KAAK,oBAAoB,uCAAW,uBAAuB;IACtE;EACJ,GACA,OAAO,WAAW,OAAO,QAAQ,iBAAiB,CAAC;AAIvD,YAAU,IAAI,QAAQ;IAClB,YAAY,OAAO;IACnB,QAAQ;MACJ,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,MAAM,wBAAC,SAAgB;MAEvB,GAFM;MAGN,MAAM,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;MACN,OAAO,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;;IAEX,WAAW,mCAAW;AAClB,UAAI,mBAAmB;AACnB;MACJ;AACA,0BAAoB;AAEpB,UAAI,qBAAqB,OAAO,aAAa,YAAY;AACrD,cAAM,YAAY,MAAM,mBAAmB,SAAS;AACpD,YAAI;AACA,gBAAM,kBAAkB,MAAM;QAClC,QAAQ;QAER;AACA,iBAAS,EAAE,SAAmB,QAAiB,WAAW,eAAe,OAAO,QAAQ,MAAM,OAAM,CAAE;MAC1G;IACJ,GAfW;GAgBd;AAED,WAAS,IAAI,OAAO;IAChB,YAAY,OAAO;IACnB,QAAQ;MACJ,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,MAAM,wBAAC,SAAgB;MAEvB,GAFM;MAGN,MAAM,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;MACN,OAAO,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;;IAEX,WAAW,mCAAW;AAClB,UAAI,mBAAmB;AACnB;MACJ;AACA,0BAAoB;AAEpB,UAAI,qBAAqB,OAAO,aAAa,YAAY;AACrD,cAAM,YAAY,MAAM,mBAAmB,SAAS;AACpD,YAAI;AACA,gBAAM,kBAAkB,MAAM;QAClC,QAAQ;QAER;AACA,iBAAS,EAAE,SAAmB,QAAiB,WAAW,eAAe,OAAO,QAAQ,MAAM,OAAM,CAAE;MAC1G;IACJ,GAfW;;IAiBX,QAAQ,wBAAC,IAAI,UAAU,QAAQ,SAAS,IAAI,KAAK,GAAzC;GACX;AACL;AAjSsB;AAyShB,SAAU,eAAe,WAAoB,QAAwB;AACvE,SAAO,IAAI,QAAQ,aAAW,UAAU,WAAW,UAAU,CAAA,GAAI,CAAAC,YAAU,QAAQA,OAAM,CAAC,CAAC;AAC/F;AAFgB;AAOhB,eAAsB,iBAAc;AAChC,MAAI,SAAS;AACT,UAAM,QAAQ,QAAO;AACrB,cAAU;EACd;AACA,MAAI,QAAQ;AACR,UAAM,OAAO,QAAO;AACpB,aAAS;EACb;AACA,MAAI,SAAS;AACT,cAAU;EACd;AACA,MAAI,QAAQ;AACR,aAAS;EACb;AAEA,MAAI,eAAe;AACf,UAAM,cAAc,WAAU;EAClC;AACJ;AAnBsB;AA0BtB,eAAsB,oBAAoB,UAAiB;AACvD,QAAM,eAAc;AACpB,YAAM,gBAAAD,YAAK,GAAK;AAChB,UAAQ,KAAK,QAAQ;AACzB;AAJsB;AAWtB,SAAS,kBAAkB,QAA2B;AAClD,QAAM,YAAY,gBAAAD,QAAG,aAAa,iBAAAG,QAAK,KAAK,kCAAM,iBAAgB,GAAI,iBAAiB,CAAC;AACxF,QAAM,cAAc,gBAAAH,QAAG,aAAa,iBAAAG,QAAK,KAAK,kCAAM,iBAAgB,GAAI,cAAc,CAAC;AACvF,QAAM,WAAW,kCAAM,YAAW;AAElC,QAAM,iBAAwC;IAC1C,WAAW,eAAe,QAAQ;IAClC,cAAc,QAAQ,QAAQ;IAC9B,OAAO;IACP,KAAK;;MAED,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,OAAO,wBAAC,SAAgB;MAExB,GAFO;MAGP,MAAM,wBAAC,SAAgB;MAEvB,GAFM;MAGN,MAAM,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;MACN,OAAO,wBAAC,QAAgB,QAAQ,IAAI,GAAG,GAAhC;MACP,OAAO;;IAEX,gBAAgB;IAChB,eAAe;IACf,mBAAmB,UAAU,OAAO;;AAGxC,kBAAgB,IAAI,iCAAc,cAAc;AAChD,gBAAc,WAAW,UAAU,OAAO,SAAS,kCAAM,iBAAgB,CAAE;AAC3E,gBAAc,WAAW,OAAO,SAAS,kCAAM,iBAAgB,CAAE;AAEjE,gBAAc,sBAAsB,SAAS,MAAM;AAEnD,SAAO,cAAc,YAAY,SAAS;AAC9C;AApCS;AA2CT,eAAe,mBAAmB,WAAkB;AAChD,MAAI,CAAC,WAAW,CAAC,QAAQ;AAErB,WAAO;EACX;AACA,MAAI,WAAW;AACX,WAAO;EACX;AAEA,QAAM,gBAAgB,CAAE,MAAM,kCAAM,cAAc,SAAS,MAAM;AAEjE,SAAO;AACX;AAZe;",
|
|
6
|
+
"names": ["fs", "wait", "params", "path"]
|
|
7
7
|
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Format number in seconds to time text
|
|
3
3
|
*
|
|
4
|
-
* @param seconds
|
|
4
|
+
* @param seconds The number of seconds to format
|
|
5
5
|
*/
|
|
6
6
|
export declare function formatSeconds(seconds: number): string;
|
|
7
7
|
/**
|
|
8
8
|
* Format bytes to MB or GB
|
|
9
9
|
*
|
|
10
|
-
* @param bytes
|
|
10
|
+
* @param bytes The number of bytes to format
|
|
11
11
|
*/
|
|
12
12
|
export declare function formatRam(bytes: number): string;
|
|
13
13
|
/**
|
|
14
14
|
* Format speed
|
|
15
15
|
*
|
|
16
|
-
* @param mhz
|
|
16
|
+
* @param mhz The speed in MHz
|
|
17
17
|
*/
|
|
18
18
|
export declare function formatSpeed(mhz: number): string;
|
|
19
19
|
/**
|
|
20
20
|
* Format bytes to human readable form
|
|
21
21
|
*
|
|
22
|
-
* @param bytes
|
|
22
|
+
* @param bytes The number of bytes to format
|
|
23
23
|
*/
|
|
24
24
|
export declare function formatBytes(bytes: number): string;
|
|
25
25
|
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -49,6 +50,7 @@ function formatSeconds(seconds) {
|
|
|
49
50
|
text += `${hours}:${minutes}:${_seconds}`;
|
|
50
51
|
return text;
|
|
51
52
|
}
|
|
53
|
+
__name(formatSeconds, "formatSeconds");
|
|
52
54
|
function formatRam(bytes) {
|
|
53
55
|
const GB = Math.floor(bytes / (1024 * 1024 * 1024) * 10) / 10;
|
|
54
56
|
bytes %= 1024 * 1024 * 1024;
|
|
@@ -61,9 +63,11 @@ function formatRam(bytes) {
|
|
|
61
63
|
}
|
|
62
64
|
return text;
|
|
63
65
|
}
|
|
66
|
+
__name(formatRam, "formatRam");
|
|
64
67
|
function formatSpeed(mhz) {
|
|
65
68
|
return `${mhz} MHz`;
|
|
66
69
|
}
|
|
70
|
+
__name(formatSpeed, "formatSpeed");
|
|
67
71
|
function formatBytes(bytes) {
|
|
68
72
|
if (Math.abs(bytes) < 1024) {
|
|
69
73
|
return `${bytes} B`;
|
|
@@ -76,6 +80,7 @@ function formatBytes(bytes) {
|
|
|
76
80
|
} while (Math.abs(bytes) >= 1024 && u < units.length - 1);
|
|
77
81
|
return `${bytes.toFixed(1)} ${units[u]}`;
|
|
78
82
|
}
|
|
83
|
+
__name(formatBytes, "formatBytes");
|
|
79
84
|
// Annotate the CommonJS export names for ESM import in node:
|
|
80
85
|
0 && (module.exports = {
|
|
81
86
|
formatBytes,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/setup/formatters.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * Format number in seconds to time text\n *\n * @param seconds\n */\nexport function formatSeconds(seconds: number): string {\n let _seconds: number | string = seconds;\n\n const days = Math.floor(_seconds / (3_600 * 24));\n _seconds %= 3_600 * 24;\n let hours: number | string = Math.floor(_seconds / 3_600);\n if (hours < 10) {\n hours = `0${hours}`;\n }\n _seconds %= 3_600;\n let minutes: number | string = Math.floor(_seconds / 60);\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n _seconds %= 60;\n _seconds = Math.floor(_seconds);\n if (_seconds < 10) {\n _seconds = `0${_seconds}`;\n }\n let text = '';\n if (days) {\n text += `${days}d. `;\n }\n text += `${hours}:${minutes}:${_seconds}`;\n\n return text;\n}\n\n/**\n * Format bytes to MB or GB\n *\n * @param bytes\n */\nexport function formatRam(bytes: number): string {\n const GB = Math.floor((bytes / (1024 * 1024 * 1024)) * 10) / 10;\n bytes %= 1024 * 1024 * 1024;\n const MB = Math.floor((bytes / (1024 * 1024)) * 10) / 10;\n let text = '';\n if (GB > 1) {\n text += `${GB} GB`;\n } else {\n text += `${MB} MB`;\n }\n\n return text;\n}\n\n/**\n * Format speed\n *\n * @param mhz\n */\nexport function formatSpeed(mhz: number): string {\n return `${mhz} MHz`;\n}\n\n/**\n * Format bytes to human readable form\n *\n * @param bytes\n */\nexport function formatBytes(bytes: number): string {\n if (Math.abs(bytes) < 1024) {\n return `${bytes} B`;\n }\n const units = ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n let u = -1;\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n return `${bytes.toFixed(1)} ${units[u]}`;\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/**\n * Format number in seconds to time text\n *\n * @param seconds The number of seconds to format\n */\nexport function formatSeconds(seconds: number): string {\n let _seconds: number | string = seconds;\n\n const days = Math.floor(_seconds / (3_600 * 24));\n _seconds %= 3_600 * 24;\n let hours: number | string = Math.floor(_seconds / 3_600);\n if (hours < 10) {\n hours = `0${hours}`;\n }\n _seconds %= 3_600;\n let minutes: number | string = Math.floor(_seconds / 60);\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n _seconds %= 60;\n _seconds = Math.floor(_seconds);\n if (_seconds < 10) {\n _seconds = `0${_seconds}`;\n }\n let text = '';\n if (days) {\n text += `${days}d. `;\n }\n text += `${hours}:${minutes}:${_seconds}`;\n\n return text;\n}\n\n/**\n * Format bytes to MB or GB\n *\n * @param bytes The number of bytes to format\n */\nexport function formatRam(bytes: number): string {\n const GB = Math.floor((bytes / (1024 * 1024 * 1024)) * 10) / 10;\n bytes %= 1024 * 1024 * 1024;\n const MB = Math.floor((bytes / (1024 * 1024)) * 10) / 10;\n let text = '';\n if (GB > 1) {\n text += `${GB} GB`;\n } else {\n text += `${MB} MB`;\n }\n\n return text;\n}\n\n/**\n * Format speed\n *\n * @param mhz The speed in MHz\n */\nexport function formatSpeed(mhz: number): string {\n return `${mhz} MHz`;\n}\n\n/**\n * Format bytes to human readable form\n *\n * @param bytes The number of bytes to format\n */\nexport function formatBytes(bytes: number): string {\n if (Math.abs(bytes) < 1024) {\n return `${bytes} B`;\n }\n const units = ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n let u = -1;\n do {\n bytes /= 1024;\n ++u;\n } while (Math.abs(bytes) >= 1024 && u < units.length - 1);\n return `${bytes.toFixed(1)} ${units[u]}`;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;AAKM,SAAU,cAAc,SAAe;AACzC,MAAI,WAA4B;AAEhC,QAAM,OAAO,KAAK,MAAM,YAAY,OAAQ,GAAG;AAC/C,cAAY,OAAQ;AACpB,MAAI,QAAyB,KAAK,MAAM,WAAW,IAAK;AACxD,MAAI,QAAQ,IAAI;AACZ,YAAQ,IAAI,KAAK;EACrB;AACA,cAAY;AACZ,MAAI,UAA2B,KAAK,MAAM,WAAW,EAAE;AACvD,MAAI,UAAU,IAAI;AACd,cAAU,IAAI,OAAO;EACzB;AACA,cAAY;AACZ,aAAW,KAAK,MAAM,QAAQ;AAC9B,MAAI,WAAW,IAAI;AACf,eAAW,IAAI,QAAQ;EAC3B;AACA,MAAI,OAAO;AACX,MAAI,MAAM;AACN,YAAQ,GAAG,IAAI;EACnB;AACA,UAAQ,GAAG,KAAK,IAAI,OAAO,IAAI,QAAQ;AAEvC,SAAO;AACX;AA1BgB;AAiCV,SAAU,UAAU,OAAa;AACnC,QAAM,KAAK,KAAK,MAAO,SAAS,OAAO,OAAO,QAAS,EAAE,IAAI;AAC7D,WAAS,OAAO,OAAO;AACvB,QAAM,KAAK,KAAK,MAAO,SAAS,OAAO,QAAS,EAAE,IAAI;AACtD,MAAI,OAAO;AACX,MAAI,KAAK,GAAG;AACR,YAAQ,GAAG,EAAE;EACjB,OAAO;AACH,YAAQ,GAAG,EAAE;EACjB;AAEA,SAAO;AACX;AAZgB;AAmBV,SAAU,YAAY,KAAW;AACnC,SAAO,GAAG,GAAG;AACjB;AAFgB;AASV,SAAU,YAAY,OAAa;AACrC,MAAI,KAAK,IAAI,KAAK,IAAI,MAAM;AACxB,WAAO,GAAG,KAAK;EACnB;AACA,QAAM,QAAQ,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AACrE,MAAI,IAAI;AACR,KAAG;AACC,aAAS;AACT,MAAE;EACN,SAAS,KAAK,IAAI,KAAK,KAAK,QAAQ,IAAI,MAAM,SAAS;AACvD,SAAO,GAAG,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;AAC1C;AAXgB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
9
|
var __export = (target, all) => {
|
|
9
10
|
for (var name in all)
|
|
10
11
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -37,6 +38,9 @@ var import_js_controller_common = require("@iobroker/js-controller-common");
|
|
|
37
38
|
const PORT = 50005;
|
|
38
39
|
const MULTICAST_ADDR = "239.255.255.250";
|
|
39
40
|
class MHClient {
|
|
41
|
+
static {
|
|
42
|
+
__name(this, "MHClient");
|
|
43
|
+
}
|
|
40
44
|
/** Incremental message id used for request/response correlation */
|
|
41
45
|
id = 1;
|
|
42
46
|
timer = null;
|
|
@@ -233,12 +237,12 @@ class MHClient {
|
|
|
233
237
|
}
|
|
234
238
|
console.warn(`Multihost discovery client: Unexpected message: ${JSON.stringify(msg)}`);
|
|
235
239
|
return false;
|
|
236
|
-
}, function onFinished(err) {
|
|
240
|
+
}, /* @__PURE__ */ __name(function onFinished(err) {
|
|
237
241
|
if (callCb) {
|
|
238
242
|
callback(err);
|
|
239
243
|
callCb = false;
|
|
240
244
|
}
|
|
241
|
-
});
|
|
245
|
+
}, "onFinished"));
|
|
242
246
|
}
|
|
243
247
|
}
|
|
244
248
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/setup/multihostClient.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Multihost discovery client used by the CLI setup utilities.\n *\n * This module implements a lightweight UDP-based discovery protocol (multicast/broadcast)\n * to find other ioBroker hosts on the local network. It supports an optional\n * password-based handshake and returns the objects/states database configuration\n * necessary for remote setup and connection.\n */\n\nimport dgram from 'node:dgram';\nimport * as crypto from 'node:crypto';\n\nimport { tools } from '@iobroker/js-controller-common';\n\nconst PORT = 50005;\nconst MULTICAST_ADDR = '239.255.255.250';\n\n/**\n * Message structure received from a multihost server during discovery or connect.\n */\nexport interface ReceivedMessage {\n /** Command name, e.g. 'browse' */\n cmd: 'browse' | 'auth';\n /** Unique message identifier */\n id: number;\n /** Result string returned by server: 'ok', 'not authenticated', etc. */\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n result: 'ok' | 'not authenticated' | string;\n /** Optional IP address of responder */\n ip?: string;\n /** Optional hostname of responder */\n hostname?: string;\n /** Informational text */\n info?: string;\n /** Whether responder is a slave */\n slave?: boolean;\n /** Authentication token (when required) */\n auth?: string;\n /** Salt used for password hashing during authentication */\n salt?: string;\n /** The states config of ioBroker.json */\n states?: ioBroker.StatesDatabaseOptions;\n /** The objects config of ioBroker.json */\n objects?: ioBroker.ObjectsDatabaseOptions;\n}\n\nexport type BrowseResultEntry = Partial<ReceivedMessage>;\n\n/**\n * MHClient implements browsing and connecting to multihost-enabled ioBroker hosts.\n *\n * Usage:\n * - Create an instance of MHClient\n * - Call `browse(timeout, isDebug)` to discover hosts\n * - Call `connect(ip, password, callback)` to retrieve configs from a host\n */\nexport class MHClient {\n /** Incremental message id used for request/response correlation */\n private id: number = 1;\n private timer: NodeJS.Timeout | null = null;\n private server: dgram.Socket | undefined;\n\n /**\n * Stops the MH server and clears any pending timers.\n *\n * Cleans up the UDP socket and associated timeout to ensure no resources\n * are leaked after browsing or connect operations finish.\n */\n private stopServer(): void {\n if (this.server) {\n try {\n this.server.close();\n } catch {\n // OK\n }\n this.server = undefined;\n }\n\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n /**\n * Calculate SHA-256 hash from secret and salt.\n *\n * @param secret - Multihost secret/password\n * @param salt - Salt provided by server\n * @param callback - Called with hex-encoded SHA-256 result\n */\n private sha(secret: string, salt: string, callback: (sha: string) => void): void {\n // calculate sha256\n const hash = crypto.createHash('sha256');\n\n hash.on('readable', function () {\n const data = hash.read();\n if (data) {\n callback(data.toString('hex'));\n }\n });\n\n hash.write(secret + salt);\n hash.end();\n }\n\n /**\n * Starts a UDP server socket used for discovery and authentication.\n *\n * @param isBroadcast - If true, enables broadcast mode on the socket.\n * @param timeout - Time in ms after which the server will be automatically closed.\n * @param onReady - Called once the socket is bound and ready to send.\n * @param onMessage - Handler invoked for each parsed message. Return true to stop the server.\n * @param onFinished - Called when the server stops or an error occurs.\n */\n private startServer(\n isBroadcast: boolean,\n timeout: number,\n onReady: () => void,\n onMessage: (msg: ReceivedMessage, rinfo: dgram.RemoteInfo) => boolean,\n onFinished: (err?: Error) => void,\n ): void {\n if (this.server) {\n onFinished(new Error('Some operation still active'));\n return;\n }\n this.server = dgram.createSocket('udp4');\n timeout = timeout || 2_000;\n\n this.timer = setTimeout(() => {\n if (this.server) {\n this.stopServer();\n onFinished();\n }\n }, timeout);\n\n this.server.on('error', err => {\n if (this.server) {\n this.stopServer();\n onFinished(err);\n }\n });\n\n this.server.on('message', (msg, rinfo) => {\n try {\n const message: ReceivedMessage = JSON.parse(msg.toString());\n if (this.server) {\n if (onMessage(message, rinfo)) {\n this.stopServer();\n }\n }\n } catch {\n console.error(`Multihost discovery client: Invalid answer: ${msg.toString()}`);\n }\n });\n\n this.server.on('listening', () => {\n if (isBroadcast) {\n this.server!.setBroadcast(true);\n }\n onReady();\n });\n\n this.server.bind();\n }\n\n /**\n * Browse for multihost servers.\n *\n * Sends a multicast/broadcast \"browse\" request and collects responses until timeout.\n *\n * @param timeout - Milliseconds to wait for responses.\n * @param isDebug - If true, include local addresses and log received messages.\n * @returns Promise resolving to an array of discovered hosts (partial ReceivedMessage entries).\n */\n browse(timeout: number, isDebug: boolean): Promise<BrowseResultEntry[]> {\n const result: BrowseResultEntry[] = [];\n const ownIps = tools.findIPs();\n\n return new Promise((resolve, reject) => {\n this.startServer(\n true,\n timeout,\n () => {\n const text = JSON.stringify({\n cmd: 'browse',\n id: ++this.id,\n });\n this.server!.send(text, 0, text.length, PORT, MULTICAST_ADDR);\n },\n (msg, rinfo) => {\n // ignore own answers\n if (isDebug || (!tools.isLocalAddress(rinfo.address) && !ownIps.includes(rinfo.address))) {\n if (msg.result === 'not authenticated') {\n result.push({\n ip: rinfo.address,\n hostname: rinfo.address,\n info: 'authentication required',\n auth: msg.auth,\n });\n } else if (msg.result === 'ok') {\n result.push(msg);\n } else {\n console.log(`Multihost discovery client: Unknown answer: ${JSON.stringify(msg)}`);\n }\n }\n if (isDebug) {\n console.log(JSON.stringify(msg));\n }\n\n return false;\n },\n err => {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(result);\n },\n );\n });\n }\n\n /**\n * Connect to a single multihost server and retrieve its objects/states configuration.\n *\n * Performs an optional password-based authentication handshake if the server requires it.\n *\n * @param ip - IP address of the server to connect to.\n * @param password - Password to use for authentication (if required). Pass empty string to skip.\n * @param callback - Callback called with (err, objectsConfig, statesConfig, address).\n */\n connect(\n ip: string,\n password: string,\n callback: (\n err: Error | undefined,\n objectsConfig?: ioBroker.ObjectsDatabaseOptions,\n statesConfig?: ioBroker.StatesDatabaseOptions,\n address?: string,\n ) => void,\n ): void {\n let callCb = true;\n\n this.startServer(\n false,\n 2_000,\n () => {\n const text = JSON.stringify({\n cmd: 'browse',\n id: ++this.id,\n });\n this.server!.send(text, 0, text.length, PORT, ip);\n },\n (msg, rinfo) => {\n // we expect only one answer\n if (msg.cmd === 'browse' && msg.id === this.id) {\n if (msg.result === 'ok') {\n if (callCb) {\n if (!msg.objects) {\n callback(new Error(`Invalid configuration received: ${JSON.stringify(msg)}`));\n callCb = false;\n } else if (!msg.states) {\n callback(new Error(`Invalid configuration received: ${JSON.stringify(msg)}`));\n callCb = false;\n } else if (typeof callback === 'function') {\n callback(undefined, msg.objects, msg.states, rinfo.address);\n }\n }\n } else if (msg.result === 'not authenticated') {\n if (!password) {\n if (callCb) {\n callback(new Error(`not authenticated: ${JSON.stringify(msg)}`));\n callCb = false;\n }\n } else {\n this.sha(password, msg.salt!, shaText => {\n // send password\n const text = JSON.stringify({\n cmd: 'browse',\n id: ++this.id,\n password: shaText,\n });\n this.server!.send(text, 0, text.length, PORT, ip);\n });\n return false;\n }\n } else if (msg.result === 'invalid password') {\n if (callCb) {\n callback(new Error('invalid password'));\n callCb = false;\n }\n } else {\n console.log(msg.result);\n }\n return true;\n }\n console.warn(`Multihost discovery client: Unexpected message: ${JSON.stringify(msg)}`);\n\n return false;\n },\n function onFinished(err) {\n if (callCb) {\n callback(err);\n callCb = false;\n }\n },\n );\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AASA,wBAAkB;AAClB,aAAwB;AAExB,kCAAsB;AAEtB,MAAM,OAAO;AACb,MAAM,iBAAiB;AAyCjB,MAAO,SAAQ;EAxDrB,OAwDqB;;;;EAET,KAAa;EACb,QAA+B;EAC/B;;;;;;;EAQA,aAAU;AACd,QAAI,KAAK,QAAQ;AACb,UAAI;AACA,aAAK,OAAO,MAAK;MACrB,QAAQ;MAER;AACA,WAAK,SAAS;IAClB;AAEA,QAAI,KAAK,OAAO;AACZ,mBAAa,KAAK,KAAK;AACvB,WAAK,QAAQ;IACjB;EACJ;;;;;;;;EASQ,IAAI,QAAgB,MAAc,UAA+B;AAErE,UAAM,OAAO,OAAO,WAAW,QAAQ;AAEvC,SAAK,GAAG,YAAY,WAAA;AAChB,YAAM,OAAO,KAAK,KAAI;AACtB,UAAI,MAAM;AACN,iBAAS,KAAK,SAAS,KAAK,CAAC;MACjC;IACJ,CAAC;AAED,SAAK,MAAM,SAAS,IAAI;AACxB,SAAK,IAAG;EACZ;;;;;;;;;;EAWQ,YACJ,aACA,SACA,SACA,WACA,YAAiC;AAEjC,QAAI,KAAK,QAAQ;AACb,iBAAW,IAAI,MAAM,6BAA6B,CAAC;AACnD;IACJ;AACA,SAAK,SAAS,kBAAAA,QAAM,aAAa,MAAM;AACvC,cAAU,WAAW;AAErB,SAAK,QAAQ,WAAW,MAAK;AACzB,UAAI,KAAK,QAAQ;AACb,aAAK,WAAU;AACf,mBAAU;MACd;IACJ,GAAG,OAAO;AAEV,SAAK,OAAO,GAAG,SAAS,SAAM;AAC1B,UAAI,KAAK,QAAQ;AACb,aAAK,WAAU;AACf,mBAAW,GAAG;MAClB;IACJ,CAAC;AAED,SAAK,OAAO,GAAG,WAAW,CAAC,KAAK,UAAS;AACrC,UAAI;AACA,cAAM,UAA2B,KAAK,MAAM,IAAI,SAAQ,CAAE;AAC1D,YAAI,KAAK,QAAQ;AACb,cAAI,UAAU,SAAS,KAAK,GAAG;AAC3B,iBAAK,WAAU;UACnB;QACJ;MACJ,QAAQ;AACJ,gBAAQ,MAAM,+CAA+C,IAAI,SAAQ,CAAE,EAAE;MACjF;IACJ,CAAC;AAED,SAAK,OAAO,GAAG,aAAa,MAAK;AAC7B,UAAI,aAAa;AACb,aAAK,OAAQ,aAAa,IAAI;MAClC;AACA,cAAO;IACX,CAAC;AAED,SAAK,OAAO,KAAI;EACpB;;;;;;;;;;EAWA,OAAO,SAAiB,SAAgB;AACpC,UAAM,SAA8B,CAAA;AACpC,UAAM,SAAS,kCAAM,QAAO;AAE5B,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAU;AACnC,WAAK,YACD,MACA,SACA,MAAK;AACD,cAAM,OAAO,KAAK,UAAU;UACxB,KAAK;UACL,IAAI,EAAE,KAAK;SACd;AACD,aAAK,OAAQ,KAAK,MAAM,GAAG,KAAK,QAAQ,MAAM,cAAc;MAChE,GACA,CAAC,KAAK,UAAS;AAEX,YAAI,WAAY,CAAC,kCAAM,eAAe,MAAM,OAAO,KAAK,CAAC,OAAO,SAAS,MAAM,OAAO,GAAI;AACtF,cAAI,IAAI,WAAW,qBAAqB;AACpC,mBAAO,KAAK;cACR,IAAI,MAAM;cACV,UAAU,MAAM;cAChB,MAAM;cACN,MAAM,IAAI;aACb;UACL,WAAW,IAAI,WAAW,MAAM;AAC5B,mBAAO,KAAK,GAAG;UACnB,OAAO;AACH,oBAAQ,IAAI,+CAA+C,KAAK,UAAU,GAAG,CAAC,EAAE;UACpF;QACJ;AACA,YAAI,SAAS;AACT,kBAAQ,IAAI,KAAK,UAAU,GAAG,CAAC;QACnC;AAEA,eAAO;MACX,GACA,SAAM;AACF,YAAI,KAAK;AACL,iBAAO,GAAG;AACV;QACJ;AAEA,gBAAQ,MAAM;MAClB,CAAC;IAET,CAAC;EACL;;;;;;;;;;EAWA,QACI,IACA,UACA,UAKS;AAET,QAAI,SAAS;AAEb,SAAK,YACD,OACA,KACA,MAAK;AACD,YAAM,OAAO,KAAK,UAAU;QACxB,KAAK;QACL,IAAI,EAAE,KAAK;OACd;AACD,WAAK,OAAQ,KAAK,MAAM,GAAG,KAAK,QAAQ,MAAM,EAAE;IACpD,GACA,CAAC,KAAK,UAAS;AAEX,UAAI,IAAI,QAAQ,YAAY,IAAI,OAAO,KAAK,IAAI;AAC5C,YAAI,IAAI,WAAW,MAAM;AACrB,cAAI,QAAQ;AACR,gBAAI,CAAC,IAAI,SAAS;AACd,uBAAS,IAAI,MAAM,mCAAmC,KAAK,UAAU,GAAG,CAAC,EAAE,CAAC;AAC5E,uBAAS;YACb,WAAW,CAAC,IAAI,QAAQ;AACpB,uBAAS,IAAI,MAAM,mCAAmC,KAAK,UAAU,GAAG,CAAC,EAAE,CAAC;AAC5E,uBAAS;YACb,WAAW,OAAO,aAAa,YAAY;AACvC,uBAAS,QAAW,IAAI,SAAS,IAAI,QAAQ,MAAM,OAAO;YAC9D;UACJ;QACJ,WAAW,IAAI,WAAW,qBAAqB;AAC3C,cAAI,CAAC,UAAU;AACX,gBAAI,QAAQ;AACR,uBAAS,IAAI,MAAM,sBAAsB,KAAK,UAAU,GAAG,CAAC,EAAE,CAAC;AAC/D,uBAAS;YACb;UACJ,OAAO;AACH,iBAAK,IAAI,UAAU,IAAI,MAAO,aAAU;AAEpC,oBAAM,OAAO,KAAK,UAAU;gBACxB,KAAK;gBACL,IAAI,EAAE,KAAK;gBACX,UAAU;eACb;AACD,mBAAK,OAAQ,KAAK,MAAM,GAAG,KAAK,QAAQ,MAAM,EAAE;YACpD,CAAC;AACD,mBAAO;UACX;QACJ,WAAW,IAAI,WAAW,oBAAoB;AAC1C,cAAI,QAAQ;AACR,qBAAS,IAAI,MAAM,kBAAkB,CAAC;AACtC,qBAAS;UACb;QACJ,OAAO;AACH,kBAAQ,IAAI,IAAI,MAAM;QAC1B;AACA,eAAO;MACX;AACA,cAAQ,KAAK,mDAAmD,KAAK,UAAU,GAAG,CAAC,EAAE;AAErF,aAAO;IACX,GACA,gCAAS,WAAW,KAAG;AACnB,UAAI,QAAQ;AACR,iBAAS,GAAG;AACZ,iBAAS;MACb;IACJ,GALA,aAKC;EAET;;",
|
|
6
6
|
"names": ["dgram"]
|
|
7
7
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check whether the given plugin reports data to an external service (e.g. Sentry)
|
|
3
|
+
*
|
|
4
|
+
* @param name The plugin name to check
|
|
5
|
+
*/
|
|
1
6
|
export declare function isReportingPlugin(name: string): boolean;
|
|
2
7
|
export declare const PLUGIN_INFOS: {
|
|
3
8
|
readonly sentry: {
|
|
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
7
|
var __export = (target, all) => {
|
|
7
8
|
for (var name in all)
|
|
8
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -25,6 +26,7 @@ module.exports = __toCommonJS(pluginInfos_exports);
|
|
|
25
26
|
function isReportingPlugin(name) {
|
|
26
27
|
return name === "sentry";
|
|
27
28
|
}
|
|
29
|
+
__name(isReportingPlugin, "isReportingPlugin");
|
|
28
30
|
const PLUGIN_INFOS = {
|
|
29
31
|
sentry: {
|
|
30
32
|
headline: {
|