@decohere/scribe-pino 0.0.1-dev.4 → 0.0.1-dev.40

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.
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./pino.adapater.js"), exports);
6
+ _export_star(require("./scribe-pino.js"), exports);
7
+ function _export_star(from, to) {
8
+ Object.keys(from).forEach(function(k) {
9
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
10
+ Object.defineProperty(to, k, {
11
+ enumerable: true,
12
+ get: function() {
13
+ return from[k];
14
+ }
15
+ });
16
+ }
17
+ });
18
+ return from;
19
+ }
20
+
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2NyaWJlLXBpbm8uanNcIjtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUFjO3FCQUNBIn0=
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PinoAdapter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PinoAdapter;
9
+ }
10
+ });
11
+ const _scribe = require("@decohere/scribe");
12
+ const _pino = /*#__PURE__*/ _interop_require_default(require("pino"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ class PinoAdapter extends _scribe.LogAdapter {
19
+ _pino;
20
+ options;
21
+ stream;
22
+ constructor(options, stream){
23
+ super();
24
+ this.options = options;
25
+ this.stream = stream;
26
+ }
27
+ configure(scribeOptions) {
28
+ const { logLevel, redactions } = scribeOptions;
29
+ const customLevels = this.getLogLevels(scribeOptions);
30
+ const pinoOptions = {
31
+ customLevels,
32
+ level: logLevel,
33
+ hooks: {
34
+ logMethod
35
+ },
36
+ serializers: {
37
+ error: _pino.default.stdSerializers.err
38
+ },
39
+ redact: redactions,
40
+ ...this.options
41
+ };
42
+ this._pino = (0, _pino.default)(pinoOptions, this.stream);
43
+ }
44
+ getLogger(name) {
45
+ const logger = pinoMix(this._pino.child({
46
+ name
47
+ }));
48
+ return logger;
49
+ }
50
+ flush(cb) {
51
+ this._pino.flush(cb);
52
+ }
53
+ }
54
+ function logMethod(args, method) {
55
+ let message = args.at(0);
56
+ const data = args.at(1);
57
+ if (message instanceof Error) {
58
+ method.call(this, {
59
+ err: message
60
+ }, (0, _scribe.formatError)(message));
61
+ return;
62
+ }
63
+ if (data instanceof Error) {
64
+ message = {
65
+ msg: message,
66
+ ...{
67
+ error: data
68
+ }
69
+ };
70
+ } else if (typeof data === "object") {
71
+ message = {
72
+ msg: message,
73
+ ...data
74
+ };
75
+ } else {
76
+ message = {
77
+ msg: message,
78
+ data
79
+ };
80
+ }
81
+ method.call(this, message);
82
+ }
83
+ function pinoMix(logger) {
84
+ return Object.assign(logger, {
85
+ get currentLevel () {
86
+ return logger.level;
87
+ },
88
+ get logLevels () {
89
+ return logger.levels.values;
90
+ }
91
+ });
92
+ }
93
+
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdGZvcm1hdEVycm9yLFxuXHRMb2dBZGFwdGVyLFxuXHR0eXBlIExvZ2dlcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxufSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHBpbm8sIHsgdHlwZSBMb2dGbiB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIFBpbm9BZGFwYXRlck9wdGlvbnMgPSB7XG5cdG9wdGlvbnM/OiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW07XG59O1xuXG5leHBvcnQgY2xhc3MgUGlub0FkYXB0ZXIgZXh0ZW5kcyBMb2dBZGFwdGVyIHtcblx0cHJpdmF0ZSBfcGlubzogcGluby5Mb2dnZXI7XG5cdHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zO1xuXHRwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogcGluby5EZXN0aW5hdGlvblN0cmVhbTtcblx0cHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHBpbm8uTG9nZ2VyT3B0aW9ucywgc3RyZWFtPzogcGluby5EZXN0aW5hdGlvblN0cmVhbSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9ucztcblx0XHR0aGlzLnN0cmVhbSA9IHN0cmVhbTtcblx0fVxuXG5cdHB1YmxpYyBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdHNjcmliZU9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgbG9nTGV2ZWwsIHJlZGFjdGlvbnMgfSA9IHNjcmliZU9wdGlvbnM7XG5cdFx0Y29uc3QgY3VzdG9tTGV2ZWxzID0gdGhpcy5nZXRMb2dMZXZlbHMoc2NyaWJlT3B0aW9ucyk7XG5cblx0XHRjb25zdCBwaW5vT3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zID0ge1xuXHRcdFx0Y3VzdG9tTGV2ZWxzLFxuXHRcdFx0bGV2ZWw6IGxvZ0xldmVsLFxuXHRcdFx0aG9va3M6IHsgbG9nTWV0aG9kIH0sXG5cdFx0XHRzZXJpYWxpemVyczoge1xuXHRcdFx0XHRlcnJvcjogcGluby5zdGRTZXJpYWxpemVycy5lcnIsXG5cdFx0XHR9LFxuXHRcdFx0cmVkYWN0OiByZWRhY3Rpb25zLFxuXHRcdFx0Li4udGhpcy5vcHRpb25zLFxuXHRcdH07XG5cdFx0dGhpcy5fcGlubyA9IHBpbm8ocGlub09wdGlvbnMsIHRoaXMuc3RyZWFtKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRMb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU6IHN0cmluZyxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dnZXIgPSBwaW5vTWl4PFQsIEN1c3RvbU9ubHk+KHRoaXMuX3Bpbm8uY2hpbGQoeyBuYW1lIH0pKTtcblx0XHRyZXR1cm4gbG9nZ2VyO1xuXHR9XG5cblx0cHVibGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMuX3Bpbm8uZmx1c2goY2IpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGxvZ01ldGhvZCh0aGlzOiBwaW5vLkxvZ2dlciwgYXJnczogUGFyYW1ldGVyczxMb2dGbj4sIG1ldGhvZDogTG9nRm4pIHtcblx0bGV0IG1lc3NhZ2UgPSBhcmdzLmF0KDApO1xuXHRjb25zdCBkYXRhID0gYXJncy5hdCgxKTtcblxuXHRpZiAobWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0bWV0aG9kLmNhbGwodGhpcywgeyBlcnI6IG1lc3NhZ2UgfSwgZm9ybWF0RXJyb3IobWVzc2FnZSkpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmIChkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRtZXNzYWdlID0geyBtc2c6IG1lc3NhZ2UsIC4uLnsgZXJyb3I6IGRhdGEgfSB9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi5kYXRhIH07XG5cdH0gZWxzZSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCBkYXRhIH07XG5cdH1cblxuXHRtZXRob2QuY2FsbCh0aGlzLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gcGlub01peDxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdGxvZ2dlcjogcGluby5Mb2dnZXIsXG4pOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbjxwaW5vLkxvZ2dlciwgQmFzZUxvZ2dlcj4obG9nZ2VyLCB7XG5cdFx0Z2V0IGN1cnJlbnRMZXZlbCgpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWw7XG5cdFx0fSxcblx0XHRnZXQgbG9nTGV2ZWxzKCkge1xuXHRcdFx0cmV0dXJuIGxvZ2dlci5sZXZlbHMudmFsdWVzO1xuXHRcdH0sXG5cdH0pIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcbn1cbiJdLCJuYW1lcyI6WyJQaW5vQWRhcHRlciIsIkxvZ0FkYXB0ZXIiLCJfcGlubyIsIm9wdGlvbnMiLCJzdHJlYW0iLCJjb25maWd1cmUiLCJzY3JpYmVPcHRpb25zIiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nTGV2ZWxzIiwicGlub09wdGlvbnMiLCJsZXZlbCIsImhvb2tzIiwibG9nTWV0aG9kIiwic2VyaWFsaXplcnMiLCJlcnJvciIsInBpbm8iLCJzdGRTZXJpYWxpemVycyIsImVyciIsInJlZGFjdCIsImdldExvZ2dlciIsIm5hbWUiLCJsb2dnZXIiLCJwaW5vTWl4IiwiY2hpbGQiLCJmbHVzaCIsImNiIiwiYXJncyIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJhdCIsImRhdGEiLCJFcnJvciIsImNhbGwiLCJmb3JtYXRFcnJvciIsIm1zZyIsIk9iamVjdCIsImFzc2lnbiIsImN1cnJlbnRMZXZlbCIsImxvZ0xldmVscyIsImxldmVscyIsInZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFjYUE7OztlQUFBQTs7O3dCQVJOOzZEQUMwQjs7Ozs7O0FBTzFCLE1BQU1BLG9CQUFvQkMsa0JBQVU7SUFDbENDLE1BQW1CO0lBQ1ZDLFFBQTRCO0lBQzVCQyxPQUErQjtJQUNoRCxZQUFtQkQsT0FBMkIsRUFBRUMsTUFBK0IsQ0FBRTtRQUNoRixLQUFLO1FBQ0wsSUFBSSxDQUFDRCxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2Y7SUFFT0MsVUFDTkMsYUFBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUdGO1FBQ2pDLE1BQU1HLGVBQWUsSUFBSSxDQUFDQyxZQUFZLENBQUNKO1FBRXZDLE1BQU1LLGNBQWtDO1lBQ3ZDRjtZQUNBRyxPQUFPTDtZQUNQTSxPQUFPO2dCQUFFQztZQUFVO1lBQ25CQyxhQUFhO2dCQUNaQyxPQUFPQyxhQUFJLENBQUNDLGNBQWMsQ0FBQ0MsR0FBRztZQUMvQjtZQUNBQyxRQUFRWjtZQUNSLEdBQUcsSUFBSSxDQUFDTCxPQUFPO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDRCxLQUFLLEdBQUdlLElBQUFBLGFBQUksRUFBQ04sYUFBYSxJQUFJLENBQUNQLE1BQU07SUFDM0M7SUFFT2lCLFVBQ05DLElBQVksRUFDWTtRQUN4QixNQUFNQyxTQUFTQyxRQUF1QixJQUFJLENBQUN0QixLQUFLLENBQUN1QixLQUFLLENBQUM7WUFBRUg7UUFBSztRQUM5RCxPQUFPQztJQUNSO0lBRU9HLE1BQU1DLEVBQWUsRUFBUTtRQUNuQyxJQUFJLENBQUN6QixLQUFLLENBQUN3QixLQUFLLENBQUNDO0lBQ2xCO0FBQ0Q7QUFFQSxTQUFTYixVQUE2QmMsSUFBdUIsRUFBRUMsTUFBYTtJQUMzRSxJQUFJQyxVQUFVRixLQUFLRyxFQUFFLENBQUM7SUFDdEIsTUFBTUMsT0FBT0osS0FBS0csRUFBRSxDQUFDO0lBRXJCLElBQUlELG1CQUFtQkcsT0FBTztRQUM3QkosT0FBT0ssSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFZixLQUFLVztRQUFRLEdBQUdLLElBQUFBLG1CQUFXLEVBQUNMO1FBQ2hEO0lBQ0Q7SUFFQSxJQUFJRSxnQkFBZ0JDLE9BQU87UUFDMUJILFVBQVU7WUFBRU0sS0FBS047WUFBUyxHQUFHO2dCQUFFZCxPQUFPZ0I7WUFBSyxDQUFDO1FBQUM7SUFDOUMsT0FBTyxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUNwQ0YsVUFBVTtZQUFFTSxLQUFLTjtZQUFTLEdBQUdFLElBQUk7UUFBQztJQUNuQyxPQUFPO1FBQ05GLFVBQVU7WUFBRU0sS0FBS047WUFBU0U7UUFBSztJQUNoQztJQUVBSCxPQUFPSyxJQUFJLENBQUMsSUFBSSxFQUFFSjtBQUNuQjtBQUVBLFNBQVNOLFFBQ1JELE1BQW1CO0lBRW5CLE9BQU9jLE9BQU9DLE1BQU0sQ0FBMEJmLFFBQVE7UUFDckQsSUFBSWdCLGdCQUFlO1lBQ2xCLE9BQU9oQixPQUFPWCxLQUFLO1FBQ3BCO1FBQ0EsSUFBSTRCLGFBQVk7WUFDZixPQUFPakIsT0FBT2tCLE1BQU0sQ0FBQ0MsTUFBTTtRQUM1QjtJQUNEO0FBQ0QifQ==
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "PinoExtensions", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return PinoExtensions;
9
+ }
10
+ });
11
+ const _extensibility = require("@decohere/nexus/extensibility");
12
+ const _system = require("@decohere/nexus/system");
13
+ const _scribe = require("@decohere/scribe");
14
+ const _pinoadapater = require("./pino.adapater.js");
15
+ function _ts_decorate(decorators, target, key, desc) {
16
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20
+ }
21
+ function _ts_metadata(k, v) {
22
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
23
+ }
24
+ class PinoExtensions {
25
+ static withPino(factory, config, logLevel) {
26
+ return configureScribe(factory, {
27
+ logLevel
28
+ }, config);
29
+ }
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);
39
+ }
40
+ static withPinoCustom(factory, options) {
41
+ const { scribe, transports } = options;
42
+ return configureScribe(factory, scribe, transports);
43
+ }
44
+ }
45
+ _ts_decorate([
46
+ (0, _extensibility.extension)(_scribe.scribe),
47
+ _ts_metadata("design:type", Function),
48
+ _ts_metadata("design:paramtypes", [
49
+ typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
50
+ Object,
51
+ Object
52
+ ]),
53
+ _ts_metadata("design:returntype", void 0)
54
+ ], PinoExtensions, "withPino", null);
55
+ _ts_decorate([
56
+ (0, _extensibility.extension)(_scribe.scribe),
57
+ _ts_metadata("design:type", Function),
58
+ _ts_metadata("design:paramtypes", [
59
+ typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
60
+ Object
61
+ ]),
62
+ _ts_metadata("design:returntype", void 0)
63
+ ], PinoExtensions, "withPinoPretty", null);
64
+ _ts_decorate([
65
+ (0, _extensibility.extension)(_scribe.scribe),
66
+ _ts_metadata("design:type", Function),
67
+ _ts_metadata("design:paramtypes", [
68
+ typeof _scribe.scribe === "undefined" ? Object : _scribe.scribe,
69
+ typeof CustomLevelOptions === "undefined" ? Object : CustomLevelOptions
70
+ ]),
71
+ _ts_metadata("design:returntype", void 0)
72
+ ], PinoExtensions, "withPinoCustom", null);
73
+ function configureScribe(factory, options, config) {
74
+ const environment = process.env.NODE_ENV ?? _system.DefaultEnvironment;
75
+ const configs = Array.isArray(config) ? config : [
76
+ config
77
+ ];
78
+ const transports = configs.filter((config)=>config.environment && config.environment === environment || true);
79
+ if (transports.length > 1) {
80
+ throw new _scribe.LoggingConfigurationError(`There should only be one configuration per environment for logging`);
81
+ }
82
+ const transport = transports.at(0)?.transports;
83
+ const adapter = new _pinoadapater.PinoAdapter({
84
+ transport
85
+ });
86
+ return factory.configure({
87
+ options: {
88
+ ...options,
89
+ logLevel: options?.logLevel ?? _scribe.DefaultLogLevel
90
+ },
91
+ adapter
92
+ });
93
+ }
94
+
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHREZWZhdWx0TG9nTGV2ZWwsXG5cdHR5cGUgTG9nZ2VyLFxuXHRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG5cdHNjcmliZSxcbn0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCB0eXBlIHtcblx0VHJhbnNwb3J0TXVsdGlPcHRpb25zLFxuXHRUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnMsXG5cdFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMsXG59IGZyb20gXCJwaW5vXCI7XG5cbmltcG9ydCB7IFBpbm9BZGFwdGVyIH0gZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuXG50eXBlIFRyYW5zcG9ydENvbmZpZyA9IHtcblx0ZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudDtcblx0dHJhbnNwb3J0czogVHJhbnNwb3J0U2luZ2xlT3B0aW9ucyB8IFRyYW5zcG9ydE11bHRpT3B0aW9ucyB8IFRyYW5zcG9ydFBpcGVsaW5lT3B0aW9ucztcbn07XG5cbnR5cGUgQ3VzdG9tTGV2ZWxPcHRpb25zPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+ID0ge1xuXHRzY3JpYmU/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHR0cmFuc3BvcnRzPzogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW107XG59O1xuXG5kZWNsYXJlIG1vZHVsZSBcIkBkZWNvaGVyZS9zY3JpYmVcIiB7XG5cdGludGVyZmFjZSBzY3JpYmUge1xuXHRcdHdpdGhQaW5vKFxuXHRcdFx0dHJhbnNwb3J0czogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW10sXG5cdFx0XHRsb2dsZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcsXG5cdFx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblx0XHR3aXRoUGlub1ByZXR0eShsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyO1xuXHRcdHdpdGhQaW5vQ3VzdG9tPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdFx0b3B0aW9ucz86IEN1c3RvbUxldmVsT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0XHQpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyPFQsIEN1c3RvbU9ubHk+O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBQaW5vRXh0ZW5zaW9ucyB7XG5cdEBleHRlbnNpb24oc2NyaWJlKVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vKFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0KSB7XG5cdFx0cmV0dXJuIGNvbmZpZ3VyZVNjcmliZShmYWN0b3J5LCB7IGxvZ0xldmVsIH0sIGNvbmZpZyk7XG5cdH1cblxuXHRAZXh0ZW5zaW9uKHNjcmliZSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlub1ByZXR0eShmYWN0b3J5OiBzY3JpYmUsIGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZykge1xuXHRcdHJldHVybiBQaW5vRXh0ZW5zaW9ucy53aXRoUGlubyhcblx0XHRcdGZhY3RvcnksXG5cdFx0XHR7IHRyYW5zcG9ydHM6IHsgdGFyZ2V0OiBcInBpbm8tcHJldHR5XCIsIG9wdGlvbnM6IHsgY29sb3JpemU6IHRydWUgfSB9IH0sXG5cdFx0XHRsb2dMZXZlbCxcblx0XHQpO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUpXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0ZmFjdG9yeTogc2NyaWJlLFxuXHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgc2NyaWJlLCB0cmFuc3BvcnRzIH0gPSBvcHRpb25zO1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgc2NyaWJlLCB0cmFuc3BvcnRzKTtcblx0fVxufVxuXG5mdW5jdGlvbiBjb25maWd1cmVTY3JpYmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRmYWN0b3J5OiBzY3JpYmUsXG5cdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdGNvbmZpZzogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW10sXG4pIHtcblx0Y29uc3QgZW52aXJvbm1lbnQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA/PyBEZWZhdWx0RW52aXJvbm1lbnQ7XG5cdGNvbnN0IGNvbmZpZ3MgPSBBcnJheS5pc0FycmF5KGNvbmZpZykgPyBjb25maWcgOiBbY29uZmlnXTtcblx0Y29uc3QgdHJhbnNwb3J0cyA9IGNvbmZpZ3MuZmlsdGVyKFxuXHRcdChjb25maWcpID0+IChjb25maWcuZW52aXJvbm1lbnQgJiYgY29uZmlnLmVudmlyb25tZW50ID09PSBlbnZpcm9ubWVudCkgfHwgdHJ1ZSxcblx0KTtcblxuXHRpZiAodHJhbnNwb3J0cy5sZW5ndGggPiAxKSB7XG5cdFx0dGhyb3cgbmV3IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IoXG5cdFx0XHRgVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNvbmZpZ3VyYXRpb24gcGVyIGVudmlyb25tZW50IGZvciBsb2dnaW5nYCxcblx0XHQpO1xuXHR9XG5cblx0Y29uc3QgdHJhbnNwb3J0ID0gdHJhbnNwb3J0cy5hdCgwKT8udHJhbnNwb3J0cztcblx0Y29uc3QgYWRhcHRlciA9IG5ldyBQaW5vQWRhcHRlcih7IHRyYW5zcG9ydCB9KTtcblx0cmV0dXJuIGZhY3RvcnkuY29uZmlndXJlKHtcblx0XHRvcHRpb25zOiB7IC4uLm9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zPy5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cbiJdLCJuYW1lcyI6WyJQaW5vRXh0ZW5zaW9ucyIsIndpdGhQaW5vIiwiZmFjdG9yeSIsImNvbmZpZyIsImxvZ0xldmVsIiwiY29uZmlndXJlU2NyaWJlIiwid2l0aFBpbm9QcmV0dHkiLCJ0cmFuc3BvcnRzIiwidGFyZ2V0Iiwib3B0aW9ucyIsImNvbG9yaXplIiwid2l0aFBpbm9DdXN0b20iLCJzY3JpYmUiLCJlbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIkRlZmF1bHRFbnZpcm9ubWVudCIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJsZW5ndGgiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwidHJhbnNwb3J0IiwiYXQiLCJhZGFwdGVyIiwiUGlub0FkYXB0ZXIiLCJjb25maWd1cmUiLCJEZWZhdWx0TG9nTGV2ZWwiXSwibWFwcGluZ3MiOiI7Ozs7K0JBeUNhQTs7O2VBQUFBOzs7K0JBekNhO3dCQUMyQjt3QkFROUM7OEJBT3FCOzs7Ozs7Ozs7O0FBeUJyQixNQUFNQTtJQUNaLE9BQ2NDLFNBQ2JDLE9BQWUsRUFDZkMsTUFBMkMsRUFDM0NDLFFBQWlDLEVBQ2hDO1FBQ0QsT0FBT0MsZ0JBQWdCSCxTQUFTO1lBQUVFO1FBQVMsR0FBR0Q7SUFDL0M7SUFFQSxPQUNjRyxlQUFlSixPQUFlLEVBQUVFLFFBQWlDLEVBQUU7UUFDaEYsT0FBT0osZUFBZUMsUUFBUSxDQUM3QkMsU0FDQTtZQUFFSyxZQUFZO2dCQUFFQyxRQUFRO2dCQUFlQyxTQUFTO29CQUFFQyxVQUFVO2dCQUFLO1lBQUU7UUFBRSxHQUNyRU47SUFFRjtJQUVBLE9BQ2NPLGVBQ2JULE9BQWUsRUFDZk8sT0FBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVHLE1BQU0sRUFBRUwsVUFBVSxFQUFFLEdBQUdFO1FBQy9CLE9BQU9KLGdCQUFnQkgsU0FBU1UsUUFBUUw7SUFDekM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFTRixnQkFDUkgsT0FBZSxFQUNmTyxPQUFxQyxFQUNyQ04sTUFBMkM7SUFFM0MsTUFBTVUsY0FBY0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLElBQUlDLDBCQUFrQjtJQUM5RCxNQUFNQyxVQUFVQyxNQUFNQyxPQUFPLENBQUNqQixVQUFVQSxTQUFTO1FBQUNBO0tBQU87SUFDekQsTUFBTUksYUFBYVcsUUFBUUcsTUFBTSxDQUNoQyxDQUFDbEIsU0FBVyxBQUFDQSxPQUFPVSxXQUFXLElBQUlWLE9BQU9VLFdBQVcsS0FBS0EsZUFBZ0I7SUFHM0UsSUFBSU4sV0FBV2UsTUFBTSxHQUFHLEdBQUc7UUFDMUIsTUFBTSxJQUFJQyxpQ0FBeUIsQ0FDbEMsQ0FBQyxrRUFBa0UsQ0FBQztJQUV0RTtJQUVBLE1BQU1DLFlBQVlqQixXQUFXa0IsRUFBRSxDQUFDLElBQUlsQjtJQUNwQyxNQUFNbUIsVUFBVSxJQUFJQyx5QkFBVyxDQUFDO1FBQUVIO0lBQVU7SUFDNUMsT0FBT3RCLFFBQVEwQixTQUFTLENBQUM7UUFDeEJuQixTQUFTO1lBQUUsR0FBR0EsT0FBTztZQUFFTCxVQUFVSyxTQUFTTCxZQUFZeUIsdUJBQWU7UUFBQztRQUN0RUg7SUFDRDtBQUNEIn0=
@@ -0,0 +1,79 @@
1
+ import { formatError, LogAdapter } from "@decohere/scribe";
2
+ import pino from "pino";
3
+ export class PinoAdapter extends LogAdapter {
4
+ _pino;
5
+ options;
6
+ stream;
7
+ constructor(options, stream){
8
+ super();
9
+ this.options = options;
10
+ this.stream = stream;
11
+ }
12
+ configure(scribeOptions) {
13
+ const { logLevel, redactions } = scribeOptions;
14
+ const customLevels = this.getLogLevels(scribeOptions);
15
+ const pinoOptions = {
16
+ customLevels,
17
+ level: logLevel,
18
+ hooks: {
19
+ logMethod
20
+ },
21
+ serializers: {
22
+ error: pino.stdSerializers.err
23
+ },
24
+ redact: redactions,
25
+ ...this.options
26
+ };
27
+ this._pino = pino(pinoOptions, this.stream);
28
+ }
29
+ getLogger(name) {
30
+ const logger = pinoMix(this._pino.child({
31
+ name
32
+ }));
33
+ return logger;
34
+ }
35
+ flush(cb) {
36
+ this._pino.flush(cb);
37
+ }
38
+ }
39
+ function logMethod(args, method) {
40
+ let message = args.at(0);
41
+ const data = args.at(1);
42
+ if (message instanceof Error) {
43
+ method.call(this, {
44
+ err: message
45
+ }, formatError(message));
46
+ return;
47
+ }
48
+ if (data instanceof Error) {
49
+ message = {
50
+ msg: message,
51
+ ...{
52
+ error: data
53
+ }
54
+ };
55
+ } else if (typeof data === "object") {
56
+ message = {
57
+ msg: message,
58
+ ...data
59
+ };
60
+ } else {
61
+ message = {
62
+ msg: message,
63
+ data
64
+ };
65
+ }
66
+ method.call(this, message);
67
+ }
68
+ function pinoMix(logger) {
69
+ return Object.assign(logger, {
70
+ get currentLevel () {
71
+ return logger.level;
72
+ },
73
+ get logLevels () {
74
+ return logger.levels.values;
75
+ }
76
+ });
77
+ }
78
+
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdGZvcm1hdEVycm9yLFxuXHRMb2dBZGFwdGVyLFxuXHR0eXBlIExvZ2dlcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxufSBmcm9tIFwiQGRlY29oZXJlL3NjcmliZVwiO1xuaW1wb3J0IHBpbm8sIHsgdHlwZSBMb2dGbiB9IGZyb20gXCJwaW5vXCI7XG5cbmV4cG9ydCB0eXBlIFBpbm9BZGFwYXRlck9wdGlvbnMgPSB7XG5cdG9wdGlvbnM/OiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHN0cmVhbT86IHBpbm8uRGVzdGluYXRpb25TdHJlYW07XG59O1xuXG5leHBvcnQgY2xhc3MgUGlub0FkYXB0ZXIgZXh0ZW5kcyBMb2dBZGFwdGVyIHtcblx0cHJpdmF0ZSBfcGlubzogcGluby5Mb2dnZXI7XG5cdHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zO1xuXHRwcml2YXRlIHJlYWRvbmx5IHN0cmVhbTogcGluby5EZXN0aW5hdGlvblN0cmVhbTtcblx0cHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHBpbm8uTG9nZ2VyT3B0aW9ucywgc3RyZWFtPzogcGluby5EZXN0aW5hdGlvblN0cmVhbSkge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9ucztcblx0XHR0aGlzLnN0cmVhbSA9IHN0cmVhbTtcblx0fVxuXG5cdHB1YmxpYyBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdHNjcmliZU9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgbG9nTGV2ZWwsIHJlZGFjdGlvbnMgfSA9IHNjcmliZU9wdGlvbnM7XG5cdFx0Y29uc3QgY3VzdG9tTGV2ZWxzID0gdGhpcy5nZXRMb2dMZXZlbHMoc2NyaWJlT3B0aW9ucyk7XG5cblx0XHRjb25zdCBwaW5vT3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zID0ge1xuXHRcdFx0Y3VzdG9tTGV2ZWxzLFxuXHRcdFx0bGV2ZWw6IGxvZ0xldmVsLFxuXHRcdFx0aG9va3M6IHsgbG9nTWV0aG9kIH0sXG5cdFx0XHRzZXJpYWxpemVyczoge1xuXHRcdFx0XHRlcnJvcjogcGluby5zdGRTZXJpYWxpemVycy5lcnIsXG5cdFx0XHR9LFxuXHRcdFx0cmVkYWN0OiByZWRhY3Rpb25zLFxuXHRcdFx0Li4udGhpcy5vcHRpb25zLFxuXHRcdH07XG5cdFx0dGhpcy5fcGlubyA9IHBpbm8ocGlub09wdGlvbnMsIHRoaXMuc3RyZWFtKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRMb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU6IHN0cmluZyxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dnZXIgPSBwaW5vTWl4PFQsIEN1c3RvbU9ubHk+KHRoaXMuX3Bpbm8uY2hpbGQoeyBuYW1lIH0pKTtcblx0XHRyZXR1cm4gbG9nZ2VyO1xuXHR9XG5cblx0cHVibGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMuX3Bpbm8uZmx1c2goY2IpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGxvZ01ldGhvZCh0aGlzOiBwaW5vLkxvZ2dlciwgYXJnczogUGFyYW1ldGVyczxMb2dGbj4sIG1ldGhvZDogTG9nRm4pIHtcblx0bGV0IG1lc3NhZ2UgPSBhcmdzLmF0KDApO1xuXHRjb25zdCBkYXRhID0gYXJncy5hdCgxKTtcblxuXHRpZiAobWVzc2FnZSBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0bWV0aG9kLmNhbGwodGhpcywgeyBlcnI6IG1lc3NhZ2UgfSwgZm9ybWF0RXJyb3IobWVzc2FnZSkpO1xuXHRcdHJldHVybjtcblx0fVxuXG5cdGlmIChkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRtZXNzYWdlID0geyBtc2c6IG1lc3NhZ2UsIC4uLnsgZXJyb3I6IGRhdGEgfSB9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi5kYXRhIH07XG5cdH0gZWxzZSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCBkYXRhIH07XG5cdH1cblxuXHRtZXRob2QuY2FsbCh0aGlzLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gcGlub01peDxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdGxvZ2dlcjogcGluby5Mb2dnZXIsXG4pOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbjxwaW5vLkxvZ2dlciwgQmFzZUxvZ2dlcj4obG9nZ2VyLCB7XG5cdFx0Z2V0IGN1cnJlbnRMZXZlbCgpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWw7XG5cdFx0fSxcblx0XHRnZXQgbG9nTGV2ZWxzKCkge1xuXHRcdFx0cmV0dXJuIGxvZ2dlci5sZXZlbHMudmFsdWVzO1xuXHRcdH0sXG5cdH0pIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcbn1cbiJdLCJuYW1lcyI6WyJmb3JtYXRFcnJvciIsIkxvZ0FkYXB0ZXIiLCJwaW5vIiwiUGlub0FkYXB0ZXIiLCJfcGlubyIsIm9wdGlvbnMiLCJzdHJlYW0iLCJjb25maWd1cmUiLCJzY3JpYmVPcHRpb25zIiwibG9nTGV2ZWwiLCJyZWRhY3Rpb25zIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nTGV2ZWxzIiwicGlub09wdGlvbnMiLCJsZXZlbCIsImhvb2tzIiwibG9nTWV0aG9kIiwic2VyaWFsaXplcnMiLCJlcnJvciIsInN0ZFNlcmlhbGl6ZXJzIiwiZXJyIiwicmVkYWN0IiwiZ2V0TG9nZ2VyIiwibmFtZSIsImxvZ2dlciIsInBpbm9NaXgiLCJjaGlsZCIsImZsdXNoIiwiY2IiLCJhcmdzIiwibWV0aG9kIiwibWVzc2FnZSIsImF0IiwiZGF0YSIsIkVycm9yIiwiY2FsbCIsIm1zZyIsIk9iamVjdCIsImFzc2lnbiIsImN1cnJlbnRMZXZlbCIsImxvZ0xldmVscyIsImxldmVscyIsInZhbHVlcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFQ0EsV0FBVyxFQUNYQyxVQUFVLFFBR0osbUJBQW1CO0FBQzFCLE9BQU9DLFVBQTBCLE9BQU87QUFPeEMsT0FBTyxNQUFNQyxvQkFBb0JGO0lBQ3hCRyxNQUFtQjtJQUNWQyxRQUE0QjtJQUM1QkMsT0FBK0I7SUFDaEQsWUFBbUJELE9BQTJCLEVBQUVDLE1BQStCLENBQUU7UUFDaEYsS0FBSztRQUNMLElBQUksQ0FBQ0QsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNmO0lBRU9DLFVBQ05DLGFBQTJDLEVBQzFDO1FBQ0QsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRSxHQUFHRjtRQUNqQyxNQUFNRyxlQUFlLElBQUksQ0FBQ0MsWUFBWSxDQUFDSjtRQUV2QyxNQUFNSyxjQUFrQztZQUN2Q0Y7WUFDQUcsT0FBT0w7WUFDUE0sT0FBTztnQkFBRUM7WUFBVTtZQUNuQkMsYUFBYTtnQkFDWkMsT0FBT2hCLEtBQUtpQixjQUFjLENBQUNDLEdBQUc7WUFDL0I7WUFDQUMsUUFBUVg7WUFDUixHQUFHLElBQUksQ0FBQ0wsT0FBTztRQUNoQjtRQUNBLElBQUksQ0FBQ0QsS0FBSyxHQUFHRixLQUFLVyxhQUFhLElBQUksQ0FBQ1AsTUFBTTtJQUMzQztJQUVPZ0IsVUFDTkMsSUFBWSxFQUNZO1FBQ3hCLE1BQU1DLFNBQVNDLFFBQXVCLElBQUksQ0FBQ3JCLEtBQUssQ0FBQ3NCLEtBQUssQ0FBQztZQUFFSDtRQUFLO1FBQzlELE9BQU9DO0lBQ1I7SUFFT0csTUFBTUMsRUFBZSxFQUFRO1FBQ25DLElBQUksQ0FBQ3hCLEtBQUssQ0FBQ3VCLEtBQUssQ0FBQ0M7SUFDbEI7QUFDRDtBQUVBLFNBQVNaLFVBQTZCYSxJQUF1QixFQUFFQyxNQUFhO0lBQzNFLElBQUlDLFVBQVVGLEtBQUtHLEVBQUUsQ0FBQztJQUN0QixNQUFNQyxPQUFPSixLQUFLRyxFQUFFLENBQUM7SUFFckIsSUFBSUQsbUJBQW1CRyxPQUFPO1FBQzdCSixPQUFPSyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQUVmLEtBQUtXO1FBQVEsR0FBRy9CLFlBQVkrQjtRQUNoRDtJQUNEO0lBRUEsSUFBSUUsZ0JBQWdCQyxPQUFPO1FBQzFCSCxVQUFVO1lBQUVLLEtBQUtMO1lBQVMsR0FBRztnQkFBRWIsT0FBT2U7WUFBSyxDQUFDO1FBQUM7SUFDOUMsT0FBTyxJQUFJLE9BQU9BLFNBQVMsVUFBVTtRQUNwQ0YsVUFBVTtZQUFFSyxLQUFLTDtZQUFTLEdBQUdFLElBQUk7UUFBQztJQUNuQyxPQUFPO1FBQ05GLFVBQVU7WUFBRUssS0FBS0w7WUFBU0U7UUFBSztJQUNoQztJQUVBSCxPQUFPSyxJQUFJLENBQUMsSUFBSSxFQUFFSjtBQUNuQjtBQUVBLFNBQVNOLFFBQ1JELE1BQW1CO0lBRW5CLE9BQU9hLE9BQU9DLE1BQU0sQ0FBMEJkLFFBQVE7UUFDckQsSUFBSWUsZ0JBQWU7WUFDbEIsT0FBT2YsT0FBT1YsS0FBSztRQUNwQjtRQUNBLElBQUkwQixhQUFZO1lBQ2YsT0FBT2hCLE9BQU9pQixNQUFNLENBQUNDLE1BQU07UUFDNUI7SUFDRDtBQUNEIn0=
@@ -0,0 +1,85 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ function _ts_metadata(k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ }
10
+ import { extension } from "@decohere/nexus/extensibility";
11
+ import { DefaultEnvironment } from "@decohere/nexus/system";
12
+ import { DefaultLogLevel, LoggingConfigurationError, scribe } from "@decohere/scribe";
13
+ import { PinoAdapter } from "./pino.adapater.js";
14
+ export class PinoExtensions {
15
+ static withPino(factory, config, logLevel) {
16
+ return configureScribe(factory, {
17
+ logLevel
18
+ }, config);
19
+ }
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);
29
+ }
30
+ static withPinoCustom(factory, options) {
31
+ const { scribe, transports } = options;
32
+ return configureScribe(factory, scribe, transports);
33
+ }
34
+ }
35
+ _ts_decorate([
36
+ extension(scribe),
37
+ _ts_metadata("design:type", Function),
38
+ _ts_metadata("design:paramtypes", [
39
+ typeof scribe === "undefined" ? Object : scribe,
40
+ Object,
41
+ Object
42
+ ]),
43
+ _ts_metadata("design:returntype", void 0)
44
+ ], PinoExtensions, "withPino", null);
45
+ _ts_decorate([
46
+ extension(scribe),
47
+ _ts_metadata("design:type", Function),
48
+ _ts_metadata("design:paramtypes", [
49
+ typeof scribe === "undefined" ? Object : scribe,
50
+ Object
51
+ ]),
52
+ _ts_metadata("design:returntype", void 0)
53
+ ], PinoExtensions, "withPinoPretty", null);
54
+ _ts_decorate([
55
+ extension(scribe),
56
+ _ts_metadata("design:type", Function),
57
+ _ts_metadata("design:paramtypes", [
58
+ typeof scribe === "undefined" ? Object : scribe,
59
+ typeof CustomLevelOptions === "undefined" ? Object : CustomLevelOptions
60
+ ]),
61
+ _ts_metadata("design:returntype", void 0)
62
+ ], PinoExtensions, "withPinoCustom", null);
63
+ function configureScribe(factory, options, config) {
64
+ const environment = process.env.NODE_ENV ?? DefaultEnvironment;
65
+ const configs = Array.isArray(config) ? config : [
66
+ config
67
+ ];
68
+ const transports = configs.filter((config)=>config.environment && config.environment === environment || true);
69
+ if (transports.length > 1) {
70
+ throw new LoggingConfigurationError(`There should only be one configuration per environment for logging`);
71
+ }
72
+ const transport = transports.at(0)?.transports;
73
+ const adapter = new PinoAdapter({
74
+ transport
75
+ });
76
+ return factory.configure({
77
+ options: {
78
+ ...options,
79
+ logLevel: options?.logLevel ?? DefaultLogLevel
80
+ },
81
+ adapter
82
+ });
83
+ }
84
+
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHREZWZhdWx0TG9nTGV2ZWwsXG5cdHR5cGUgTG9nZ2VyLFxuXHRMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG5cdHNjcmliZSxcbn0gZnJvbSBcIkBkZWNvaGVyZS9zY3JpYmVcIjtcbmltcG9ydCB0eXBlIHtcblx0VHJhbnNwb3J0TXVsdGlPcHRpb25zLFxuXHRUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnMsXG5cdFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMsXG59IGZyb20gXCJwaW5vXCI7XG5cbmltcG9ydCB7IFBpbm9BZGFwdGVyIH0gZnJvbSBcIi4vcGluby5hZGFwYXRlci5qc1wiO1xuXG50eXBlIFRyYW5zcG9ydENvbmZpZyA9IHtcblx0ZW52aXJvbm1lbnQ/OiBFbnZpcm9ubWVudDtcblx0dHJhbnNwb3J0czogVHJhbnNwb3J0U2luZ2xlT3B0aW9ucyB8IFRyYW5zcG9ydE11bHRpT3B0aW9ucyB8IFRyYW5zcG9ydFBpcGVsaW5lT3B0aW9ucztcbn07XG5cbnR5cGUgQ3VzdG9tTGV2ZWxPcHRpb25zPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+ID0ge1xuXHRzY3JpYmU/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHR0cmFuc3BvcnRzPzogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW107XG59O1xuXG5kZWNsYXJlIG1vZHVsZSBcIkBkZWNvaGVyZS9zY3JpYmVcIiB7XG5cdGludGVyZmFjZSBzY3JpYmUge1xuXHRcdHdpdGhQaW5vKFxuXHRcdFx0dHJhbnNwb3J0czogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW10sXG5cdFx0XHRsb2dsZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcsXG5cdFx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblx0XHR3aXRoUGlub1ByZXR0eShsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyO1xuXHRcdHdpdGhQaW5vQ3VzdG9tPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdFx0b3B0aW9ucz86IEN1c3RvbUxldmVsT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0XHQpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyPFQsIEN1c3RvbU9ubHk+O1xuXHR9XG59XG5cbmV4cG9ydCBjbGFzcyBQaW5vRXh0ZW5zaW9ucyB7XG5cdEBleHRlbnNpb24oc2NyaWJlKVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vKFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZyxcblx0KSB7XG5cdFx0cmV0dXJuIGNvbmZpZ3VyZVNjcmliZShmYWN0b3J5LCB7IGxvZ0xldmVsIH0sIGNvbmZpZyk7XG5cdH1cblxuXHRAZXh0ZW5zaW9uKHNjcmliZSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlub1ByZXR0eShmYWN0b3J5OiBzY3JpYmUsIGxvZ0xldmVsPzogRGVmYXVsdExldmVscyB8IHN0cmluZykge1xuXHRcdHJldHVybiBQaW5vRXh0ZW5zaW9ucy53aXRoUGlubyhcblx0XHRcdGZhY3RvcnksXG5cdFx0XHR7IHRyYW5zcG9ydHM6IHsgdGFyZ2V0OiBcInBpbm8tcHJldHR5XCIsIG9wdGlvbnM6IHsgY29sb3JpemU6IHRydWUgfSB9IH0sXG5cdFx0XHRsb2dMZXZlbCxcblx0XHQpO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUpXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9DdXN0b208VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0ZmFjdG9yeTogc2NyaWJlLFxuXHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGNvbnN0IHsgc2NyaWJlLCB0cmFuc3BvcnRzIH0gPSBvcHRpb25zO1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgc2NyaWJlLCB0cmFuc3BvcnRzKTtcblx0fVxufVxuXG5mdW5jdGlvbiBjb25maWd1cmVTY3JpYmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRmYWN0b3J5OiBzY3JpYmUsXG5cdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdGNvbmZpZzogVHJhbnNwb3J0Q29uZmlnIHwgVHJhbnNwb3J0Q29uZmlnW10sXG4pIHtcblx0Y29uc3QgZW52aXJvbm1lbnQgPSBwcm9jZXNzLmVudi5OT0RFX0VOViA/PyBEZWZhdWx0RW52aXJvbm1lbnQ7XG5cdGNvbnN0IGNvbmZpZ3MgPSBBcnJheS5pc0FycmF5KGNvbmZpZykgPyBjb25maWcgOiBbY29uZmlnXTtcblx0Y29uc3QgdHJhbnNwb3J0cyA9IGNvbmZpZ3MuZmlsdGVyKFxuXHRcdChjb25maWcpID0+IChjb25maWcuZW52aXJvbm1lbnQgJiYgY29uZmlnLmVudmlyb25tZW50ID09PSBlbnZpcm9ubWVudCkgfHwgdHJ1ZSxcblx0KTtcblxuXHRpZiAodHJhbnNwb3J0cy5sZW5ndGggPiAxKSB7XG5cdFx0dGhyb3cgbmV3IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IoXG5cdFx0XHRgVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIGNvbmZpZ3VyYXRpb24gcGVyIGVudmlyb25tZW50IGZvciBsb2dnaW5nYCxcblx0XHQpO1xuXHR9XG5cblx0Y29uc3QgdHJhbnNwb3J0ID0gdHJhbnNwb3J0cy5hdCgwKT8udHJhbnNwb3J0cztcblx0Y29uc3QgYWRhcHRlciA9IG5ldyBQaW5vQWRhcHRlcih7IHRyYW5zcG9ydCB9KTtcblx0cmV0dXJuIGZhY3RvcnkuY29uZmlndXJlKHtcblx0XHRvcHRpb25zOiB7IC4uLm9wdGlvbnMsIGxvZ0xldmVsOiBvcHRpb25zPy5sb2dMZXZlbCA/PyBEZWZhdWx0TG9nTGV2ZWwgfSxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cbiJdLCJuYW1lcyI6WyJleHRlbnNpb24iLCJEZWZhdWx0RW52aXJvbm1lbnQiLCJEZWZhdWx0TG9nTGV2ZWwiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwic2NyaWJlIiwiUGlub0FkYXB0ZXIiLCJQaW5vRXh0ZW5zaW9ucyIsIndpdGhQaW5vIiwiZmFjdG9yeSIsImNvbmZpZyIsImxvZ0xldmVsIiwiY29uZmlndXJlU2NyaWJlIiwid2l0aFBpbm9QcmV0dHkiLCJ0cmFuc3BvcnRzIiwidGFyZ2V0Iiwib3B0aW9ucyIsImNvbG9yaXplIiwid2l0aFBpbm9DdXN0b20iLCJlbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJsZW5ndGgiLCJ0cmFuc3BvcnQiLCJhdCIsImFkYXB0ZXIiLCJjb25maWd1cmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLFNBQVNBLFNBQVMsUUFBUSxnQ0FBZ0M7QUFDMUQsU0FBU0Msa0JBQWtCLFFBQTBCLHlCQUF5QjtBQUM5RSxTQUVDQyxlQUFlLEVBRWZDLHlCQUF5QixFQUV6QkMsTUFBTSxRQUNBLG1CQUFtQjtBQU8xQixTQUFTQyxXQUFXLFFBQVEscUJBQXFCO0FBeUJqRCxPQUFPLE1BQU1DO0lBQ1osT0FDY0MsU0FDYkMsT0FBZSxFQUNmQyxNQUEyQyxFQUMzQ0MsUUFBaUMsRUFDaEM7UUFDRCxPQUFPQyxnQkFBZ0JILFNBQVM7WUFBRUU7UUFBUyxHQUFHRDtJQUMvQztJQUVBLE9BQ2NHLGVBQWVKLE9BQWUsRUFBRUUsUUFBaUMsRUFBRTtRQUNoRixPQUFPSixlQUFlQyxRQUFRLENBQzdCQyxTQUNBO1lBQUVLLFlBQVk7Z0JBQUVDLFFBQVE7Z0JBQWVDLFNBQVM7b0JBQUVDLFVBQVU7Z0JBQUs7WUFBRTtRQUFFLEdBQ3JFTjtJQUVGO0lBRUEsT0FDY08sZUFDYlQsT0FBZSxFQUNmTyxPQUEyQyxFQUMxQztRQUNELE1BQU0sRUFBRVgsTUFBTSxFQUFFUyxVQUFVLEVBQUUsR0FBR0U7UUFDL0IsT0FBT0osZ0JBQWdCSCxTQUFTSixRQUFRUztJQUN6QztBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLFNBQVNGLGdCQUNSSCxPQUFlLEVBQ2ZPLE9BQXFDLEVBQ3JDTixNQUEyQztJQUUzQyxNQUFNUyxjQUFjQyxRQUFRQyxHQUFHLENBQUNDLFFBQVEsSUFBSXBCO0lBQzVDLE1BQU1xQixVQUFVQyxNQUFNQyxPQUFPLENBQUNmLFVBQVVBLFNBQVM7UUFBQ0E7S0FBTztJQUN6RCxNQUFNSSxhQUFhUyxRQUFRRyxNQUFNLENBQ2hDLENBQUNoQixTQUFXLEFBQUNBLE9BQU9TLFdBQVcsSUFBSVQsT0FBT1MsV0FBVyxLQUFLQSxlQUFnQjtJQUczRSxJQUFJTCxXQUFXYSxNQUFNLEdBQUcsR0FBRztRQUMxQixNQUFNLElBQUl2QiwwQkFDVCxDQUFDLGtFQUFrRSxDQUFDO0lBRXRFO0lBRUEsTUFBTXdCLFlBQVlkLFdBQVdlLEVBQUUsQ0FBQyxJQUFJZjtJQUNwQyxNQUFNZ0IsVUFBVSxJQUFJeEIsWUFBWTtRQUFFc0I7SUFBVTtJQUM1QyxPQUFPbkIsUUFBUXNCLFNBQVMsQ0FBQztRQUN4QmYsU0FBUztZQUFFLEdBQUdBLE9BQU87WUFBRUwsVUFBVUssU0FBU0wsWUFBWVI7UUFBZ0I7UUFDdEUyQjtJQUNEO0FBQ0QifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/scribe-pino",
3
- "version": "0.0.1-dev.4",
3
+ "version": "0.0.1-dev.40",
4
4
  "description": "Pino adapter for @decohere/scribe",
