@nodus-lib/nodus 0.0.8 → 0.0.9

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.
@@ -1,7 +1,10 @@
1
- interface Prop<T> {
1
+ export interface NodusBaseRequest {
2
+ sessionId: string;
3
+ }
4
+ interface Prop<T extends NodusBaseRequest> {
2
5
  data: T;
3
6
  url: string;
4
7
  key: string;
5
8
  }
6
- export declare function nodus_server_caller<T>({ data, url, key }: Prop<T>): void;
9
+ export declare function nodus_server_caller<T extends NodusBaseRequest>({ data, url, key }: Prop<T>): void;
7
10
  export {};
@@ -1,5 +1,6 @@
1
- export interface NodusVisitEventProp {
2
- last_page: string;
3
- current_page: string;
1
+ import { NodusBaseRequest } from "./nodus-server-caller";
2
+ export interface NodusVisitEventProp extends NodusBaseRequest {
3
+ lastPage: string;
4
+ currentPage: string;
4
5
  }
5
6
  export declare function nodus_visit_event(NodusVisitEventProp: NodusVisitEventProp, key: string): void;
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nodus_proxy = nodus_proxy;
4
4
  const server_1 = require("next/server");
5
5
  const nodus_server_manager_1 = require("../logger/nodus-server-manager");
6
+ const nodus_session_1 = require("../session/nodus-session");
6
7
  function nodus_proxy(request) {
7
8
  const response = server_1.NextResponse.next();
9
+ const sessionId = (0, nodus_session_1.nodus_cookie_manager)(request, response);
8
10
  const key = process.env.NODUS_SITE_KEY ?? process.env.NEXT_PUBLIC_NODUS_SITE_KEY;
9
11
  if (key) {
10
12
  (0, nodus_server_manager_1.nodus_visit_event)({
11
- last_page: request.headers.get("referer") || "",
12
- current_page: request.url,
13
+ sessionId: sessionId,
14
+ lastPage: request.headers.get("referer") || "",
15
+ currentPage: request.url,
13
16
  }, key);
14
17
  }
15
18
  return response;
@@ -0,0 +1,2 @@
1
+ import type { NextRequest, NextResponse } from "next/server";
2
+ export declare function nodus_cookie_manager(request: NextRequest, response: NextResponse): string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nodus_cookie_manager = nodus_cookie_manager;
4
+ const COOKIE_NAME = "nodus_session";
5
+ const COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 365;
6
+ function nodus_cookie_manager(request, response) {
7
+ const existingSession = request.cookies.get(COOKIE_NAME)?.value;
8
+ if (existingSession) {
9
+ return existingSession;
10
+ }
11
+ const sessionId = crypto.randomUUID();
12
+ response.cookies.set(COOKIE_NAME, sessionId, {
13
+ httpOnly: true,
14
+ sameSite: "lax",
15
+ secure: true,
16
+ path: "/",
17
+ maxAge: COOKIE_MAX_AGE_SECONDS,
18
+ });
19
+ return sessionId;
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodus-lib/nodus",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },