@hivedev/hivesdk 1.0.24 → 1.0.25

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
@@ -34,7 +34,7 @@ var require_dist = __commonJS({
34
34
  "node_modules/cookie/dist/index.js"(exports2) {
35
35
  "use strict";
36
36
  Object.defineProperty(exports2, "__esModule", { value: true });
37
- exports2.parse = parse2;
37
+ exports2.parse = parse3;
38
38
  exports2.serialize = serialize2;
39
39
  var cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
40
40
  var cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
@@ -47,7 +47,7 @@ var require_dist = __commonJS({
47
47
  C.prototype = /* @__PURE__ */ Object.create(null);
48
48
  return C;
49
49
  })();
50
- function parse2(str, options) {
50
+ function parse3(str, options) {
51
51
  const obj = new NullObject();
52
52
  const len = str.length;
53
53
  if (len < 2)
@@ -198,6 +198,8 @@ __export(server_exports, {
198
198
  getHostIp: () => getHostIp,
199
199
  handleHiveRequests: () => handleHiveRequests,
200
200
  initServer: () => initServer,
201
+ isLoggedIn: () => isLoggedIn,
202
+ isLoggedInWithPermission: () => isLoggedInWithPermission,
201
203
  loadConfiguration: () => loadConfiguration,
202
204
  promptPassword: () => promptPassword,
203
205
  sendMail: () => sendMail,
@@ -646,7 +648,6 @@ async function handleLogin(request, response) {
646
648
  const password = request.body.password;
647
649
  const deviceId = request.headers["x-device-id"];
648
650
  const loginRequestBody = { userId, password, serviceName: HiveServerGlobals_default.getServiceName() };
649
- console.log(loginRequestBody);
650
651
  const loginResponse = await fetch(
651
652
  await getHiveUrl("/Login"),
652
653
  {
@@ -830,6 +831,73 @@ async function handleLogout(request, response) {
830
831
  }
831
832
  }
832
833
 
834
+ // Server/Authentication/IsLoggedInWithPermission.js
835
+ async function isLoggedInWithPermission(request, response, bSendResponse = false) {
836
+ const cookies = request.cookies;
837
+ const deviceId = request.headers["x-device-id"] || "";
838
+ const headers = request.headers;
839
+ if (!request.body.permissionName) {
840
+ if (bSendResponse) {
841
+ response.writeHead(200, { "Content-Type": "application/json" });
842
+ response.end(JSON.stringify(false));
843
+ }
844
+ return false;
845
+ }
846
+ if (!deviceId) {
847
+ if (bSendResponse) {
848
+ response.writeHead(200, { "Content-Type": "application/json" });
849
+ response.end(JSON.stringify(false));
850
+ }
851
+ return false;
852
+ }
853
+ if (!cookies && !headers["x-session-token"]) {
854
+ if (bSendResponse) {
855
+ response.writeHead(200, { "Content-Type": "application/json" });
856
+ response.end(JSON.stringify(false));
857
+ }
858
+ return false;
859
+ }
860
+ const sessionToken = cookies.sessionToken || headers["x-session-token"];
861
+ const isUsingApp = !cookies["usesCookies"];
862
+ const isLoggedInResponse = await fetch(
863
+ await getHiveUrl("/IsLoggedInWithPermission"),
864
+ {
865
+ method: "POST",
866
+ headers: { "Content-Type": "application/json", "x-device-id": deviceId, "x-session-token": sessionToken || "" },
867
+ body: JSON.stringify({ sessionToken, serviceName: HiveServerGlobals_default.getServiceName(), permissionName: request.body.permissionName || "", isUsingApp })
868
+ }
869
+ );
870
+ if (isLoggedInResponse.status == 200) {
871
+ const isLoggedInResponseJson = await isLoggedInResponse.json();
872
+ if (isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission) {
873
+ const sessionJson = isLoggedInResponseJson.session;
874
+ if (isLoggedInResponseJson.refresh) {
875
+ const newSessionToken = sessionJson.sessionToken;
876
+ response.cookie(
877
+ "sessionToken",
878
+ newSessionToken,
879
+ {
880
+ httpOnly: true,
881
+ sameSite: "strict",
882
+ maxAge: 7 * 24 * 60 * 60 * 1e3
883
+ }
884
+ );
885
+ }
886
+ }
887
+ if (bSendResponse) {
888
+ response.writeHead(200, { "Content-Type": "application/json" });
889
+ response.end(JSON.stringify(isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission));
890
+ }
891
+ return isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission;
892
+ } else {
893
+ if (bSendResponse) {
894
+ response.writeHead(200, { "Content-Type": "application/json" });
895
+ response.end(JSON.stringify(false));
896
+ }
897
+ return false;
898
+ }
899
+ }
900
+
833
901
  // Server/HandleHiveRequests.js
834
902
  async function handleHiveRequests(request, response, next) {
835
903
  const { url, method } = request;
@@ -847,12 +915,14 @@ async function handleHiveRequests(request, response, next) {
847
915
  await parseRequestQuery(request);
848
916
  await getServiceUrls(request, response);
849
917
  return;
850
- } else if (url === "/IsLoggedIn" && method === "GET") {
918
+ } else if (url === "/IsLoggedIn" && method === "POST") {
851
919
  await parseRequestCookies(request);
852
920
  await isLoggedIn(request, response, true);
853
921
  return;
854
- } else if (url === "/IsLoggedInWithPermission" && method === "GET") {
922
+ } else if (url === "/IsLoggedInWithPermission" && method === "POST") {
855
923
  await parseRequestCookies(request);
924
+ await parseRequestBody(request);
925
+ await isLoggedInWithPermission(request, response, true);
856
926
  return;
857
927
  } else if (url === "/hive-client.js") {
858
928
  const filePath = import_path5.default.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
@@ -885,6 +955,8 @@ async function handleHiveRequests(request, response, next) {
885
955
  getHostIp,
886
956
  handleHiveRequests,
887
957
  initServer,
958
+ isLoggedIn,
959
+ isLoggedInWithPermission,
888
960
  loadConfiguration,
889
961
  promptPassword,
890
962
  sendMail,
package/hive-server.js CHANGED
@@ -29,7 +29,7 @@ var require_dist = __commonJS({
29
29
  "node_modules/cookie/dist/index.js"(exports) {
30
30
  "use strict";
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.parse = parse2;
32
+ exports.parse = parse3;
33
33
  exports.serialize = serialize2;
34
34
  var cookieNameRegExp = /^[\u0021-\u003A\u003C\u003E-\u007E]+$/;
35
35
  var cookieValueRegExp = /^[\u0021-\u003A\u003C-\u007E]*$/;
@@ -42,7 +42,7 @@ var require_dist = __commonJS({
42
42
  C.prototype = /* @__PURE__ */ Object.create(null);
43
43
  return C;
44
44
  })();
45
- function parse2(str, options) {
45
+ function parse3(str, options) {
46
46
  const obj = new NullObject();
47
47
  const len = str.length;
48
48
  if (len < 2)
@@ -624,7 +624,6 @@ async function handleLogin(request, response) {
624
624
  const password = request.body.password;
625
625
  const deviceId = request.headers["x-device-id"];
626
626
  const loginRequestBody = { userId, password, serviceName: HiveServerGlobals_default.getServiceName() };
627
- console.log(loginRequestBody);
628
627
  const loginResponse = await fetch(
629
628
  await getHiveUrl("/Login"),
630
629
  {
@@ -696,7 +695,7 @@ async function parseRequestQuery(request) {
696
695
  }
697
696
 
698
697
  // Server/HandleHiveRequests.js
699
- import path5 from "path";
698
+ import path5, { parse as parse2 } from "path";
700
699
  import fs6 from "fs";
701
700
 
702
701
  // Server/Utility/ParseRequestCookies.js
@@ -808,6 +807,73 @@ async function handleLogout(request, response) {
808
807
  }
809
808
  }
810
809
 
810
+ // Server/Authentication/IsLoggedInWithPermission.js
811
+ async function isLoggedInWithPermission(request, response, bSendResponse = false) {
812
+ const cookies = request.cookies;
813
+ const deviceId = request.headers["x-device-id"] || "";
814
+ const headers = request.headers;
815
+ if (!request.body.permissionName) {
816
+ if (bSendResponse) {
817
+ response.writeHead(200, { "Content-Type": "application/json" });
818
+ response.end(JSON.stringify(false));
819
+ }
820
+ return false;
821
+ }
822
+ if (!deviceId) {
823
+ if (bSendResponse) {
824
+ response.writeHead(200, { "Content-Type": "application/json" });
825
+ response.end(JSON.stringify(false));
826
+ }
827
+ return false;
828
+ }
829
+ if (!cookies && !headers["x-session-token"]) {
830
+ if (bSendResponse) {
831
+ response.writeHead(200, { "Content-Type": "application/json" });
832
+ response.end(JSON.stringify(false));
833
+ }
834
+ return false;
835
+ }
836
+ const sessionToken = cookies.sessionToken || headers["x-session-token"];
837
+ const isUsingApp = !cookies["usesCookies"];
838
+ const isLoggedInResponse = await fetch(
839
+ await getHiveUrl("/IsLoggedInWithPermission"),
840
+ {
841
+ method: "POST",
842
+ headers: { "Content-Type": "application/json", "x-device-id": deviceId, "x-session-token": sessionToken || "" },
843
+ body: JSON.stringify({ sessionToken, serviceName: HiveServerGlobals_default.getServiceName(), permissionName: request.body.permissionName || "", isUsingApp })
844
+ }
845
+ );
846
+ if (isLoggedInResponse.status == 200) {
847
+ const isLoggedInResponseJson = await isLoggedInResponse.json();
848
+ if (isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission) {
849
+ const sessionJson = isLoggedInResponseJson.session;
850
+ if (isLoggedInResponseJson.refresh) {
851
+ const newSessionToken = sessionJson.sessionToken;
852
+ response.cookie(
853
+ "sessionToken",
854
+ newSessionToken,
855
+ {
856
+ httpOnly: true,
857
+ sameSite: "strict",
858
+ maxAge: 7 * 24 * 60 * 60 * 1e3
859
+ }
860
+ );
861
+ }
862
+ }
863
+ if (bSendResponse) {
864
+ response.writeHead(200, { "Content-Type": "application/json" });
865
+ response.end(JSON.stringify(isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission));
866
+ }
867
+ return isLoggedInResponseJson.isLoggedIn && isLoggedInResponseJson.hasPermission;
868
+ } else {
869
+ if (bSendResponse) {
870
+ response.writeHead(200, { "Content-Type": "application/json" });
871
+ response.end(JSON.stringify(false));
872
+ }
873
+ return false;
874
+ }
875
+ }
876
+
811
877
  // Server/HandleHiveRequests.js
812
878
  async function handleHiveRequests(request, response, next) {
813
879
  const { url, method } = request;
@@ -825,12 +891,14 @@ async function handleHiveRequests(request, response, next) {
825
891
  await parseRequestQuery(request);
826
892
  await getServiceUrls(request, response);
827
893
  return;
828
- } else if (url === "/IsLoggedIn" && method === "GET") {
894
+ } else if (url === "/IsLoggedIn" && method === "POST") {
829
895
  await parseRequestCookies(request);
830
896
  await isLoggedIn(request, response, true);
831
897
  return;
832
- } else if (url === "/IsLoggedInWithPermission" && method === "GET") {
898
+ } else if (url === "/IsLoggedInWithPermission" && method === "POST") {
833
899
  await parseRequestCookies(request);
900
+ await parseRequestBody(request);
901
+ await isLoggedInWithPermission(request, response, true);
834
902
  return;
835
903
  } else if (url === "/hive-client.js") {
836
904
  const filePath = path5.join(process.cwd(), "node_modules/@hivedev/hivesdk/hive-client.js");
@@ -862,6 +930,8 @@ export {
862
930
  getHostIp,
863
931
  handleHiveRequests,
864
932
  initServer,
933
+ isLoggedIn,
934
+ isLoggedInWithPermission,
865
935
  loadConfiguration,
866
936
  promptPassword,
867
937
  sendMail,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hivedev/hivesdk",
3
3
  "type": "module",
4
- "version": "1.0.24",
4
+ "version": "1.0.25",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
7
7
  "scripts": {