5
5
  "keywords": [
6
6
  "typescript",
@@ -23,8 +23,8 @@
23
23
  "test": "echo \"Error: no test specified\" && exit 1"
24
24
  },
25
25
  "dependencies": {
26
- "@decohere/nexus": "0.0.1-dev.4",
27
- "@decohere/scribe": "0.0.1-dev.4",
26
+ "@decohere/nexus": "0.0.1-dev.40",
27
+ "@decohere/scribe": "0.0.1-dev.40",
28
28
  "pino": "^10.3.0"
29
29
  },
30
30
  "devDependencies": {}
@@ -0,0 +1,2 @@
1
+ export * from "./pino.adapater.js";
2
+ export * from "./scribe-pino.js";
@@ -0,0 +1,15 @@
1
+ import { LogAdapter, type Logger, type ScribeOptions } from "@decohere/scribe";
2
+ import pino from "pino";
3
+ export type PinoAdapaterOptions = {
4
+ options?: pino.LoggerOptions;
5
+ stream?: pino.DestinationStream;
6
+ };
7
+ export declare class PinoAdapter extends LogAdapter {
8
+ private _pino;
9
+ private readonly options;
10
+ private readonly stream;
11
+ constructor(options: pino.LoggerOptions, stream?: pino.DestinationStream);
12
+ configure<T extends string = never, CustomOnly extends true | false = false>(scribeOptions: ScribeOptions<T, CustomOnly>): void;
13
+ getLogger<T extends string = never, CustomOnly extends true | false = false>(name: string): Logger<T, CustomOnly>;
14
+ flush(cb?: () => void): void;
15
+ }
@@ -0,0 +1,24 @@
1
+ import { type Environment } from "@decohere/nexus/system";
2
+ import { type DefaultLevels, type Logger, type ScribeOptions, scribe } from "@decohere/scribe";
3
+ import type { TransportMultiOptions, TransportPipelineOptions, TransportSingleOptions } from "pino";
4
+ type TransportConfig = {
5
+ environment?: Environment;
6
+ transports: TransportSingleOptions | TransportMultiOptions | TransportPipelineOptions;
7
+ };
8
+ type CustomLevelOptions<T extends string = never, CustomOnly extends true = undefined> = {
9
+ scribe?: ScribeOptions<T, CustomOnly>;
10
+ transports?: TransportConfig | TransportConfig[];
11
+ };
12
+ declare module "@decohere/scribe" {
13
+ interface scribe {
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>;
17
+ }
18
+ }
19
+ export declare class PinoExtensions {
20
+ static withPino(factory: scribe, config: TransportConfig | TransportConfig[], logLevel?: DefaultLevels | string): (name?: string) => Logger<never, false>;
21
+ static withPinoPretty(factory: scribe, logLevel?: DefaultLevels | string): (name?: string) => Logger<never, false>;
22
+ static withPinoCustom<T extends string = never, CustomOnly extends true = undefined>(factory: scribe, options?: CustomLevelOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
23
+ }
24
+ export {};
@@ -1,73 +0,0 @@
1
- import { LogAdapter } from "../../scribe/src/index.js";
2
- import pino from "pino";
3
- export class PinoAdapter extends LogAdapter {
4
- _pino;
5
- options;
6
- stream;
7
- constructor(options, stream){
8
- super();
9
- this.options = options;
10
- this.stream = stream;
11
- }
12
- configure(scribeOptions) {
13
- const { logLevel, redactions } = scribeOptions;
14
- const customLevels = this.getLogLevels(scribeOptions);
15
- const pinoOptions = {
16
- customLevels,
17
- level: logLevel,
18
- hooks: {
19
- logMethod
20
- },
21
- serializers: {
22
- error: pino.stdSerializers.err
23
- },
24
- redact: redactions,
25
- ...this.options
26
- };
27
- this._pino = pino(pinoOptions, this.stream);
28
- }
29
- getLogger(name) {
30
- const logger = pinoMix(this._pino.child({
31
- name
32
- }));
33
- return logger;
34
- }
35
- flush(cb) {
36
- this._pino.flush(cb);
37
- }
38
- }
39
- function logMethod(args, method) {
40
- let message = args.at(0);
41
- const data = args.at(1);
42
- if (data instanceof Error) {
43
- message = {
44
- msg: message,
45
- ...{
46
- error: data
47
- }
48
- };
49
- } else if (typeof data === "object") {
50
- message = {
51
- msg: message,
52
- ...data
53
- };
54
- } else {
55
- message = {
56
- msg: message,
57
- data
58
- };
59
- }
60
- method.call(this, message);
61
- }
62
- function pinoMix(logger) {
63
- return Object.assign(logger, {
64
- get currentLevel () {
65
- return logger.level;
66
- },
67
- get logLevels () {
68
- return logger.levels.values;
69
- }
70
- });
71
- }
72
-
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvcGluby5hZGFwYXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHR0eXBlIEJhc2VMb2dnZXIsXG5cdExvZ0FkYXB0ZXIsXG5cdHR5cGUgTG9nZ2VyLFxuXHR0eXBlIFNjcmliZU9wdGlvbnMsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgcGlubywgeyB0eXBlIExvZ0ZuIH0gZnJvbSBcInBpbm9cIjtcblxuZXhwb3J0IHR5cGUgUGlub0FkYXBhdGVyT3B0aW9ucyA9IHtcblx0b3B0aW9ucz86IHBpbm8uTG9nZ2VyT3B0aW9ucztcblx0c3RyZWFtPzogcGluby5EZXN0aW5hdGlvblN0cmVhbTtcbn07XG5cbmV4cG9ydCBjbGFzcyBQaW5vQWRhcHRlciBleHRlbmRzIExvZ0FkYXB0ZXIge1xuXHRwcml2YXRlIF9waW5vOiBwaW5vLkxvZ2dlcjtcblx0cHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnM7XG5cdHByaXZhdGUgcmVhZG9ubHkgc3RyZWFtOiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtO1xuXHRwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogcGluby5Mb2dnZXJPcHRpb25zLCBzdHJlYW0/OiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RyZWFtID0gc3RyZWFtO1xuXHR9XG5cblx0cHVibGljIGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0c2NyaWJlT3B0aW9uczogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgeyBsb2dMZXZlbCwgcmVkYWN0aW9ucyB9ID0gc2NyaWJlT3B0aW9ucztcblx0XHRjb25zdCBjdXN0b21MZXZlbHMgPSB0aGlzLmdldExvZ0xldmVscyhzY3JpYmVPcHRpb25zKTtcblxuXHRcdGNvbnN0IHBpbm9PcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMgPSB7XG5cdFx0XHRjdXN0b21MZXZlbHMsXG5cdFx0XHRsZXZlbDogbG9nTGV2ZWwsXG5cdFx0XHRob29rczogeyBsb2dNZXRob2QgfSxcblx0XHRcdHNlcmlhbGl6ZXJzOiB7XG5cdFx0XHRcdGVycm9yOiBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycixcblx0XHRcdH0sXG5cdFx0XHRyZWRhY3Q6IHJlZGFjdGlvbnMsXG5cdFx0XHQuLi50aGlzLm9wdGlvbnMsXG5cdFx0fTtcblx0XHR0aGlzLl9waW5vID0gcGlubyhwaW5vT3B0aW9ucywgdGhpcy5zdHJlYW0pO1xuXHR9XG5cblx0cHVibGljIGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IGxvZ2dlciA9IHBpbm9NaXg8VCwgQ3VzdG9tT25seT4odGhpcy5fcGluby5jaGlsZCh7IG5hbWUgfSkpO1xuXHRcdHJldHVybiBsb2dnZXI7XG5cdH1cblxuXHRwdWJsaWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5fcGluby5mbHVzaChjYik7XG5cdH1cbn1cblxuZnVuY3Rpb24gbG9nTWV0aG9kKHRoaXM6IHBpbm8uTG9nZ2VyLCBhcmdzOiBQYXJhbWV0ZXJzPExvZ0ZuPiwgbWV0aG9kOiBMb2dGbikge1xuXHRsZXQgbWVzc2FnZSA9IGFyZ3MuYXQoMCk7XG5cdGNvbnN0IGRhdGEgPSBhcmdzLmF0KDEpO1xuXG5cdGlmIChkYXRhIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRtZXNzYWdlID0geyBtc2c6IG1lc3NhZ2UsIC4uLnsgZXJyb3I6IGRhdGEgfSB9O1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBkYXRhID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCAuLi5kYXRhIH07XG5cdH0gZWxzZSB7XG5cdFx0bWVzc2FnZSA9IHsgbXNnOiBtZXNzYWdlLCBkYXRhIH07XG5cdH1cblxuXHRtZXRob2QuY2FsbCh0aGlzLCBtZXNzYWdlKTtcbn1cblxuZnVuY3Rpb24gcGlub01peDxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdGxvZ2dlcjogcGluby5Mb2dnZXIsXG4pOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4ge1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbjxwaW5vLkxvZ2dlciwgQmFzZUxvZ2dlcj4obG9nZ2VyLCB7XG5cdFx0Z2V0IGN1cnJlbnRMZXZlbCgpIHtcblx0XHRcdHJldHVybiBsb2dnZXIubGV2ZWw7XG5cdFx0fSxcblx0XHRnZXQgbG9nTGV2ZWxzKCkge1xuXHRcdFx0cmV0dXJuIGxvZ2dlci5sZXZlbHMudmFsdWVzO1xuXHRcdH0sXG5cdH0pIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcbn1cbiJdLCJuYW1lcyI6WyJMb2dBZGFwdGVyIiwicGlubyIsIlBpbm9BZGFwdGVyIiwiX3Bpbm8iLCJvcHRpb25zIiwic3RyZWFtIiwiY29uZmlndXJlIiwic2NyaWJlT3B0aW9ucyIsImxvZ0xldmVsIiwicmVkYWN0aW9ucyIsImN1c3RvbUxldmVscyIsImdldExvZ0xldmVscyIsInBpbm9PcHRpb25zIiwibGV2ZWwiLCJob29rcyIsImxvZ01ldGhvZCIsInNlcmlhbGl6ZXJzIiwiZXJyb3IiLCJzdGRTZXJpYWxpemVycyIsImVyciIsInJlZGFjdCIsImdldExvZ2dlciIsIm5hbWUiLCJsb2dnZXIiLCJwaW5vTWl4IiwiY2hpbGQiLCJmbHVzaCIsImNiIiwiYXJncyIsIm1ldGhvZCIsIm1lc3NhZ2UiLCJhdCIsImRhdGEiLCJFcnJvciIsIm1zZyIsImNhbGwiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50TGV2ZWwiLCJsb2dMZXZlbHMiLCJsZXZlbHMiLCJ2YWx1ZXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBRUNBLFVBQVUsUUFHSiw0QkFBbUI7QUFDMUIsT0FBT0MsVUFBMEIsT0FBTztBQU94QyxPQUFPLE1BQU1DLG9CQUFvQkY7SUFDeEJHLE1BQW1CO0lBQ1ZDLFFBQTRCO0lBQzVCQyxPQUErQjtJQUNoRCxZQUFtQkQsT0FBMkIsRUFBRUMsTUFBK0IsQ0FBRTtRQUNoRixLQUFLO1FBQ0wsSUFBSSxDQUFDRCxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2Y7SUFFT0MsVUFDTkMsYUFBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFLEdBQUdGO1FBQ2pDLE1BQU1HLGVBQWUsSUFBSSxDQUFDQyxZQUFZLENBQUNKO1FBRXZDLE1BQU1LLGNBQWtDO1lBQ3ZDRjtZQUNBRyxPQUFPTDtZQUNQTSxPQUFPO2dCQUFFQztZQUFVO1lBQ25CQyxhQUFhO2dCQUNaQyxPQUFPaEIsS0FBS2lCLGNBQWMsQ0FBQ0MsR0FBRztZQUMvQjtZQUNBQyxRQUFRWDtZQUNSLEdBQUcsSUFBSSxDQUFDTCxPQUFPO1FBQ2hCO1FBQ0EsSUFBSSxDQUFDRCxLQUFLLEdBQUdGLEtBQUtXLGFBQWEsSUFBSSxDQUFDUCxNQUFNO0lBQzNDO0lBRU9nQixVQUNOQyxJQUFZLEVBQ1k7UUFDeEIsTUFBTUMsU0FBU0MsUUFBdUIsSUFBSSxDQUFDckIsS0FBSyxDQUFDc0IsS0FBSyxDQUFDO1lBQUVIO1FBQUs7UUFDOUQsT0FBT0M7SUFDUjtJQUVPRyxNQUFNQyxFQUFlLEVBQVE7UUFDbkMsSUFBSSxDQUFDeEIsS0FBSyxDQUFDdUIsS0FBSyxDQUFDQztJQUNsQjtBQUNEO0FBRUEsU0FBU1osVUFBNkJhLElBQXVCLEVBQUVDLE1BQWE7SUFDM0UsSUFBSUMsVUFBVUYsS0FBS0csRUFBRSxDQUFDO0lBQ3RCLE1BQU1DLE9BQU9KLEtBQUtHLEVBQUUsQ0FBQztJQUVyQixJQUFJQyxnQkFBZ0JDLE9BQU87UUFDMUJILFVBQVU7WUFBRUksS0FBS0o7WUFBUyxHQUFHO2dCQUFFYixPQUFPZTtZQUFLLENBQUM7UUFBQztJQUM5QyxPQUFPLElBQUksT0FBT0EsU0FBUyxVQUFVO1FBQ3BDRixVQUFVO1lBQUVJLEtBQUtKO1lBQVMsR0FBR0UsSUFBSTtRQUFDO0lBQ25DLE9BQU87UUFDTkYsVUFBVTtZQUFFSSxLQUFLSjtZQUFTRTtRQUFLO0lBQ2hDO0lBRUFILE9BQU9NLElBQUksQ0FBQyxJQUFJLEVBQUVMO0FBQ25CO0FBRUEsU0FBU04sUUFDUkQsTUFBbUI7SUFFbkIsT0FBT2EsT0FBT0MsTUFBTSxDQUEwQmQsUUFBUTtRQUNyRCxJQUFJZSxnQkFBZTtZQUNsQixPQUFPZixPQUFPVixLQUFLO1FBQ3BCO1FBQ0EsSUFBSTBCLGFBQVk7WUFDZixPQUFPaEIsT0FBT2lCLE1BQU0sQ0FBQ0MsTUFBTTtRQUM1QjtJQUNEO0FBQ0QifQ==
@@ -1,82 +0,0 @@
1
- function _ts_decorate(decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- }
7
- function _ts_metadata(k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- }
10
- import { extension } from "../../../nexus/src/extensibility/index.js";
11
- import { DefaultEnvironment } from "../../../nexus/src/system/index.js";
12
- import { LoggingConfigurationError, scribe } from "../../scribe/src/index.js";
13
- import { PinoAdapter } from "./pino.adapater.js";
14
- export class PinoExtensions {
15
- static withPino(factory, config, logLevel) {
16
- return configureScribe(factory, {
17
- logLevel
18
- }, config);
19
- }
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);
29
- }
30
- static withPinoCustom(factory, options) {
31
- const { scribe, transports } = options;
32
- return configureScribe(factory, scribe, transports);
33
- }
34
- }
35
- _ts_decorate([
36
- extension(scribe),
37
- _ts_metadata("design:type", Function),
38
- _ts_metadata("design:paramtypes", [
39
- typeof scribe === "undefined" ? Object : scribe,
40
- Object,
41
- Object
42
- ]),
43
- _ts_metadata("design:returntype", void 0)
44
- ], PinoExtensions, "withPino", null);
45
- _ts_decorate([
46
- extension(scribe),
47
- _ts_metadata("design:type", Function),
48
- _ts_metadata("design:paramtypes", [
49
- typeof scribe === "undefined" ? Object : scribe,
50
- Object
51
- ]),
52
- _ts_metadata("design:returntype", void 0)
53
- ], PinoExtensions, "withPinoPretty", null);
54
- _ts_decorate([
55
- extension(scribe),
56
- _ts_metadata("design:type", Function),
57
- _ts_metadata("design:paramtypes", [
58
- typeof scribe === "undefined" ? Object : scribe,
59
- typeof CustomLevelOptions === "undefined" ? Object : CustomLevelOptions
60
- ]),
61
- _ts_metadata("design:returntype", void 0)
62
- ], PinoExtensions, "withPinoCustom", null);
63
- function configureScribe(factory, options, config) {
64
- const environment = process.env.NODE_ENV ?? DefaultEnvironment;
65
- const configs = Array.isArray(config) ? config : [
66
- config
67
- ];
68
- const transports = configs.filter((config)=>config.environment && config.environment === environment || true);
69
- if (transports.length > 1) {
70
- throw new LoggingConfigurationError(`There should only be one configuration per environment for logging`);
71
- }
72
- const transport = transports.at(0)?.transports;
73
- const adapter = new PinoAdapter({
74
- transport
75
- });
76
- return factory.configure({
77
- options,
78
- adapter
79
- });
80
- }
81
-
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUtcGluby9zcmMvc2NyaWJlLXBpbm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5zaW9uIH0gZnJvbSBcIkBkZWNvaGVyZS9uZXh1cy9leHRlbnNpYmlsaXR5XCI7XG5pbXBvcnQgeyBEZWZhdWx0RW52aXJvbm1lbnQsIHR5cGUgRW52aXJvbm1lbnQgfSBmcm9tIFwiQGRlY29oZXJlL25leHVzL3N5c3RlbVwiO1xuaW1wb3J0IHtcblx0dHlwZSBEZWZhdWx0TGV2ZWxzLFxuXHR0eXBlIExvZ2dlcixcblx0TG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcblx0dHlwZSBTY3JpYmVPcHRpb25zLFxuXHRzY3JpYmUsXG59IGZyb20gXCJAZGVjb2hlcmUvc2NyaWJlXCI7XG5pbXBvcnQgdHlwZSB7XG5cdFRyYW5zcG9ydE11bHRpT3B0aW9ucyxcblx0VHJhbnNwb3J0UGlwZWxpbmVPcHRpb25zLFxuXHRUcmFuc3BvcnRTaW5nbGVPcHRpb25zLFxufSBmcm9tIFwicGlub1wiO1xuXG5pbXBvcnQgeyBQaW5vQWRhcHRlciB9IGZyb20gXCIuL3Bpbm8uYWRhcGF0ZXIuanNcIjtcblxudHlwZSBUcmFuc3BvcnRDb25maWcgPSB7XG5cdGVudmlyb25tZW50PzogRW52aXJvbm1lbnQ7XG5cdHRyYW5zcG9ydHM6IFRyYW5zcG9ydFNpbmdsZU9wdGlvbnMgfCBUcmFuc3BvcnRNdWx0aU9wdGlvbnMgfCBUcmFuc3BvcnRQaXBlbGluZU9wdGlvbnM7XG59O1xuXG50eXBlIEN1c3RvbUxldmVsT3B0aW9uczxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPiA9IHtcblx0c2NyaWJlPzogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pjtcblx0dHJhbnNwb3J0cz86IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdO1xufTtcblxuZGVjbGFyZSBtb2R1bGUgXCJAZGVjb2hlcmUvc2NyaWJlXCIge1xuXHRpbnRlcmZhY2Ugc2NyaWJlIHtcblx0XHR3aXRoUGlubyhcblx0XHRcdHRyYW5zcG9ydHM6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuXHRcdFx0bG9nbGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nLFxuXHRcdCk6IChuYW1lPzogc3RyaW5nKSA9PiBMb2dnZXI7XG5cdFx0d2l0aFBpbm9QcmV0dHkobG9nTGV2ZWw/OiBEZWZhdWx0TGV2ZWxzIHwgc3RyaW5nKTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjtcblx0XHR3aXRoUGlub0N1c3RvbTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRcdG9wdGlvbnM/OiBDdXN0b21MZXZlbE9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdFx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0fVxufVxuXG5leHBvcnQgY2xhc3MgUGlub0V4dGVuc2lvbnMge1xuXHRAZXh0ZW5zaW9uKHNjcmliZSlcblx0cHVibGljIHN0YXRpYyB3aXRoUGlubyhcblx0XHRmYWN0b3J5OiBzY3JpYmUsXG5cdFx0Y29uZmlnOiBUcmFuc3BvcnRDb25maWcgfCBUcmFuc3BvcnRDb25maWdbXSxcblx0XHRsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcsXG5cdCkge1xuXHRcdHJldHVybiBjb25maWd1cmVTY3JpYmUoZmFjdG9yeSwgeyBsb2dMZXZlbCB9LCBjb25maWcpO1xuXHR9XG5cblx0QGV4dGVuc2lvbihzY3JpYmUpXG5cdHB1YmxpYyBzdGF0aWMgd2l0aFBpbm9QcmV0dHkoZmFjdG9yeTogc2NyaWJlLCBsb2dMZXZlbD86IERlZmF1bHRMZXZlbHMgfCBzdHJpbmcpIHtcblx0XHRyZXR1cm4gUGlub0V4dGVuc2lvbnMud2l0aFBpbm8oXG5cdFx0XHRmYWN0b3J5LFxuXHRcdFx0eyB0cmFuc3BvcnRzOiB7IHRhcmdldDogXCJwaW5vLXByZXR0eVwiLCBvcHRpb25zOiB7IGNvbG9yaXplOiB0cnVlIH0gfSB9LFxuXHRcdFx0bG9nTGV2ZWwsXG5cdFx0KTtcblx0fVxuXG5cdEBleHRlbnNpb24oc2NyaWJlKVxuXHRwdWJsaWMgc3RhdGljIHdpdGhQaW5vQ3VzdG9tPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgPSB1bmRlZmluZWQ+KFxuXHRcdGZhY3Rvcnk6IHNjcmliZSxcblx0XHRvcHRpb25zPzogQ3VzdG9tTGV2ZWxPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRjb25zdCB7IHNjcmliZSwgdHJhbnNwb3J0cyB9ID0gb3B0aW9ucztcblx0XHRyZXR1cm4gY29uZmlndXJlU2NyaWJlKGZhY3RvcnksIHNjcmliZSwgdHJhbnNwb3J0cyk7XG5cdH1cbn1cblxuZnVuY3Rpb24gY29uZmlndXJlU2NyaWJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0ZmFjdG9yeTogc2NyaWJlLFxuXHRvcHRpb25zOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHRjb25maWc6IFRyYW5zcG9ydENvbmZpZyB8IFRyYW5zcG9ydENvbmZpZ1tdLFxuKSB7XG5cdGNvbnN0IGVudmlyb25tZW50ID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPz8gRGVmYXVsdEVudmlyb25tZW50O1xuXHRjb25zdCBjb25maWdzID0gQXJyYXkuaXNBcnJheShjb25maWcpID8gY29uZmlnIDogW2NvbmZpZ107XG5cdGNvbnN0IHRyYW5zcG9ydHMgPSBjb25maWdzLmZpbHRlcihcblx0XHQoY29uZmlnKSA9PiAoY29uZmlnLmVudmlyb25tZW50ICYmIGNvbmZpZy5lbnZpcm9ubWVudCA9PT0gZW52aXJvbm1lbnQpIHx8IHRydWUsXG5cdCk7XG5cblx0aWYgKHRyYW5zcG9ydHMubGVuZ3RoID4gMSkge1xuXHRcdHRocm93IG5ldyBMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yKFxuXHRcdFx0YFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBjb25maWd1cmF0aW9uIHBlciBlbnZpcm9ubWVudCBmb3IgbG9nZ2luZ2AsXG5cdFx0KTtcblx0fVxuXG5cdGNvbnN0IHRyYW5zcG9ydCA9IHRyYW5zcG9ydHMuYXQoMCk/LnRyYW5zcG9ydHM7XG5cdGNvbnN0IGFkYXB0ZXIgPSBuZXcgUGlub0FkYXB0ZXIoeyB0cmFuc3BvcnQgfSk7XG5cdHJldHVybiBmYWN0b3J5LmNvbmZpZ3VyZSh7XG5cdFx0b3B0aW9ucyxcblx0XHRhZGFwdGVyLFxuXHR9KTtcbn1cbiJdLCJuYW1lcyI6WyJleHRlbnNpb24iLCJEZWZhdWx0RW52aXJvbm1lbnQiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwic2NyaWJlIiwiUGlub0FkYXB0ZXIiLCJQaW5vRXh0ZW5zaW9ucyIsIndpdGhQaW5vIiwiZmFjdG9yeSIsImNvbmZpZyIsImxvZ0xldmVsIiwiY29uZmlndXJlU2NyaWJlIiwid2l0aFBpbm9QcmV0dHkiLCJ0cmFuc3BvcnRzIiwidGFyZ2V0Iiwib3B0aW9ucyIsImNvbG9yaXplIiwid2l0aFBpbm9DdXN0b20iLCJlbnZpcm9ubWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbmZpZ3MiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJsZW5ndGgiLCJ0cmFuc3BvcnQiLCJhdCIsImFkYXB0ZXIiLCJjb25maWd1cmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLFNBQVNBLFNBQVMsUUFBUSw0Q0FBZ0M7QUFDMUQsU0FBU0Msa0JBQWtCLFFBQTBCLHFDQUF5QjtBQUM5RSxTQUdDQyx5QkFBeUIsRUFFekJDLE1BQU0sUUFDQSw0QkFBbUI7QUFPMUIsU0FBU0MsV0FBVyxRQUFRLHFCQUFxQjtBQXlCakQsT0FBTyxNQUFNQztJQUNaLE9BQ2NDLFNBQ2JDLE9BQWUsRUFDZkMsTUFBMkMsRUFDM0NDLFFBQWlDLEVBQ2hDO1FBQ0QsT0FBT0MsZ0JBQWdCSCxTQUFTO1lBQUVFO1FBQVMsR0FBR0Q7SUFDL0M7SUFFQSxPQUNjRyxlQUFlSixPQUFlLEVBQUVFLFFBQWlDLEVBQUU7UUFDaEYsT0FBT0osZUFBZUMsUUFBUSxDQUM3QkMsU0FDQTtZQUFFSyxZQUFZO2dCQUFFQyxRQUFRO2dCQUFlQyxTQUFTO29CQUFFQyxVQUFVO2dCQUFLO1lBQUU7UUFBRSxHQUNyRU47SUFFRjtJQUVBLE9BQ2NPLGVBQ2JULE9BQWUsRUFDZk8sT0FBMkMsRUFDMUM7UUFDRCxNQUFNLEVBQUVYLE1BQU0sRUFBRVMsVUFBVSxFQUFFLEdBQUdFO1FBQy9CLE9BQU9KLGdCQUFnQkgsU0FBU0osUUFBUVM7SUFDekM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFTRixnQkFDUkgsT0FBZSxFQUNmTyxPQUFxQyxFQUNyQ04sTUFBMkM7SUFFM0MsTUFBTVMsY0FBY0MsUUFBUUMsR0FBRyxDQUFDQyxRQUFRLElBQUluQjtJQUM1QyxNQUFNb0IsVUFBVUMsTUFBTUMsT0FBTyxDQUFDZixVQUFVQSxTQUFTO1FBQUNBO0tBQU87SUFDekQsTUFBTUksYUFBYVMsUUFBUUcsTUFBTSxDQUNoQyxDQUFDaEIsU0FBVyxBQUFDQSxPQUFPUyxXQUFXLElBQUlULE9BQU9TLFdBQVcsS0FBS0EsZUFBZ0I7SUFHM0UsSUFBSUwsV0FBV2EsTUFBTSxHQUFHLEdBQUc7UUFDMUIsTUFBTSxJQUFJdkIsMEJBQ1QsQ0FBQyxrRUFBa0UsQ0FBQztJQUV0RTtJQUVBLE1BQU13QixZQUFZZCxXQUFXZSxFQUFFLENBQUMsSUFBSWY7SUFDcEMsTUFBTWdCLFVBQVUsSUFBSXhCLFlBQVk7UUFBRXNCO0lBQVU7SUFDNUMsT0FBT25CLFFBQVFzQixTQUFTLENBQUM7UUFDeEJmO1FBQ0FjO0lBQ0Q7QUFDRCJ9
File without changes