@ogcio/nextjs-logging-wrapper 14.2.7 → 14.2.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.
@@ -0,0 +1,4 @@
1
+ import type { Level, Logger } from "pino";
2
+ export declare const REDACTED_PATHS: never[];
3
+ export declare const getClientLogger: (minimumLevel?: Level) => Logger;
4
+ //# sourceMappingURL=client-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-logger.d.ts","sourceRoot":"","sources":["../src/client-logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG1C,eAAO,MAAM,cAAc,SAAK,CAAC;AAGjC,eAAO,MAAM,eAAe,kBAAmB,KAAK,KAAG,MAUtD,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { useParams, usePathname, useSearchParams } from "next/navigation.js";
2
+ import { getPinoInstance } from "./shared.js";
3
+ export const REDACTED_PATHS = [];
4
+ let logger;
5
+ export const getClientLogger = (minimumLevel) => {
6
+ if (!logger) {
7
+ logger = getPinoInstance({
8
+ minimumLevel,
9
+ loggingContext: getLoggingContext(),
10
+ pathsToRedact: REDACTED_PATHS,
11
+ });
12
+ }
13
+ return logger;
14
+ };
15
+ const getLoggingContext = () => {
16
+ const search = {};
17
+ useSearchParams().forEach((value, key) => {
18
+ search[key] = value;
19
+ });
20
+ return {
21
+ request: { path: usePathname(), params: useParams(), query_params: search },
22
+ };
23
+ };
24
+ //# sourceMappingURL=client-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-logger.js","sourceRoot":"","sources":["../src/client-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,IAAI,MAAc,CAAC;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAU,EAAE;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,eAAe,CAAC;YACvB,YAAY;YACZ,cAAc,EAAE,iBAAiB,EAAE;YACnC,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQF,MAAM,iBAAiB,GAAG,GAGxB,EAAE;IACF,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;KAC5E,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Level, Logger } from "pino";
2
+ export declare const REDACTED_PATHS: never[];
3
+ export declare const getCommonLogger: (minimumLevel?: Level) => Logger;
4
+ //# sourceMappingURL=common-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-logger.d.ts","sourceRoot":"","sources":["../src/common-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG1C,eAAO,MAAM,cAAc,SAAK,CAAC;AAGjC,eAAO,MAAM,eAAe,kBAAmB,KAAK,KAAG,MAUtD,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { getPinoInstance } from "./shared.js";
2
+ export const REDACTED_PATHS = [];
3
+ let logger;
4
+ export const getCommonLogger = (minimumLevel) => {
5
+ if (!logger) {
6
+ logger = getPinoInstance({
7
+ minimumLevel,
8
+ loggingContext: { request: {} },
9
+ pathsToRedact: REDACTED_PATHS,
10
+ });
11
+ }
12
+ return logger;
13
+ };
14
+ //# sourceMappingURL=common-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-logger.js","sourceRoot":"","sources":["../src/common-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,IAAI,MAAc,CAAC;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAU,EAAE;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,eAAe,CAAC;YACvB,YAAY;YACZ,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/B,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Level, Logger } from "pino";
2
+ export interface LoggingRequest {
3
+ scheme: string | undefined;
4
+ method: string | undefined;
5
+ path: string | undefined;
6
+ hostname: string | undefined;
7
+ query_params: unknown | undefined;
8
+ [key: string]: unknown;
9
+ }
10
+ export declare const REDACTED_PATHS: never[];
11
+ export declare const getServerLogger: (minimumLevel?: Level) => Logger;
12
+ //# sourceMappingURL=server-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-logger.d.ts","sourceRoot":"","sources":["../src/server-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG1C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,YAAY,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,SAAK,CAAC;AAGjC,eAAO,MAAM,eAAe,kBAAmB,KAAK,KAAG,MAWtD,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { hostname } from "os";
2
+ import { REQUEST_ID_HEADER } from "@ogcio/shared-errors";
3
+ import { headers } from "next/headers.js";
4
+ import { REQUEST_ID_LOG_LABEL, getPinoInstance } from "./shared.js";
5
+ export const REDACTED_PATHS = [];
6
+ let logger;
7
+ export const getServerLogger = (minimumLevel) => {
8
+ if (!logger) {
9
+ logger = getPinoInstance({
10
+ minimumLevel,
11
+ loggingContext: getLoggingContext(),
12
+ baseProperties: { hostname: hostname() },
13
+ pathsToRedact: REDACTED_PATHS,
14
+ });
15
+ }
16
+ return logger;
17
+ };
18
+ const getRequestInfo = (mappedHeaders) => {
19
+ const getHeaderAsStringIfSet = (headerName) => mappedHeaders[headerName] && typeof mappedHeaders[headerName] === "string"
20
+ ? mappedHeaders[headerName]
21
+ : undefined;
22
+ return {
23
+ scheme: getHeaderAsStringIfSet("x-forwarded-proto"),
24
+ method: "GET",
25
+ path: getHeaderAsStringIfSet("x-pathname"),
26
+ hostname: getHeaderAsStringIfSet("host"),
27
+ language: getHeaderAsStringIfSet("x-next-intl-locale"),
28
+ query_params: undefined,
29
+ user_agent: getHeaderAsStringIfSet("user-agent"),
30
+ };
31
+ };
32
+ const getLoggingContext = () => {
33
+ const requestHeaders = headers();
34
+ const requestId = requestHeaders.has(REQUEST_ID_HEADER)
35
+ ? requestHeaders.get(REQUEST_ID_HEADER)
36
+ : crypto.randomUUID();
37
+ const outputHeaders = {};
38
+ requestHeaders.forEach((value, key) => {
39
+ outputHeaders[key] = value;
40
+ });
41
+ return {
42
+ [REQUEST_ID_LOG_LABEL]: requestId,
43
+ request: getRequestInfo(outputHeaders),
44
+ };
45
+ };
46
+ //# sourceMappingURL=server-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-logger.js","sourceRoot":"","sources":["../src/server-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAWpE,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,IAAI,MAAc,CAAC;AACnB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAU,EAAE;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,eAAe,CAAC;YACvB,YAAY;YACZ,cAAc,EAAE,iBAAiB,EAAE;YACnC,cAAc,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACxC,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,aAEvB,EAAkB,EAAE;IACnB,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAsB,EAAE,CACxE,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,QAAQ;QACxE,CAAC,CAAE,aAAa,CAAC,UAAU,CAAY;QACvC,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO;QACL,MAAM,EAAE,sBAAsB,CAAC,mBAAmB,CAAC;QACnD,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sBAAsB,CAAC,YAAY,CAAC;QAC1C,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,sBAAsB,CAAC,oBAAoB,CAAC;QACtD,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,sBAAsB,CAAC,YAAY,CAAC;KACjD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAGxB,EAAE;IACF,MAAM,cAAc,GAAG,OAAO,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACrD,CAAC,CAAE,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAY;QACnD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAExB,MAAM,aAAa,GAA6B,EAAE,CAAC;IACnD,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,CAAC,oBAAoB,CAAC,EAAE,SAAS;QACjC,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;KACvC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Level, type Logger } from "pino";
2
+ export declare const MESSAGE_KEY = "message";
3
+ export declare const REQUEST_ID_LOG_LABEL = "request_id";
4
+ export declare const REDACTED_VALUE = "[redacted]";
5
+ export declare const getPinoInstance: <T>(params: {
6
+ pathsToRedact: string[];
7
+ baseProperties?: {
8
+ [x: string]: string;
9
+ };
10
+ loggingContext: {
11
+ [x: string]: unknown;
12
+ request: T;
13
+ };
14
+ minimumLevel?: Level;
15
+ }) => Logger;
16
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,MAAM,EAIZ,MAAM,MAAM,CAAC;AAEd,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,eAAO,MAAM,eAAe,GAAI,CAAC,UAAU;IACzC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACzC,cAAc,EAAE;QACd,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC;KACZ,CAAC;IACF,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,KAAG,MAKH,CAAC"}
package/dist/shared.js ADDED
@@ -0,0 +1,31 @@
1
+ import { levels, pino, } from "pino";
2
+ export const MESSAGE_KEY = "message";
3
+ export const REQUEST_ID_LOG_LABEL = "request_id";
4
+ export const REDACTED_VALUE = "[redacted]";
5
+ export const getPinoInstance = (params) => {
6
+ const toCheckLevel = params.minimumLevel ?? process.env.LOG_LEVEL;
7
+ const level = isValidLevel(toCheckLevel) ? toCheckLevel : "debug";
8
+ return pino(getLoggerConfiguration({ ...params, minimumLevel: level }));
9
+ };
10
+ const isValidLevel = (level) => level !== undefined && Object.keys(levels.values).includes(level);
11
+ const getLoggerConfiguration = (params) => ({
12
+ base: params.baseProperties,
13
+ messageKey: MESSAGE_KEY,
14
+ mixin: () => ({
15
+ timestamp: Date.now(),
16
+ ...params.loggingContext,
17
+ }),
18
+ redact: {
19
+ paths: params.pathsToRedact,
20
+ censor: REDACTED_VALUE,
21
+ },
22
+ timestamp: false,
23
+ formatters: {
24
+ level: (name, levelVal) => ({
25
+ level: levelVal,
26
+ level_name: name.toUpperCase(),
27
+ }),
28
+ },
29
+ level: params.minimumLevel,
30
+ });
31
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,IAAI,GACL,MAAM,MAAM,CAAC;AAEd,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAI,MAQlC,EAAU,EAAE;IACX,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAClE,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAElE,OAAO,IAAI,CAAC,sBAAsB,CAAC,EAAE,GAAG,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAyB,EAAkB,EAAE,CACjE,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEpE,MAAM,sBAAsB,GAAG,CAAI,MAQlC,EAAiB,EAAE,CAAC,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,cAAc;IAC3B,UAAU,EAAE,WAAW;IACvB,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,GAAG,MAAM,CAAC,cAAc;KACzB,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC,aAAa;QAC3B,MAAM,EAAE,cAAc;KACvB;IACD,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE;QACV,KAAK,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC;YAC1C,KAAK,EAAE,QAAQ;YACf,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;SAC/B,CAAC;KACH;IACD,KAAK,EAAE,MAAM,CAAC,YAAY;CAC3B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ogcio/nextjs-logging-wrapper",
3
- "version": "14.2.7",
3
+ "version": "14.2.9",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "exports": {
@@ -29,8 +29,12 @@
29
29
  "typescript": "^5.7.2"
30
30
  },
31
31
  "dependencies": {
32
- "next": "^14.2.5",
32
+ "next": "14.2.5",
33
33
  "pino": "^9.5.0",
34
34
  "@ogcio/shared-errors": "^1.0.0"
35
- }
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "src"
39
+ ]
36
40
  }
package/tsconfig.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": {
4
- "composite": true,
5
- "outDir": "dist",
6
- "rootDir": "src"
7
- },
8
- "include": ["src"],
9
- "references": [
10
- { "path": "../shared-errors" }
11
- ],
12
- }
@@ -1,4 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": ["__tests__", "dist"],
4
- }