@hivedev/hivesdk 1.0.30 → 1.0.31
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/hive-server.cjs +62 -0
- package/hive-server.js +61 -0
- package/package.json +1 -1
package/hive-server.cjs
CHANGED
|
@@ -194,6 +194,7 @@ __export(server_exports, {
|
|
|
194
194
|
decryptFileWithPassword: () => decryptFileWithPassword,
|
|
195
195
|
encryptAndStoreFile: () => encryptAndStoreFile,
|
|
196
196
|
extractConfigurationForService: () => extractConfigurationForService,
|
|
197
|
+
findService: () => findService,
|
|
197
198
|
getAppDataDirectory: () => getAppDataDirectory,
|
|
198
199
|
getHostIp: () => getHostIp,
|
|
199
200
|
handleHiveRequests: () => handleHiveRequests,
|
|
@@ -949,11 +950,72 @@ async function handleHiveRequests(request, response, next) {
|
|
|
949
950
|
next();
|
|
950
951
|
}
|
|
951
952
|
}
|
|
953
|
+
|
|
954
|
+
// Server/Utility/FindService.js
|
|
955
|
+
var import_dgram = __toESM(require("dgram"), 1);
|
|
956
|
+
var TARGET_PORT = 49153;
|
|
957
|
+
var RESPONSE_TIMEOUT = 3e3;
|
|
958
|
+
async function findService(serviceName) {
|
|
959
|
+
const targetIp = process.env.HIVE_PORTAL_LAN_IP;
|
|
960
|
+
if (!targetIp) return { name: serviceName, urls: { local: "http://127.0.0.1:49152", remote: "" } };
|
|
961
|
+
const request = { serviceName };
|
|
962
|
+
const message = Buffer.from(JSON.stringify(request));
|
|
963
|
+
const socket = import_dgram.default.createSocket("udp4");
|
|
964
|
+
return await new Promise((resolve, reject) => {
|
|
965
|
+
let resolved = false;
|
|
966
|
+
socket.on("message", (msg, rinfo) => {
|
|
967
|
+
if (resolved) return;
|
|
968
|
+
try {
|
|
969
|
+
const parsed = JSON.parse(msg.toString());
|
|
970
|
+
if (parsed.name === serviceName && parsed.urls) {
|
|
971
|
+
resolved = true;
|
|
972
|
+
clearTimeout(timer);
|
|
973
|
+
socket.close();
|
|
974
|
+
resolve(parsed);
|
|
975
|
+
}
|
|
976
|
+
} catch {
|
|
977
|
+
}
|
|
978
|
+
});
|
|
979
|
+
socket.once("error", (err) => {
|
|
980
|
+
if (resolved) return;
|
|
981
|
+
resolved = true;
|
|
982
|
+
clearTimeout(timer);
|
|
983
|
+
socket.close();
|
|
984
|
+
resolve(null);
|
|
985
|
+
});
|
|
986
|
+
socket.bind(() => {
|
|
987
|
+
try {
|
|
988
|
+
socket.send(message, TARGET_PORT, targetIp, (err) => {
|
|
989
|
+
if (err && !resolved) {
|
|
990
|
+
resolved = true;
|
|
991
|
+
clearTimeout(timer);
|
|
992
|
+
socket.close();
|
|
993
|
+
resolve(null);
|
|
994
|
+
}
|
|
995
|
+
});
|
|
996
|
+
} catch {
|
|
997
|
+
if (!resolved) {
|
|
998
|
+
resolved = true;
|
|
999
|
+
clearTimeout(timer);
|
|
1000
|
+
socket.close();
|
|
1001
|
+
resolve(null);
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
});
|
|
1005
|
+
const timer = setTimeout(() => {
|
|
1006
|
+
if (resolved) return;
|
|
1007
|
+
resolved = true;
|
|
1008
|
+
socket.close();
|
|
1009
|
+
resolve(null);
|
|
1010
|
+
}, RESPONSE_TIMEOUT);
|
|
1011
|
+
});
|
|
1012
|
+
}
|
|
952
1013
|
// Annotate the CommonJS export names for ESM import in node:
|
|
953
1014
|
0 && (module.exports = {
|
|
954
1015
|
decryptFileWithPassword,
|
|
955
1016
|
encryptAndStoreFile,
|
|
956
1017
|
extractConfigurationForService,
|
|
1018
|
+
findService,
|
|
957
1019
|
getAppDataDirectory,
|
|
958
1020
|
getHostIp,
|
|
959
1021
|
handleHiveRequests,
|
package/hive-server.js
CHANGED
|
@@ -925,10 +925,71 @@ async function handleHiveRequests(request, response, next) {
|
|
|
925
925
|
next();
|
|
926
926
|
}
|
|
927
927
|
}
|
|
928
|
+
|
|
929
|
+
// Server/Utility/FindService.js
|
|
930
|
+
import dgram from "dgram";
|
|
931
|
+
var TARGET_PORT = 49153;
|
|
932
|
+
var RESPONSE_TIMEOUT = 3e3;
|
|
933
|
+
async function findService(serviceName) {
|
|
934
|
+
const targetIp = process.env.HIVE_PORTAL_LAN_IP;
|
|
935
|
+
if (!targetIp) return { name: serviceName, urls: { local: "http://127.0.0.1:49152", remote: "" } };
|
|
936
|
+
const request = { serviceName };
|
|
937
|
+
const message = Buffer.from(JSON.stringify(request));
|
|
938
|
+
const socket = dgram.createSocket("udp4");
|
|
939
|
+
return await new Promise((resolve, reject) => {
|
|
940
|
+
let resolved = false;
|
|
941
|
+
socket.on("message", (msg, rinfo) => {
|
|
942
|
+
if (resolved) return;
|
|
943
|
+
try {
|
|
944
|
+
const parsed = JSON.parse(msg.toString());
|
|
945
|
+
if (parsed.name === serviceName && parsed.urls) {
|
|
946
|
+
resolved = true;
|
|
947
|
+
clearTimeout(timer);
|
|
948
|
+
socket.close();
|
|
949
|
+
resolve(parsed);
|
|
950
|
+
}
|
|
951
|
+
} catch {
|
|
952
|
+
}
|
|
953
|
+
});
|
|
954
|
+
socket.once("error", (err) => {
|
|
955
|
+
if (resolved) return;
|
|
956
|
+
resolved = true;
|
|
957
|
+
clearTimeout(timer);
|
|
958
|
+
socket.close();
|
|
959
|
+
resolve(null);
|
|
960
|
+
});
|
|
961
|
+
socket.bind(() => {
|
|
962
|
+
try {
|
|
963
|
+
socket.send(message, TARGET_PORT, targetIp, (err) => {
|
|
964
|
+
if (err && !resolved) {
|
|
965
|
+
resolved = true;
|
|
966
|
+
clearTimeout(timer);
|
|
967
|
+
socket.close();
|
|
968
|
+
resolve(null);
|
|
969
|
+
}
|
|
970
|
+
});
|
|
971
|
+
} catch {
|
|
972
|
+
if (!resolved) {
|
|
973
|
+
resolved = true;
|
|
974
|
+
clearTimeout(timer);
|
|
975
|
+
socket.close();
|
|
976
|
+
resolve(null);
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
});
|
|
980
|
+
const timer = setTimeout(() => {
|
|
981
|
+
if (resolved) return;
|
|
982
|
+
resolved = true;
|
|
983
|
+
socket.close();
|
|
984
|
+
resolve(null);
|
|
985
|
+
}, RESPONSE_TIMEOUT);
|
|
986
|
+
});
|
|
987
|
+
}
|
|
928
988
|
export {
|
|
929
989
|
decryptFileWithPassword,
|
|
930
990
|
encryptAndStoreFile,
|
|
931
991
|
extractConfigurationForService,
|
|
992
|
+
findService,
|
|
932
993
|
getAppDataDirectory,
|
|
933
994
|
getHostIp,
|
|
934
995
|
handleHiveRequests,
|