@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 +4 -4
- package/package.json +6 -6
- package/pino.d.ts +1 -0
- package/pino.js +22 -1
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.
|
|
5
|
-
export const debugLog = pino.
|
|
6
|
-
export const warnLog = pino.
|
|
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,
|
|
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.
|
|
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": "
|
|
38
|
-
"@commitlint/config-angular": "
|
|
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.
|
|
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
|
-
|
|
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==
|