hotelme-nuxt-logger 1.0.0 → 1.0.1

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/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": "^3.0.0"
6
6
  },
7
- "version": "1.0.0",
7
+ "version": "1.0.1",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "0.8.4",
10
10
  "unbuild": "2.0.0"
@@ -1,7 +1,6 @@
1
1
  declare module 'h3' {
2
2
  interface H3EventContext {
3
3
  reqid?: string;
4
- userId?: string;
5
4
  }
6
5
  }
7
6
  /**
@@ -9,34 +8,28 @@ declare module 'h3' {
9
8
  *
10
9
  * Виконує наступні функції:
11
10
  *
12
- * 1. Управління user_id:
13
- * - Зчитує user_id з cookie або генерує новий UUID
14
- * - Зберігає user_id в cookie на 1 рік
15
- * - Використовується для відстеження користувачів між запитами
16
- *
17
- * 2. Отримання reqid:
11
+ * 1. Отримання reqid:
18
12
  * - Бере reqid з header X-Request-ID
19
13
  * - Якщо header відсутній, генерує новий UUID
20
14
  * - Зберігається в event.context для доступу в інших middleware та API handlers
21
15
  *
22
- * 3. Вимірювання часу виконання:
16
+ * 2. Вимірювання часу виконання:
23
17
  * - Засікає початок запиту через performance.now()
24
18
  * - В кінці запиту (event 'finish') логує статистику
25
19
  *
26
- * 4. Логування завершення запиту:
20
+ * 3. Логування завершення запиту:
27
21
  * - Виводить лог з msg="api request" для API запитів
28
22
  * - Виводить лог з msg="stats" для інших запитів
29
23
  * - Включає: URL, метод, час виконання, статус-код, домен
30
24
  * - Формат сумісний з бекенд-логами для єдиної системи моніторингу
31
25
  *
32
- * 5. Захист від дублювання:
26
+ * 4. Захист від дублювання:
33
27
  * - Перевіряє event.context.reqid - якщо існує, middleware пропускається
34
28
  * - Використовує _loggerAttached flag для запобігання множинним listener'ам
35
29
  *
36
- * 6. Error handling:
30
+ * 5. Error handling:
37
31
  * - Всі помилки логуються але не блокують виконання запиту
38
32
  * - Middleware ніколи не викидає exception
39
- * - Fallback механізми для cookie операцій
40
33
  */
41
34
  declare const _default: any;
42
35
  export default _default;
@@ -1,34 +1,15 @@
1
1
  import { logger } from "../logger.js";
2
2
  import { v4 as uuidv4 } from "uuid";
3
- import { getCookie, setCookie } from "h3";
4
3
  export default defineEventHandler(async (event) => {
5
4
  if (event.context.reqid) {
6
5
  return;
7
6
  }
8
7
  try {
9
- let userId = getCookie(event, "user_id");
10
- if (!userId) {
11
- try {
12
- userId = uuidv4().replace(/-/g, "");
13
- setCookie(event, "user_id", userId, {
14
- maxAge: 60 * 60 * 24 * 365,
15
- httpOnly: true,
16
- secure: process.env.NODE_ENV === "production",
17
- sameSite: "strict"
18
- });
19
- } catch (cookieError) {
20
- logger.warn("cookie_error", {
21
- error: cookieError instanceof Error ? cookieError.message : String(cookieError)
22
- });
23
- userId = uuidv4().replace(/-/g, "");
24
- }
25
- }
26
8
  let reqid = event.node.req.headers["x-request-id"];
27
9
  if (!reqid) {
28
10
  reqid = uuidv4().replace(/-/g, "");
29
11
  }
30
12
  event.context.reqid = reqid;
31
- event.context.userId = userId;
32
13
  const url = getRequestURL(event);
33
14
  const fullUrl = url.pathname + (url.search ? url.search : "");
34
15
  const method = event.node.req.method || "UNKNOWN";
@@ -51,8 +32,7 @@ export default defineEventHandler(async (event) => {
51
32
  request: fullUrl,
52
33
  request_time: requestTime,
53
34
  method,
54
- response: statusCode,
55
- user_id: userId
35
+ response: statusCode
56
36
  });
57
37
  } catch (logError) {
58
38
  logger.error("log_error", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hotelme-nuxt-logger",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Стандартний logger для Nuxt проектів з JSON виводом сумісним з бекенд-логами",
5
5
  "keywords": [
6
6
  "nuxt",