@hivedev/hivesdk 1.0.30 → 1.0.32

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 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,
@@ -908,6 +909,34 @@ async function isLoggedInWithPermission(request, response, bSendResponse = false
908
909
  }
909
910
  }
910
911
 
912
+ // Server/RequestHandlers/SaveUserFilter.js
913
+ async function saveUserFilter(request, response) {
914
+ await parseRequestBody(request);
915
+ const filter = request.body;
916
+ request.body.permissionName = "FILTER_OPERATIONS";
917
+ if (await isLoggedInWithPermission(request, response, false)) {
918
+ console.log("Saving user filter...");
919
+ const saveUserFilteresponse = await fetch(
920
+ await getHiveUrl("/SaveUserFilter"),
921
+ {
922
+ method: "POST",
923
+ headers: { "Content-Type": "application/json" },
924
+ body: JSON.stringify(filter)
925
+ }
926
+ );
927
+ if (saveUserFilteresponse.status != 200) {
928
+ response.statusCode = 500;
929
+ response.end();
930
+ return;
931
+ }
932
+ response.writeHead(200, { "Content-Type": "text/plain" });
933
+ response.end("Success");
934
+ return;
935
+ }
936
+ response.statusCode = 401;
937
+ response.end("Unauthorized");
938
+ }
939
+
911
940
  // Server/HandleHiveRequests.js
