@decohere/scribe-pino 0.0.1-dev.69 → 0.0.1-dev.7

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.
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  _export_star(require("./pino.adapater.js"), exports);
6
- _export_star(require("./pino.recipe.js"), exports);
7
6
  _export_star(require("./scribe-pino.js"), exports);
8
7
  function _export_star(from, to) {
9
8
  Object.keys(from).forEach(function(k) {
@@ -19,4 +18,4 @@ function _export_star(from, to) {
19
18
  return from;
20
19
  }
21
20
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGluby5yZWNpcGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjcmliZS1waW5vLmpzXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBYztxQkFDQTtxQkFDQSJ9
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NyaWJlLXBpbm8uanNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFjO3FCQUNBIn0=
@@ -19,7 +19,6 @@ class PinoAdapter extends _scribe.LogAdapter {
19
19
  _pino;
20
20
  options;
21
21
  stream;
22
- disposed = false;
23
22
  constructor(options, stream){
24
23
  super();
25
24
  this.options = options;
@@ -51,41 +50,10 @@ class PinoAdapter extends _scribe.LogAdapter {
51
50
  flush(cb) {
52
51
  this._pino.flush(cb);
53
52
  }
54
- async [Symbol.asyncDispose]() {
55
- if (this.disposed) {
56
- return;
57
- }
58
- this.disposed = true;
59
- if (this._pino) {
60
- await new Promise((resolve)=>{
61
- this._pino.flush(()=>resolve());
62
- });
63
- }
64
- await endDestination(this.stream);
65
- }
66
- }
67
- function endDestination(stream) {
68
- const endable = stream;
69
- if (typeof endable?.end !== "function") {
70
- return Promise.resolve();
71
- }
72
- return new Promise((resolve)=>{
73
- try {
74
- endable.end(()=>resolve());
75
- } catch {
76
- resolve();
77
- }
78
- });
79
53
  }
80
54
  function logMethod(args, method) {
81
55
  let message = args.at(0);
82
56
  const data = args.at(1);
83
- if (message instanceof Error) {
84
- method.call(this, {
85
- err: message
86
- }, (0, _scribe.formatError)(message));
87
- return;
88
- }
89
57
  if (data instanceof Error) {
90
58
  message = {
91
59
  msg: message,
@@ -117,4 +85,4 @@ function pinoMix(logger) {
117
85
  });
118
86
  }
119
87
 
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdGZvcm1hdEVycm9yLFxuXHRMb2dBZGFwdGVyLFxuXHR0eXBlIExvZ2dlcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxufSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHBpbm8sIHsgdHlwZSBMb2dGbiB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIFBpbm9BZGFwYXRlck9wdGlvbnMgPSB7XG5cdG9wdGlvbnM/OiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW07XG59O1xuXG50eXBlIEVuZGFibGVTdHJlYW0gPSB7XG5cdGVuZD86IChjYj86IChlcnI/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY2xhc3MgUGlub0FkYXB0ZXIgZXh0ZW5kcyBMb2dBZGFwdGVyIHtcblx0cHJpdmF0ZSBfcGlubzogcGluby5Mb2dnZXI7XG5cdHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zO1xuXHRwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogcGluby5EZXN0aW5hdGlvblN0cmVhbSB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBkaXNwb3NlZCA9IGZhbHNlO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMsIHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW0pIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cdFx0dGhpcy5zdHJlYW0gPSBzdHJlYW07XG5cdH1cblxuXHRwdWJsaWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRzY3JpYmVPcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRjb25zdCB7IGxvZ0xldmVsLCByZWRhY3Rpb25zIH0gPSBzY3JpYmVPcHRpb25zO1xuXHRcdGNvbnN0IGN1c3RvbUxldmVscyA9IHRoaXMuZ2V0TG9nTGV2ZWxzKHNjcmliZU9wdGlvbnMpO1xuXG5cdFx0Y29uc3QgcGlub09wdGlvbnM6IHBpbm8uTG9nZ2VyT3B0aW9ucyA9IHtcblx0XHRcdGN1c3RvbUxldmVscyxcblx0XHRcdGxldmVsOiBsb2dMZXZlbCxcblx0XHRcdGhvb2tzOiB7IGxvZ01ldGhvZCB9LFxuXHRcdFx0c2VyaWFsaXplcnM6IHtcblx0XHRcdFx0ZXJyb3I6IHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyLFxuXHRcdFx0fSxcblx0XHRcdHJlZGFjdDogcmVkYWN0aW9ucyxcblx0XHRcdC4uLnRoaXMub3B0aW9ucyxcblx0XHR9O1xuXHRcdHRoaXMuX3Bpbm8gPSBwaW5vKHBpbm9PcHRpb25zLCB0aGlzLnN0cmVhbSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lOiBzdHJpbmcsXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgbG9nZ2VyID0gcGlub01peDxULCBDdXN0b21Pbmx5Pih0aGlzLl9waW5vLmNoaWxkKHsgbmFtZSB9KSk7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHB1YmxpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLl9waW5vLmZsdXNoKGNiKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuZGlzcG9zZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kaXNwb3NlZCA9IHRydWU7XG5cdFx0aWYgKHRoaXMuX3Bpbm8pIHtcblx0XHRcdGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3Bpbm8uZmx1c2goKCkgPT4gcmVzb2x2ZSgpKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRhd2FpdCBlbmREZXN0aW5hdGlvbih0aGlzLnN0cmVhbSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gZW5kRGVzdGluYXRpb24oc3RyZWFtOiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IGVuZGFibGUgPSBzdHJlYW0gYXMgRW5kYWJsZVN0cmVhbSB8IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBlbmRhYmxlPy5lbmQgIT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxuXHRyZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0ZW5kYWJsZS5lbmQoKCkgPT4gcmVzb2x2ZSgpKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJlc29sdmUoKTtcblx0XHR9XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBsb2dNZXRob2QodGhpczogcGluby5Mb2dnZXIsIGFyZ3M6IFBhcmFtZXRlcnM8TG9nRm4+LCBtZXRob2Q6IExvZ0ZuKSB7XG5cdGxldCBtZXNzYWdlID0gYXJncy5hdCgwKTtcblx0Y29uc3QgZGF0YSA9IGFyZ3MuYXQoMSk7XG5cblx0aWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdG1ldGhvZC5jYWxsKHRoaXMsIHsgZXJyOiBtZXNzYWdlIH0sIGZvcm1hdEVycm9yKG1lc3NhZ2UpKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoZGF0YSBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi57IGVycm9yOiBkYXRhIH0gfTtcblx0fSBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuXHRcdG1lc3NhZ2UgPSB7IG1zZzogbWVzc2FnZSwgLi4uZGF0YSB9O1xuXHR9IGVsc2Uge1xuXHRcdG1lc3NhZ2UgPSB7IG1zZzogbWVzc2FnZSwgZGF0YSB9O1xuXHR9XG5cblx0bWV0aG9kLmNhbGwodGhpcywgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIHBpbm9NaXg8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRsb2dnZXI6IHBpbm8uTG9nZ2VyLFxuKTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ248cGluby5Mb2dnZXIsIEJhc2VMb2dnZXI+KGxvZ2dlciwge1xuXHRcdGdldCBjdXJyZW50TGV2ZWwoKSB7XG5cdFx0XHRyZXR1cm4gbG9nZ2VyLmxldmVsO1xuXHRcdH0sXG5cdFx0Z2V0IGxvZ0xldmVscygpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWxzLnZhbHVlcztcblx0XHR9LFxuXHR9KSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG59XG4iXSwibmFtZXMiOlsiUGlub0FkYXB0ZXIiLCJMb2dBZGFwdGVyIiwiX3Bpbm8iLCJvcHRpb25zIiwic3RyZWFtIiwiZGlzcG9zZWQiLCJjb25maWd1cmUiLCJzY3JpYmVPcHRpb25zIiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nTGV2ZWxzIiwicGlub09wdGlvbnMiLCJsZXZlbCIsImhvb2tzIiwibG9nTWV0aG9kIiwic2VyaWFsaXplcnMiLCJlcnJvciIsInBpbm8iLCJzdGRTZXJpYWxpemVycyIsImVyciIsInJlZGFjdCIsImdldExvZ2dlciIsIm5hbWUiLCJsb2dnZXIiLCJwaW5vTWl4IiwiY2hpbGQiLCJmbHVzaCIsImNiIiwiU3ltYm9sIiwiYXN5bmNEaXNwb3NlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlbmREZXN0aW5hdGlvbiIsImVuZGFibGUiLCJlbmQiLCJhcmdzIiwibWV0aG9kIiwibWVzc2FnZSIsImF0IiwiZGF0YSIsIkVycm9yIiwiY2FsbCIsImZvcm1hdEVycm9yIiwibXNnIiwiT2JqZWN0IiwiYXNzaWduIiwiY3VycmVudExldmVsIiwibG9nTGV2ZWxzIiwibGV2ZWxzIiwidmFsdWVzIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtCYUE7OztlQUFBQTs7O3dCQVpOOzZEQUMwQjs7Ozs7O0FBVzFCLE1BQU1BLG9CQUFvQkMsa0JBQVU7SUFDbENDLE1BQW1CO0lBQ1ZDLFFBQTRCO0lBQzVCQyxPQUEyQztJQUNwREMsV0FBVyxNQUFNO0lBRXpCLFlBQW1CRixPQUEyQixFQUFFQyxNQUErQixDQUFFO1FBQ2hGLEtBQUs7UUFDTCxJQUFJLENBQUNELE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7SUFDZjtJQUVPRSxVQUNOQyxhQUEyQyxFQUMxQztRQUNELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUUsR0FBR0Y7UUFDakMsTUFBTUcsZUFBZSxJQUFJLENBQUNDLFlBQVksQ0FBQ0o7UUFFdkMsTUFBTUssY0FBa0M7WUFDdkNGO1lBQ0FHLE9BQU9MO1lBQ1BNLE9BQU87Z0JBQUVDO1lBQVU7WUFDbkJDLGFBQWE7Z0JBQ1pDLE9BQU9DLGFBQUksQ0FBQ0MsY0FBYyxDQUFDQyxHQUFHO1lBQy9CO1lBQ0FDLFFBQVFaO1lBQ1IsR0FBRyxJQUFJLENBQUNOLE9BQU87UUFDaEI7UUFDQSxJQUFJLENBQUNELEtBQUssR0FBR2dCLElBQUFBLGFBQUksRUFBQ04sYUFBYSxJQUFJLENBQUNSLE1BQU07SUFDM0M7SUFFT2tCLFVBQ05DLElBQVksRUFDWTtRQUN4QixNQUFNQyxTQUFTQyxRQUF1QixJQUFJLENBQUN2QixLQUFLLENBQUN3QixLQUFLLENBQUM7WUFBRUg7UUFBSztRQUM5RCxPQUFPQztJQUNSO0lBRU9HLE1BQU1DLEVBQWUsRUFBUTtRQUNuQyxJQUFJLENBQUMxQixLQUFLLENBQUN5QixLQUFLLENBQUNDO0lBQ2xCO0lBRUEsTUFBYSxDQUFDQyxPQUFPQyxZQUFZLENBQUMsR0FBa0I7UUFDbkQsSUFBSSxJQUFJLENBQUN6QixRQUFRLEVBQUU7WUFDbEI7UUFDRDtRQUNBLElBQUksQ0FBQ0EsUUFBUSxHQUFHO1FBQ2hCLElBQUksSUFBSSxDQUFDSCxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUk2QixRQUFjLENBQUNDO2dCQUN4QixJQUFJLENBQUM5QixLQUFLLENBQUN5QixLQUFLLENBQUMsSUFBTUs7WUFDeEI7UUFDRDtRQUNBLE1BQU1DLGVBQWUsSUFBSSxDQUFDN0IsTUFBTTtJQUNqQztBQUNEO0FBRUEsU0FBUzZCLGVBQWU3QixNQUEwQztJQUNqRSxNQUFNOEIsVUFBVTlCO0lBQ2hCLElBQUksT0FBTzhCLFNBQVNDLFFBQVEsWUFBWTtRQUN2QyxPQUFPSixRQUFRQyxPQUFPO0lBQ3ZCO0lBQ0EsT0FBTyxJQUFJRCxRQUFjLENBQUNDO1FBQ3pCLElBQUk7WUFDSEUsUUFBUUMsR0FBRyxDQUFDLElBQU1IO1FBQ25CLEVBQUUsT0FBTTtZQUNQQTtRQUNEO0lBQ0Q7QUFDRDtBQUVBLFNBQVNqQixVQUE2QnFCLElBQXVCLEVBQUVDLE1BQWE7SUFDM0UsSUFBSUMsVUFBVUYsS0FBS0csRUFBRSxDQUFDO0lBQ3RCLE1BQU1DLE9BQU9KLEtBQUtHLEVBQUUsQ0FBQztJQUVyQixJQUFJRCxtQkFBbUJHLE9BQU87UUFDN0JKLE9BQU9LLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRXRCLEtBQUtrQjtRQUFRLEdBQUdLLElBQUFBLG1CQUFXLEVBQUNMO1FBQ2hEO0lBQ0Q7SUFFQSxJQUFJRSxnQkFBZ0JDLE9BQU87UUFDMUJILFVBQVU7WUFBRU0sS0FBS047WUFBUyxHQUFHO2dCQUFFckIsT0FBT3VCO1lBQUssQ0FBQztRQUFDO0lBQzlDLE9BQU8sSUFBSSxPQUFPQSxTQUFTLFVBQVU7UUFDcENGLFVBQVU7WUFBRU0sS0FBS047WUFBUyxHQUFHRSxJQUFJO1FBQUM7SUFDbkMsT0FBTztRQUNORixVQUFVO1lBQUVNLEtBQUtOO1lBQVNFO1FBQUs7SUFDaEM7SUFFQUgsT0FBT0ssSUFBSSxDQUFDLElBQUksRUFBRUo7QUFDbkI7QUFFQSxTQUFTYixRQUNSRCxNQUFtQjtJQUVuQixPQUFPcUIsT0FBT0MsTUFBTSxDQUEwQnRCLFFBQVE7UUFDckQsSUFBSXVCLGdCQUFlO1lBQ2xCLE9BQU92QixPQUFPWCxLQUFLO1FBQ3BCO1FBQ0EsSUFBSW1DLGFBQVk7WUFDZixPQUFPeEIsT0FBT3lCLE1BQU0sQ0FBQ0MsTUFBTTtRQUM1QjtJQUNEO0FBQ0QifQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdExvZ0FkYXB0ZXIsXG5cdHR5cGUgTG9nZ2VyLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgcGlubywgeyB0eXBlIExvZ0ZuIH0gZnJvbSBcInBpbm9cIjtcblxuZXhwb3J0IHR5cGUgUGlub0FkYXBhdGVyT3B0aW9ucyA9IHtcblx0b3B0aW9ucz86IHBpbm8uTG9nZ2VyT3B0aW9ucztcblx0c3RyZWFtPzogcGluby5EZXN0aW5hdGlvblN0cmVhbTtcbn07XG5cbmV4cG9ydCBjbGFzcyBQaW5vQWRhcHRlciBleHRlbmRzIExvZ0FkYXB0ZXIge1xuXHRwcml2YXRlIF9waW5vOiBwaW5vLkxvZ2dlcjtcblx0cHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtO1xuXHRwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zLCBzdHJlYW0/OiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RyZWFtID0gc3RyZWFtO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0c2NyaWJlT3B0aW9uczogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgeyBsb2dMZXZlbCwgcmVkYWN0aW9ucyB9ID0gc2NyaWJlT3B0aW9ucztcblx0XHRjb25zdCBjdXN0b21MZXZlbHMgPSB0aGlzLmdldExvZ0xldmVscyhzY3JpYmVPcHRpb25zKTtcblxuXHRcdGNvbnN0IHBpbm9PcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMgPSB7XG5cdFx0XHRjdXN0b21MZXZlbHMsXG5cdFx0XHRsZXZlbDogbG9nTGV2ZWwsXG5cdFx0XHRob29rczogeyBsb2dNZXRob2QgfSxcblx0XHRcdHNlcmlhbGl6ZXJzOiB7XG5cdFx0XHRcdGVycm9yOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycixcblx0XHRcdH0sXG5cdFx0XHRyZWRhY3Q6IHJlZGFjdGlvbnMsXG5cdFx0XHQuLi50aGlzLm9wdGlvbnMsXG5cdFx0fTtcblx0XHR0aGlzLl9waW5vID0gcGlubyhwaW5vT3B0aW9ucywgdGhpcy5zdHJlYW0pO1xuXHR9XG5cblx0cHVibGljIGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IGxvZ2dlciA9IHBpbm9NaXg8VCwgQ3VzdG9tT25seT4odGhpcy5fcGluby5jaGlsZCh7IG5hbWUgfSkpO1xuXHRcdHJldHVybiBsb2dnZXI7XG5cdH1cblxuXHRwdWJsaWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5fcGluby5mbHVzaChjYik7XG5cdH1cbn1cblxuZnVuY3Rpb24gbG9nTWV0aG9kKHRoaXM6IHBpbm8uTG9nZ2VyLCBhcmdzOiBQYXJhbWV0ZXJzPExvZ0ZuPiwgbWV0aG9kOiBMb2dGbikge1xuXHRsZXQgbWVzc2FnZSA9IGFyZ3MuYXQoMCk7XG5cdGNvbnN0IGRhdGEgPSBhcmdzLmF0KDEpO1xuXG5cdGlmIChkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRtZXNzYWdlID0geyBtc2c6IG1lc3NhZ2UsIC4uLnsgZXJyb3I6IGRhdGEgfSB9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi5kYXRhIH07XG5cdH0gZWxzZSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCBkYXRhIH07XG5cdH1cblxuXHRtZXRob2QuY2FsbCh0aGlzLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gcGlub01peDxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdGxvZ2dlcjogcGluby5Mb2dnZXIsXG4pOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbjxwaW5vLkxvZ2dlciwgQmFzZUxvZ2dlcj4obG9nZ2VyLCB7XG5cdFx0Z2V0IGN1cnJlbnRMZXZlbCgpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWw7XG5cdFx0fSxcblx0XHRnZXQgbG9nTGV2ZWxzKCkge1xuXHRcdFx0cmV0dXJuIGxvZ2dlci5sZXZlbHMudmFsdWVzO1xuXHRcdH0sXG5cdH0pIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcbn1cbiJdLCJuYW1lcyI6WyJQaW5vQWRhcHRlciIsIkxvZ0FkYXB0ZXIiLCJfcGlubyIsIm9wdGlvbnMiLCJzdHJlYW0iLCJjb25maWd1cmUiLCJzY3JpYmVPcHRpb25zIiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nTGV2ZWxzIiwicGlub09wdGlvbnMiLCJsZXZlbCIsImhvb2tzIiwibG9nTWV0aG9kIiwic2VyaWFsaXplcnMiLCJlcnJvciIsInBpbm8iLCJzdGRTZXJpYWxpemVycyIsImVyciIsInJlZGFjdCIsImdldExvZ2dlciIsIm5hbWUiLCJsb2dnZXIiLCJwaW5vTWl4IiwiY2hpbGQiLCJmbHVzaCIsImNiIiwiYXJncyIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJhdCIsImRhdGEiLCJFcnJvciIsIm1zZyIsImNhbGwiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50TGV2ZWwiLCJsb2dMZXZlbHMiLCJsZXZlbHMiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiI7Ozs7K0JBYWFBOzs7ZUFBQUE7Ozt3QkFSTjs2REFDMEI7Ozs7OztBQU8xQixNQUFNQSxvQkFBb0JDLGtCQUFVO0lBQ2xDQyxNQUFtQjtJQUNWQyxRQUE0QjtJQUM1QkMsT0FBK0I7SUFDaEQsWUFBbUJELE9BQTJCLEVBQUVDLE1BQStCLENBQUU7UUFDaEYsS0FBSztRQUNMLElBQUksQ0FBQ0QsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNmO0lBRU9DLFVBQ05DLGFBQTJDLEVBQzFDO1FBQ0QsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRSxHQUFHRjtRQUNqQyxNQUFNRyxlQUFlLElBQUksQ0FBQ0MsWUFBWSxDQUFDSjtRQUV2QyxNQUFNSyxjQUFrQztZQUN2Q0Y7WUFDQUcsT0FBT0w7WUFDUE0sT0FBTztnQkFBRUM7WUFBVTtZQUNuQkMsYUFBYTtnQkFDWkMsT0FBT0MsYUFBSSxDQUFDQyxjQUFjLENBQUNDLEdBQUc7WUFDL0I7WUFDQUMsUUFBUVo7WUFDUixHQUFHLElBQUksQ0FBQ0wsT0FBTztRQUNoQjtRQUNBLElBQUksQ0FBQ0QsS0FBSyxHQUFHZSxJQUFBQSxhQUFJLEVBQUNOLGFBQWEsSUFBSSxDQUFDUCxNQUFNO0lBQzNDO0lBRU9pQixVQUNOQyxJQUFZLEVBQ1k7UUFDeEIsTUFBTUMsU0FBU0MsUUFBdUIsSUFBSSxDQUFDdEIsS0FBSyxDQUFDdUIsS0FBSyxDQUFDO1lBQUVIO1FBQUs7UUFDOUQsT0FBT0M7SUFDUjtJQUVPRyxNQUFNQyxFQUFlLEVBQVE7UUFDbkMsSUFBSSxDQUFDekIsS0FBSyxDQUFDd0IsS0FBSyxDQUFDQztJQUNsQjtBQUNEO0FBRUEsU0FBU2IsVUFBNkJjLElBQXVCLEVBQUVDLE1BQWE7SUFDM0UsSUFBSUMsVUFBVUYsS0FBS0csRUFBRSxDQUFDO0lBQ3RCLE1BQU1DLE9BQU9KLEtBQUtHLEVBQUUsQ0FBQztJQUVyQixJQUFJQyxnQkFBZ0JDLE9BQU87UUFDMUJILFVBQVU7WUFBRUksS0FBS0o7WUFBUyxHQUFHO2dCQUFFZCxPQUFPZ0I7WUFBSyxDQUFDO1FBQUM7SUFDOUMsT0FBTyxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUNwQ0YsVUFBVTtZQUFFSSxLQUFLSjtZQUFTLEdBQUdFLElBQUk7UUFBQztJQUNuQyxPQUFPO1FBQ05GLFVBQVU7WUFBRUksS0FBS0o7WUFBU0U7UUFBSztJQUNoQztJQUVBSCxPQUFPTSxJQUFJLENBQUMsSUFBSSxFQUFFTDtBQUNuQjtBQUVBLFNBQVNOLFFBQ1JELE1BQW1CO0lBRW5CLE9BQU9hLE9BQU9DLE1BQU0sQ0FBMEJkLFFBQVE7UUFDckQsSUFBSWUsZ0JBQWU7WUFDbEIsT0FBT2YsT0FBT1gsS0FBSztRQUNwQjtRQUNBLElBQUkyQixhQUFZO1lBQ2YsT0FBT2hCLE9BQU9pQixNQUFNLENBQUNDLE1BQU07UUFDNUI7SUFDRDtBQUNEIn0=
@@ -2,31 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get PinoExtensions () {
5
+ Object.defineProperty(exports, "PinoExtensions", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return PinoExtensions;
14
- },
15
- get pinoTransport () {
16
- return pinoTransport;
17
9
  }
18
10
  });
19
11
  const _extensibility = require("@decohere/nexus/extensibility");
20
12
  const _system = require("@decohere/nexus/system");
21
13
  const _scribe = require("@decohere/scribe");
22
- const _pino = /*#__PURE__*/ _interop_require_default(require("pino"));
23
14
  const _pinoadapater = require("./pino.adapater.js");
24
- const _pinorecipe = require("./pino.recipe.js");
25
- function _interop_require_default(obj) {
26
- return obj && obj.__esModule ? obj : {
27
- default: obj
28
- };
29
- }
30
15
  function _ts_decorate(decorators, target, key, desc) {
31
16
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32
17
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -42,28 +27,23 @@ class PinoExtensions {
42
27
  logLevel
43
28
  }, config);
44
29
  }
45
- static withPinoPretty(factory, logLevelOrOptions) {
46
- const pretty = parsePrettyArg(logLevelOrOptions);
47
- return attachRecipe(factory, {
48
- pretty,
49
- logLevel: pretty.logLevel
50
- });
51
- }
52
- static withPinoRoll(factory, options) {
53
- return attachRecipe(factory, {
54
- roll: options,
55
- logLevel: options.logLevel
56
- });
30
+ static withPinoPretty(factory, logLevel) {
31
+ return PinoExtensions.withPino(factory, {
32
+ transports: {
33
+ target: "pino-pretty",
34
+ options: {
35
+ colorize: true
36
+ }
37
+ }
38
+ }, logLevel);
57
39
  }
58
40
  static withPinoCustom(factory, options) {
59
- const { scribe, transports } = options ?? {};
41
+ const { scribe, transports } = options;
60
42
  return configureScribe(factory, scribe, transports);
61
43
  }
62
44
  }
63
45
  _ts_decorate([
64
- (0, _extensibility.extension)(_scribe.scribe, {
65
- static: true
66
- }),
46
+ (0, _extensibility.extension)(_scribe.scribe),
67
47
  _ts_metadata("design:type", Function),
68
48
  _ts_metadata("design:paramtypes", [
69
49
  typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
@@ -73,9 +53,7 @@ _ts_decorate([
73
53
  _ts_metadata("design:returntype", void 0)
74
54
  ], PinoExtensions, "withPino", null);
75
55
  _ts_decorate([
76
- (0, _extensibility.extension)(_scribe.scribe, {
77
- static: true
78
- }),
56
+ (0, _extensibility.extension)(_scribe.scribe),
79
57
  _ts_metadata("design:type", Function),
80
58
  _ts_metadata("design:paramtypes", [
81
59
  typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
@@ -84,20 +62,7 @@ _ts_decorate([
84
62
  _ts_metadata("design:returntype", void 0)
85
63
  ], PinoExtensions, "withPinoPretty", null);
86
64
  _ts_decorate([
87
- (0, _extensibility.extension)(_scribe.scribe, {
88
- static: true
89
- }),
90
- _ts_metadata("design:type", Function),
91
- _ts_metadata("design:paramtypes", [
92
- typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
93
- typeof PinoRollRecipeOptions === "undefined" ? Object : PinoRollRecipeOptions
94
- ]),
95
- _ts_metadata("design:returntype", void 0)
96
- ], PinoExtensions, "withPinoRoll", null);
97
- _ts_decorate([
98
- (0, _extensibility.extension)(_scribe.scribe, {
99
- static: true
100
- }),
65
+ (0, _extensibility.extension)(_scribe.scribe),
101
66
  _ts_metadata("design:type", Function),
102
67
  _ts_metadata("design:paramtypes", [
103
68
  typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
@@ -105,92 +70,23 @@ _ts_decorate([
105
70
  ]),
106
71
  _ts_metadata("design:returntype", void 0)
107
72
  ], PinoExtensions, "withPinoCustom", null);
108
- function parsePrettyArg(logLevelOrOptions) {
109
- if (logLevelOrOptions == null) {
110
- return {};
111
- }
112
- if (typeof logLevelOrOptions === "string") {
113
- return {
114
- logLevel: logLevelOrOptions
115
- };
116
- }
117
- return logLevelOrOptions;
118
- }
119
- function attachRecipe(factory, plan) {
120
- const loggerFactory = applyRecipe(factory, plan);
121
- const chain = {
122
- withPinoPretty (logLevelOrOptions) {
123
- const pretty = parsePrettyArg(logLevelOrOptions);
124
- return attachRecipe(factory, {
125
- ...plan,
126
- pretty: {
127
- ...plan.pretty,
128
- ...pretty
129
- },
130
- logLevel: pretty.logLevel ?? plan.logLevel
131
- });
132
- },
133
- withPinoRoll (options) {
134
- return attachRecipe(factory, {
135
- ...plan,
136
- roll: options,
137
- logLevel: options.logLevel ?? plan.logLevel
138
- });
139
- }
140
- };
141
- return Object.assign(loggerFactory, chain, {
142
- and: chain
143
- });
144
- }
145
- /**
146
- * Attach a listener so worker transport failures (e.g. pino-roll symlink EEXIST)
147
- * never become Node's default unhandled `error` crash.
148
- */ function silenceErrors(transport) {
149
- transport.on("error", (err)=>{
150
- const detail = err?.stack ?? String(err);
151
- process.stderr.write(`[scribe-pino] transport error: ${detail}\n`);
152
- });
153
- }
154
- function createSafeTransport(options) {
155
- const transport = _pino.default.transport(options);
156
- silenceErrors(transport);
157
- return transport;
158
- }
159
- function adapterForTransport(transport) {
160
- if (transport == null) {
161
- return new _pinoadapater.PinoAdapter({});
162
- }
163
- return new _pinoadapater.PinoAdapter({}, createSafeTransport(transport));
164
- }
165
- function applyRecipe(factory, plan) {
166
- const adapter = adapterForTransport(_pinorecipe.pinoRecipe.transport(plan));
167
- return factory.configure({
168
- options: {
169
- logLevel: plan.logLevel ?? _scribe.DefaultLogLevel
170
- },
171
- adapter
172
- });
173
- }
174
73
  function configureScribe(factory, options, config) {
175
74
  const environment = process.env.NODE_ENV ?? _system.DefaultEnvironment;
176
- const configs = (Array.isArray(config) ? config : config != null ? [
75
+ const configs = Array.isArray(config) ? config : [
177
76
  config
178
- ] : []).filter((item)=>item.environment == null || item.environment === environment);
179
- if (configs.length > 1) {
77
+ ];
78
+ const transports = configs.filter((config)=>config.environment && config.environment === environment || true);
79
+ if (transports.length > 1) {
180
80
  throw new _scribe.LoggingConfigurationError(`There should only be one configuration per environment for logging`);
181
81
  }
182
- const adapter = adapterForTransport(configs.at(0)?.transports);
82
+ const transport = transports.at(0)?.transports;
83
+ const adapter = new _pinoadapater.PinoAdapter({
84
+ transport
85
+ });
183
86
  return factory.configure({
184
- options: {
185
- ...options,
186
- logLevel: options?.logLevel ?? _scribe.DefaultLogLevel
187
- },
87
+ options,
188
88
  adapter
189
89
  });
190
90
  }
191
- const pinoTransport = {
192
- createSafeTransport,
193
- silenceErrors
194
- };
195
91
 
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHREZWZhdWx0TG9nTGV2ZWwsXG5cdHR5cGUgTG9nZ2VyLFxuXHRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG5cdHNjcmliZSxcbn0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCBwaW5vLCB7XG5cdHR5cGUgRGVzdGluYXRpb25TdHJlYW0sXG5cdHR5cGUgVHJhbnNwb3J0TXVsdGlPcHRpb25zLFxuXHR0eXBlIFRyYW5zcG9ydFBpcGVsaW5lT3B0aW9ucyxcblx0dHlwZSBUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tIFwicGlub1wiO1xuXG5pbXBvcnQgeyBQaW5vQWRhcHRlciB9IGZyb20gXCIuL3Bpbm8uYWRhcGF0ZXIuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdHR5cGUgUGlub1JlY2lwZVBsYW4sXG5cdHR5cGUgUGlub1JvbGxSZWNpcGVPcHRpb25zLFxuXHRwaW5vUmVjaXBlLFxufSBmcm9tIFwiLi9waW5vLnJlY2lwZS5qc1wiO1xuXG50eXBlIFRyYW5zcG9ydE9wdGlvbnMgPVxuXHR8IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnNcblx0fCBUcmFuc3BvcnRNdWx0aU9wdGlvbnNcblx0fCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnM7XG5cbnR5cGUgVHJhbnNwb3J0Q29uZmlnID0ge1xuXHRlbnZpcm9ubWVudD86IEVudmlyb25tZW50O1xuXHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRPcHRpb25zO1xufTtcblxudHlwZSBDdXN0b21MZXZlbE9wdGlvbnM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4gPSB7XG5cdHNjcmliZT86IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT47XG5cdHRyYW5zcG9ydHM/OiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Mb2dnZXJGYWN0b3J5ID0gKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZUNoYWluID0ge1xuXHR3aXRoUGlub1ByZXR0eShcblx0XHRsb2dMZXZlbE9yT3B0aW9ucz86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcgfCBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyxcblx0KTogUGlub1JlY2lwZTtcblx0d2l0aFBpbm9Sb2xsKG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFBpbm9SZWNpcGU7XG59O1xuXG5leHBvcnQgdHlwZSBQaW5vUmVjaXBlID0gUGlub0xvZ2dlckZhY3RvcnkgJlxuXHRQaW5vUmVjaXBlQ2hhaW4gJiB7XG5cdFx0cmVhZG9ubHkgYW5kOiBQaW5vUmVjaXBlQ2hhaW47XG5cdH07XG5cbmRlY2xhcmUgbW9kdWxlIFwiQGRlY29oZXJlL3NjcmliZVwiIHtcblx0aW50ZXJmYWNlIHNjcmliZSB7XG5cdFx0d2l0aFBpbm8oXG5cdFx0XHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRcdGxvZ2xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0XHQpOiBQaW5vTG9nZ2VyRmFjdG9yeTtcblx0XHQvKipcblx0XHQgKiBDb2xvcml6ZWQgcHJldHR5IHRyYW5zcG9ydC4gRGV2ZWxvcG1lbnQgb25seSB1bmxlc3MgYHsgd2hlbjogXCJhbHdheXNcIiB9YC5cblx0XHQgKiBDaGFpbiB3aXRoIGAuYW5kLndpdGhQaW5vUm9sbCh7IGZpbGUgfSlgLiBQcm9kdWN0aW9uIHdyaXRlcyBKU09OIHRvIHN0ZG91dFxuXHRcdCAqIHNvIGxvZyBzaGlwcGluZyBzdGF5cyBvdXRzaWRlIHRoZSBwcm9jZXNzLlxuXHRcdCAqL1xuXHRcdHdpdGhQaW5vUHJldHR5KFxuXHRcdFx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdFx0KTogUGlub1JlY2lwZTtcblx0XHQvKipcblx0XHQgKiBSb2xsaW5nIGxvZyBmaWxlcy4gRGV2ZWxvcG1lbnQgb25seSB1bmxlc3MgYHsgd2hlbjogXCJhbHdheXNcIiB9YC5cblx0XHQgKiBEbyBub3QgZW5hYmxlIGluIHByb2R1Y3Rpb24g4oCUIHNoaXAgc3Rkb3V0IGZyb20gYSBzaWRlY2FyIG9yIHBsYXRmb3JtIGFnZW50LlxuXHRcdCAqIGBzeW1saW5rYCBkZWZhdWx0cyBvZmY7IGVuYWJsaW5nIGl0IGNhbiByYWNlIHVuZGVyIG11bHRpLXdvcmtlciAvIEhNUi5cblx0XHQgKi9cblx0XHR3aXRoUGlub1JvbGwob3B0aW9uczogUGlub1JvbGxSZWNpcGVPcHRpb25zKTogUGlub1JlY2lwZTtcblx0XHR3aXRoUGlub0N1c3RvbTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdFx0KTogUGlub0xvZ2dlckZhY3Rvcnk7XG5cdH1cblx0bmFtZXNwYWNlIHNjcmliZSB7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm8oXG5cdFx0XHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRcdGxvZ2xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0XHQpOiBQaW5vTG9nZ2VyRmFjdG9yeTtcblx0XHRmdW5jdGlvbiB3aXRoUGlub1ByZXR0eShcblx0XHRcdGxvZ0xldmVsT3JPcHRpb25zPzogRGVmYXVsdExldmVscyB8IHN0cmluZyB8IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zLFxuXHRcdCk6IFBpbm9SZWNpcGU7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm9Sb2xsKG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFBpbm9SZWNpcGU7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0XHRvcHRpb25zPzogQ3VzdG9tTGV2ZWxPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRcdCk6IFBpbm9Mb2dnZXJGYWN0b3J5O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBQaW5vRXh0ZW5zaW9ucyB7XG5cdEBleHRlbnNpb24oc2NyaWJlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vKFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0KSB7XG5cdFx0cmV0dXJuIGNvbmZpZ3VyZVNjcmliZShmYWN0b3J5LCB7IGxvZ0xldmVsIH0sIGNvbmZpZyk7XG5cdH1cblxuXHRAZXh0ZW5zaW9uKHNjcmliZSwgeyBzdGF0aWM6IHRydWUgfSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlub1ByZXR0eShcblx0XHRmYWN0b3J5OiBzY3JpYmUsXG5cdFx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdCkge1xuXHRcdGNvbnN0IHByZXR0eSA9IHBhcnNlUHJldHR5QXJnKGxvZ0xldmVsT3JPcHRpb25zKTtcblx0XHRyZXR1cm4gYXR0YWNoUmVjaXBlKGZhY3RvcnksIHsgcHJldHR5LCBsb2dMZXZlbDogcHJldHR5LmxvZ0xldmVsIH0pO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9Sb2xsKGZhY3Rvcnk6IHNjcmliZSwgb3B0aW9uczogUGlub1JvbGxSZWNpcGVPcHRpb25zKSB7XG5cdFx0cmV0dXJuIGF0dGFjaFJlY2lwZShmYWN0b3J5LCB7IHJvbGw6IG9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zLmxvZ0xldmVsIH0pO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0ZmFjdG9yeTogc2NyaWJlLFxuXHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgc2NyaWJlLCB0cmFuc3BvcnRzIH0gPSBvcHRpb25zID8/IHt9O1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgc2NyaWJlLCB0cmFuc3BvcnRzKTtcblx0fVxufVxuXG5mdW5jdGlvbiBwYXJzZVByZXR0eUFyZyhcblx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG4pOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyB7XG5cdGlmIChsb2dMZXZlbE9yT3B0aW9ucyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cdGlmICh0eXBlb2YgbG9nTGV2ZWxPck9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4geyBsb2dMZXZlbDogbG9nTGV2ZWxPck9wdGlvbnMgfTtcblx0fVxuXHRyZXR1cm4gbG9nTGV2ZWxPck9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFJlY2lwZShmYWN0b3J5OiBzY3JpYmUsIHBsYW46IFBpbm9SZWNpcGVQbGFuKTogUGlub1JlY2lwZSB7XG5cdGNvbnN0IGxvZ2dlckZhY3RvcnkgPSBhcHBseVJlY2lwZShmYWN0b3J5LCBwbGFuKTtcblx0Y29uc3QgY2hhaW46IFBpbm9SZWNpcGVDaGFpbiA9IHtcblx0XHR3aXRoUGlub1ByZXR0eShsb2dMZXZlbE9yT3B0aW9ucykge1xuXHRcdFx0Y29uc3QgcHJldHR5ID0gcGFyc2VQcmV0dHlBcmcobG9nTGV2ZWxPck9wdGlvbnMpO1xuXHRcdFx0cmV0dXJuIGF0dGFjaFJlY2lwZShmYWN0b3J5LCB7XG5cdFx0XHRcdC4uLnBsYW4sXG5cdFx0XHRcdHByZXR0eTogeyAuLi5wbGFuLnByZXR0eSwgLi4ucHJldHR5IH0sXG5cdFx0XHRcdGxvZ0xldmVsOiBwcmV0dHkubG9nTGV2ZWwgPz8gcGxhbi5sb2dMZXZlbCxcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0d2l0aFBpbm9Sb2xsKG9wdGlvbnMpIHtcblx0XHRcdHJldHVybiBhdHRhY2hSZWNpcGUoZmFjdG9yeSwge1xuXHRcdFx0XHQuLi5wbGFuLFxuXHRcdFx0XHRyb2xsOiBvcHRpb25zLFxuXHRcdFx0XHRsb2dMZXZlbDogb3B0aW9ucy5sb2dMZXZlbCA/PyBwbGFuLmxvZ0xldmVsLFxuXHRcdFx0fSk7XG5cdFx0fSxcblx0fTtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ24obG9nZ2VyRmFjdG9yeSwgY2hhaW4sIHsgYW5kOiBjaGFpbiB9KTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYSBsaXN0ZW5lciBzbyB3b3JrZXIgdHJhbnNwb3J0IGZhaWx1cmVzIChlLmcuIHBpbm8tcm9sbCBzeW1saW5rIEVFWElTVClcbiAqIG5ldmVyIGJlY29tZSBOb2RlJ3MgZGVmYXVsdCB1bmhhbmRsZWQgYGVycm9yYCBjcmFzaC5cbiAqL1xuZnVuY3Rpb24gc2lsZW5jZUVycm9ycyh0cmFuc3BvcnQ6IHtcblx0b24oZXZlbnQ6IFwiZXJyb3JcIiwgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdW5rbm93bjtcbn0pOiB2b2lkIHtcblx0dHJhbnNwb3J0Lm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuXHRcdGNvbnN0IGRldGFpbCA9IGVycj8uc3RhY2sgPz8gU3RyaW5nKGVycik7XG5cdFx0cHJvY2Vzcy5zdGRlcnIud3JpdGUoYFtzY3JpYmUtcGlub10gdHJhbnNwb3J0IGVycm9yOiAke2RldGFpbH1cXG5gKTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNhZmVUcmFuc3BvcnQob3B0aW9uczogVHJhbnNwb3J0T3B0aW9ucyk6IERlc3RpbmF0aW9uU3RyZWFtIHtcblx0Y29uc3QgdHJhbnNwb3J0ID0gcGluby50cmFuc3BvcnQob3B0aW9ucyk7XG5cdHNpbGVuY2VFcnJvcnModHJhbnNwb3J0KTtcblx0cmV0dXJuIHRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gYWRhcHRlckZvclRyYW5zcG9ydCh0cmFuc3BvcnQ/OiBUcmFuc3BvcnRPcHRpb25zKTogUGlub0FkYXB0ZXIge1xuXHRpZiAodHJhbnNwb3J0ID09IG51bGwpIHtcblx0XHRyZXR1cm4gbmV3IFBpbm9BZGFwdGVyKHt9KTtcblx0fVxuXHRyZXR1cm4gbmV3IFBpbm9BZGFwdGVyKHt9LCBjcmVhdGVTYWZlVHJhbnNwb3J0KHRyYW5zcG9ydCkpO1xufVxuXG5mdW5jdGlvbiBhcHBseVJlY2lwZShmYWN0b3J5OiBzY3JpYmUsIHBsYW46IFBpbm9SZWNpcGVQbGFuKTogUGlub0xvZ2dlckZhY3Rvcnkge1xuXHRjb25zdCBhZGFwdGVyID0gYWRhcHRlckZvclRyYW5zcG9ydChwaW5vUmVjaXBlLnRyYW5zcG9ydChwbGFuKSk7XG5cdHJldHVybiBmYWN0b3J5LmNvbmZpZ3VyZSh7XG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbDogcGxhbi5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU2NyaWJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0ZmFjdG9yeTogc2NyaWJlLFxuXHRvcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRjb25maWc/OiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcbikge1xuXHRjb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID8/IERlZmF1bHRFbnZpcm9ubWVudDtcblx0Y29uc3QgY29uZmlncyA9IChBcnJheS5pc0FycmF5KGNvbmZpZykgPyBjb25maWcgOiBjb25maWcgIT0gbnVsbCA/IFtjb25maWddIDogW10pLmZpbHRlcihcblx0XHQoaXRlbSkgPT4gaXRlbS5lbnZpcm9ubWVudCA9PSBudWxsIHx8IGl0ZW0uZW52aXJvbm1lbnQgPT09IGVudmlyb25tZW50LFxuXHQpO1xuXG5cdGlmIChjb25maWdzLmxlbmd0aCA+IDEpIHtcblx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdGBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY29uZmlndXJhdGlvbiBwZXIgZW52aXJvbm1lbnQgZm9yIGxvZ2dpbmdgLFxuXHRcdCk7XG5cdH1cblxuXHRjb25zdCBhZGFwdGVyID0gYWRhcHRlckZvclRyYW5zcG9ydChjb25maWdzLmF0KDApPy50cmFuc3BvcnRzKTtcblx0cmV0dXJuIGZhY3RvcnkuY29uZmlndXJlKHtcblx0XHRvcHRpb25zOiB7IC4uLm9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zPy5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHBpbm9UcmFuc3BvcnQgPSB7IGNyZWF0ZVNhZmVUcmFuc3BvcnQsIHNpbGVuY2VFcnJvcnMgfTtcbiJdLCJuYW1lcyI6WyJQaW5vRXh0ZW5zaW9ucyIsInBpbm9UcmFuc3BvcnQiLCJ3aXRoUGlubyIsImZhY3RvcnkiLCJjb25maWciLCJsb2dMZXZlbCIsImNvbmZpZ3VyZVNjcmliZSIsIndpdGhQaW5vUHJldHR5IiwibG9nTGV2ZWxPck9wdGlvbnMiLCJwcmV0dHkiLCJwYXJzZVByZXR0eUFyZyIsImF0dGFjaFJlY2lwZSIsIndpdGhQaW5vUm9sbCIsIm9wdGlvbnMiLCJyb2xsIiwid2l0aFBpbm9DdXN0b20iLCJzY3JpYmUiLCJ0cmFuc3BvcnRzIiwic3RhdGljIiwicGxhbiIsImxvZ2dlckZhY3RvcnkiLCJhcHBseVJlY2lwZSIsImNoYWluIiwiT2JqZWN0IiwiYXNzaWduIiwiYW5kIiwic2lsZW5jZUVycm9ycyIsInRyYW5zcG9ydCIsIm9uIiwiZXJyIiwiZGV0YWlsIiwic3RhY2siLCJTdHJpbmciLCJwcm9jZXNzIiwic3RkZXJyIiwid3JpdGUiLCJjcmVhdGVTYWZlVHJhbnNwb3J0IiwicGlubyIsImFkYXB0ZXJGb3JUcmFuc3BvcnQiLCJQaW5vQWRhcHRlciIsImFkYXB0ZXIiLCJwaW5vUmVjaXBlIiwiY29uZmlndXJlIiwiRGVmYXVsdExvZ0xldmVsIiwiZW52aXJvbm1lbnQiLCJlbnYiLCJOT0RFX0VOViIsIkRlZmF1bHRFbnZpcm9ubWVudCIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJpdGVtIiwibGVuZ3RoIiwiTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvciIsImF0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQTZGYUE7ZUFBQUE7O1FBNkhBQztlQUFBQTs7OytCQTFOYTt3QkFDMkI7d0JBUTlDOzZEQU1BOzhCQUVxQjs0QkFNckI7Ozs7Ozs7Ozs7Ozs7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
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHR0eXBlIExvZ2dlcixcblx0TG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxuXHRzY3JpYmUsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgdHlwZSB7XG5cdFRyYW5zcG9ydE11bHRpT3B0aW9ucyxcblx0VHJhbnNwb3J0UGlwZWxpbmVPcHRpb25zLFxuXHRUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tIFwicGlub1wiO1xuXG5pbXBvcnQgeyBQaW5vQWRhcHRlciB9IGZyb20gXCIuL3Bpbm8uYWRhcGF0ZXIuanNcIjtcblxudHlwZSBUcmFuc3BvcnRDb25maWcgPSB7XG5cdGVudmlyb25tZW50PzogRW52aXJvbm1lbnQ7XG5cdHRyYW5zcG9ydHM6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnM7XG59O1xuXG50eXBlIEN1c3RvbUxldmVsT3B0aW9uczxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPiA9IHtcblx0c2NyaWJlPzogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pjtcblx0dHJhbnNwb3J0cz86IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdO1xufTtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjb2hlcmUvc2NyaWJlXCIge1xuXHRpbnRlcmZhY2Ugc2NyaWJlIHtcblx0XHR3aXRoUGlubyhcblx0XHRcdHRyYW5zcG9ydHM6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdFx0bG9nbGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nLFxuXHRcdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI7XG5cdFx0d2l0aFBpbm9QcmV0dHkobG9nTGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nKTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblx0XHR3aXRoUGlub0N1c3RvbTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdFx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgUGlub0V4dGVuc2lvbnMge1xuXHRAZXh0ZW5zaW9uKHNjcmliZSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlubyhcblx0XHRmYWN0b3J5OiBzY3JpYmUsXG5cdFx0Y29uZmlnOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcsXG5cdCkge1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgeyBsb2dMZXZlbCB9LCBjb25maWcpO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUpXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9QcmV0dHkoZmFjdG9yeTogc2NyaWJlLCBsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcpIHtcblx0XHRyZXR1cm4gUGlub0V4dGVuc2lvbnMud2l0aFBpbm8oXG5cdFx0XHRmYWN0b3J5LFxuXHRcdFx0eyB0cmFuc3BvcnRzOiB7IHRhcmdldDogXCJwaW5vLXByZXR0eVwiLCBvcHRpb25zOiB7IGNvbG9yaXplOiB0cnVlIH0gfSB9LFxuXHRcdFx0bG9nTGV2ZWwsXG5cdFx0KTtcblx0fVxuXG5cdEBleHRlbnNpb24oc2NyaWJlKVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vQ3VzdG9tPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRvcHRpb25zPzogQ3VzdG9tTGV2ZWxPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRjb25zdCB7IHNjcmliZSwgdHJhbnNwb3J0cyB9ID0gb3B0aW9ucztcblx0XHRyZXR1cm4gY29uZmlndXJlU2NyaWJlKGZhY3RvcnksIHNjcmliZSwgdHJhbnNwb3J0cyk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU2NyaWJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0ZmFjdG9yeTogc2NyaWJlLFxuXHRvcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuKSB7XG5cdGNvbnN0IGVudmlyb25tZW50ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPz8gRGVmYXVsdEVudmlyb25tZW50O1xuXHRjb25zdCBjb25maWdzID0gQXJyYXkuaXNBcnJheShjb25maWcpID8gY29uZmlnIDogW2NvbmZpZ107XG5cdGNvbnN0IHRyYW5zcG9ydHMgPSBjb25maWdzLmZpbHRlcihcblx0XHQoY29uZmlnKSA9PiAoY29uZmlnLmVudmlyb25tZW50ICYmIGNvbmZpZy5lbnZpcm9ubWVudCA9PT0gZW52aXJvbm1lbnQpIHx8IHRydWUsXG5cdCk7XG5cblx0aWYgKHRyYW5zcG9ydHMubGVuZ3RoID4gMSkge1xuXHRcdHRocm93IG5ldyBMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yKFxuXHRcdFx0YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjb25maWd1cmF0aW9uIHBlciBlbnZpcm9ubWVudCBmb3IgbG9nZ2luZ2AsXG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IHRyYW5zcG9ydCA9IHRyYW5zcG9ydHMuYXQoMCk/LnRyYW5zcG9ydHM7XG5cdGNvbnN0IGFkYXB0ZXIgPSBuZXcgUGlub0FkYXB0ZXIoeyB0cmFuc3BvcnQgfSk7XG5cdHJldHVybiBmYWN0b3J5LmNvbmZpZ3VyZSh7XG5cdFx0b3B0aW9ucyxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cbiJdLCJuYW1lcyI6WyJQaW5vRXh0ZW5zaW9ucyIsIndpdGhQaW5vIiwiZmFjdG9yeSIsImNvbmZpZyIsImxvZ0xldmVsIiwiY29uZmlndXJlU2NyaWJlIiwid2l0aFBpbm9QcmV0dHkiLCJ0cmFuc3BvcnRzIiwidGFyZ2V0Iiwib3B0aW9ucyIsImNvbG9yaXplIiwid2l0aFBpbm9DdXN0b20iLCJzY3JpYmUiLCJlbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkRlZmF1bHRFbnZpcm9ubWVudCIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJsZW5ndGgiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwidHJhbnNwb3J0IiwiYXQiLCJhZGFwdGVyIiwiUGlub0FkYXB0ZXIiLCJjb25maWd1cmUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBd0NhQTs7O2VBQUFBOzs7K0JBeENhO3dCQUMyQjt3QkFPOUM7OEJBT3FCOzs7Ozs7Ozs7O0FBeUJyQixNQUFNQTtJQUNaLE9BQ2NDLFNBQ2JDLE9BQWUsRUFDZkMsTUFBMkMsRUFDM0NDLFFBQWlDLEVBQ2hDO1FBQ0QsT0FBT0MsZ0JBQWdCSCxTQUFTO1lBQUVFO1FBQVMsR0FBR0Q7SUFDL0M7SUFFQSxPQUNjRyxlQUFlSixPQUFlLEVBQUVFLFFBQWlDLEVBQUU7UUFDaEYsT0FBT0osZUFBZUMsUUFBUSxDQUM3QkMsU0FDQTtZQUFFSyxZQUFZO2dCQUFFQyxRQUFRO2dCQUFlQyxTQUFTO29CQUFFQyxVQUFVO2dCQUFLO1lBQUU7UUFBRSxHQUNyRU47SUFFRjtJQUVBLE9BQ2NPLGVBQ2JULE9BQWUsRUFDZk8sT0FBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVHLE1BQU0sRUFBRUwsVUFBVSxFQUFFLEdBQUdFO1FBQy9CLE9BQU9KLGdCQUFnQkgsU0FBU1UsUUFBUUw7SUFDekM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFTRixnQkFDUkgsT0FBZSxFQUNmTyxPQUFxQyxFQUNyQ04sTUFBMkM7SUFFM0MsTUFBTVUsY0FBY0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLElBQUlDLDBCQUFrQjtJQUM5RCxNQUFNQyxVQUFVQyxNQUFNQyxPQUFPLENBQUNqQixVQUFVQSxTQUFTO1FBQUNBO0tBQU87SUFDekQsTUFBTUksYUFBYVcsUUFBUUcsTUFBTSxDQUNoQyxDQUFDbEIsU0FBVyxBQUFDQSxPQUFPVSxXQUFXLElBQUlWLE9BQU9VLFdBQVcsS0FBS0EsZUFBZ0I7SUFHM0UsSUFBSU4sV0FBV2UsTUFBTSxHQUFHLEdBQUc7UUFDMUIsTUFBTSxJQUFJQyxpQ0FBeUIsQ0FDbEMsQ0FBQyxrRUFBa0UsQ0FBQztJQUV0RTtJQUVBLE1BQU1DLFlBQVlqQixXQUFXa0IsRUFBRSxDQUFDLElBQUlsQjtJQUNwQyxNQUFNbUIsVUFBVSxJQUFJQyx5QkFBVyxDQUFDO1FBQUVIO0lBQVU7SUFDNUMsT0FBT3RCLFFBQVEwQixTQUFTLENBQUM7UUFDeEJuQjtRQUNBaUI7SUFDRDtBQUNEIn0=
package/es6/src/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export * from "./pino.adapater.js";
2
- export * from "./pino.recipe.js";
3
2
  export * from "./scribe-pino.js";
4
3
 
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGluby5yZWNpcGUuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjcmliZS1waW5vLmpzXCI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxtQkFBbUIifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NyaWJlLXBpbm8uanNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLG1CQUFtQiJ9
@@ -1,10 +1,9 @@
1
- import { formatError, LogAdapter } from "@decohere/scribe";
1
+ import { LogAdapter } from "@decohere/scribe";
2
2
  import pino from "pino";
3
3
  export class PinoAdapter extends LogAdapter {
4
4
  _pino;
5
5
  options;
6
6
  stream;
7
- disposed = false;
8
7
  constructor(options, stream){
9
8
  super();
10
9
  this.options = options;
@@ -36,41 +35,10 @@ export class PinoAdapter extends LogAdapter {
36
35
  flush(cb) {
37
36
  this._pino.flush(cb);
38
37
  }
39
- async [Symbol.asyncDispose]() {
40
- if (this.disposed) {
41
- return;
42
- }
43
- this.disposed = true;
44
- if (this._pino) {
45
- await new Promise((resolve)=>{
46
- this._pino.flush(()=>resolve());
47
- });
48
- }
49
- await endDestination(this.stream);
50
- }
51
- }
52
- function endDestination(stream) {
53
- const endable = stream;
54
- if (typeof endable?.end !== "function") {
55
- return Promise.resolve();
56
- }
57
- return new Promise((resolve)=>{
58
- try {
59
- endable.end(()=>resolve());
60
- } catch {
61
- resolve();
62
- }
63
- });
64
38
  }
65
39
  function logMethod(args, method) {
66
40
  let message = args.at(0);
67
41
  const data = args.at(1);
68
- if (message instanceof Error) {
69
- method.call(this, {
70
- err: message
71
- }, formatError(message));
72
- return;
73
- }
74
42
  if (data instanceof Error) {
75
43
  message = {
76
44
  msg: message,
@@ -102,4 +70,4 @@ function pinoMix(logger) {
102
70
  });
103
71
  }
104
72
 
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdGZvcm1hdEVycm9yLFxuXHRMb2dBZGFwdGVyLFxuXHR0eXBlIExvZ2dlcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxufSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHBpbm8sIHsgdHlwZSBMb2dGbiB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIFBpbm9BZGFwYXRlck9wdGlvbnMgPSB7XG5cdG9wdGlvbnM/OiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW07XG59O1xuXG50eXBlIEVuZGFibGVTdHJlYW0gPSB7XG5cdGVuZD86IChjYj86IChlcnI/OiBFcnJvciB8IG51bGwpID0+IHZvaWQpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY2xhc3MgUGlub0FkYXB0ZXIgZXh0ZW5kcyBMb2dBZGFwdGVyIHtcblx0cHJpdmF0ZSBfcGlubzogcGluby5Mb2dnZXI7XG5cdHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zO1xuXHRwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogcGluby5EZXN0aW5hdGlvblN0cmVhbSB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBkaXNwb3NlZCA9IGZhbHNlO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMsIHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW0pIHtcblx0XHRzdXBlcigpO1xuXHRcdHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cdFx0dGhpcy5zdHJlYW0gPSBzdHJlYW07XG5cdH1cblxuXHRwdWJsaWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRzY3JpYmVPcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRjb25zdCB7IGxvZ0xldmVsLCByZWRhY3Rpb25zIH0gPSBzY3JpYmVPcHRpb25zO1xuXHRcdGNvbnN0IGN1c3RvbUxldmVscyA9IHRoaXMuZ2V0TG9nTGV2ZWxzKHNjcmliZU9wdGlvbnMpO1xuXG5cdFx0Y29uc3QgcGlub09wdGlvbnM6IHBpbm8uTG9nZ2VyT3B0aW9ucyA9IHtcblx0XHRcdGN1c3RvbUxldmVscyxcblx0XHRcdGxldmVsOiBsb2dMZXZlbCxcblx0XHRcdGhvb2tzOiB7IGxvZ01ldGhvZCB9LFxuXHRcdFx0c2VyaWFsaXplcnM6IHtcblx0XHRcdFx0ZXJyb3I6IHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyLFxuXHRcdFx0fSxcblx0XHRcdHJlZGFjdDogcmVkYWN0aW9ucyxcblx0XHRcdC4uLnRoaXMub3B0aW9ucyxcblx0XHR9O1xuXHRcdHRoaXMuX3Bpbm8gPSBwaW5vKHBpbm9PcHRpb25zLCB0aGlzLnN0cmVhbSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lOiBzdHJpbmcsXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgbG9nZ2VyID0gcGlub01peDxULCBDdXN0b21Pbmx5Pih0aGlzLl9waW5vLmNoaWxkKHsgbmFtZSB9KSk7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHB1YmxpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLl9waW5vLmZsdXNoKGNiKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKHRoaXMuZGlzcG9zZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5kaXNwb3NlZCA9IHRydWU7XG5cdFx0aWYgKHRoaXMuX3Bpbm8pIHtcblx0XHRcdGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3Bpbm8uZmx1c2goKCkgPT4gcmVzb2x2ZSgpKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRhd2FpdCBlbmREZXN0aW5hdGlvbih0aGlzLnN0cmVhbSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gZW5kRGVzdGluYXRpb24oc3RyZWFtOiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtIHwgdW5kZWZpbmVkKTogUHJvbWlzZTx2b2lkPiB7XG5cdGNvbnN0IGVuZGFibGUgPSBzdHJlYW0gYXMgRW5kYWJsZVN0cmVhbSB8IHVuZGVmaW5lZDtcblx0aWYgKHR5cGVvZiBlbmRhYmxlPy5lbmQgIT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxuXHRyZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcblx0XHR0cnkge1xuXHRcdFx0ZW5kYWJsZS5lbmQoKCkgPT4gcmVzb2x2ZSgpKTtcblx0XHR9IGNhdGNoIHtcblx0XHRcdHJlc29sdmUoKTtcblx0XHR9XG5cdH0pO1xufVxuXG5mdW5jdGlvbiBsb2dNZXRob2QodGhpczogcGluby5Mb2dnZXIsIGFyZ3M6IFBhcmFtZXRlcnM8TG9nRm4+LCBtZXRob2Q6IExvZ0ZuKSB7XG5cdGxldCBtZXNzYWdlID0gYXJncy5hdCgwKTtcblx0Y29uc3QgZGF0YSA9IGFyZ3MuYXQoMSk7XG5cblx0aWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdG1ldGhvZC5jYWxsKHRoaXMsIHsgZXJyOiBtZXNzYWdlIH0sIGZvcm1hdEVycm9yKG1lc3NhZ2UpKTtcblx0XHRyZXR1cm47XG5cdH1cblxuXHRpZiAoZGF0YSBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi57IGVycm9yOiBkYXRhIH0gfTtcblx0fSBlbHNlIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJvYmplY3RcIikge1xuXHRcdG1lc3NhZ2UgPSB7IG1zZzogbWVzc2FnZSwgLi4uZGF0YSB9O1xuXHR9IGVsc2Uge1xuXHRcdG1lc3NhZ2UgPSB7IG1zZzogbWVzc2FnZSwgZGF0YSB9O1xuXHR9XG5cblx0bWV0aG9kLmNhbGwodGhpcywgbWVzc2FnZSk7XG59XG5cbmZ1bmN0aW9uIHBpbm9NaXg8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRsb2dnZXI6IHBpbm8uTG9nZ2VyLFxuKTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ248cGluby5Mb2dnZXIsIEJhc2VMb2dnZXI+KGxvZ2dlciwge1xuXHRcdGdldCBjdXJyZW50TGV2ZWwoKSB7XG5cdFx0XHRyZXR1cm4gbG9nZ2VyLmxldmVsO1xuXHRcdH0sXG5cdFx0Z2V0IGxvZ0xldmVscygpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWxzLnZhbHVlcztcblx0XHR9LFxuXHR9KSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG59XG4iXSwibmFtZXMiOlsiZm9ybWF0RXJyb3IiLCJMb2dBZGFwdGVyIiwicGlubyIsIlBpbm9BZGFwdGVyIiwiX3Bpbm8iLCJvcHRpb25zIiwic3RyZWFtIiwiZGlzcG9zZWQiLCJjb25maWd1cmUiLCJzY3JpYmVPcHRpb25zIiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nTGV2ZWxzIiwicGlub09wdGlvbnMiLCJsZXZlbCIsImhvb2tzIiwibG9nTWV0aG9kIiwic2VyaWFsaXplcnMiLCJlcnJvciIsInN0ZFNlcmlhbGl6ZXJzIiwiZXJyIiwicmVkYWN0IiwiZ2V0TG9nZ2VyIiwibmFtZSIsImxvZ2dlciIsInBpbm9NaXgiLCJjaGlsZCIsImZsdXNoIiwiY2IiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImVuZERlc3RpbmF0aW9uIiwiZW5kYWJsZSIsImVuZCIsImFyZ3MiLCJtZXRob2QiLCJtZXNzYWdlIiwiYXQiLCJkYXRhIiwiRXJyb3IiLCJjYWxsIiwibXNnIiwiT2JqZWN0IiwiYXNzaWduIiwiY3VycmVudExldmVsIiwibG9nTGV2ZWxzIiwibGV2ZWxzIiwidmFsdWVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUVDQSxXQUFXLEVBQ1hDLFVBQVUsUUFHSixtQkFBbUI7QUFDMUIsT0FBT0MsVUFBMEIsT0FBTztBQVd4QyxPQUFPLE1BQU1DLG9CQUFvQkY7SUFDeEJHLE1BQW1CO0lBQ1ZDLFFBQTRCO0lBQzVCQyxPQUEyQztJQUNwREMsV0FBVyxNQUFNO0lBRXpCLFlBQW1CRixPQUEyQixFQUFFQyxNQUErQixDQUFFO1FBQ2hGLEtBQUs7UUFDTCxJQUFJLENBQUNELE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLE1BQU0sR0FBR0E7SUFDZjtJQUVPRSxVQUNOQyxhQUEyQyxFQUMxQztRQUNELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUUsR0FBR0Y7UUFDakMsTUFBTUcsZUFBZSxJQUFJLENBQUNDLFlBQVksQ0FBQ0o7UUFFdkMsTUFBTUssY0FBa0M7WUFDdkNGO1lBQ0FHLE9BQU9MO1lBQ1BNLE9BQU87Z0JBQUVDO1lBQVU7WUFDbkJDLGFBQWE7Z0JBQ1pDLE9BQU9qQixLQUFLa0IsY0FBYyxDQUFDQyxHQUFHO1lBQy9CO1lBQ0FDLFFBQVFYO1lBQ1IsR0FBRyxJQUFJLENBQUNOLE9BQU87UUFDaEI7UUFDQSxJQUFJLENBQUNELEtBQUssR0FBR0YsS0FBS1ksYUFBYSxJQUFJLENBQUNSLE1BQU07SUFDM0M7SUFFT2lCLFVBQ05DLElBQVksRUFDWTtRQUN4QixNQUFNQyxTQUFTQyxRQUF1QixJQUFJLENBQUN0QixLQUFLLENBQUN1QixLQUFLLENBQUM7WUFBRUg7UUFBSztRQUM5RCxPQUFPQztJQUNSO0lBRU9HLE1BQU1DLEVBQWUsRUFBUTtRQUNuQyxJQUFJLENBQUN6QixLQUFLLENBQUN3QixLQUFLLENBQUNDO0lBQ2xCO0lBRUEsTUFBYSxDQUFDQyxPQUFPQyxZQUFZLENBQUMsR0FBa0I7UUFDbkQsSUFBSSxJQUFJLENBQUN4QixRQUFRLEVBQUU7WUFDbEI7UUFDRDtRQUNBLElBQUksQ0FBQ0EsUUFBUSxHQUFHO1FBQ2hCLElBQUksSUFBSSxDQUFDSCxLQUFLLEVBQUU7WUFDZixNQUFNLElBQUk0QixRQUFjLENBQUNDO2dCQUN4QixJQUFJLENBQUM3QixLQUFLLENBQUN3QixLQUFLLENBQUMsSUFBTUs7WUFDeEI7UUFDRDtRQUNBLE1BQU1DLGVBQWUsSUFBSSxDQUFDNUIsTUFBTTtJQUNqQztBQUNEO0FBRUEsU0FBUzRCLGVBQWU1QixNQUEwQztJQUNqRSxNQUFNNkIsVUFBVTdCO0lBQ2hCLElBQUksT0FBTzZCLFNBQVNDLFFBQVEsWUFBWTtRQUN2QyxPQUFPSixRQUFRQyxPQUFPO0lBQ3ZCO0lBQ0EsT0FBTyxJQUFJRCxRQUFjLENBQUNDO1FBQ3pCLElBQUk7WUFDSEUsUUFBUUMsR0FBRyxDQUFDLElBQU1IO1FBQ25CLEVBQUUsT0FBTTtZQUNQQTtRQUNEO0lBQ0Q7QUFDRDtBQUVBLFNBQVNoQixVQUE2Qm9CLElBQXVCLEVBQUVDLE1BQWE7SUFDM0UsSUFBSUMsVUFBVUYsS0FBS0csRUFBRSxDQUFDO0lBQ3RCLE1BQU1DLE9BQU9KLEtBQUtHLEVBQUUsQ0FBQztJQUVyQixJQUFJRCxtQkFBbUJHLE9BQU87UUFDN0JKLE9BQU9LLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRXRCLEtBQUtrQjtRQUFRLEdBQUd2QyxZQUFZdUM7UUFDaEQ7SUFDRDtJQUVBLElBQUlFLGdCQUFnQkMsT0FBTztRQUMxQkgsVUFBVTtZQUFFSyxLQUFLTDtZQUFTLEdBQUc7Z0JBQUVwQixPQUFPc0I7WUFBSyxDQUFDO1FBQUM7SUFDOUMsT0FBTyxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUNwQ0YsVUFBVTtZQUFFSyxLQUFLTDtZQUFTLEdBQUdFLElBQUk7UUFBQztJQUNuQyxPQUFPO1FBQ05GLFVBQVU7WUFBRUssS0FBS0w7WUFBU0U7UUFBSztJQUNoQztJQUVBSCxPQUFPSyxJQUFJLENBQUMsSUFBSSxFQUFFSjtBQUNuQjtBQUVBLFNBQVNiLFFBQ1JELE1BQW1CO0lBRW5CLE9BQU9vQixPQUFPQyxNQUFNLENBQTBCckIsUUFBUTtRQUNyRCxJQUFJc0IsZ0JBQWU7WUFDbEIsT0FBT3RCLE9BQU9WLEtBQUs7UUFDcEI7UUFDQSxJQUFJaUMsYUFBWTtZQUNmLE9BQU92QixPQUFPd0IsTUFBTSxDQUFDQyxNQUFNO1FBQzVCO0lBQ0Q7QUFDRCJ9
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdExvZ0FkYXB0ZXIsXG5cdHR5cGUgTG9nZ2VyLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgcGlubywgeyB0eXBlIExvZ0ZuIH0gZnJvbSBcInBpbm9cIjtcblxuZXhwb3J0IHR5cGUgUGlub0FkYXBhdGVyT3B0aW9ucyA9IHtcblx0b3B0aW9ucz86IHBpbm8uTG9nZ2VyT3B0aW9ucztcblx0c3RyZWFtPzogcGluby5EZXN0aW5hdGlvblN0cmVhbTtcbn07XG5cbmV4cG9ydCBjbGFzcyBQaW5vQWRhcHRlciBleHRlbmRzIExvZ0FkYXB0ZXIge1xuXHRwcml2YXRlIF9waW5vOiBwaW5vLkxvZ2dlcjtcblx0cHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtO1xuXHRwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zLCBzdHJlYW0/OiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RyZWFtID0gc3RyZWFtO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0c2NyaWJlT3B0aW9uczogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgeyBsb2dMZXZlbCwgcmVkYWN0aW9ucyB9ID0gc2NyaWJlT3B0aW9ucztcblx0XHRjb25zdCBjdXN0b21MZXZlbHMgPSB0aGlzLmdldExvZ0xldmVscyhzY3JpYmVPcHRpb25zKTtcblxuXHRcdGNvbnN0IHBpbm9PcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMgPSB7XG5cdFx0XHRjdXN0b21MZXZlbHMsXG5cdFx0XHRsZXZlbDogbG9nTGV2ZWwsXG5cdFx0XHRob29rczogeyBsb2dNZXRob2QgfSxcblx0XHRcdHNlcmlhbGl6ZXJzOiB7XG5cdFx0XHRcdGVycm9yOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycixcblx0XHRcdH0sXG5cdFx0XHRyZWRhY3Q6IHJlZGFjdGlvbnMsXG5cdFx0XHQuLi50aGlzLm9wdGlvbnMsXG5cdFx0fTtcblx0XHR0aGlzLl9waW5vID0gcGlubyhwaW5vT3B0aW9ucywgdGhpcy5zdHJlYW0pO1xuXHR9XG5cblx0cHVibGljIGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IGxvZ2dlciA9IHBpbm9NaXg8VCwgQ3VzdG9tT25seT4odGhpcy5fcGluby5jaGlsZCh7IG5hbWUgfSkpO1xuXHRcdHJldHVybiBsb2dnZXI7XG5cdH1cblxuXHRwdWJsaWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5fcGluby5mbHVzaChjYik7XG5cdH1cbn1cblxuZnVuY3Rpb24gbG9nTWV0aG9kKHRoaXM6IHBpbm8uTG9nZ2VyLCBhcmdzOiBQYXJhbWV0ZXJzPExvZ0ZuPiwgbWV0aG9kOiBMb2dGbikge1xuXHRsZXQgbWVzc2FnZSA9IGFyZ3MuYXQoMCk7XG5cdGNvbnN0IGRhdGEgPSBhcmdzLmF0KDEpO1xuXG5cdGlmIChkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRtZXNzYWdlID0geyBtc2c6IG1lc3NhZ2UsIC4uLnsgZXJyb3I6IGRhdGEgfSB9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi5kYXRhIH07XG5cdH0gZWxzZSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCBkYXRhIH07XG5cdH1cblxuXHRtZXRob2QuY2FsbCh0aGlzLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gcGlub01peDxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdGxvZ2dlcjogcGluby5Mb2dnZXIsXG4pOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbjxwaW5vLkxvZ2dlciwgQmFzZUxvZ2dlcj4obG9nZ2VyLCB7XG5cdFx0Z2V0IGN1cnJlbnRMZXZlbCgpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWw7XG5cdFx0fSxcblx0XHRnZXQgbG9nTGV2ZWxzKCkge1xuXHRcdFx0cmV0dXJuIGxvZ2dlci5sZXZlbHMudmFsdWVzO1xuXHRcdH0sXG5cdH0pIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcbn1cbiJdLCJuYW1lcyI6WyJMb2dBZGFwdGVyIiwicGlubyIsIlBpbm9BZGFwdGVyIiwiX3Bpbm8iLCJvcHRpb25zIiwic3RyZWFtIiwiY29uZmlndXJlIiwic2NyaWJlT3B0aW9ucyIsImxvZ0xldmVsIiwicmVkYWN0aW9ucyIsImN1c3RvbUxldmVscyIsImdldExvZ0xldmVscyIsInBpbm9PcHRpb25zIiwibGV2ZWwiLCJob29rcyIsImxvZ01ldGhvZCIsInNlcmlhbGl6ZXJzIiwiZXJyb3IiLCJzdGRTZXJpYWxpemVycyIsImVyciIsInJlZGFjdCIsImdldExvZ2dlciIsIm5hbWUiLCJsb2dnZXIiLCJwaW5vTWl4IiwiY2hpbGQiLCJmbHVzaCIsImNiIiwiYXJncyIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJhdCIsImRhdGEiLCJFcnJvciIsIm1zZyIsImNhbGwiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50TGV2ZWwiLCJsb2dMZXZlbHMiLCJsZXZlbHMiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBRUNBLFVBQVUsUUFHSixtQkFBbUI7QUFDMUIsT0FBT0MsVUFBMEIsT0FBTztBQU94QyxPQUFPLE1BQU1DLG9CQUFvQkY7SUFDeEJHLE1BQW1CO0lBQ1ZDLFFBQTRCO0lBQzVCQyxPQUErQjtJQUNoRCxZQUFtQkQsT0FBMkIsRUFBRUMsTUFBK0IsQ0FBRTtRQUNoRixLQUFLO1FBQ0wsSUFBSSxDQUFDRCxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2Y7SUFFT0MsVUFDTkMsYUFBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUdGO1FBQ2pDLE1BQU1HLGVBQWUsSUFBSSxDQUFDQyxZQUFZLENBQUNKO1FBRXZDLE1BQU1LLGNBQWtDO1lBQ3ZDRjtZQUNBRyxPQUFPTDtZQUNQTSxPQUFPO2dCQUFFQztZQUFVO1lBQ25CQyxhQUFhO2dCQUNaQyxPQUFPaEIsS0FBS2lCLGNBQWMsQ0FBQ0MsR0FBRztZQUMvQjtZQUNBQyxRQUFRWDtZQUNSLEdBQUcsSUFBSSxDQUFDTCxPQUFPO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDRCxLQUFLLEdBQUdGLEtBQUtXLGFBQWEsSUFBSSxDQUFDUCxNQUFNO0lBQzNDO0lBRU9nQixVQUNOQyxJQUFZLEVBQ1k7UUFDeEIsTUFBTUMsU0FBU0MsUUFBdUIsSUFBSSxDQUFDckIsS0FBSyxDQUFDc0IsS0FBSyxDQUFDO1lBQUVIO1FBQUs7UUFDOUQsT0FBT0M7SUFDUjtJQUVPRyxNQUFNQyxFQUFlLEVBQVE7UUFDbkMsSUFBSSxDQUFDeEIsS0FBSyxDQUFDdUIsS0FBSyxDQUFDQztJQUNsQjtBQUNEO0FBRUEsU0FBU1osVUFBNkJhLElBQXVCLEVBQUVDLE1BQWE7SUFDM0UsSUFBSUMsVUFBVUYsS0FBS0csRUFBRSxDQUFDO0lBQ3RCLE1BQU1DLE9BQU9KLEtBQUtHLEVBQUUsQ0FBQztJQUVyQixJQUFJQyxnQkFBZ0JDLE9BQU87UUFDMUJILFVBQVU7WUFBRUksS0FBS0o7WUFBUyxHQUFHO2dCQUFFYixPQUFPZTtZQUFLLENBQUM7UUFBQztJQUM5QyxPQUFPLElBQUksT0FBT0EsU0FBUyxVQUFVO1FBQ3BDRixVQUFVO1lBQUVJLEtBQUtKO1lBQVMsR0FBR0UsSUFBSTtRQUFDO0lBQ25DLE9BQU87UUFDTkYsVUFBVTtZQUFFSSxLQUFLSjtZQUFTRTtRQUFLO0lBQ2hDO0lBRUFILE9BQU9NLElBQUksQ0FBQyxJQUFJLEVBQUVMO0FBQ25CO0FBRUEsU0FBU04sUUFDUkQsTUFBbUI7SUFFbkIsT0FBT2EsT0FBT0MsTUFBTSxDQUEwQmQsUUFBUTtRQUNyRCxJQUFJZSxnQkFBZTtZQUNsQixPQUFPZixPQUFPVixLQUFLO1FBQ3BCO1FBQ0EsSUFBSTBCLGFBQVk7WUFDZixPQUFPaEIsT0FBT2lCLE1BQU0sQ0FBQ0MsTUFBTTtRQUM1QjtJQUNEO0FBQ0QifQ==
@@ -9,38 +9,31 @@ function _ts_metadata(k, v) {
9
9
  }
10
10
  import { extension } from "@decohere/nexus/extensibility";
11
11
  import { DefaultEnvironment } from "@decohere/nexus/system";
12
- import { DefaultLogLevel, LoggingConfigurationError, scribe } from "@decohere/scribe";
13
- import pino from "pino";
12
+ import { LoggingConfigurationError, scribe } from "@decohere/scribe";
14
13
  import { PinoAdapter } from "./pino.adapater.js";
15
- import { pinoRecipe } from "./pino.recipe.js";
16
14
  export class PinoExtensions {
17
15
  static withPino(factory, config, logLevel) {
18
16
  return configureScribe(factory, {
19
17
  logLevel
20
18
  }, config);
21
19
  }
22
- static withPinoPretty(factory, logLevelOrOptions) {
23
- const pretty = parsePrettyArg(logLevelOrOptions);
24
- return attachRecipe(factory, {
25
- pretty,
26
- logLevel: pretty.logLevel
27
- });
28
- }
29
- static withPinoRoll(factory, options) {
30
- return attachRecipe(factory, {
31
- roll: options,
32
- logLevel: options.logLevel
33
- });
20
+ static withPinoPretty(factory, logLevel) {
21
+ return PinoExtensions.withPino(factory, {
22
+ transports: {
23
+ target: "pino-pretty",
24
+ options: {
25
+ colorize: true
26
+ }
27
+ }
28
+ }, logLevel);
34
29
  }
35
30
  static withPinoCustom(factory, options) {
36
- const { scribe, transports } = options ?? {};
31
+ const { scribe, transports } = options;
37
32
  return configureScribe(factory, scribe, transports);
38
33
  }
39
34
  }
40
35
  _ts_decorate([
41
- extension(scribe, {
42
- static: true
43
- }),
36
+ extension(scribe),
44
37
  _ts_metadata("design:type", Function),
45
38
  _ts_metadata("design:paramtypes", [
46
39
  typeof scribe === "undefined" ? Object : scribe,
@@ -50,9 +43,7 @@ _ts_decorate([
50
43
  _ts_metadata("design:returntype", void 0)
51
44
  ], PinoExtensions, "withPino", null);
52
45
  _ts_decorate([
53
- extension(scribe, {
54
- static: true
55
- }),
46
+ extension(scribe),
56
47
  _ts_metadata("design:type", Function),
57
48
  _ts_metadata("design:paramtypes", [
58
49
  typeof scribe === "undefined" ? Object : scribe,
@@ -61,20 +52,7 @@ _ts_decorate([
61
52
  _ts_metadata("design:returntype", void 0)
62
53
  ], PinoExtensions, "withPinoPretty", null);
63
54
  _ts_decorate([
64
- extension(scribe, {
65
- static: true
66
- }),
67
- _ts_metadata("design:type", Function),
68
- _ts_metadata("design:paramtypes", [
69
- typeof scribe === "undefined" ? Object : scribe,
70
- typeof PinoRollRecipeOptions === "undefined" ? Object : PinoRollRecipeOptions
71
- ]),
72
- _ts_metadata("design:returntype", void 0)
73
- ], PinoExtensions, "withPinoRoll", null);
74
- _ts_decorate([
75
- extension(scribe, {
76
- static: true
77
- }),
55
+ extension(scribe),
78
56
  _ts_metadata("design:type", Function),
79
57
  _ts_metadata("design:paramtypes", [
80
58
  typeof scribe === "undefined" ? Object : scribe,
@@ -82,92 +60,23 @@ _ts_decorate([
82
60
  ]),
83
61
  _ts_metadata("design:returntype", void 0)
84
62
  ], PinoExtensions, "withPinoCustom", null);
85
- function parsePrettyArg(logLevelOrOptions) {
86
- if (logLevelOrOptions == null) {
87
- return {};
88
- }
89
- if (typeof logLevelOrOptions === "string") {
90
- return {
91
- logLevel: logLevelOrOptions
92
- };
93
- }
94
- return logLevelOrOptions;
95
- }
96
- function attachRecipe(factory, plan) {
97
- const loggerFactory = applyRecipe(factory, plan);
98
- const chain = {
99
- withPinoPretty (logLevelOrOptions) {
100
- const pretty = parsePrettyArg(logLevelOrOptions);
101
- return attachRecipe(factory, {
102
- ...plan,
103
- pretty: {
104
- ...plan.pretty,
105
- ...pretty
106
- },
107
- logLevel: pretty.logLevel ?? plan.logLevel
108
- });
109
- },
110
- withPinoRoll (options) {
111
- return attachRecipe(factory, {
112
- ...plan,
113
- roll: options,
114
- logLevel: options.logLevel ?? plan.logLevel
115
- });
116
- }
117
- };
118
- return Object.assign(loggerFactory, chain, {
119
- and: chain
120
- });
121
- }
122
- /**
123
- * Attach a listener so worker transport failures (e.g. pino-roll symlink EEXIST)
124
- * never become Node's default unhandled `error` crash.
125
- */ function silenceErrors(transport) {
126
- transport.on("error", (err)=>{
127
- const detail = err?.stack ?? String(err);
128
- process.stderr.write(`[scribe-pino] transport error: ${detail}\n`);
129
- });
130
- }
131
- function createSafeTransport(options) {
132
- const transport = pino.transport(options);
133
- silenceErrors(transport);
134
- return transport;
135
- }
136
- function adapterForTransport(transport) {
137
- if (transport == null) {
138
- return new PinoAdapter({});
139
- }
140
- return new PinoAdapter({}, createSafeTransport(transport));
141
- }
142
- function applyRecipe(factory, plan) {
143
- const adapter = adapterForTransport(pinoRecipe.transport(plan));
144
- return factory.configure({
145
- options: {
146
- logLevel: plan.logLevel ?? DefaultLogLevel
147
- },
148
- adapter
149
- });
150
- }
151
63
  function configureScribe(factory, options, config) {
152
64
  const environment = process.env.NODE_ENV ?? DefaultEnvironment;
153
- const configs = (Array.isArray(config) ? config : config != null ? [
65
+ const configs = Array.isArray(config) ? config : [
154
66
  config
155
- ] : []).filter((item)=>item.environment == null || item.environment === environment);
156
- if (configs.length > 1) {
67
+ ];
68
+ const transports = configs.filter((config)=>config.environment && config.environment === environment || true);
69
+ if (transports.length > 1) {
157
70
  throw new LoggingConfigurationError(`There should only be one configuration per environment for logging`);
158
71
  }
159
- const adapter = adapterForTransport(configs.at(0)?.transports);
72
+ const transport = transports.at(0)?.transports;
73
+ const adapter = new PinoAdapter({
74
+ transport
75
+ });
160
76
  return factory.configure({
161
- options: {
162
- ...options,
163
- logLevel: options?.logLevel ?? DefaultLogLevel
164
- },
77
+ options,
165
78
  adapter
166
79
  });
167
80
  }
168
- export const pinoTransport = {
169
- createSafeTransport,
170
- silenceErrors
171
- };
172
81
 
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHREZWZhdWx0TG9nTGV2ZWwsXG5cdHR5cGUgTG9nZ2VyLFxuXHRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG5cdHNjcmliZSxcbn0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCBwaW5vLCB7XG5cdHR5cGUgRGVzdGluYXRpb25TdHJlYW0sXG5cdHR5cGUgVHJhbnNwb3J0TXVsdGlPcHRpb25zLFxuXHR0eXBlIFRyYW5zcG9ydFBpcGVsaW5lT3B0aW9ucyxcblx0dHlwZSBUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tIFwicGlub1wiO1xuXG5pbXBvcnQgeyBQaW5vQWRhcHRlciB9IGZyb20gXCIuL3Bpbm8uYWRhcGF0ZXIuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdHR5cGUgUGlub1JlY2lwZVBsYW4sXG5cdHR5cGUgUGlub1JvbGxSZWNpcGVPcHRpb25zLFxuXHRwaW5vUmVjaXBlLFxufSBmcm9tIFwiLi9waW5vLnJlY2lwZS5qc1wiO1xuXG50eXBlIFRyYW5zcG9ydE9wdGlvbnMgPVxuXHR8IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnNcblx0fCBUcmFuc3BvcnRNdWx0aU9wdGlvbnNcblx0fCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnM7XG5cbnR5cGUgVHJhbnNwb3J0Q29uZmlnID0ge1xuXHRlbnZpcm9ubWVudD86IEVudmlyb25tZW50O1xuXHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRPcHRpb25zO1xufTtcblxudHlwZSBDdXN0b21MZXZlbE9wdGlvbnM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4gPSB7XG5cdHNjcmliZT86IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT47XG5cdHRyYW5zcG9ydHM/OiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Mb2dnZXJGYWN0b3J5ID0gKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblxuZXhwb3J0IHR5cGUgUGlub1JlY2lwZUNoYWluID0ge1xuXHR3aXRoUGlub1ByZXR0eShcblx0XHRsb2dMZXZlbE9yT3B0aW9ucz86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcgfCBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyxcblx0KTogUGlub1JlY2lwZTtcblx0d2l0aFBpbm9Sb2xsKG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFBpbm9SZWNpcGU7XG59O1xuXG5leHBvcnQgdHlwZSBQaW5vUmVjaXBlID0gUGlub0xvZ2dlckZhY3RvcnkgJlxuXHRQaW5vUmVjaXBlQ2hhaW4gJiB7XG5cdFx0cmVhZG9ubHkgYW5kOiBQaW5vUmVjaXBlQ2hhaW47XG5cdH07XG5cbmRlY2xhcmUgbW9kdWxlIFwiQGRlY29oZXJlL3NjcmliZVwiIHtcblx0aW50ZXJmYWNlIHNjcmliZSB7XG5cdFx0d2l0aFBpbm8oXG5cdFx0XHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRcdGxvZ2xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0XHQpOiBQaW5vTG9nZ2VyRmFjdG9yeTtcblx0XHQvKipcblx0XHQgKiBDb2xvcml6ZWQgcHJldHR5IHRyYW5zcG9ydC4gRGV2ZWxvcG1lbnQgb25seSB1bmxlc3MgYHsgd2hlbjogXCJhbHdheXNcIiB9YC5cblx0XHQgKiBDaGFpbiB3aXRoIGAuYW5kLndpdGhQaW5vUm9sbCh7IGZpbGUgfSlgLiBQcm9kdWN0aW9uIHdyaXRlcyBKU09OIHRvIHN0ZG91dFxuXHRcdCAqIHNvIGxvZyBzaGlwcGluZyBzdGF5cyBvdXRzaWRlIHRoZSBwcm9jZXNzLlxuXHRcdCAqL1xuXHRcdHdpdGhQaW5vUHJldHR5KFxuXHRcdFx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdFx0KTogUGlub1JlY2lwZTtcblx0XHQvKipcblx0XHQgKiBSb2xsaW5nIGxvZyBmaWxlcy4gRGV2ZWxvcG1lbnQgb25seSB1bmxlc3MgYHsgd2hlbjogXCJhbHdheXNcIiB9YC5cblx0XHQgKiBEbyBub3QgZW5hYmxlIGluIHByb2R1Y3Rpb24g4oCUIHNoaXAgc3Rkb3V0IGZyb20gYSBzaWRlY2FyIG9yIHBsYXRmb3JtIGFnZW50LlxuXHRcdCAqIGBzeW1saW5rYCBkZWZhdWx0cyBvZmY7IGVuYWJsaW5nIGl0IGNhbiByYWNlIHVuZGVyIG11bHRpLXdvcmtlciAvIEhNUi5cblx0XHQgKi9cblx0XHR3aXRoUGlub1JvbGwob3B0aW9uczogUGlub1JvbGxSZWNpcGVPcHRpb25zKTogUGlub1JlY2lwZTtcblx0XHR3aXRoUGlub0N1c3RvbTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdFx0KTogUGlub0xvZ2dlckZhY3Rvcnk7XG5cdH1cblx0bmFtZXNwYWNlIHNjcmliZSB7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm8oXG5cdFx0XHR0cmFuc3BvcnRzOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRcdGxvZ2xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0XHQpOiBQaW5vTG9nZ2VyRmFjdG9yeTtcblx0XHRmdW5jdGlvbiB3aXRoUGlub1ByZXR0eShcblx0XHRcdGxvZ0xldmVsT3JPcHRpb25zPzogRGVmYXVsdExldmVscyB8IHN0cmluZyB8IFBpbm9QcmV0dHlSZWNpcGVPcHRpb25zLFxuXHRcdCk6IFBpbm9SZWNpcGU7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm9Sb2xsKG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFBpbm9SZWNpcGU7XG5cdFx0ZnVuY3Rpb24gd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0XHRvcHRpb25zPzogQ3VzdG9tTGV2ZWxPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRcdCk6IFBpbm9Mb2dnZXJGYWN0b3J5O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBQaW5vRXh0ZW5zaW9ucyB7XG5cdEBleHRlbnNpb24oc2NyaWJlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vKFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0KSB7XG5cdFx0cmV0dXJuIGNvbmZpZ3VyZVNjcmliZShmYWN0b3J5LCB7IGxvZ0xldmVsIH0sIGNvbmZpZyk7XG5cdH1cblxuXHRAZXh0ZW5zaW9uKHNjcmliZSwgeyBzdGF0aWM6IHRydWUgfSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlub1ByZXR0eShcblx0XHRmYWN0b3J5OiBzY3JpYmUsXG5cdFx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG5cdCkge1xuXHRcdGNvbnN0IHByZXR0eSA9IHBhcnNlUHJldHR5QXJnKGxvZ0xldmVsT3JPcHRpb25zKTtcblx0XHRyZXR1cm4gYXR0YWNoUmVjaXBlKGZhY3RvcnksIHsgcHJldHR5LCBsb2dMZXZlbDogcHJldHR5LmxvZ0xldmVsIH0pO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9Sb2xsKGZhY3Rvcnk6IHNjcmliZSwgb3B0aW9uczogUGlub1JvbGxSZWNpcGVPcHRpb25zKSB7XG5cdFx0cmV0dXJuIGF0dGFjaFJlY2lwZShmYWN0b3J5LCB7IHJvbGw6IG9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zLmxvZ0xldmVsIH0pO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUsIHsgc3RhdGljOiB0cnVlIH0pXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0ZmFjdG9yeTogc2NyaWJlLFxuXHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgc2NyaWJlLCB0cmFuc3BvcnRzIH0gPSBvcHRpb25zID8/IHt9O1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgc2NyaWJlLCB0cmFuc3BvcnRzKTtcblx0fVxufVxuXG5mdW5jdGlvbiBwYXJzZVByZXR0eUFyZyhcblx0bG9nTGV2ZWxPck9wdGlvbnM/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nIHwgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMsXG4pOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyB7XG5cdGlmIChsb2dMZXZlbE9yT3B0aW9ucyA9PSBudWxsKSB7XG5cdFx0cmV0dXJuIHt9O1xuXHR9XG5cdGlmICh0eXBlb2YgbG9nTGV2ZWxPck9wdGlvbnMgPT09IFwic3RyaW5nXCIpIHtcblx0XHRyZXR1cm4geyBsb2dMZXZlbDogbG9nTGV2ZWxPck9wdGlvbnMgfTtcblx0fVxuXHRyZXR1cm4gbG9nTGV2ZWxPck9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIGF0dGFjaFJlY2lwZShmYWN0b3J5OiBzY3JpYmUsIHBsYW46IFBpbm9SZWNpcGVQbGFuKTogUGlub1JlY2lwZSB7XG5cdGNvbnN0IGxvZ2dlckZhY3RvcnkgPSBhcHBseVJlY2lwZShmYWN0b3J5LCBwbGFuKTtcblx0Y29uc3QgY2hhaW46IFBpbm9SZWNpcGVDaGFpbiA9IHtcblx0XHR3aXRoUGlub1ByZXR0eShsb2dMZXZlbE9yT3B0aW9ucykge1xuXHRcdFx0Y29uc3QgcHJldHR5ID0gcGFyc2VQcmV0dHlBcmcobG9nTGV2ZWxPck9wdGlvbnMpO1xuXHRcdFx0cmV0dXJuIGF0dGFjaFJlY2lwZShmYWN0b3J5LCB7XG5cdFx0XHRcdC4uLnBsYW4sXG5cdFx0XHRcdHByZXR0eTogeyAuLi5wbGFuLnByZXR0eSwgLi4ucHJldHR5IH0sXG5cdFx0XHRcdGxvZ0xldmVsOiBwcmV0dHkubG9nTGV2ZWwgPz8gcGxhbi5sb2dMZXZlbCxcblx0XHRcdH0pO1xuXHRcdH0sXG5cdFx0d2l0aFBpbm9Sb2xsKG9wdGlvbnMpIHtcblx0XHRcdHJldHVybiBhdHRhY2hSZWNpcGUoZmFjdG9yeSwge1xuXHRcdFx0XHQuLi5wbGFuLFxuXHRcdFx0XHRyb2xsOiBvcHRpb25zLFxuXHRcdFx0XHRsb2dMZXZlbDogb3B0aW9ucy5sb2dMZXZlbCA/PyBwbGFuLmxvZ0xldmVsLFxuXHRcdFx0fSk7XG5cdFx0fSxcblx0fTtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ24obG9nZ2VyRmFjdG9yeSwgY2hhaW4sIHsgYW5kOiBjaGFpbiB9KTtcbn1cblxuLyoqXG4gKiBBdHRhY2ggYSBsaXN0ZW5lciBzbyB3b3JrZXIgdHJhbnNwb3J0IGZhaWx1cmVzIChlLmcuIHBpbm8tcm9sbCBzeW1saW5rIEVFWElTVClcbiAqIG5ldmVyIGJlY29tZSBOb2RlJ3MgZGVmYXVsdCB1bmhhbmRsZWQgYGVycm9yYCBjcmFzaC5cbiAqL1xuZnVuY3Rpb24gc2lsZW5jZUVycm9ycyh0cmFuc3BvcnQ6IHtcblx0b24oZXZlbnQ6IFwiZXJyb3JcIiwgbGlzdGVuZXI6IChlcnI6IEVycm9yKSA9PiB2b2lkKTogdW5rbm93bjtcbn0pOiB2b2lkIHtcblx0dHJhbnNwb3J0Lm9uKFwiZXJyb3JcIiwgKGVycikgPT4ge1xuXHRcdGNvbnN0IGRldGFpbCA9IGVycj8uc3RhY2sgPz8gU3RyaW5nKGVycik7XG5cdFx0cHJvY2Vzcy5zdGRlcnIud3JpdGUoYFtzY3JpYmUtcGlub10gdHJhbnNwb3J0IGVycm9yOiAke2RldGFpbH1cXG5gKTtcblx0fSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNhZmVUcmFuc3BvcnQob3B0aW9uczogVHJhbnNwb3J0T3B0aW9ucyk6IERlc3RpbmF0aW9uU3RyZWFtIHtcblx0Y29uc3QgdHJhbnNwb3J0ID0gcGluby50cmFuc3BvcnQob3B0aW9ucyk7XG5cdHNpbGVuY2VFcnJvcnModHJhbnNwb3J0KTtcblx0cmV0dXJuIHRyYW5zcG9ydDtcbn1cblxuZnVuY3Rpb24gYWRhcHRlckZvclRyYW5zcG9ydCh0cmFuc3BvcnQ/OiBUcmFuc3BvcnRPcHRpb25zKTogUGlub0FkYXB0ZXIge1xuXHRpZiAodHJhbnNwb3J0ID09IG51bGwpIHtcblx0XHRyZXR1cm4gbmV3IFBpbm9BZGFwdGVyKHt9KTtcblx0fVxuXHRyZXR1cm4gbmV3IFBpbm9BZGFwdGVyKHt9LCBjcmVhdGVTYWZlVHJhbnNwb3J0KHRyYW5zcG9ydCkpO1xufVxuXG5mdW5jdGlvbiBhcHBseVJlY2lwZShmYWN0b3J5OiBzY3JpYmUsIHBsYW46IFBpbm9SZWNpcGVQbGFuKTogUGlub0xvZ2dlckZhY3Rvcnkge1xuXHRjb25zdCBhZGFwdGVyID0gYWRhcHRlckZvclRyYW5zcG9ydChwaW5vUmVjaXBlLnRyYW5zcG9ydChwbGFuKSk7XG5cdHJldHVybiBmYWN0b3J5LmNvbmZpZ3VyZSh7XG5cdFx0b3B0aW9uczogeyBsb2dMZXZlbDogcGxhbi5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU2NyaWJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0ZmFjdG9yeTogc2NyaWJlLFxuXHRvcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRjb25maWc/OiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcbikge1xuXHRjb25zdCBlbnZpcm9ubWVudCA9IHByb2Nlc3MuZW52Lk5PREVfRU5WID8/IERlZmF1bHRFbnZpcm9ubWVudDtcblx0Y29uc3QgY29uZmlncyA9IChBcnJheS5pc0FycmF5KGNvbmZpZykgPyBjb25maWcgOiBjb25maWcgIT0gbnVsbCA/IFtjb25maWddIDogW10pLmZpbHRlcihcblx0XHQoaXRlbSkgPT4gaXRlbS5lbnZpcm9ubWVudCA9PSBudWxsIHx8IGl0ZW0uZW52aXJvbm1lbnQgPT09IGVudmlyb25tZW50LFxuXHQpO1xuXG5cdGlmIChjb25maWdzLmxlbmd0aCA+IDEpIHtcblx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdGBUaGVyZSBzaG91bGQgb25seSBiZSBvbmUgY29uZmlndXJhdGlvbiBwZXIgZW52aXJvbm1lbnQgZm9yIGxvZ2dpbmdgLFxuXHRcdCk7XG5cdH1cblxuXHRjb25zdCBhZGFwdGVyID0gYWRhcHRlckZvclRyYW5zcG9ydChjb25maWdzLmF0KDApPy50cmFuc3BvcnRzKTtcblx0cmV0dXJuIGZhY3RvcnkuY29uZmlndXJlKHtcblx0XHRvcHRpb25zOiB7IC4uLm9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zPy5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHBpbm9UcmFuc3BvcnQgPSB7IGNyZWF0ZVNhZmVUcmFuc3BvcnQsIHNpbGVuY2VFcnJvcnMgfTtcbiJdLCJuYW1lcyI6WyJleHRlbnNpb24iLCJEZWZhdWx0RW52aXJvbm1lbnQiLCJEZWZhdWx0TG9nTGV2ZWwiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwic2NyaWJlIiwicGlubyIsIlBpbm9BZGFwdGVyIiwicGlub1JlY2lwZSIsIlBpbm9FeHRlbnNpb25zIiwid2l0aFBpbm8iLCJmYWN0b3J5IiwiY29uZmlnIiwibG9nTGV2ZWwiLCJjb25maWd1cmVTY3JpYmUiLCJ3aXRoUGlub1ByZXR0eSIsImxvZ0xldmVsT3JPcHRpb25zIiwicHJldHR5IiwicGFyc2VQcmV0dHlBcmciLCJhdHRhY2hSZWNpcGUiLCJ3aXRoUGlub1JvbGwiLCJvcHRpb25zIiwicm9sbCIsIndpdGhQaW5vQ3VzdG9tIiwidHJhbnNwb3J0cyIsInN0YXRpYyIsInBsYW4iLCJsb2dnZXJGYWN0b3J5IiwiYXBwbHlSZWNpcGUiLCJjaGFpbiIsIk9iamVjdCIsImFzc2lnbiIsImFuZCIsInNpbGVuY2VFcnJvcnMiLCJ0cmFuc3BvcnQiLCJvbiIsImVyciIsImRldGFpbCIsInN0YWNrIiwiU3RyaW5nIiwicHJvY2VzcyIsInN0ZGVyciIsIndyaXRlIiwiY3JlYXRlU2FmZVRyYW5zcG9ydCIsImFkYXB0ZXJGb3JUcmFuc3BvcnQiLCJhZGFwdGVyIiwiY29uZmlndXJlIiwiZW52aXJvbm1lbnQiLCJlbnYiLCJOT0RFX0VOViIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJpdGVtIiwibGVuZ3RoIiwiYXQiLCJwaW5vVHJhbnNwb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxTQUFTQSxTQUFTLFFBQVEsZ0NBQWdDO0FBQzFELFNBQVNDLGtCQUFrQixRQUEwQix5QkFBeUI7QUFDOUUsU0FFQ0Ms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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHR0eXBlIExvZ2dlcixcblx0TG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxuXHRzY3JpYmUsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgdHlwZSB7XG5cdFRyYW5zcG9ydE11bHRpT3B0aW9ucyxcblx0VHJhbnNwb3J0UGlwZWxpbmVPcHRpb25zLFxuXHRUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tIFwicGlub1wiO1xuXG5pbXBvcnQgeyBQaW5vQWRhcHRlciB9IGZyb20gXCIuL3Bpbm8uYWRhcGF0ZXIuanNcIjtcblxudHlwZSBUcmFuc3BvcnRDb25maWcgPSB7XG5cdGVudmlyb25tZW50PzogRW52aXJvbm1lbnQ7XG5cdHRyYW5zcG9ydHM6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnM7XG59O1xuXG50eXBlIEN1c3RvbUxldmVsT3B0aW9uczxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPiA9IHtcblx0c2NyaWJlPzogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pjtcblx0dHJhbnNwb3J0cz86IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdO1xufTtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjb2hlcmUvc2NyaWJlXCIge1xuXHRpbnRlcmZhY2Ugc2NyaWJlIHtcblx0XHR3aXRoUGlubyhcblx0XHRcdHRyYW5zcG9ydHM6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdFx0bG9nbGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nLFxuXHRcdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI7XG5cdFx0d2l0aFBpbm9QcmV0dHkobG9nTGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nKTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblx0XHR3aXRoUGlub0N1c3RvbTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdFx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgUGlub0V4dGVuc2lvbnMge1xuXHRAZXh0ZW5zaW9uKHNjcmliZSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlubyhcblx0XHRmYWN0b3J5OiBzY3JpYmUsXG5cdFx0Y29uZmlnOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcsXG5cdCkge1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgeyBsb2dMZXZlbCB9LCBjb25maWcpO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUpXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9QcmV0dHkoZmFjdG9yeTogc2NyaWJlLCBsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcpIHtcblx0XHRyZXR1cm4gUGlub0V4dGVuc2lvbnMud2l0aFBpbm8oXG5cdFx0XHRmYWN0b3J5LFxuXHRcdFx0eyB0cmFuc3BvcnRzOiB7IHRhcmdldDogXCJwaW5vLXByZXR0eVwiLCBvcHRpb25zOiB7IGNvbG9yaXplOiB0cnVlIH0gfSB9LFxuXHRcdFx0bG9nTGV2ZWwsXG5cdFx0KTtcblx0fVxuXG5cdEBleHRlbnNpb24oc2NyaWJlKVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vQ3VzdG9tPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRvcHRpb25zPzogQ3VzdG9tTGV2ZWxPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRjb25zdCB7IHNjcmliZSwgdHJhbnNwb3J0cyB9ID0gb3B0aW9ucztcblx0XHRyZXR1cm4gY29uZmlndXJlU2NyaWJlKGZhY3RvcnksIHNjcmliZSwgdHJhbnNwb3J0cyk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU2NyaWJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0ZmFjdG9yeTogc2NyaWJlLFxuXHRvcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuKSB7XG5cdGNvbnN0IGVudmlyb25tZW50ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPz8gRGVmYXVsdEVudmlyb25tZW50O1xuXHRjb25zdCBjb25maWdzID0gQXJyYXkuaXNBcnJheShjb25maWcpID8gY29uZmlnIDogW2NvbmZpZ107XG5cdGNvbnN0IHRyYW5zcG9ydHMgPSBjb25maWdzLmZpbHRlcihcblx0XHQoY29uZmlnKSA9PiAoY29uZmlnLmVudmlyb25tZW50ICYmIGNvbmZpZy5lbnZpcm9ubWVudCA9PT0gZW52aXJvbm1lbnQpIHx8IHRydWUsXG5cdCk7XG5cblx0aWYgKHRyYW5zcG9ydHMubGVuZ3RoID4gMSkge1xuXHRcdHRocm93IG5ldyBMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yKFxuXHRcdFx0YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjb25maWd1cmF0aW9uIHBlciBlbnZpcm9ubWVudCBmb3IgbG9nZ2luZ2AsXG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IHRyYW5zcG9ydCA9IHRyYW5zcG9ydHMuYXQoMCk/LnRyYW5zcG9ydHM7XG5cdGNvbnN0IGFkYXB0ZXIgPSBuZXcgUGlub0FkYXB0ZXIoeyB0cmFuc3BvcnQgfSk7XG5cdHJldHVybiBmYWN0b3J5LmNvbmZpZ3VyZSh7XG5cdFx0b3B0aW9ucyxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cbiJdLCJuYW1lcyI6WyJleHRlbnNpb24iLCJEZWZhdWx0RW52aXJvbm1lbnQiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwic2NyaWJlIiwiUGlub0FkYXB0ZXIiLCJQaW5vRXh0ZW5zaW9ucyIsIndpdGhQaW5vIiwiZmFjdG9yeSIsImNvbmZpZyIsImxvZ0xldmVsIiwiY29uZmlndXJlU2NyaWJlIiwid2l0aFBpbm9QcmV0dHkiLCJ0cmFuc3BvcnRzIiwidGFyZ2V0Iiwib3B0aW9ucyIsImNvbG9yaXplIiwid2l0aFBpbm9DdXN0b20iLCJlbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJsZW5ndGgiLCJ0cmFuc3BvcnQiLCJhdCIsImFkYXB0ZXIiLCJjb25maWd1cmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLFNBQVNBLFNBQVMsUUFBUSxnQ0FBZ0M7QUFDMUQsU0FBU0Msa0JBQWtCLFFBQTBCLHlCQUF5QjtBQUM5RSxTQUdDQyx5QkFBeUIsRUFFekJDLE1BQU0sUUFDQSxtQkFBbUI7QUFPMUIsU0FBU0MsV0FBVyxRQUFRLHFCQUFxQjtBQXlCakQsT0FBTyxNQUFNQztJQUNaLE9BQ2NDLFNBQ2JDLE9BQWUsRUFDZkMsTUFBMkMsRUFDM0NDLFFBQWlDLEVBQ2hDO1FBQ0QsT0FBT0MsZ0JBQWdCSCxTQUFTO1lBQUVFO1FBQVMsR0FBR0Q7SUFDL0M7SUFFQSxPQUNjRyxlQUFlSixPQUFlLEVBQUVFLFFBQWlDLEVBQUU7UUFDaEYsT0FBT0osZUFBZUMsUUFBUSxDQUM3QkMsU0FDQTtZQUFFSyxZQUFZO2dCQUFFQyxRQUFRO2dCQUFlQyxTQUFTO29CQUFFQyxVQUFVO2dCQUFLO1lBQUU7UUFBRSxHQUNyRU47SUFFRjtJQUVBLE9BQ2NPLGVBQ2JULE9BQWUsRUFDZk8sT0FBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVYLE1BQU0sRUFBRVMsVUFBVSxFQUFFLEdBQUdFO1FBQy9CLE9BQU9KLGdCQUFnQkgsU0FBU0osUUFBUVM7SUFDekM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFTRixnQkFDUkgsT0FBZSxFQUNmTyxPQUFxQyxFQUNyQ04sTUFBMkM7SUFFM0MsTUFBTVMsY0FBY0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLElBQUluQjtJQUM1QyxNQUFNb0IsVUFBVUMsTUFBTUMsT0FBTyxDQUFDZixVQUFVQSxTQUFTO1FBQUNBO0tBQU87SUFDekQsTUFBTUksYUFBYVMsUUFBUUcsTUFBTSxDQUNoQyxDQUFDaEIsU0FBVyxBQUFDQSxPQUFPUyxXQUFXLElBQUlULE9BQU9TLFdBQVcsS0FBS0EsZUFBZ0I7SUFHM0UsSUFBSUwsV0FBV2EsTUFBTSxHQUFHLEdBQUc7UUFDMUIsTUFBTSxJQUFJdkIsMEJBQ1QsQ0FBQyxrRUFBa0UsQ0FBQztJQUV0RTtJQUVBLE1BQU13QixZQUFZZCxXQUFXZSxFQUFFLENBQUMsSUFBSWY7SUFDcEMsTUFBTWdCLFVBQVUsSUFBSXhCLFlBQVk7UUFBRXNCO0lBQVU7SUFDNUMsT0FBT25CLFFBQVFzQixTQUFTLENBQUM7UUFDeEJmO1FBQ0FjO0lBQ0Q7QUFDRCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/scribe-pino",
3
- "version": "0.0.1-dev.69",
3
+ "version": "0.0.1-dev.7",
4
4
  "description": "Pino adapter for @decohere/scribe",
5
5
  "keywords": [
6
6
  "typescript",
@@ -23,21 +23,9 @@
23
23
  "test": "echo \"Error: no test specified\" && exit 1"
24
24
  },
25
25
  "dependencies": {
26
- "@decohere/nexus": "0.0.1-dev.69",
27
- "@decohere/scribe": "0.0.1-dev.69",
26
+ "@decohere/nexus": "0.0.1-dev.7",
27
+ "@decohere/scribe": "0.0.1-dev.7",
28
28
  "pino": "^10.3.0"
29
29
  },
30
- "devDependencies": {},
31
- "peerDependencies": {
32
- "pino-pretty": "^13.0.0",
33
- "pino-roll": "^4.0.0"
34
- },
35
- "peerDependenciesMeta": {
36
- "pino-pretty": {
37
- "optional": true
38
- },
39
- "pino-roll": {
40
- "optional": true
41
- }
42
- }
30
+ "devDependencies": {}
43
31
  }
@@ -1,3 +1,2 @@
1
1
  export * from "./pino.adapater.js";
2
- export * from "./pino.recipe.js";
3
2
  export * from "./scribe-pino.js";
@@ -8,10 +8,8 @@ export declare class PinoAdapter extends LogAdapter {
8
8
  private _pino;
9
9
  private readonly options;
10
10
  private readonly stream;
11
- private disposed;
12
11
  constructor(options: pino.LoggerOptions, stream?: pino.DestinationStream);
13
12
  configure<T extends string = never, CustomOnly extends true | false = false>(scribeOptions: ScribeOptions<T, CustomOnly>): void;
14
13
  getLogger<T extends string = never, CustomOnly extends true | false = false>(name: string): Logger<T, CustomOnly>;
15
14
  flush(cb?: () => void): void;
16
- [Symbol.asyncDispose](): Promise<void>;
17
15
  }
@@ -1,64 +1,24 @@
1
1
  import { type Environment } from "@decohere/nexus/system";
2
2
  import { type DefaultLevels, type Logger, type ScribeOptions, scribe } from "@decohere/scribe";
3
- import { type DestinationStream, type TransportMultiOptions, type TransportPipelineOptions, type TransportSingleOptions } from "pino";
4
- import { type PinoPrettyRecipeOptions, type PinoRollRecipeOptions } from "./pino.recipe.js";
5
- type TransportOptions = TransportSingleOptions | TransportMultiOptions | TransportPipelineOptions;
3
+ import type { TransportMultiOptions, TransportPipelineOptions, TransportSingleOptions } from "pino";
6
4
  type TransportConfig = {
7
5
  environment?: Environment;
8
- transports: TransportOptions;
6
+ transports: TransportSingleOptions | TransportMultiOptions | TransportPipelineOptions;
9
7
  };
10
8
  type CustomLevelOptions<T extends string = never, CustomOnly extends true = undefined> = {
11
9
  scribe?: ScribeOptions<T, CustomOnly>;
12
10
  transports?: TransportConfig | TransportConfig[];
13
11
  };
14
- export type PinoLoggerFactory = (name?: string) => Logger;
15
- export type PinoRecipeChain = {
16
- withPinoPretty(logLevelOrOptions?: DefaultLevels | string | PinoPrettyRecipeOptions): PinoRecipe;
17
- withPinoRoll(options: PinoRollRecipeOptions): PinoRecipe;
18
- };
19
- export type PinoRecipe = PinoLoggerFactory & PinoRecipeChain & {
20
- readonly and: PinoRecipeChain;
21
- };
22
12
  declare module "@decohere/scribe" {
23
13
  interface scribe {
24
- withPino(transports: TransportConfig | TransportConfig[], loglevel?: DefaultLevels | string): PinoLoggerFactory;
25
- /**
26
- * Colorized pretty transport. Development only unless `{ when: "always" }`.
27
- * Chain with `.and.withPinoRoll({ file })`. Production writes JSON to stdout
28
- * so log shipping stays outside the process.
29
- */
30
- withPinoPretty(logLevelOrOptions?: DefaultLevels | string | PinoPrettyRecipeOptions): PinoRecipe;
31
- /**
32
- * Rolling log files. Development only unless `{ when: "always" }`.
33
- * Do not enable in production — ship stdout from a sidecar or platform agent.
34
- * `symlink` defaults off; enabling it can race under multi-worker / HMR.
35
- */
36
- withPinoRoll(options: PinoRollRecipeOptions): PinoRecipe;
37
- withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(options?: CustomLevelOptions<T, CustomOnly>): PinoLoggerFactory;
38
- }
39
- namespace scribe {
40
- function withPino(transports: TransportConfig | TransportConfig[], loglevel?: DefaultLevels | string): PinoLoggerFactory;
41
- function withPinoPretty(logLevelOrOptions?: DefaultLevels | string | PinoPrettyRecipeOptions): PinoRecipe;
42
- function withPinoRoll(options: PinoRollRecipeOptions): PinoRecipe;
43
- function withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(options?: CustomLevelOptions<T, CustomOnly>): PinoLoggerFactory;
14
+ withPino(transports: TransportConfig | TransportConfig[], loglevel?: DefaultLevels | string): (name?: string) => Logger;
15
+ withPinoPretty(logLevel?: DefaultLevels | string): (name?: string) => Logger;
16
+ withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(options?: CustomLevelOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
44
17
  }
45
18
  }
46
19
  export declare class PinoExtensions {
47
- static withPino(factory: scribe, config: TransportConfig | TransportConfig[], logLevel?: DefaultLevels | string): (name?: string) => Logger<never, false>;
48
- static withPinoPretty(factory: scribe, logLevelOrOptions?: DefaultLevels | string | PinoPrettyRecipeOptions): PinoRecipe;
49
- static withPinoRoll(factory: scribe, options: PinoRollRecipeOptions): PinoRecipe;
50
- static withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(factory: scribe, options?: CustomLevelOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
20
+ static withPino(factory: scribe, config: TransportConfig | TransportConfig[], logLevel?: DefaultLevels | string): any;
21
+ static withPinoPretty(factory: scribe, logLevel?: DefaultLevels | string): any;
22
+ static withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(factory: scribe, options?: CustomLevelOptions<T, CustomOnly>): any;
51
23
  }
52
- /**
53
- * Attach a listener so worker transport failures (e.g. pino-roll symlink EEXIST)
54
- * never become Node's default unhandled `error` crash.
55
- */
56
- declare function silenceErrors(transport: {
57
- on(event: "error", listener: (err: Error) => void): unknown;
58
- }): void;
59
- declare function createSafeTransport(options: TransportOptions): DestinationStream;
60
- export declare const pinoTransport: {
61
- createSafeTransport: typeof createSafeTransport;
62
- silenceErrors: typeof silenceErrors;
63
- };
64
24
  export {};
@@ -1,67 +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
- function currentEnvironment() {
16
- return process.env.NODE_ENV === _system.Environments.production ? _system.Environments.production : _system.Environments.development;
17
- }
18
- function isEnabled(when, environment) {
19
- return (when ?? "development") === "always" || environment === _system.Environments.development;
20
- }
21
- function prettyTarget(options) {
22
- return {
23
- target: "pino-pretty",
24
- options: {
25
- colorize: options.colorize ?? true
26
- }
27
- };
28
- }
29
- function rollTarget(options) {
30
- return {
31
- target: "pino-roll",
32
- options: {
33
- file: options.file,
34
- mkdir: options.mkdir ?? true,
35
- size: options.size ?? DEFAULT_ROLL_SIZE,
36
- frequency: options.frequency ?? DEFAULT_ROLL_FREQUENCY,
37
- limit: {
38
- count: options.keep ?? DEFAULT_ROLL_KEEP
39
- },
40
- symlink: options.symlink ?? false
41
- }
42
- };
43
- }
44
- function transport(plan, environment = currentEnvironment()) {
45
- const targets = [];
46
- if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
47
- targets.push(prettyTarget(plan.pretty));
48
- }
49
- if (plan.roll && isEnabled(plan.roll.when, environment)) {
50
- targets.push(rollTarget(plan.roll));
51
- }
52
- if (targets.length === 0) {
53
- return undefined;
54
- }
55
- if (targets.length === 1) {
56
- return targets[0];
57
- }
58
- return {
59
- targets
60
- };
61
- }
62
- const pinoRecipe = {
63
- transport,
64
- currentEnvironment
65
- };
66
-
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0ZmlsZTogc3RyaW5nO1xuXHRzaXplPzogc3RyaW5nO1xuXHRmcmVxdWVuY3k/OiBzdHJpbmcgfCBudW1iZXI7XG5cdGtlZXA/OiBudW1iZXI7XG5cdG1rZGlyPzogYm9vbGVhbjtcblx0c3ltbGluaz86IGJvb2xlYW47XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3aGVuPzogUGlub1doZW47XG59O1xuXG5leHBvcnQgdHlwZSBQaW5vUmVjaXBlUGxhbiA9IHtcblx0cHJldHR5PzogUGlub1ByZXR0eVJlY2lwZU9wdGlvbnM7XG5cdHJvbGw/OiBQaW5vUm9sbFJlY2lwZU9wdGlvbnM7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xufTtcblxuY29uc3QgREVGQVVMVF9ST0xMX1NJWkUgPSBcIjEwbVwiO1xuY29uc3QgREVGQVVMVF9ST0xMX0ZSRVFVRU5DWSA9IFwiZGFpbHlcIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9LRUVQID0gMTQ7XG5cbmZ1bmN0aW9uIGN1cnJlbnRFbnZpcm9ubWVudCgpOiBFbnZpcm9ubWVudCB7XG5cdHJldHVybiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ/IEVudmlyb25tZW50cy5wcm9kdWN0aW9uXG5cdFx0OiBFbnZpcm9ubWVudHMuZGV2ZWxvcG1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzRW5hYmxlZCh3aGVuOiBQaW5vV2hlbiB8IHVuZGVmaW5lZCwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogYm9vbGVhbiB7XG5cdHJldHVybiAod2hlbiA/PyBcImRldmVsb3BtZW50XCIpID09PSBcImFsd2F5c1wiIHx8IGVudmlyb25tZW50ID09PSBFbnZpcm9ubWVudHMuZGV2ZWxvcG1lbnQ7XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXJvbGxcIixcblx0XHRvcHRpb25zOiB7XG5cdFx0XHRmaWxlOiBvcHRpb25zLmZpbGUsXG5cdFx0XHRta2Rpcjogb3B0aW9ucy5ta2RpciA/PyB0cnVlLFxuXHRcdFx0c2l6ZTogb3B0aW9ucy5zaXplID8/IERFRkFVTFRfUk9MTF9TSVpFLFxuXHRcdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdFx0bGltaXQ6IHsgY291bnQ6IG9wdGlvbnMua2VlcCA/PyBERUZBVUxUX1JPTExfS0VFUCB9LFxuXHRcdFx0c3ltbGluazogb3B0aW9ucy5zeW1saW5rID8/IGZhbHNlLFxuXHRcdH0sXG5cdH07XG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9ydChcblx0cGxhbjogUGlub1JlY2lwZVBsYW4sXG5cdGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGN1cnJlbnRFbnZpcm9ubWVudCgpLFxuKTogVHJhbnNwb3J0U2luZ2xlT3B0aW9ucyB8IFRyYW5zcG9ydE11bHRpT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHRhcmdldHM6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnNbXSA9IFtdO1xuXHRpZiAocGxhbi5wcmV0dHkgJiYgaXNFbmFibGVkKHBsYW4ucHJldHR5LndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChwcmV0dHlUYXJnZXQocGxhbi5wcmV0dHkpKTtcblx0fVxuXHRpZiAocGxhbi5yb2xsICYmIGlzRW5hYmxlZChwbGFuLnJvbGwud2hlbiwgZW52aXJvbm1lbnQpKSB7XG5cdFx0dGFyZ2V0cy5wdXNoKHJvbGxUYXJnZXQocGxhbi5yb2xsKSk7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRpZiAodGFyZ2V0cy5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gdGFyZ2V0c1swXTtcblx0fVxuXHRyZXR1cm4geyB0YXJnZXRzIH07XG59XG5cbmV4cG9ydCBjb25zdCBwaW5vUmVjaXBlID0geyB0cmFuc3BvcnQsIGN1cnJlbnRFbnZpcm9ubWVudCB9O1xuIl0sIm5hbWVzIjpbInBpbm9SZWNpcGUiLCJERUZBVUxUX1JPTExfU0laRSIsIkRFRkFVTFRfUk9MTF9GUkVRVUVOQ1kiLCJERUZBVUxUX1JPTExfS0VFUCIsImN1cnJlbnRFbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkVudmlyb25tZW50cyIsInByb2R1Y3Rpb24iLCJkZXZlbG9wbWVudCIsImlzRW5hYmxlZCIsIndoZW4iLCJlbnZpcm9ubWVudCIsInByZXR0eVRhcmdldCIsIm9wdGlvbnMiLCJ0YXJnZXQiLCJjb2xvcml6ZSIsInJvbGxUYXJnZXQiLCJmaWxlIiwibWtkaXIiLCJzaXplIiwiZnJlcXVlbmN5IiwibGltaXQiLCJjb3VudCIsImtlZXAiLCJzeW1saW5rIiwidHJhbnNwb3J0IiwicGxhbiIsInRhcmdldHMiLCJwcmV0dHkiLCJwdXNoIiwicm9sbCIsImxlbmd0aCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFvRmFBOzs7ZUFBQUE7Ozt3QkFwRmtDO0FBNkIvQyxNQUFNQyxvQkFBb0I7QUFDMUIsTUFBTUMseUJBQXlCO0FBQy9CLE1BQU1DLG9CQUFvQjtBQUUxQixTQUFTQztJQUNSLE9BQU9DLFFBQVFDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLQyxvQkFBWSxDQUFDQyxVQUFVLEdBQ3BERCxvQkFBWSxDQUFDQyxVQUFVLEdBQ3ZCRCxvQkFBWSxDQUFDRSxXQUFXO0FBQzVCO0FBRUEsU0FBU0MsVUFBVUMsSUFBMEIsRUFBRUMsV0FBd0I7SUFDdEUsT0FBTyxBQUFDRCxDQUFBQSxRQUFRLGFBQVksTUFBTyxZQUFZQyxnQkFBZ0JMLG9CQUFZLENBQUNFLFdBQVc7QUFDeEY7QUFFQSxTQUFTSSxhQUFhQyxPQUFnQztJQUNyRCxPQUFPO1FBQ05DLFFBQVE7UUFDUkQsU0FBUztZQUFFRSxVQUFVRixRQUFRRSxRQUFRLElBQUk7UUFBSztJQUMvQztBQUNEO0FBRUEsU0FBU0MsV0FBV0gsT0FBOEI7SUFDakQsT0FBTztRQUNOQyxRQUFRO1FBQ1JELFNBQVM7WUFDUkksTUFBTUosUUFBUUksSUFBSTtZQUNsQkMsT0FBT0wsUUFBUUssS0FBSyxJQUFJO1lBQ3hCQyxNQUFNTixRQUFRTSxJQUFJLElBQUlwQjtZQUN0QnFCLFdBQVdQLFFBQVFPLFNBQVMsSUFBSXBCO1lBQ2hDcUIsT0FBTztnQkFBRUMsT0FBT1QsUUFBUVUsSUFBSSxJQUFJdEI7WUFBa0I7WUFDbER1QixTQUFTWCxRQUFRVyxPQUFPLElBQUk7UUFDN0I7SUFDRDtBQUNEO0FBRUEsU0FBU0MsVUFDUkMsSUFBb0IsRUFDcEJmLGNBQTJCVCxvQkFBb0I7SUFFL0MsTUFBTXlCLFVBQW9DLEVBQUU7SUFDNUMsSUFBSUQsS0FBS0UsTUFBTSxJQUFJbkIsVUFBVWlCLEtBQUtFLE1BQU0sQ0FBQ2xCLElBQUksRUFBRUMsY0FBYztRQUM1RGdCLFFBQVFFLElBQUksQ0FBQ2pCLGFBQWFjLEtBQUtFLE1BQU07SUFDdEM7SUFDQSxJQUFJRixLQUFLSSxJQUFJLElBQUlyQixVQUFVaUIsS0FBS0ksSUFBSSxDQUFDcEIsSUFBSSxFQUFFQyxjQUFjO1FBQ3hEZ0IsUUFBUUUsSUFBSSxDQUFDYixXQUFXVSxLQUFLSSxJQUFJO0lBQ2xDO0lBQ0EsSUFBSUgsUUFBUUksTUFBTSxLQUFLLEdBQUc7UUFDekIsT0FBT0M7SUFDUjtJQUNBLElBQUlMLFFBQVFJLE1BQU0sS0FBSyxHQUFHO1FBQ3pCLE9BQU9KLE9BQU8sQ0FBQyxFQUFFO0lBQ2xCO0lBQ0EsT0FBTztRQUFFQTtJQUFRO0FBQ2xCO0FBRU8sTUFBTTdCLGFBQWE7SUFBRTJCO0lBQVd2QjtBQUFtQiJ9
@@ -1,57 +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
- function currentEnvironment() {
6
- return process.env.NODE_ENV === Environments.production ? Environments.production : Environments.development;
7
- }
8
- function isEnabled(when, environment) {
9
- return (when ?? "development") === "always" || environment === Environments.development;
10
- }
11
- function prettyTarget(options) {
12
- return {
13
- target: "pino-pretty",
14
- options: {
15
- colorize: options.colorize ?? true
16
- }
17
- };
18
- }
19
- function rollTarget(options) {
20
- return {
21
- target: "pino-roll",
22
- options: {
23
- file: options.file,
24
- mkdir: options.mkdir ?? true,
25
- size: options.size ?? DEFAULT_ROLL_SIZE,
26
- frequency: options.frequency ?? DEFAULT_ROLL_FREQUENCY,
27
- limit: {
28
- count: options.keep ?? DEFAULT_ROLL_KEEP
29
- },
30
- symlink: options.symlink ?? false
31
- }
32
- };
33
- }
34
- function transport(plan, environment = currentEnvironment()) {
35
- const targets = [];
36
- if (plan.pretty && isEnabled(plan.pretty.when, environment)) {
37
- targets.push(prettyTarget(plan.pretty));
38
- }
39
- if (plan.roll && isEnabled(plan.roll.when, environment)) {
40
- targets.push(rollTarget(plan.roll));
41
- }
42
- if (targets.length === 0) {
43
- return undefined;
44
- }
45
- if (targets.length === 1) {
46
- return targets[0];
47
- }
48
- return {
49
- targets
50
- };
51
- }
52
- export const pinoRecipe = {
53
- transport,
54
- currentEnvironment
55
- };
56
-
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5yZWNpcGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBFbnZpcm9ubWVudCwgRW52aXJvbm1lbnRzIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9zeXN0ZW1cIjtcbmltcG9ydCB0eXBlIHsgVHJhbnNwb3J0TXVsdGlPcHRpb25zLCBUcmFuc3BvcnRTaW5nbGVPcHRpb25zIH0gZnJvbSBcInBpbm9cIjtcblxuLyoqIFByZXR0eSBhbmQgcm9sbCBhcmUgbG9jYWwtZGV2IGNvbnZlbmllbmNlcy4gUHJvZHVjdGlvbiBzaGlwcyBKU09OIG9uIHN0ZG91dC4gKi9cbmV4cG9ydCB0eXBlIFBpbm9XaGVuID0gXCJkZXZlbG9wbWVudFwiIHwgXCJhbHdheXNcIjtcblxuZXhwb3J0IHR5cGUgUGlub1ByZXR0eVJlY2lwZU9wdGlvbnMgPSB7XG5cdGNvbG9yaXplPzogYm9vbGVhbjtcblx0bG9nTGV2ZWw/OiBzdHJpbmc7XG5cdHdoZW4/OiBQaW5vV2hlbjtcbn07XG5cbmV4cG9ydCB0eXBlIFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyA9IHtcblx0ZmlsZTogc3RyaW5nO1xuXHRzaXplPzogc3RyaW5nO1xuXHRmcmVxdWVuY3k/OiBzdHJpbmcgfCBudW1iZXI7XG5cdGtlZXA/OiBudW1iZXI7XG5cdG1rZGlyPzogYm9vbGVhbjtcblx0c3ltbGluaz86IGJvb2xlYW47XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xuXHR3aGVuPzogUGlub1doZW47XG59O1xuXG5leHBvcnQgdHlwZSBQaW5vUmVjaXBlUGxhbiA9IHtcblx0cHJldHR5PzogUGlub1ByZXR0eVJlY2lwZU9wdGlvbnM7XG5cdHJvbGw/OiBQaW5vUm9sbFJlY2lwZU9wdGlvbnM7XG5cdGxvZ0xldmVsPzogc3RyaW5nO1xufTtcblxuY29uc3QgREVGQVVMVF9ST0xMX1NJWkUgPSBcIjEwbVwiO1xuY29uc3QgREVGQVVMVF9ST0xMX0ZSRVFVRU5DWSA9IFwiZGFpbHlcIjtcbmNvbnN0IERFRkFVTFRfUk9MTF9LRUVQID0gMTQ7XG5cbmZ1bmN0aW9uIGN1cnJlbnRFbnZpcm9ubWVudCgpOiBFbnZpcm9ubWVudCB7XG5cdHJldHVybiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gRW52aXJvbm1lbnRzLnByb2R1Y3Rpb25cblx0XHQ/IEVudmlyb25tZW50cy5wcm9kdWN0aW9uXG5cdFx0OiBFbnZpcm9ubWVudHMuZGV2ZWxvcG1lbnQ7XG59XG5cbmZ1bmN0aW9uIGlzRW5hYmxlZCh3aGVuOiBQaW5vV2hlbiB8IHVuZGVmaW5lZCwgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50KTogYm9vbGVhbiB7XG5cdHJldHVybiAod2hlbiA/PyBcImRldmVsb3BtZW50XCIpID09PSBcImFsd2F5c1wiIHx8IGVudmlyb25tZW50ID09PSBFbnZpcm9ubWVudHMuZGV2ZWxvcG1lbnQ7XG59XG5cbmZ1bmN0aW9uIHByZXR0eVRhcmdldChvcHRpb25zOiBQaW5vUHJldHR5UmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXByZXR0eVwiLFxuXHRcdG9wdGlvbnM6IHsgY29sb3JpemU6IG9wdGlvbnMuY29sb3JpemUgPz8gdHJ1ZSB9LFxuXHR9O1xufVxuXG5mdW5jdGlvbiByb2xsVGFyZ2V0KG9wdGlvbnM6IFBpbm9Sb2xsUmVjaXBlT3B0aW9ucyk6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMge1xuXHRyZXR1cm4ge1xuXHRcdHRhcmdldDogXCJwaW5vLXJvbGxcIixcblx0XHRvcHRpb25zOiB7XG5cdFx0XHRmaWxlOiBvcHRpb25zLmZpbGUsXG5cdFx0XHRta2Rpcjogb3B0aW9ucy5ta2RpciA/PyB0cnVlLFxuXHRcdFx0c2l6ZTogb3B0aW9ucy5zaXplID8/IERFRkFVTFRfUk9MTF9TSVpFLFxuXHRcdFx0ZnJlcXVlbmN5OiBvcHRpb25zLmZyZXF1ZW5jeSA/PyBERUZBVUxUX1JPTExfRlJFUVVFTkNZLFxuXHRcdFx0bGltaXQ6IHsgY291bnQ6IG9wdGlvbnMua2VlcCA/PyBERUZBVUxUX1JPTExfS0VFUCB9LFxuXHRcdFx0c3ltbGluazogb3B0aW9ucy5zeW1saW5rID8/IGZhbHNlLFxuXHRcdH0sXG5cdH07XG59XG5cbmZ1bmN0aW9uIHRyYW5zcG9ydChcblx0cGxhbjogUGlub1JlY2lwZVBsYW4sXG5cdGVudmlyb25tZW50OiBFbnZpcm9ubWVudCA9IGN1cnJlbnRFbnZpcm9ubWVudCgpLFxuKTogVHJhbnNwb3J0U2luZ2xlT3B0aW9ucyB8IFRyYW5zcG9ydE11bHRpT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHRhcmdldHM6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnNbXSA9IFtdO1xuXHRpZiAocGxhbi5wcmV0dHkgJiYgaXNFbmFibGVkKHBsYW4ucHJldHR5LndoZW4sIGVudmlyb25tZW50KSkge1xuXHRcdHRhcmdldHMucHVzaChwcmV0dHlUYXJnZXQocGxhbi5wcmV0dHkpKTtcblx0fVxuXHRpZiAocGxhbi5yb2xsICYmIGlzRW5hYmxlZChwbGFuLnJvbGwud2hlbiwgZW52aXJvbm1lbnQpKSB7XG5cdFx0dGFyZ2V0cy5wdXNoKHJvbGxUYXJnZXQocGxhbi5yb2xsKSk7XG5cdH1cblx0aWYgKHRhcmdldHMubGVuZ3RoID09PSAwKSB7XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXHRpZiAodGFyZ2V0cy5sZW5ndGggPT09IDEpIHtcblx0XHRyZXR1cm4gdGFyZ2V0c1swXTtcblx0fVxuXHRyZXR1cm4geyB0YXJnZXRzIH07XG59XG5cbmV4cG9ydCBjb25zdCBwaW5vUmVjaXBlID0geyB0cmFuc3BvcnQsIGN1cnJlbnRFbnZpcm9ubWVudCB9O1xuIl0sIm5hbWVzIjpbIkVudmlyb25tZW50cyIsIkRFRkFVTFRfUk9MTF9TSVpFIiwiREVGQVVMVF9ST0xMX0ZSRVFVRU5DWSIsIkRFRkFVTFRfUk9MTF9LRUVQIiwiY3VycmVudEVudmlyb25tZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicHJvZHVjdGlvbiIsImRldmVsb3BtZW50IiwiaXNFbmFibGVkIiwid2hlbiIsImVudmlyb25tZW50IiwicHJldHR5VGFyZ2V0Iiwib3B0aW9ucyIsInRhcmdldCIsImNvbG9yaXplIiwicm9sbFRhcmdldCIsImZpbGUiLCJta2RpciIsInNpemUiLCJmcmVxdWVuY3kiLCJsaW1pdCIsImNvdW50Iiwia2VlcCIsInN5bWxpbmsiLCJ0cmFuc3BvcnQiLCJwbGFuIiwidGFyZ2V0cyIsInByZXR0eSIsInB1c2giLCJyb2xsIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicGlub1JlY2lwZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBMkJBLFlBQVksUUFBUSx5QkFBeUI7QUE2QnhFLE1BQU1DLG9CQUFvQjtBQUMxQixNQUFNQyx5QkFBeUI7QUFDL0IsTUFBTUMsb0JBQW9CO0FBRTFCLFNBQVNDO0lBQ1IsT0FBT0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLEtBQUtQLGFBQWFRLFVBQVUsR0FDcERSLGFBQWFRLFVBQVUsR0FDdkJSLGFBQWFTLFdBQVc7QUFDNUI7QUFFQSxTQUFTQyxVQUFVQyxJQUEwQixFQUFFQyxXQUF3QjtJQUN0RSxPQUFPLEFBQUNELENBQUFBLFFBQVEsYUFBWSxNQUFPLFlBQVlDLGdCQUFnQlosYUFBYVMsV0FBVztBQUN4RjtBQUVBLFNBQVNJLGFBQWFDLE9BQWdDO0lBQ3JELE9BQU87UUFDTkMsUUFBUTtRQUNSRCxTQUFTO1lBQUVFLFVBQVVGLFFBQVFFLFFBQVEsSUFBSTtRQUFLO0lBQy9DO0FBQ0Q7QUFFQSxTQUFTQyxXQUFXSCxPQUE4QjtJQUNqRCxPQUFPO1FBQ05DLFFBQVE7UUFDUkQsU0FBUztZQUNSSSxNQUFNSixRQUFRSSxJQUFJO1lBQ2xCQyxPQUFPTCxRQUFRSyxLQUFLLElBQUk7WUFDeEJDLE1BQU1OLFFBQVFNLElBQUksSUFBSW5CO1lBQ3RCb0IsV0FBV1AsUUFBUU8sU0FBUyxJQUFJbkI7WUFDaENvQixPQUFPO2dCQUFFQyxPQUFPVCxRQUFRVSxJQUFJLElBQUlyQjtZQUFrQjtZQUNsRHNCLFNBQVNYLFFBQVFXLE9BQU8sSUFBSTtRQUM3QjtJQUNEO0FBQ0Q7QUFFQSxTQUFTQyxVQUNSQyxJQUFvQixFQUNwQmYsY0FBMkJSLG9CQUFvQjtJQUUvQyxNQUFNd0IsVUFBb0MsRUFBRTtJQUM1QyxJQUFJRCxLQUFLRSxNQUFNLElBQUluQixVQUFVaUIsS0FBS0UsTUFBTSxDQUFDbEIsSUFBSSxFQUFFQyxjQUFjO1FBQzVEZ0IsUUFBUUUsSUFBSSxDQUFDakIsYUFBYWMsS0FBS0UsTUFBTTtJQUN0QztJQUNBLElBQUlGLEtBQUtJLElBQUksSUFBSXJCLFVBQVVpQixLQUFLSSxJQUFJLENBQUNwQixJQUFJLEVBQUVDLGNBQWM7UUFDeERnQixRQUFRRSxJQUFJLENBQUNiLFdBQVdVLEtBQUtJLElBQUk7SUFDbEM7SUFDQSxJQUFJSCxRQUFRSSxNQUFNLEtBQUssR0FBRztRQUN6QixPQUFPQztJQUNSO0lBQ0EsSUFBSUwsUUFBUUksTUFBTSxLQUFLLEdBQUc7UUFDekIsT0FBT0osT0FBTyxDQUFDLEVBQUU7SUFDbEI7SUFDQSxPQUFPO1FBQUVBO0lBQVE7QUFDbEI7QUFFQSxPQUFPLE1BQU1NLGFBQWE7SUFBRVI7SUFBV3RCO0FBQW1CLEVBQUUifQ==
@@ -1,31 +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
- file: string;
12
- size?: string;
13
- frequency?: string | number;
14
- keep?: number;
15
- mkdir?: boolean;
16
- symlink?: boolean;
17
- logLevel?: string;
18
- when?: PinoWhen;
19
- };
20
- export type PinoRecipePlan = {
21
- pretty?: PinoPrettyRecipeOptions;
22
- roll?: PinoRollRecipeOptions;
23
- logLevel?: string;
24
- };
25
- declare function currentEnvironment(): Environment;
26
- declare function transport(plan: PinoRecipePlan, environment?: Environment): TransportSingleOptions | TransportMultiOptions | undefined;
27
- export declare const pinoRecipe: {
28
- transport: typeof transport;
29
- currentEnvironment: typeof currentEnvironment;
30
- };
31
- export {};