@atomic-utils/logger
Version:
1 lines • 19 kB
JSON
{"/Users/matthewblack/code/github.com/AtomicFinance/atomic-utils/packages/logger/lib/transports/sentry-transport.ts":{"path":"/Users/matthewblack/code/github.com/AtomicFinance/atomic-utils/packages/logger/lib/transports/sentry-transport.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":15},"end":{"line":4,"column":52}},"4":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"5":{"start":{"line":6,"column":6},"end":{"line":6,"column":68}},"6":{"start":{"line":6,"column":51},"end":{"line":6,"column":63}},"7":{"start":{"line":8,"column":4},"end":{"line":8,"column":39}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"9":{"start":{"line":10,"column":26},"end":{"line":10,"column":33}},"10":{"start":{"line":11,"column":4},"end":{"line":11,"column":17}},"11":{"start":{"line":13,"column":25},"end":{"line":17,"column":2}},"12":{"start":{"line":14,"column":4},"end":{"line":14,"column":72}},"13":{"start":{"line":16,"column":4},"end":{"line":16,"column":21}},"14":{"start":{"line":18,"column":19},"end":{"line":24,"column":1}},"15":{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},"16":{"start":{"line":19,"column":31},"end":{"line":19,"column":42}},"17":{"start":{"line":20,"column":17},"end":{"line":20,"column":19}},"18":{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},"19":{"start":{"line":21,"column":21},"end":{"line":21,"column":141}},"20":{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},"21":{"start":{"line":21,"column":109},"end":{"line":21,"column":141}},"22":{"start":{"line":22,"column":4},"end":{"line":22,"column":36}},"23":{"start":{"line":23,"column":4},"end":{"line":23,"column":18}},"24":{"start":{"line":25,"column":0},"end":{"line":25,"column":62}},"25":{"start":{"line":26,"column":0},"end":{"line":26,"column":58}},"26":{"start":{"line":27,"column":17},"end":{"line":27,"column":44}},"27":{"start":{"line":28,"column":15},"end":{"line":28,"column":52}},"28":{"start":{"line":33,"column":8},"end":{"line":44,"column":9}},"29":{"start":{"line":34,"column":34},"end":{"line":34,"column":68}},"30":{"start":{"line":35,"column":12},"end":{"line":37,"column":13}},"31":{"start":{"line":36,"column":16},"end":{"line":36,"column":41}},"32":{"start":{"line":41,"column":12},"end":{"line":43,"column":13}},"33":{"start":{"line":42,"column":16},"end":{"line":42,"column":41}},"34":{"start":{"line":45,"column":8},"end":{"line":47,"column":11}},"35":{"start":{"line":46,"column":12},"end":{"line":46,"column":46}},"36":{"start":{"line":52,"column":28},"end":{"line":52,"column":52}},"37":{"start":{"line":53,"column":8},"end":{"line":71,"column":9}},"38":{"start":{"line":55,"column":16},"end":{"line":55,"column":44}},"39":{"start":{"line":56,"column":16},"end":{"line":56,"column":22}},"40":{"start":{"line":58,"column":16},"end":{"line":68,"column":19}},"41":{"start":{"line":59,"column":20},"end":{"line":59,"column":48}},"42":{"start":{"line":61,"column":41},"end":{"line":61,"column":71}},"43":{"start":{"line":62,"column":20},"end":{"line":67,"column":21}},"44":{"start":{"line":63,"column":24},"end":{"line":63,"column":73}},"45":{"start":{"line":66,"column":24},"end":{"line":66,"column":54}},"46":{"start":{"line":69,"column":16},"end":{"line":69,"column":22}},"47":{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},"48":{"start":{"line":75,"column":12},"end":{"line":75,"column":42}},"49":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"50":{"start":{"line":78,"column":12},"end":{"line":78,"column":43}},"51":{"start":{"line":80,"column":8},"end":{"line":80,"column":25}},"52":{"start":{"line":84,"column":27},"end":{"line":84,"column":61}},"53":{"start":{"line":85,"column":8},"end":{"line":88,"column":9}},"54":{"start":{"line":87,"column":12},"end":{"line":87,"column":48}},"55":{"start":{"line":89,"column":8},"end":{"line":89,"column":20}},"56":{"start":{"line":92,"column":0},"end":{"line":92,"column":42}},"57":{"start":{"line":93,"column":0},"end":{"line":93,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":9,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":38},"end":{"line":6,"column":39}},"loc":{"start":{"line":6,"column":49},"end":{"line":6,"column":65}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":6},"end":{"line":9,"column":7}},"loc":{"start":{"line":9,"column":28},"end":{"line":12,"column":1}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":80},"end":{"line":13,"column":81}},"loc":{"start":{"line":13,"column":95},"end":{"line":15,"column":1}},"line":13},"4":{"name":"(anonymous_4)","decl":{"start":{"line":15,"column":5},"end":{"line":15,"column":6}},"loc":{"start":{"line":15,"column":20},"end":{"line":17,"column":1}},"line":15},"5":{"name":"(anonymous_5)","decl":{"start":{"line":18,"column":50},"end":{"line":18,"column":51}},"loc":{"start":{"line":18,"column":65},"end":{"line":24,"column":1}},"line":18},"6":{"name":"(anonymous_6)","decl":{"start":{"line":30,"column":4},"end":{"line":30,"column":5}},"loc":{"start":{"line":30,"column":40},"end":{"line":48,"column":5}},"line":30},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":21},"end":{"line":45,"column":22}},"loc":{"start":{"line":45,"column":30},"end":{"line":47,"column":9}},"line":45},"8":{"name":"(anonymous_8)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":30},"end":{"line":72,"column":5}},"line":49},"9":{"name":"(anonymous_9)","decl":{"start":{"line":58,"column":33},"end":{"line":58,"column":34}},"loc":{"start":{"line":58,"column":44},"end":{"line":68,"column":17}},"line":58},"10":{"name":"(anonymous_10)","decl":{"start":{"line":73,"column":4},"end":{"line":73,"column":5}},"loc":{"start":{"line":73,"column":24},"end":{"line":81,"column":5}},"line":73},"11":{"name":"(anonymous_11)","decl":{"start":{"line":82,"column":4},"end":{"line":82,"column":5}},"loc":{"start":{"line":82,"column":30},"end":{"line":90,"column":5}},"line":82}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":12,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":12,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":12,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":9,"column":1}},{"start":{"line":9,"column":6},"end":{"line":12,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":7,"column":5}},{"start":{"line":5,"column":4},"end":{"line":7,"column":5}}],"line":5},"4":{"loc":{"start":{"line":5,"column":8},"end":{"line":5,"column":85}},"type":"binary-expr","locations":[{"start":{"line":5,"column":8},"end":{"line":5,"column":13}},{"start":{"line":5,"column":18},"end":{"line":5,"column":84}}],"line":5},"5":{"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":84}},"type":"cond-expr","locations":[{"start":{"line":5,"column":34},"end":{"line":5,"column":47}},{"start":{"line":5,"column":50},"end":{"line":5,"column":84}}],"line":5},"6":{"loc":{"start":{"line":5,"column":50},"end":{"line":5,"column":84}},"type":"binary-expr","locations":[{"start":{"line":5,"column":50},"end":{"line":5,"column":63}},{"start":{"line":5,"column":67},"end":{"line":5,"column":84}}],"line":5},"7":{"loc":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},{"start":{"line":10,"column":4},"end":{"line":10,"column":33}}],"line":10},"8":{"loc":{"start":{"line":13,"column":25},"end":{"line":17,"column":2}},"type":"binary-expr","locations":[{"start":{"line":13,"column":26},"end":{"line":13,"column":30}},{"start":{"line":13,"column":34},"end":{"line":13,"column":57}},{"start":{"line":13,"column":63},"end":{"line":17,"column":1}}],"line":13},"9":{"loc":{"start":{"line":13,"column":63},"end":{"line":17,"column":1}},"type":"cond-expr","locations":[{"start":{"line":13,"column":80},"end":{"line":15,"column":1}},{"start":{"line":15,"column":5},"end":{"line":17,"column":1}}],"line":13},"10":{"loc":{"start":{"line":18,"column":19},"end":{"line":24,"column":1}},"type":"binary-expr","locations":[{"start":{"line":18,"column":20},"end":{"line":18,"column":24}},{"start":{"line":18,"column":28},"end":{"line":18,"column":45}},{"start":{"line":18,"column":50},"end":{"line":24,"column":1}}],"line":18},"11":{"loc":{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},"type":"if","locations":[{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},{"start":{"line":19,"column":4},"end":{"line":19,"column":42}}],"line":19},"12":{"loc":{"start":{"line":19,"column":8},"end":{"line":19,"column":29}},"type":"binary-expr","locations":[{"start":{"line":19,"column":8},"end":{"line":19,"column":11}},{"start":{"line":19,"column":15},"end":{"line":19,"column":29}}],"line":19},"13":{"loc":{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":21,"column":141}},{"start":{"line":21,"column":4},"end":{"line":21,"column":141}}],"line":21},"14":{"loc":{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},"type":"if","locations":[{"start":{"line":21,"column":40},"end":{"line":21,"column":141}},{"start":{"line":21,"column":40},"end":{"line":21,"column":141}}],"line":21},"15":{"loc":{"start":{"line":21,"column":44},"end":{"line":21,"column":107}},"type":"binary-expr","locations":[{"start":{"line":21,"column":44},"end":{"line":21,"column":59}},{"start":{"line":21,"column":63},"end":{"line":21,"column":107}}],"line":21},"16":{"loc":{"start":{"line":30,"column":29},"end":{"line":30,"column":38}},"type":"default-arg","locations":[{"start":{"line":30,"column":36},"end":{"line":30,"column":38}}],"line":30},"17":{"loc":{"start":{"line":35,"column":12},"end":{"line":37,"column":13}},"type":"if","locations":[{"start":{"line":35,"column":12},"end":{"line":37,"column":13}},{"start":{"line":35,"column":12},"end":{"line":37,"column":13}}],"line":35},"18":{"loc":{"start":{"line":35,"column":16},"end":{"line":35,"column":45}},"type":"binary-expr","locations":[{"start":{"line":35,"column":16},"end":{"line":35,"column":30}},{"start":{"line":35,"column":34},"end":{"line":35,"column":45}}],"line":35},"19":{"loc":{"start":{"line":41,"column":12},"end":{"line":43,"column":13}},"type":"if","locations":[{"start":{"line":41,"column":12},"end":{"line":43,"column":13}},{"start":{"line":41,"column":12},"end":{"line":43,"column":13}}],"line":41},"20":{"loc":{"start":{"line":53,"column":8},"end":{"line":71,"column":9}},"type":"switch","locations":[{"start":{"line":54,"column":12},"end":{"line":56,"column":22}},{"start":{"line":57,"column":12},"end":{"line":69,"column":22}},{"start":{"line":70,"column":12},"end":{"line":70,"column":20}}],"line":53},"21":{"loc":{"start":{"line":62,"column":20},"end":{"line":67,"column":21}},"type":"if","locations":[{"start":{"line":62,"column":20},"end":{"line":67,"column":21}},{"start":{"line":62,"column":20},"end":{"line":67,"column":21}}],"line":62},"22":{"loc":{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},"type":"if","locations":[{"start":{"line":74,"column":8},"end":{"line":76,"column":9}},{"start":{"line":74,"column":8},"end":{"line":76,"column":9}}],"line":74},"23":{"loc":{"start":{"line":74,"column":12},"end":{"line":74,"column":63}},"type":"binary-expr","locations":[{"start":{"line":74,"column":12},"end":{"line":74,"column":35}},{"start":{"line":74,"column":39},"end":{"line":74,"column":63}}],"line":74},"24":{"loc":{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":79,"column":9}},{"start":{"line":77,"column":8},"end":{"line":79,"column":9}}],"line":77},"25":{"loc":{"start":{"line":77,"column":12},"end":{"line":77,"column":64}},"type":"binary-expr","locations":[{"start":{"line":77,"column":12},"end":{"line":77,"column":35}},{"start":{"line":77,"column":39},"end":{"line":77,"column":64}}],"line":77},"26":{"loc":{"start":{"line":85,"column":8},"end":{"line":88,"column":9}},"type":"if","locations":[{"start":{"line":85,"column":8},"end":{"line":88,"column":9}},{"start":{"line":85,"column":8},"end":{"line":88,"column":9}}],"line":85},"27":{"loc":{"start":{"line":85,"column":12},"end":{"line":85,"column":39}},"type":"binary-expr","locations":[{"start":{"line":85,"column":12},"end":{"line":85,"column":22}},{"start":{"line":85,"column":26},"end":{"line":85,"column":39}}],"line":85}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":1,"12":0,"13":0,"14":1,"15":1,"16":1,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":1,"25":1,"26":1,"27":1,"28":2,"29":2,"30":2,"31":1,"32":0,"33":0,"34":2,"35":0,"36":2,"37":2,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":0,"46":1,"47":2,"48":1,"49":1,"50":1,"51":0,"52":1,"53":1,"54":1,"55":0,"56":1,"57":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":1,"6":2,"7":0,"8":2,"9":1,"10":2,"11":1},"b":{"0":[1,1,1],"1":[1,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[1,1,1],"9":[1,0],"10":[1,1,1],"11":[1,0],"12":[1,1],"13":[0,0],"14":[0,0],"15":[0,0],"16":[2],"17":[1,1],"18":[2,1],"19":[0,0],"20":[1,1,0],"21":[1,0],"22":[1,1],"23":[2,1],"24":[1,0],"25":[1,0],"26":[1,0],"27":[1,1]},"inputSourceMap":{"version":3,"file":"/Users/matthewblack/code/github.com/AtomicFinance/atomic-utils/packages/logger/lib/transports/sentry-transport.ts","sources":["/Users/matthewblack/code/github.com/AtomicFinance/atomic-utils/packages/logger/lib/transports/sentry-transport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AAC5C,qDAAuC;AAEvC,MAAa,eAAe;IAC1B,YACE,WAAsD,EACtD,OAAe,EAAE;QAEjB,2DAA2D;QAC3D,yEAAyE;QACzE,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC;YACzD,IAAI,CAAC,aAAa,IAAI,WAAW,EAAE;gBACjC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1B;SACF;QAAC,OAAO,CAAC,EAAE;YACV,0DAA0D;YAC1D,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAC1B;SACF;QAED,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAY,EAAE,KAAgB,EAAE,KAAa;QACxD,2EAA2E;QAC3E,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE7C,QAAQ,WAAW,EAAE;YACnB,KAAK,iBAAQ,CAAC,IAAI;gBAChB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM;YACR,KAAK,iBAAQ,CAAC,KAAK;gBACjB,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC5B,mEAAmE;oBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBACpD,IAAI,YAAY,EAAE;wBAChB,MAAM,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;qBAClD;yBAAM;wBACL,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;qBAC/B;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,QAAQ;SACT;IACH,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACvD,OAAO,iBAAQ,CAAC,IAAI,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACxD,OAAO,iBAAQ,CAAC,KAAK,CAAC;SACvB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,kGAAkG;QAClG,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtD,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;YAC/B,oEAAoE;YACpE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AApED,0CAoEC;AAWY,QAAA,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC","sourcesContent":["import { LogLevel } from '@node-dlc/logger';\nimport * as Sentry from '@sentry/node';\n\nexport class SentryTransport implements ITransport {\n constructor(\n nodeOptions?: Sentry.NodeOptions & { transport?: any },\n tags: ITag[] = [],\n ) {\n // Only initialize Sentry if it hasn't been initialized yet\n // In test scenarios, Sentry may already be initialized by sentry-testkit\n try {\n const currentClient = Sentry.getCurrentHub().getClient();\n if (!currentClient && nodeOptions) {\n Sentry.init(nodeOptions);\n }\n } catch (e) {\n // If Sentry hasn't been initialized at all, initialize it\n if (nodeOptions) {\n Sentry.init(nodeOptions);\n }\n }\n\n tags.forEach((tag) => {\n Sentry.setTag(tag.key, tag.value);\n });\n }\n\n public write(line: string, level?: LogLevel, error?: Error): void {\n // Parse log level from the formatted message since @node-dlc/logger@0.24.0\n // doesn't pass the level parameter correctly\n const parsedLevel = this.parseLogLevel(line);\n\n switch (parsedLevel) {\n case LogLevel.Warn:\n Sentry.captureMessage(line);\n break;\n case LogLevel.Error:\n Sentry.withScope((scope) => {\n scope.setExtra('log', line);\n // Extract error message from formatted log and create Error object\n const errorMessage = this.extractErrorMessage(line);\n if (errorMessage) {\n Sentry.captureException(new Error(errorMessage));\n } else {\n Sentry.captureException(line);\n }\n });\n break;\n default:\n }\n }\n\n private parseLogLevel(line: string): LogLevel | undefined {\n if (line.includes('[WRN]:') || line.includes('[WARN]:')) {\n return LogLevel.Warn;\n }\n if (line.includes('[ERR]:') || line.includes('[ERROR]:')) {\n return LogLevel.Error;\n }\n return undefined;\n }\n\n private extractErrorMessage(line: string): string | null {\n // Extract error message from formatted log like: \"2025-06-03T15:52:24.761Z [ERR]: Error: testing\"\n const errorMatch = line.match(/\\[ERR\\]: Error: (.+)/);\n if (errorMatch && errorMatch[1]) {\n // Get just the first line of the error message (before stack trace)\n return errorMatch[1].split('\\n')[0];\n }\n return null;\n }\n}\n\nexport interface ITransport {\n write(line: string, level?: LogLevel, error?: Error): void;\n}\n\nexport interface ITag {\n key: string;\n value: string;\n}\n\nexport const SentryHandlers = Sentry.Handlers;\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"b77bf357566ddbb4a4cadd3eac1f0f7feb7b3cf4","contentHash":"94ba41ba5203886ea02d430a41d995e8eb9befd4e4393fc953981f76c4f744d3"}}