@beignet/provider-logger-pino 0.0.2 → 0.0.4
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/CHANGELOG.md +37 -0
- package/README.md +6 -2
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/package.json +29 -3
- package/src/index.ts +15 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# @beignet/provider-logger-pino
|
|
2
2
|
|
|
3
|
+
## 0.0.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8bcb31f: Mark package READMEs with Beignet's experimental alpha status and 0.0.x stability expectations.
|
|
8
|
+
- d137044: Declare `@beignet/core` as a peer dependency with a lockstep version range in
|
|
9
|
+
every integration and provider package instead of a regular `"*"` dependency.
|
|
10
|
+
Installs now always resolve a single shared copy of core, so `instanceof`
|
|
11
|
+
checks such as `isContractError` and upload error identity keep working, and
|
|
12
|
+
mixed Beignet versions fail loudly at install time instead of at runtime.
|
|
13
|
+
|
|
14
|
+
If your package manager does not install peer dependencies automatically, add
|
|
15
|
+
`@beignet/core` to your app alongside these packages. `@beignet/nuqs` now also
|
|
16
|
+
declares `@beignet/react-query` as a peer dependency, and
|
|
17
|
+
`@beignet/provider-storage-s3` now expects you to install
|
|
18
|
+
`@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner` yourself, matching
|
|
19
|
+
how other providers treat their SDKs.
|
|
20
|
+
|
|
21
|
+
- 1a79090: Emit Node-compatible ESM: all relative imports in published packages now carry explicit .js extensions, fixing ERR_MODULE_NOT_FOUND when running the CLI or importing package dist files under plain Node.
|
|
22
|
+
- 2da5a05: Verify and test the `LOG_FORMAT=pretty` fallback: when pino-pretty is not
|
|
23
|
+
installed, pino throws synchronously and the provider falls back to JSON
|
|
24
|
+
logging with a warning, as documented.
|
|
25
|
+
- 69b8c35: Fix `LOG_TIMESTAMP=false` enabling timestamps. The provider config schema now parses boolean env strings, accepting only `"true"` and `"false"` and rejecting other values instead of coercing every non-empty string to `true`.
|
|
26
|
+
- 44f1192: Move first-party provider diagnostics to package-owned `beignet.provider`
|
|
27
|
+
manifest metadata and have doctor read installed provider package manifests.
|
|
28
|
+
- 2aa77ca: Add static provider metadata and provider wiring diagnostics for generated apps.
|
|
29
|
+
|
|
30
|
+
## 0.0.3
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- Updated dependencies [3160184]
|
|
35
|
+
- Updated dependencies [254ef6d]
|
|
36
|
+
- Updated dependencies [4cb1784]
|
|
37
|
+
- Updated dependencies [8bd9085]
|
|
38
|
+
- @beignet/core@0.0.3
|
|
39
|
+
|
|
3
40
|
## 0.0.2
|
|
4
41
|
|
|
5
42
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# @beignet/provider-logger-pino
|
|
2
2
|
|
|
3
|
+
> [!CAUTION]
|
|
4
|
+
> Beignet is experimental alpha software. The `0.0.x` package line is for early
|
|
5
|
+
> evaluation, and APIs may change between releases while the framework settles.
|
|
6
|
+
|
|
3
7
|
Pino-backed `LoggerPort` provider for Beignet.
|
|
4
8
|
|
|
5
9
|
Use this package when you want `ctx.ports.logger` backed by Pino while keeping
|
|
@@ -28,7 +32,7 @@ import { appPorts } from "@/infra/app-ports";
|
|
|
28
32
|
export const server = await createNextServer({
|
|
29
33
|
ports: appPorts,
|
|
30
34
|
providers: [loggerPinoProvider],
|
|
31
|
-
|
|
35
|
+
context: ({ ports }) => ({
|
|
32
36
|
requestId: crypto.randomUUID(),
|
|
33
37
|
ports,
|
|
34
38
|
}),
|
|
@@ -46,7 +50,7 @@ The provider reads `LOG_`-prefixed environment variables:
|
|
|
46
50
|
| `LOG_LEVEL` | `info` | `trace`, `debug`, `info`, `warn`, `error`, or `fatal` |
|
|
47
51
|
| `LOG_FORMAT` | `json` | `json` or `pretty` |
|
|
48
52
|
| `LOG_SERVICE` | none | Optional service name added to log bindings |
|
|
49
|
-
| `LOG_TIMESTAMP` | `true` | Include ISO timestamps |
|
|
53
|
+
| `LOG_TIMESTAMP` | `true` | Include ISO timestamps; accepts `true` or `false` |
|
|
50
54
|
|
|
51
55
|
`LOG_FORMAT=pretty` requires `pino-pretty`. If it is unavailable, the provider
|
|
52
56
|
falls back to JSON logging and emits a warning.
|
package/dist/index.d.ts
CHANGED
|
@@ -52,7 +52,10 @@ declare const LoggerPinoConfigSchema: z.ZodObject<{
|
|
|
52
52
|
pretty: "pretty";
|
|
53
53
|
}>>;
|
|
54
54
|
SERVICE: z.ZodOptional<z.ZodString>;
|
|
55
|
-
TIMESTAMP: z.ZodDefault<z.
|
|
55
|
+
TIMESTAMP: z.ZodDefault<z.ZodPipe<z.ZodEnum<{
|
|
56
|
+
true: "true";
|
|
57
|
+
false: "false";
|
|
58
|
+
}>, z.ZodTransform<boolean, "true" | "false">>>;
|
|
56
59
|
}, z.core.$strip>;
|
|
57
60
|
/**
|
|
58
61
|
* Inferred configuration type for Pino logger provider.
|
|
@@ -90,8 +93,11 @@ export declare const loggerPinoProvider: import("@beignet/core/providers").Servi
|
|
|
90
93
|
pretty: "pretty";
|
|
91
94
|
}>>;
|
|
92
95
|
SERVICE: z.ZodOptional<z.ZodString>;
|
|
93
|
-
TIMESTAMP: z.ZodDefault<z.
|
|
96
|
+
TIMESTAMP: z.ZodDefault<z.ZodPipe<z.ZodEnum<{
|
|
97
|
+
true: "true";
|
|
98
|
+
false: "false";
|
|
99
|
+
}>, z.ZodTransform<boolean, "true" | "false">>>;
|
|
94
100
|
}, z.core.$strip>, {
|
|
95
101
|
logger: LoggerPort;
|
|
96
|
-
}>;
|
|
102
|
+
}, unknown, void>;
|
|
97
103
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAYhE;;;GAGG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;iBA8B1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA8EtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBA8B7B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,15 @@
|
|
|
31
31
|
import { createProvider } from "@beignet/core/providers";
|
|
32
32
|
import pino from "pino";
|
|
33
33
|
import { z } from "zod";
|
|
34
|
+
/**
|
|
35
|
+
* Boolean env string parser.
|
|
36
|
+
*
|
|
37
|
+
* Env values arrive as raw strings, so `z.coerce.boolean()` would treat
|
|
38
|
+
* "false" as true. Accept only the literal strings "true" and "false".
|
|
39
|
+
*/
|
|
40
|
+
const BooleanString = z
|
|
41
|
+
.enum(["true", "false"])
|
|
42
|
+
.transform((value) => value === "true");
|
|
34
43
|
/**
|
|
35
44
|
* Configuration schema for the Pino logger provider.
|
|
36
45
|
* Validates environment variables with LOG_ prefix.
|
|
@@ -58,9 +67,10 @@ const LoggerPinoConfigSchema = z.object({
|
|
|
58
67
|
SERVICE: z.string().optional(),
|
|
59
68
|
/**
|
|
60
69
|
* Whether to include timestamps in log entries.
|
|
70
|
+
* Accepts the strings "true" and "false".
|
|
61
71
|
* Default: true
|
|
62
72
|
*/
|
|
63
|
-
TIMESTAMP:
|
|
73
|
+
TIMESTAMP: BooleanString.default(true),
|
|
64
74
|
});
|
|
65
75
|
/**
|
|
66
76
|
* Create a Pino logger instance with the given configuration.
|
|
@@ -78,7 +88,9 @@ function createPinoLogger(config, bindings = {}) {
|
|
|
78
88
|
// Handle pretty format
|
|
79
89
|
if (config.FORMAT === "pretty") {
|
|
80
90
|
try {
|
|
81
|
-
// Attempt to use pino-pretty transport
|
|
91
|
+
// Attempt to use the pino-pretty transport. Pino resolves transport
|
|
92
|
+
// targets synchronously in the main thread, so a missing pino-pretty
|
|
93
|
+
// throws here and is handled by the JSON fallback below.
|
|
82
94
|
return pino({
|
|
83
95
|
...pinoOptions,
|
|
84
96
|
transport: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,IAAmC,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;;GAGG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC;;;;OAIG;IACH,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1D,OAAO,CAAC,MAAM,CAAC;IAElB;;;;;OAKG;IACH,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAElD;;;OAGG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/provider-logger-pino",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pino logger provider for Beignet - adds logger port using pino",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -54,16 +54,42 @@
|
|
|
54
54
|
"node": ">=18.0.0"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
|
+
"@beignet/core": ">=0.0.3 <1.0.0",
|
|
57
58
|
"pino": "^9.0.0 || ^10.0.0"
|
|
58
59
|
},
|
|
59
60
|
"dependencies": {
|
|
60
|
-
"zod": "^4.0.0"
|
|
61
|
-
"@beignet/core": "*"
|
|
61
|
+
"zod": "^4.0.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@types/bun": "^1.3.13",
|
|
65
65
|
"@types/node": "^20.10.0",
|
|
66
66
|
"pino": "^10.0.0",
|
|
67
67
|
"typescript": "^5.3.0"
|
|
68
|
+
},
|
|
69
|
+
"beignet": {
|
|
70
|
+
"provider": {
|
|
71
|
+
"displayName": "Pino logger provider",
|
|
72
|
+
"ports": [
|
|
73
|
+
"logger"
|
|
74
|
+
],
|
|
75
|
+
"appPorts": [
|
|
76
|
+
{
|
|
77
|
+
"name": "logger",
|
|
78
|
+
"type": "LoggerPort"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"env": [
|
|
82
|
+
"LOG_LEVEL",
|
|
83
|
+
"LOG_FORMAT",
|
|
84
|
+
"LOG_SERVICE",
|
|
85
|
+
"LOG_TIMESTAMP"
|
|
86
|
+
],
|
|
87
|
+
"registration": {
|
|
88
|
+
"required": true,
|
|
89
|
+
"tokens": [
|
|
90
|
+
"loggerPinoProvider"
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
68
94
|
}
|
|
69
95
|
}
|
package/src/index.ts
CHANGED
|
@@ -39,6 +39,16 @@ import { z } from "zod";
|
|
|
39
39
|
*/
|
|
40
40
|
export type { LoggerPort, LogLevel } from "@beignet/core/ports";
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Boolean env string parser.
|
|
44
|
+
*
|
|
45
|
+
* Env values arrive as raw strings, so `z.coerce.boolean()` would treat
|
|
46
|
+
* "false" as true. Accept only the literal strings "true" and "false".
|
|
47
|
+
*/
|
|
48
|
+
const BooleanString = z
|
|
49
|
+
.enum(["true", "false"])
|
|
50
|
+
.transform((value) => value === "true");
|
|
51
|
+
|
|
42
52
|
/**
|
|
43
53
|
* Configuration schema for the Pino logger provider.
|
|
44
54
|
* Validates environment variables with LOG_ prefix.
|
|
@@ -69,9 +79,10 @@ const LoggerPinoConfigSchema = z.object({
|
|
|
69
79
|
|
|
70
80
|
/**
|
|
71
81
|
* Whether to include timestamps in log entries.
|
|
82
|
+
* Accepts the strings "true" and "false".
|
|
72
83
|
* Default: true
|
|
73
84
|
*/
|
|
74
|
-
TIMESTAMP:
|
|
85
|
+
TIMESTAMP: BooleanString.default(true),
|
|
75
86
|
});
|
|
76
87
|
|
|
77
88
|
/**
|
|
@@ -99,7 +110,9 @@ function createPinoLogger(
|
|
|
99
110
|
// Handle pretty format
|
|
100
111
|
if (config.FORMAT === "pretty") {
|
|
101
112
|
try {
|
|
102
|
-
// Attempt to use pino-pretty transport
|
|
113
|
+
// Attempt to use the pino-pretty transport. Pino resolves transport
|
|
114
|
+
// targets synchronously in the main thread, so a missing pino-pretty
|
|
115
|
+
// throws here and is handled by the JSON fallback below.
|
|
103
116
|
return pino({
|
|
104
117
|
...pinoOptions,
|
|
105
118
|
transport: {
|