@skilbjo/logger 1.0.51 → 1.0.52

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.
package/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as pino from './pino.js';
2
2
  export * as reversePino from './reverse-pino.js';
3
3
  export { create as reverseCreate, } from './reverse-pino.js';
4
- export const infoLog = pino.create({ level: 'info' });
5
- export const debugLog = pino.create({ level: 'debug' });
6
- export const warnLog = pino.create({ level: 'warn' });
4
+ export const infoLog = pino.lazy({ level: 'info' });
5
+ export const debugLog = pino.lazy({ level: 'debug' });
6
+ export const warnLog = pino.lazy({ level: 'warn' });
7
7
  export const create = pino.create;
8
8
  export const mixin = pino.mixin;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsTUFBTSxJQUFJLGFBQWEsR0FFeEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNyRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVuRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFzQixJQUFJLENBQUMsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGlubyBmcm9tICcjc3JjL3Bpbm8uanMnO1xuXG5leHBvcnQgKiBhcyByZXZlcnNlUGlubyBmcm9tICcjc3JjL3JldmVyc2UtcGluby5qcyc7XG5leHBvcnQge1xuICBjcmVhdGUgYXMgcmV2ZXJzZUNyZWF0ZSxcbiAgdHlwZSBSZXZlcnNlTG9nZ2VyLFxufSBmcm9tICcjc3JjL3JldmVyc2UtcGluby5qcyc7XG5cbmV4cG9ydCBjb25zdCBpbmZvTG9nOiBwaW5vLkxvZ2dlciA9IHBpbm8uY3JlYXRlKHsgbGV2ZWw6ICdpbmZvJyB9KTtcbmV4cG9ydCBjb25zdCBkZWJ1Z0xvZzogcGluby5Mb2dnZXIgPSBwaW5vLmNyZWF0ZSh7IGxldmVsOiAnZGVidWcnIH0pO1xuZXhwb3J0IGNvbnN0IHdhcm5Mb2c6IHBpbm8uTG9nZ2VyID0gcGluby5jcmVhdGUoeyBsZXZlbDogJ3dhcm4nIH0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlOiB0eXBlb2YgcGluby5jcmVhdGUgPSBwaW5vLmNyZWF0ZTtcbmV4cG9ydCBjb25zdCBtaXhpbjogdHlwZW9mIHBpbm8ubWl4aW4gPSBwaW5vLm1peGluO1xuXG5leHBvcnQgdHlwZSBMb2dnZXIgPSBwaW5vLkxvZ2dlcjtcbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9IHBpbm8uTG9nTGV2ZWxzO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxjQUFjLENBQUM7QUFFckMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsTUFBTSxJQUFJLGFBQWEsR0FFeEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNqRSxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNuRSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQXVCLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFzQixJQUFJLENBQUMsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGlubyBmcm9tICcjc3JjL3Bpbm8uanMnO1xuXG5leHBvcnQgKiBhcyByZXZlcnNlUGlubyBmcm9tICcjc3JjL3JldmVyc2UtcGluby5qcyc7XG5leHBvcnQge1xuICBjcmVhdGUgYXMgcmV2ZXJzZUNyZWF0ZSxcbiAgdHlwZSBSZXZlcnNlTG9nZ2VyLFxufSBmcm9tICcjc3JjL3JldmVyc2UtcGluby5qcyc7XG5cbmV4cG9ydCBjb25zdCBpbmZvTG9nOiBwaW5vLkxvZ2dlciA9IHBpbm8ubGF6eSh7IGxldmVsOiAnaW5mbycgfSk7XG5leHBvcnQgY29uc3QgZGVidWdMb2c6IHBpbm8uTG9nZ2VyID0gcGluby5sYXp5KHsgbGV2ZWw6ICdkZWJ1ZycgfSk7XG5leHBvcnQgY29uc3Qgd2FybkxvZzogcGluby5Mb2dnZXIgPSBwaW5vLmxhenkoeyBsZXZlbDogJ3dhcm4nIH0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlOiB0eXBlb2YgcGluby5jcmVhdGUgPSBwaW5vLmNyZWF0ZTtcbmV4cG9ydCBjb25zdCBtaXhpbjogdHlwZW9mIHBpbm8ubWl4aW4gPSBwaW5vLm1peGluO1xuXG5leHBvcnQgdHlwZSBMb2dnZXIgPSBwaW5vLkxvZ2dlcjtcbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9IHBpbm8uTG9nTGV2ZWxzO1xuIl19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@skilbjo/logger",
