@beignet/provider-logger-pino 0.0.3 → 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/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @beignet/provider-logger-pino
2
2
 
3
+ ## 0.0.5
4
+
5
+ ## 0.0.4
6
+
7
+ ### Patch Changes
8
+
9
+ - 8bcb31f: Mark package READMEs with Beignet's experimental alpha status and 0.0.x stability expectations.
10
+ - d137044: Declare `@beignet/core` as a peer dependency with a lockstep version range in
11
+ every integration and provider package instead of a regular `"*"` dependency.
12
+ Installs now always resolve a single shared copy of core, so `instanceof`
13
+ checks such as `isContractError` and upload error identity keep working, and
14
+ mixed Beignet versions fail loudly at install time instead of at runtime.
15
+
16
+ If your package manager does not install peer dependencies automatically, add
17
+ `@beignet/core` to your app alongside these packages. `@beignet/nuqs` now also
18
+ declares `@beignet/react-query` as a peer dependency, and
19
+ `@beignet/provider-storage-s3` now expects you to install
20
+ `@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner` yourself, matching
21
+ how other providers treat their SDKs.
22
+
23
+ - 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.
24
+ - 2da5a05: Verify and test the `LOG_FORMAT=pretty` fallback: when pino-pretty is not
25
+ installed, pino throws synchronously and the provider falls back to JSON
26
+ logging with a warning, as documented.
27
+ - 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`.
28
+ - 44f1192: Move first-party provider diagnostics to package-owned `beignet.provider`
29
+ manifest metadata and have doctor read installed provider package manifests.
30
+ - 2aa77ca: Add static provider metadata and provider wiring diagnostics for generated apps.
31
+
3
32
  ## 0.0.3
4
33
 
5
34
  ### 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
- createContext: ({ ports }) => ({
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.
@@ -74,8 +78,8 @@ log.error("Failed to publish post", { error });
74
78
 
75
79
  ## Read next
76
80
 
77
- - Docs site logging guide: https://beignet.dev/logging
78
- - Providers: https://beignet.dev/providers
81
+ - Docs site logging guide: https://beignetjs.com/logging
82
+ - Providers: https://beignetjs.com/providers
79
83
  - Pino documentation: https://getpino.io/
80
84
 
81
85
  ## License
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.ZodCoercedBoolean<unknown>>;
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.ZodCoercedBoolean<unknown>>;
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
@@ -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;AAEhE;;;GAGG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;iBA6B1B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA4EtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;EA8B7B,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: z.coerce.boolean().default(true),
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;;;OAGG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC5C,CAAC,CAAC;AAOH;;;;;;GAMG;AACH,SAAS,gBAAgB,CACvB,MAAwB,EACxB,WAAoC,EAAE;IAEtC,MAAM,WAAW,GAAuB;QACtC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;QACnE,IAAI,EAAE,QAAQ;KACf,CAAC;IAEF,uBAAuB;IACvB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,uCAAuC;YACvC,OAAO,IAAI,CAAC;gBACV,GAAG,WAAW;gBACd,SAAS,EAAE;oBACT,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE;wBACP,QAAQ,EAAE,IAAI;wBACd,aAAa,EAAE,YAAY;wBAC3B,MAAM,EAAE,cAAc;qBACvB;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,4DAA4D;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,UAAU,CAAC,IAAI,CACb,gEAAgE;gBAC9D,6EAA6E,CAChF,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CAAC,MAAkB;IAClC,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACtB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1D,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5D,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;IAC/C,IAAI,EAAE,aAAa;IAEnB,MAAM,EAAE;QACN,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE,MAAM;KAClB;IAED,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,8CAA8C;gBAC5C,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,MAAM,YAAY,GAA4B,EAAE,CAAC;QACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACxC,CAAC;QAED,mCAAmC;QACnC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEtD,4CAA4C;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE9B,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;IACrC,CAAC;CACF,CAAC,CAAC"}
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",
3
+ "version": "0.0.5",
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: z.coerce.boolean().default(true),
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: {