@greatapps/common 1.1.148 → 1.1.149

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.
@@ -4,13 +4,20 @@ import { cookies, headers } from "next/headers";
4
4
  import { authService } from "../services/auth.service";
5
5
  import { getClientInfoFromRequest } from "../../../infra/utils/client-info";
6
6
  async function redirectToLogin() {
7
+ const h = await headers();
8
+ const referer = h.get("referer");
7
9
  const gappsUrl = process.env.NEXT_PUBLIC_GREAT_APPS;
8
10
  if (gappsUrl) {
9
- redirect(`${gappsUrl.replace(/\/$/, "")}/login`);
11
+ const loginUrl2 = new URL(`${gappsUrl.replace(/\/$/, "")}/login`);
12
+ if (referer) {
13
+ const refererUrl = new URL(referer);
14
+ if (!["/login", "/register", "/forgot-password"].includes(refererUrl.pathname)) {
15
+ loginUrl2.searchParams.set("redirect", referer);
16
+ }
17
+ }
18
+ redirect(loginUrl2.toString());
10
19
  return;
11
20
  }
12
- const h = await headers();
13
- const referer = h.get("referer") || "/";
14
21
  if (!referer) {
15
22
  redirect("/login");
16
23
  return;
@@ -19,7 +26,9 @@ async function redirectToLogin() {
19
26
  if (["/login", "/register", "/forgot-password"].includes(url.pathname)) {
20
27
  return;
21
28
  }
22
- redirect("/login");
29
+ const loginUrl = new URL("/login", url.origin);
30
+ loginUrl.searchParams.set("redirect", url.pathname + url.search);
31
+ redirect(loginUrl.toString());
23
32
  }
24
33
  async function validateSessionAction() {
25
34
  if (process.env.DUMMY_AUTH_TOKEN) return true;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/auth/actions/validate-session.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { redirect } from 'next/navigation';\r\nimport { cookies, headers } from 'next/headers';\r\nimport { authService } from '../services/auth.service';\r\nimport { getClientInfoFromRequest } from '../../../infra/utils/client-info';\r\n\r\nasync function redirectToLogin() {\r\n const gappsUrl = process.env.NEXT_PUBLIC_GREAT_APPS;\r\n\r\n if (gappsUrl) {\r\n redirect(`${gappsUrl.replace(/\\/$/, '')}/login`);\r\n return;\r\n }\r\n\r\n const h = await headers();\r\n const referer = h.get('referer') || '/';\r\n\r\n if (!referer) {\r\n redirect('/login');\r\n return;\r\n }\r\n\r\n const url = new URL(referer);\r\n\r\n if (['/login', '/register', '/forgot-password'].includes(url.pathname)) {\r\n return;\r\n }\r\n\r\n redirect('/login');\r\n}\r\n\r\nexport async function validateSessionAction(): Promise<boolean> {\r\n if (process.env.DUMMY_AUTH_TOKEN) return true;\r\n\r\n const cookieStore = await cookies();\r\n const cookie = cookieStore.get('greatapps')?.value;\r\n\r\n if (!cookie) {\r\n await redirectToLogin();\r\n return false;\r\n }\r\n\r\n try {\r\n const clientInfo = await getClientInfoFromRequest();\r\n const isValid = await authService.validateSession(clientInfo);\r\n\r\n if (!isValid) {\r\n await authService.removeAuthCookie();\r\n await redirectToLogin();\r\n return false;\r\n }\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('[validateSessionAction] Error:', error);\r\n await authService.removeAuthCookie();\r\n await redirectToLogin();\r\n return false;\r\n }\r\n}\r\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,SAAS,eAAe;AACjC,SAAS,mBAAmB;AAC5B,SAAS,gCAAgC;AAEzC,eAAe,kBAAkB;AAC/B,QAAM,WAAW,QAAQ,IAAI;AAE7B,MAAI,UAAU;AACZ,aAAS,GAAG,SAAS,QAAQ,OAAO,EAAE,CAAC,QAAQ;AAC/C;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,QAAQ;AACxB,QAAM,UAAU,EAAE,IAAI,SAAS,KAAK;AAEpC,MAAI,CAAC,SAAS;AACZ,aAAS,QAAQ;AACjB;AAAA,EACF;AAEA,QAAM,MAAM,IAAI,IAAI,OAAO;AAE3B,MAAI,CAAC,UAAU,aAAa,kBAAkB,EAAE,SAAS,IAAI,QAAQ,GAAG;AACtE;AAAA,EACF;AAEA,WAAS,QAAQ;AACnB;AAEA,eAAsB,wBAA0C;AAC9D,MAAI,QAAQ,IAAI,iBAAkB,QAAO;AAEzC,QAAM,cAAc,MAAM,QAAQ;AAClC,QAAM,SAAS,YAAY,IAAI,WAAW,GAAG;AAE7C,MAAI,CAAC,QAAQ;AACX,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,aAAa,MAAM,yBAAyB;AAClD,UAAM,UAAU,MAAM,YAAY,gBAAgB,UAAU;AAE5D,QAAI,CAAC,SAAS;AACZ,YAAM,YAAY,iBAAiB;AACnC,YAAM,gBAAgB;AACtB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,kCAAkC,KAAK;AACrD,UAAM,YAAY,iBAAiB;AACnC,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/modules/auth/actions/validate-session.action.ts"],"sourcesContent":["'use server';\r\n\r\nimport { redirect } from 'next/navigation';\r\nimport { cookies, headers } from 'next/headers';\r\nimport { authService } from '../services/auth.service';\r\nimport { getClientInfoFromRequest } from '../../../infra/utils/client-info';\r\n\r\nasync function redirectToLogin() {\r\n const h = await headers();\r\n const referer = h.get('referer');\r\n const gappsUrl = process.env.NEXT_PUBLIC_GREAT_APPS;\r\n\r\n if (gappsUrl) {\r\n const loginUrl = new URL(`${gappsUrl.replace(/\\/$/, '')}/login`);\r\n if (referer) {\r\n const refererUrl = new URL(referer);\r\n if (!['/login', '/register', '/forgot-password'].includes(refererUrl.pathname)) {\r\n loginUrl.searchParams.set('redirect', referer);\r\n }\r\n }\r\n redirect(loginUrl.toString());\r\n return;\r\n }\r\n\r\n if (!referer) {\r\n redirect('/login');\r\n return;\r\n }\r\n\r\n const url = new URL(referer);\r\n\r\n if (['/login', '/register', '/forgot-password'].includes(url.pathname)) {\r\n return;\r\n }\r\n\r\n const loginUrl = new URL('/login', url.origin);\r\n loginUrl.searchParams.set('redirect', url.pathname + url.search);\r\n redirect(loginUrl.toString());\r\n}\r\n\r\nexport async function validateSessionAction(): Promise<boolean> {\r\n if (process.env.DUMMY_AUTH_TOKEN) return true;\r\n\r\n const cookieStore = await cookies();\r\n const cookie = cookieStore.get('greatapps')?.value;\r\n\r\n if (!cookie) {\r\n await redirectToLogin();\r\n return false;\r\n }\r\n\r\n try {\r\n const clientInfo = await getClientInfoFromRequest();\r\n const isValid = await authService.validateSession(clientInfo);\r\n\r\n if (!isValid) {\r\n await authService.removeAuthCookie();\r\n await redirectToLogin();\r\n return false;\r\n }\r\n\r\n return true;\r\n } catch (error) {\r\n console.error('[validateSessionAction] Error:', error);\r\n await authService.removeAuthCookie();\r\n await redirectToLogin();\r\n return false;\r\n }\r\n}\r\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,SAAS,eAAe;AACjC,SAAS,mBAAmB;AAC5B,SAAS,gCAAgC;AAEzC,eAAe,kBAAkB;AAC/B,QAAM,IAAI,MAAM,QAAQ;AACxB,QAAM,UAAU,EAAE,IAAI,SAAS;AAC/B,QAAM,WAAW,QAAQ,IAAI;AAE7B,MAAI,UAAU;AACZ,UAAMA,YAAW,IAAI,IAAI,GAAG,SAAS,QAAQ,OAAO,EAAE,CAAC,QAAQ;AAC/D,QAAI,SAAS;AACX,YAAM,aAAa,IAAI,IAAI,OAAO;AAClC,UAAI,CAAC,CAAC,UAAU,aAAa,kBAAkB,EAAE,SAAS,WAAW,QAAQ,GAAG;AAC9E,QAAAA,UAAS,aAAa,IAAI,YAAY,OAAO;AAAA,MAC/C;AAAA,IACF;AACA,aAASA,UAAS,SAAS,CAAC;AAC5B;AAAA,EACF;AAEA,MAAI,CAAC,SAAS;AACZ,aAAS,QAAQ;AACjB;AAAA,EACF;AAEA,QAAM,MAAM,IAAI,IAAI,OAAO;AAE3B,MAAI,CAAC,UAAU,aAAa,kBAAkB,EAAE,SAAS,IAAI,QAAQ,GAAG;AACtE;AAAA,EACF;AAEA,QAAM,WAAW,IAAI,IAAI,UAAU,IAAI,MAAM;AAC7C,WAAS,aAAa,IAAI,YAAY,IAAI,WAAW,IAAI,MAAM;AAC/D,WAAS,SAAS,SAAS,CAAC;AAC9B;AAEA,eAAsB,wBAA0C;AAC9D,MAAI,QAAQ,IAAI,iBAAkB,QAAO;AAEzC,QAAM,cAAc,MAAM,QAAQ;AAClC,QAAM,SAAS,YAAY,IAAI,WAAW,GAAG;AAE7C,MAAI,CAAC,QAAQ;AACX,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,aAAa,MAAM,yBAAyB;AAClD,UAAM,UAAU,MAAM,YAAY,gBAAgB,UAAU;AAE5D,QAAI,CAAC,SAAS;AACZ,YAAM,YAAY,iBAAiB;AACnC,YAAM,gBAAgB;AACtB,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,YAAQ,MAAM,kCAAkC,KAAK;AACrD,UAAM,YAAY,iBAAiB;AACnC,UAAM,gBAAgB;AACtB,WAAO;AAAA,EACT;AACF;","names":["loginUrl"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greatapps/common",
3
- "version": "1.1.148",
3
+ "version": "1.1.149",
4
4
  "description": "Shared library for GreatApps frontend applications",
5
5
  "main": "./dist/index.mjs",
6
6
  "types": "./src/index.ts",
@@ -6,16 +6,22 @@ import { authService } from '../services/auth.service';
6
6
  import { getClientInfoFromRequest } from '../../../infra/utils/client-info';
7
7
 
8
8
  async function redirectToLogin() {
9
+ const h = await headers();
10
+ const referer = h.get('referer');
9
11
  const gappsUrl = process.env.NEXT_PUBLIC_GREAT_APPS;
10
12
 
11
13
  if (gappsUrl) {
12
- redirect(`${gappsUrl.replace(/\/$/, '')}/login`);
14
+ const loginUrl = new URL(`${gappsUrl.replace(/\/$/, '')}/login`);
15
+ if (referer) {
16
+ const refererUrl = new URL(referer);
17
+ if (!['/login', '/register', '/forgot-password'].includes(refererUrl.pathname)) {
18
+ loginUrl.searchParams.set('redirect', referer);
19
+ }
20
+ }
21
+ redirect(loginUrl.toString());
13
22
  return;
14
23
  }
15
24
 
16
- const h = await headers();
17
- const referer = h.get('referer') || '/';
18
-
19
25
  if (!referer) {
20
26
  redirect('/login');
21
27
  return;
@@ -27,7 +33,9 @@ async function redirectToLogin() {
27
33
  return;
28
34
  }
29
35
 
30
- redirect('/login');
36
+ const loginUrl = new URL('/login', url.origin);
37
+ loginUrl.searchParams.set('redirect', url.pathname + url.search);
38
+ redirect(loginUrl.toString());
31
39
  }
32
40
 
33
41
  export async function validateSessionAction(): Promise<boolean> {