912
941
  async function handleHiveRequests(request, response, next) {
913
942
  const { url, method } = request;
@@ -927,6 +956,9 @@ async function handleHiveRequests(request, response, next) {
927
956
  } else if (url === "/IsLoggedInWithPermission" && method === "POST") {
928
957
  await isLoggedInWithPermission(request, response, true);
929
958
  return;
959
+ } else if (url === "/SaveUserFilter" && method === "POST") {
960
+ await saveUserFilter(request, response);
961
+ return;
930
962
  } else if (url === "/hive-client.js") {
931
963
  const filePath = import_path5.default.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
932
964
  const stream = import_fs6.default.createReadStream(filePath);
@@ -949,11 +981,72 @@ async function handleHiveRequests(request, response, next) {
949
981
  next();
950
982
  }
951
983
  }
984
+
985
+ // Server/Utility/FindService.js
986
+ var import_dgram = __toESM(require("dgram"), 1);
987
+ var TARGET_PORT = 49153;
988
+ var RESPONSE_TIMEOUT = 3e3;
989
+ async function findService(serviceName) {
990
+ const targetIp = process.env.HIVE_PORTAL_LAN_IP;
991
+ if (!targetIp) return { name: serviceName, urls: { local: "http://127.0.0.1:49152", remote: "" } };
992
+ const request = { serviceName };
993
+ const message = Buffer.from(JSON.stringify(request));
994
+ const socket = import_dgram.default.createSocket("udp4");
995
+ return await new Promise((resolve, reject) => {
996
+ let resolved = false;
997
+ socket.on("message", (msg, rinfo) => {
998
+ if (resolved) return;
999
+ try {
1000
+ const parsed = JSON.parse(msg.toString());
1001
+ if (parsed.name === serviceName && parsed.urls) {
1002
+ resolved = true;
1003
+ clearTimeout(timer);
1004
+ socket.close();
1005
+ resolve(parsed);
1006
+ }
1007
+ } catch {
1008
+ }
1009
+ });
1010
+ socket.once("error", (err) => {
1011
+ if (resolved) return;
1012
+ resolved = true;
1013
+ clearTimeout(timer);
1014
+ socket.close();
1015
+ resolve(null);
1016
+ });
1017
+ socket.bind(() => {
1018
+ try {
1019
+ socket.send(message, TARGET_PORT, targetIp, (err) => {
1020
+ if (err && !resolved) {
1021
+ resolved = true;
1022
+ clearTimeout(timer);
1023
+ socket.close();
1024
+ resolve(null);
1025
+ }
1026
+ });
1027
+ } catch {
1028
+ if (!resolved) {
1029
+ resolved = true;
1030
+ clearTimeout(timer);
1031
+ socket.close();
1032
+ resolve(null);
1033
+ }
1034
+ }
1035
+ });
1036
+ const timer = setTimeout(() => {
1037
+ if (resolved) return;
1038
+ resolved = true;
1039
+ socket.close();
1040
+ resolve(null);
1041
+ }, RESPONSE_TIMEOUT);
1042
+ });
1043
+ }
952
1044
  // Annotate the CommonJS export names for ESM import in node:
953
1045
  0 && (module.exports = {
954
1046
  decryptFileWithPassword,
955
1047
  encryptAndStoreFile,
956
1048
  extractConfigurationForService,
1049
+ findService,
957
1050
  getAppDataDirectory,
958
1051
  getHostIp,
959
1052
  handleHiveRequests,
package/hive-server.js CHANGED
@@ -884,6 +884,34 @@ async function isLoggedInWithPermission(request, response, bSendResponse = false
884
884
  }
885
885
  }
886
886
 
887
+ // Server/RequestHandlers/SaveUserFilter.js
888
+ async function saveUserFilter(request, response) {
889
+ await parseRequestBody(request);
890
+ const filter = request.body;
891
+ request.body.permissionName = "FILTER_OPERATIONS";
892
+ if (await isLoggedInWithPermission(request, response, false)) {
893
+ console.log("Saving user filter...");
894
+ const saveUserFilteresponse = await fetch(
895
+ await getHiveUrl("/SaveUserFilter"),
896
+ {
897
+ method: "POST",
898
+ headers: { "Content-Type": "application/json" },
899
+ body: JSON.stringify(filter)
900
+ }
901
+ );
902
+ if (saveUserFilteresponse.status != 200) {
903
+ response.statusCode = 500;
904
+ response.end();
905
+ return;
906
+ }
907
+ response.writeHead(200, { "Content-Type": "text/plain" });
908
+ response.end("Success");
909
+ return;
910
+ }
911
+ response.statusCode = 401;
912
+ response.end("Unauthorized");
913
+ }
914
+
887
915
  // Server/HandleHiveRequests.js
888
916
  async function handleHiveRequests(request, response, next) {
889
917
  const { url, method } = request;
@@ -903,6 +931,9 @@ async function handleHiveRequests(request, response, next) {
903
931
  } else if (url === "/IsLoggedInWithPermission" && method === "POST") {
904
932
  await isLoggedInWithPermission(request, response, true);
905
933
  return;
934
+ } else if (url === "/SaveUserFilter" && method === "POST") {
935
+ await saveUserFilter(request, response);
936
+ return;
906
937
  } else if (url === "/hive-client.js") {
907
938
  const filePath = path5.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
908
939
  const stream = fs6.createReadStream(filePath);
@@ -925,10 +956,71 @@ async function handleHiveRequests(request, response, next) {
925
956
  next();
926
957
  }
927
958
  }
959
+
960
+ // Server/Utility/FindService.js
961
+ import dgram from "dgram";
962
+ var TARGET_PORT = 49153;
963
+ var RESPONSE_TIMEOUT = 3e3;
964
+ async function findService(serviceName) {
965
+ const targetIp = process.env.HIVE_PORTAL_LAN_IP;
966
+ if (!targetIp) return { name: serviceName, urls: { local: "http://127.0.0.1:49152", remote: "" } };
967
+ const request = { serviceName };
968
+ const message = Buffer.from(JSON.stringify(request));
969
+ const socket = dgram.createSocket("udp4");
970
+ return await new Promise((resolve, reject) => {
971
+ let resolved = false;
972
+ socket.on("message", (msg, rinfo) => {
973
+ if (resolved) return;
974
+ try {
975
+ const parsed = JSON.parse(msg.toString());
976
+ if (parsed.name === serviceName && parsed.urls) {
977
+ resolved = true;
978
+ clearTimeout(timer);
979
+ socket.close();
980
+ resolve(parsed);
981
+ }
982
+ } catch {
983
+ }
984
+ });
985
+ socket.once("error", (err) => {
986
+ if (resolved) return;
987
+ resolved = true;
988
+ clearTimeout(timer);
989
+ socket.close();
990
+ resolve(null);
991
+ });
992
+ socket.bind(() => {
993
+ try {
994
+ socket.send(message, TARGET_PORT, targetIp, (err) => {
995
+ if (err && !resolved) {
996
+ resolved = true;
997
+ clearTimeout(timer);
998
+ socket.close();
999
+ resolve(null);
1000
+ }
1001
+ });
1002
+ } catch {
1003
+ if (!resolved) {
1004
+ resolved = true;
1005
+ clearTimeout(timer);
1006
+ socket.close();
1007
+ resolve(null);
1008
+ }
1009
+ }
1010
+ });
1011
+ const timer = setTimeout(() => {
1012
+ if (resolved) return;
1013
+ resolved = true;
1014
+ socket.close();
1015
+ resolve(null);
1016
+ }, RESPONSE_TIMEOUT);
1017
+ });
1018
+ }
928
1019
  export {
929
1020
  decryptFileWithPassword,
930
1021
  encryptAndStoreFile,
931
1022
  extractConfigurationForService,
1023
+ findService,
932
1024
  getAppDataDirectory,
933
1025
  getHostIp,
934
1026
  handleHiveRequests,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hivedev/hivesdk",
3
3
  "type": "module",
4
- "version": "1.0.30",
4
+ "version": "1.0.32",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
7
7
  "scripts": {