@wireio/shared 1.0.17 → 1.0.19

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 (343) hide show
  1. package/lib/cjs/guards/applyTypeGuardExtras.d.ts.map +1 -0
  2. package/lib/cjs/guards/applyTypeGuardExtras.js +8 -0
  3. package/lib/cjs/guards/array.d.ts.map +1 -0
  4. package/lib/cjs/guards/array.js +7 -0
  5. package/lib/cjs/guards/assert.d.ts.map +1 -0
  6. package/lib/cjs/guards/assert.js +56 -0
  7. package/lib/cjs/guards/class.d.ts.map +1 -0
  8. package/lib/{guards → cjs/guards}/class.js +15 -7
  9. package/lib/cjs/guards/guard-tools.d.ts.map +1 -0
  10. package/lib/cjs/guards/guard-tools.js +55 -0
  11. package/lib/cjs/guards/index.d.ts.map +1 -0
  12. package/lib/cjs/guards/index.js +24 -0
  13. package/lib/cjs/guards/primitive.d.ts.map +1 -0
  14. package/lib/cjs/guards/primitive.js +65 -0
  15. package/lib/cjs/guards/types.d.ts.map +1 -0
  16. package/lib/cjs/guards/types.js +3 -0
  17. package/lib/cjs/helpers/Deferred.d.ts.map +1 -0
  18. package/lib/cjs/helpers/Deferred.js +115 -0
  19. package/lib/cjs/helpers/index.d.ts.map +1 -0
  20. package/lib/cjs/helpers/index.js +18 -0
  21. package/lib/cjs/index.d.ts.map +1 -0
  22. package/lib/cjs/index.js +20 -0
  23. package/lib/cjs/logging/Appender.d.ts.map +1 -0
  24. package/lib/cjs/logging/Appender.js +3 -0
  25. package/lib/cjs/logging/Formatter.d.ts.map +1 -0
  26. package/lib/cjs/logging/Formatter.js +3 -0
  27. package/lib/cjs/logging/InternalLogger.d.ts.map +1 -0
  28. package/lib/cjs/logging/InternalLogger.js +27 -0
  29. package/lib/cjs/logging/Level.d.ts.map +1 -0
  30. package/lib/cjs/logging/Level.js +16 -0
  31. package/lib/cjs/logging/LogRecord.d.ts.map +1 -0
  32. package/lib/cjs/logging/LogRecord.js +3 -0
  33. package/lib/cjs/logging/Logger.d.ts.map +1 -0
  34. package/lib/cjs/logging/Logger.js +190 -0
  35. package/lib/cjs/logging/LoggingManager.d.ts.map +1 -0
  36. package/lib/cjs/logging/LoggingManager.js +253 -0
  37. package/lib/cjs/logging/appenders/ConsoleAppender.d.ts.map +1 -0
  38. package/lib/cjs/logging/appenders/ConsoleAppender.js +78 -0
  39. package/lib/cjs/logging/appenders/FileAppender.d.ts.map +1 -0
  40. package/lib/cjs/logging/appenders/FileAppender.js +254 -0
  41. package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +1 -0
  42. package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseAppender.js +145 -0
  43. package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +1 -0
  44. package/lib/cjs/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +105 -0
  45. package/lib/cjs/logging/appenders/index.d.ts.map +1 -0
  46. package/lib/cjs/logging/appenders/index.js +20 -0
  47. package/lib/cjs/logging/appenders/push/PushLogRecordsAppender.d.ts.map +1 -0
  48. package/lib/cjs/logging/appenders/push/PushLogRecordsAppender.js +294 -0
  49. package/lib/cjs/logging/appenders/push/index.d.ts.map +1 -0
  50. package/lib/cjs/logging/appenders/push/index.js +18 -0
  51. package/lib/cjs/logging/context/LogContext.d.ts.map +1 -0
  52. package/lib/cjs/logging/context/LogContext.js +62 -0
  53. package/lib/cjs/logging/context/LogContextContainer.d.ts.map +1 -0
  54. package/lib/cjs/logging/context/LogContextContainer.js +28 -0
  55. package/lib/cjs/logging/context/LogContextProvider.d.ts.map +1 -0
  56. package/lib/cjs/logging/context/LogContextProvider.js +21 -0
  57. package/lib/cjs/logging/context/index.d.ts.map +1 -0
  58. package/lib/cjs/logging/context/index.js +20 -0
  59. package/lib/cjs/logging/context/providers/node/NodeContextProvider.d.ts.map +1 -0
  60. package/lib/cjs/logging/context/providers/node/NodeContextProvider.js +33 -0
  61. package/lib/cjs/logging/context/providers/node/index.d.ts.map +1 -0
  62. package/lib/cjs/logging/context/providers/node/index.js +4 -0
  63. package/lib/cjs/logging/examples/example-debug-appender.d.ts.map +1 -0
  64. package/lib/cjs/logging/examples/example-debug-appender.js +16 -0
  65. package/lib/cjs/logging/examples/example-file-appender.d.ts.map +1 -0
  66. package/lib/cjs/logging/examples/example-file-appender.js +18 -0
  67. package/lib/cjs/logging/getLogger.d.ts.map +1 -0
  68. package/lib/cjs/logging/getLogger.js +8 -0
  69. package/lib/cjs/logging/index-node.d.ts.map +1 -0
  70. package/lib/cjs/logging/index-node.js +19 -0
  71. package/lib/cjs/logging/index.d.ts.map +1 -0
  72. package/lib/cjs/logging/index.js +27 -0
  73. package/lib/cjs/logging/util.d.ts.map +1 -0
  74. package/lib/cjs/logging/util.js +9 -0
  75. package/lib/esm/guards/applyTypeGuardExtras.d.ts +3 -0
  76. package/lib/esm/guards/applyTypeGuardExtras.d.ts.map +1 -0
  77. package/lib/esm/guards/applyTypeGuardExtras.js +5 -0
  78. package/lib/esm/guards/array.d.ts +2 -0
  79. package/lib/esm/guards/array.d.ts.map +1 -0
  80. package/lib/esm/guards/array.js +4 -0
  81. package/lib/esm/guards/assert.d.ts +19 -0
  82. package/lib/esm/guards/assert.d.ts.map +1 -0
  83. package/lib/esm/guards/assert.js +50 -0
  84. package/lib/esm/guards/class.d.ts +27 -0
  85. package/lib/esm/guards/class.d.ts.map +1 -0
  86. package/lib/esm/guards/class.js +34 -0
  87. package/lib/esm/guards/guard-tools.d.ts +20 -0
  88. package/lib/esm/guards/guard-tools.d.ts.map +1 -0
  89. package/lib/esm/guards/guard-tools.js +50 -0
  90. package/lib/esm/guards/index.d.ts +8 -0
  91. package/lib/esm/guards/index.d.ts.map +1 -0
  92. package/lib/esm/guards/index.js +8 -0
  93. package/lib/esm/guards/primitive.d.ts +26 -0
  94. package/lib/esm/guards/primitive.d.ts.map +1 -0
  95. package/lib/esm/guards/primitive.js +47 -0
  96. package/lib/esm/guards/types.d.ts +10 -0
  97. package/lib/esm/guards/types.d.ts.map +1 -0
  98. package/lib/esm/guards/types.js +2 -0
  99. package/lib/esm/helpers/Deferred.d.ts +31 -0
  100. package/lib/esm/helpers/Deferred.d.ts.map +1 -0
  101. package/lib/esm/helpers/Deferred.js +111 -0
  102. package/lib/esm/helpers/index.d.ts +2 -0
  103. package/lib/esm/helpers/index.d.ts.map +1 -0
  104. package/lib/esm/helpers/index.js +2 -0
  105. package/lib/esm/index.d.ts +4 -0
  106. package/lib/esm/index.d.ts.map +1 -0
  107. package/lib/esm/index.js +4 -0
  108. package/lib/esm/logging/Appender.d.ts +5 -0
  109. package/lib/esm/logging/Appender.d.ts.map +1 -0
  110. package/lib/esm/logging/Appender.js +2 -0
  111. package/lib/esm/logging/Formatter.d.ts +3 -0
  112. package/lib/esm/logging/Formatter.d.ts.map +1 -0
  113. package/lib/esm/logging/Formatter.js +2 -0
  114. package/lib/esm/logging/InternalLogger.d.ts +5 -0
  115. package/lib/esm/logging/InternalLogger.d.ts.map +1 -0
  116. package/lib/esm/logging/InternalLogger.js +23 -0
  117. package/lib/esm/logging/Level.d.ts +14 -0
  118. package/lib/esm/logging/Level.d.ts.map +1 -0
  119. package/lib/esm/logging/Level.js +13 -0
  120. package/lib/esm/logging/LogRecord.d.ts +19 -0
  121. package/lib/esm/logging/LogRecord.d.ts.map +1 -0
  122. package/lib/esm/logging/LogRecord.js +2 -0
  123. package/lib/esm/logging/Logger.d.ts +81 -0
  124. package/lib/esm/logging/Logger.d.ts.map +1 -0
  125. package/lib/esm/logging/Logger.js +184 -0
  126. package/lib/esm/logging/LoggingManager.d.ts +131 -0
  127. package/lib/esm/logging/LoggingManager.d.ts.map +1 -0
  128. package/lib/esm/logging/LoggingManager.js +248 -0
  129. package/lib/esm/logging/appenders/ConsoleAppender.d.ts +55 -0
  130. package/lib/esm/logging/appenders/ConsoleAppender.d.ts.map +1 -0
  131. package/lib/esm/logging/appenders/ConsoleAppender.js +72 -0
  132. package/lib/esm/logging/appenders/FileAppender.d.ts +65 -0
  133. package/lib/esm/logging/appenders/FileAppender.d.ts.map +1 -0
  134. package/lib/esm/logging/appenders/FileAppender.js +214 -0
  135. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts +28 -0
  136. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +1 -0
  137. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseAppender.js +138 -0
  138. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts +29 -0
  139. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +1 -0
  140. package/lib/esm/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +98 -0
  141. package/lib/esm/logging/appenders/index.d.ts +4 -0
  142. package/lib/esm/logging/appenders/index.d.ts.map +1 -0
  143. package/lib/esm/logging/appenders/index.js +4 -0
  144. package/lib/esm/logging/appenders/push/PushLogRecordsAppender.d.ts +76 -0
  145. package/lib/esm/logging/appenders/push/PushLogRecordsAppender.d.ts.map +1 -0
  146. package/lib/esm/logging/appenders/push/PushLogRecordsAppender.js +286 -0
  147. package/lib/esm/logging/appenders/push/index.d.ts +2 -0
  148. package/lib/esm/logging/appenders/push/index.d.ts.map +1 -0
  149. package/lib/esm/logging/appenders/push/index.js +2 -0
  150. package/lib/esm/logging/context/LogContext.d.ts +48 -0
  151. package/lib/esm/logging/context/LogContext.d.ts.map +1 -0
  152. package/lib/esm/logging/context/LogContext.js +58 -0
  153. package/lib/esm/logging/context/LogContextContainer.d.ts +9 -0
  154. package/lib/esm/logging/context/LogContextContainer.d.ts.map +1 -0
  155. package/lib/esm/logging/context/LogContextContainer.js +25 -0
  156. package/lib/esm/logging/context/LogContextProvider.d.ts +24 -0
  157. package/lib/esm/logging/context/LogContextProvider.d.ts.map +1 -0
  158. package/lib/esm/logging/context/LogContextProvider.js +18 -0
  159. package/lib/esm/logging/context/index.d.ts +4 -0
  160. package/lib/esm/logging/context/index.d.ts.map +1 -0
  161. package/lib/esm/logging/context/index.js +4 -0
  162. package/lib/esm/logging/context/providers/node/NodeContextProvider.d.ts +2 -0
  163. package/lib/esm/logging/context/providers/node/NodeContextProvider.d.ts.map +1 -0
  164. package/lib/esm/logging/context/providers/node/NodeContextProvider.js +31 -0
  165. package/lib/esm/logging/context/providers/node/index.d.ts +3 -0
  166. package/lib/esm/logging/context/providers/node/index.d.ts.map +1 -0
  167. package/lib/esm/logging/context/providers/node/index.js +2 -0
  168. package/lib/esm/logging/examples/example-debug-appender.d.ts +2 -0
  169. package/lib/esm/logging/examples/example-debug-appender.d.ts.map +1 -0
  170. package/lib/esm/logging/examples/example-debug-appender.js +14 -0
  171. package/lib/esm/logging/examples/example-file-appender.d.ts +2 -0
  172. package/lib/esm/logging/examples/example-file-appender.d.ts.map +1 -0
  173. package/lib/esm/logging/examples/example-file-appender.js +16 -0
  174. package/lib/esm/logging/getLogger.d.ts +3 -0
  175. package/lib/esm/logging/getLogger.d.ts.map +1 -0
  176. package/lib/esm/logging/getLogger.js +5 -0
  177. package/lib/esm/logging/index-node.d.ts +3 -0
  178. package/lib/esm/logging/index-node.d.ts.map +1 -0
  179. package/lib/esm/logging/index-node.js +3 -0
  180. package/lib/esm/logging/index.d.ts +11 -0
  181. package/lib/esm/logging/index.d.ts.map +1 -0
  182. package/lib/esm/logging/index.js +11 -0
  183. package/lib/esm/logging/util.d.ts +3 -0
  184. package/lib/esm/logging/util.d.ts.map +1 -0
  185. package/lib/esm/logging/util.js +6 -0
  186. package/lib/test-cjs/guards/array.test.d.ts +2 -0
  187. package/lib/test-cjs/guards/array.test.d.ts.map +1 -0
  188. package/lib/test-cjs/guards/array.test.js +31 -0
  189. package/lib/test-cjs/guards/array.test.js.map +1 -0
  190. package/lib/test-cjs/guards/assert.test.d.ts +2 -0
  191. package/lib/test-cjs/guards/assert.test.d.ts.map +1 -0
  192. package/lib/test-cjs/guards/assert.test.js +78 -0
  193. package/lib/test-cjs/guards/assert.test.js.map +1 -0
  194. package/lib/test-cjs/guards/class.test.d.ts +2 -0
  195. package/lib/test-cjs/guards/class.test.d.ts.map +1 -0
  196. package/lib/test-cjs/guards/class.test.js +76 -0
  197. package/lib/test-cjs/guards/class.test.js.map +1 -0
  198. package/lib/test-cjs/guards/guard-tools.test.d.ts +2 -0
  199. package/lib/test-cjs/guards/guard-tools.test.d.ts.map +1 -0
  200. package/lib/test-cjs/guards/guard-tools.test.js +66 -0
  201. package/lib/test-cjs/guards/guard-tools.test.js.map +1 -0
  202. package/lib/test-cjs/guards/primitive.test.d.ts +2 -0
  203. package/lib/test-cjs/guards/primitive.test.d.ts.map +1 -0
  204. package/lib/test-cjs/guards/primitive.test.js +236 -0
  205. package/lib/test-cjs/guards/primitive.test.js.map +1 -0
  206. package/lib/test-cjs/helpers/Deferred.test.d.ts +2 -0
  207. package/lib/test-cjs/helpers/Deferred.test.d.ts.map +1 -0
  208. package/lib/test-cjs/helpers/Deferred.test.js +194 -0
  209. package/lib/test-cjs/helpers/Deferred.test.js.map +1 -0
  210. package/lib/test-cjs/logging/ConsoleAppender.test.d.ts +2 -0
  211. package/lib/test-cjs/logging/ConsoleAppender.test.d.ts.map +1 -0
  212. package/lib/test-cjs/logging/ConsoleAppender.test.js +93 -0
  213. package/lib/test-cjs/logging/ConsoleAppender.test.js.map +1 -0
  214. package/lib/test-cjs/logging/Level.test.d.ts +2 -0
  215. package/lib/test-cjs/logging/Level.test.d.ts.map +1 -0
  216. package/lib/test-cjs/logging/Level.test.js +40 -0
  217. package/lib/test-cjs/logging/Level.test.js.map +1 -0
  218. package/lib/test-cjs/logging/Logger.test.d.ts +2 -0
  219. package/lib/test-cjs/logging/Logger.test.d.ts.map +1 -0
  220. package/lib/test-cjs/logging/Logger.test.js +119 -0
  221. package/lib/test-cjs/logging/Logger.test.js.map +1 -0
  222. package/lib/test-cjs/logging/LoggingManager.test.d.ts +2 -0
  223. package/lib/test-cjs/logging/LoggingManager.test.d.ts.map +1 -0
  224. package/lib/test-cjs/logging/LoggingManager.test.js +122 -0
  225. package/lib/test-cjs/logging/LoggingManager.test.js.map +1 -0
  226. package/lib/test-cjs/logging/util.test.d.ts +2 -0
  227. package/lib/test-cjs/logging/util.test.d.ts.map +1 -0
  228. package/lib/test-cjs/logging/util.test.js +46 -0
  229. package/lib/test-cjs/logging/util.test.js.map +1 -0
  230. package/lib/tsconfig.cjs.jest.tsbuildinfo +1 -0
  231. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  232. package/lib/tsconfig.esm.tsbuildinfo +1 -0
  233. package/package.json +18 -5
  234. package/lib/guards/applyTypeGuardExtras.d.ts.map +0 -1
  235. package/lib/guards/applyTypeGuardExtras.js +0 -5
  236. package/lib/guards/array.d.ts.map +0 -1
  237. package/lib/guards/array.js +0 -4
  238. package/lib/guards/assert.d.ts.map +0 -1
  239. package/lib/guards/assert.js +0 -50
  240. package/lib/guards/class.d.ts.map +0 -1
  241. package/lib/guards/guard-tools.d.ts.map +0 -1
  242. package/lib/guards/guard-tools.js +0 -50
  243. package/lib/guards/index.d.ts.map +0 -1
  244. package/lib/guards/index.js +0 -8
  245. package/lib/guards/primitive.d.ts.map +0 -1
  246. package/lib/guards/primitive.js +0 -47
  247. package/lib/guards/types.d.ts.map +0 -1
  248. package/lib/guards/types.js +0 -2
  249. package/lib/helpers/Deferred.d.ts.map +0 -1
  250. package/lib/helpers/Deferred.js +0 -111
  251. package/lib/helpers/index.d.ts.map +0 -1
  252. package/lib/helpers/index.js +0 -2
  253. package/lib/index.d.ts.map +0 -1
  254. package/lib/index.js +0 -4
  255. package/lib/logging/Appender.d.ts.map +0 -1
  256. package/lib/logging/Appender.js +0 -2
  257. package/lib/logging/Formatter.d.ts.map +0 -1
  258. package/lib/logging/Formatter.js +0 -2
  259. package/lib/logging/InternalLogger.d.ts.map +0 -1
  260. package/lib/logging/InternalLogger.js +0 -23
  261. package/lib/logging/Level.d.ts.map +0 -1
  262. package/lib/logging/Level.js +0 -13
  263. package/lib/logging/LogRecord.d.ts.map +0 -1
  264. package/lib/logging/LogRecord.js +0 -2
  265. package/lib/logging/Logger.d.ts.map +0 -1
  266. package/lib/logging/Logger.js +0 -183
  267. package/lib/logging/LoggingManager.d.ts.map +0 -1
  268. package/lib/logging/LoggingManager.js +0 -243
  269. package/lib/logging/appenders/ConsoleAppender.d.ts.map +0 -1
  270. package/lib/logging/appenders/ConsoleAppender.js +0 -72
  271. package/lib/logging/appenders/FileAppender.d.ts.map +0 -1
  272. package/lib/logging/appenders/FileAppender.js +0 -212
  273. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.d.ts.map +0 -1
  274. package/lib/logging/appenders/aws-firehose/AWSFirehoseAppender.js +0 -138
  275. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts.map +0 -1
  276. package/lib/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.js +0 -98
  277. package/lib/logging/appenders/index.d.ts.map +0 -1
  278. package/lib/logging/appenders/index.js +0 -4
  279. package/lib/logging/appenders/push/PushLogRecordsAppender.d.ts.map +0 -1
  280. package/lib/logging/appenders/push/PushLogRecordsAppender.js +0 -286
  281. package/lib/logging/appenders/push/index.d.ts.map +0 -1
  282. package/lib/logging/appenders/push/index.js +0 -2
  283. package/lib/logging/context/LogContext.d.ts.map +0 -1
  284. package/lib/logging/context/LogContext.js +0 -58
  285. package/lib/logging/context/LogContextContainer.d.ts.map +0 -1
  286. package/lib/logging/context/LogContextContainer.js +0 -25
  287. package/lib/logging/context/LogContextProvider.d.ts.map +0 -1
  288. package/lib/logging/context/LogContextProvider.js +0 -18
  289. package/lib/logging/context/index.d.ts.map +0 -1
  290. package/lib/logging/context/index.js +0 -4
  291. package/lib/logging/context/providers/node/NodeContextProvider.d.ts.map +0 -1
  292. package/lib/logging/context/providers/node/NodeContextProvider.js +0 -31
  293. package/lib/logging/context/providers/node/index.d.ts.map +0 -1
  294. package/lib/logging/context/providers/node/index.js +0 -2
  295. package/lib/logging/examples/example-debug-appender.d.ts.map +0 -1
  296. package/lib/logging/examples/example-debug-appender.js +0 -14
  297. package/lib/logging/examples/example-file-appender.d.ts.map +0 -1
  298. package/lib/logging/examples/example-file-appender.js +0 -16
  299. package/lib/logging/getLogger.d.ts.map +0 -1
  300. package/lib/logging/getLogger.js +0 -5
  301. package/lib/logging/index-node.d.ts.map +0 -1
  302. package/lib/logging/index-node.js +0 -3
  303. package/lib/logging/index.d.ts.map +0 -1
  304. package/lib/logging/index.js +0 -11
  305. package/lib/logging/util.d.ts.map +0 -1
  306. package/lib/logging/util.js +0 -6
  307. /package/lib/{guards → cjs/guards}/applyTypeGuardExtras.d.ts +0 -0
  308. /package/lib/{guards → cjs/guards}/array.d.ts +0 -0
  309. /package/lib/{guards → cjs/guards}/assert.d.ts +0 -0
  310. /package/lib/{guards → cjs/guards}/class.d.ts +0 -0
  311. /package/lib/{guards → cjs/guards}/guard-tools.d.ts +0 -0
  312. /package/lib/{guards → cjs/guards}/index.d.ts +0 -0
  313. /package/lib/{guards → cjs/guards}/primitive.d.ts +0 -0
  314. /package/lib/{guards → cjs/guards}/types.d.ts +0 -0
  315. /package/lib/{helpers → cjs/helpers}/Deferred.d.ts +0 -0
  316. /package/lib/{helpers → cjs/helpers}/index.d.ts +0 -0
  317. /package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  318. /package/lib/{logging → cjs/logging}/Appender.d.ts +0 -0
  319. /package/lib/{logging → cjs/logging}/Formatter.d.ts +0 -0
  320. /package/lib/{logging → cjs/logging}/InternalLogger.d.ts +0 -0
  321. /package/lib/{logging → cjs/logging}/Level.d.ts +0 -0
  322. /package/lib/{logging → cjs/logging}/LogRecord.d.ts +0 -0
  323. /package/lib/{logging → cjs/logging}/Logger.d.ts +0 -0
  324. /package/lib/{logging → cjs/logging}/LoggingManager.d.ts +0 -0
  325. /package/lib/{logging → cjs/logging}/appenders/ConsoleAppender.d.ts +0 -0
  326. /package/lib/{logging → cjs/logging}/appenders/FileAppender.d.ts +0 -0
  327. /package/lib/{logging → cjs/logging}/appenders/aws-firehose/AWSFirehoseAppender.d.ts +0 -0
  328. /package/lib/{logging → cjs/logging}/appenders/aws-firehose/AWSFirehoseCredentialManager.d.ts +0 -0
  329. /package/lib/{logging → cjs/logging}/appenders/index.d.ts +0 -0
  330. /package/lib/{logging → cjs/logging}/appenders/push/PushLogRecordsAppender.d.ts +0 -0
  331. /package/lib/{logging → cjs/logging}/appenders/push/index.d.ts +0 -0
  332. /package/lib/{logging → cjs/logging}/context/LogContext.d.ts +0 -0
  333. /package/lib/{logging → cjs/logging}/context/LogContextContainer.d.ts +0 -0
  334. /package/lib/{logging → cjs/logging}/context/LogContextProvider.d.ts +0 -0
  335. /package/lib/{logging → cjs/logging}/context/index.d.ts +0 -0
  336. /package/lib/{logging → cjs/logging}/context/providers/node/NodeContextProvider.d.ts +0 -0
  337. /package/lib/{logging → cjs/logging}/context/providers/node/index.d.ts +0 -0
  338. /package/lib/{logging → cjs/logging}/examples/example-debug-appender.d.ts +0 -0
  339. /package/lib/{logging → cjs/logging}/examples/example-file-appender.d.ts +0 -0
  340. /package/lib/{logging → cjs/logging}/getLogger.d.ts +0 -0
  341. /package/lib/{logging → cjs/logging}/index-node.d.ts +0 -0
  342. /package/lib/{logging → cjs/logging}/index.d.ts +0 -0
  343. /package/lib/{logging → cjs/logging}/util.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogRecord.d.ts","sourceRoot":"","sources":["../../../src/logging/LogRecord.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAG3C,MAAM,WAAW,WAAW,CAAC,IAAI,SAAS,EAAE,GAAG,GAAG;IAChD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,EAAE,GAAG,GAAG,CAAE,SAAQ,WAAW,CAAC,IAAI,CAAC;IACzE,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nUmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dpbmcvTG9nUmVjb3JkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExldmVsS2luZCB9IGZyb20gXCIuL0xldmVsLmpzXCJcblxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ01ldGFkYXRhPERhdGEgZXh0ZW5kcyB7fSA9IGFueT4ge1xuICB1cmw/OiBzdHJpbmdcbiAgZW52Pzogc3RyaW5nXG4gIGFwcD86IHN0cmluZ1xuICBkYXRhPzogRGF0YVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ1JlY29yZDxEYXRhIGV4dGVuZHMge30gPSBhbnk+IGV4dGVuZHMgTG9nTWV0YWRhdGE8RGF0YT4ge1xuICB0aW1lc3RhbXA6IG51bWJlclxuICBjYXRlZ29yeTogc3RyaW5nXG4gIGxldmVsOiBMZXZlbEtpbmRcbiAgbWVzc2FnZTogc3RyaW5nXG4gIGFyZ3M/OiBhbnlbXVxuICB0YWdzPzogc3RyaW5nW11cbiAgZXZlbnQ/OiBzdHJpbmdcbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nXG4gIGVycm9yU3RhY2s/OiBzdHJpbmdcbn1cblxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../src/logging/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = exports.defaultLoggerOptions = exports.filenameCategoryInterpolator = void 0;
