@decohere/scribe 0.0.1-dev.77 → 0.0.1-dev.79

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.
@@ -14,20 +14,27 @@ const _errors = require("./errors.js");
14
14
  const _types = require("./types.js");
15
15
  class scribe {
16
16
  loggerProvider;
17
+ /** True after `configure({ adapter })` — the constructor’s ConsoleAdapter is only a fallback. */ adapterConfigured = false;
18
+ defaultAdapterWarned = false;
17
19
  static instance = new scribe();
18
20
  static logger(name, customLevels) {
19
- return scribe.instance.getLogger(name, customLevels);
21
+ // Apply custom levels once against the active adapter; the live handle
22
+ // re-resolves the underlying logger on each use (CU-869egxmg2).
23
+ if (customLevels) {
24
+ scribe.instance.getLogger(name, customLevels);
25
+ }
26
+ return scribe.createLiveLogger(name);
20
27
  }
21
28
  static configure(configOptions) {
22
29
  const previous = scribe.instance;
23
30
  // Sync: stop writes into the old ThreadStream before a new worker starts.
24
31
  previous.retire();
25
32
  scribe.instance = new scribe();
26
- const factory = scribe.instance.configure(configOptions);
33
+ scribe.instance.configure(configOptions);
27
34
  // Async drain of the retired adapter (flush / end). Flux/App.stop may
28
35
  // have already done this; reconfigure without stop still needs it.
29
36
  void previous.stop();
30
- return factory;
37
+ return (name)=>scribe.logger(name);
31
38
  }
32
39
  static flush(cb) {
33
40
  scribe.instance.loggerProvider.flush(cb);
@@ -38,6 +45,23 @@ class scribe {
38
45
  /** Drain the active adapter and release workers / destinations. */ static async stop() {
39
46
  await scribe.instance.stop();
40
47
  }
48
+ /**
49
+ * Module-level `const log = scribe.logger(...)` must follow a later
50
+ * `scribe.configure()` (CLI / Flux / HotReloadServer). Forward every use to
51
+ * the active adapter logger for `name`.
52
+ */ static createLiveLogger(name) {
53
+ return new Proxy({}, {
54
+ get (_target, prop) {
55
+ const underlying = scribe.instance.getLogger(name);
56
+ const value = Reflect.get(underlying, prop, underlying);
57
+ return typeof value === "function" ? value.bind(underlying) : value;
58
+ },
59
+ has (_target, prop) {
60
+ const underlying = scribe.instance.getLogger(name);
61
+ return Reflect.has(underlying, prop);
62
+ }
63
+ });
64
+ }
41
65
  constructor(){
42
66
  // Initialize with default console adapter
43
67
  this.loggerProvider = new _consoleadapter.ConsoleAdapter();
@@ -51,12 +75,13 @@ class scribe {
51
75
  previous.retire();
52
76
  }
53
77
  this.loggerProvider = adapter;
78
+ this.adapterConfigured = true;
54
79
  const defaultsAndOptions = this.mergeDefaults(options);
55
80
  adapter.configure(defaultsAndOptions);
56
81
  if (previous !== adapter) {
57
82
  void previous.stop();
58
83
  }
59
- return (name)=>adapter.getLogger(name);
84
+ return (name)=>scribe.logger(name);
60
85
  }
61
86
  retire() {
62
87
  this.loggerProvider.retire();
@@ -68,6 +93,7 @@ class scribe {
68
93
  await this.stop();
69
94
  }
70
95
  getLogger(name, customLevels) {
96
+ this.warnIfDefaultAdapter();
71
97
  // If custom levels are provided, we need to reconfigure the adapter
72
98
  if (customLevels) {
73
99
  const currentOptions = this.mergeDefaults({
@@ -79,6 +105,13 @@ class scribe {
79
105
  this.supportsLevels(customLevels, logger);
80
106
  return logger;
81
107
  }
108
+ warnIfDefaultAdapter() {
109
+ if (this.adapterConfigured || this.defaultAdapterWarned) {
110
+ return;
111
+ }
112
+ this.defaultAdapterWarned = true;
113
+ process.stderr.write("[scribe] No logger adapter configured; using the default ConsoleAdapter. " + "Configure an adapter at your composition root (for production, prefer " + "@decohere/scribe-pino → JSON on stdout). See " + "https://github.com/typesmiths/decohere/blob/main/projects/scribe/README.md\n");
114
+ }
82
115
  supportsLevels(customLevels, logger) {
83
116
  if (!customLevels) {
84
117
  return;
@@ -93,12 +126,14 @@ class scribe {
93
126
  }
94
127
  mergeDefaults(options) {
95
128
  const logLevel = (0, _env.resolveLogLevel)(options?.logLevel) ?? _types.DefaultLogLevel;
129
+ // Resolved logLevel must win over options spread (invalid explicit values
130
+ // would otherwise stick — CU-869emqjq8).
96
131
  return {
97
- logLevel,
98
132
  redactions: _types.DefaultRedactions,
99
- ...options
133
+ ...options,
134
+ logLevel
100
135
  };
101
136
  }
102
137
  }
103
138
 
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgcHJldmlvdXMgPSBzY3JpYmUuaW5zdGFuY2U7XG5cdFx0Ly8gU3luYzogc3RvcCB3cml0ZXMgaW50byB0aGUgb2xkIFRocmVhZFN0cmVhbSBiZWZvcmUgYSBuZXcgd29ya2VyIHN0YXJ0cy5cblx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHRzY3JpYmUuaW5zdGFuY2UgPSBuZXcgc2NyaWJlKCk7XG5cdFx0Y29uc3QgZmFjdG9yeSA9IHNjcmliZS5pbnN0YW5jZS5jb25maWd1cmU8VCwgQ3VzdG9tT25seT4oY29uZmlnT3B0aW9ucyk7XG5cdFx0Ly8gQXN5bmMgZHJhaW4gb2YgdGhlIHJldGlyZWQgYWRhcHRlciAoZmx1c2ggLyBlbmQpLiBGbHV4L0FwcC5zdG9wIG1heVxuXHRcdC8vIGhhdmUgYWxyZWFkeSBkb25lIHRoaXM7IHJlY29uZmlndXJlIHdpdGhvdXQgc3RvcCBzdGlsbCBuZWVkcyBpdC5cblx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHRyZXR1cm4gZmFjdG9yeTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0c2NyaWJlLmluc3RhbmNlLmxvZ2dlclByb3ZpZGVyLmZsdXNoKGNiKTtcblx0fVxuXG5cdC8qKiBTeW5jaHJvbm91c2x5IHN0b3AgYWNjZXB0aW5nIHdyaXRlcyBvbiB0aGUgYWN0aXZlIGFkYXB0ZXIuICovXG5cdHB1YmxpYyBzdGF0aWMgcmV0aXJlKCk6IHZvaWQge1xuXHRcdHNjcmliZS5pbnN0YW5jZS5yZXRpcmUoKTtcblx0fVxuXG5cdC8qKiBEcmFpbiB0aGUgYWN0aXZlIGFkYXB0ZXIgYW5kIHJlbGVhc2Ugd29ya2VycyAvIGRlc3RpbmF0aW9ucy4gKi9cblx0cHVibGljIHN0YXRpYyBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHNjcmliZS5pbnN0YW5jZS5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0Ly8gSW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgY29uc29sZSBhZGFwdGVyXG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBDb25zb2xlQWRhcHRlcigpO1xuXHRcdGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKCk7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoZGVmYXVsdE9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IHsgYWRhcHRlciwgb3B0aW9ucyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMubG9nZ2VyUHJvdmlkZXI7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHR9XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHR9XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBhZGFwdGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdH1cblxuXHRwdWJsaWMgcmV0aXJlKCk6IHZvaWQge1xuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIucmV0aXJlKCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLmxvZ2dlclByb3ZpZGVyLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gSWYgY3VzdG9tIGxldmVscyBhcmUgcHJvdmlkZWQsIHdlIG5lZWQgdG8gcmVjb25maWd1cmUgdGhlIGFkYXB0ZXJcblx0XHRpZiAoY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cyh7IGN1c3RvbUxldmVscyB9KTtcblx0XHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGN1cnJlbnRPcHRpb25zKTtcblx0XHR9XG5cblx0XHRjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlclByb3ZpZGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdFx0dGhpcy5zdXBwb3J0c0xldmVscyhjdXN0b21MZXZlbHMsIGxvZ2dlcik7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHByaXZhdGUgc3VwcG9ydHNMZXZlbHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0Y3VzdG9tTGV2ZWxzOiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHRcdGxvZ2dlcjogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRpZiAoIWN1c3RvbUxldmVscykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pc3NpbmdMZXZlbCA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscykuZmluZChcblx0XHRcdChrZXkpID0+ICFsb2dnZXIubG9nTGV2ZWxzW2tleS5hdCgwKS50b1N0cmluZygpXSxcblx0XHQpO1xuXG5cdFx0aWYgKG1pc3NpbmdMZXZlbCAhPSBudWxsKSB7XG5cdFx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdFx0YEN1cnJlbnQgbG9nZ2VyIHdhcyBub3QgY29uZmlndXJlZCBmb3IgY3VzdG9tIGxldmVsICR7bWlzc2luZ0xldmVsfSwgdmFsaWQgbGV2ZWxzIGFyZTogJHtKU09OLnN0cmluZ2lmeShsb2dnZXIubG9nTGV2ZWxzKX1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgbWlzc2luZ0xldmVsIH07XG5cdH1cblxuXHRwcml2YXRlIG1lcmdlRGVmYXVsdHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dMZXZlbCA9IHJlc29sdmVMb2dMZXZlbChvcHRpb25zPy5sb2dMZXZlbCkgPz8gRGVmYXVsdExvZ0xldmVsO1xuXHRcdHJldHVybiB7IGxvZ0xldmVsLCByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucyB9O1xuXHR9XG59XG4iXSwibmFtZXMiOlsic2NyaWJlIiwibG9nZ2VyUHJvdmlkZXIiLCJpbnN0YW5jZSIsImxvZ2dlciIsIm5hbWUiLCJjdXN0b21MZXZlbHMiLCJnZXRMb2dnZXIiLCJjb25maWd1cmUiLCJjb25maWdPcHRpb25zIiwicHJldmlvdXMiLCJyZXRpcmUiLCJmYWN0b3J5Iiwic3RvcCIsImZsdXNoIiwiY2IiLCJDb25zb2xlQWRhcHRlciIsImRlZmF1bHRPcHRpb25zIiwibWVyZ2VEZWZhdWx0cyIsImFkYXB0ZXIiLCJvcHRpb25zIiwiZGVmYXVsdHNBbmRPcHRpb25zIiwiU3ltYm9sIiwiYXN5bmNEaXNwb3NlIiwiY3VycmVudE9wdGlvbnMiLCJzdXBwb3J0c0xldmVscyIsIm1pc3NpbmdMZXZlbCIsIk9iamVjdCIsImVudHJpZXMiLCJmaW5kIiwia2V5IiwibG9nTGV2ZWxzIiwiYXQiLCJ0b1N0cmluZyIsIkxvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwibG9nTGV2ZWwiLCJyZXNvbHZlTG9nTGV2ZWwiLCJEZWZhdWx0TG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiRGVmYXVsdFJlZGFjdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7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
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdC8qKiBUcnVlIGFmdGVyIGBjb25maWd1cmUoeyBhZGFwdGVyIH0pYCDigJQgdGhlIGNvbnN0cnVjdG9y4oCZcyBDb25zb2xlQWRhcHRlciBpcyBvbmx5IGEgZmFsbGJhY2suICovXG5cdHByaXZhdGUgYWRhcHRlckNvbmZpZ3VyZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBkZWZhdWx0QWRhcHRlcldhcm5lZCA9IGZhbHNlO1xuXHRwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogc2NyaWJlID0gbmV3IHNjcmliZSgpO1xuXG5cdHB1YmxpYyBzdGF0aWMgbG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gQXBwbHkgY3VzdG9tIGxldmVscyBvbmNlIGFnYWluc3QgdGhlIGFjdGl2ZSBhZGFwdGVyOyB0aGUgbGl2ZSBoYW5kbGVcblx0XHQvLyByZS1yZXNvbHZlcyB0aGUgdW5kZXJseWluZyBsb2dnZXIgb24gZWFjaCB1c2UgKENVLTg2OWVneG1nMikuXG5cdFx0aWYgKGN1c3RvbUxldmVscykge1xuXHRcdFx0c2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpO1xuXHRcdH1cblx0XHRyZXR1cm4gc2NyaWJlLmNyZWF0ZUxpdmVMb2dnZXI8VCwgQ3VzdG9tT25seT4obmFtZSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHByZXZpb3VzID0gc2NyaWJlLmluc3RhbmNlO1xuXHRcdC8vIFN5bmM6IHN0b3Agd3JpdGVzIGludG8gdGhlIG9sZCBUaHJlYWRTdHJlYW0gYmVmb3JlIGEgbmV3IHdvcmtlciBzdGFydHMuXG5cdFx0cHJldmlvdXMucmV0aXJlKCk7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdHNjcmliZS5pbnN0YW5jZS5jb25maWd1cmU8VCwgQ3VzdG9tT25seT4oY29uZmlnT3B0aW9ucyk7XG5cdFx0Ly8gQXN5bmMgZHJhaW4gb2YgdGhlIHJldGlyZWQgYWRhcHRlciAoZmx1c2ggLyBlbmQpLiBGbHV4L0FwcC5zdG9wIG1heVxuXHRcdC8vIGhhdmUgYWxyZWFkeSBkb25lIHRoaXM7IHJlY29uZmlndXJlIHdpdGhvdXQgc3RvcCBzdGlsbCBuZWVkcyBpdC5cblx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHRyZXR1cm4gKG5hbWU/OiBzdHJpbmcpID0+IHNjcmliZS5sb2dnZXI8VCwgQ3VzdG9tT25seT4obmFtZSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHNjcmliZS5pbnN0YW5jZS5sb2dnZXJQcm92aWRlci5mbHVzaChjYik7XG5cdH1cblxuXHQvKiogU3luY2hyb25vdXNseSBzdG9wIGFjY2VwdGluZyB3cml0ZXMgb24gdGhlIGFjdGl2ZSBhZGFwdGVyLiAqL1xuXHRwdWJsaWMgc3RhdGljIHJldGlyZSgpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UucmV0aXJlKCk7XG5cdH1cblxuXHQvKiogRHJhaW4gdGhlIGFjdGl2ZSBhZGFwdGVyIGFuZCByZWxlYXNlIHdvcmtlcnMgLyBkZXN0aW5hdGlvbnMuICovXG5cdHB1YmxpYyBzdGF0aWMgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCBzY3JpYmUuaW5zdGFuY2Uuc3RvcCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1vZHVsZS1sZXZlbCBgY29uc3QgbG9nID0gc2NyaWJlLmxvZ2dlciguLi4pYCBtdXN0IGZvbGxvdyBhIGxhdGVyXG5cdCAqIGBzY3JpYmUuY29uZmlndXJlKClgIChDTEkgLyBGbHV4IC8gSG90UmVsb2FkU2VydmVyKS4gRm9yd2FyZCBldmVyeSB1c2UgdG9cblx0ICogdGhlIGFjdGl2ZSBhZGFwdGVyIGxvZ2dlciBmb3IgYG5hbWVgLlxuXHQgKi9cblx0cHJpdmF0ZSBzdGF0aWMgY3JlYXRlTGl2ZUxvZ2dlcjxcblx0XHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdFx0Q3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlLFxuXHQ+KG5hbWU/OiBzdHJpbmcpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdHJldHVybiBuZXcgUHJveHkoe30gYXMgTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LCB7XG5cdFx0XHRnZXQoX3RhcmdldCwgcHJvcCkge1xuXHRcdFx0XHRjb25zdCB1bmRlcmx5aW5nID0gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lKSBhcyBvYmplY3Q7XG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodW5kZXJseWluZywgcHJvcCwgdW5kZXJseWluZyk7XG5cdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0XHRcdD8gKHZhbHVlIGFzICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duKS5iaW5kKHVuZGVybHlpbmcpXG5cdFx0XHRcdFx0OiB2YWx1ZTtcblx0XHRcdH0sXG5cdFx0XHRoYXMoX3RhcmdldCwgcHJvcCkge1xuXHRcdFx0XHRjb25zdCB1bmRlcmx5aW5nID0gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lKSBhcyBvYmplY3Q7XG5cdFx0XHRcdHJldHVybiBSZWZsZWN0Lmhhcyh1bmRlcmx5aW5nLCBwcm9wKTtcblx0XHRcdH0sXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0Ly8gSW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgY29uc29sZSBhZGFwdGVyXG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBDb25zb2xlQWRhcHRlcigpO1xuXHRcdGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKCk7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoZGVmYXVsdE9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IHsgYWRhcHRlciwgb3B0aW9ucyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMubG9nZ2VyUHJvdmlkZXI7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHR9XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0dGhpcy5hZGFwdGVyQ29uZmlndXJlZCA9IHRydWU7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHR9XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBzY3JpYmUubG9nZ2VyPFQsIEN1c3RvbU9ubHk+KG5hbWUpO1xuXHR9XG5cblx0cHVibGljIHJldGlyZSgpOiB2b2lkIHtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLnJldGlyZSgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5sb2dnZXJQcm92aWRlci5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMuc3RvcCgpO1xuXHR9XG5cblx0cHVibGljIGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZT86IHN0cmluZyxcblx0XHRjdXN0b21MZXZlbHM/OiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdHRoaXMud2FybklmRGVmYXVsdEFkYXB0ZXIoKTtcblxuXHRcdC8vIElmIGN1c3RvbSBsZXZlbHMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHJlY29uZmlndXJlIHRoZSBhZGFwdGVyXG5cdFx0aWYgKGN1c3RvbUxldmVscykge1xuXHRcdFx0Y29uc3QgY3VycmVudE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHMoeyBjdXN0b21MZXZlbHMgfSk7XG5cdFx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLmNvbmZpZ3VyZShjdXJyZW50T3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbG9nZ2VyID0gdGhpcy5sb2dnZXJQcm92aWRlci5nZXRMb2dnZXIobmFtZSkgYXMgTG9nZ2VyPFQsIEN1c3RvbU9ubHk+O1xuXHRcdHRoaXMuc3VwcG9ydHNMZXZlbHMoY3VzdG9tTGV2ZWxzLCBsb2dnZXIpO1xuXHRcdHJldHVybiBsb2dnZXI7XG5cdH1cblxuXHRwcml2YXRlIHdhcm5JZkRlZmF1bHRBZGFwdGVyKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmFkYXB0ZXJDb25maWd1cmVkIHx8IHRoaXMuZGVmYXVsdEFkYXB0ZXJXYXJuZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kZWZhdWx0QWRhcHRlcldhcm5lZCA9IHRydWU7XG5cdFx0cHJvY2Vzcy5zdGRlcnIud3JpdGUoXG5cdFx0XHRcIltzY3JpYmVdIE5vIGxvZ2dlciBhZGFwdGVyIGNvbmZpZ3VyZWQ7IHVzaW5nIHRoZSBkZWZhdWx0IENvbnNvbGVBZGFwdGVyLiBcIiArXG5cdFx0XHRcdFwiQ29uZmlndXJlIGFuIGFkYXB0ZXIgYXQgeW91ciBjb21wb3NpdGlvbiByb290IChmb3IgcHJvZHVjdGlvbiwgcHJlZmVyIFwiICtcblx0XHRcdFx0XCJAZGVjb2hlcmUvc2NyaWJlLXBpbm8g4oaSIEpTT04gb24gc3Rkb3V0KS4gU2VlIFwiICtcblx0XHRcdFx0XCJodHRwczovL2dpdGh1Yi5jb20vdHlwZXNtaXRocy9kZWNvaGVyZS9ibG9iL21haW4vcHJvamVjdHMvc2NyaWJlL1JFQURNRS5tZFxcblwiLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIHN1cHBvcnRzTGV2ZWxzPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdGN1c3RvbUxldmVsczoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0XHRsb2dnZXI6IExvZ2dlcjxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0aWYgKCFjdXN0b21MZXZlbHMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBtaXNzaW5nTGV2ZWwgPSBPYmplY3QuZW50cmllcyhjdXN0b21MZXZlbHMpLmZpbmQoXG5cdFx0XHQoa2V5KSA9PiAhbG9nZ2VyLmxvZ0xldmVsc1trZXkuYXQoMCkudG9TdHJpbmcoKV0sXG5cdFx0KTtcblxuXHRcdGlmIChtaXNzaW5nTGV2ZWwgIT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IoXG5cdFx0XHRcdGBDdXJyZW50IGxvZ2dlciB3YXMgbm90IGNvbmZpZ3VyZWQgZm9yIGN1c3RvbSBsZXZlbCAke21pc3NpbmdMZXZlbH0sIHZhbGlkIGxldmVscyBhcmU6ICR7SlNPTi5zdHJpbmdpZnkobG9nZ2VyLmxvZ0xldmVscyl9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB7IG1pc3NpbmdMZXZlbCB9O1xuXHR9XG5cblx0cHJpdmF0ZSBtZXJnZURlZmF1bHRzPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRvcHRpb25zPzogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgbG9nTGV2ZWwgPSByZXNvbHZlTG9nTGV2ZWwob3B0aW9ucz8ubG9nTGV2ZWwpID8/IERlZmF1bHRMb2dMZXZlbDtcblx0XHQvLyBSZXNvbHZlZCBsb2dMZXZlbCBtdXN0IHdpbiBvdmVyIG9wdGlvbnMgc3ByZWFkIChpbnZhbGlkIGV4cGxpY2l0IHZhbHVlc1xuXHRcdC8vIHdvdWxkIG90aGVyd2lzZSBzdGljayDigJQgQ1UtODY5ZW1xanE4KS5cblx0XHRyZXR1cm4geyByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucywgbG9nTGV2ZWwgfTtcblx0fVxufVxuIl0sIm5hbWVzIjpbInNjcmliZSIsImxvZ2dlclByb3ZpZGVyIiwiYWRhcHRlckNvbmZpZ3VyZWQiLCJkZWZhdWx0QWRhcHRlcldhcm5lZCIsImluc3RhbmNlIiwibG9nZ2VyIiwibmFtZSIsImN1c3RvbUxldmVscyIsImdldExvZ2dlciIsImNyZWF0ZUxpdmVMb2dnZXIiLCJjb25maWd1cmUiLCJjb25maWdPcHRpb25zIiwicHJldmlvdXMiLCJyZXRpcmUiLCJzdG9wIiwiZmx1c2giLCJjYiIsIlByb3h5IiwiZ2V0IiwiX3RhcmdldCIsInByb3AiLCJ1bmRlcmx5aW5nIiwidmFsdWUiLCJSZWZsZWN0IiwiYmluZCIsImhhcyIsIkNvbnNvbGVBZGFwdGVyIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJ3YXJuSWZEZWZhdWx0QWRhcHRlciIsImN1cnJlbnRPcHRpb25zIiwic3VwcG9ydHNMZXZlbHMiLCJwcm9jZXNzIiwic3RkZXJyIiwid3JpdGUiLCJtaXNzaW5nTGV2ZWwiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmluZCIsImtleSIsImxvZ0xldmVscyIsImF0IiwidG9TdHJpbmciLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImxvZ0xldmVsIiwicmVzb2x2ZUxvZ0xldmVsIiwiRGVmYXVsdExvZ0xldmVsIiwicmVkYWN0aW9ucyIsIkRlZmF1bHRSZWRhY3Rpb25zIl0sIm1hcHBpbmdzIjoiOzs7OytCQWVhQTs7O2VBQUFBOzs7Z0NBZmtCO3FCQUNDO3dCQUNVO3VCQUc2QjtBQVVoRSxNQUFNQTtJQUNKQyxlQUE4QjtJQUN0QywrRkFBK0YsR0FDL0YsQUFBUUMsb0JBQW9CLE1BQU07SUFDMUJDLHVCQUF1QixNQUFNO0lBQ3JDLE9BQWVDLFdBQW1CLElBQUlKLFNBQVM7SUFFL0MsT0FBY0ssT0FDYkMsSUFBYSxFQUNiQyxZQUVDLEVBQ3VCO1FBQ3hCLHVFQUF1RTtRQUN2RSxnRUFBZ0U7UUFDaEUsSUFBSUEsY0FBYztZQUNqQlAsT0FBT0ksUUFBUSxDQUFDSSxTQUFTLENBQWdCRixNQUFNQztRQUNoRDtRQUNBLE9BQU9QLE9BQU9TLGdCQUFnQixDQUFnQkg7SUFDL0M7SUFFQSxPQUFjSSxVQUNiQyxhQUFrRCxFQUNqRDtRQUNELE1BQU1DLFdBQVdaLE9BQU9JLFFBQVE7UUFDaEMsMEVBQTBFO1FBQzFFUSxTQUFTQyxNQUFNO1FBQ2ZiLE9BQU9JLFFBQVEsR0FBRyxJQUFJSjtRQUN0QkEsT0FBT0ksUUFBUSxDQUFDTSxTQUFT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
@@ -4,20 +4,27 @@ import { LoggingConfigurationError } from "./errors.js";
4
4
  import { DefaultLogLevel, DefaultRedactions } from "./types.js";
5
5
  export class scribe {
6
6
  loggerProvider;
7
+ /** True after `configure({ adapter })` — the constructor’s ConsoleAdapter is only a fallback. */ adapterConfigured = false;
8
+ defaultAdapterWarned = false;
7
9
  static instance = new scribe();
8
10
  static logger(name, customLevels) {
9
- return scribe.instance.getLogger(name, customLevels);
11
+ // Apply custom levels once against the active adapter; the live handle
12
+ // re-resolves the underlying logger on each use (CU-869egxmg2).
13
+ if (customLevels) {
14
+ scribe.instance.getLogger(name, customLevels);
15
+ }
16
+ return scribe.createLiveLogger(name);
10
17
  }
11
18
  static configure(configOptions) {
12
19
  const previous = scribe.instance;
13
20
  // Sync: stop writes into the old ThreadStream before a new worker starts.
14
21
  previous.retire();
15
22
  scribe.instance = new scribe();
16
- const factory = scribe.instance.configure(configOptions);
23
+ scribe.instance.configure(configOptions);
17
24
  // Async drain of the retired adapter (flush / end). Flux/App.stop may
18
25
  // have already done this; reconfigure without stop still needs it.
19
26
  void previous.stop();
20
- return factory;
27
+ return (name)=>scribe.logger(name);
21
28
  }
22
29
  static flush(cb) {
23
30
  scribe.instance.loggerProvider.flush(cb);
@@ -28,6 +35,23 @@ export class scribe {
28
35
  /** Drain the active adapter and release workers / destinations. */ static async stop() {
29
36
  await scribe.instance.stop();
30
37
  }
38
+ /**
39
+ * Module-level `const log = scribe.logger(...)` must follow a later
40
+ * `scribe.configure()` (CLI / Flux / HotReloadServer). Forward every use to
41
+ * the active adapter logger for `name`.
42
+ */ static createLiveLogger(name) {
43
+ return new Proxy({}, {
44
+ get (_target, prop) {
45
+ const underlying = scribe.instance.getLogger(name);
46
+ const value = Reflect.get(underlying, prop, underlying);
47
+ return typeof value === "function" ? value.bind(underlying) : value;
48
+ },
49
+ has (_target, prop) {
50
+ const underlying = scribe.instance.getLogger(name);
51
+ return Reflect.has(underlying, prop);
52
+ }
53
+ });
54
+ }
31
55
  constructor(){
32
56
  // Initialize with default console adapter
33
57
  this.loggerProvider = new ConsoleAdapter();
@@ -41,12 +65,13 @@ export class scribe {
41
65
  previous.retire();
42
66
  }
43
67
  this.loggerProvider = adapter;
68
+ this.adapterConfigured = true;
44
69
  const defaultsAndOptions = this.mergeDefaults(options);
45
70
  adapter.configure(defaultsAndOptions);
46
71
  if (previous !== adapter) {
47
72
  void previous.stop();
48
73
  }
49
- return (name)=>adapter.getLogger(name);
74
+ return (name)=>scribe.logger(name);
50
75
  }
51
76
  retire() {
52
77
  this.loggerProvider.retire();
@@ -58,6 +83,7 @@ export class scribe {
58
83
  await this.stop();
59
84
  }
60
85
  getLogger(name, customLevels) {
86
+ this.warnIfDefaultAdapter();
61
87
  // If custom levels are provided, we need to reconfigure the adapter
62
88
  if (customLevels) {
63
89
  const currentOptions = this.mergeDefaults({
@@ -69,6 +95,13 @@ export class scribe {
69
95
  this.supportsLevels(customLevels, logger);
70
96
  return logger;
71
97
  }
98
+ warnIfDefaultAdapter() {
99
+ if (this.adapterConfigured || this.defaultAdapterWarned) {
100
+ return;
101
+ }
102
+ this.defaultAdapterWarned = true;
103
+ process.stderr.write("[scribe] No logger adapter configured; using the default ConsoleAdapter. " + "Configure an adapter at your composition root (for production, prefer " + "@decohere/scribe-pino → JSON on stdout). See " + "https://github.com/typesmiths/decohere/blob/main/projects/scribe/README.md\n");
104
+ }
72
105
  supportsLevels(customLevels, logger) {
73
106
  if (!customLevels) {
74
107
  return;
@@ -83,12 +116,14 @@ export class scribe {
83
116
  }
84
117
  mergeDefaults(options) {
85
118
  const logLevel = resolveLogLevel(options?.logLevel) ?? DefaultLogLevel;
119
+ // Resolved logLevel must win over options spread (invalid explicit values
120
+ // would otherwise stick — CU-869emqjq8).
86
121
  return {
87
- logLevel,
88
122
  redactions: DefaultRedactions,
89
- ...options
123
+ ...options,
124
+ logLevel
90
125
  };
91
126
  }
92
127
  }
93
128
 
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgcHJldmlvdXMgPSBzY3JpYmUuaW5zdGFuY2U7XG5cdFx0Ly8gU3luYzogc3RvcCB3cml0ZXMgaW50byB0aGUgb2xkIFRocmVhZFN0cmVhbSBiZWZvcmUgYSBuZXcgd29ya2VyIHN0YXJ0cy5cblx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHRzY3JpYmUuaW5zdGFuY2UgPSBuZXcgc2NyaWJlKCk7XG5cdFx0Y29uc3QgZmFjdG9yeSA9IHNjcmliZS5pbnN0YW5jZS5jb25maWd1cmU8VCwgQ3VzdG9tT25seT4oY29uZmlnT3B0aW9ucyk7XG5cdFx0Ly8gQXN5bmMgZHJhaW4gb2YgdGhlIHJldGlyZWQgYWRhcHRlciAoZmx1c2ggLyBlbmQpLiBGbHV4L0FwcC5zdG9wIG1heVxuXHRcdC8vIGhhdmUgYWxyZWFkeSBkb25lIHRoaXM7IHJlY29uZmlndXJlIHdpdGhvdXQgc3RvcCBzdGlsbCBuZWVkcyBpdC5cblx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHRyZXR1cm4gZmFjdG9yeTtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0c2NyaWJlLmluc3RhbmNlLmxvZ2dlclByb3ZpZGVyLmZsdXNoKGNiKTtcblx0fVxuXG5cdC8qKiBTeW5jaHJvbm91c2x5IHN0b3AgYWNjZXB0aW5nIHdyaXRlcyBvbiB0aGUgYWN0aXZlIGFkYXB0ZXIuICovXG5cdHB1YmxpYyBzdGF0aWMgcmV0aXJlKCk6IHZvaWQge1xuXHRcdHNjcmliZS5pbnN0YW5jZS5yZXRpcmUoKTtcblx0fVxuXG5cdC8qKiBEcmFpbiB0aGUgYWN0aXZlIGFkYXB0ZXIgYW5kIHJlbGVhc2Ugd29ya2VycyAvIGRlc3RpbmF0aW9ucy4gKi9cblx0cHVibGljIHN0YXRpYyBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHNjcmliZS5pbnN0YW5jZS5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0Ly8gSW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgY29uc29sZSBhZGFwdGVyXG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBDb25zb2xlQWRhcHRlcigpO1xuXHRcdGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKCk7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoZGVmYXVsdE9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IHsgYWRhcHRlciwgb3B0aW9ucyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMubG9nZ2VyUHJvdmlkZXI7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHR9XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHR9XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBhZGFwdGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdH1cblxuXHRwdWJsaWMgcmV0aXJlKCk6IHZvaWQge1xuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIucmV0aXJlKCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLmxvZ2dlclByb3ZpZGVyLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gSWYgY3VzdG9tIGxldmVscyBhcmUgcHJvdmlkZWQsIHdlIG5lZWQgdG8gcmVjb25maWd1cmUgdGhlIGFkYXB0ZXJcblx0XHRpZiAoY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cyh7IGN1c3RvbUxldmVscyB9KTtcblx0XHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGN1cnJlbnRPcHRpb25zKTtcblx0XHR9XG5cblx0XHRjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlclByb3ZpZGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdFx0dGhpcy5zdXBwb3J0c0xldmVscyhjdXN0b21MZXZlbHMsIGxvZ2dlcik7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHByaXZhdGUgc3VwcG9ydHNMZXZlbHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0Y3VzdG9tTGV2ZWxzOiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHRcdGxvZ2dlcjogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRpZiAoIWN1c3RvbUxldmVscykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pc3NpbmdMZXZlbCA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscykuZmluZChcblx0XHRcdChrZXkpID0+ICFsb2dnZXIubG9nTGV2ZWxzW2tleS5hdCgwKS50b1N0cmluZygpXSxcblx0XHQpO1xuXG5cdFx0aWYgKG1pc3NpbmdMZXZlbCAhPSBudWxsKSB7XG5cdFx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdFx0YEN1cnJlbnQgbG9nZ2VyIHdhcyBub3QgY29uZmlndXJlZCBmb3IgY3VzdG9tIGxldmVsICR7bWlzc2luZ0xldmVsfSwgdmFsaWQgbGV2ZWxzIGFyZTogJHtKU09OLnN0cmluZ2lmeShsb2dnZXIubG9nTGV2ZWxzKX1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgbWlzc2luZ0xldmVsIH07XG5cdH1cblxuXHRwcml2YXRlIG1lcmdlRGVmYXVsdHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dMZXZlbCA9IHJlc29sdmVMb2dMZXZlbChvcHRpb25zPy5sb2dMZXZlbCkgPz8gRGVmYXVsdExvZ0xldmVsO1xuXHRcdHJldHVybiB7IGxvZ0xldmVsLCByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucyB9O1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQ29uc29sZUFkYXB0ZXIiLCJyZXNvbHZlTG9nTGV2ZWwiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwiRGVmYXVsdExvZ0xldmVsIiwiRGVmYXVsdFJlZGFjdGlvbnMiLCJzY3JpYmUiLCJsb2dnZXJQcm92aWRlciIsImluc3RhbmNlIiwibG9nZ2VyIiwibmFtZSIsImN1c3RvbUxldmVscyIsImdldExvZ2dlciIsImNvbmZpZ3VyZSIsImNvbmZpZ09wdGlvbnMiLCJwcmV2aW91cyIsInJldGlyZSIsImZhY3RvcnkiLCJzdG9wIiwiZmx1c2giLCJjYiIsImRlZmF1bHRPcHRpb25zIiwibWVyZ2VEZWZhdWx0cyIsImFkYXB0ZXIiLCJvcHRpb25zIiwiZGVmYXVsdHNBbmRPcHRpb25zIiwiU3ltYm9sIiwiYXN5bmNEaXNwb3NlIiwiY3VycmVudE9wdGlvbnMiLCJzdXBwb3J0c0xldmVscyIsIm1pc3NpbmdMZXZlbCIsIk9iamVjdCIsImVudHJpZXMiLCJmaW5kIiwia2V5IiwibG9nTGV2ZWxzIiwiYXQiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJsb2dMZXZlbCIsInJlZGFjdGlvbnMiXSwibWFwcGluZ3MiOiJBQUFB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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdC8qKiBUcnVlIGFmdGVyIGBjb25maWd1cmUoeyBhZGFwdGVyIH0pYCDigJQgdGhlIGNvbnN0cnVjdG9y4oCZcyBDb25zb2xlQWRhcHRlciBpcyBvbmx5IGEgZmFsbGJhY2suICovXG5cdHByaXZhdGUgYWRhcHRlckNvbmZpZ3VyZWQgPSBmYWxzZTtcblx0cHJpdmF0ZSBkZWZhdWx0QWRhcHRlcldhcm5lZCA9IGZhbHNlO1xuXHRwcml2YXRlIHN0YXRpYyBpbnN0YW5jZTogc2NyaWJlID0gbmV3IHNjcmliZSgpO1xuXG5cdHB1YmxpYyBzdGF0aWMgbG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gQXBwbHkgY3VzdG9tIGxldmVscyBvbmNlIGFnYWluc3QgdGhlIGFjdGl2ZSBhZGFwdGVyOyB0aGUgbGl2ZSBoYW5kbGVcblx0XHQvLyByZS1yZXNvbHZlcyB0aGUgdW5kZXJseWluZyBsb2dnZXIgb24gZWFjaCB1c2UgKENVLTg2OWVneG1nMikuXG5cdFx0aWYgKGN1c3RvbUxldmVscykge1xuXHRcdFx0c2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpO1xuXHRcdH1cblx0XHRyZXR1cm4gc2NyaWJlLmNyZWF0ZUxpdmVMb2dnZXI8VCwgQ3VzdG9tT25seT4obmFtZSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHByZXZpb3VzID0gc2NyaWJlLmluc3RhbmNlO1xuXHRcdC8vIFN5bmM6IHN0b3Agd3JpdGVzIGludG8gdGhlIG9sZCBUaHJlYWRTdHJlYW0gYmVmb3JlIGEgbmV3IHdvcmtlciBzdGFydHMuXG5cdFx0cHJldmlvdXMucmV0aXJlKCk7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdHNjcmliZS5pbnN0YW5jZS5jb25maWd1cmU8VCwgQ3VzdG9tT25seT4oY29uZmlnT3B0aW9ucyk7XG5cdFx0Ly8gQXN5bmMgZHJhaW4gb2YgdGhlIHJldGlyZWQgYWRhcHRlciAoZmx1c2ggLyBlbmQpLiBGbHV4L0FwcC5zdG9wIG1heVxuXHRcdC8vIGhhdmUgYWxyZWFkeSBkb25lIHRoaXM7IHJlY29uZmlndXJlIHdpdGhvdXQgc3RvcCBzdGlsbCBuZWVkcyBpdC5cblx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHRyZXR1cm4gKG5hbWU/OiBzdHJpbmcpID0+IHNjcmliZS5sb2dnZXI8VCwgQ3VzdG9tT25seT4obmFtZSk7XG5cdH1cblxuXHRwdWJsaWMgc3RhdGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHNjcmliZS5pbnN0YW5jZS5sb2dnZXJQcm92aWRlci5mbHVzaChjYik7XG5cdH1cblxuXHQvKiogU3luY2hyb25vdXNseSBzdG9wIGFjY2VwdGluZyB3cml0ZXMgb24gdGhlIGFjdGl2ZSBhZGFwdGVyLiAqL1xuXHRwdWJsaWMgc3RhdGljIHJldGlyZSgpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UucmV0aXJlKCk7XG5cdH1cblxuXHQvKiogRHJhaW4gdGhlIGFjdGl2ZSBhZGFwdGVyIGFuZCByZWxlYXNlIHdvcmtlcnMgLyBkZXN0aW5hdGlvbnMuICovXG5cdHB1YmxpYyBzdGF0aWMgYXN5bmMgc3RvcCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCBzY3JpYmUuaW5zdGFuY2Uuc3RvcCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1vZHVsZS1sZXZlbCBgY29uc3QgbG9nID0gc2NyaWJlLmxvZ2dlciguLi4pYCBtdXN0IGZvbGxvdyBhIGxhdGVyXG5cdCAqIGBzY3JpYmUuY29uZmlndXJlKClgIChDTEkgLyBGbHV4IC8gSG90UmVsb2FkU2VydmVyKS4gRm9yd2FyZCBldmVyeSB1c2UgdG9cblx0ICogdGhlIGFjdGl2ZSBhZGFwdGVyIGxvZ2dlciBmb3IgYG5hbWVgLlxuXHQgKi9cblx0cHJpdmF0ZSBzdGF0aWMgY3JlYXRlTGl2ZUxvZ2dlcjxcblx0XHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdFx0Q3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlLFxuXHQ+KG5hbWU/OiBzdHJpbmcpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdHJldHVybiBuZXcgUHJveHkoe30gYXMgTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LCB7XG5cdFx0XHRnZXQoX3RhcmdldCwgcHJvcCkge1xuXHRcdFx0XHRjb25zdCB1bmRlcmx5aW5nID0gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lKSBhcyBvYmplY3Q7XG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodW5kZXJseWluZywgcHJvcCwgdW5kZXJseWluZyk7XG5cdFx0XHRcdHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIlxuXHRcdFx0XHRcdD8gKHZhbHVlIGFzICguLi5hcmdzOiBuZXZlcltdKSA9PiB1bmtub3duKS5iaW5kKHVuZGVybHlpbmcpXG5cdFx0XHRcdFx0OiB2YWx1ZTtcblx0XHRcdH0sXG5cdFx0XHRoYXMoX3RhcmdldCwgcHJvcCkge1xuXHRcdFx0XHRjb25zdCB1bmRlcmx5aW5nID0gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lKSBhcyBvYmplY3Q7XG5cdFx0XHRcdHJldHVybiBSZWZsZWN0Lmhhcyh1bmRlcmx5aW5nLCBwcm9wKTtcblx0XHRcdH0sXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XG5cdFx0Ly8gSW5pdGlhbGl6ZSB3aXRoIGRlZmF1bHQgY29uc29sZSBhZGFwdGVyXG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IG5ldyBDb25zb2xlQWRhcHRlcigpO1xuXHRcdGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKCk7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoZGVmYXVsdE9wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0Y29uZmlnT3B0aW9uczogTG9nZ2VyRmFjdG9yeU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IHsgYWRhcHRlciwgb3B0aW9ucyB9ID0gY29uZmlnT3B0aW9ucztcblx0XHRjb25zdCBwcmV2aW91cyA9IHRoaXMubG9nZ2VyUHJvdmlkZXI7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHRwcmV2aW91cy5yZXRpcmUoKTtcblx0XHR9XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0dGhpcy5hZGFwdGVyQ29uZmlndXJlZCA9IHRydWU7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0aWYgKHByZXZpb3VzICE9PSBhZGFwdGVyKSB7XG5cdFx0XHR2b2lkIHByZXZpb3VzLnN0b3AoKTtcblx0XHR9XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBzY3JpYmUubG9nZ2VyPFQsIEN1c3RvbU9ubHk+KG5hbWUpO1xuXHR9XG5cblx0cHVibGljIHJldGlyZSgpOiB2b2lkIHtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLnJldGlyZSgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5sb2dnZXJQcm92aWRlci5zdG9wKCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMuc3RvcCgpO1xuXHR9XG5cblx0cHVibGljIGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZT86IHN0cmluZyxcblx0XHRjdXN0b21MZXZlbHM/OiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdHRoaXMud2FybklmRGVmYXVsdEFkYXB0ZXIoKTtcblxuXHRcdC8vIElmIGN1c3RvbSBsZXZlbHMgYXJlIHByb3ZpZGVkLCB3ZSBuZWVkIHRvIHJlY29uZmlndXJlIHRoZSBhZGFwdGVyXG5cdFx0aWYgKGN1c3RvbUxldmVscykge1xuXHRcdFx0Y29uc3QgY3VycmVudE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHMoeyBjdXN0b21MZXZlbHMgfSk7XG5cdFx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLmNvbmZpZ3VyZShjdXJyZW50T3B0aW9ucyk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbG9nZ2VyID0gdGhpcy5sb2dnZXJQcm92aWRlci5nZXRMb2dnZXIobmFtZSkgYXMgTG9nZ2VyPFQsIEN1c3RvbU9ubHk+O1xuXHRcdHRoaXMuc3VwcG9ydHNMZXZlbHMoY3VzdG9tTGV2ZWxzLCBsb2dnZXIpO1xuXHRcdHJldHVybiBsb2dnZXI7XG5cdH1cblxuXHRwcml2YXRlIHdhcm5JZkRlZmF1bHRBZGFwdGVyKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmFkYXB0ZXJDb25maWd1cmVkIHx8IHRoaXMuZGVmYXVsdEFkYXB0ZXJXYXJuZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kZWZhdWx0QWRhcHRlcldhcm5lZCA9IHRydWU7XG5cdFx0cHJvY2Vzcy5zdGRlcnIud3JpdGUoXG5cdFx0XHRcIltzY3JpYmVdIE5vIGxvZ2dlciBhZGFwdGVyIGNvbmZpZ3VyZWQ7IHVzaW5nIHRoZSBkZWZhdWx0IENvbnNvbGVBZGFwdGVyLiBcIiArXG5cdFx0XHRcdFwiQ29uZmlndXJlIGFuIGFkYXB0ZXIgYXQgeW91ciBjb21wb3NpdGlvbiByb290IChmb3IgcHJvZHVjdGlvbiwgcHJlZmVyIFwiICtcblx0XHRcdFx0XCJAZGVjb2hlcmUvc2NyaWJlLXBpbm8g4oaSIEpTT04gb24gc3Rkb3V0KS4gU2VlIFwiICtcblx0XHRcdFx0XCJodHRwczovL2dpdGh1Yi5jb20vdHlwZXNtaXRocy9kZWNvaGVyZS9ibG9iL21haW4vcHJvamVjdHMvc2NyaWJlL1JFQURNRS5tZFxcblwiLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIHN1cHBvcnRzTGV2ZWxzPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdGN1c3RvbUxldmVsczoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0XHRsb2dnZXI6IExvZ2dlcjxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0aWYgKCFjdXN0b21MZXZlbHMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBtaXNzaW5nTGV2ZWwgPSBPYmplY3QuZW50cmllcyhjdXN0b21MZXZlbHMpLmZpbmQoXG5cdFx0XHQoa2V5KSA9PiAhbG9nZ2VyLmxvZ0xldmVsc1trZXkuYXQoMCkudG9TdHJpbmcoKV0sXG5cdFx0KTtcblxuXHRcdGlmIChtaXNzaW5nTGV2ZWwgIT0gbnVsbCkge1xuXHRcdFx0dGhyb3cgbmV3IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IoXG5cdFx0XHRcdGBDdXJyZW50IGxvZ2dlciB3YXMgbm90IGNvbmZpZ3VyZWQgZm9yIGN1c3RvbSBsZXZlbCAke21pc3NpbmdMZXZlbH0sIHZhbGlkIGxldmVscyBhcmU6ICR7SlNPTi5zdHJpbmdpZnkobG9nZ2VyLmxvZ0xldmVscyl9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB7IG1pc3NpbmdMZXZlbCB9O1xuXHR9XG5cblx0cHJpdmF0ZSBtZXJnZURlZmF1bHRzPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRvcHRpb25zPzogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgbG9nTGV2ZWwgPSByZXNvbHZlTG9nTGV2ZWwob3B0aW9ucz8ubG9nTGV2ZWwpID8/IERlZmF1bHRMb2dMZXZlbDtcblx0XHQvLyBSZXNvbHZlZCBsb2dMZXZlbCBtdXN0IHdpbiBvdmVyIG9wdGlvbnMgc3ByZWFkIChpbnZhbGlkIGV4cGxpY2l0IHZhbHVlc1xuXHRcdC8vIHdvdWxkIG90aGVyd2lzZSBzdGljayDigJQgQ1UtODY5ZW1xanE4KS5cblx0XHRyZXR1cm4geyByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucywgbG9nTGV2ZWwgfTtcblx0fVxufVxuIl0sIm5hbWVzIjpbIkNvbnNvbGVBZGFwdGVyIiwicmVzb2x2ZUxvZ0xldmVsIiwiTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvciIsIkRlZmF1bHRMb2dMZXZlbCIsIkRlZmF1bHRSZWRhY3Rpb25zIiwic2NyaWJlIiwibG9nZ2VyUHJvdmlkZXIiLCJhZGFwdGVyQ29uZmlndXJlZCIsImRlZmF1bHRBZGFwdGVyV2FybmVkIiwiaW5zdGFuY2UiLCJsb2dnZXIiLCJuYW1lIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nZ2VyIiwiY3JlYXRlTGl2ZUxvZ2dlciIsImNvbmZpZ3VyZSIsImNvbmZpZ09wdGlvbnMiLCJwcmV2aW91cyIsInJldGlyZSIsInN0b3AiLCJmbHVzaCIsImNiIiwiUHJveHkiLCJnZXQiLCJfdGFyZ2V0IiwicHJvcCIsInVuZGVybHlpbmciLCJ2YWx1ZSIsIlJlZmxlY3QiLCJiaW5kIiwiaGFzIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJ3YXJuSWZEZWZhdWx0QWRhcHRlciIsImN1cnJlbnRPcHRpb25zIiwic3VwcG9ydHNMZXZlbHMiLCJwcm9jZXNzIiwic3RkZXJyIiwid3JpdGUiLCJtaXNzaW5nTGV2ZWwiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmluZCIsImtleSIsImxvZ0xldmVscyIsImF0IiwidG9TdHJpbmciLCJKU09OIiwic3RyaW5naWZ5IiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLFFBQVEsdUJBQXVCO0FBQ3RELFNBQVNDLGVBQWUsUUFBUSxXQUFXO0FBQzNDLFNBQVNDLHlCQUF5QixRQUFRLGNBQWM7QUFHeEQsU0FBU0MsZUFBZSxFQUFFQyxpQkFBaUIsUUFBNEIsYUFBYTtBQVVwRixPQUFPLE1BQU1DO0lBQ0pDLGVBQThCO0lBQ3RDLCtGQUErRixHQUMvRixBQUFRQyxvQkFBb0IsTUFBTTtJQUMxQkMsdUJBQXVCLE1BQU07SUFDckMsT0FBZUMsV0FBbUIsSUFBSUosU0FBUztJQUUvQyxPQUFjSyxPQUNiQyxJQUFhLEVBQ2JDLFlBRUMsRUFDdUI7UUFDeEIsdUVBQXVFO1FBQ3ZFLGdFQUFnRTtRQUNoRSxJQUFJQSxjQUFjO1lBQ2pCUCxPQUFPSSxRQUFRLENBQUNJLFNBQVMsQ0FBZ0JGLE1BQU1DO1FBQ2hEO1FBQ0EsT0FBT1AsT0FBT1MsZ0JBQWdCLENBQWdCSDtJQUMvQztJQUVBLE9BQWNJLFVBQ2JDLGFBQWtELEVBQ2pEO1FBQ0QsTUFBTUMsV0FBV1osT0FBT0ksUUFBUTtRQUNo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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/scribe",
3
- "version": "0.0.1-dev.77",
3
+ "version": "0.0.1-dev.79",
4
4
  "description": "Structured logging interface with pluggable adapters",
5
5
  "keywords": [
6
6
  "typescript",
@@ -7,6 +7,9 @@ type LoggerFactoryOptions<T extends string = never, CustomOnly extends true | fa
7
7
  };
8
8
  export declare class scribe implements AsyncDisposable {
9
9
  private loggerProvider;
10
+ /** True after `configure({ adapter })` — the constructor’s ConsoleAdapter is only a fallback. */
11
+ private adapterConfigured;
12
+ private defaultAdapterWarned;
10
13
  private static instance;
11
14
  static logger<T extends string = never, CustomOnly extends true | false = false>(name?: string, customLevels?: {
12
15
  [level in T]: number;
@@ -17,6 +20,12 @@ export declare class scribe implements AsyncDisposable {
17
20
  static retire(): void;
18
21
  /** Drain the active adapter and release workers / destinations. */
19
22
  static stop(): Promise<void>;
23
+ /**
24
+ * Module-level `const log = scribe.logger(...)` must follow a later
25
+ * `scribe.configure()` (CLI / Flux / HotReloadServer). Forward every use to
26
+ * the active adapter logger for `name`.
27
+ */
28
+ private static createLiveLogger;
20
29
  constructor();
21
30
  configure<T extends string = never, CustomOnly extends true | false = false>(configOptions: LoggerFactoryOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
22
31
  retire(): void;
@@ -25,6 +34,7 @@ export declare class scribe implements AsyncDisposable {
25
34
  getLogger<T extends string = never, CustomOnly extends true | false = false>(name?: string, customLevels?: {
26
35
  [level in T]: number;
27
36
  }): Logger<T, CustomOnly>;
37
+ private warnIfDefaultAdapter;
28
38
  private supportsLevels;
29
39
  private mergeDefaults;
30
40
  }