@decohere/scribe-pino 0.0.1-dev.89 → 0.0.1-dev.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.
@@ -1,108 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "pinoRecipe", {
6
- enumerable: true,
7
- get: function() {
8
- return pinoRecipe;
9
- }
10
- });
11
- const _system = require("@decohere/nexus/system");
12
- const DEFAULT_ROLL_SIZE = "10m";
13
- const DEFAULT_ROLL_FREQUENCY = "daily";
14
- const DEFAULT_ROLL_KEEP = 14;
15
- const ENV_LOG_FILE = "SCRIBE_LOG_FILE";
16
- const ENV_LOG_SIZE = "SCRIBE_LOG_SIZE";
17
- const ENV_LOG_FREQUENCY = "SCRIBE_LOG_FREQUENCY";
18
- const ENV_LOG_KEEP = "SCRIBE_LOG_KEEP";
19
- function currentEnvironment() {
20
- return process.env.NODE_ENV === _system.Environments.production ? _system.Environments.production : _system.Environments.development;
21
- }
22
- function isEnabled(when, environment) {
23
- return (when ?? "development") === "always" || environment === _system.Environments.development;
24
- }
25
- function envString(name) {
26
- const value = process.env[name]?.trim();
27
- return value ? value : undefined;
28
- }
29
- function envFrequency() {
30
- const raw = envString(ENV_LOG_FREQUENCY);
31
- if (raw == null) {
32
- return undefined;
33
- }
34
- if (/^\d+$/.test(raw)) {
35
- return Number(raw);
36
- }
37
- return raw;
38
- }
39
- function envKeep() {
40
- const raw = envString(ENV_LOG_KEEP);
41
- if (raw == null) {
42
- return undefined;
43
- }
44
- const keep = Number(raw);
45
- return Number.isFinite(keep) && keep >= 0 ? keep : undefined;
46
- }
47
- /**
48
- * Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
49
- * without touching app code. Size / frequency / keep: explicit > env > default.
50
- */ function resolveRoll(options) {
51
- return {
52
- file: envString(ENV_LOG_FILE) ?? options.file,
53
- size: options.size ?? envString(ENV_LOG_SIZE) ?? DEFAULT_ROLL_SIZE,
54
- frequency: options.frequency ?? envFrequency() ?? DEFAULT_ROLL_FREQUENCY,
55
- keep: options.keep ?? envKeep() ?? DEFAULT_ROLL_KEEP,
56
- mkdir: options.mkdir ?? true,
57
- symlink: options.symlink ?? false
58
- };
59
- }
60
- function prettyTarget(options) {
61
- return {
62
- target: "pino-pretty",
63
- options: {
64
- colorize: options.colorize ?? true
65
- }
66
- };
67
- }
68
- function rollTarget(options) {
69
- const roll = resolveRoll(options);
70
- return {
71
- target: "pino-roll",
72
- options: {
73
- file: roll.file,
74
- mkdir: roll.mkdir,
75
- size: roll.size,
76
- frequency: roll.frequency,
77
- limit: {
78
- count: roll.keep
79
- },
80
- symlink: roll.symlink
81
- }
82
- };
83
- }
84
- function transport(plan, environment = currentEnvironment()) {
85
- const targets = [];
86
- if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
87
- targets.push(prettyTarget(plan.pretty));
88
- }
89
- if (plan.roll && isEnabled(plan.roll.when, environment)) {
90
- targets.push(rollTarget(plan.roll));
91
- }
92
- if (targets.length === 0) {
93
- return undefined;
94
- }
95
- if (targets.length === 1) {
96
- return targets[0];
97
- }
98
- return {
99
- targets
100
- };
101
- }
102
- const pinoRecipe = {
103
- transport,
104
- currentEnvironment,
105
- resolveRoll
106
- };
107
-
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0LyoqIERlZmF1bHQgcm9sbCBwYXRoLiBPdmVycmlkZGVuIGF0IHJ1bnRpbWUgYnkgYFNDUklCRV9MT0dfRklMRWAgd2hlbiBzZXQuICovXG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZT86IHN0cmluZztcblx0ZnJlcXVlbmN5Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRrZWVwPzogbnVtYmVyO1xuXHRta2Rpcj86IGJvb2xlYW47XG5cdHN5bWxpbms/OiBib29sZWFuO1xuXHRsb2dMZXZlbD86IHN0cmluZztcblx0d2hlbj86IFBpbm9XaGVuO1xufTtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZVBsYW4gPSB7XG5cdHByZXR0eT86IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zO1xuXHRyb2xsPzogUGlub1JvbGxSZWNpcGVPcHRpb25zO1xuXHRsb2dMZXZlbD86IHN0cmluZztcbn07XG5cbmNvbnN0IERFRkFVTFRfUk9MTF9TSVpFID0gXCIxMG1cIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9GUkVRVUVOQ1kgPSBcImRhaWx5XCI7XG5jb25zdCBERUZBVUxUX1JPTExfS0VFUCA9IDE0O1xuXG5jb25zdCBFTlZfTE9HX0ZJTEUgPSBcIlNDUklCRV9MT0dfRklMRVwiO1xuY29uc3QgRU5WX0xPR19TSVpFID0gXCJTQ1JJQkVfTE9HX1NJWkVcIjtcbmNvbnN0IEVOVl9MT0dfRlJFUVVFTkNZID0gXCJTQ1JJQkVfTE9HX0ZSRVFVRU5DWVwiO1xuY29uc3QgRU5WX0xPR19LRUVQID0gXCJTQ1JJQkVfTE9HX0tFRVBcIjtcblxuZnVuY3Rpb24gY3VycmVudEVudmlyb25tZW50KCk6IEVudmlyb25tZW50IHtcblx0cmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBFbnZpcm9ubWVudHMucHJvZHVjdGlvblxuXHRcdD8gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ6IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gaXNFbmFibGVkKHdoZW46IFBpbm9XaGVuIHwgdW5kZWZpbmVkLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBib29sZWFuIHtcblx0cmV0dXJuICh3aGVuID8/IFwiZGV2ZWxvcG1lbnRcIikgPT09IFwiYWx3YXlzXCIgfHwgZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gZW52U3RyaW5nKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0/LnRyaW0oKTtcblx0cmV0dXJuIHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVudkZyZXF1ZW5jeSgpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19GUkVRVUVOQ1kpO1xuXHRpZiAocmF3ID09IG51bGwpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdGlmICgvXlxcZCskLy50ZXN0KHJhdykpIHtcblx0XHRyZXR1cm4gTnVtYmVyKHJhdyk7XG5cdH1cblx0cmV0dXJuIHJhdztcbn1cblxuZnVuY3Rpb24gZW52S2VlcCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19LRUVQKTtcblx0aWYgKHJhdyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBrZWVwID0gTnVtYmVyKHJhdyk7XG5cdHJldHVybiBOdW1iZXIuaXNGaW5pdGUoa2VlcCkgJiYga2VlcCA+PSAwID8ga2VlcCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHJvbGwgb3B0aW9ucy4gYFNDUklCRV9MT0dfRklMRWAgb3ZlcnJpZGVzIGBmaWxlYCBzbyBvcHMgY2FuIHJlZGlyZWN0XG4gKiB3aXRob3V0IHRvdWNoaW5nIGFwcCBjb2RlLiBTaXplIC8gZnJlcXVlbmN5IC8ga2VlcDogZXhwbGljaXQgPiBlbnYgPiBkZWZhdWx0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlUm9sbChvcHRpb25zOiBQaW5vUm9sbFJlY2lwZU9wdGlvbnMpOiB7XG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZTogc3RyaW5nO1xuXHRmcmVxdWVuY3k6IHN0cmluZyB8IG51bWJlcjtcblx0a2VlcDogbnVtYmVyO1xuXHRta2RpcjogYm9vbGVhbjtcblx0c3ltbGluazogYm9vbGVhbjtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGZpbGU6IGVudlN0cmluZyhFTlZfTE9HX0ZJTEUpID8/IG9wdGlvbnMuZmlsZSxcblx0XHRzaXplOiBvcHRpb25zLnNpemUgPz8gZW52U3RyaW5nKEVOVl9MT0dfU0laRSkgPz8gREVGQVVMVF9ST0xMX1NJWkUsXG5cdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBlbnZGcmVxdWVuY3koKSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdGtlZXA6IG9wdGlvbnMua2VlcCA/PyBlbnZLZWVwKCkgPz8gREVGQVVMVF9ST0xMX0tFRVAsXG5cdFx0bWtkaXI6IG9wdGlvbnMubWtkaXIgPz8gdHJ1ZSxcblx0XHRzeW1saW5rOiBvcHRpb25zLnN5bWxpbmsgPz8gZmFsc2UsXG5cdH07XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRjb25zdCByb2xsID0gcmVzb2x2ZVJvbGwob3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0OiBcInBpbm8tcm9sbFwiLFxuXHRcdG9wdGlvbnM6IHtcblx0XHRcdGZpbGU6IHJvbGwuZmlsZSxcblx0XHRcdG1rZGlyOiByb2xsLm1rZGlyLFxuXHRcdFx0c2l6ZTogcm9sbC5zaXplLFxuXHRcdFx0ZnJlcXVlbmN5OiByb2xsLmZyZXF1ZW5jeSxcblx0XHRcdGxpbWl0OiB7IGNvdW50OiByb2xsLmtlZXAgfSxcblx0XHRcdHN5bWxpbms6IHJvbGwuc3ltbGluayxcblx0XHR9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiB0cmFuc3BvcnQoXG5cdHBsYW46IFBpbm9SZWNpcGVQbGFuLFxuXHRlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBjdXJyZW50RW52aXJvbm1lbnQoKSxcbik6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCB1bmRlZmluZWQge1xuXHRjb25zdCB0YXJnZXRzOiBUcmFuc3BvcnRTaW5nbGVPcHRpb25zW10gPSBbXTtcblx0aWYgKHBsYW4ucHJldHR5ICYmIGlzRW5hYmxlZChwbGFuLnByZXR0eS53aGVuLCBlbnZpcm9ubWVudCkpIHtcblx0XHR0YXJnZXRzLnB1c2gocHJldHR5VGFyZ2V0KHBsYW4ucHJldHR5KSk7XG5cdH1cblx0aWYgKHBsYW4ucm9sbCAmJiBpc0VuYWJsZWQocGxhbi5yb2xsLndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChyb2xsVGFyZ2V0KHBsYW4ucm9sbCkpO1xuXHR9XG5cdGlmICh0YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIHRhcmdldHNbMF07XG5cdH1cblx0cmV0dXJuIHsgdGFyZ2V0cyB9O1xufVxuXG5leHBvcnQgY29uc3QgcGlub1JlY2lwZSA9IHsgdHJhbnNwb3J0LCBjdXJyZW50RW52aXJvbm1lbnQsIHJlc29sdmVSb2xsIH07XG4iXSwibmFtZXMiOlsicGlub1JlY2lwZSIsIkRFRkFVTFRfUk9MTF9TSVpFIiwiREVGQVVMVF9ST0xMX0ZSRVFVRU5DWSIsIkRFRkFVTFRfUk9MTF9LRUVQIiwiRU5WX0xPR19GSUxFIiwiRU5WX0xPR19TSVpFIiwiRU5WX0xPR19GUkVRVUVOQ1kiLCJFTlZfTE9HX0tFRVAiLCJjdXJyZW50RW52aXJvbm1lbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJFbnZpcm9ubWVudHMiLCJwcm9kdWN0aW9uIiwiZGV2ZWxvcG1lbnQiLCJpc0VuYWJsZWQiLCJ3aGVuIiwiZW52aXJvbm1lbnQiLCJlbnZTdHJpbmciLCJuYW1lIiwidmFsdWUiLCJ0cmltIiwidW5kZWZpbmVkIiwiZW52RnJlcXVlbmN5IiwicmF3IiwidGVzdCIsIk51bWJlciIsImVudktlZXAiLCJrZWVwIiwiaXNGaW5pdGUiLCJyZXNvbHZlUm9sbCIsIm9wdGlvbnMiLCJmaWxlIiwic2l6ZSIsImZyZXF1ZW5jeSIsIm1rZGlyIiwic3ltbGluayIsInByZXR0eVRhcmdldCIsInRhcmdldCIsImNvbG9yaXplIiwicm9sbFRhcmdldCIsInJvbGwiLCJsaW1pdCIsImNvdW50IiwidHJhbnNwb3J0IiwicGxhbiIsInRhcmdldHMiLCJwcmV0dHkiLCJwdXNoIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7OytCQTBJYUE7OztlQUFBQTs7O3dCQTFJa0M7QUE4Qi9DLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyx5QkFBeUI7QUFDL0IsTUFBTUMsb0JBQW9CO0FBRTFCLE1BQU1DLGVBQWU7QUFDckIsTUFBTUMsZUFBZTtBQUNyQixNQUFNQyxvQkFBb0I7QUFDMUIsTUFBTUMsZUFBZTtBQUVyQixTQUFTQztJQUNSLE9BQU9DLFFBQVFDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLQyxvQkFBWSxDQUFDQyxVQUFVLEdBQ3BERCxvQkFBWSxDQUFDQyxVQUFVLEdBQ3ZCRCxvQkFBWSxDQUFDRSxXQUFXO0FBQzVCO0FBRUEsU0FBU0MsVUFBVUMsSUFBMEIsRUFBRUMsV0FBd0I7SUFDdEUsT0FBTyxBQUFDRCxDQUFBQSxRQUFRLGFBQVksTUFBTyxZQUFZQyxnQkFBZ0JMLG9CQUFZLENBQUNFLFdBQVc7QUFDeEY7QUFFQSxTQUFTSSxVQUFVQyxJQUFZO0lBQzlCLE1BQU1DLFFBQVFYLFFBQVFDLEdBQUcsQ0FBQ1MsS0FBSyxFQUFFRTtJQUNqQyxPQUFPRCxRQUFRQSxRQUFRRTtBQUN4QjtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsTUFBTU4sVUFBVVo7SUFDdEIsSUFBSWtCLE9BQU8sTUFBTTtRQUNoQixPQUFPRjtJQUNSO0lBQ0EsSUFBSSxRQUFRRyxJQUFJLENBQUNELE1BQU07UUFDdEIsT0FBT0UsT0FBT0Y7SUFDZjtJQUNBLE9BQU9BO0FBQ1I7QUFFQSxTQUFTRztJQUNSLE1BQU1ILE1BQU1OLFVBQVVYO0lBQ3RCLElBQUlpQixPQUFPLE1BQU07UUFDaEIsT0FBT0Y7SUFDUjtJQUNBLE1BQU1NLE9BQU9GLE9BQU9GO0lBQ3BCLE9BQU9FLE9BQU9HLFFBQVEsQ0FBQ0QsU0FBU0EsUUFBUSxJQUFJQSxPQUFPTjtBQUNwRDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNRLFlBQVlDLE9BQThCO0lBUWxELE9BQU87UUFDTkMsTUFBTWQsVUFBVWQsaUJBQWlCMkIsUUFBUUMsSUFBSTtRQUM3Q0MsTUFBTUYsUUFBUUUsSUFBSSxJQUFJZixVQUFVYixpQkFBaUJKO1FBQ2pEaUMsV0FBV0gsUUFBUUcsU0FBUyxJQUFJWCxrQkFBa0JyQjtRQUNsRDBCLE1BQU1HLFFBQVFILElBQUksSUFBSUQsYUFBYXhCO1FBQ25DZ0MsT0FBT0osUUFBUUksS0FBSyxJQUFJO1FBQ3hCQyxTQUFTTCxRQUFRSyxPQUFPLElBQUk7SUFDN0I7QUFDRDtBQUVBLFNBQVNDLGFBQWFOLE9BQWdDO0lBQ3JELE9BQU87UUFDTk8sUUFBUTtRQUNSUCxTQUFTO1lBQUVRLFVBQVVSLFFBQVFRLFFBQVEsSUFBSTtRQUFLO0lBQy9DO0FBQ0Q7QUFFQSxTQUFTQyxXQUFXVCxPQUE4QjtJQUNqRCxNQUFNVSxPQUFPWCxZQUFZQztJQUN6QixPQUFPO1FBQ05PLFFBQVE7UUFDUlAsU0FBUztZQUNSQyxNQUFNUyxLQUFLVCxJQUFJO1lBQ2ZHLE9BQU9NLEtBQUtOLEtBQUs7WUFDakJGLE1BQU1RLEtBQUtSLElBQUk7WUFDZkMsV0FBV08sS0FBS1AsU0FBUztZQUN6QlEsT0FBTztnQkFBRUMsT0FBT0YsS0FBS2IsSUFBSTtZQUFDO1lBQzFCUSxTQUFTSyxLQUFLTCxPQUFPO1FBQ3RCO0lBQ0Q7QUFDRDtBQUVBLFNBQVNRLFVBQ1JDLElBQW9CLEVBQ3BCNUIsY0FBMkJULG9CQUFvQjtJQUUvQyxNQUFNc0MsVUFBb0MsRUFBRTtJQUM1QyxJQUFJRCxLQUFLRSxNQUFNLElBQUloQyxVQUFVOEIsS0FBS0UsTUFBTSxDQUFDL0IsSUFBSSxFQUFFQyxjQUFjO1FBQzVENkIsUUFBUUUsSUFBSSxDQUFDWCxhQUFhUSxLQUFLRSxNQUFNO0lBQ3RDO0lBQ0EsSUFBSUYsS0FBS0osSUFBSSxJQUFJMUIsVUFBVThCLEtBQUtKLElBQUksQ0FBQ3pCLElBQUksRUFBRUMsY0FBYztRQUN4RDZCLFFBQVFFLElBQUksQ0FBQ1IsV0FBV0ssS0FBS0osSUFBSTtJQUNsQztJQUNBLElBQUlLLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU8zQjtJQUNSO0lBQ0EsSUFBSXdCLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU9ILE9BQU8sQ0FBQyxFQUFFO0lBQ2xCO0lBQ0EsT0FBTztRQUFFQTtJQUFRO0FBQ2xCO0FBRU8sTUFBTTlDLGFBQWE7SUFBRTRDO0lBQVdwQztJQUFvQnNCO0FBQVkifQ==
@@ -1,70 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "guardTransport", {
6
- enumerable: true,
7
- get: function() {
8
- return guardTransport;
9
- }
10
- });
11
- function guardTransport(transport) {
12
- const stream = transport;
13
- let retired = false;
14
- let reported = false;
15
- const retire = (reason = "retired")=>{
16
- if (retired) {
17
- return;
18
- }
19
- retired = true;
20
- if (!reported) {
21
- reported = true;
22
- process.stderr.write(`[scribe-pino] transport retired: ${reason}\n`);
23
- }
24
- if (typeof stream.destroy === "function") {
25
- try {
26
- stream.destroy();
27
- } catch {
28
- // already dead
29
- }
30
- }
31
- };
32
- if (typeof stream.on === "function") {
33
- stream.on("error", (err)=>{
34
- retire(err?.message ?? String(err));
35
- });
36
- }
37
- if (typeof stream.write === "function") {
38
- const originalWrite = stream.write.bind(stream);
39
- stream.write = (chunk, encodingOrCb, cb)=>{
40
- if (retired) {
41
- completeWrite(encodingOrCb, cb);
42
- return true;
43
- }
44
- try {
45
- return originalWrite(chunk, encodingOrCb, cb);
46
- } catch (err) {
47
- retire(err instanceof Error ? err.message : String(err));
48
- completeWrite(encodingOrCb, cb);
49
- return true;
50
- }
51
- };
52
- }
53
- Object.defineProperty(stream, "retired", {
54
- get: ()=>retired,
55
- enumerable: true
56
- });
57
- Object.defineProperty(stream, "retire", {
58
- value: retire,
59
- enumerable: true
60
- });
61
- return stream;
62
- }
63
- function completeWrite(encodingOrCb, cb) {
64
- const done = typeof encodingOrCb === "function" ? encodingOrCb : typeof cb === "function" ? cb : undefined;
65
- if (typeof done === "function") {
66
- done();
67
- }
68
- }
69
-
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby50cmFuc3BvcnQtZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXN0aW5hdGlvblN0cmVhbSB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIEd1YXJkZWRUcmFuc3BvcnQgPSBEZXN0aW5hdGlvblN0cmVhbSAmIHtcblx0cmVhZG9ubHkgcmV0aXJlZDogYm9vbGVhbjtcblx0cmV0aXJlKHJlYXNvbj86IHN0cmluZyk6IHZvaWQ7XG59O1xuXG50eXBlIFdyaXRhYmxlTGlrZSA9IERlc3RpbmF0aW9uU3RyZWFtICYge1xuXHR3cml0ZT86ICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duO1xuXHRvbj86IChldmVudDogXCJlcnJvclwiLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHVua25vd247XG5cdGRlc3Ryb3k/OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogV3JhcCBhIHBpbm8gd29ya2VyIHRyYW5zcG9ydCBzbyBhIGRlYWQgVGhyZWFkU3RyZWFtIGNhbm5vdCBzcGFtIG9yIGNyYXNoLlxuICogT24gZmlyc3QgZXJyb3IgLyB3cml0ZSB0aHJvdzogcmVwb3J0IG9uY2UsIGRlc3Ryb3ksIG5vLW9wIGZ1cnRoZXIgd3JpdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VhcmRUcmFuc3BvcnQodHJhbnNwb3J0OiBEZXN0aW5hdGlvblN0cmVhbSk6IEd1YXJkZWRUcmFuc3BvcnQge1xuXHRjb25zdCBzdHJlYW0gPSB0cmFuc3BvcnQgYXMgV3JpdGFibGVMaWtlO1xuXHRsZXQgcmV0aXJlZCA9IGZhbHNlO1xuXHRsZXQgcmVwb3J0ZWQgPSBmYWxzZTtcblxuXHRjb25zdCByZXRpcmUgPSAocmVhc29uID0gXCJyZXRpcmVkXCIpOiB2b2lkID0+IHtcblx0XHRpZiAocmV0aXJlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXRpcmVkID0gdHJ1ZTtcblx0XHRpZiAoIXJlcG9ydGVkKSB7XG5cdFx0XHRyZXBvcnRlZCA9IHRydWU7XG5cdFx0XHRwcm9jZXNzLnN0ZGVyci53cml0ZShgW3NjcmliZS1waW5vXSB0cmFuc3BvcnQgcmV0aXJlZDogJHtyZWFzb259XFxuYCk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2Ygc3RyZWFtLmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0c3RyZWFtLmRlc3Ryb3koKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvLyBhbHJlYWR5IGRlYWRcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ub24gPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHN0cmVhbS5vbihcImVycm9yXCIsIChlcnIpID0+IHtcblx0XHRcdHJldGlyZShlcnI/Lm1lc3NhZ2UgPz8gU3RyaW5nKGVycikpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ud3JpdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdGNvbnN0IG9yaWdpbmFsV3JpdGUgPSBzdHJlYW0ud3JpdGUuYmluZChzdHJlYW0pIGFzIChcblx0XHRcdGNodW5rOiB1bmtub3duLFxuXHRcdFx0ZW5jb2RpbmdPckNiPzogdW5rbm93bixcblx0XHRcdGNiPzogdW5rbm93bixcblx0XHQpID0+IHVua25vd247XG5cblx0XHRzdHJlYW0ud3JpdGUgPSAoKGNodW5rOiB1bmtub3duLCBlbmNvZGluZ09yQ2I/OiB1bmtub3duLCBjYj86IHVua25vd24pID0+IHtcblx0XHRcdGlmIChyZXRpcmVkKSB7XG5cdFx0XHRcdGNvbXBsZXRlV3JpdGUoZW5jb2RpbmdPckNiLCBjYik7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmV0dXJuIG9yaWdpbmFsV3JpdGUoY2h1bmssIGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdHJldGlyZShlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikpO1xuXHRcdFx0XHRjb21wbGV0ZVdyaXRlKGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KSBhcyB0eXBlb2Ygc3RyZWFtLndyaXRlO1xuXHR9XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0cmVhbSwgXCJyZXRpcmVkXCIsIHtcblx0XHRnZXQ6ICgpID0+IHJldGlyZWQsXG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0fSk7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHJlYW0sIFwicmV0aXJlXCIsIHtcblx0XHR2YWx1ZTogcmV0aXJlLFxuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdH0pO1xuXG5cdHJldHVybiBzdHJlYW0gYXMgR3VhcmRlZFRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVXcml0ZShlbmNvZGluZ09yQ2I6IHVua25vd24sIGNiOiB1bmtub3duKTogdm9pZCB7XG5cdGNvbnN0IGRvbmUgPVxuXHRcdHR5cGVvZiBlbmNvZGluZ09yQ2IgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0PyBlbmNvZGluZ09yQ2Jcblx0XHRcdDogdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCJcblx0XHRcdFx0PyBjYlxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBkb25lID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRkb25lKCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJndWFyZFRyYW5zcG9ydCIsInRyYW5zcG9ydCIsInN0cmVhbSIsInJldGlyZWQiLCJyZXBvcnRlZCIsInJldGlyZSIsInJlYXNvbiIsInByb2Nlc3MiLCJzdGRlcnIiLCJ3cml0ZSIsImRlc3Ryb3kiLCJvbiIsImVyciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJvcmlnaW5hbFdyaXRlIiwiYmluZCIsImNodW5rIiwiZW5jb2RpbmdPckNiIiwiY2IiLCJjb21wbGV0ZVdyaXRlIiwiRXJyb3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImVudW1lcmFibGUiLCJ2YWx1ZSIsImRvbmUiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiI7Ozs7K0JBaUJnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsZUFBZUMsU0FBNEI7SUFDMUQsTUFBTUMsU0FBU0Q7SUFDZixJQUFJRSxVQUFVO0lBQ2QsSUFBSUMsV0FBVztJQUVmLE1BQU1DLFNBQVMsQ0FBQ0MsU0FBUyxTQUFTO1FBQ2pDLElBQUlILFNBQVM7WUFDWjtRQUNEO1FBQ0FBLFVBQVU7UUFDVixJQUFJLENBQUNDLFVBQVU7WUFDZEEsV0FBVztZQUNYRyxRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLGlDQUFpQyxFQUFFSCxPQUFPLEVBQUUsQ0FBQztRQUNwRTtRQUNBLElBQUksT0FBT0osT0FBT1EsT0FBTyxLQUFLLFlBQVk7WUFDekMsSUFBSTtnQkFDSFIsT0FBT1EsT0FBTztZQUNmLEVBQUUsT0FBTTtZQUNQLGVBQWU7WUFDaEI7UUFDRDtJQUNEO0lBRUEsSUFBSSxPQUFPUixPQUFPUyxFQUFFLEtBQUssWUFBWTtRQUNwQ1QsT0FBT1MsRUFBRSxDQUFDLFNBQVMsQ0FBQ0M7WUFDbkJQLE9BQU9PLEtBQUtDLFdBQVdDLE9BQU9GO1FBQy9CO0lBQ0Q7SUFFQSxJQUFJLE9BQU9WLE9BQU9PLEtBQUssS0FBSyxZQUFZO1FBQ3ZDLE1BQU1NLGdCQUFnQmIsT0FBT08sS0FBSyxDQUFDTyxJQUFJLENBQUNkO1FBTXhDQSxPQUFPTyxLQUFLLEdBQUksQ0FBQ1EsT0FBZ0JDLGNBQXdCQztZQUN4RCxJQUFJaEIsU0FBUztnQkFDWmlCLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7WUFDQSxJQUFJO2dCQUNILE9BQU9KLGNBQWNFLE9BQU9DLGNBQWNDO1lBQzNDLEVBQUUsT0FBT1AsS0FBSztnQkFDYlAsT0FBT08sZUFBZVMsUUFBUVQsSUFBSUMsT0FBTyxHQUFHQyxPQUFPRjtnQkFDbkRRLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7UUFDRDtJQUNEO0lBRUFHLE9BQU9DLGNBQWMsQ0FBQ3JCLFFBQVEsV0FBVztRQUN4Q3NCLEtBQUssSUFBTXJCO1FBQ1hzQixZQUFZO0lBQ2I7SUFDQUgsT0FBT0MsY0FBYyxDQUFDckIsUUFBUSxVQUFVO1FBQ3ZDd0IsT0FBT3JCO1FBQ1BvQixZQUFZO0lBQ2I7SUFFQSxPQUFPdkI7QUFDUjtBQUVBLFNBQVNrQixjQUFjRixZQUFxQixFQUFFQyxFQUFXO0lBQ3hELE1BQU1RLE9BQ0wsT0FBT1QsaUJBQWlCLGFBQ3JCQSxlQUNBLE9BQU9DLE9BQU8sYUFDYkEsS0FDQVM7SUFDTCxJQUFJLE9BQU9ELFNBQVMsWUFBWTtRQUMvQkE7SUFDRDtBQUNEIn0=
@@ -1,98 +0,0 @@
1
- import { Environments } from "@decohere/nexus/system";
2
- const DEFAULT_ROLL_SIZE = "10m";
3
- const DEFAULT_ROLL_FREQUENCY = "daily";
4
- const DEFAULT_ROLL_KEEP = 14;
5
- const ENV_LOG_FILE = "SCRIBE_LOG_FILE";
6
- const ENV_LOG_SIZE = "SCRIBE_LOG_SIZE";
7
- const ENV_LOG_FREQUENCY = "SCRIBE_LOG_FREQUENCY";
8
- const ENV_LOG_KEEP = "SCRIBE_LOG_KEEP";
9
- function currentEnvironment() {
10
- return process.env.NODE_ENV === Environments.production ? Environments.production : Environments.development;
11
- }
12
- function isEnabled(when, environment) {
13
- return (when ?? "development") === "always" || environment === Environments.development;
14
- }
15
- function envString(name) {
16
- const value = process.env[name]?.trim();
17
- return value ? value : undefined;
18
- }
19
- function envFrequency() {
20
- const raw = envString(ENV_LOG_FREQUENCY);
21
- if (raw == null) {
22
- return undefined;
23
- }
24
- if (/^\d+$/.test(raw)) {
25
- return Number(raw);
26
- }
27
- return raw;
28
- }
29
- function envKeep() {
30
- const raw = envString(ENV_LOG_KEEP);
31
- if (raw == null) {
32
- return undefined;
33
- }
34
- const keep = Number(raw);
35
- return Number.isFinite(keep) && keep >= 0 ? keep : undefined;
36
- }
37
- /**
38
- * Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
39
- * without touching app code. Size / frequency / keep: explicit > env > default.
40
- */ function resolveRoll(options) {
41
- return {
42
- file: envString(ENV_LOG_FILE) ?? options.file,
43
- size: options.size ?? envString(ENV_LOG_SIZE) ?? DEFAULT_ROLL_SIZE,
44
- frequency: options.frequency ?? envFrequency() ?? DEFAULT_ROLL_FREQUENCY,
45
- keep: options.keep ?? envKeep() ?? DEFAULT_ROLL_KEEP,
46
- mkdir: options.mkdir ?? true,
47
- symlink: options.symlink ?? false
48
- };
49
- }
50
- function prettyTarget(options) {
51
- return {
52
- target: "pino-pretty",
53
- options: {
54
- colorize: options.colorize ?? true
55
- }
56
- };
57
- }
58
- function rollTarget(options) {
59
- const roll = resolveRoll(options);
60
- return {
61
- target: "pino-roll",
62
- options: {
63
- file: roll.file,
64
- mkdir: roll.mkdir,
65
- size: roll.size,
66
- frequency: roll.frequency,
67
- limit: {
68
- count: roll.keep
69
- },
70
- symlink: roll.symlink
71
- }
72
- };
73
- }
74
- function transport(plan, environment = currentEnvironment()) {
75
- const targets = [];
76
- if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
77
- targets.push(prettyTarget(plan.pretty));
78
- }
79
- if (plan.roll && isEnabled(plan.roll.when, environment)) {
80
- targets.push(rollTarget(plan.roll));
81
- }
82
- if (targets.length === 0) {
83
- return undefined;
84
- }
85
- if (targets.length === 1) {
86
- return targets[0];
87
- }
88
- return {
89
- targets
90
- };
91
- }
92
- export const pinoRecipe = {
93
- transport,
94
- currentEnvironment,
95
- resolveRoll
96
- };
97
-
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0LyoqIERlZmF1bHQgcm9sbCBwYXRoLiBPdmVycmlkZGVuIGF0IHJ1bnRpbWUgYnkgYFNDUklCRV9MT0dfRklMRWAgd2hlbiBzZXQuICovXG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZT86IHN0cmluZztcblx0ZnJlcXVlbmN5Pzogc3RyaW5nIHwgbnVtYmVyO1xuXHRrZWVwPzogbnVtYmVyO1xuXHRta2Rpcj86IGJvb2xlYW47XG5cdHN5bWxpbms/OiBib29sZWFuO1xuXHRsb2dMZXZlbD86IHN0cmluZztcblx0d2hlbj86IFBpbm9XaGVuO1xufTtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZVBsYW4gPSB7XG5cdHByZXR0eT86IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zO1xuXHRyb2xsPzogUGlub1JvbGxSZWNpcGVPcHRpb25zO1xuXHRsb2dMZXZlbD86IHN0cmluZztcbn07XG5cbmNvbnN0IERFRkFVTFRfUk9MTF9TSVpFID0gXCIxMG1cIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9GUkVRVUVOQ1kgPSBcImRhaWx5XCI7XG5jb25zdCBERUZBVUxUX1JPTExfS0VFUCA9IDE0O1xuXG5jb25zdCBFTlZfTE9HX0ZJTEUgPSBcIlNDUklCRV9MT0dfRklMRVwiO1xuY29uc3QgRU5WX0xPR19TSVpFID0gXCJTQ1JJQkVfTE9HX1NJWkVcIjtcbmNvbnN0IEVOVl9MT0dfRlJFUVVFTkNZID0gXCJTQ1JJQkVfTE9HX0ZSRVFVRU5DWVwiO1xuY29uc3QgRU5WX0xPR19LRUVQID0gXCJTQ1JJQkVfTE9HX0tFRVBcIjtcblxuZnVuY3Rpb24gY3VycmVudEVudmlyb25tZW50KCk6IEVudmlyb25tZW50IHtcblx0cmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBFbnZpcm9ubWVudHMucHJvZHVjdGlvblxuXHRcdD8gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ6IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gaXNFbmFibGVkKHdoZW46IFBpbm9XaGVuIHwgdW5kZWZpbmVkLCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBib29sZWFuIHtcblx0cmV0dXJuICh3aGVuID8/IFwiZGV2ZWxvcG1lbnRcIikgPT09IFwiYWx3YXlzXCIgfHwgZW52aXJvbm1lbnQgPT09IEVudmlyb25tZW50cy5kZXZlbG9wbWVudDtcbn1cblxuZnVuY3Rpb24gZW52U3RyaW5nKG5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV0/LnRyaW0oKTtcblx0cmV0dXJuIHZhbHVlID8gdmFsdWUgOiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGVudkZyZXF1ZW5jeSgpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19GUkVRVUVOQ1kpO1xuXHRpZiAocmF3ID09IG51bGwpIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cdGlmICgvXlxcZCskLy50ZXN0KHJhdykpIHtcblx0XHRyZXR1cm4gTnVtYmVyKHJhdyk7XG5cdH1cblx0cmV0dXJuIHJhdztcbn1cblxuZnVuY3Rpb24gZW52S2VlcCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRjb25zdCByYXcgPSBlbnZTdHJpbmcoRU5WX0xPR19LRUVQKTtcblx0aWYgKHJhdyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRjb25zdCBrZWVwID0gTnVtYmVyKHJhdyk7XG5cdHJldHVybiBOdW1iZXIuaXNGaW5pdGUoa2VlcCkgJiYga2VlcCA+PSAwID8ga2VlcCA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHJvbGwgb3B0aW9ucy4gYFNDUklCRV9MT0dfRklMRWAgb3ZlcnJpZGVzIGBmaWxlYCBzbyBvcHMgY2FuIHJlZGlyZWN0XG4gKiB3aXRob3V0IHRvdWNoaW5nIGFwcCBjb2RlLiBTaXplIC8gZnJlcXVlbmN5IC8ga2VlcDogZXhwbGljaXQgPiBlbnYgPiBkZWZhdWx0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlUm9sbChvcHRpb25zOiBQaW5vUm9sbFJlY2lwZU9wdGlvbnMpOiB7XG5cdGZpbGU6IHN0cmluZztcblx0c2l6ZTogc3RyaW5nO1xuXHRmcmVxdWVuY3k6IHN0cmluZyB8IG51bWJlcjtcblx0a2VlcDogbnVtYmVyO1xuXHRta2RpcjogYm9vbGVhbjtcblx0c3ltbGluazogYm9vbGVhbjtcbn0ge1xuXHRyZXR1cm4ge1xuXHRcdGZpbGU6IGVudlN0cmluZyhFTlZfTE9HX0ZJTEUpID8/IG9wdGlvbnMuZmlsZSxcblx0XHRzaXplOiBvcHRpb25zLnNpemUgPz8gZW52U3RyaW5nKEVOVl9MT0dfU0laRSkgPz8gREVGQVVMVF9ST0xMX1NJWkUsXG5cdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBlbnZGcmVxdWVuY3koKSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdGtlZXA6IG9wdGlvbnMua2VlcCA/PyBlbnZLZWVwKCkgPz8gREVGQVVMVF9ST0xMX0tFRVAsXG5cdFx0bWtkaXI6IG9wdGlvbnMubWtkaXIgPz8gdHJ1ZSxcblx0XHRzeW1saW5rOiBvcHRpb25zLnN5bWxpbmsgPz8gZmFsc2UsXG5cdH07XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRjb25zdCByb2xsID0gcmVzb2x2ZVJvbGwob3B0aW9ucyk7XG5cdHJldHVybiB7XG5cdFx0dGFyZ2V0OiBcInBpbm8tcm9sbFwiLFxuXHRcdG9wdGlvbnM6IHtcblx0XHRcdGZpbGU6IHJvbGwuZmlsZSxcblx0XHRcdG1rZGlyOiByb2xsLm1rZGlyLFxuXHRcdFx0c2l6ZTogcm9sbC5zaXplLFxuXHRcdFx0ZnJlcXVlbmN5OiByb2xsLmZyZXF1ZW5jeSxcblx0XHRcdGxpbWl0OiB7IGNvdW50OiByb2xsLmtlZXAgfSxcblx0XHRcdHN5bWxpbms6IHJvbGwuc3ltbGluayxcblx0XHR9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiB0cmFuc3BvcnQoXG5cdHBsYW46IFBpbm9SZWNpcGVQbGFuLFxuXHRlbnZpcm9ubWVudDogRW52aXJvbm1lbnQgPSBjdXJyZW50RW52aXJvbm1lbnQoKSxcbik6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCB1bmRlZmluZWQge1xuXHRjb25zdCB0YXJnZXRzOiBUcmFuc3BvcnRTaW5nbGVPcHRpb25zW10gPSBbXTtcblx0aWYgKHBsYW4ucHJldHR5ICYmIGlzRW5hYmxlZChwbGFuLnByZXR0eS53aGVuLCBlbnZpcm9ubWVudCkpIHtcblx0XHR0YXJnZXRzLnB1c2gocHJldHR5VGFyZ2V0KHBsYW4ucHJldHR5KSk7XG5cdH1cblx0aWYgKHBsYW4ucm9sbCAmJiBpc0VuYWJsZWQocGxhbi5yb2xsLndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChyb2xsVGFyZ2V0KHBsYW4ucm9sbCkpO1xuXHR9XG5cdGlmICh0YXJnZXRzLmxlbmd0aCA9PT0gMCkge1xuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAxKSB7XG5cdFx0cmV0dXJuIHRhcmdldHNbMF07XG5cdH1cblx0cmV0dXJuIHsgdGFyZ2V0cyB9O1xufVxuXG5leHBvcnQgY29uc3QgcGlub1JlY2lwZSA9IHsgdHJhbnNwb3J0LCBjdXJyZW50RW52aXJvbm1lbnQsIHJlc29sdmVSb2xsIH07XG4iXSwibmFtZXMiOlsiRW52aXJvbm1lbnRzIiwiREVGQVVMVF9ST0xMX1NJWkUiLCJERUZBVUxUX1JPTExfRlJFUVVFTkNZIiwiREVGQVVMVF9ST0xMX0tFRVAiLCJFTlZfTE9HX0ZJTEUiLCJFTlZfTE9HX1NJWkUiLCJFTlZfTE9HX0ZSRVFVRU5DWSIsIkVOVl9MT0dfS0VFUCIsImN1cnJlbnRFbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb2R1Y3Rpb24iLCJkZXZlbG9wbWVudCIsImlzRW5hYmxlZCIsIndoZW4iLCJlbnZpcm9ubWVudCIsImVudlN0cmluZyIsIm5hbWUiLCJ2YWx1ZSIsInRyaW0iLCJ1bmRlZmluZWQiLCJlbnZGcmVxdWVuY3kiLCJyYXciLCJ0ZXN0IiwiTnVtYmVyIiwiZW52S2VlcCIsImtlZXAiLCJpc0Zpbml0ZSIsInJlc29sdmVSb2xsIiwib3B0aW9ucyIsImZpbGUiLCJzaXplIiwiZnJlcXVlbmN5IiwibWtkaXIiLCJzeW1saW5rIiwicHJldHR5VGFyZ2V0IiwidGFyZ2V0IiwiY29sb3JpemUiLCJyb2xsVGFyZ2V0Iiwicm9sbCIsImxpbWl0IiwiY291bnQiLCJ0cmFuc3BvcnQiLCJwbGFuIiwidGFyZ2V0cyIsInByZXR0eSIsInB1c2giLCJsZW5ndGgiLCJwaW5vUmVjaXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUEyQkEsWUFBWSxRQUFRLHlCQUF5QjtBQThCeEUsTUFBTUMsb0JBQW9CO0FBQzFCLE1BQU1DLHlCQUF5QjtBQUMvQixNQUFNQyxvQkFBb0I7QUFFMUIsTUFBTUMsZUFBZTtBQUNyQixNQUFNQyxlQUFlO0FBQ3JCLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyxlQUFlO0FBRXJCLFNBQVNDO0lBQ1IsT0FBT0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLEtBQUtYLGFBQWFZLFVBQVUsR0FDcERaLGFBQWFZLFVBQVUsR0FDdkJaLGFBQWFhLFdBQVc7QUFDNUI7QUFFQSxTQUFTQyxVQUFVQyxJQUEwQixFQUFFQyxXQUF3QjtJQUN0RSxPQUFPLEFBQUNELENBQUFBLFFBQVEsYUFBWSxNQUFPLFlBQVlDLGdCQUFnQmhCLGFBQWFhLFdBQVc7QUFDeEY7QUFFQSxTQUFTSSxVQUFVQyxJQUFZO0lBQzlCLE1BQU1DLFFBQVFWLFFBQVFDLEdBQUcsQ0FBQ1EsS0FBSyxFQUFFRTtJQUNqQyxPQUFPRCxRQUFRQSxRQUFRRTtBQUN4QjtBQUVBLFNBQVNDO0lBQ1IsTUFBTUMsTUFBTU4sVUFBVVg7SUFDdEIsSUFBSWlCLE9BQU8sTUFBTTtRQUNoQixPQUFPRjtJQUNSO0lBQ0EsSUFBSSxRQUFRRyxJQUFJLENBQUNELE1BQU07UUFDdEIsT0FBT0UsT0FBT0Y7SUFDZjtJQUNBLE9BQU9BO0FBQ1I7QUFFQSxTQUFTRztJQUNSLE1BQU1ILE1BQU1OLFVBQVVWO0lBQ3RCLElBQUlnQixPQUFPLE1BQU07UUFDaEIsT0FBT0Y7SUFDUjtJQUNBLE1BQU1NLE9BQU9GLE9BQU9GO0lBQ3BCLE9BQU9FLE9BQU9HLFFBQVEsQ0FBQ0QsU0FBU0EsUUFBUSxJQUFJQSxPQUFPTjtBQUNwRDtBQUVBOzs7Q0FHQyxHQUNELFNBQVNRLFlBQVlDLE9BQThCO0lBUWxELE9BQU87UUFDTkMsTUFBTWQsVUFBVWIsaUJBQWlCMEIsUUFBUUMsSUFBSTtRQUM3Q0MsTUFBTUYsUUFBUUUsSUFBSSxJQUFJZixVQUFVWixpQkFBaUJKO1FBQ2pEZ0MsV0FBV0gsUUFBUUcsU0FBUyxJQUFJWCxrQkFBa0JwQjtRQUNsRHlCLE1BQU1HLFFBQVFILElBQUksSUFBSUQsYUFBYXZCO1FBQ25DK0IsT0FBT0osUUFBUUksS0FBSyxJQUFJO1FBQ3hCQyxTQUFTTCxRQUFRSyxPQUFPLElBQUk7SUFDN0I7QUFDRDtBQUVBLFNBQVNDLGFBQWFOLE9BQWdDO0lBQ3JELE9BQU87UUFDTk8sUUFBUTtRQUNSUCxTQUFTO1lBQUVRLFVBQVVSLFFBQVFRLFFBQVEsSUFBSTtRQUFLO0lBQy9DO0FBQ0Q7QUFFQSxTQUFTQyxXQUFXVCxPQUE4QjtJQUNqRCxNQUFNVSxPQUFPWCxZQUFZQztJQUN6QixPQUFPO1FBQ05PLFFBQVE7UUFDUlAsU0FBUztZQUNSQyxNQUFNUyxLQUFLVCxJQUFJO1lBQ2ZHLE9BQU9NLEtBQUtOLEtBQUs7WUFDakJGLE1BQU1RLEtBQUtSLElBQUk7WUFDZkMsV0FBV08sS0FBS1AsU0FBUztZQUN6QlEsT0FBTztnQkFBRUMsT0FBT0YsS0FBS2IsSUFBSTtZQUFDO1lBQzFCUSxTQUFTSyxLQUFLTCxPQUFPO1FBQ3RCO0lBQ0Q7QUFDRDtBQUVBLFNBQVNRLFVBQ1JDLElBQW9CLEVBQ3BCNUIsY0FBMkJSLG9CQUFvQjtJQUUvQyxNQUFNcUMsVUFBb0MsRUFBRTtJQUM1QyxJQUFJRCxLQUFLRSxNQUFNLElBQUloQyxVQUFVOEIsS0FBS0UsTUFBTSxDQUFDL0IsSUFBSSxFQUFFQyxjQUFjO1FBQzVENkIsUUFBUUUsSUFBSSxDQUFDWCxhQUFhUSxLQUFLRSxNQUFNO0lBQ3RDO0lBQ0EsSUFBSUYsS0FBS0osSUFBSSxJQUFJMUIsVUFBVThCLEtBQUtKLElBQUksQ0FBQ3pCLElBQUksRUFBRUMsY0FBYztRQUN4RDZCLFFBQVFFLElBQUksQ0FBQ1IsV0FBV0ssS0FBS0osSUFBSTtJQUNsQztJQUNBLElBQUlLLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU8zQjtJQUNSO0lBQ0EsSUFBSXdCLFFBQVFHLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU9ILE9BQU8sQ0FBQyxFQUFFO0lBQ2xCO0lBQ0EsT0FBTztRQUFFQTtJQUFRO0FBQ2xCO0FBRUEsT0FBTyxNQUFNSSxhQUFhO0lBQUVOO0lBQVduQztJQUFvQnFCO0FBQVksRUFBRSJ9
@@ -1,63 +0,0 @@
1
- /**
2
- * Wrap a pino worker transport so a dead ThreadStream cannot spam or crash.
3
- * On first error / write throw: report once, destroy, no-op further writes.
4
- */ export function guardTransport(transport) {
5
- const stream = transport;
6
- let retired = false;
7
- let reported = false;
8
- const retire = (reason = "retired")=>{
9
- if (retired) {
10
- return;
11
- }
12
- retired = true;
13
- if (!reported) {
14
- reported = true;
15
- process.stderr.write(`[scribe-pino] transport retired: ${reason}\n`);
16
- }
17
- if (typeof stream.destroy === "function") {
18
- try {
19
- stream.destroy();
20
- } catch {
21
- // already dead
22
- }
23
- }
24
- };
25
- if (typeof stream.on === "function") {
26
- stream.on("error", (err)=>{
27
- retire(err?.message ?? String(err));
28
- });
29
- }
30
- if (typeof stream.write === "function") {
31
- const originalWrite = stream.write.bind(stream);
32
- stream.write = (chunk, encodingOrCb, cb)=>{
33
- if (retired) {
34
- completeWrite(encodingOrCb, cb);
35
- return true;
36
- }
37
- try {
38
- return originalWrite(chunk, encodingOrCb, cb);
39
- } catch (err) {
40
- retire(err instanceof Error ? err.message : String(err));
41
- completeWrite(encodingOrCb, cb);
42
- return true;
43
- }
44
- };
45
- }
46
- Object.defineProperty(stream, "retired", {
47
- get: ()=>retired,
48
- enumerable: true
49
- });
50
- Object.defineProperty(stream, "retire", {
51
- value: retire,
52
- enumerable: true
53
- });
54
- return stream;
55
- }
56
- function completeWrite(encodingOrCb, cb) {
57
- const done = typeof encodingOrCb === "function" ? encodingOrCb : typeof cb === "function" ? cb : undefined;
58
- if (typeof done === "function") {
59
- done();
60
- }
61
- }
62
-
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby50cmFuc3BvcnQtZ3VhcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXN0aW5hdGlvblN0cmVhbSB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIEd1YXJkZWRUcmFuc3BvcnQgPSBEZXN0aW5hdGlvblN0cmVhbSAmIHtcblx0cmVhZG9ubHkgcmV0aXJlZDogYm9vbGVhbjtcblx0cmV0aXJlKHJlYXNvbj86IHN0cmluZyk6IHZvaWQ7XG59O1xuXG50eXBlIFdyaXRhYmxlTGlrZSA9IERlc3RpbmF0aW9uU3RyZWFtICYge1xuXHR3cml0ZT86ICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duO1xuXHRvbj86IChldmVudDogXCJlcnJvclwiLCBsaXN0ZW5lcjogKGVycjogRXJyb3IpID0+IHZvaWQpID0+IHVua25vd247XG5cdGRlc3Ryb3k/OiAoZXJyb3I/OiBFcnJvcikgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogV3JhcCBhIHBpbm8gd29ya2VyIHRyYW5zcG9ydCBzbyBhIGRlYWQgVGhyZWFkU3RyZWFtIGNhbm5vdCBzcGFtIG9yIGNyYXNoLlxuICogT24gZmlyc3QgZXJyb3IgLyB3cml0ZSB0aHJvdzogcmVwb3J0IG9uY2UsIGRlc3Ryb3ksIG5vLW9wIGZ1cnRoZXIgd3JpdGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ3VhcmRUcmFuc3BvcnQodHJhbnNwb3J0OiBEZXN0aW5hdGlvblN0cmVhbSk6IEd1YXJkZWRUcmFuc3BvcnQge1xuXHRjb25zdCBzdHJlYW0gPSB0cmFuc3BvcnQgYXMgV3JpdGFibGVMaWtlO1xuXHRsZXQgcmV0aXJlZCA9IGZhbHNlO1xuXHRsZXQgcmVwb3J0ZWQgPSBmYWxzZTtcblxuXHRjb25zdCByZXRpcmUgPSAocmVhc29uID0gXCJyZXRpcmVkXCIpOiB2b2lkID0+IHtcblx0XHRpZiAocmV0aXJlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXRpcmVkID0gdHJ1ZTtcblx0XHRpZiAoIXJlcG9ydGVkKSB7XG5cdFx0XHRyZXBvcnRlZCA9IHRydWU7XG5cdFx0XHRwcm9jZXNzLnN0ZGVyci53cml0ZShgW3NjcmliZS1waW5vXSB0cmFuc3BvcnQgcmV0aXJlZDogJHtyZWFzb259XFxuYCk7XG5cdFx0fVxuXHRcdGlmICh0eXBlb2Ygc3RyZWFtLmRlc3Ryb3kgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0c3RyZWFtLmRlc3Ryb3koKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHQvLyBhbHJlYWR5IGRlYWRcblx0XHRcdH1cblx0XHR9XG5cdH07XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ub24gPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHN0cmVhbS5vbihcImVycm9yXCIsIChlcnIpID0+IHtcblx0XHRcdHJldGlyZShlcnI/Lm1lc3NhZ2UgPz8gU3RyaW5nKGVycikpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKHR5cGVvZiBzdHJlYW0ud3JpdGUgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdGNvbnN0IG9yaWdpbmFsV3JpdGUgPSBzdHJlYW0ud3JpdGUuYmluZChzdHJlYW0pIGFzIChcblx0XHRcdGNodW5rOiB1bmtub3duLFxuXHRcdFx0ZW5jb2RpbmdPckNiPzogdW5rbm93bixcblx0XHRcdGNiPzogdW5rbm93bixcblx0XHQpID0+IHVua25vd247XG5cblx0XHRzdHJlYW0ud3JpdGUgPSAoKGNodW5rOiB1bmtub3duLCBlbmNvZGluZ09yQ2I/OiB1bmtub3duLCBjYj86IHVua25vd24pID0+IHtcblx0XHRcdGlmIChyZXRpcmVkKSB7XG5cdFx0XHRcdGNvbXBsZXRlV3JpdGUoZW5jb2RpbmdPckNiLCBjYik7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0cmV0dXJuIG9yaWdpbmFsV3JpdGUoY2h1bmssIGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRcdHJldGlyZShlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogU3RyaW5nKGVycikpO1xuXHRcdFx0XHRjb21wbGV0ZVdyaXRlKGVuY29kaW5nT3JDYiwgY2IpO1xuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdH1cblx0XHR9KSBhcyB0eXBlb2Ygc3RyZWFtLndyaXRlO1xuXHR9XG5cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KHN0cmVhbSwgXCJyZXRpcmVkXCIsIHtcblx0XHRnZXQ6ICgpID0+IHJldGlyZWQsXG5cdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0fSk7XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzdHJlYW0sIFwicmV0aXJlXCIsIHtcblx0XHR2YWx1ZTogcmV0aXJlLFxuXHRcdGVudW1lcmFibGU6IHRydWUsXG5cdH0pO1xuXG5cdHJldHVybiBzdHJlYW0gYXMgR3VhcmRlZFRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gY29tcGxldGVXcml0ZShlbmNvZGluZ09yQ2I6IHVua25vd24sIGNiOiB1bmtub3duKTogdm9pZCB7XG5cdGNvbnN0IGRvbmUgPVxuXHRcdHR5cGVvZiBlbmNvZGluZ09yQ2IgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0PyBlbmNvZGluZ09yQ2Jcblx0XHRcdDogdHlwZW9mIGNiID09PSBcImZ1bmN0aW9uXCJcblx0XHRcdFx0PyBjYlxuXHRcdFx0XHQ6IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBkb25lID09PSBcImZ1bmN0aW9uXCIpIHtcblx0XHRkb25lKCk7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJndWFyZFRyYW5zcG9ydCIsInRyYW5zcG9ydCIsInN0cmVhbSIsInJldGlyZWQiLCJyZXBvcnRlZCIsInJldGlyZSIsInJlYXNvbiIsInByb2Nlc3MiLCJzdGRlcnIiLCJ3cml0ZSIsImRlc3Ryb3kiLCJvbiIsImVyciIsIm1lc3NhZ2UiLCJTdHJpbmciLCJvcmlnaW5hbFdyaXRlIiwiYmluZCIsImNodW5rIiwiZW5jb2RpbmdPckNiIiwiY2IiLCJjb21wbGV0ZVdyaXRlIiwiRXJyb3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsImVudW1lcmFibGUiLCJ2YWx1ZSIsImRvbmUiLCJ1bmRlZmluZWQiXSwibWFwcGluZ3MiOiJBQWFBOzs7Q0FHQyxHQUNELE9BQU8sU0FBU0EsZUFBZUMsU0FBNEI7SUFDMUQsTUFBTUMsU0FBU0Q7SUFDZixJQUFJRSxVQUFVO0lBQ2QsSUFBSUMsV0FBVztJQUVmLE1BQU1DLFNBQVMsQ0FBQ0MsU0FBUyxTQUFTO1FBQ2pDLElBQUlILFNBQVM7WUFDWjtRQUNEO1FBQ0FBLFVBQVU7UUFDVixJQUFJLENBQUNDLFVBQVU7WUFDZEEsV0FBVztZQUNYRyxRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLGlDQUFpQyxFQUFFSCxPQUFPLEVBQUUsQ0FBQztRQUNwRTtRQUNBLElBQUksT0FBT0osT0FBT1EsT0FBTyxLQUFLLFlBQVk7WUFDekMsSUFBSTtnQkFDSFIsT0FBT1EsT0FBTztZQUNmLEVBQUUsT0FBTTtZQUNQLGVBQWU7WUFDaEI7UUFDRDtJQUNEO0lBRUEsSUFBSSxPQUFPUixPQUFPUyxFQUFFLEtBQUssWUFBWTtRQUNwQ1QsT0FBT1MsRUFBRSxDQUFDLFNBQVMsQ0FBQ0M7WUFDbkJQLE9BQU9PLEtBQUtDLFdBQVdDLE9BQU9GO1FBQy9CO0lBQ0Q7SUFFQSxJQUFJLE9BQU9WLE9BQU9PLEtBQUssS0FBSyxZQUFZO1FBQ3ZDLE1BQU1NLGdCQUFnQmIsT0FBT08sS0FBSyxDQUFDTyxJQUFJLENBQUNkO1FBTXhDQSxPQUFPTyxLQUFLLEdBQUksQ0FBQ1EsT0FBZ0JDLGNBQXdCQztZQUN4RCxJQUFJaEIsU0FBUztnQkFDWmlCLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7WUFDQSxJQUFJO2dCQUNILE9BQU9KLGNBQWNFLE9BQU9DLGNBQWNDO1lBQzNDLEVBQUUsT0FBT1AsS0FBSztnQkFDYlAsT0FBT08sZUFBZVMsUUFBUVQsSUFBSUMsT0FBTyxHQUFHQyxPQUFPRjtnQkFDbkRRLGNBQWNGLGNBQWNDO2dCQUM1QixPQUFPO1lBQ1I7UUFDRDtJQUNEO0lBRUFHLE9BQU9DLGNBQWMsQ0FBQ3JCLFFBQVEsV0FBVztRQUN4Q3NCLEtBQUssSUFBTXJCO1FBQ1hzQixZQUFZO0lBQ2I7SUFDQUgsT0FBT0MsY0FBYyxDQUFDckIsUUFBUSxVQUFVO1FBQ3ZDd0IsT0FBT3JCO1FBQ1BvQixZQUFZO0lBQ2I7SUFFQSxPQUFPdkI7QUFDUjtBQUVBLFNBQVNrQixjQUFjRixZQUFxQixFQUFFQyxFQUFXO0lBQ3hELE1BQU1RLE9BQ0wsT0FBT1QsaUJBQWlCLGFBQ3JCQSxlQUNBLE9BQU9DLE9BQU8sYUFDYkEsS0FDQVM7SUFDTCxJQUFJLE9BQU9ELFNBQVMsWUFBWTtRQUMvQkE7SUFDRDtBQUNEIn0=
@@ -1,45 +0,0 @@
1
- import { type Environment } from "@decohere/nexus/system";
2
- import type { TransportMultiOptions, TransportSingleOptions } from "pino";
3
- /** Pretty and roll are local-dev conveniences. Production ships JSON on stdout. */
4
- export type PinoWhen = "development" | "always";
5
- export type PinoPrettyRecipeOptions = {
6
- colorize?: boolean;
7
- logLevel?: string;
8
- when?: PinoWhen;
9
- };
10
- export type PinoRollRecipeOptions = {
11
- /** Default roll path. Overridden at runtime by `SCRIBE_LOG_FILE` when set. */
12
- file: string;
13
- size?: string;
14
- frequency?: string | number;
15
- keep?: number;
16
- mkdir?: boolean;
17
- symlink?: boolean;
18
- logLevel?: string;
19
- when?: PinoWhen;
20
- };
21
- export type PinoRecipePlan = {
22
- pretty?: PinoPrettyRecipeOptions;
23
- roll?: PinoRollRecipeOptions;
24
- logLevel?: string;
25
- };
26
- declare function currentEnvironment(): Environment;
27
- /**
28
- * Resolve roll options. `SCRIBE_LOG_FILE` overrides `file` so ops can redirect
29
- * without touching app code. Size / frequency / keep: explicit > env > default.
30
- */
31
- declare function resolveRoll(options: PinoRollRecipeOptions): {
32
- file: string;
33
- size: string;
34
- frequency: string | number;
35
- keep: number;
36
- mkdir: boolean;
37
- symlink: boolean;
38
- };
39
- declare function transport(plan: PinoRecipePlan, environment?: Environment): TransportSingleOptions | TransportMultiOptions | undefined;
40
- export declare const pinoRecipe: {
41
- transport: typeof transport;
42
- currentEnvironment: typeof currentEnvironment;
43
- resolveRoll: typeof resolveRoll;
44
- };
45
- export {};
@@ -1,10 +0,0 @@
1
- import type { DestinationStream } from "pino";
2
- export type GuardedTransport = DestinationStream & {
3
- readonly retired: boolean;
4
- retire(reason?: string): void;
5
- };
6
- /**
7
- * Wrap a pino worker transport so a dead ThreadStream cannot spam or crash.
8
- * On first error / write throw: report once, destroy, no-op further writes.
9
- */
10
- export declare function guardTransport(transport: DestinationStream): GuardedTransport;