4
+ exports.toLogRecord = toLogRecord;
5
+ const index_js_1 = require("../guards/index.js");
6
+ const prelude_ts_1 = require("@3fv/prelude-ts");
7
+ const lodash_1 = require("lodash");
8
+ const Level_js_1 = require("./Level.js");
9
+ const util_js_1 = require("./util.js");
10
+ const filenameCategoryInterpolator = (filename) => {
11
+ const allParts = filename.replaceAll("\\", "/").split("/");
12
+ const rootIndex = Math.max(...["src", "lib"].map(name => allParts.indexOf(name)));
13
+ const parts = rootIndex === -1 ? [allParts.pop()] : allParts.slice(rootIndex + 1);
14
+ const category = prelude_ts_1.Option.of(parts.join(":"))
15
+ .flatMap(cat => prelude_ts_1.Option.of(cat.lastIndexOf(".")).map(index => index === -1 ? cat : cat.slice(0, index)))
16
+ .getOrElse("unknown");
17
+ return category;
18
+ };
19
+ exports.filenameCategoryInterpolator = filenameCategoryInterpolator;
20
+ exports.defaultLoggerOptions = {
21
+ categoryInterpolator: exports.filenameCategoryInterpolator,
22
+ overrideAppenders: []
23
+ };
24
+ function toLogRecord(logger, levelOrRecord, args) {
25
+ const globalMetadata = logger.manager.globalMetadata;
26
+ let metadata = {
27
+ ...globalMetadata
28
+ };
29
+ if ((0, index_js_1.isString)(levelOrRecord) && (0, lodash_1.isObject)(args[0])) {
30
+ metadata = { ...metadata, ...args.shift() };
31
+ }
32
+ if (globalMetadata?.data)
33
+ metadata.data = {
34
+ ...globalMetadata.data,
35
+ ...metadata.data
36
+ };
37
+ const errRecord = prelude_ts_1.Option.ofNullable(args.find(arg => ((0, index_js_1.isString)(arg?.message) && !!arg.stack) || arg instanceof Error)).match({
38
+ Some: err => ({
39
+ errorMessage: (0, index_js_1.getValue)(() => err.message),
40
+ errorStack: (0, index_js_1.getValue)(() => err.stack)
41
+ }),
42
+ None: () => ({})
43
+ });
44
+ const recordBase = (0, index_js_1.isString)(levelOrRecord)
45
+ ? {
46
+ ...(0, lodash_1.pick)(logger, ["category"]),
47
+ timestamp: Date.now(),
48
+ message: args[0],
49
+ level: levelOrRecord,
50
+ args: args.slice(1)
51
+ }
52
+ : levelOrRecord;
53
+ const record = {
54
+ ...recordBase,
55
+ ...errRecord,
56
+ ...metadata,
57
+ timestamp: (0, index_js_1.isNumber)(recordBase.timestamp) && recordBase.timestamp > 0
58
+ ? recordBase.timestamp
59
+ : Date.now()
60
+ };
61
+ if (metadata.data) {
62
+ record.data = {
63
+ ...metadata.data,
64
+ ...(recordBase.data ?? {})
65
+ };
66
+ }
67
+ return record;
68
+ }
69
+ class Logger {
70
+ manager;
71
+ category;
72
+ options;
73
+ state = {
74
+ overrideLevel: null
75
+ };
76
+ get overrideLevel() {
77
+ return prelude_ts_1.Option.ofNullable(this.state.overrideLevel)
78
+ .filter(util_js_1.isLogLevelKind) //Predicate.of<LevelKind>(isString).and(isLogLevelKind))
79
+ .getOrNull();
80
+ }
81
+ get overrideThreshold() {
82
+ return prelude_ts_1.Option.ofNullable(this.overrideLevel)
83
+ .map(level => Level_js_1.LevelThresholds[level])
84
+ .getOrNull();
85
+ }
86
+ setOverrideLevel(inOverrideLevel) {
87
+ const overrideLevel = (!inOverrideLevel ? null : inOverrideLevel.toLocaleLowerCase());
88
+ (0, index_js_1.assert)(!(0, index_js_1.isDefined)(overrideLevel) || (0, util_js_1.isLogLevelKind)(overrideLevel), `Invalid override level, must be a log level, all lower case`);
89
+ Object.assign(this.state, {
90
+ overrideLevel
91
+ });
92
+ return this;
93
+ }
94
+ log(levelOrRecord, ...args) {
95
+ const record = toLogRecord(this, levelOrRecord, args);
96
+ if (this.options.overrideAppenders.length) {
97
+ this.options.overrideAppenders.forEach(appender => appender.append(record));
98
+ }
99
+ else {
100
+ this.manager.fire(record);
101
+ }
102
+ }
103
+ /**
104
+ * Factory for the log
105
+ * level functions
106
+ *
107
+ * @param {LevelKind} level
108
+ * @returns {(message: string, ...args: any[]) => void}
109
+ * @private
110
+ */
111
+ createLevelLogger(level) {
112
+ const isEnabled = this.createLevelEnabled(level);
113
+ return (message, ...args) => {
114
+ if (isEnabled()) {
115
+ this.log(level, message, ...args);
116
+ }
117
+ };
118
+ }
119
+ /**
120
+ * Factory for is<Level>Enabled
121
+ *
122
+ * @param {LevelKind} level
123
+ * @returns {() => boolean}
124
+ * @private
125
+ */
126
+ createLevelEnabled(level) {
127
+ return () => {
128
+ const { rootThreshold } = this.manager;
129
+ const globalOverrideThreshold = this.manager.determineThresholdOverride(this.category);
130
+ const categoryThresholds = (0, index_js_1.isNumber)(this.overrideThreshold)
131
+ ? [this.overrideThreshold]
132
+ : [globalOverrideThreshold, rootThreshold].filter(index_js_1.isNumber);
133
+ const categoryThreshold = Math.min(...categoryThresholds);
134
+ const recordThreshold = Level_js_1.LevelThresholds[level];
135
+ return recordThreshold >= categoryThreshold;
136
+ };
137
+ }
138
+ trace = this.createLevelLogger("trace");
139
+ debug = this.createLevelLogger("debug");
140
+ info = this.createLevelLogger("info");
141
+ warn = this.createLevelLogger("warn");
142
+ error = this.createLevelLogger("error");
143
+ fatal = this.createLevelLogger("fatal");
144
+ isTraceEnabled = this.createLevelEnabled("trace");
145
+ isDebugEnabled = this.createLevelEnabled("debug");
146
+ isInfoEnabled = this.createLevelEnabled("info");
147
+ isWarnEnabled = this.createLevelEnabled("warn");
148
+ isErrorEnabled = this.createLevelEnabled("error");
149
+ isFatalEnabled = this.createLevelEnabled("fatal");
150
+ assert(test, message, ...args) {
151
+ const isTruthy = (0, index_js_1.isFunction)(test) ? test() : test;
152
+ if (isTruthy) {
153
+ return;
154
+ }
155
+ this.error(message, ...args);
156
+ }
157
+ assertFatal(test, message, exitCode = 1) {
158
+ const isTruthy = (0, index_js_1.isFunction)(test) ? test() : test;
159
+ if (isTruthy) {
160
+ return;
161
+ }
162
+ this.fatal("FATAL ASSERTION: ", message);
163
+ if (typeof process !== "undefined") {
164
+ process.exit(exitCode);
165
+ }
166
+ else {
167
+ console.error("FATAL ASSERTION: `process` is not defined, probably in a web browser");
168
+ }
169
+ }
170
+ constructor(manager, category, options) {
171
+ this.manager = manager;
172
+ this.category = category;
173
+ this.options = options;
174
+ }
175
+ static hydrateOptions(options = {}) {
176
+ return {
177
+ ...exports.defaultLoggerOptions,
178
+ ...options
179
+ };
180
+ }
181
+ static interoplateCategory(category, options) {
182
+ options = {
183
+ ...exports.defaultLoggerOptions,
184
+ ...options
185
+ };
186
+ return options.categoryInterpolator(category, options);
187
+ }
188
+ }
189
+ exports.Logger = Logger;
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dpbmcvTG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWtEQSxrQ0EyREM7QUE3R0QsaURBTzJCO0FBQzNCLGdEQUF3QztBQUN4QyxtQ0FBa0Q7QUFDbEQseUNBQXVEO0FBR3ZELHVDQUEwQztBQWFuQyxNQUFNLDRCQUE0QixHQUF5QixDQUNoRSxRQUFnQixFQUNoQixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RCxDQUFBO0lBQ0QsTUFBTSxLQUFLLEdBQ1QsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxtQkFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNiLG1CQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDMUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FB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QUM7Q0FDRjtBQXRLRCx3QkFzS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhc3NlcnQsXG4gIGdldFZhbHVlLFxuICBpc1N0cmluZyxcbiAgaXNEZWZpbmVkLFxuICBpc0Z1bmN0aW9uLFxuICBpc051bWJlclxufSBmcm9tIFwiLi4vZ3VhcmRzL2luZGV4LmpzXCJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJAM2Z2L3ByZWx1ZGUtdHNcIlxuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc09iamVjdCwgcGljayB9IGZyb20gXCJsb2Rhc2hcIlxuaW1wb3J0IHsgTGV2ZWxLaW5kLCBMZXZlbFRocmVzaG9sZHMgfSBmcm9tIFwiLi9MZXZlbC5qc1wiXG5pbXBvcnQgdHlwZSB7IExvZ2dpbmdNYW5hZ2VyIH0gZnJvbSBcIi4vTG9nZ2luZ01hbmFnZXIuanNcIlxuaW1wb3J0IHR5cGUgeyBMb2dNZXRhZGF0YSwgTG9nUmVjb3JkIH0gZnJvbSBcIi4vTG9nUmVjb3JkLmpzXCJcbmltcG9ydCB7IGlzTG9nTGV2ZWxLaW5kIH0gZnJvbSBcIi4vdXRpbC5qc1wiXG5pbXBvcnQgdHlwZSB7IEFwcGVuZGVyIH0gZnJvbSBcIi4vQXBwZW5kZXIuanNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlck9wdGlvbnMge1xuICBjYXRlZ29yeUludGVycG9sYXRvcjogQ2F0ZWdvcnlJbnRlcnBvbGF0b3JcbiAgb3ZlcnJpZGVBcHBlbmRlcnM6IEFycmF5PEFwcGVuZGVyPExvZ1JlY29yZD4+XG59XG5cbmV4cG9ydCB0eXBlIENhdGVnb3J5SW50ZXJwb2xhdG9yID0gKFxuICBpbkNhdGVnb3J5OiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBMb2dnZXJPcHRpb25zXG4pID0+IHN0cmluZ1xuXG5leHBvcnQgY29uc3QgZmlsZW5hbWVDYXRlZ29yeUludGVycG9sYXRvcjogQ2F0ZWdvcnlJbnRlcnBvbGF0b3IgPSAoXG4gIGZpbGVuYW1lOiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBhbGxQYXJ0cyA9IGZpbGVuYW1lLnJlcGxhY2VBbGwoXCJcXFxcXCIsIFwiL1wiKS5zcGxpdChcIi9cIilcbiAgY29uc3Qgcm9vdEluZGV4ID0gTWF0aC5tYXgoXG4gICAgLi4uW1wic3JjXCIsIFwibGliXCJdLm1hcChuYW1lID0+IGFsbFBhcnRzLmluZGV4T2YobmFtZSkpXG4gIClcbiAgY29uc3QgcGFydHMgPVxuICAgIHJvb3RJbmRleCA9PT0gLTEgPyBbYWxsUGFydHMucG9wKCldIDogYWxsUGFydHMuc2xpY2Uocm9vdEluZGV4ICsgMSlcbiAgY29uc3QgY2F0ZWdvcnkgPSBPcHRpb24ub2YocGFydHMuam9pbihcIjpcIikpXG4gICAgLmZsYXRNYXAoY2F0ID0+XG4gICAgICBPcHRpb24ub2YoY2F0Lmxhc3RJbmRleE9mKFwiLlwiKSkubWFwKGluZGV4ID0+XG4gICAgICAgIGluZGV4ID09PSAtMSA/IGNhdCA6IGNhdC5zbGljZSgwLCBpbmRleClcbiAgICAgIClcbiAgICApXG4gICAgLmdldE9yRWxzZShcInVua25vd25cIilcbiAgcmV0dXJuIGNhdGVnb3J5XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TG9nZ2VyT3B0aW9uczogTG9nZ2VyT3B0aW9ucyA9IHtcbiAgY2F0ZWdvcnlJbnRlcnBvbGF0b3I6IGZpbGVuYW1lQ2F0ZWdvcnlJbnRlcnBvbGF0b3IsXG4gIG92ZXJyaWRlQXBwZW5kZXJzOiBbXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9Mb2dSZWNvcmQoXG4gIGxvZ2dlcjogTG9nZ2VyLFxuICBsZXZlbE9yUmVjb3JkOiBMZXZlbEtpbmQgfCBMb2dSZWNvcmQsXG4gIGFyZ3M6IGFueVtdXG4pIHtcbiAgY29uc3QgZ2xvYmFsTWV0YWRhdGEgPSBsb2dnZXIubWFuYWdlci5nbG9iYWxNZXRhZGF0YVxuICBsZXQgbWV0YWRhdGE6IExvZ01ldGFkYXRhID0ge1xuICAgIC4uLmdsb2JhbE1ldGFkYXRhXG4gIH1cbiAgaWYgKGlzU3RyaW5nKGxldmVsT3JSZWNvcmQpICYmIGlzT2JqZWN0KGFyZ3NbMF0pKSB7XG4gICAgbWV0YWRhdGEgPSB7IC4uLm1ldGFkYXRhLCAuLi5hcmdzLnNoaWZ0KCkgfVxuICB9XG5cbiAgaWYgKGdsb2JhbE1ldGFkYXRhPy5kYXRhKVxuICAgIG1ldGFkYXRhLmRhdGEgPSB7XG4gICAgICAuLi5nbG9iYWxNZXRhZGF0YS5kYXRhLFxuICAgICAgLi4ubWV0YWRhdGEuZGF0YVxuICAgIH1cblxuICBjb25zdCBlcnJSZWNvcmQgPSBPcHRpb24ub2ZOdWxsYWJsZShcbiAgICBhcmdzLmZpbmQoXG4gICAgICBhcmcgPT4gKGlzU3RyaW5nKGFyZz8ubWVzc2FnZSkgJiYgISFhcmcuc3RhY2spIHx8IGFyZyBpbnN0YW5jZW9mIEVycm9yXG4gICAgKVxuICApLm1hdGNoKHtcbiAgICBTb21lOiBlcnIgPT4gKHtcbiAgICAgIGVycm9yTWVzc2FnZTogZ2V0VmFsdWUoKCkgPT4gZXJyLm1lc3NhZ2UpLFxuICAgICAgZXJyb3JTdGFjazogZ2V0VmFsdWUoKCkgPT4gZXJyLnN0YWNrKVxuICAgIH0pLFxuICAgIE5vbmU6ICgpID0+ICh7fSlcbiAgfSlcblxuICBjb25zdCByZWNvcmRCYXNlID0gaXNTdHJpbmcobGV2ZWxPclJlY29yZClcbiAgICA/ICh7XG4gICAgICAgIC4uLnBpY2sobG9nZ2VyLCBbXCJjYXRlZ29yeVwiXSksXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgbWVzc2FnZTogYXJnc1swXSxcbiAgICAgICAgbGV2ZWw6IGxldmVsT3JSZWNvcmQsXG4gICAgICAgIGFyZ3M6IGFyZ3Muc2xpY2UoMSlcbiAgICAgIH0gYXMgTG9nUmVjb3JkKVxuICAgIDogbGV2ZWxPclJlY29yZFxuXG4gIGNvbnN0IHJlY29yZCA9IHtcbiAgICAuLi5yZWNvcmRCYXNlLFxuICAgIC4uLmVyclJlY29yZCxcbiAgICAuLi5tZXRhZGF0YSxcbiAgICB0aW1lc3RhbXA6XG4gICAgICBpc051bWJlcihyZWNvcmRCYXNlLnRpbWVzdGFtcCkgJiYgcmVjb3JkQmFzZS50aW1lc3RhbXAgPiAwXG4gICAgICAgID8gcmVjb3JkQmFzZS50aW1lc3RhbXBcbiAgICAgICAgOiBEYXRlLm5vdygpXG4gIH1cblxuICBpZiAobWV0YWRhdGEuZGF0YSkge1xuICAgIHJlY29yZC5kYXRhID0ge1xuICAgICAgLi4ubWV0YWRhdGEuZGF0YSxcbiAgICAgIC4uLihyZWNvcmRCYXNlLmRhdGEgPz8ge30pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlY29yZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlclN0YXRlIHtcbiAgb3ZlcnJpZGVMZXZlbD86IExldmVsS2luZFxufVxuXG5leHBvcnQgY2xhc3MgTG9nZ2VyIHtcbiAgcmVhZG9ubHkgc3RhdGU6IExvZ2dlclN0YXRlID0ge1xuICAgIG92ZXJyaWRlTGV2ZWw6IG51bGxcbiAgfVxuXG4gIGdldCBvdmVycmlkZUxldmVsKCk6IExldmVsS2luZCB7XG4gICAgcmV0dXJuIE9wdGlvbi5vZk51bGxhYmxlKHRoaXMuc3RhdGUub3ZlcnJpZGVMZXZlbClcbiAgICAgIC5maWx0ZXIoaXNMb2dMZXZlbEtpbmQpIC8vUHJlZGljYXRlLm9mPExldmVsS2luZD4oaXNTdHJpbmcpLmFuZChpc0xvZ0xldmVsS2luZCkpXG4gICAgICAuZ2V0T3JOdWxsKClcbiAgfVxuXG4gIGdldCBvdmVycmlkZVRocmVzaG9sZCgpIHtcbiAgICByZXR1cm4gT3B0aW9uLm9mTnVsbGFibGUodGhpcy5vdmVycmlkZUxldmVsKVxuICAgICAgLm1hcChsZXZlbCA9PiBMZXZlbFRocmVzaG9sZHNbbGV2ZWxdKVxuICAgICAgLmdldE9yTnVsbCgpXG4gIH1cblxuICBzZXRPdmVycmlkZUxldmVsKGluT3ZlcnJpZGVMZXZlbDogTGV2ZWxLaW5kKSB7XG4gICAgY29uc3Qgb3ZlcnJpZGVMZXZlbCA9IChcbiAgICAgICFpbk92ZXJyaWRlTGV2ZWwgPyBudWxsIDogaW5PdmVycmlkZUxldmVsLnRvTG9jYWxlTG93ZXJDYXNlKClcbiAgICApIGFzIExldmVsS2luZFxuXG4gICAgYXNzZXJ0KFxuICAgICAgIWlzRGVmaW5lZChvdmVycmlkZUxldmVsKSB8fCBpc0xvZ0xldmVsS2luZChvdmVycmlkZUxldmVsKSxcbiAgICAgIGBJbnZhbGlkIG92ZXJyaWRlIGxldmVsLCBtdXN0IGJlIGEgbG9nIGxldmVsLCBhbGwgbG93ZXIgY2FzZWBcbiAgICApXG5cbiAgICBPYmplY3QuYXNzaWduKHRoaXMuc3RhdGUsIHtcbiAgICAgIG92ZXJyaWRlTGV2ZWxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBCYXNlIGxvZ2dpbmcgZnVuY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHJlY29yZFxuICAgKi9cbiAgbG9nKHJlY29yZDogTG9nUmVjb3JkKTogdm9pZFxuICBsb2cobGV2ZWw6IExldmVsS2luZCwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IHZvaWRcbiAgbG9nKFxuICAgIGxldmVsOiBMZXZlbEtpbmQsXG4gICAgbWV0YWRhdGE6IExvZ01ldGFkYXRhLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiB2b2lkXG4gIGxvZyhsZXZlbE9yUmVjb3JkOiBMZXZlbEtpbmQgfCBMb2dSZWNvcmQsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgcmVjb3JkID0gdG9Mb2dSZWNvcmQodGhpcywgbGV2ZWxPclJlY29yZCwgYXJncylcbiAgICBpZiAodGhpcy5vcHRpb25zLm92ZXJyaWRlQXBwZW5kZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5vcHRpb25zLm92ZXJyaWRlQXBwZW5kZXJzLmZvckVhY2goYXBwZW5kZXIgPT5cbiAgICAgICAgYXBwZW5kZXIuYXBwZW5kKHJlY29yZClcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYW5hZ2VyLmZpcmUocmVjb3JkKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IGZvciB0aGUgbG9nXG4gICAqIGxldmVsIGZ1bmN0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0ge0xldmVsS2luZH0gbGV2ZWxcbiAgICogQHJldHVybnMgeyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVMZXZlbExvZ2dlcihcbiAgICBsZXZlbDogTGV2ZWxLaW5kXG4gICk6IChtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkIHtcbiAgICBjb25zdCBpc0VuYWJsZWQgPSB0aGlzLmNyZWF0ZUxldmVsRW5hYmxlZChsZXZlbClcbiAgICByZXR1cm4gKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIGlmIChpc0VuYWJsZWQoKSkge1xuICAgICAgICB0aGlzLmxvZyhsZXZlbCwgbWVzc2FnZSwgLi4uYXJncylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmFjdG9yeSBmb3IgaXM8TGV2ZWw+RW5hYmxlZFxuICAgKlxuICAgKiBAcGFyYW0ge0xldmVsS2luZH0gbGV2ZWxcbiAgICogQHJldHVybnMgeygpID0+IGJvb2xlYW59XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUxldmVsRW5hYmxlZChsZXZlbDogTGV2ZWxLaW5kKTogKCkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcm9vdFRocmVzaG9sZCB9ID0gdGhpcy5tYW5hZ2VyXG5cbiAgICAgIGNvbnN0IGdsb2JhbE92ZXJyaWRlVGhyZXNob2xkID0gdGhpcy5tYW5hZ2VyLmRldGVybWluZVRocmVzaG9sZE92ZXJyaWRlKFxuICAgICAgICB0aGlzLmNhdGVnb3J5XG4gICAgICApXG4gICAgICBjb25zdCBjYXRlZ29yeVRocmVzaG9sZHMgPSBpc051bWJlcih0aGlzLm92ZXJyaWRlVGhyZXNob2xkKVxuICAgICAgICA/IFt0aGlzLm92ZXJyaWRlVGhyZXNob2xkXVxuICAgICAgICA6IFtnbG9iYWxPdmVycmlkZVRocmVzaG9sZCwgcm9vdFRocmVzaG9sZF0uZmlsdGVyKGlzTnVtYmVyKVxuXG4gICAgICBjb25zdCBjYXRlZ29yeVRocmVzaG9sZCA9IE1hdGgubWluKC4uLmNhdGVnb3J5VGhyZXNob2xkcylcblxuICAgICAgY29uc3QgcmVjb3JkVGhyZXNob2xkID0gTGV2ZWxUaHJlc2hvbGRzW2xldmVsXVxuXG4gICAgICByZXR1cm4gcmVjb3JkVGhyZXNob2xkID49IGNhdGVnb3J5VGhyZXNob2xkXG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgdHJhY2UgPSB0aGlzLmNyZWF0ZUxldmVsTG9nZ2VyKFwidHJhY2VcIilcbiAgcmVhZG9ubHkgZGVidWcgPSB0aGlzLmNyZWF0ZUxldmVsTG9nZ2VyKFwiZGVidWdcIilcbiAgcmVhZG9ubHkgaW5mbyA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJpbmZvXCIpXG4gIHJlYWRvbmx5IHdhcm4gPSB0aGlzLmNyZWF0ZUxldmVsTG9nZ2VyKFwid2FyblwiKVxuICByZWFkb25seSBlcnJvciA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJlcnJvclwiKVxuICByZWFkb25seSBmYXRhbCA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJmYXRhbFwiKVxuXG4gIHJlYWRvbmx5IGlzVHJhY2VFbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJ0cmFjZVwiKVxuICByZWFkb25seSBpc0RlYnVnRW5hYmxlZCA9IHRoaXMuY3JlYXRlTGV2ZWxFbmFibGVkKFwiZGVidWdcIilcbiAgcmVhZG9ubHkgaXNJbmZvRW5hYmxlZCA9IHRoaXMuY3JlYXRlTGV2ZWxFbmFibGVkKFwiaW5mb1wiKVxuICByZWFkb25seSBpc1dhcm5FbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJ3YXJuXCIpXG4gIHJlYWRvbmx5IGlzRXJyb3JFbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJlcnJvclwiKVxuICByZWFkb25seSBpc0ZhdGFsRW5hYmxlZCA9IHRoaXMuY3JlYXRlTGV2ZWxFbmFibGVkKFwiZmF0YWxcIilcblxuICBhc3NlcnQodGVzdDogYm9vbGVhbiB8ICgoKSA9PiBib29sZWFuKSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGlzVHJ1dGh5ID0gaXNGdW5jdGlvbih0ZXN0KSA/IHRlc3QoKSA6IHRlc3RcbiAgICBpZiAoaXNUcnV0aHkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuZXJyb3IobWVzc2FnZSwgLi4uYXJncylcbiAgfVxuXG4gIGFzc2VydEZhdGFsKFxuICAgIHRlc3Q6IGJvb2xlYW4gfCAoKCkgPT4gYm9vbGVhbiksXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGV4aXRDb2RlOiBudW1iZXIgPSAxXG4gICkge1xuICAgIGNvbnN0IGlzVHJ1dGh5ID0gaXNGdW5jdGlvbih0ZXN0KSA/IHRlc3QoKSA6IHRlc3RcbiAgICBpZiAoaXNUcnV0aHkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuZmF0YWwoXCJGQVRBTCBBU1NFUlRJT046IFwiLCBtZXNzYWdlKVxuICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcHJvY2Vzcy5leGl0KGV4aXRDb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcIkZBVEFMIEFTU0VSVElPTjogYHByb2Nlc3NgIGlzIG5vdCBkZWZpbmVkLCBwcm9iYWJseSBpbiBhIHdlYiBicm93c2VyXCJcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBtYW5hZ2VyOiBMb2dnaW5nTWFuYWdlcixcbiAgICByZWFkb25seSBjYXRlZ29yeTogc3RyaW5nLFxuICAgIHJlYWRvbmx5IG9wdGlvbnM6IExvZ2dlck9wdGlvbnNcbiAgKSB7fVxuXG4gIHN0YXRpYyBoeWRyYXRlT3B0aW9ucyhvcHRpb25zOiBQYXJ0aWFsPExvZ2dlck9wdGlvbnM+ID0ge30pOiBMb2dnZXJPcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVmYXVsdExvZ2dlck9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGludGVyb3BsYXRlQ2F0ZWdvcnkoY2F0ZWdvcnk6IHN0cmluZywgb3B0aW9uczogTG9nZ2VyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0TG9nZ2VyT3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnMuY2F0ZWdvcnlJbnRlcnBvbGF0b3IoY2F0ZWdvcnksIG9wdGlvbnMpXG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggingManager.d.ts","sourceRoot":"","sources":["../../../src/logging/LoggingManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggingManager = exports.kEnvThresholdOverrides = void 0;
4
+ exports.getLoggingManager = getLoggingManager;
5
+ const index_js_1 = require("../guards/index.js");
6
+ const prelude_ts_1 = require("@3fv/prelude-ts");
7
+ const lodash_1 = require("lodash");
8
+ const ConsoleAppender_js_1 = require("./appenders/ConsoleAppender.js");
9
+ const Level_js_1 = require("./Level.js");
10
+ const Logger_js_1 = require("./Logger.js");
11
+ const index_js_2 = require("./context/index.js");
12
+ const fp_js_1 = require("lodash/fp.js");
13
+ function parseThresholdOverridePatterns(value, level = "debug") {
14
+ return value.split(",").map(s => [new RegExp(s), level]);
15
+ }
16
+ exports.kEnvThresholdOverrides = prelude_ts_1.Option.ofNullable(typeof process !== "undefined" && process.env.DEBUG_PATTERNS)
17
+ .filter((0, lodash_1.negate)(lodash_1.isEmpty))
18
+ .map(parseThresholdOverridePatterns)
19
+ .getOrElse([]);
20
+ /**
21
+ * Logging manager
22
+ */
23
+ class LoggingManager {
24
+ loggers = new Map();
25
+ state = {
26
+ appenders: [],
27
+ globalMetadata: {},
28
+ rootLevel: Level_js_1.Level.info,
29
+ thresholdOverrides: exports.kEnvThresholdOverrides
30
+ };
31
+ get rootLevel() {
32
+ return this.state.rootLevel;
33
+ }
34
+ get globalMetadata() {
35
+ return this.state.globalMetadata;
36
+ }
37
+ set globalMetadata(newMetadata) {
38
+ this.state.globalMetadata = newMetadata ?? {};
39
+ }
40
+ set rootLevel(newRootLevel) {
41
+ this.state.rootLevel = newRootLevel;
42
+ }
43
+ get rootThreshold() {
44
+ return Level_js_1.LevelThresholds[this.rootLevel];
45
+ }
46
+ /**
47
+ * Get the current handler
48
+ *
49
+ * @returns {Appender<Record>}
50
+ */
51
+ get appenders() {
52
+ return prelude_ts_1.Option.ofNullable(this.state.appenders)
53
+ .filter(appenders => appenders.length > 0)
54
+ .getOrCall(() => {
55
+ this.state.appenders.push(new ConsoleAppender_js_1.ConsoleAppender());
56
+ return this.state.appenders;
57
+ });
58
+ }
59
+ /**
60
+ * Global threshold overrides
61
+ */
62
+ get thresholdOverrides() {
63
+ return this.state.thresholdOverrides;
64
+ }
65
+ /**
66
+ * Update the overrides
67
+ *
68
+ * @param newOverrides
69
+ */
70
+ set thresholdOverrides(newOverrides) {
71
+ this.state.thresholdOverrides = newOverrides;
72
+ }
73
+ /**
74
+ * Set global appenders
75
+ *
76
+ * @param {Array<Appender<Record>>} newAppenders
77
+ */
78
+ setAppenders(...newAppenders) {
79
+ // WE MUTATE DO TO THE LIKELIHOOD OF SOMEONE HOLDING A REF TO THE ARRAY,
80
+ // CONVERT TO OBSERVABLE AT SOME POINT
81
+ const persistentAppenders = this.state.appenders;
82
+ persistentAppenders.length = 0;
83
+ persistentAppenders.push(...(0, lodash_1.flatten)(newAppenders));
84
+ return this;
85
+ }
86
+ /**
87
+ * Add one or more appenders to existing appender set
88
+ *
89
+ * @param {Appender<Record> | Appender<Record>[]} newAppenders
90
+ * @returns {this<Record>}
91
+ */
92
+ addAppenders(...newAppenders) {
93
+ this.state.appenders.push(...(0, lodash_1.flatten)(newAppenders));
94
+ return this;
95
+ }
96
+ /**
97
+ * Clear threshold overrides
98
+ *
99
+ * @returns {this<Record>}
100
+ */
101
+ clearThresholdOverrides() {
102
+ this.state.thresholdOverrides.length = 0;
103
+ return this;
104
+ }
105
+ setThresholdOverrides(...overrides) {
106
+ this.state.thresholdOverrides.length = 0;
107
+ this.state.thresholdOverrides.push(...overrides);
108
+ return this;
109
+ }
110
+ addThresholdOverrides(...overrides) {
111
+ this.state.thresholdOverrides.push(...overrides);
112
+ return this;
113
+ }
114
+ /**
115
+ * Get applicable current contexts
116
+ *
117
+ * @param {string} category
118
+ * @returns {LogContext[]}
119
+ */
120
+ getApplicableCurrentContexts(category) {
121
+ return index_js_2.LogContextContainer.currentContext().filter(({ pattern }) => !pattern || pattern.test(category));
122
+ }
123
+ /**
124
+ * Check for any matching threshold overrides
125
+ *
126
+ * @param category
127
+ */
128
+ determineThresholdOverride(category) {
129
+ const contexts = this.getApplicableCurrentContexts(category),
130
+ // FIND CONFIGURED OVERRIDE LEVEL
131
+ overrideThreshold = prelude_ts_1.Option.ofNullable(this.thresholdOverrides.find(([match]) => (0, index_js_1.isString)(match)
132
+ ? match === category
133
+ : match.test(category)))
134
+ .map((0, fp_js_1.nth)(1))
135
+ .map(level => Level_js_1.LevelThresholds[level])
136
+ .getOrNull(),
137
+ // FIND `LogContext` OVERRIDE LEVEL
138
+ contextThresholds = contexts
139
+ .filter((0, fp_js_1.flow)((0, fp_js_1.get)("thresholdLevel"), index_js_1.isString))
140
+ .map(({ thresholdLevel }) => Level_js_1.LevelThresholds[thresholdLevel]),
141
+ // IF ANY OVERRIDES, GET THE MOST VERBOSE LEVEL
142
+ override = prelude_ts_1.Option.ofNullable([...contextThresholds, overrideThreshold].filter(index_js_1.isNumber))
143
+ .filter((0, lodash_1.negate)(lodash_1.isEmpty))
144
+ .map(lodash_1.min)
145
+ .getOrNull();
146
+ return override;
147
+ }
148
+ /**
149
+ * Set the root logging level
150
+ *
151
+ * @param {LevelKind} newLevel
152
+ * @returns {this<Record>}
153
+ */
154
+ setRootLevel(newLevel) {
155
+ this.state.rootLevel = newLevel;
156
+ return this;
157
+ }
158
+ /**
159
+ * Fire a log event, eventually
160
+ * invert this by making `Logger` an
161
+ * `EventEmitter3` and having the `LoggingManager`
162
+ * subscribe to `record` event
163
+ *
164
+ * @param {LogRecord<Record>} record
165
+ * @internal
166
+ */
167
+ fire(record) {
168
+ const { category } = record, contexts = this.getApplicableCurrentContexts(category), contextAppenders = contexts.flatMap((0, fp_js_1.get)("appenders")), appenders = [...this.appenders, ...contextAppenders];
169
+ appenders.forEach(appender => appender.append(record));
170
+ }
171
+ /**
172
+ * Get a logger from cache, if the category
173
+ * does not have an existing logger, then create one.
174
+ *
175
+ * @param {string} categoryOrFilename
176
+ * @param {Partial<LoggerOptions>} inOptions
177
+ * @returns {Logger}
178
+ */
179
+ getLogger(categoryOrFilename, inOptions = {}) {
180
+ const options = Logger_js_1.Logger.hydrateOptions(inOptions);
181
+ const category = Logger_js_1.Logger.interoplateCategory(categoryOrFilename, options);
182
+ return prelude_ts_1.Option.ofNullable(category)
183
+ .map(category => this.loggers.get(category))
184
+ .getOrCall(() => {
185
+ const logger = new Logger_js_1.Logger(this, category, options);
186
+ this.loggers.set(category, logger);
187
+ return logger;
188
+ });
189
+ }
190
+ /**
191
+ * Configure the logging manager,
192
+ * this function is additive, so simply calling
193
+ * `configure` with a single option `rootLevel`,
194
+ * will not affect other options like `appenders` *
195
+ *
196
+ * @param {LoggingManagerOptions<any>} options
197
+ * @returns {this<Record>}
198
+ */
199
+ configure(options) {
200
+ if (Level_js_1.Level[options?.rootLevel]) {
201
+ this.setRootLevel(options.rootLevel);
202
+ }
203
+ if (options?.appenders) {
204
+ this.setAppenders(options.appenders);
205
+ }
206
+ if (options?.thresholdOverrides) {
207
+ this.addThresholdOverrides(...options.thresholdOverrides);
208
+ }
209
+ return this;
210
+ }
211
+ constructor() {
212
+ this.configure({});
213
+ }
214
+ /**
215
+ * Singleton instance
216
+ *
217
+ * @type {LoggingManager}
218
+ * @private
219
+ */
220
+ static manager;
221
+ /**
222
+ * Get logging manager and optionally provided
223
+ * configuration options
224
+ *
225
+ * @param {LoggingManagerOptions<Record>} options
226
+ * @returns {LoggingManager<Record>}
227
+ */
228
+ static get(options = null) {
229
+ if (!this.manager) {
230
+ this.manager = new LoggingManager();
231
+ }
232
+ if (options) {
233
+ this.manager.configure(options);
234
+ }
235
+ return this.manager;
236
+ }
237
+ }
238
+ exports.LoggingManager = LoggingManager;
239
+ function getLoggingManager() {
240
+ return LoggingManager.get();
241
+ }
242
+ if (prelude_ts_1.Option.try(() => process.env.NODE_ENV === "development").getOrElse(false)) {
243
+ ;
244
+ [
245
+ typeof window !== "undefined" && window,
246
+ typeof global !== "undefined" && global
247
+ ]
248
+ .filter(index_js_1.isObject)
249
+ .map(target => Object.assign(target, {
250
+ loggingManager: getLoggingManager()
251
+ }));
252
+ }
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbG9nZ2luZy9Mb2dnaW5nTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxVEEsOENBRUM7QUF2VEQsaURBQWlFO0FBQ2pFLGdEQUF3QztBQUN4QyxtQ0FBc0Q7QUFFdEQsdUVBQWdFO0FBQ2hFLHlDQUE4RDtBQUM5RCwyQ0FBbUQ7QUFFbkQsaURBQW9FO0FBQ3BFLHdDQUE2QztBQWlCN0MsU0FBUyw4QkFBOEIsQ0FDckMsS0FBYSxFQUNiLFFBQW1CLE9BQU87SUFFMUIsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFzQixDQUFDLENBQUE7QUFDL0UsQ0FBQztBQUVZLFFBQUEsc0JBQXNCLEdBQUcsbUJBQU0sQ0FBQyxVQUFVLENBQ3JELE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FDN0Q7S0FDRSxNQUFNLENBQUMsSUFBQSxlQUFNLEVBQUMsZ0JBQU8sQ0FBQyxDQUFDO0tBQ3ZCLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQztLQUNuQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7QUFFaEI7O0dBRUc7QUFDSCxNQUFhLGNBQWM7SUFDUixPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7SUFFbkMsS0FBSyxHQUFnQztRQUNwRCxTQUFTLEVBQUUsRUFBRTtRQUNiLGNBQWMsRUFBRSxFQUFFO1FBQ2xCLFNBQVMsRUFBRSxnQkFBSyxDQUFDLElBQUk7UUFDckIsa0JBQWtCLEVBQUUsOEJBQXNCO0tBQzNDLENBQUE7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFBO0lBQzdCLENBQUM7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QkFBaUI7SUFDL0IsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUE7QUFDN0IsQ0FBQztBQUVELElBQUksbUJBQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUFBO1FBQ0MsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU07UUFDdkMsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU07S0FDeEM7U0FDRSxNQUFNLENBQUMsbUJBQVEsQ0FBQztTQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDWixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNwQixjQUFjLEVBQUUsaUJBQWlCLEVBQUU7S0FDcEMsQ0FBQyxDQUNILENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gXCIuLi9ndWFyZHMvaW5kZXguanNcIlxuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSBcIkAzZnYvcHJlbHVkZS10c1wiXG5pbXBvcnQgeyBmbGF0dGVuLCBpc0VtcHR5LCBtaW4sIG5lZ2F0ZSB9IGZyb20gXCJsb2Rhc2hcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuL0FwcGVuZGVyLmpzXCJcbmltcG9ydCB7IENvbnNvbGVBcHBlbmRlciB9IGZyb20gXCIuL2FwcGVuZGVycy9Db25zb2xlQXBwZW5kZXIuanNcIlxuaW1wb3J0IHsgTGV2ZWwsIExldmVsS2luZCwgTGV2ZWxUaHJlc2hvbGRzIH0gZnJvbSBcIi4vTGV2ZWwuanNcIlxuaW1wb3J0IHsgTG9nZ2VyLCBMb2dnZXJPcHRpb25zIH0gZnJvbSBcIi4vTG9nZ2VyLmpzXCJcbmltcG9ydCB0eXBlIHsgTG9nTWV0YWRhdGEsIExvZ1JlY29yZCB9IGZyb20gXCIuL0xvZ1JlY29yZC5qc1wiXG5pbXBvcnQgeyBMb2dDb250ZXh0LCBMb2dDb250ZXh0Q29udGFpbmVyIH0gZnJvbSBcIi4vY29udGV4dC9pbmRleC5qc1wiXG5pbXBvcnQgeyBmbG93LCBnZXQsIG50aCB9IGZyb20gXCJsb2Rhc2gvZnAuanNcIlxuXG5leHBvcnQgdHlwZSBDYXRlZ29yeU1hdGNoID0gUmVnRXhwIHwgc3RyaW5nXG5cbmV4cG9ydCB0eXBlIFRocmVzaG9sZE92ZXJyaWRlID0gW21hdGNoOiBDYXRlZ29yeU1hdGNoLCBsZXZlbDogTGV2ZWxLaW5kXVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdNYW5hZ2VyU3RhdGU8UmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkPiB7XG4gIHJvb3RMZXZlbDogTGV2ZWxLaW5kXG4gIGdsb2JhbE1ldGFkYXRhPzogTG9nTWV0YWRhdGFcbiAgYXBwZW5kZXJzOiBBcnJheTxBcHBlbmRlcjxSZWNvcmQ+PlxuICB0aHJlc2hvbGRPdmVycmlkZXM6IEFycmF5PFRocmVzaG9sZE92ZXJyaWRlPlxufVxuXG5leHBvcnQgdHlwZSBMb2dnaW5nTWFuYWdlck9wdGlvbnM8UmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkPiA9IFBhcnRpYWw8XG4gIExvZ2dpbmdNYW5hZ2VyU3RhdGU8UmVjb3JkPlxuPlxuXG5mdW5jdGlvbiBwYXJzZVRocmVzaG9sZE92ZXJyaWRlUGF0dGVybnMoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIGxldmVsOiBMZXZlbEtpbmQgPSBcImRlYnVnXCJcbik6IFRocmVzaG9sZE92ZXJyaWRlW10ge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoXCIsXCIpLm1hcChzID0+IFtuZXcgUmVnRXhwKHMpLCBsZXZlbF0gYXMgVGhyZXNob2xkT3ZlcnJpZGUpXG59XG5cbmV4cG9ydCBjb25zdCBrRW52VGhyZXNob2xkT3ZlcnJpZGVzID0gT3B0aW9uLm9mTnVsbGFibGUoXG4gIHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmIHByb2Nlc3MuZW52LkRFQlVHX1BBVFRFUk5TXG4pXG4gIC5maWx0ZXIobmVnYXRlKGlzRW1wdHkpKVxuICAubWFwKHBhcnNlVGhyZXNob2xkT3ZlcnJpZGVQYXR0ZXJucylcbiAgLmdldE9yRWxzZShbXSlcblxuLyoqXG4gKiBMb2dnaW5nIG1hbmFnZXJcbiAqL1xuZXhwb3J0IGNsYXNzIExvZ2dpbmdNYW5hZ2VyPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcnMgPSBuZXcgTWFwPHN0cmluZywgTG9nZ2VyPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZTogTG9nZ2luZ01hbmFnZXJTdGF0ZTxSZWNvcmQ+ID0ge1xuICAgIGFwcGVuZGVyczogW10sXG4gICAgZ2xvYmFsTWV0YWRhdGE6IHt9LFxuICAgIHJvb3RMZXZlbDogTGV2ZWwuaW5mbyxcbiAgICB0aHJlc2hvbGRPdmVycmlkZXM6IGtFbnZUaHJlc2hvbGRPdmVycmlkZXNcbiAgfVxuXG4gIGdldCByb290TGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucm9vdExldmVsXG4gIH1cblxuICBnZXQgZ2xvYmFsTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZ2xvYmFsTWV0YWRhdGFcbiAgfVxuXG4gIHNldCBnbG9iYWxNZXRhZGF0YShuZXdNZXRhZGF0YTogTG9nTWV0YWRhdGEpIHtcbiAgICB0aGlzLnN0YXRlLmdsb2JhbE1ldGFkYXRhID0gbmV3TWV0YWRhdGEgPz8ge31cbiAgfVxuXG4gIHNldCByb290TGV2ZWwobmV3Um9vdExldmVsOiBMZXZlbEtpbmQpIHtcbiAgICB0aGlzLnN0YXRlLnJvb3RMZXZlbCA9IG5ld1Jvb3RMZXZlbFxuICB9XG5cbiAgZ2V0IHJvb3RUaHJlc2hvbGQoKSB7XG4gICAgcmV0dXJuIExldmVsVGhyZXNob2xkc1t0aGlzLnJvb3RMZXZlbF1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgaGFuZGxlclxuICAgKlxuICAgKiBAcmV0dXJucyB7QXBwZW5kZXI8UmVjb3JkPn1cbiAgICovXG4gIGdldCBhcHBlbmRlcnMoKTogQXJyYXk8QXBwZW5kZXI8UmVjb3JkPj4ge1xuICAgIHJldHVybiBPcHRpb24ub2ZOdWxsYWJsZSh0aGlzLnN0YXRlLmFwcGVuZGVycylcbiAgICAgIC5maWx0ZXIoYXBwZW5kZXJzID0+IGFwcGVuZGVycy5sZW5ndGggPiAwKVxuICAgICAgLmdldE9yQ2FsbCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3RhdGUuYXBwZW5kZXJzLnB1c2gobmV3IENvbnNvbGVBcHBlbmRlcigpKVxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5hcHBlbmRlcnNcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogR2xvYmFsIHRocmVzaG9sZCBvdmVycmlkZXNcbiAgICovXG4gIGdldCB0aHJlc2hvbGRPdmVycmlkZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudGhyZXNob2xkT3ZlcnJpZGVzXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBvdmVycmlkZXNcbiAgICpcbiAgICogQHBhcmFtIG5ld092ZXJyaWRlc1xuICAgKi9cbiAgc2V0IHRocmVzaG9sZE92ZXJyaWRlcyhuZXdPdmVycmlkZXM6IFRocmVzaG9sZE92ZXJyaWRlW10pIHtcbiAgICB0aGlzLnN0YXRlLnRocmVzaG9sZE92ZXJyaWRlcyA9IG5ld092ZXJyaWRlc1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBnbG9iYWwgYXBwZW5kZXJzXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8QXBwZW5kZXI8UmVjb3JkPj59IG5ld0FwcGVuZGVyc1xuICAgKi9cbiAgc2V0QXBwZW5kZXJzKC4uLm5ld0FwcGVuZGVyczogQXJyYXk8QXBwZW5kZXI8UmVjb3JkPiB8IEFwcGVuZGVyPFJlY29yZD5bXT4pIHtcbiAgICAvLyBXRSBNVVRBVEUgRE8gVE8gVEhFIExJS0VMSUhPT0QgT0YgU09NRU9ORSBIT0xESU5HIEEgUkVGIFRPIFRIRSBBUlJBWSxcbiAgICAvLyBDT05WRVJUIFRPIE9CU0VSVkFCTEUgQVQgU09NRSBQT0lOVFxuICAgIGNvbnN0IHBlcnNpc3RlbnRBcHBlbmRlcnMgPSB0aGlzLnN0YXRlLmFwcGVuZGVyc1xuICAgIHBlcnNpc3RlbnRBcHBlbmRlcnMubGVuZ3RoID0gMFxuICAgIHBlcnNpc3RlbnRBcHBlbmRlcnMucHVzaCguLi5mbGF0dGVuKG5ld0FwcGVuZGVycykpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvbmUgb3IgbW9yZSBhcHBlbmRlcnMgdG8gZXhpc3RpbmcgYXBwZW5kZXIgc2V0XG4gICAqXG4gICAqIEBwYXJhbSB7QXBwZW5kZXI8UmVjb3JkPiB8IEFwcGVuZGVyPFJlY29yZD5bXX0gbmV3QXBwZW5kZXJzXG4gICAqIEByZXR1cm5zIHt0aGlzPFJlY29yZD59XG4gICAqL1xuICBhZGRBcHBlbmRlcnMoXG4gICAgLi4ubmV3QXBwZW5kZXJzOiBBcnJheTxBcHBlbmRlcjxSZWNvcmQ+IHwgQXBwZW5kZXI8UmVjb3JkPltdPlxuICApOiB0aGlzIHtcbiAgICB0aGlzLnN0YXRlLmFwcGVuZGVycy5wdXNoKC4uLmZsYXR0ZW4obmV3QXBwZW5kZXJzKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRocmVzaG9sZCBvdmVycmlkZXNcbiAgICpcbiAgICogQHJldHVybnMge3RoaXM8UmVjb3JkPn1cbiAgICovXG4gIGNsZWFyVGhyZXNob2xkT3ZlcnJpZGVzKCk6IHRoaXMge1xuICAgIHRoaXMuc3RhdGUudGhyZXNob2xkT3ZlcnJpZGVzLmxlbmd0aCA9IDBcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0VGhyZXNob2xkT3ZlcnJpZGVzKC4uLm92ZXJyaWRlczogQXJyYXk8VGhyZXNob2xkT3ZlcnJpZGU+KSB7XG4gICAgdGhpcy5zdGF0ZS50aHJlc2hvbGRPdmVycmlkZXMubGVuZ3RoID0gMFxuICAgIHRoaXMuc3RhdGUudGhyZXNob2xkT3ZlcnJpZGVzLnB1c2goLi4ub3ZlcnJpZGVzKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBhZGRUaHJlc2hvbGRPdmVycmlkZXMoLi4ub3ZlcnJpZGVzOiBBcnJheTxUaHJlc2hvbGRPdmVycmlkZT4pIHtcbiAgICB0aGlzLnN0YXRlLnRocmVzaG9sZE92ZXJyaWRlcy5wdXNoKC4uLm92ZXJyaWRlcylcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhcHBsaWNhYmxlIGN1cnJlbnQgY29udGV4dHNcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGNhdGVnb3J5XG4gICAqIEByZXR1cm5zIHtMb2dDb250ZXh0W119XG4gICAqL1xuICBnZXRBcHBsaWNhYmxlQ3VycmVudENvbnRleHRzKGNhdGVnb3J5OiBzdHJpbmcpOiBMb2dDb250ZXh0W10ge1xuICAgIHJldHVybiBMb2dDb250ZXh0Q29udGFpbmVyLmN1cnJlbnRDb250ZXh0KCkuZmlsdGVyKFxuICAgICAgKHsgcGF0dGVybiB9KSA9PiAhcGF0dGVybiB8fCBwYXR0ZXJuLnRlc3QoY2F0ZWdvcnkpXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGZvciBhbnkgbWF0Y2hpbmcgdGhyZXNob2xkIG92ZXJyaWRlc1xuICAgKlxuICAgKiBAcGFyYW0gY2F0ZWdvcnlcbiAgICovXG4gIGRldGVybWluZVRocmVzaG9sZE92ZXJyaWRlKGNhdGVnb3J5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbnRleHRzID0gdGhpcy5nZXRBcHBsaWNhYmxlQ3VycmVudENvbnRleHRzKGNhdGVnb3J5KSxcbiAgICAgIC8vIEZJTkQgQ09ORklHVVJFRCBPVkVSUklERSBMRVZFTFxuICAgICAgb3ZlcnJpZGVUaHJlc2hvbGQgPSBPcHRpb24ub2ZOdWxsYWJsZShcbiAgICAgICAgdGhpcy50aHJlc2hvbGRPdmVycmlkZXMuZmluZCgoW21hdGNoXSkgPT5cbiAgICAgICAgICBpc1N0cmluZyhtYXRjaClcbiAgICAgICAgICAgID8gbWF0Y2ggPT09IGNhdGVnb3J5XG4gICAgICAgICAgICA6IChtYXRjaCBhcyBSZWdFeHApLnRlc3QoY2F0ZWdvcnkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgICAgLm1hcChudGgoMSkpXG4gICAgICAgIC5tYXAobGV2ZWwgPT4gTGV2ZWxUaHJlc2hvbGRzW2xldmVsIGFzIExldmVsXSlcbiAgICAgICAgLmdldE9yTnVsbCgpLFxuICAgICAgLy8gRklORCBgTG9nQ29udGV4dGAgT1ZFUlJJREUgTEVWRUxcbiAgICAgIGNvbnRleHRUaHJlc2hvbGRzID0gY29udGV4dHNcbiAgICAgICAgLmZpbHRlcihmbG93KGdldChcInRocmVzaG9sZExldmVsXCIpLCBpc1N0cmluZykpXG4gICAgICAgIC5tYXAoKHsgdGhyZXNob2xkTGV2ZWwgfSkgPT4gTGV2ZWxUaHJlc2hvbGRzW3RocmVzaG9sZExldmVsXSksXG4gICAgICAvLyBJRiBBTlkgT1ZFUlJJREVTLCBHRVQgVEhFIE1PU1QgVkVSQk9TRSBMRVZFTFxuICAgICAgb3ZlcnJpZGUgPSBPcHRpb24ub2ZOdWxsYWJsZShcbiAgICAgICAgWy4uLmNvbnRleHRUaHJlc2hvbGRzLCBvdmVycmlkZVRocmVzaG9sZF0uZmlsdGVyKGlzTnVtYmVyKVxuICAgICAgKVxuICAgICAgICAuZmlsdGVyKG5lZ2F0ZShpc0VtcHR5KSlcbiAgICAgICAgLm1hcChtaW4pXG4gICAgICAgIC5nZXRPck51bGwoKVxuXG4gICAgcmV0dXJuIG92ZXJyaWRlIGFzIG51bWJlclxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcm9vdCBsb2dnaW5nIGxldmVsXG4gICAqXG4gICAqIEBwYXJhbSB7TGV2ZWxLaW5kfSBuZXdMZXZlbFxuICAgKiBAcmV0dXJucyB7dGhpczxSZWNvcmQ+fVxuICAgKi9cbiAgc2V0Um9vdExldmVsKG5ld0xldmVsOiBMZXZlbEtpbmQpOiB0aGlzIHtcbiAgICB0aGlzLnN0YXRlLnJvb3RMZXZlbCA9IG5ld0xldmVsXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlIGEgbG9nIGV2ZW50LCBldmVudHVhbGx5XG4gICAqIGludmVydCB0aGlzIGJ5IG1ha2luZyBgTG9nZ2VyYCBhblxuICAgKiBgRXZlbnRFbWl0dGVyM2AgYW5kIGhhdmluZyB0aGUgYExvZ2dpbmdNYW5hZ2VyYFxuICAgKiBzdWJzY3JpYmUgdG8gYHJlY29yZGAgZXZlbnRcbiAgICpcbiAgICogQHBhcmFtIHtMb2dSZWNvcmQ8UmVjb3JkPn0gcmVjb3JkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZmlyZShyZWNvcmQ6IExvZ1JlY29yZDxSZWNvcmQ+KSB7XG4gICAgY29uc3QgeyBjYXRlZ29yeSB9ID0gcmVjb3JkLFxuICAgICAgY29udGV4dHMgPSB0aGlzLmdldEFwcGxpY2FibGVDdXJyZW50Q29udGV4dHMoY2F0ZWdvcnkpLFxuICAgICAgY29udGV4dEFwcGVuZGVycyA9IGNvbnRleHRzLmZsYXRNYXAoZ2V0KFwiYXBwZW5kZXJzXCIpKSxcbiAgICAgIGFwcGVuZGVycyA9IFsuLi50aGlzLmFwcGVuZGVycywgLi4uY29udGV4dEFwcGVuZGVyc11cblxuICAgIGFwcGVuZGVycy5mb3JFYWNoKGFwcGVuZGVyID0+IGFwcGVuZGVyLmFwcGVuZChyZWNvcmQgYXMgUmVjb3JkKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsb2dnZXIgZnJvbSBjYWNoZSwgaWYgdGhlIGNhdGVnb3J5XG4gICAqIGRvZXMgbm90IGhhdmUgYW4gZXhpc3RpbmcgbG9nZ2VyLCB0aGVuIGNyZWF0ZSBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYXRlZ29yeU9yRmlsZW5hbWVcbiAgICogQHBhcmFtIHtQYXJ0aWFsPExvZ2dlck9wdGlvbnM+fSBpbk9wdGlvbnNcbiAgICogQHJldHVybnMge0xvZ2dlcn1cbiAgICovXG4gIGdldExvZ2dlcihcbiAgICBjYXRlZ29yeU9yRmlsZW5hbWU6IHN0cmluZyxcbiAgICBpbk9wdGlvbnM6IFBhcnRpYWw8TG9nZ2VyT3B0aW9ucz4gPSB7fVxuICApOiBMb2dnZXIge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBMb2dnZXIuaHlkcmF0ZU9wdGlvbnMoaW5PcHRpb25zKVxuICAgIGNvbnN0IGNhdGVnb3J5ID0gTG9nZ2VyLmludGVyb3BsYXRlQ2F0ZWdvcnkoY2F0ZWdvcnlPckZpbGVuYW1lLCBvcHRpb25zKVxuXG4gICAgcmV0dXJuIE9wdGlvbi5vZk51bGxhYmxlKGNhdGVnb3J5KVxuICAgICAgLm1hcChjYXRlZ29yeSA9PiB0aGlzLmxvZ2dlcnMuZ2V0KGNhdGVnb3J5KSlcbiAgICAgIC5nZXRPckNhbGwoKCkgPT4ge1xuICAgICAgICBjb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMsIGNhdGVnb3J5LCBvcHRpb25zKVxuICAgICAgICB0aGlzLmxvZ2dlcnMuc2V0KGNhdGVnb3J5LCBsb2dnZXIpXG4gICAgICAgIHJldHVybiBsb2dnZXJcbiAgICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIHRoZSBsb2dnaW5nIG1hbmFnZXIsXG4gICAqIHRoaXMgZnVuY3Rpb24gaXMgYWRkaXRpdmUsIHNvIHNpbXBseSBjYWxsaW5nXG4gICAqIGBjb25maWd1cmVgIHdpdGggYSBzaW5nbGUgb3B0aW9uIGByb290TGV2ZWxgLFxuICAgKiB3aWxsIG5vdCBhZmZlY3Qgb3RoZXIgb3B0aW9ucyBsaWtlIGBhcHBlbmRlcnNgICAgKlxuICAgKlxuICAgKiBAcGFyYW0ge0xvZ2dpbmdNYW5hZ2VyT3B0aW9uczxhbnk+fSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHt0aGlzPFJlY29yZD59XG4gICAqL1xuICBjb25maWd1cmUob3B0aW9uczogTG9nZ2luZ01hbmFnZXJPcHRpb25zPGFueT4pOiB0aGlzIHtcbiAgICBpZiAoTGV2ZWxbb3B0aW9ucz8ucm9vdExldmVsXSkge1xuICAgICAgdGhpcy5zZXRSb290TGV2ZWwob3B0aW9ucy5yb290TGV2ZWwpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LmFwcGVuZGVycykge1xuICAgICAgdGhpcy5zZXRBcHBlbmRlcnMob3B0aW9ucy5hcHBlbmRlcnMpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnM/LnRocmVzaG9sZE92ZXJyaWRlcykge1xuICAgICAgdGhpcy5hZGRUaHJlc2hvbGRPdmVycmlkZXMoLi4ub3B0aW9ucy50aHJlc2hvbGRPdmVycmlkZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jb25maWd1cmUoe30pXG4gIH1cblxuICAvKipcbiAgICogU2luZ2xldG9uIGluc3RhbmNlXG4gICAqXG4gICAqIEB0eXBlIHtMb2dnaW5nTWFuYWdlcn1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIG1hbmFnZXI6IExvZ2dpbmdNYW5hZ2VyXG5cbiAgLyoqXG4gICAqIEdldCBsb2dnaW5nIG1hbmFnZXIgYW5kIG9wdGlvbmFsbHkgcHJvdmlkZWRcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqXG4gICAqIEBwYXJhbSB7TG9nZ2luZ01hbmFnZXJPcHRpb25zPFJlY29yZD59IG9wdGlvbnNcbiAgICogQHJldHVybnMge0xvZ2dpbmdNYW5hZ2VyPFJlY29yZD59XG4gICAqL1xuICBzdGF0aWMgZ2V0PFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4oXG4gICAgb3B0aW9uczogTG9nZ2luZ01hbmFnZXJPcHRpb25zPFJlY29yZD4gPSBudWxsXG4gICk6IExvZ2dpbmdNYW5hZ2VyPFJlY29yZD4ge1xuICAgIGlmICghdGhpcy5tYW5hZ2VyKSB7XG4gICAgICB0aGlzLm1hbmFnZXIgPSBuZXcgTG9nZ2luZ01hbmFnZXI8UmVjb3JkPigpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMubWFuYWdlci5jb25maWd1cmUob3B0aW9ucylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYW5hZ2VyXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dpbmdNYW5hZ2VyKCk6IExvZ2dpbmdNYW5hZ2VyIHtcbiAgcmV0dXJuIExvZ2dpbmdNYW5hZ2VyLmdldCgpXG59XG5cbmlmIChPcHRpb24udHJ5KCgpID0+IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcImRldmVsb3BtZW50XCIpLmdldE9yRWxzZShmYWxzZSkpIHtcbiAgO1tcbiAgICB0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdyxcbiAgICB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiICYmIGdsb2JhbFxuICBdXG4gICAgLmZpbHRlcihpc09iamVjdClcbiAgICAubWFwKHRhcmdldCA9PlxuICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHtcbiAgICAgICAgbG9nZ2luZ01hbmFnZXI6IGdldExvZ2dpbmdNYW5hZ2VyKClcbiAgICAgIH0pXG4gICAgKVxufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleAppender.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/ConsoleAppender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAQ7C;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,aAZG,GAAG,EAAE,KAAK,GAAG,CAkBpE;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;IACnE,YAAY,EAAE,OAAO,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,SAAS,IAAI,OAAO,CACpE,qBAAqB,CAAC,MAAM,CAAC,CAC9B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAUlD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBAI3C,CAAA;AAED;;;GAGG;AACH,qBAAa,eAAe,CAC1B,MAAM,SAAS,SAAS,CACxB,YAAW,QAAQ,CAAC,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;IAEtC;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS5B;;;;;OAKG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAMhD;;;OAGG;gBACS,OAAO,GAAE,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAM;CAMlE"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConsoleAppender = exports.kDefaultConsoleAppenderConfig = exports.consoleFormatter = void 0;
4
+ exports.getConsoleLogBinding = getConsoleLogBinding;
5
+ const prelude_ts_1 = require("@3fv/prelude-ts");
6
+ const consoleLogBindings = new Map();
7
+ function getBoundConsoleFn(level) {
8
+ return (console[level] ?? console.log).bind(console);
9
+ }
10
+ /**
11
+ * Get a cached console bound log function
12
+ *
13
+ * @param {LevelKind} level
14
+ * @returns {(...args: any[]) => any}
15
+ */
16
+ function getConsoleLogBinding(level) {
17
+ if (!consoleLogBindings.has(level)) {
18
+ consoleLogBindings.set(level, getBoundConsoleFn(level));
19
+ }
20
+ return consoleLogBindings.get(level);
21
+ }
22
+ const consoleFormatter = ({ level, message, data, args, category, timestamp }) => [
23
+ `[${category}] (${level}) ${message}`,
24
+ ...(Array.isArray(args) ? args : [args])
25
+ ];
26
+ exports.consoleFormatter = consoleFormatter;
27
+ /**
28
+ * Default console config
29
+ * @type {ConsoleAppenderConfig}
30
+ */
31
+ exports.kDefaultConsoleAppenderConfig = {
32
+ cacheEnabled: true,
33
+ prettyPrint: true,
34
+ formatter: exports.consoleFormatter
35
+ };
36
+ /**
37
+ * Console appender, the simple default appender used
38
+ * everywhere OOB
39
+ */
40
+ class ConsoleAppender {
41
+ config;
42
+ /**
43
+ * Handle log records, transform, push to ES
44
+ *
45
+ * @param record
46
+ */
47
+ append(record) {
48
+ const { level, message, data, args, category, timestamp } = record;
49
+ const { formatter = exports.consoleFormatter } = this.config;
50
+ prelude_ts_1.Option.ofNullable(formatter(record)).map(result => {
51
+ const args = Array.isArray(result) ? result : [result];
52
+ this.write(level, ...args);
53
+ });
54
+ }
55
+ /**
56
+ * Write args to console
57
+ *
58
+ * @param level
59
+ * @param args
60
+ */
61
+ write(level, ...args) {
62
+ prelude_ts_1.Option.ofNullable(console[level])
63
+ .orCall(() => prelude_ts_1.Option.ofNullable(console.log))
64
+ .map((fn) => fn.apply(console, args));
65
+ }
66
+ /**
67
+ *
68
+ * @param {Partial<ConsoleAppenderOptions<Record>>} options
69
+ */
70
+ constructor(options = {}) {
71
+ this.config = {
72
+ ...exports.kDefaultConsoleAppenderConfig,
73
+ ...options
74
+ };
75
+ }
76
+ }
77
+ exports.ConsoleAppender = ConsoleAppender;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc29sZUFwcGVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xvZ2dpbmcvYXBwZW5kZXJzL0NvbnNvbGVBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQkEsb0RBTUM7QUF0QkQsZ0RBQXdDO0FBSXhDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUE7QUFFeEUsU0FBUyxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN6QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsS0FBZ0I7SUFDbkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25DLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQWtCTSxNQUFNLGdCQUFnQixHQUEwQixDQUFDLEVBQ3RELEtBQUssRUFDTCxPQUFPLEVBQ1AsSUFBSSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IsU0FBUyxFQUNWLEVBQUUsRUFBRSxDQUFDO0lBQ0osSUFBSSxRQUFRLE9BQU8sS0FBSyxNQUFNLE9BQU8sRUFBRTtJQUN2QyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3pDLENBQUE7QUFWWSxRQUFBLGdCQUFnQixvQkFVNUI7QUFFRDs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUEwQjtJQUNsRSxZQUFZLEVBQUUsSUFBSTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixTQUFTLEVBQUUsd0JBQWdCO0NBQzVCLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLGVBQWU7SUFHakIsTUFBTSxDQUF1QjtJQUV0Qzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLE1BQWM7UUFDbkIsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ2xFLE1BQU0sRUFBRSxTQUFTLEdBQUcsd0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFBO1FBQ3BELG1CQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUM1QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLEtBQUssQ0FBQyxLQUFnQixFQUFFLEdBQUcsSUFBVztRQUM5QyxtQkFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QyxHQUFHLENBQUMsQ0FBQyxFQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksVUFBbUQsRUFBRTtRQUMvRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osR0FBRyxxQ0FBNkI7WUFDaEMsR0FBRyxPQUFPO1NBQ1gsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQXpDRCwwQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ1JlY29yZCB9IGZyb20gXCIuLi9Mb2dSZWNvcmRcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuLi9BcHBlbmRlclwiXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tIFwiQDNmdi9wcmVsdWRlLXRzXCJcbmltcG9ydCB0eXBlIHsgTGV2ZWxLaW5kIH0gZnJvbSBcIi4uL0xldmVsXCJcbmltcG9ydCB0eXBlIHsgRm9ybWF0dGVyIH0gZnJvbSBcIi4uL0Zvcm1hdHRlclwiXG5cbmNvbnN0IGNvbnNvbGVMb2dCaW5kaW5ncyA9IG5ldyBNYXA8TGV2ZWxLaW5kLCAoLi4uYXJnczogYW55W10pID0+IGFueT4oKVxuXG5mdW5jdGlvbiBnZXRCb3VuZENvbnNvbGVGbihsZXZlbDogTGV2ZWxLaW5kKSB7XG4gIHJldHVybiAoY29uc29sZVtsZXZlbF0gPz8gY29uc29sZS5sb2cpLmJpbmQoY29uc29sZSlcbn1cblxuLyoqXG4gKiBHZXQgYSBjYWNoZWQgY29uc29sZSBib3VuZCBsb2cgZnVuY3Rpb25cbiAqXG4gKiBAcGFyYW0ge0xldmVsS2luZH0gbGV2ZWxcbiAqIEByZXR1cm5zIHsoLi4uYXJnczogYW55W10pID0+IGFueX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnNvbGVMb2dCaW5kaW5nKGxldmVsOiBMZXZlbEtpbmQpIHtcbiAgaWYgKCFjb25zb2xlTG9nQmluZGluZ3MuaGFzKGxldmVsKSkge1xuICAgIGNvbnNvbGVMb2dCaW5kaW5ncy5zZXQobGV2ZWwsIGdldEJvdW5kQ29uc29sZUZuKGxldmVsKSlcbiAgfVxuXG4gIHJldHVybiBjb25zb2xlTG9nQmluZGluZ3MuZ2V0KGxldmVsKVxufVxuXG4vKipcbiAqIENvbnNvbGVBcHBlbmRlciBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc29sZUFwcGVuZGVyQ29uZmlnPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBjYWNoZUVuYWJsZWQ6IGJvb2xlYW5cbiAgcHJldHR5UHJpbnQ6IGJvb2xlYW5cbiAgZm9ybWF0dGVyPzogRm9ybWF0dGVyPHN0cmluZyB8IEFycmF5PGFueT4+XG59XG5cbi8qKlxuICogUGFydGlhbCBvZiBjb25maWcsIHVzZWQgZm9yIHNob3J0ZW5pbmcgaW5zdGVhZCBvZiBQYXJ0aWFsPC4uLj5cbiAqL1xuZXhwb3J0IHR5cGUgQ29uc29sZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQ+ID0gUGFydGlhbDxcbiAgQ29uc29sZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cbj5cblxuZXhwb3J0IGNvbnN0IGNvbnNvbGVGb3JtYXR0ZXI6IEZvcm1hdHRlcjxBcnJheTxhbnk+PiA9ICh7XG4gIGxldmVsLFxuICBtZXNzYWdlLFxuICBkYXRhLFxuICBhcmdzLFxuICBjYXRlZ29yeSxcbiAgdGltZXN0YW1wXG59KSA9PiBbXG4gIGBbJHtjYXRlZ29yeX1dICAoJHtsZXZlbH0pICAke21lc3NhZ2V9YCxcbiAgLi4uKEFycmF5LmlzQXJyYXkoYXJncykgPyBhcmdzIDogW2FyZ3NdKVxuXVxuXG4vKipcbiAqIERlZmF1bHQgY29uc29sZSBjb25maWdcbiAqIEB0eXBlIHtDb25zb2xlQXBwZW5kZXJDb25maWd9XG4gKi9cbmV4cG9ydCBjb25zdCBrRGVmYXVsdENvbnNvbGVBcHBlbmRlckNvbmZpZzogQ29uc29sZUFwcGVuZGVyQ29uZmlnID0ge1xuICBjYWNoZUVuYWJsZWQ6IHRydWUsXG4gIHByZXR0eVByaW50OiB0cnVlLFxuICBmb3JtYXR0ZXI6IGNvbnNvbGVGb3JtYXR0ZXJcbn1cblxuLyoqXG4gKiBDb25zb2xlIGFwcGVuZGVyLCB0aGUgc2ltcGxlIGRlZmF1bHQgYXBwZW5kZXIgdXNlZFxuICogZXZlcnl3aGVyZSBPT0JcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnNvbGVBcHBlbmRlcjxcbiAgUmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkXG4+IGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPiB7XG4gIHJlYWRvbmx5IGNvbmZpZzogQ29uc29sZUFwcGVuZGVyQ29uZmlnXG5cbiAgLyoqXG4gICAqIEhhbmRsZSBsb2cgcmVjb3JkcywgdHJhbnNmb3JtLCBwdXNoIHRvIEVTXG4gICAqXG4gICAqIEBwYXJhbSByZWNvcmRcbiAgICovXG4gIGFwcGVuZChyZWNvcmQ6IFJlY29yZCk6IHZvaWQge1xuICAgIGNvbnN0IHsgbGV2ZWwsIG1lc3NhZ2UsIGRhdGEsIGFyZ3MsIGNhdGVnb3J5LCB0aW1lc3RhbXAgfSA9IHJlY29yZFxuICAgIGNvbnN0IHsgZm9ybWF0dGVyID0gY29uc29sZUZvcm1hdHRlciB9ID0gdGhpcy5jb25maWdcbiAgICBPcHRpb24ub2ZOdWxsYWJsZShmb3JtYXR0ZXIocmVjb3JkKSkubWFwKHJlc3VsdCA9PiB7XG4gICAgICBjb25zdCBhcmdzID0gQXJyYXkuaXNBcnJheShyZXN1bHQpID8gcmVzdWx0IDogW3Jlc3VsdF1cbiAgICAgIHRoaXMud3JpdGUobGV2ZWwsIC4uLmFyZ3MpXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBhcmdzIHRvIGNvbnNvbGVcbiAgICpcbiAgICogQHBhcmFtIGxldmVsXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqL1xuICBwcm90ZWN0ZWQgd3JpdGUobGV2ZWw6IExldmVsS2luZCwgLi4uYXJnczogYW55W10pIHtcbiAgICBPcHRpb24ub2ZOdWxsYWJsZShjb25zb2xlW2xldmVsXSlcbiAgICAgIC5vckNhbGwoKCkgPT4gT3B0aW9uLm9mTnVsbGFibGUoY29uc29sZS5sb2cpKVxuICAgICAgLm1hcCgoZm46IEZ1bmN0aW9uKSA9PiBmbi5hcHBseShjb25zb2xlLCBhcmdzKSlcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8Q29uc29sZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQ+Pn0gb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogUGFydGlhbDxDb25zb2xlQXBwZW5kZXJPcHRpb25zPFJlY29yZD4+ID0ge30pIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIC4uLmtEZWZhdWx0Q29uc29sZUFwcGVuZGVyQ29uZmlnLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileAppender.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/FileAppender.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAsB/B,MAAM,WAAW,kBAAkB,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG;IAChE,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,SAAS,GAAG,GAAG,IAAI,OAAO,CACvE,kBAAkB,CAAC,MAAM,CAAC,CAC3B,CAAA;AAED,qBAAa,YAAY,CACvB,MAAM,SAAS,SAAS,CACxB,YAAW,QAAQ,CAAC,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;IAE3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAiBrB;IAED,IAAI,aAAa,YAEhB;IAED,OAAO;IAIP;;;;OAIG;IACH,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC;IA2B7B;;;;;;;OAOG;IACH,QAAQ;IAkDR;;;;OAIG;IACH,KAAK;IAML,IAAI,KAAK,8BAER;IAED,IAAI,IAAI,WAEP;IAED,IAAI,QAAQ,YAEX;IAED,IAAI,QAAQ,WAEX;IAED;;OAEG;IACH,OAAO,CAAC,KAAK;IAoCb;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAsB5B;;;OAGG;gBACS,OAAO,GAAE,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAM;CAW/D"}