@nodus-lib/nodus 0.0.4 → 0.0.5

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/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # next-session-inspector
2
2
 
3
- Next.js 미들웨어에서 `nodus_session` 쿠키를 발급하고 유지하며, 방문 이벤트를 Nodus로 전송하는 경량 패키지입니다.
3
+ Next.js 미들웨어에서 세션 쿠키(`nodus_session`)를 발급하고 유지하는 경량 패키지입니다.
4
4
 
5
5
  ## 요구 사항
6
6
 
7
7
  - Node.js `>=18.18.0`
8
- - Next.js `>=14`
8
+ - Next.js `>=14` (peer dependency)
9
9
 
10
10
  ## 설치
11
11
 
@@ -15,23 +15,52 @@ npm install @nodus-lib/nodus
15
15
 
16
16
  ## 사용법
17
17
 
18
- 프로젝트의 `middleware.ts` 파일을 만들거나 수정합니다.
18
+ 루트의 `middleware.ts`에서 그대로 내보냅니다.
19
19
 
20
20
  ```ts
21
21
  export { middleware, config } from "@nodus-lib/nodus";
22
22
  ```
23
23
 
24
- Nodus 사이트 키를 환경 변수로 설정합니다.
24
+ 또는 파일에서 감싸서 추가 로직을 실행할 수 있습니다.
25
+
26
+ ```ts
27
+ import type { NextRequest } from "next/server";
28
+ import { middleware as baseMiddleware } from "@nodus-lib/nodus";
29
+
30
+ export function middleware(request: NextRequest) {
31
+ const response = baseMiddleware(request);
32
+
33
+ // 추가 로직
34
+
35
+ return response;
36
+ }
37
+
38
+ export { config } from "@nodus-lib/nodus";
39
+ ```
40
+
41
+ ## 환경 변수
42
+
43
+ 방문 이벤트를 Nodus로 전송하려면 사이트 키를 설정합니다.
25
44
 
26
45
  ```env
27
46
  NODUS_SITE_KEY=site_xxx
28
47
  ```
29
48
 
30
- ## 동작 방식
49
+ 사이트 키가 없으면 세션 쿠키만 발급하고 방문 이벤트는 전송하지 않습니다.
50
+
51
+ ## 동작
31
52
 
32
- 미들웨어는 페이지 요청에서 실행되며, 기존 `nodus_session` 쿠키가 있으면 재사용하고 없으면 새로 발급합니다.
53
+ - 쿠키 이름: `nodus_session`
54
+ - 기존 쿠키가 있으면 재사용합니다.
55
+ - 쿠키가 없으면 `crypto.randomUUID()`로 새 세션 ID를 생성합니다.
56
+ - 쿠키 옵션: `httpOnly`, `sameSite: "lax"`, `secure: true`, `path: "/"`
57
+ - 쿠키 최대 수명: 1년
33
58
 
34
- 기본 matcher는 다음 요청을 제외합니다.
59
+ ## config.matcher
60
+
61
+ 기본 matcher는 정적 자산, API, favicon 등을 제외한 페이지 중심 경로에 적용됩니다.
62
+
63
+ 제외되는 기본 경로:
35
64
 
36
65
  - `/api`
37
66
  - `/_next/static`
@@ -40,12 +69,8 @@ NODUS_SITE_KEY=site_xxx
40
69
  - `/sitemap.xml`
41
70
  - `/robots.txt`
42
71
 
43
- 사이트 키가 설정되어 있으면 방문 이벤트를 전송합니다.
44
-
45
- - `session_id`
46
- - `last_page`
47
- - `current_page`
72
+ 필요하면 앱의 `middleware.ts`에서 `config`를 직접 정의해 덮어쓸 수 있습니다.
48
73
 
49
74
  ## 라이선스
50
75
 
51
- MIT
76
+ MIT. 자세한 내용은 `LICENSE` 파일을 참고하세요.
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nodus_server_caller = nodus_server_caller;
4
4
  function nodus_server_caller({ data, url, key }) {
5
- void fetch(`https://api.ministudiolab.com/sdk/${url}?key=${key}`, {
5
+ void fetch(`https://localhost:8080/sdk/${url}?key=${key}`, {
6
6
  method: "POST",
7
7
  headers: {
8
8
  "Content-Type": "application/json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodus-lib/nodus",
3
- "version": "0.0.4",
3
+ "version": "0.0.5",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },