@skilbjo/logger 1.0.49 → 1.0.51

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.
Files changed (2) hide show
  1. package/package.json +10 -12
  2. package/pino.js +11 -11
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.49",
4
+ "version": "1.0.51",
5
5
  "main": "index.js",
6
6
  "type": "module",
7
7
  "typings": "index.d.ts",
@@ -27,30 +27,28 @@
27
27
  "test": "node --test",
28
28
  "build": "tsgo -p tsconfig.build.json",
29
29
  "postbuild": "node -e \"const f=require('fs'),{dirname,join,relative}=require('path'),p=JSON.parse(f.readFileSync('package.json','utf8'));delete p.files;p.imports=Object.fromEntries(Object.entries(p.imports??{}).filter(([,v])=>typeof v==='object'&&v!==null).map(([k,v])=>[k,Object.fromEntries(Object.entries(v).filter(([c])=>c!=='node').map(([c,s])=>{const x=s.replace('./dist/','./').replace('./src/','./');return[c,x.endsWith('.ts')?x.slice(0,-3)+'.d.ts':x]}))]));f.writeFileSync('dist/package.json',JSON.stringify(p,null,2));function fix(dir,root){for(const e of f.readdirSync(dir,{withFileTypes:true})){const fp=join(dir,e.name);if(e.isDirectory())fix(fp,root);else if(fp.endsWith('.js')||fp.endsWith('.d.ts')){const o=f.readFileSync(fp,'utf8'),u=o.replace(/from '#src\\/([^']+)'/g,(_,m)=>{const t=join(root,m);let r=relative(dirname(fp),t);if(!r.startsWith('.'))r='./'+r;return\\`from '\\${r}'\\`});if(o!==u)f.writeFileSync(fp,u)}}}fix('dist','dist')\"",
30
- "prepare-npm": "jq 'del(.publishConfig, .files) | . + { publishConfig: { registry: \"https://registry.npmjs.org/\", access: \"public\", provenance: true } }' package.json >package2.json && mv package2.json dist/package.json"
30
+ "prepare-npm": "jq 'del(.publishConfig) | . + { publishConfig: { registry: \"https://registry.npmjs.org/\", access: \"public\", provenance: true } }' dist/package.json >package2.json && mv package2.json dist/package.json"
31
31
  },
32
32
  "dependencies": {
33
33
  "pino": "10.3.1",
34
34
  "winston": "3.19.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@commitlint/cli": "20.5.2",
38
- "@commitlint/config-angular": "20.5.0",
39
- "@skilbjo/config-rc": "1.0.55",
37
+ "@commitlint/cli": "20.5.3",
38
+ "@commitlint/config-angular": "20.5.3",
39
+ "@skilbjo/config-rc": "1.0.56",
40
40
  "@types/http-errors": "2.0.5",
41
41
  "depcheck": "1.4.7",
42
- "eslint": "10.2.1",
42
+ "eslint": "10.3.0",
43
43
  "http-errors": "2.0.1",
44
44
  "husky": "9.1.7",
45
- "@typescript/native-preview": "7.0.0-dev.20260426.1"
45
+ "@typescript/native-preview": "7.0.0-dev.20260502.1"
46
46
  },
47
47
  "imports": {
48
48
  "#src/*.js": {
49
- "node": "./src/*.ts",
50
- "import": "./dist/*.js",
51
- "types": "./src/*.ts"
52
- },
53
- "#test/*.js": "./test/*.ts"
49
+ "import": "./*.js",
50
+ "types": "./*.d.ts"
51
+ }
54
52
  },