4
- "version": "1.0.51",
4
+ "version": "1.0.52",
5
5
  "main": "index.js",
6
6
  "type": "module",
7
7
  "typings": "index.d.ts",
@@ -34,15 +34,15 @@
34
34
  "winston": "3.19.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@commitlint/cli": "20.5.3",
38
- "@commitlint/config-angular": "20.5.3",
37
+ "@commitlint/cli": "21.2.1",
38
+ "@commitlint/config-angular": "21.2.0",
39
39
  "@skilbjo/config-rc": "1.0.56",
40
40
  "@types/http-errors": "2.0.5",
41
+ "@typescript/native-preview": "7.0.0-dev.20260707.2",
41
42
  "depcheck": "1.4.7",
42
- "eslint": "10.3.0",
43
+ "eslint": "10.8.0",
43
44
  "http-errors": "2.0.1",
44
- "husky": "9.1.7",
45
- "@typescript/native-preview": "7.0.0-dev.20260502.1"
45
+ "husky": "9.1.7"
46
46
  },
47
47
  "imports": {
48
48
  "#src/*.js": {
package/pino.d.ts CHANGED
@@ -16,4 +16,5 @@ arg1: string) => void;
16
16
  type LogFn = (arg0: Record<string, unknown>, arg1: string) => void;
17
17
  export declare const mixin: () => Record<string, unknown>;
18
18
  export declare const create: (options?: LoggerOptions, stream?: NodeJS.WriteStream) => Logger;
19
+ export declare const lazy: (options?: LoggerOptions) => Logger;
19
20
  export {};
package/pino.js CHANGED
@@ -32,4 +32,25 @@ export const create = (options, stream) => {
32
32
  warn: pinoLogger.warn.bind(pinoLogger),
33
33
  };
34
34
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waW5vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQXFCeEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO0lBQ2xELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3BELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO0lBQzVDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0NBQzdDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixPQUF1QixFQUN2QixNQUEyQixFQUNuQixFQUFFO0lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUNyQjtRQUNFLFVBQVUsRUFBRTtZQUNWLFFBQVEsRUFBRSxHQUE0QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQy9EO1FBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDWixVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztZQUNuRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztZQUNsRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQztZQUNwRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUM3QyxDQUFDO1FBQ0YsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPO1FBQ3hDLEdBQUcsT0FBTztLQUNYLEVBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQ3pCLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN4QyxLQUFLLEVBQUUsQ0FBQyxNQUFzQixFQUFFLE9BQWUsRUFBUSxFQUFFLENBQ3ZELFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUNoRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGlubyBmcm9tICdwaW5vJztcbmltcG9ydCB0eXBlIHsgTG9nZ2VyT3B0aW9ucywgU2VyaWFsaXplZEVycm9yIH0gZnJvbSAncGlubyc7XG5cbmV4cG9ydCB0eXBlIExvZ2dlciA9IHtcbiAgZGVidWc6IExvZ0ZuO1xuICBlcnJvcjogRXJyb3JMb2dGbjtcbiAgaW5mbzogTG9nRm47XG4gIHV0aWw6IHtcbiAgICBzZXJpYWxpemU6IChhcmcwOiBFcnJvcikgPT4gU2VyaWFsaXplZEVycm9yOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIH07XG4gIHdhcm46IExvZ0ZuO1xufTtcblxuZXhwb3J0IHR5cGUgTG9nTGV2ZWxzID0gJ2RlYnVnJyB8ICdlcnJvcicgfCAnZmF0YWwnIHwgJ2luZm8nIHwgJ3RyYWNlJyB8ICd3YXJuJztcbnR5cGUgRXJyb3JMb2dGbiA9IChcbiAgYXJnMDogeyBlcnI6IEVycm9yIH0gJiBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICBhcmcxOiBzdHJpbmcgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuKSA9PiB2b2lkO1xuXG50eXBlIExvZ0ZuID0gKGFyZzA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBhcmcxOiBzdHJpbmcpID0+IHZvaWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblxuZXhwb3J0IGNvbnN0IG1peGluID0gKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICh7XG4gIGxhbWJkYU5hbWU6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUnXSxcbiAgbG9nR3JvdXA6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FJ10sXG4gIGxvZ1N0cmVhbTogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FJ10sXG4gIHJlcXVlc3RJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fUkVRVUVTVF9JRCddLFxuICB4UmF5VHJhY2VJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fVFJBQ0VfSUQnXSxcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlID0gKFxuICBvcHRpb25zPzogTG9nZ2VyT3B0aW9ucyxcbiAgc3RyZWFtPzogTm9kZUpTLldyaXRlU3RyZWFtXG4pOiBMb2dnZXIgPT4ge1xuICBjb25zdCBwaW5vTG9nZ2VyID0gcGlubyhcbiAgICB7XG4gICAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIGJpbmRpbmdzOiAoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHt9KSxcblxuICAgICAgICBsZXZlbDogKGxldmVsOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoeyBsZXZlbCB9KSxcbiAgICAgIH0sXG4gICAgICBtaXhpbjogKCkgPT4gKHtcbiAgICAgICAgbGFtYmRhTmFtZTogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfRlVOQ1RJT05fTkFNRSddLFxuICAgICAgICBsb2dHcm91cDogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfTE9HX0dST1VQX05BTUUnXSxcbiAgICAgICAgbG9nU3RyZWFtOiBwcm9jZXNzLmVudlsnQVdTX0xBTUJEQV9MT0dfU1RSRUFNX05BTUUnXSxcbiAgICAgICAgcmVxdWVzdElkOiBwcm9jZXNzLmVudlsnX1hfQU1aTl9SRVFVRVNUX0lEJ10sXG4gICAgICAgIHhSYXlUcmFjZUlkOiBwcm9jZXNzLmVudlsnX1hfQU1aTl9UUkFDRV9JRCddLFxuICAgICAgfSksXG4gICAgICB0aW1lc3RhbXA6IHBpbm8uc3RkVGltZUZ1bmN0aW9ucy5pc29UaW1lLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9LFxuICAgIHN0cmVhbSB8fCBwcm9jZXNzLnN0ZG91dFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgZGVidWc6IHBpbm9Mb2dnZXIuZGVidWcuYmluZChwaW5vTG9nZ2VyKSxcbiAgICBlcnJvcjogKG9iamVjdDogeyBlcnI6IEVycm9yIH0sIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQgPT5cbiAgICAgIHBpbm9Mb2dnZXIuZXJyb3IocGluby5zdGRTZXJpYWxpemVycy5lcnIob2JqZWN0LmVyciksIG1lc3NhZ2UpLFxuICAgIGluZm86IHBpbm9Mb2dnZXIuaW5mby5iaW5kKHBpbm9Mb2dnZXIpLFxuICAgIHV0aWw6IHtcbiAgICAgIHNlcmlhbGl6ZTogKGVycm9yOiBFcnJvcik6IFNlcmlhbGl6ZWRFcnJvciA9PlxuICAgICAgICBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycihlcnJvciksXG4gICAgfSxcbiAgICB3YXJuOiBwaW5vTG9nZ2VyLndhcm4uYmluZChwaW5vTG9nZ2VyKSxcbiAgfTtcbn07XG4iXX0=
35
+ // `create()` touches `process.stdout` immediately (the default destination
36
+ // when no stream is passed) — calling it at module scope, as the package-level
37
+ // singletons below do, means merely importing this module throws in any
38
+ // bundle built for a non-Node target (e.g. a browser IIFE via esbuild, which
39
+ // unlike webpack doesn't polyfill `process`). Deferring construction to first
40
+ // use means importing the module has no side effects, and consumers that
41
+ // never actually log (e.g. a component's error-path logger) never pay the
42
+ // Node-only cost at all.
43
+ export const lazy = (options) => {
44
+ let instance;
45
+ const get = () => (instance ??= create(options));
46
+ return {
47
+ debug: (...args) => get().debug(...args),
48
+ error: (...args) => get().error(...args),
49
+ info: (...args) => get().info(...args),
50
+ util: {
51
+ serialize: (error) => get().util.serialize(error),
52
+ },
53
+ warn: (...args) => get().warn(...args),
54
+ };
55
+ };
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waW5vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQXFCeEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO0lBQ2xELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3BELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO0lBQzVDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0NBQzdDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixPQUF1QixFQUN2QixNQUEyQixFQUNuQixFQUFFO0lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUNyQjtRQUNFLFVBQVUsRUFBRTtZQUNWLFFBQVEsRUFBRSxHQUE0QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQy9EO1FBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDWixVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztZQUNuRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztZQUNsRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQztZQUNwRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUM3QyxDQUFDO1FBQ0YsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPO1FBQ3hDLEdBQUcsT0FBTztLQUNYLEVBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQ3pCLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN4QyxLQUFLLEVBQUUsQ0FBQyxNQUFzQixFQUFFLE9BQWUsRUFBUSxFQUFFLENBQ3ZELFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUNoRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRiwyRUFBMkU7QUFDM0UsK0VBQStFO0FBQy9FLHdFQUF3RTtBQUN4RSw2RUFBNkU7QUFDN0UsOEVBQThFO0FBQzlFLHlFQUF5RTtBQUN6RSwwRUFBMEU7QUFDMUUseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQXVCLEVBQVUsRUFBRTtJQUN0RCxJQUFJLFFBQTRCLENBQUM7SUFDakMsTUFBTSxHQUFHLEdBQUcsR0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTztRQUNMLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RDLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1NBQzFFO1FBQ0QsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztLQUN2QyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBpbm8gZnJvbSAncGlubyc7XG5pbXBvcnQgdHlwZSB7IExvZ2dlck9wdGlvbnMsIFNlcmlhbGl6ZWRFcnJvciB9IGZyb20gJ3Bpbm8nO1xuXG5leHBvcnQgdHlwZSBMb2dnZXIgPSB7XG4gIGRlYnVnOiBMb2dGbjtcbiAgZXJyb3I6IEVycm9yTG9nRm47XG4gIGluZm86IExvZ0ZuO1xuICB1dGlsOiB7XG4gICAgc2VyaWFsaXplOiAoYXJnMDogRXJyb3IpID0+IFNlcmlhbGl6ZWRFcnJvcjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB9O1xuICB3YXJuOiBMb2dGbjtcbn07XG5cbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9ICdkZWJ1ZycgfCAnZXJyb3InIHwgJ2ZhdGFsJyB8ICdpbmZvJyB8ICd0cmFjZScgfCAnd2Fybic7XG50eXBlIEVycm9yTG9nRm4gPSAoXG4gIGFyZzA6IHsgZXJyOiBFcnJvciB9ICYgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgYXJnMTogc3RyaW5nIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbikgPT4gdm9pZDtcblxudHlwZSBMb2dGbiA9IChhcmcwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgYXJnMTogc3RyaW5nKSA9PiB2b2lkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cbmV4cG9ydCBjb25zdCBtaXhpbiA9ICgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICBsYW1iZGFOYW1lOiBwcm9jZXNzLmVudlsnQVdTX0xBTUJEQV9GVU5DVElPTl9OQU1FJ10sXG4gIGxvZ0dyb3VwOiBwcm9jZXNzLmVudlsnQVdTX0xBTUJEQV9MT0dfR1JPVVBfTkFNRSddLFxuICBsb2dTdHJlYW06IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0xPR19TVFJFQU1fTkFNRSddLFxuICByZXF1ZXN0SWQ6IHByb2Nlc3MuZW52WydfWF9BTVpOX1JFUVVFU1RfSUQnXSxcbiAgeFJheVRyYWNlSWQ6IHByb2Nlc3MuZW52WydfWF9BTVpOX1RSQUNFX0lEJ10sXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IChcbiAgb3B0aW9ucz86IExvZ2dlck9wdGlvbnMsXG4gIHN0cmVhbT86IE5vZGVKUy5Xcml0ZVN0cmVhbVxuKTogTG9nZ2VyID0+IHtcbiAgY29uc3QgcGlub0xvZ2dlciA9IHBpbm8oXG4gICAge1xuICAgICAgZm9ybWF0dGVyczoge1xuICAgICAgICBiaW5kaW5nczogKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICh7fSksXG5cbiAgICAgICAgbGV2ZWw6IChsZXZlbDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHsgbGV2ZWwgfSksXG4gICAgICB9LFxuICAgICAgbWl4aW46ICgpID0+ICh7XG4gICAgICAgIGxhbWJkYU5hbWU6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUnXSxcbiAgICAgICAgbG9nR3JvdXA6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FJ10sXG4gICAgICAgIGxvZ1N0cmVhbTogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FJ10sXG4gICAgICAgIHJlcXVlc3RJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fUkVRVUVTVF9JRCddLFxuICAgICAgICB4UmF5VHJhY2VJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fVFJBQ0VfSUQnXSxcbiAgICAgIH0pLFxuICAgICAgdGltZXN0YW1wOiBwaW5vLnN0ZFRpbWVGdW5jdGlvbnMuaXNvVGltZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSxcbiAgICBzdHJlYW0gfHwgcHJvY2Vzcy5zdGRvdXRcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGRlYnVnOiBwaW5vTG9nZ2VyLmRlYnVnLmJpbmQocGlub0xvZ2dlciksXG4gICAgZXJyb3I6IChvYmplY3Q6IHsgZXJyOiBFcnJvciB9LCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkID0+XG4gICAgICBwaW5vTG9nZ2VyLmVycm9yKHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyKG9iamVjdC5lcnIpLCBtZXNzYWdlKSxcbiAgICBpbmZvOiBwaW5vTG9nZ2VyLmluZm8uYmluZChwaW5vTG9nZ2VyKSxcbiAgICB1dGlsOiB7XG4gICAgICBzZXJpYWxpemU6IChlcnJvcjogRXJyb3IpOiBTZXJpYWxpemVkRXJyb3IgPT5cbiAgICAgICAgcGluby5zdGRTZXJpYWxpemVycy5lcnIoZXJyb3IpLFxuICAgIH0sXG4gICAgd2FybjogcGlub0xvZ2dlci53YXJuLmJpbmQocGlub0xvZ2dlciksXG4gIH07XG59O1xuXG4vLyBgY3JlYXRlKClgIHRvdWNoZXMgYHByb2Nlc3Muc3Rkb3V0YCBpbW1lZGlhdGVseSAodGhlIGRlZmF1bHQgZGVzdGluYXRpb25cbi8vIHdoZW4gbm8gc3RyZWFtIGlzIHBhc3NlZCkg4oCUIGNhbGxpbmcgaXQgYXQgbW9kdWxlIHNjb3BlLCBhcyB0aGUgcGFja2FnZS1sZXZlbFxuLy8gc2luZ2xldG9ucyBiZWxvdyBkbywgbWVhbnMgbWVyZWx5IGltcG9ydGluZyB0aGlzIG1vZHVsZSB0aHJvd3MgaW4gYW55XG4vLyBidW5kbGUgYnVpbHQgZm9yIGEgbm9uLU5vZGUgdGFyZ2V0IChlLmcuIGEgYnJvd3NlciBJSUZFIHZpYSBlc2J1aWxkLCB3aGljaFxuLy8gdW5saWtlIHdlYnBhY2sgZG9lc24ndCBwb2x5ZmlsbCBgcHJvY2Vzc2ApLiBEZWZlcnJpbmcgY29uc3RydWN0aW9uIHRvIGZpcnN0XG4vLyB1c2UgbWVhbnMgaW1wb3J0aW5nIHRoZSBtb2R1bGUgaGFzIG5vIHNpZGUgZWZmZWN0cywgYW5kIGNvbnN1bWVycyB0aGF0XG4vLyBuZXZlciBhY3R1YWxseSBsb2cgKGUuZy4gYSBjb21wb25lbnQncyBlcnJvci1wYXRoIGxvZ2dlcikgbmV2ZXIgcGF5IHRoZVxuLy8gTm9kZS1vbmx5IGNvc3QgYXQgYWxsLlxuZXhwb3J0IGNvbnN0IGxhenkgPSAob3B0aW9ucz86IExvZ2dlck9wdGlvbnMpOiBMb2dnZXIgPT4ge1xuICBsZXQgaW5zdGFuY2U6IExvZ2dlciB8IHVuZGVmaW5lZDtcbiAgY29uc3QgZ2V0ID0gKCk6IExvZ2dlciA9PiAoaW5zdGFuY2UgPz89IGNyZWF0ZShvcHRpb25zKSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkZWJ1ZzogKC4uLmFyZ3MpID0+IGdldCgpLmRlYnVnKC4uLmFyZ3MpLFxuICAgIGVycm9yOiAoLi4uYXJncykgPT4gZ2V0KCkuZXJyb3IoLi4uYXJncyksXG4gICAgaW5mbzogKC4uLmFyZ3MpID0+IGdldCgpLmluZm8oLi4uYXJncyksXG4gICAgdXRpbDoge1xuICAgICAgc2VyaWFsaXplOiAoZXJyb3I6IEVycm9yKTogU2VyaWFsaXplZEVycm9yID0+IGdldCgpLnV0aWwuc2VyaWFsaXplKGVycm9yKSxcbiAgICB9LFxuICAgIHdhcm46ICguLi5hcmdzKSA9PiBnZXQoKS53YXJuKC4uLmFyZ3MpLFxuICB9O1xufTtcbiJdfQ==