@decohere/scribe 0.0.1-dev.68 → 0.0.1-dev.69

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.
@@ -24,6 +24,12 @@ class LogAdapter {
24
24
  flush(cb) {
25
25
  cb?.();
26
26
  }
27
+ async stop() {
28
+ await this[Symbol.asyncDispose]();
29
+ }
30
+ async [Symbol.asyncDispose]() {
31
+ // Console / no-op adapters have nothing to release.
32
+ }
27
33
  // biome-ignore lint/suspicious/noExplicitAny: Generic utility method needs flexible typing
28
34
  getLogLevels(options) {
29
35
  const { customOnly, customLevels } = options;
@@ -42,4 +48,4 @@ class LogAdapter {
42
48
  }
43
49
  }
44
50
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyLnR5cGUuanNcIjtcbmltcG9ydCB7IExvZ0xldmVscywgdHlwZSBTY3JpYmVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9yKGVycjogRXJyb3IpOiBzdHJpbmcge1xuXHRyZXR1cm4gZXJyLnN0YWNrID8/IGVyci5tZXNzYWdlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXIge1xuXHRjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cdGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2dBZGFwdGVyIGltcGxlbWVudHMgTG9nZ2VyQWRhcHRlciB7XG5cdHB1YmxpYyBhYnN0cmFjdCBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cblx0cHVibGljIGFic3RyYWN0IGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cblx0cHVibGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdGNiPy4oKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogR2VuZXJpYyB1dGlsaXR5IG1ldGhvZCBuZWVkcyBmbGV4aWJsZSB0eXBpbmdcblx0cHJvdGVjdGVkIGdldExvZ0xldmVscyhvcHRpb25zOiBTY3JpYmVPcHRpb25zPGFueSwgYW55Pik6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4ge1xuXHRcdGNvbnN0IHsgY3VzdG9tT25seSwgY3VzdG9tTGV2ZWxzIH0gPSBvcHRpb25zO1xuXHRcdGlmIChjdXN0b21Pbmx5KSB7XG5cdFx0XHRyZXR1cm4gY3VzdG9tTGV2ZWxzO1xuXHRcdH1cblx0XHRjb25zdCBsZXZlbHMgPSB0aGlzLmdldFVuaXF1ZUxldmVscyhMb2dMZXZlbHMsIGN1c3RvbUxldmVscyk7XG5cdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhsZXZlbHMpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldFVuaXF1ZUxldmVscyhcblx0XHRkZWZhdWx0TGV2ZWxzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuXHRcdGN1c3RvbUxldmVsczogUmVjb3JkPHN0cmluZywgbnVtYmVyPixcblx0KSB7XG5cdFx0Y29uc3QgZGVmYXVsdEVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkZWZhdWx0TGV2ZWxzID8/IHt9KTtcblx0XHRjb25zdCBjdXN0b21FbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoY3VzdG9tTGV2ZWxzID8/IHt9KTtcblx0XHRjb25zdCBkZWZhdWx0Tm90SW5DdXN0b20gPSBkZWZhdWx0RW50cmllcy5maWx0ZXIoXG5cdFx0XHQoW2RrXSkgPT4gY3VzdG9tRW50cmllcy5maW5kSW5kZXgoKFtja10pID0+IGNrID09PSBkaykgPT09IC0xLFxuXHRcdCk7XG5cblx0XHRjb25zdCB1bmlxdWUgPSBkZWZhdWx0Tm90SW5DdXN0b20uY29uY2F0KGN1c3RvbUVudHJpZXMpO1xuXHRcdHJldHVybiB1bmlxdWU7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJMb2dBZGFwdGVyIiwiZm9ybWF0RXJyb3IiLCJlcnIiLCJzdGFjayIsIm1lc3NhZ2UiLCJmbHVzaCIsImNiIiwiZ2V0TG9nTGV2ZWxzIiwib3B0aW9ucyIsImN1c3RvbU9ubHkiLCJjdXN0b21MZXZlbHMiLCJsZXZlbHMiLCJnZXRVbmlxdWVMZXZlbHMiLCJMb2dMZXZlbHMiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImRlZmF1bHRMZXZlbHMiLCJkZWZhdWx0RW50cmllcyIsImVudHJpZXMiLCJjdXN0b21FbnRyaWVzIiwiZGVmYXVsdE5vdEluQ3VzdG9tIiwiZmlsdGVyIiwiZGsiLCJmaW5kSW5kZXgiLCJjayIsInVuaXF1ZSIsImNvbmNhdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFpQnNCQTtlQUFBQTs7UUFkTkM7ZUFBQUE7Ozt1QkFGOEI7QUFFdkMsU0FBU0EsWUFBWUMsR0FBVTtJQUNyQyxPQUFPQSxJQUFJQyxLQUFLLElBQUlELElBQUlFLE9BQU87QUFDaEM7QUFZTyxNQUFlSjtJQVNkSyxNQUFNQyxFQUFlLEVBQVE7UUFDbkNBO0lBQ0Q7SUFFQSwyRkFBMkY7SUFDakZDLGFBQWFDLE9BQWdDLEVBQTBCO1FBQ2hGLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUUsR0FBR0Y7UUFDckMsSUFBSUMsWUFBWTtZQUNmLE9BQU9DO1FBQ1I7UUFDQSxNQUFNQyxTQUFTLElBQUksQ0FBQ0MsZUFBZSxDQUFDQyxnQkFBUyxFQUFFSDtRQUMvQyxPQUFPSSxPQUFPQyxXQUFXLENBQUNKO0lBQzNCO0lBRVVDLGdCQUNUSSxhQUFxQyxFQUNyQ04sWUFBb0MsRUFDbkM7UUFDRCxNQUFNTyxpQkFBaUJILE9BQU9JLE9BQU8sQ0FBQ0YsaUJBQWlCLENBQUM7UUFDeEQsTUFBTUcsZ0JBQWdCTCxPQUFPSSxPQUFPLENBQUNSLGdCQUFnQixDQUFDO1FBQ3RELE1BQU1VLHFCQUFxQkgsZUFBZUksTUFBTSxDQUMvQyxDQUFDLENBQUNDLEdBQUcsR0FBS0gsY0FBY0ksU0FBUyxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxHQUFLQSxPQUFPRixRQUFRLENBQUM7UUFHN0QsTUFBTUcsU0FBU0wsbUJBQW1CTSxNQUFNLENBQUNQO1FBQ3pDLE9BQU9NO0lBQ1I7QUFDRCJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyLnR5cGUuanNcIjtcbmltcG9ydCB7IExvZ0xldmVscywgdHlwZSBTY3JpYmVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9yKGVycjogRXJyb3IpOiBzdHJpbmcge1xuXHRyZXR1cm4gZXJyLnN0YWNrID8/IGVyci5tZXNzYWdlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXIgZXh0ZW5kcyBBc3luY0Rpc3Bvc2FibGUge1xuXHRjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cdGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7XG5cdC8qKlxuXHQgKiBEcmFpbiBidWZmZXJlZCBvdXRwdXQgYW5kIHJlbGVhc2UgdW5tYW5hZ2VkIGhhbmRsZXMgKHdvcmtlcnMsIGZkcykuXG5cdCAqIElkZW1wb3RlbnQg4oCUIHNhZmUgdG8gY2FsbCBtb3JlIHRoYW4gb25jZS5cblx0ICovXG5cdHN0b3AoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvZ0FkYXB0ZXIgaW1wbGVtZW50cyBMb2dnZXJBZGFwdGVyIHtcblx0cHVibGljIGFic3RyYWN0IGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0b3B0aW9uczogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTtcblxuXHRwdWJsaWMgYWJzdHJhY3QgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lOiBzdHJpbmcsXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PjtcblxuXHRwdWJsaWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0Y2I/LigpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpc1tTeW1ib2wuYXN5bmNEaXNwb3NlXSgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBDb25zb2xlIC8gbm8tb3AgYWRhcHRlcnMgaGF2ZSBub3RoaW5nIHRvIHJlbGVhc2UuXG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IEdlbmVyaWMgdXRpbGl0eSBtZXRob2QgbmVlZHMgZmxleGlibGUgdHlwaW5nXG5cdHByb3RlY3RlZCBnZXRMb2dMZXZlbHMob3B0aW9uczogU2NyaWJlT3B0aW9uczxhbnksIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcblx0XHRjb25zdCB7IGN1c3RvbU9ubHksIGN1c3RvbUxldmVscyB9ID0gb3B0aW9ucztcblx0XHRpZiAoY3VzdG9tT25seSkge1xuXHRcdFx0cmV0dXJuIGN1c3RvbUxldmVscztcblx0XHR9XG5cdFx0Y29uc3QgbGV2ZWxzID0gdGhpcy5nZXRVbmlxdWVMZXZlbHMoTG9nTGV2ZWxzLCBjdXN0b21MZXZlbHMpO1xuXHRcdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMobGV2ZWxzKTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRVbmlxdWVMZXZlbHMoXG5cdFx0ZGVmYXVsdExldmVsczogUmVjb3JkPHN0cmluZywgbnVtYmVyPixcblx0XHRjdXN0b21MZXZlbHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG5cdCkge1xuXHRcdGNvbnN0IGRlZmF1bHRFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZGVmYXVsdExldmVscyA/PyB7fSk7XG5cdFx0Y29uc3QgY3VzdG9tRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscyA/PyB7fSk7XG5cdFx0Y29uc3QgZGVmYXVsdE5vdEluQ3VzdG9tID0gZGVmYXVsdEVudHJpZXMuZmlsdGVyKFxuXHRcdFx0KFtka10pID0+IGN1c3RvbUVudHJpZXMuZmluZEluZGV4KChbY2tdKSA9PiBjayA9PT0gZGspID09PSAtMSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgdW5pcXVlID0gZGVmYXVsdE5vdEluQ3VzdG9tLmNvbmNhdChjdXN0b21FbnRyaWVzKTtcblx0XHRyZXR1cm4gdW5pcXVlO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiTG9nQWRhcHRlciIsImZvcm1hdEVycm9yIiwiZXJyIiwic3RhY2siLCJtZXNzYWdlIiwiZmx1c2giLCJjYiIsInN0b3AiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJnZXRMb2dMZXZlbHMiLCJvcHRpb25zIiwiY3VzdG9tT25seSIsImN1c3RvbUxldmVscyIsImxldmVscyIsImdldFVuaXF1ZUxldmVscyIsIkxvZ0xldmVscyIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZGVmYXVsdExldmVscyIsImRlZmF1bHRFbnRyaWVzIiwiZW50cmllcyIsImN1c3RvbUVudHJpZXMiLCJkZWZhdWx0Tm90SW5DdXN0b20iLCJmaWx0ZXIiLCJkayIsImZpbmRJbmRleCIsImNrIiwidW5pcXVlIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztRQXNCc0JBO2VBQUFBOztRQW5CTkM7ZUFBQUE7Ozt1QkFGOEI7QUFFdkMsU0FBU0EsWUFBWUMsR0FBVTtJQUNyQyxPQUFPQSxJQUFJQyxLQUFLLElBQUlELElBQUlFLE9BQU87QUFDaEM7QUFpQk8sTUFBZUo7SUFTZEssTUFBTUMsRUFBZSxFQUFRO1FBQ25DQTtJQUNEO0lBRUEsTUFBYUMsT0FBc0I7UUFDbEMsTUFBTSxJQUFJLENBQUNDLE9BQU9DLFlBQVksQ0FBQztJQUNoQztJQUVBLE1BQWEsQ0FBQ0QsT0FBT0MsWUFBWSxDQUFDLEdBQWtCO0lBQ25ELG9EQUFvRDtJQUNyRDtJQUVBLDJGQUEyRjtJQUNqRkMsYUFBYUMsT0FBZ0MsRUFBMEI7UUFDaEYsTUFBTSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksRUFBRSxHQUFHRjtRQUNyQyxJQUFJQyxZQUFZO1lBQ2YsT0FBT0M7UUFDUjtRQUNBLE1BQU1DLFNBQVMsSUFBSSxDQUFDQyxlQUFlLENBQUNDLGdCQUFTLEVBQUVIO1FBQy9DLE9BQU9JLE9BQU9DLFdBQVcsQ0FBQ0o7SUFDM0I7SUFFVUMsZ0JBQ1RJLGFBQXFDLEVBQ3JDTixZQUFvQyxFQUNuQztRQUNELE1BQU1PLGlCQUFpQkgsT0FBT0ksT0FBTyxDQUFDRixpQkFBaUIsQ0FBQztRQUN4RCxNQUFNRyxnQkFBZ0JMLE9BQU9JLE9BQU8sQ0FBQ1IsZ0JBQWdCLENBQUM7UUFDdEQsTUFBTVUscUJBQXFCSCxlQUFlSSxNQUFNLENBQy9DLENBQUMsQ0FBQ0MsR0FBRyxHQUFLSCxjQUFjSSxTQUFTLENBQUMsQ0FBQyxDQUFDQyxHQUFHLEdBQUtBLE9BQU9GLFFBQVEsQ0FBQztRQUc3RCxNQUFNRyxTQUFTTCxtQkFBbUJNLE1BQU0sQ0FBQ1A7UUFDekMsT0FBT007SUFDUjtBQUNEIn0=
@@ -19,12 +19,20 @@ class scribe {
19
19
  return scribe.instance.getLogger(name, customLevels);
20
20
  }
21
21
  static configure(configOptions) {
22
+ const previous = scribe.instance;
22
23
  scribe.instance = new scribe();
23
- return scribe.instance.configure(configOptions);
24
+ const factory = scribe.instance.configure(configOptions);
25
+ // Fire-and-forget: Flux/App.stop should have drained already; this covers
26
+ // reconfigure without an intervening stop (e.g. top-level withPino reload).
27
+ void previous.stop();
28
+ return factory;
24
29
  }
25
30
  static flush(cb) {
26
31
  scribe.instance.loggerProvider.flush(cb);
27
32
  }
33
+ /** Drain the active adapter and release workers / destinations. */ static async stop() {
34
+ await scribe.instance.stop();
35
+ }
28
36
  constructor(){
29
37
  // Initialize with default console adapter
30
38
  this.loggerProvider = new _consoleadapter.ConsoleAdapter();
@@ -33,11 +41,21 @@ class scribe {
33
41
  }
34
42
  configure(configOptions) {
35
43
  const { adapter, options } = configOptions;
44
+ const previous = this.loggerProvider;
36
45
  this.loggerProvider = adapter;
37
46
  const defaultsAndOptions = this.mergeDefaults(options);
38
47
  adapter.configure(defaultsAndOptions);
48
+ if (previous !== adapter) {
49
+ void previous.stop();
50
+ }
39
51
  return (name)=>adapter.getLogger(name);
40
52
  }
53
+ async stop() {
54
+ await this.loggerProvider.stop();
55
+ }
56
+ async [Symbol.asyncDispose]() {
57
+ await this.stop();
58
+ }
41
59
  getLogger(name, customLevels) {
42
60
  // If custom levels are provided, we need to reconfigure the adapter
43
61
  if (customLevels) {
@@ -72,4 +90,4 @@ class scribe {
72
90
  }
73
91
  }
74
92
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdHJldHVybiBzY3JpYmUuaW5zdGFuY2UuY29uZmlndXJlPFQsIEN1c3RvbU9ubHk+KGNvbmZpZ09wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UubG9nZ2VyUHJvdmlkZXIuZmx1c2goY2IpO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKCkge1xuXHRcdC8vIEluaXRpYWxpemUgd2l0aCBkZWZhdWx0IGNvbnNvbGUgYWRhcHRlclxuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIgPSBuZXcgQ29uc29sZUFkYXB0ZXIoKTtcblx0XHRjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cygpO1xuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGRlZmF1bHRPcHRpb25zKTtcblx0fVxuXG5cdHB1YmxpYyBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdGNvbmZpZ09wdGlvbnM6IExvZ2dlckZhY3RvcnlPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCB7IGFkYXB0ZXIsIG9wdGlvbnMgfSA9IGNvbmZpZ09wdGlvbnM7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBhZGFwdGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gSWYgY3VzdG9tIGxldmVscyBhcmUgcHJvdmlkZWQsIHdlIG5lZWQgdG8gcmVjb25maWd1cmUgdGhlIGFkYXB0ZXJcblx0XHRpZiAoY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cyh7IGN1c3RvbUxldmVscyB9KTtcblx0XHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGN1cnJlbnRPcHRpb25zKTtcblx0XHR9XG5cblx0XHRjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlclByb3ZpZGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdFx0dGhpcy5zdXBwb3J0c0xldmVscyhjdXN0b21MZXZlbHMsIGxvZ2dlcik7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHByaXZhdGUgc3VwcG9ydHNMZXZlbHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0Y3VzdG9tTGV2ZWxzOiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHRcdGxvZ2dlcjogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRpZiAoIWN1c3RvbUxldmVscykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pc3NpbmdMZXZlbCA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscykuZmluZChcblx0XHRcdChrZXkpID0+ICFsb2dnZXIubG9nTGV2ZWxzW2tleS5hdCgwKS50b1N0cmluZygpXSxcblx0XHQpO1xuXG5cdFx0aWYgKG1pc3NpbmdMZXZlbCAhPSBudWxsKSB7XG5cdFx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdFx0YEN1cnJlbnQgbG9nZ2VyIHdhcyBub3QgY29uZmlndXJlZCBmb3IgY3VzdG9tIGxldmVsICR7bWlzc2luZ0xldmVsfSwgdmFsaWQgbGV2ZWxzIGFyZTogJHtKU09OLnN0cmluZ2lmeShsb2dnZXIubG9nTGV2ZWxzKX1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgbWlzc2luZ0xldmVsIH07XG5cdH1cblxuXHRwcml2YXRlIG1lcmdlRGVmYXVsdHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dMZXZlbCA9IHJlc29sdmVMb2dMZXZlbChvcHRpb25zPy5sb2dMZXZlbCkgPz8gRGVmYXVsdExvZ0xldmVsO1xuXHRcdHJldHVybiB7IGxvZ0xldmVsLCByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucyB9O1xuXHR9XG59XG4iXSwibmFtZXMiOlsic2NyaWJlIiwibG9nZ2VyUHJvdmlkZXIiLCJpbnN0YW5jZSIsImxvZ2dlciIsIm5hbWUiLCJjdXN0b21MZXZlbHMiLCJnZXRMb2dnZXIiLCJjb25maWd1cmUiLCJjb25maWdPcHRpb25zIiwiZmx1c2giLCJjYiIsIkNvbnNvbGVBZGFwdGVyIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJjdXJyZW50T3B0aW9ucyIsInN1cHBvcnRzTGV2ZWxzIiwibWlzc2luZ0xldmVsIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbmQiLCJrZXkiLCJsb2dMZXZlbHMiLCJhdCIsInRvU3RyaW5nIiwiTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJsb2dMZXZlbCIsInJlc29sdmVMb2dMZXZlbCIsIkRlZmF1bHRMb2dMZXZlbCIsInJlZGFjdGlvbnMiLCJEZWZhdWx0UmVkYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFlYUE7OztlQUFBQTs7O2dDQWZrQjtxQkFDQzt3QkFDVTt1QkFHNkI7QUFVaEUsTUFBTUE7SUFDSkMsZUFBOEI7SUFDdEMsT0FBZUMsV0FBbUIsSUFBSUYsU0FBUztJQUUvQyxPQUFjRyxPQUNiQyxJQUFhLEVBQ2JDLFlBRUMsRUFDdUI7UUFDeEIsT0FBT0wsT0FBT0UsUUFBUSxDQUFDSSxTQUFTLENBQWdCRixNQUFNQztJQUl2RDtJQUVBLE9BQWNFLFVBQ2JDLGFBQWtELEVBQ2pEO1FBQ0RSLE9BQU9FLFFBQVEsR0FBRyxJQUFJRjtRQUN0QixPQUFPQSxPQUFPRSxRQUFRLENBQUNLLFNBQVMsQ0FBZ0JDO0lBQ2pEO0lBRUEsT0FBY0MsTUFBTUMsRUFBZSxFQUFRO1FBQzFDVixPQUFPRSxRQUFRLENBQUNELGNBQWMsQ0FBQ1EsS0FBSyxDQUFDQztJQUN0QztJQUVBLGFBQXFCO1FBQ3BCLDBDQUEwQztRQUMxQyxJQUFJLENBQUNULGNBQWMsR0FBRyxJQUFJVSw4QkFBYztRQUN4QyxNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxhQUFhO1FBQ3pDLElBQUksQ0FBQ1osY0FBYyxDQUFDTSxTQUFTLENBQUNLO0lBQy9CO0lBRU9MLFVBQ05DLGFBQWtELEVBQ1A7UUFDM0MsTUFBTSxFQUFFTSxPQUFPLEVBQUVDLE9BQU8sRUFBRSxHQUFHUDtRQUM3QixJQUFJLENBQUNQLGNBQWMsR0FBR2E7UUFDdEIsTUFBTUUscUJBQXFCLElBQUksQ0FBQ0gsYUFBYSxDQUFnQkU7UUFDN0RELFFBQVFQLFNBQVMsQ0FBQ1M7UUFDbEIsT0FBTyxDQUFDWixPQUFrQlUsUUFBUVIsU0FBUyxDQUFDRjtJQUM3QztJQUVPRSxVQUNORixJQUFhLEVBQ2JDLFlBRUMsRUFDdUI7UUFDeEIsb0VBQW9FO1FBQ3BFLElBQUlBLGNBQWM7WUFDakIsTUFBTVksaUJBQWlCLElBQUksQ0FBQ0osYUFBYSxDQUFDO2dCQUFFUjtZQUFhO1lBQ3pELElBQUksQ0FBQ0osY0FBYyxDQUFDTSxTQUFTLENBQUNVO1FBQy9CO1FBRUEsTUFBTWQsU0FBUyxJQUFJLENBQUNGLGNBQWMsQ0FBQ0ssU0FBUyxDQUFDRjtRQUM3QyxJQUFJLENBQUNjLGNBQWMsQ0FBQ2IsY0FBY0Y7UUFDbEMsT0FBT0E7SUFDUjtJQUVRZSxlQUNQYixZQUVDLEVBQ0RGLE1BQTZCLEVBQzVCO1FBQ0QsSUFBSSxDQUFDRSxjQUFjO1lBQ2xCO1FBQ0Q7UUFFQSxNQUFNYyxlQUFlQyxPQUFPQyxPQUFPLENBQUNoQixjQUFjaUIsSUFBSSxDQUNyRCxDQUFDQyxNQUFRLENBQUNwQixPQUFPcUIsU0FBUyxDQUFDRCxJQUFJRSxFQUFFLENBQUMsR0FBR0MsUUFBUSxHQUFHO1FBR2pELElBQUlQLGdCQUFnQixNQUFNO1lBQ3pCLE1BQU0sSUFBSVEsaUNBQXlCLENBQ2xDLENBQUMsbURBQW1ELEVBQUVSLGFBQWEsb0JBQW9CLEVBQUVTLEtBQUtDLFNBQVMsQ0FBQzFCLE9BQU9xQixTQUFTLEdBQUc7UUFFN0g7UUFDQSxPQUFPO1lBQUVMO1FBQWE7SUFDdkI7SUFFUU4sY0FDUEUsT0FBc0MsRUFDUDtRQUMvQixNQUFNZSxXQUFXQyxJQUFBQSxvQkFBZSxFQUFDaEIsU0FBU2UsYUFBYUUsc0JBQWU7UUFDdEUsT0FBTztZQUFFRjtZQUFVRyxZQUFZQyx3QkFBaUI7WUFBRSxHQUFHbkIsT0FBTztRQUFDO0lBQzlEO0FBQ0QifQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgcHJldmlvdXMgPSBzY3JpYmUuaW5zdGFuY2U7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdGNvbnN0IGZhY3RvcnkgPSBzY3JpYmUuaW5zdGFuY2UuY29uZmlndXJlPFQsIEN1c3RvbU9ubHk+KGNvbmZpZ09wdGlvbnMpO1xuXHRcdC8vIEZpcmUtYW5kLWZvcmdldDogRmx1eC9BcHAuc3RvcCBzaG91bGQgaGF2ZSBkcmFpbmVkIGFscmVhZHk7IHRoaXMgY292ZXJzXG5cdFx0Ly8gcmVjb25maWd1cmUgd2l0aG91dCBhbiBpbnRlcnZlbmluZyBzdG9wIChlLmcuIHRvcC1sZXZlbCB3aXRoUGlubyByZWxvYWQpLlxuXHRcdHZvaWQgcHJldmlvdXMuc3RvcCgpO1xuXHRcdHJldHVybiBmYWN0b3J5O1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UubG9nZ2VyUHJvdmlkZXIuZmx1c2goY2IpO1xuXHR9XG5cblx0LyoqIERyYWluIHRoZSBhY3RpdmUgYWRhcHRlciBhbmQgcmVsZWFzZSB3b3JrZXJzIC8gZGVzdGluYXRpb25zLiAqL1xuXHRwdWJsaWMgc3RhdGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgc2NyaWJlLmluc3RhbmNlLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblx0XHQvLyBJbml0aWFsaXplIHdpdGggZGVmYXVsdCBjb25zb2xlIGFkYXB0ZXJcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyID0gbmV3IENvbnNvbGVBZGFwdGVyKCk7XG5cdFx0Y29uc3QgZGVmYXVsdE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHMoKTtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLmNvbmZpZ3VyZShkZWZhdWx0T3B0aW9ucyk7XG5cdH1cblxuXHRwdWJsaWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgeyBhZGFwdGVyLCBvcHRpb25zIH0gPSBjb25maWdPcHRpb25zO1xuXHRcdGNvbnN0IHByZXZpb3VzID0gdGhpcy5sb2dnZXJQcm92aWRlcjtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyID0gYWRhcHRlcjtcblx0XHRjb25zdCBkZWZhdWx0c0FuZE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHM8VCwgQ3VzdG9tT25seT4ob3B0aW9ucyk7XG5cdFx0YWRhcHRlci5jb25maWd1cmUoZGVmYXVsdHNBbmRPcHRpb25zKTtcblx0XHRpZiAocHJldmlvdXMgIT09IGFkYXB0ZXIpIHtcblx0XHRcdHZvaWQgcHJldmlvdXMuc3RvcCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG5hbWU/OiBzdHJpbmcpID0+IGFkYXB0ZXIuZ2V0TG9nZ2VyKG5hbWUpIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMubG9nZ2VyUHJvdmlkZXIuc3RvcCgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRMb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHQvLyBJZiBjdXN0b20gbGV2ZWxzIGFyZSBwcm92aWRlZCwgd2UgbmVlZCB0byByZWNvbmZpZ3VyZSB0aGUgYWRhcHRlclxuXHRcdGlmIChjdXN0b21MZXZlbHMpIHtcblx0XHRcdGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKHsgY3VzdG9tTGV2ZWxzIH0pO1xuXHRcdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoY3VycmVudE9wdGlvbnMpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGxvZ2dlciA9IHRoaXMubG9nZ2VyUHJvdmlkZXIuZ2V0TG9nZ2VyKG5hbWUpIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0XHR0aGlzLnN1cHBvcnRzTGV2ZWxzKGN1c3RvbUxldmVscywgbG9nZ2VyKTtcblx0XHRyZXR1cm4gbG9nZ2VyO1xuXHR9XG5cblx0cHJpdmF0ZSBzdXBwb3J0c0xldmVsczxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRjdXN0b21MZXZlbHM6IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdFx0bG9nZ2VyOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGlmICghY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlzc2luZ0xldmVsID0gT2JqZWN0LmVudHJpZXMoY3VzdG9tTGV2ZWxzKS5maW5kKFxuXHRcdFx0KGtleSkgPT4gIWxvZ2dlci5sb2dMZXZlbHNba2V5LmF0KDApLnRvU3RyaW5nKCldLFxuXHRcdCk7XG5cblx0XHRpZiAobWlzc2luZ0xldmVsICE9IG51bGwpIHtcblx0XHRcdHRocm93IG5ldyBMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yKFxuXHRcdFx0XHRgQ3VycmVudCBsb2dnZXIgd2FzIG5vdCBjb25maWd1cmVkIGZvciBjdXN0b20gbGV2ZWwgJHttaXNzaW5nTGV2ZWx9LCB2YWxpZCBsZXZlbHMgYXJlOiAke0pTT04uc3RyaW5naWZ5KGxvZ2dlci5sb2dMZXZlbHMpfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4geyBtaXNzaW5nTGV2ZWwgfTtcblx0fVxuXG5cdHByaXZhdGUgbWVyZ2VEZWZhdWx0czxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0b3B0aW9ucz86IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IGxvZ0xldmVsID0gcmVzb2x2ZUxvZ0xldmVsKG9wdGlvbnM/LmxvZ0xldmVsKSA/PyBEZWZhdWx0TG9nTGV2ZWw7XG5cdFx0cmV0dXJuIHsgbG9nTGV2ZWwsIHJlZGFjdGlvbnM6IERlZmF1bHRSZWRhY3Rpb25zLCAuLi5vcHRpb25zIH07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJzY3JpYmUiLCJsb2dnZXJQcm92aWRlciIsImluc3RhbmNlIiwibG9nZ2VyIiwibmFtZSIsImN1c3RvbUxldmVscyIsImdldExvZ2dlciIsImNvbmZpZ3VyZSIsImNvbmZpZ09wdGlvbnMiLCJwcmV2aW91cyIsImZhY3RvcnkiLCJzdG9wIiwiZmx1c2giLCJjYiIsIkNvbnNvbGVBZGFwdGVyIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJjdXJyZW50T3B0aW9ucyIsInN1cHBvcnRzTGV2ZWxzIiwibWlzc2luZ0xldmVsIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbmQiLCJrZXkiLCJsb2dMZXZlbHMiLCJhdCIsInRvU3RyaW5nIiwiTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJsb2dMZXZlbCIsInJlc29sdmVMb2dMZXZlbCIsIkRlZmF1bHRMb2dMZXZlbCIsInJlZGFjdGlvbnMiLCJEZWZhdWx0UmVkYWN0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFlYUE7OztlQUFBQTs7O2dDQWZrQjtxQkFDQzt3QkFDVTt1QkFHNkI7QUFVaEUsTUFBTUE7SUFDSkMsZUFBOEI7SUFDdEMsT0FBZUMsV0FBbUIsSUFBSUYsU0FBUztJQUUvQyxPQUFjRyxPQUNiQyxJQUFhLEVBQ2JDLFlBRUMsRUFDdUI7UUFDeEIsT0FBT0wsT0FBT0UsUUFBUSxDQUFDSSxTQUFTLENBQWdCRixNQUFNQztJQUl2RDtJQUVBLE9BQWNFLFVBQ2JDLGFBQWtELEVBQ2pEO1FBQ0QsTUFBTUMsV0FBV1QsT0FBT0UsUUFBUTtRQUNoQ0YsT0FBT0UsUUFBUSxHQUFHLElBQUlGO1FBQ3RCLE1BQU1VLFVBQVVWLE9BQU9FLFFBQVEsQ0FBQ0ssU0FBUyxDQUFnQkM7UUFDekQsMEVBQTBFO1FBQzFFLDRFQUE0RTtRQUM1RSxLQUFLQyxTQUFTRSxJQUFJO1FBQ2xCLE9BQU9EO0lBQ1I7SUFFQSxPQUFjRSxNQUFNQyxFQUFlLEVBQVE7UUFDMUNiLE9BQU9FLFFBQVEsQ0FBQ0QsY0FBYyxDQUFDVyxLQUFLLENBQUNDO0lBQ3RDO0lBRUEsaUVBQWlFLEdBQ2pFLGFBQW9CRixPQUFzQjtRQUN6QyxNQUFNWCxPQUFPRSxRQUFRLENBQUNTLElBQUk7SUFDM0I7SUFFQSxhQUFxQjtRQUNwQiwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDVixjQUFjLEdBQUcsSUFBSWEsOEJBQWM7UUFDeEMsTUFBTUMsaUJBQWlCLElBQUksQ0FBQ0MsYUFBYTtRQUN6QyxJQUFJLENBQUNmLGNBQWMsQ0FBQ00sU0FBUyxDQUFDUTtJQUMvQjtJQUVPUixVQUNOQyxhQUFrRCxFQUNQO1FBQzNDLE1BQU0sRUFBRVMsT0FBTyxFQUFFQyxPQUFPLEVBQUUsR0FBR1Y7UUFDN0IsTUFBTUMsV0FBVyxJQUFJLENBQUNSLGNBQWM7UUFDcEMsSUFBSSxDQUFDQSxjQUFjLEdBQUdnQjtRQUN0QixNQUFNRSxxQkFBcUIsSUFBSSxDQUFDSCxhQUFhLENBQWdCRTtRQUM3REQsUUFBUVYsU0FBUyxDQUFDWTtRQUNsQixJQUFJVixhQUFhUSxTQUFTO1lBQ3pCLEtBQUtSLFNBQVNFLElBQUk7UUFDbkI7UUFDQSxPQUFPLENBQUNQLE9BQWtCYSxRQUFRWCxTQUFTLENBQUNGO0lBQzdDO0lBRUEsTUFBYU8sT0FBc0I7UUFDbEMsTUFBTSxJQUFJLENBQUNWLGNBQWMsQ0FBQ1UsSUFBSTtJQUMvQjtJQUVBLE1BQWEsQ0FBQ1MsT0FBT0MsWUFBWSxDQUFDLEdBQWtCO1FBQ25ELE1BQU0sSUFBSSxDQUFDVixJQUFJO0lBQ2hCO0lBRU9MLFVBQ05GLElBQWEsRUFDYkMsWUFFQyxFQUN1QjtRQUN4QixvRUFBb0U7UUFDcEUsSUFBSUEsY0FBYztZQUNqQixNQUFNaUIsaUJBQWlCLElBQUksQ0FBQ04sYUFBYSxDQUFDO2dCQUFFWDtZQUFhO1lBQ3pELElBQUksQ0FBQ0osY0FBYyxDQUFDTSxTQUFTLENBQUNlO1FBQy9CO1FBRUEsTUFBTW5CLFNBQVMsSUFBSSxDQUFDRixjQUFjLENBQUNLLFNBQVMsQ0FBQ0Y7UUFDN0MsSUFBSSxDQUFDbUIsY0FBYyxDQUFDbEIsY0FBY0Y7UUFDbEMsT0FBT0E7SUFDUjtJQUVRb0IsZUFDUGxCLFlBRUMsRUFDREYsTUFBNkIsRUFDNUI7UUFDRCxJQUFJLENBQUNFLGNBQWM7WUFDbEI7UUFDRDtRQUVBLE1BQU1tQixlQUFlQyxPQUFPQyxPQUFPLENBQUNyQixjQUFjc0IsSUFBSSxDQUNyRCxDQUFDQyxNQUFRLENBQUN6QixPQUFPMEIsU0FBUyxDQUFDRCxJQUFJRSxFQUFFLENBQUMsR0FBR0MsUUFBUSxHQUFHO1FBR2pELElBQUlQLGdCQUFnQixNQUFNO1lBQ3pCLE1BQU0sSUFBSVEsaUNBQXlCLENBQ2xDLENBQUMsbURBQW1ELEVBQUVSLGFBQWEsb0JBQW9CLEVBQUVTLEtBQUtDLFNBQVMsQ0FBQy9CLE9BQU8wQixTQUFTLEdBQUc7UUFFN0g7UUFDQSxPQUFPO1lBQUVMO1FBQWE7SUFDdkI7SUFFUVIsY0FDUEUsT0FBc0MsRUFDUDtRQUMvQixNQUFNaUIsV0FBV0MsSUFBQUEsb0JBQWUsRUFBQ2xCLFNBQVNpQixhQUFhRSxzQkFBZTtRQUN0RSxPQUFPO1lBQUVGO1lBQVVHLFlBQVlDLHdCQUFpQjtZQUFFLEdBQUdyQixPQUFPO1FBQUM7SUFDOUQ7QUFDRCJ9
@@ -6,6 +6,12 @@ export class LogAdapter {
6
6
  flush(cb) {
7
7
  cb?.();
8
8
  }
9
+ async stop() {
10
+ await this[Symbol.asyncDispose]();
11
+ }
12
+ async [Symbol.asyncDispose]() {
13
+ // Console / no-op adapters have nothing to release.
14
+ }
9
15
  // biome-ignore lint/suspicious/noExplicitAny: Generic utility method needs flexible typing
10
16
  getLogLevels(options) {
11
17
  const { customOnly, customLevels } = options;
@@ -24,4 +30,4 @@ export class LogAdapter {
24
30
  }
25
31
  }
26
32
 
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyLnR5cGUuanNcIjtcbmltcG9ydCB7IExvZ0xldmVscywgdHlwZSBTY3JpYmVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9yKGVycjogRXJyb3IpOiBzdHJpbmcge1xuXHRyZXR1cm4gZXJyLnN0YWNrID8/IGVyci5tZXNzYWdlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXIge1xuXHRjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cdGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2dBZGFwdGVyIGltcGxlbWVudHMgTG9nZ2VyQWRhcHRlciB7XG5cdHB1YmxpYyBhYnN0cmFjdCBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cblx0cHVibGljIGFic3RyYWN0IGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cblx0cHVibGljIGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdGNiPy4oKTtcblx0fVxuXG5cdC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogR2VuZXJpYyB1dGlsaXR5IG1ldGhvZCBuZWVkcyBmbGV4aWJsZSB0eXBpbmdcblx0cHJvdGVjdGVkIGdldExvZ0xldmVscyhvcHRpb25zOiBTY3JpYmVPcHRpb25zPGFueSwgYW55Pik6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4ge1xuXHRcdGNvbnN0IHsgY3VzdG9tT25seSwgY3VzdG9tTGV2ZWxzIH0gPSBvcHRpb25zO1xuXHRcdGlmIChjdXN0b21Pbmx5KSB7XG5cdFx0XHRyZXR1cm4gY3VzdG9tTGV2ZWxzO1xuXHRcdH1cblx0XHRjb25zdCBsZXZlbHMgPSB0aGlzLmdldFVuaXF1ZUxldmVscyhMb2dMZXZlbHMsIGN1c3RvbUxldmVscyk7XG5cdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhsZXZlbHMpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGdldFVuaXF1ZUxldmVscyhcblx0XHRkZWZhdWx0TGV2ZWxzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+LFxuXHRcdGN1c3RvbUxldmVsczogUmVjb3JkPHN0cmluZywgbnVtYmVyPixcblx0KSB7XG5cdFx0Y29uc3QgZGVmYXVsdEVudHJpZXMgPSBPYmplY3QuZW50cmllcyhkZWZhdWx0TGV2ZWxzID8/IHt9KTtcblx0XHRjb25zdCBjdXN0b21FbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoY3VzdG9tTGV2ZWxzID8/IHt9KTtcblx0XHRjb25zdCBkZWZhdWx0Tm90SW5DdXN0b20gPSBkZWZhdWx0RW50cmllcy5maWx0ZXIoXG5cdFx0XHQoW2RrXSkgPT4gY3VzdG9tRW50cmllcy5maW5kSW5kZXgoKFtja10pID0+IGNrID09PSBkaykgPT09IC0xLFxuXHRcdCk7XG5cblx0XHRjb25zdCB1bmlxdWUgPSBkZWZhdWx0Tm90SW5DdXN0b20uY29uY2F0KGN1c3RvbUVudHJpZXMpO1xuXHRcdHJldHVybiB1bmlxdWU7XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJMb2dMZXZlbHMiLCJmb3JtYXRFcnJvciIsImVyciIsInN0YWNrIiwibWVzc2FnZSIsIkxvZ0FkYXB0ZXIiLCJmbHVzaCIsImNiIiwiZ2V0TG9nTGV2ZWxzIiwib3B0aW9ucyIsImN1c3RvbU9ubHkiLCJjdXN0b21MZXZlbHMiLCJsZXZlbHMiLCJnZXRVbmlxdWVMZXZlbHMiLCJPYmplY3QiLCJmcm9tRW50cmllcyIsImRlZmF1bHRMZXZlbHMiLCJkZWZhdWx0RW50cmllcyIsImVudHJpZXMiLCJjdXN0b21FbnRyaWVzIiwiZGVmYXVsdE5vdEluQ3VzdG9tIiwiZmlsdGVyIiwiZGsiLCJmaW5kSW5kZXgiLCJjayIsInVuaXF1ZSIsImNvbmNhdCJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsU0FBUyxRQUE0QixhQUFhO0FBRTNELE9BQU8sU0FBU0MsWUFBWUMsR0FBVTtJQUNyQyxPQUFPQSxJQUFJQyxLQUFLLElBQUlELElBQUlFLE9BQU87QUFDaEM7QUFZQSxPQUFPLE1BQWVDO0lBU2RDLE1BQU1DLEVBQWUsRUFBUTtRQUNuQ0E7SUFDRDtJQUVBLDJGQUEyRjtJQUNqRkMsYUFBYUMsT0FBZ0MsRUFBMEI7UUFDaEYsTUFBTSxFQUFFQyxVQUFVLEVBQUVDLFlBQVksRUFBRSxHQUFHRjtRQUNyQyxJQUFJQyxZQUFZO1lBQ2YsT0FBT0M7UUFDUjtRQUNBLE1BQU1DLFNBQVMsSUFBSSxDQUFDQyxlQUFlLENBQUNiLFdBQVdXO1FBQy9DLE9BQU9HLE9BQU9DLFdBQVcsQ0FBQ0g7SUFDM0I7SUFFVUMsZ0JBQ1RHLGFBQXFDLEVBQ3JDTCxZQUFvQyxFQUNuQztRQUNELE1BQU1NLGlCQUFpQkgsT0FBT0ksT0FBTyxDQUFDRixpQkFBaUIsQ0FBQztRQUN4RCxNQUFNRyxnQkFBZ0JMLE9BQU9JLE9BQU8sQ0FBQ1AsZ0JBQWdCLENBQUM7UUFDdEQsTUFBTVMscUJBQXFCSCxlQUFlSSxNQUFNLENBQy9DLENBQUMsQ0FBQ0MsR0FBRyxHQUFLSCxjQUFjSSxTQUFTLENBQUMsQ0FBQyxDQUFDQyxHQUFHLEdBQUtBLE9BQU9GLFFBQVEsQ0FBQztRQUc3RCxNQUFNRyxTQUFTTCxtQkFBbUJNLE1BQU0sQ0FBQ1A7UUFDekMsT0FBT007SUFDUjtBQUNEIn0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5hZGFwdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2VyLnR5cGUuanNcIjtcbmltcG9ydCB7IExvZ0xldmVscywgdHlwZSBTY3JpYmVPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEVycm9yKGVycjogRXJyb3IpOiBzdHJpbmcge1xuXHRyZXR1cm4gZXJyLnN0YWNrID8/IGVyci5tZXNzYWdlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckFkYXB0ZXIgZXh0ZW5kcyBBc3luY0Rpc3Bvc2FibGUge1xuXHRjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk7XG5cdGdldExvZ2dlcjxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0bmFtZTogc3RyaW5nLFxuXHQpOiBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdGZsdXNoKGNiPzogKCkgPT4gdm9pZCk6IHZvaWQ7XG5cdC8qKlxuXHQgKiBEcmFpbiBidWZmZXJlZCBvdXRwdXQgYW5kIHJlbGVhc2UgdW5tYW5hZ2VkIGhhbmRsZXMgKHdvcmtlcnMsIGZkcykuXG5cdCAqIElkZW1wb3RlbnQg4oCUIHNhZmUgdG8gY2FsbCBtb3JlIHRoYW4gb25jZS5cblx0ICovXG5cdHN0b3AoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvZ0FkYXB0ZXIgaW1wbGVtZW50cyBMb2dnZXJBZGFwdGVyIHtcblx0cHVibGljIGFic3RyYWN0IGNvbmZpZ3VyZTxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0b3B0aW9uczogU2NyaWJlT3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTtcblxuXHRwdWJsaWMgYWJzdHJhY3QgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lOiBzdHJpbmcsXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PjtcblxuXHRwdWJsaWMgZmx1c2goY2I/OiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0Y2I/LigpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpc1tTeW1ib2wuYXN5bmNEaXNwb3NlXSgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBDb25zb2xlIC8gbm8tb3AgYWRhcHRlcnMgaGF2ZSBub3RoaW5nIHRvIHJlbGVhc2UuXG5cdH1cblxuXHQvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IEdlbmVyaWMgdXRpbGl0eSBtZXRob2QgbmVlZHMgZmxleGlibGUgdHlwaW5nXG5cdHByb3RlY3RlZCBnZXRMb2dMZXZlbHMob3B0aW9uczogU2NyaWJlT3B0aW9uczxhbnksIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+IHtcblx0XHRjb25zdCB7IGN1c3RvbU9ubHksIGN1c3RvbUxldmVscyB9ID0gb3B0aW9ucztcblx0XHRpZiAoY3VzdG9tT25seSkge1xuXHRcdFx0cmV0dXJuIGN1c3RvbUxldmVscztcblx0XHR9XG5cdFx0Y29uc3QgbGV2ZWxzID0gdGhpcy5nZXRVbmlxdWVMZXZlbHMoTG9nTGV2ZWxzLCBjdXN0b21MZXZlbHMpO1xuXHRcdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMobGV2ZWxzKTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRVbmlxdWVMZXZlbHMoXG5cdFx0ZGVmYXVsdExldmVsczogUmVjb3JkPHN0cmluZywgbnVtYmVyPixcblx0XHRjdXN0b21MZXZlbHM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG5cdCkge1xuXHRcdGNvbnN0IGRlZmF1bHRFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZGVmYXVsdExldmVscyA/PyB7fSk7XG5cdFx0Y29uc3QgY3VzdG9tRW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscyA/PyB7fSk7XG5cdFx0Y29uc3QgZGVmYXVsdE5vdEluQ3VzdG9tID0gZGVmYXVsdEVudHJpZXMuZmlsdGVyKFxuXHRcdFx0KFtka10pID0+IGN1c3RvbUVudHJpZXMuZmluZEluZGV4KChbY2tdKSA9PiBjayA9PT0gZGspID09PSAtMSxcblx0XHQpO1xuXG5cdFx0Y29uc3QgdW5pcXVlID0gZGVmYXVsdE5vdEluQ3VzdG9tLmNvbmNhdChjdXN0b21FbnRyaWVzKTtcblx0XHRyZXR1cm4gdW5pcXVlO1xuXHR9XG59XG4iXSwibmFtZXMiOlsiTG9nTGV2ZWxzIiwiZm9ybWF0RXJyb3IiLCJlcnIiLCJzdGFjayIsIm1lc3NhZ2UiLCJMb2dBZGFwdGVyIiwiZmx1c2giLCJjYiIsInN0b3AiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJnZXRMb2dMZXZlbHMiLCJvcHRpb25zIiwiY3VzdG9tT25seSIsImN1c3RvbUxldmVscyIsImxldmVscyIsImdldFVuaXF1ZUxldmVscyIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZGVmYXVsdExldmVscyIsImRlZmF1bHRFbnRyaWVzIiwiZW50cmllcyIsImN1c3RvbUVudHJpZXMiLCJkZWZhdWx0Tm90SW5DdXN0b20iLCJmaWx0ZXIiLCJkayIsImZpbmRJbmRleCIsImNrIiwidW5pcXVlIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxTQUFTLFFBQTRCLGFBQWE7QUFFM0QsT0FBTyxTQUFTQyxZQUFZQyxHQUFVO0lBQ3JDLE9BQU9BLElBQUlDLEtBQUssSUFBSUQsSUFBSUUsT0FBTztBQUNoQztBQWlCQSxPQUFPLE1BQWVDO0lBU2RDLE1BQU1DLEVBQWUsRUFBUTtRQUNuQ0E7SUFDRDtJQUVBLE1BQWFDLE9BQXNCO1FBQ2xDLE1BQU0sSUFBSSxDQUFDQyxPQUFPQyxZQUFZLENBQUM7SUFDaEM7SUFFQSxNQUFhLENBQUNELE9BQU9DLFlBQVksQ0FBQyxHQUFrQjtJQUNuRCxvREFBb0Q7SUFDckQ7SUFFQSwyRkFBMkY7SUFDakZDLGFBQWFDLE9BQWdDLEVBQTBCO1FBQ2hGLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUUsR0FBR0Y7UUFDckMsSUFBSUMsWUFBWTtZQUNmLE9BQU9DO1FBQ1I7UUFDQSxNQUFNQyxTQUFTLElBQUksQ0FBQ0MsZUFBZSxDQUFDaEIsV0FBV2M7UUFDL0MsT0FBT0csT0FBT0MsV0FBVyxDQUFDSDtJQUMzQjtJQUVVQyxnQkFDVEcsYUFBcUMsRUFDckNMLFlBQW9DLEVBQ25DO1FBQ0QsTUFBTU0saUJBQWlCSCxPQUFPSSxPQUFPLENBQUNGLGlCQUFpQixDQUFDO1FBQ3hELE1BQU1HLGdCQUFnQkwsT0FBT0ksT0FBTyxDQUFDUCxnQkFBZ0IsQ0FBQztRQUN0RCxNQUFNUyxxQkFBcUJILGVBQWVJLE1BQU0sQ0FDL0MsQ0FBQyxDQUFDQyxHQUFHLEdBQUtILGNBQWNJLFNBQVMsQ0FBQyxDQUFDLENBQUNDLEdBQUcsR0FBS0EsT0FBT0YsUUFBUSxDQUFDO1FBRzdELE1BQU1HLFNBQVNMLG1CQUFtQk0sTUFBTSxDQUFDUDtRQUN6QyxPQUFPTTtJQUNSO0FBQ0QifQ==
@@ -9,12 +9,20 @@ export class scribe {
9
9
  return scribe.instance.getLogger(name, customLevels);
10
10
  }
11
11
  static configure(configOptions) {
12
+ const previous = scribe.instance;
12
13
  scribe.instance = new scribe();
13
- return scribe.instance.configure(configOptions);
14
+ const factory = scribe.instance.configure(configOptions);
15
+ // Fire-and-forget: Flux/App.stop should have drained already; this covers
16
+ // reconfigure without an intervening stop (e.g. top-level withPino reload).
17
+ void previous.stop();
18
+ return factory;
14
19
  }
15
20
  static flush(cb) {
16
21
  scribe.instance.loggerProvider.flush(cb);
17
22
  }
23
+ /** Drain the active adapter and release workers / destinations. */ static async stop() {
24
+ await scribe.instance.stop();
25
+ }
18
26
  constructor(){
19
27
  // Initialize with default console adapter
20
28
  this.loggerProvider = new ConsoleAdapter();
@@ -23,11 +31,21 @@ export class scribe {
23
31
  }
24
32
  configure(configOptions) {
25
33
  const { adapter, options } = configOptions;
34
+ const previous = this.loggerProvider;
26
35
  this.loggerProvider = adapter;
27
36
  const defaultsAndOptions = this.mergeDefaults(options);
28
37
  adapter.configure(defaultsAndOptions);
38
+ if (previous !== adapter) {
39
+ void previous.stop();
40
+ }
29
41
  return (name)=>adapter.getLogger(name);
30
42
  }
43
+ async stop() {
44
+ await this.loggerProvider.stop();
45
+ }
46
+ async [Symbol.asyncDispose]() {
47
+ await this.stop();
48
+ }
31
49
  getLogger(name, customLevels) {
32
50
  // If custom levels are provided, we need to reconfigure the adapter
33
51
  if (customLevels) {
@@ -62,4 +80,4 @@ export class scribe {
62
80
  }
63
81
  }
64
82
 
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdHJldHVybiBzY3JpYmUuaW5zdGFuY2UuY29uZmlndXJlPFQsIEN1c3RvbU9ubHk+KGNvbmZpZ09wdGlvbnMpO1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UubG9nZ2VyUHJvdmlkZXIuZmx1c2goY2IpO1xuXHR9XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKCkge1xuXHRcdC8vIEluaXRpYWxpemUgd2l0aCBkZWZhdWx0IGNvbnNvbGUgYWRhcHRlclxuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIgPSBuZXcgQ29uc29sZUFkYXB0ZXIoKTtcblx0XHRjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cygpO1xuXHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGRlZmF1bHRPcHRpb25zKTtcblx0fVxuXG5cdHB1YmxpYyBjb25maWd1cmU8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdGNvbmZpZ09wdGlvbnM6IExvZ2dlckZhY3RvcnlPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiAobmFtZT86IHN0cmluZykgPT4gTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCB7IGFkYXB0ZXIsIG9wdGlvbnMgfSA9IGNvbmZpZ09wdGlvbnM7XG5cdFx0dGhpcy5sb2dnZXJQcm92aWRlciA9IGFkYXB0ZXI7XG5cdFx0Y29uc3QgZGVmYXVsdHNBbmRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzPFQsIEN1c3RvbU9ubHk+KG9wdGlvbnMpO1xuXHRcdGFkYXB0ZXIuY29uZmlndXJlKGRlZmF1bHRzQW5kT3B0aW9ucyk7XG5cdFx0cmV0dXJuIChuYW1lPzogc3RyaW5nKSA9PiBhZGFwdGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdH1cblxuXHRwdWJsaWMgZ2V0TG9nZ2VyPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRuYW1lPzogc3RyaW5nLFxuXHRcdGN1c3RvbUxldmVscz86IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdCk6IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Ly8gSWYgY3VzdG9tIGxldmVscyBhcmUgcHJvdmlkZWQsIHdlIG5lZWQgdG8gcmVjb25maWd1cmUgdGhlIGFkYXB0ZXJcblx0XHRpZiAoY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRjb25zdCBjdXJyZW50T3B0aW9ucyA9IHRoaXMubWVyZ2VEZWZhdWx0cyh7IGN1c3RvbUxldmVscyB9KTtcblx0XHRcdHRoaXMubG9nZ2VyUHJvdmlkZXIuY29uZmlndXJlKGN1cnJlbnRPcHRpb25zKTtcblx0XHR9XG5cblx0XHRjb25zdCBsb2dnZXIgPSB0aGlzLmxvZ2dlclByb3ZpZGVyLmdldExvZ2dlcihuYW1lKSBhcyBMb2dnZXI8VCwgQ3VzdG9tT25seT47XG5cdFx0dGhpcy5zdXBwb3J0c0xldmVscyhjdXN0b21MZXZlbHMsIGxvZ2dlcik7XG5cdFx0cmV0dXJuIGxvZ2dlcjtcblx0fVxuXG5cdHByaXZhdGUgc3VwcG9ydHNMZXZlbHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSA9IHVuZGVmaW5lZD4oXG5cdFx0Y3VzdG9tTGV2ZWxzOiB7XG5cdFx0XHRbbGV2ZWwgaW4gVF06IG51bWJlcjtcblx0XHR9LFxuXHRcdGxvZ2dlcjogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+LFxuXHQpIHtcblx0XHRpZiAoIWN1c3RvbUxldmVscykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pc3NpbmdMZXZlbCA9IE9iamVjdC5lbnRyaWVzKGN1c3RvbUxldmVscykuZmluZChcblx0XHRcdChrZXkpID0+ICFsb2dnZXIubG9nTGV2ZWxzW2tleS5hdCgwKS50b1N0cmluZygpXSxcblx0XHQpO1xuXG5cdFx0aWYgKG1pc3NpbmdMZXZlbCAhPSBudWxsKSB7XG5cdFx0XHR0aHJvdyBuZXcgTG9nZ2luZ0NvbmZpZ3VyYXRpb25FcnJvcihcblx0XHRcdFx0YEN1cnJlbnQgbG9nZ2VyIHdhcyBub3QgY29uZmlndXJlZCBmb3IgY3VzdG9tIGxldmVsICR7bWlzc2luZ0xldmVsfSwgdmFsaWQgbGV2ZWxzIGFyZTogJHtKU09OLnN0cmluZ2lmeShsb2dnZXIubG9nTGV2ZWxzKX1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHsgbWlzc2luZ0xldmVsIH07XG5cdH1cblxuXHRwcml2YXRlIG1lcmdlRGVmYXVsdHM8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+LFxuXHQpOiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRjb25zdCBsb2dMZXZlbCA9IHJlc29sdmVMb2dMZXZlbChvcHRpb25zPy5sb2dMZXZlbCkgPz8gRGVmYXVsdExvZ0xldmVsO1xuXHRcdHJldHVybiB7IGxvZ0xldmVsLCByZWRhY3Rpb25zOiBEZWZhdWx0UmVkYWN0aW9ucywgLi4ub3B0aW9ucyB9O1xuXHR9XG59XG4iXSwibmFtZXMiOlsiQ29uc29sZUFkYXB0ZXIiLCJyZXNvbHZlTG9nTGV2ZWwiLCJMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yIiwiRGVmYXVsdExvZ0xldmVsIiwiRGVmYXVsdFJlZGFjdGlvbnMiLCJzY3JpYmUiLCJsb2dnZXJQcm92aWRlciIsImluc3RhbmNlIiwibG9nZ2VyIiwibmFtZSIsImN1c3RvbUxldmVscyIsImdldExvZ2dlciIsImNvbmZpZ3VyZSIsImNvbmZpZ09wdGlvbnMiLCJmbHVzaCIsImNiIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJjdXJyZW50T3B0aW9ucyIsInN1cHBvcnRzTGV2ZWxzIiwibWlzc2luZ0xldmVsIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbmQiLCJrZXkiLCJsb2dMZXZlbHMiLCJhdCIsInRvU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxvZ0xldmVsIiwicmVkYWN0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxRQUFRLHVCQUF1QjtBQUN0RCxTQUFTQyxlQUFlLFFBQVEsV0FBVztBQUMzQyxTQUFTQyx5QkFBeUIsUUFBUSxjQUFjO0FBR3hELFNBQVNDLGVBQWUsRUFBRUMsaUJBQWlCLFFBQTRCLGFBQWE7QUFVcEYsT0FBTyxNQUFNQztJQUNKQyxlQUE4QjtJQUN0QyxPQUFlQyxXQUFtQixJQUFJRixTQUFTO0lBRS9DLE9BQWNHLE9BQ2JDLElBQWEsRUFDYkMsWUFFQyxFQUN1QjtRQUN4QixPQUFPTCxPQUFPRSxRQUFRLENBQUNJLFNBQVMsQ0FBZ0JGLE1BQU1DO0lBSXZEO0lBRUEsT0FBY0UsVUFDYkMsYUFBa0QsRUFDakQ7UUFDRFIsT0FBT0UsUUFBUSxHQUFHLElBQUlGO1FBQ3RCLE9BQU9BLE9BQU9FLFFBQVEsQ0FBQ0ssU0FBUyxDQUFnQkM7SUFDakQ7SUFFQSxPQUFjQyxNQUFNQyxFQUFlLEVBQVE7UUFDMUNWLE9BQU9FLFFBQVEsQ0FBQ0QsY0FBYyxDQUFDUSxLQUFLLENBQUNDO0lBQ3RDO0lBRUEsYUFBcUI7UUFDcEIsMENBQTBDO1FBQzFDLElBQUksQ0FBQ1QsY0FBYyxHQUFHLElBQUlOO1FBQzFCLE1BQU1nQixpQkFBaUIsSUFBSSxDQUFDQyxhQUFhO1FBQ3pDLElBQUksQ0FBQ1gsY0FBYyxDQUFDTSxTQUFTLENBQUNJO0lBQy9CO0lBRU9KLFVBQ05DLGFBQWtELEVBQ1A7UUFDM0MsTUFBTSxFQUFFSyxPQUFPLEVBQUVDLE9BQU8sRUFBRSxHQUFHTjtRQUM3QixJQUFJLENBQUNQLGNBQWMsR0FBR1k7UUFDdEIsTUFBTUUscUJBQXFCLElBQUksQ0FBQ0gsYUFBYSxDQUFnQkU7UUFDN0RELFFBQVFOLFNBQVMsQ0FBQ1E7UUFDbEIsT0FBTyxDQUFDWCxPQUFrQlMsUUFBUVAsU0FBUyxDQUFDRjtJQUM3QztJQUVPRSxVQUNORixJQUFhLEVBQ2JDLFlBRUMsRUFDdUI7UUFDeEIsb0VBQW9FO1FBQ3BFLElBQUlBLGNBQWM7WUFDakIsTUFBTVcsaUJBQWlCLElBQUksQ0FBQ0osYUFBYSxDQUFDO2dCQUFFUDtZQUFhO1lBQ3pELElBQUksQ0FBQ0osY0FBYyxDQUFDTSxTQUFTLENBQUNTO1FBQy9CO1FBRUEsTUFBTWIsU0FBUyxJQUFJLENBQUNGLGNBQWMsQ0FBQ0ssU0FBUyxDQUFDRjtRQUM3QyxJQUFJLENBQUNhLGNBQWMsQ0FBQ1osY0FBY0Y7UUFDbEMsT0FBT0E7SUFDUjtJQUVRYyxlQUNQWixZQUVDLEVBQ0RGLE1BQTZCLEVBQzVCO1FBQ0QsSUFBSSxDQUFDRSxjQUFjO1lBQ2xCO1FBQ0Q7UUFFQSxNQUFNYSxlQUFlQyxPQUFPQyxPQUFPLENBQUNmLGNBQWNnQixJQUFJLENBQ3JELENBQUNDLE1BQVEsQ0FBQ25CLE9BQU9vQixTQUFTLENBQUNELElBQUlFLEVBQUUsQ0FBQyxHQUFHQyxRQUFRLEdBQUc7UUFHakQsSUFBSVAsZ0JBQWdCLE1BQU07WUFDekIsTUFBTSxJQUFJckIsMEJBQ1QsQ0FBQyxtREFBbUQsRUFBRXFCLGFBQWEsb0JBQW9CLEVBQUVRLEtBQUtDLFNBQVMsQ0FBQ3hCLE9BQU9vQixTQUFTLEdBQUc7UUFFN0g7UUFDQSxPQUFPO1lBQUVMO1FBQWE7SUFDdkI7SUFFUU4sY0FDUEUsT0FBc0MsRUFDUDtRQUMvQixNQUFNYyxXQUFXaEMsZ0JBQWdCa0IsU0FBU2MsYUFBYTlCO1FBQ3ZELE9BQU87WUFBRThCO1lBQVVDLFlBQVk5QjtZQUFtQixHQUFHZSxPQUFPO1FBQUM7SUFDOUQ7QUFDRCJ9
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2RlY29oZXJlL2RlY29oZXJlL3Byb2plY3RzL3NjcmliZS9zY3JpYmUvc3JjL2xvZ2dlci5mYWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnNvbGVBZGFwdGVyIH0gZnJvbSBcIi4vY29uc29sZS5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlTG9nTGV2ZWwgfSBmcm9tIFwiLi9lbnYuanNcIjtcbmltcG9ydCB7IExvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiLi9lcnJvcnMuanNcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyQWRhcHRlciB9IGZyb20gXCIuL2xvZ2dlci5hZGFwdGVyLmpzXCI7XG5pbXBvcnQgdHlwZSB7IExvZ2dlciB9IGZyb20gXCIuL2xvZ2dlci50eXBlLmpzXCI7XG5pbXBvcnQgeyBEZWZhdWx0TG9nTGV2ZWwsIERlZmF1bHRSZWRhY3Rpb25zLCB0eXBlIFNjcmliZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlcy5qc1wiO1xuXG50eXBlIExvZ2dlckZhY3RvcnlPcHRpb25zPFxuXHRUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsXG5cdEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZSxcbj4gPSB7XG5cdG9wdGlvbnM/OiBTY3JpYmVPcHRpb25zPFQsIEN1c3RvbU9ubHk+O1xuXHRhZGFwdGVyOiBMb2dnZXJBZGFwdGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIHNjcmliZSBpbXBsZW1lbnRzIEFzeW5jRGlzcG9zYWJsZSB7XG5cdHByaXZhdGUgbG9nZ2VyUHJvdmlkZXI6IExvZ2dlckFkYXB0ZXI7XG5cdHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBzY3JpYmUgPSBuZXcgc2NyaWJlKCk7XG5cblx0cHVibGljIHN0YXRpYyBsb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHRyZXR1cm4gc2NyaWJlLmluc3RhbmNlLmdldExvZ2dlcjxULCBDdXN0b21Pbmx5PihuYW1lLCBjdXN0b21MZXZlbHMpIGFzIExvZ2dlcjxcblx0XHRcdFQsXG5cdFx0XHRDdXN0b21Pbmx5XG5cdFx0Pjtcblx0fVxuXG5cdHB1YmxpYyBzdGF0aWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KSB7XG5cdFx0Y29uc3QgcHJldmlvdXMgPSBzY3JpYmUuaW5zdGFuY2U7XG5cdFx0c2NyaWJlLmluc3RhbmNlID0gbmV3IHNjcmliZSgpO1xuXHRcdGNvbnN0IGZhY3RvcnkgPSBzY3JpYmUuaW5zdGFuY2UuY29uZmlndXJlPFQsIEN1c3RvbU9ubHk+KGNvbmZpZ09wdGlvbnMpO1xuXHRcdC8vIEZpcmUtYW5kLWZvcmdldDogRmx1eC9BcHAuc3RvcCBzaG91bGQgaGF2ZSBkcmFpbmVkIGFscmVhZHk7IHRoaXMgY292ZXJzXG5cdFx0Ly8gcmVjb25maWd1cmUgd2l0aG91dCBhbiBpbnRlcnZlbmluZyBzdG9wIChlLmcuIHRvcC1sZXZlbCB3aXRoUGlubyByZWxvYWQpLlxuXHRcdHZvaWQgcHJldmlvdXMuc3RvcCgpO1xuXHRcdHJldHVybiBmYWN0b3J5O1xuXHR9XG5cblx0cHVibGljIHN0YXRpYyBmbHVzaChjYj86ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHRzY3JpYmUuaW5zdGFuY2UubG9nZ2VyUHJvdmlkZXIuZmx1c2goY2IpO1xuXHR9XG5cblx0LyoqIERyYWluIHRoZSBhY3RpdmUgYWRhcHRlciBhbmQgcmVsZWFzZSB3b3JrZXJzIC8gZGVzdGluYXRpb25zLiAqL1xuXHRwdWJsaWMgc3RhdGljIGFzeW5jIHN0b3AoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgc2NyaWJlLmluc3RhbmNlLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcblx0XHQvLyBJbml0aWFsaXplIHdpdGggZGVmYXVsdCBjb25zb2xlIGFkYXB0ZXJcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyID0gbmV3IENvbnNvbGVBZGFwdGVyKCk7XG5cdFx0Y29uc3QgZGVmYXVsdE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHMoKTtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyLmNvbmZpZ3VyZShkZWZhdWx0T3B0aW9ucyk7XG5cdH1cblxuXHRwdWJsaWMgY29uZmlndXJlPFQgZXh0ZW5kcyBzdHJpbmcgPSBuZXZlciwgQ3VzdG9tT25seSBleHRlbmRzIHRydWUgfCBmYWxzZSA9IGZhbHNlPihcblx0XHRjb25maWdPcHRpb25zOiBMb2dnZXJGYWN0b3J5T3B0aW9uczxULCBDdXN0b21Pbmx5Pixcblx0KTogKG5hbWU/OiBzdHJpbmcpID0+IExvZ2dlcjxULCBDdXN0b21Pbmx5PiB7XG5cdFx0Y29uc3QgeyBhZGFwdGVyLCBvcHRpb25zIH0gPSBjb25maWdPcHRpb25zO1xuXHRcdGNvbnN0IHByZXZpb3VzID0gdGhpcy5sb2dnZXJQcm92aWRlcjtcblx0XHR0aGlzLmxvZ2dlclByb3ZpZGVyID0gYWRhcHRlcjtcblx0XHRjb25zdCBkZWZhdWx0c0FuZE9wdGlvbnMgPSB0aGlzLm1lcmdlRGVmYXVsdHM8VCwgQ3VzdG9tT25seT4ob3B0aW9ucyk7XG5cdFx0YWRhcHRlci5jb25maWd1cmUoZGVmYXVsdHNBbmRPcHRpb25zKTtcblx0XHRpZiAocHJldmlvdXMgIT09IGFkYXB0ZXIpIHtcblx0XHRcdHZvaWQgcHJldmlvdXMuc3RvcCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG5hbWU/OiBzdHJpbmcpID0+IGFkYXB0ZXIuZ2V0TG9nZ2VyKG5hbWUpIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGF3YWl0IHRoaXMubG9nZ2VyUHJvdmlkZXIuc3RvcCgpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIFtTeW1ib2wuYXN5bmNEaXNwb3NlXSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLnN0b3AoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRMb2dnZXI8VCBleHRlbmRzIHN0cmluZyA9IG5ldmVyLCBDdXN0b21Pbmx5IGV4dGVuZHMgdHJ1ZSB8IGZhbHNlID0gZmFsc2U+KFxuXHRcdG5hbWU/OiBzdHJpbmcsXG5cdFx0Y3VzdG9tTGV2ZWxzPzoge1xuXHRcdFx0W2xldmVsIGluIFRdOiBudW1iZXI7XG5cdFx0fSxcblx0KTogTG9nZ2VyPFQsIEN1c3RvbU9ubHk+IHtcblx0XHQvLyBJZiBjdXN0b20gbGV2ZWxzIGFyZSBwcm92aWRlZCwgd2UgbmVlZCB0byByZWNvbmZpZ3VyZSB0aGUgYWRhcHRlclxuXHRcdGlmIChjdXN0b21MZXZlbHMpIHtcblx0XHRcdGNvbnN0IGN1cnJlbnRPcHRpb25zID0gdGhpcy5tZXJnZURlZmF1bHRzKHsgY3VzdG9tTGV2ZWxzIH0pO1xuXHRcdFx0dGhpcy5sb2dnZXJQcm92aWRlci5jb25maWd1cmUoY3VycmVudE9wdGlvbnMpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGxvZ2dlciA9IHRoaXMubG9nZ2VyUHJvdmlkZXIuZ2V0TG9nZ2VyKG5hbWUpIGFzIExvZ2dlcjxULCBDdXN0b21Pbmx5Pjtcblx0XHR0aGlzLnN1cHBvcnRzTGV2ZWxzKGN1c3RvbUxldmVscywgbG9nZ2VyKTtcblx0XHRyZXR1cm4gbG9nZ2VyO1xuXHR9XG5cblx0cHJpdmF0ZSBzdXBwb3J0c0xldmVsczxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlID0gdW5kZWZpbmVkPihcblx0XHRjdXN0b21MZXZlbHM6IHtcblx0XHRcdFtsZXZlbCBpbiBUXTogbnVtYmVyO1xuXHRcdH0sXG5cdFx0bG9nZ2VyOiBMb2dnZXI8VCwgQ3VzdG9tT25seT4sXG5cdCkge1xuXHRcdGlmICghY3VzdG9tTGV2ZWxzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWlzc2luZ0xldmVsID0gT2JqZWN0LmVudHJpZXMoY3VzdG9tTGV2ZWxzKS5maW5kKFxuXHRcdFx0KGtleSkgPT4gIWxvZ2dlci5sb2dMZXZlbHNba2V5LmF0KDApLnRvU3RyaW5nKCldLFxuXHRcdCk7XG5cblx0XHRpZiAobWlzc2luZ0xldmVsICE9IG51bGwpIHtcblx0XHRcdHRocm93IG5ldyBMb2dnaW5nQ29uZmlndXJhdGlvbkVycm9yKFxuXHRcdFx0XHRgQ3VycmVudCBsb2dnZXIgd2FzIG5vdCBjb25maWd1cmVkIGZvciBjdXN0b20gbGV2ZWwgJHttaXNzaW5nTGV2ZWx9LCB2YWxpZCBsZXZlbHMgYXJlOiAke0pTT04uc3RyaW5naWZ5KGxvZ2dlci5sb2dMZXZlbHMpfWAsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4geyBtaXNzaW5nTGV2ZWwgfTtcblx0fVxuXG5cdHByaXZhdGUgbWVyZ2VEZWZhdWx0czxUIGV4dGVuZHMgc3RyaW5nID0gbmV2ZXIsIEN1c3RvbU9ubHkgZXh0ZW5kcyB0cnVlIHwgZmFsc2UgPSBmYWxzZT4oXG5cdFx0b3B0aW9ucz86IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4sXG5cdCk6IFNjcmliZU9wdGlvbnM8VCwgQ3VzdG9tT25seT4ge1xuXHRcdGNvbnN0IGxvZ0xldmVsID0gcmVzb2x2ZUxvZ0xldmVsKG9wdGlvbnM/LmxvZ0xldmVsKSA/PyBEZWZhdWx0TG9nTGV2ZWw7XG5cdFx0cmV0dXJuIHsgbG9nTGV2ZWwsIHJlZGFjdGlvbnM6IERlZmF1bHRSZWRhY3Rpb25zLCAuLi5vcHRpb25zIH07XG5cdH1cbn1cbiJdLCJuYW1lcyI6WyJDb25zb2xlQWRhcHRlciIsInJlc29sdmVMb2dMZXZlbCIsIkxvZ2dpbmdDb25maWd1cmF0aW9uRXJyb3IiLCJEZWZhdWx0TG9nTGV2ZWwiLCJEZWZhdWx0UmVkYWN0aW9ucyIsInNjcmliZSIsImxvZ2dlclByb3ZpZGVyIiwiaW5zdGFuY2UiLCJsb2dnZXIiLCJuYW1lIiwiY3VzdG9tTGV2ZWxzIiwiZ2V0TG9nZ2VyIiwiY29uZmlndXJlIiwiY29uZmlnT3B0aW9ucyIsInByZXZpb3VzIiwiZmFjdG9yeSIsInN0b3AiLCJmbHVzaCIsImNiIiwiZGVmYXVsdE9wdGlvbnMiLCJtZXJnZURlZmF1bHRzIiwiYWRhcHRlciIsIm9wdGlvbnMiLCJkZWZhdWx0c0FuZE9wdGlvbnMiLCJTeW1ib2wiLCJhc3luY0Rpc3Bvc2UiLCJjdXJyZW50T3B0aW9ucyIsInN1cHBvcnRzTGV2ZWxzIiwibWlzc2luZ0xldmVsIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbmQiLCJrZXkiLCJsb2dMZXZlbHMiLCJhdCIsInRvU3RyaW5nIiwiSlNPTiIsInN0cmluZ2lmeSIsImxvZ0xldmVsIiwicmVkYWN0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsY0FBYyxRQUFRLHVCQUF1QjtBQUN0RCxTQUFTQyxlQUFlLFFBQVEsV0FBVztBQUMzQyxTQUFTQyx5QkFBeUIsUUFBUSxjQUFjO0FBR3hELFNBQVNDLGVBQWUsRUFBRUMsaUJBQWlCLFFBQTRCLGFBQWE7QUFVcEYsT0FBTyxNQUFNQztJQUNKQyxlQUE4QjtJQUN0QyxPQUFlQyxXQUFtQixJQUFJRixTQUFTO0lBRS9DLE9BQWNHLE9BQ2JDLElBQWEsRUFDYkMsWUFFQyxFQUN1QjtRQUN4QixPQUFPTCxPQUFPRSxRQUFRLENBQUNJLFNBQVMsQ0FBZ0JGLE1BQU1DO0lBSXZEO0lBRUEsT0FBY0UsVUFDYkMsYUFBa0QsRUFDakQ7UUFDRCxNQUFNQyxXQUFXVCxPQUFPRSxRQUFRO1FBQ2hDRixPQUFPRSxRQUFRLEdBQUcsSUFBSUY7UUFDdEIsTUFBTVUsVUFBVVYsT0FBT0UsUUFBUSxDQUFDSyxTQUFTLENBQWdCQztRQUN6RCwwRUFBMEU7UUFDMUUsNEVBQTRFO1FBQzVFLEtBQUtDLFNBQVNFLElBQUk7UUFDbEIsT0FBT0Q7SUFDUjtJQUVBLE9BQWNFLE1BQU1DLEVBQWUsRUFBUTtRQUMxQ2IsT0FBT0UsUUFBUSxDQUFDRCxjQUFjLENBQUNXLEtBQUssQ0FBQ0M7SUFDdEM7SUFFQSxpRUFBaUUsR0FDakUsYUFBb0JGLE9BQXNCO1FBQ3pDLE1BQU1YLE9BQU9FLFFBQVEsQ0FBQ1MsSUFBSTtJQUMzQjtJQUVBLGFBQXFCO1FBQ3BCLDBDQUEwQztRQUMxQyxJQUFJLENBQUNWLGNBQWMsR0FBRyxJQUFJTjtRQUMxQixNQUFNbUIsaUJBQWlCLElBQUksQ0FBQ0MsYUFBYTtRQUN6QyxJQUFJLENBQUNkLGNBQWMsQ0FBQ00sU0FBUyxDQUFDTztJQUMvQjtJQUVPUCxVQUNOQyxhQUFrRCxFQUNQO1FBQzNDLE1BQU0sRUFBRVEsT0FBTyxFQUFFQyxPQUFPLEVBQUUsR0FBR1Q7UUFDN0IsTUFBTUMsV0FBVyxJQUFJLENBQUNSLGNBQWM7UUFDcEMsSUFBSSxDQUFDQSxjQUFjLEdBQUdlO1FBQ3RCLE1BQU1FLHFCQUFxQixJQUFJLENBQUNILGFBQWEsQ0FBZ0JFO1FBQzdERCxRQUFRVCxTQUFTLENBQUNXO1FBQ2xCLElBQUlULGFBQWFPLFNBQVM7WUFDekIsS0FBS1AsU0FBU0UsSUFBSTtRQUNuQjtRQUNBLE9BQU8sQ0FBQ1AsT0FBa0JZLFFBQVFWLFNBQVMsQ0FBQ0Y7SUFDN0M7SUFFQSxNQUFhTyxPQUFzQjtRQUNsQyxNQUFNLElBQUksQ0FBQ1YsY0FBYyxDQUFDVSxJQUFJO0lBQy9CO0lBRUEsTUFBYSxDQUFDUSxPQUFPQyxZQUFZLENBQUMsR0FBa0I7UUFDbkQsTUFBTSxJQUFJLENBQUNULElBQUk7SUFDaEI7SUFFT0wsVUFDTkYsSUFBYSxFQUNiQyxZQUVDLEVBQ3VCO1FBQ3hCLG9FQUFvRTtRQUNwRSxJQUFJQSxjQUFjO1lBQ2pCLE1BQU1nQixpQkFBaUIsSUFBSSxDQUFDTixhQUFhLENBQUM7Z0JBQUVWO1lBQWE7WUFDekQsSUFBSSxDQUFDSixjQUFjLENBQUNNLFNBQVMsQ0FBQ2M7UUFDL0I7UUFFQSxNQUFNbEIsU0FBUyxJQUFJLENBQUNGLGNBQWMsQ0FBQ0ssU0FBUyxDQUFDRjtRQUM3QyxJQUFJLENBQUNrQixjQUFjLENBQUNqQixjQUFjRjtRQUNsQyxPQUFPQTtJQUNSO0lBRVFtQixlQUNQakIsWUFFQyxFQUNERixNQUE2QixFQUM1QjtRQUNELElBQUksQ0FBQ0UsY0FBYztZQUNsQjtRQUNEO1FBRUEsTUFBTWtCLGVBQWVDLE9BQU9DLE9BQU8sQ0FBQ3BCLGNBQWNxQixJQUFJLENBQ3JELENBQUNDLE1BQVEsQ0FBQ3hCLE9BQU95QixTQUFTLENBQUNELElBQUlFLEVBQUUsQ0FBQyxHQUFHQyxRQUFRLEdBQUc7UUFHakQsSUFBSVAsZ0JBQWdCLE1BQU07WUFDekIsTUFBTSxJQUFJMUIsMEJBQ1QsQ0FBQyxtREFBbUQsRUFBRTBCLGFBQWEsb0JBQW9CLEVBQUVRLEtBQUtDLFNBQVMsQ0FBQzdCLE9BQU95QixTQUFTLEdBQUc7UUFFN0g7UUFDQSxPQUFPO1lBQUVMO1FBQWE7SUFDdkI7SUFFUVIsY0FDUEUsT0FBc0MsRUFDUDtRQUMvQixNQUFNZ0IsV0FBV3JDLGdCQUFnQnFCLFNBQVNnQixhQUFhbkM7UUFDdkQsT0FBTztZQUFFbUM7WUFBVUMsWUFBWW5DO1lBQW1CLEdBQUdrQixPQUFPO1FBQUM7SUFDOUQ7QUFDRCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decohere/scribe",
3
- "version": "0.0.1-dev.68",
3
+ "version": "0.0.1-dev.69",
4
4
  "description": "Structured logging interface with pluggable adapters",
5
5
  "keywords": [
6
6
  "typescript",
@@ -1,15 +1,22 @@
1
1
  import type { Logger } from "./logger.type.js";
2
2
  import { type ScribeOptions } from "./types.js";
3
3
  export declare function formatError(err: Error): string;
4
- export interface LoggerAdapter {
4
+ export interface LoggerAdapter extends AsyncDisposable {
5
5
  configure<T extends string = never, CustomOnly extends true | false = false>(options: ScribeOptions<T, CustomOnly>): any;
6
6
  getLogger<T extends string = never, CustomOnly extends true | false = false>(name: string): Logger<T, CustomOnly>;
7
7
  flush(cb?: () => void): void;
8
+ /**
9
+ * Drain buffered output and release unmanaged handles (workers, fds).
10
+ * Idempotent — safe to call more than once.
11
+ */
12
+ stop(): Promise<void>;
8
13
  }
9
14
  export declare abstract class LogAdapter implements LoggerAdapter {
10
15
  abstract configure<T extends string = never, CustomOnly extends true | false = false>(options: ScribeOptions<T, CustomOnly>): any;
11
16
  abstract getLogger<T extends string = never, CustomOnly extends true | false = false>(name: string): Logger<T, CustomOnly>;
12
17
  flush(cb?: () => void): void;
18
+ stop(): Promise<void>;
19
+ [Symbol.asyncDispose](): Promise<void>;
13
20
  protected getLogLevels(options: ScribeOptions<any, any>): Record<string, number>;
14
21
  protected getUniqueLevels(defaultLevels: Record<string, number>, customLevels: Record<string, number>): [string, number][];
15
22
  }
@@ -5,7 +5,7 @@ type LoggerFactoryOptions<T extends string = never, CustomOnly extends true | fa
5
5
  options?: ScribeOptions<T, CustomOnly>;
6
6
  adapter: LoggerAdapter;
7
7
  };
8
- export declare class scribe {
8
+ export declare class scribe implements AsyncDisposable {
9
9
  private loggerProvider;
10
10
  private static instance;
11
11
  static logger<T extends string = never, CustomOnly extends true | false = false>(name?: string, customLevels?: {
@@ -13,8 +13,12 @@ export declare class scribe {
13
13
  }): Logger<T, CustomOnly>;
14
14
  static configure<T extends string = never, CustomOnly extends true | false = false>(configOptions: LoggerFactoryOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
15
15
  static flush(cb?: () => void): void;
16
+ /** Drain the active adapter and release workers / destinations. */
17
+ static stop(): Promise<void>;
16
18
  constructor();
17
19
  configure<T extends string = never, CustomOnly extends true | false = false>(configOptions: LoggerFactoryOptions<T, CustomOnly>): (name?: string) => Logger<T, CustomOnly>;
20
+ stop(): Promise<void>;
21
+ [Symbol.asyncDispose](): Promise<void>;
18
22
  getLogger<T extends string = never, CustomOnly extends true | false = false>(name?: string, customLevels?: {
19
23
  [level in T]: number;
20
24
  }): Logger<T, CustomOnly>;