55
53
  "exports": {
56
54
  ".": {
package/pino.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import pino from 'pino';
2
2
  export const mixin = () => ({
3
- lambdaName: process.env.AWS_LAMBDA_FUNCTION_NAME,
4
- logGroup: process.env.AWS_LAMBDA_LOG_GROUP_NAME,
5
- logStream: process.env.AWS_LAMBDA_LOG_STREAM_NAME,
6
- requestId: process.env._X_AMZN_REQUEST_ID,
7
- xRayTraceId: process.env._X_AMZN_TRACE_ID,
3
+ lambdaName: process.env['AWS_LAMBDA_FUNCTION_NAME'],
4
+ logGroup: process.env['AWS_LAMBDA_LOG_GROUP_NAME'],
5
+ logStream: process.env['AWS_LAMBDA_LOG_STREAM_NAME'],
6
+ requestId: process.env['_X_AMZN_REQUEST_ID'],
7
+ xRayTraceId: process.env['_X_AMZN_TRACE_ID'],
8
8
  });
9
9
  export const create = (options, stream) => {
10
10
  const pinoLogger = pino({
@@ -13,11 +13,11 @@ export const create = (options, stream) => {
13
13
  level: (level) => ({ level }),
14
14
  },
15
15
  mixin: () => ({
16
- lambdaName: process.env.AWS_LAMBDA_FUNCTION_NAME,
17
- logGroup: process.env.AWS_LAMBDA_LOG_GROUP_NAME,
18
- logStream: process.env.AWS_LAMBDA_LOG_STREAM_NAME,
19
- requestId: process.env._X_AMZN_REQUEST_ID,
20
- xRayTraceId: process.env._X_AMZN_TRACE_ID,
16
+ lambdaName: process.env['AWS_LAMBDA_FUNCTION_NAME'],
17
+ logGroup: process.env['AWS_LAMBDA_LOG_GROUP_NAME'],
18
+ logStream: process.env['AWS_LAMBDA_LOG_STREAM_NAME'],
19
+ requestId: process.env['_X_AMZN_REQUEST_ID'],
20
+ xRayTraceId: process.env['_X_AMZN_TRACE_ID'],
21
21
  }),
22
22
  timestamp: pino.stdTimeFunctions.isoTime,
23
23
  ...options,
@@ -32,4 +32,4 @@ export const create = (options, stream) => {
32
32
  warn: pinoLogger.warn.bind(pinoLogger),
33
33
  };
34
34
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waW5vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQXFCeEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtJQUNoRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUI7SUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCO0lBQ2pELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtJQUN6QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Q0FDMUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQ3BCLE9BQXVCLEVBQ3ZCLE1BQTJCLEVBQ25CLEVBQUU7SUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQ3JCO1FBQ0UsVUFBVSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEdBQTRCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU3QyxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQTJCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDL0Q7UUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNaLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtZQUNoRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUI7WUFDL0MsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCO1lBQ2pELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtZQUN6QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7U0FDMUMsQ0FBQztRQUNGLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTztRQUN4QyxHQUFHLE9BQU87S0FDWCxFQUNELE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUN6QixDQUFDO0lBRUYsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDeEMsS0FBSyxFQUFFLENBQUMsTUFBc0IsRUFBRSxPQUFlLEVBQVEsRUFBRSxDQUN2RCxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDaEUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsQ0FBQyxLQUFZLEVBQW1CLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztLQUN2QyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBpbm8gZnJvbSAncGlubyc7XG5pbXBvcnQgdHlwZSB7IExvZ2dlck9wdGlvbnMsIFNlcmlhbGl6ZWRFcnJvciB9IGZyb20gJ3Bpbm8nO1xuXG5leHBvcnQgdHlwZSBMb2dnZXIgPSB7XG4gIGRlYnVnOiBMb2dGbjtcbiAgZXJyb3I6IEVycm9yTG9nRm47XG4gIGluZm86IExvZ0ZuO1xuICB1dGlsOiB7XG4gICAgc2VyaWFsaXplOiAoYXJnMDogRXJyb3IpID0+IFNlcmlhbGl6ZWRFcnJvcjsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICB9O1xuICB3YXJuOiBMb2dGbjtcbn07XG5cbmV4cG9ydCB0eXBlIExvZ0xldmVscyA9ICdkZWJ1ZycgfCAnZXJyb3InIHwgJ2ZhdGFsJyB8ICdpbmZvJyB8ICd0cmFjZScgfCAnd2Fybic7XG50eXBlIEVycm9yTG9nRm4gPSAoXG4gIGFyZzA6IHsgZXJyOiBFcnJvciB9ICYgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4sIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgYXJnMTogc3RyaW5nIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcbikgPT4gdm9pZDtcblxudHlwZSBMb2dGbiA9IChhcmcwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgYXJnMTogc3RyaW5nKSA9PiB2b2lkOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG5cbmV4cG9ydCBjb25zdCBtaXhpbiA9ICgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoe1xuICBsYW1iZGFOYW1lOiBwcm9jZXNzLmVudi5BV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUsXG4gIGxvZ0dyb3VwOiBwcm9jZXNzLmVudi5BV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FLFxuICBsb2dTdHJlYW06IHByb2Nlc3MuZW52LkFXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FLFxuICByZXF1ZXN0SWQ6IHByb2Nlc3MuZW52Ll9YX0FNWk5fUkVRVUVTVF9JRCxcbiAgeFJheVRyYWNlSWQ6IHByb2Nlc3MuZW52Ll9YX0FNWk5fVFJBQ0VfSUQsXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IChcbiAgb3B0aW9ucz86IExvZ2dlck9wdGlvbnMsXG4gIHN0cmVhbT86IE5vZGVKUy5Xcml0ZVN0cmVhbVxuKTogTG9nZ2VyID0+IHtcbiAgY29uc3QgcGlub0xvZ2dlciA9IHBpbm8oXG4gICAge1xuICAgICAgZm9ybWF0dGVyczoge1xuICAgICAgICBiaW5kaW5nczogKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICh7fSksXG5cbiAgICAgICAgbGV2ZWw6IChsZXZlbDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHsgbGV2ZWwgfSksXG4gICAgICB9LFxuICAgICAgbWl4aW46ICgpID0+ICh7XG4gICAgICAgIGxhbWJkYU5hbWU6IHByb2Nlc3MuZW52LkFXU19MQU1CREFfRlVOQ1RJT05fTkFNRSxcbiAgICAgICAgbG9nR3JvdXA6IHByb2Nlc3MuZW52LkFXU19MQU1CREFfTE9HX0dST1VQX05BTUUsXG4gICAgICAgIGxvZ1N0cmVhbTogcHJvY2Vzcy5lbnYuQVdTX0xBTUJEQV9MT0dfU1RSRUFNX05BTUUsXG4gICAgICAgIHJlcXVlc3RJZDogcHJvY2Vzcy5lbnYuX1hfQU1aTl9SRVFVRVNUX0lELFxuICAgICAgICB4UmF5VHJhY2VJZDogcHJvY2Vzcy5lbnYuX1hfQU1aTl9UUkFDRV9JRCxcbiAgICAgIH0pLFxuICAgICAgdGltZXN0YW1wOiBwaW5vLnN0ZFRpbWVGdW5jdGlvbnMuaXNvVGltZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSxcbiAgICBzdHJlYW0gfHwgcHJvY2Vzcy5zdGRvdXRcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIGRlYnVnOiBwaW5vTG9nZ2VyLmRlYnVnLmJpbmQocGlub0xvZ2dlciksXG4gICAgZXJyb3I6IChvYmplY3Q6IHsgZXJyOiBFcnJvciB9LCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkID0+XG4gICAgICBwaW5vTG9nZ2VyLmVycm9yKHBpbm8uc3RkU2VyaWFsaXplcnMuZXJyKG9iamVjdC5lcnIpLCBtZXNzYWdlKSxcbiAgICBpbmZvOiBwaW5vTG9nZ2VyLmluZm8uYmluZChwaW5vTG9nZ2VyKSxcbiAgICB1dGlsOiB7XG4gICAgICBzZXJpYWxpemU6IChlcnJvcjogRXJyb3IpOiBTZXJpYWxpemVkRXJyb3IgPT5cbiAgICAgICAgcGluby5zdGRTZXJpYWxpemVycy5lcnIoZXJyb3IpLFxuICAgIH0sXG4gICAgd2FybjogcGlub0xvZ2dlci53YXJuLmJpbmQocGlub0xvZ2dlciksXG4gIH07XG59O1xuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waW5vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQXFCeEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQTRCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO0lBQ25ELFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO0lBQ2xELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDO0lBQ3BELFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO0lBQzVDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0NBQzdDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUNwQixPQUF1QixFQUN2QixNQUEyQixFQUNuQixFQUFFO0lBQ1YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUNyQjtRQUNFLFVBQVUsRUFBRTtZQUNWLFFBQVEsRUFBRSxHQUE0QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsS0FBSyxFQUFFLENBQUMsS0FBYSxFQUEyQixFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQy9EO1FBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDWixVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztZQUNuRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQztZQUNsRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQztZQUNwRCxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQztZQUM1QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztTQUM3QyxDQUFDO1FBQ0YsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPO1FBQ3hDLEdBQUcsT0FBTztLQUNYLEVBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQ3pCLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN4QyxLQUFLLEVBQUUsQ0FBQyxNQUFzQixFQUFFLE9BQWUsRUFBUSxFQUFFLENBQ3ZELFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUNoRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RDLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxDQUFDLEtBQVksRUFBbUIsRUFBRSxDQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDakM7UUFDRCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0tBQ3ZDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGlubyBmcm9tICdwaW5vJztcbmltcG9ydCB0eXBlIHsgTG9nZ2VyT3B0aW9ucywgU2VyaWFsaXplZEVycm9yIH0gZnJvbSAncGlubyc7XG5cbmV4cG9ydCB0eXBlIExvZ2dlciA9IHtcbiAgZGVidWc6IExvZ0ZuO1xuICBlcnJvcjogRXJyb3JMb2dGbjtcbiAgaW5mbzogTG9nRm47XG4gIHV0aWw6IHtcbiAgICBzZXJpYWxpemU6IChhcmcwOiBFcnJvcikgPT4gU2VyaWFsaXplZEVycm9yOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzXG4gIH07XG4gIHdhcm46IExvZ0ZuO1xufTtcblxuZXhwb3J0IHR5cGUgTG9nTGV2ZWxzID0gJ2RlYnVnJyB8ICdlcnJvcicgfCAnZmF0YWwnIHwgJ2luZm8nIHwgJ3RyYWNlJyB8ICd3YXJuJztcbnR5cGUgRXJyb3JMb2dGbiA9IChcbiAgYXJnMDogeyBlcnI6IEVycm9yIH0gJiBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuICBhcmcxOiBzdHJpbmcgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bnVzZWQtdmFyc1xuKSA9PiB2b2lkO1xuXG50eXBlIExvZ0ZuID0gKGFyZzA6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBhcmcxOiBzdHJpbmcpID0+IHZvaWQ7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnNcblxuZXhwb3J0IGNvbnN0IG1peGluID0gKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0+ICh7XG4gIGxhbWJkYU5hbWU6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0ZVTkNUSU9OX05BTUUnXSxcbiAgbG9nR3JvdXA6IHByb2Nlc3MuZW52WydBV1NfTEFNQkRBX0xPR19HUk9VUF9OQU1FJ10sXG4gIGxvZ1N0cmVhbTogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfTE9HX1NUUkVBTV9OQU1FJ10sXG4gIHJlcXVlc3RJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fUkVRVUVTVF9JRCddLFxuICB4UmF5VHJhY2VJZDogcHJvY2Vzcy5lbnZbJ19YX0FNWk5fVFJBQ0VfSUQnXSxcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlID0gKFxuICBvcHRpb25zPzogTG9nZ2VyT3B0aW9ucyxcbiAgc3RyZWFtPzogTm9kZUpTLldyaXRlU3RyZWFtXG4pOiBMb2dnZXIgPT4ge1xuICBjb25zdCBwaW5vTG9nZ2VyID0gcGlubyhcbiAgICB7XG4gICAgICBmb3JtYXR0ZXJzOiB7XG4gICAgICAgIGJpbmRpbmdzOiAoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKHt9KSxcblxuICAgICAgICBsZXZlbDogKGxldmVsOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PiAoeyBsZXZlbCB9KSxcbiAgICAgIH0sXG4gICAgICBtaXhpbjogKCkgPT4gKHtcbiAgICAgICAgbGFtYmRhTmFtZTogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfRlVOQ1RJT05fTkFNRSddLFxuICAgICAgICBsb2dHcm91cDogcHJvY2Vzcy5lbnZbJ0FXU19MQU1CREFfTE9HX0dST1VQX05BTUUnXSxcbiAgICAgICAgbG9nU3RyZWFtOiBwcm9jZXNzLmVudlsnQVdTX0xBTUJEQV9MT0dfU1RSRUFNX05BTUUnXSxcbiAgICAgICAgcmVxdWVzdElkOiBwcm9jZXNzLmVudlsnX1hfQU1aTl9SRVFVRVNUX0lEJ10sXG4gICAgICAgIHhSYXlUcmFjZUlkOiBwcm9jZXNzLmVudlsnX1hfQU1aTl9UUkFDRV9JRCddLFxuICAgICAgfSksXG4gICAgICB0aW1lc3RhbXA6IHBpbm8uc3RkVGltZUZ1bmN0aW9ucy5pc29UaW1lLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9LFxuICAgIHN0cmVhbSB8fCBwcm9jZXNzLnN0ZG91dFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgZGVidWc6IHBpbm9Mb2dnZXIuZGVidWcuYmluZChwaW5vTG9nZ2VyKSxcbiAgICBlcnJvcjogKG9iamVjdDogeyBlcnI6IEVycm9yIH0sIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQgPT5cbiAgICAgIHBpbm9Mb2dnZXIuZXJyb3IocGluby5zdGRTZXJpYWxpemVycy5lcnIob2JqZWN0LmVyciksIG1lc3NhZ2UpLFxuICAgIGluZm86IHBpbm9Mb2dnZXIuaW5mby5iaW5kKHBpbm9Mb2dnZXIpLFxuICAgIHV0aWw6IHtcbiAgICAgIHNlcmlhbGl6ZTogKGVycm9yOiBFcnJvcik6IFNlcmlhbGl6ZWRFcnJvciA9PlxuICAgICAgICBwaW5vLnN0ZFNlcmlhbGl6ZXJzLmVycihlcnJvciksXG4gICAgfSxcbiAgICB3YXJuOiBwaW5vTG9nZ2VyLndhcm4uYmluZChwaW5vTG9nZ2VyKSxcbiAgfTtcbn07XG4iXX0=