@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
@@ -1,183 +0,0 @@
1
- import { assert, getValue, isString, isDefined, isFunction, isNumber } from "../guards/index.js";
2
- import { Option } from "prelude-ts";
3
- import { isObject, pick } from "lodash";
4
- import { LevelThresholds } from "./Level.js";
5
- import { isLogLevelKind } from "./util.js";
6
- export const filenameCategoryInterpolator = (filename) => {
7
- const allParts = filename.replaceAll("\\", "/").split("/");
8
- const rootIndex = Math.max(...["src", "lib"].map((name) => allParts.indexOf(name)));
9
- const parts = rootIndex === -1 ? [allParts.pop()] : allParts.slice(rootIndex + 1);
10
- const category = Option.of(parts.join(":"))
11
- .flatMap((cat) => Option.of(cat.lastIndexOf(".")).map((index) => index === -1 ? cat : cat.slice(0, index)))
12
- .getOrElse("unknown");
13
- return category;
14
- };
15
- export const defaultLoggerOptions = {
16
- categoryInterpolator: filenameCategoryInterpolator,
17
- overrideAppenders: []
18
- };
19
- export function toLogRecord(logger, levelOrRecord, args) {
20
- const globalMetadata = logger.manager.globalMetadata;
21
- let metadata = {
22
- ...globalMetadata
23
- };
24
- if (isString(levelOrRecord) && isObject(args[0])) {
25
- metadata = { ...metadata, ...args.shift() };
26
- }
27
- if (globalMetadata?.data)
28
- metadata.data = {
29
- ...globalMetadata.data,
30
- ...metadata.data
31
- };
32
- const errRecord = Option.ofNullable(args.find((arg) => (isString(arg?.message) && !!arg.stack) || arg instanceof Error)).match({
33
- Some: (err) => ({
34
- errorMessage: getValue(() => err.message),
35
- errorStack: getValue(() => err.stack)
36
- }),
37
- None: () => ({})
38
- });
39
- const recordBase = isString(levelOrRecord)
40
- ? {
41
- ...pick(logger, ["category"]),
42
- timestamp: Date.now(),
43
- message: args[0],
44
- level: levelOrRecord,
45
- args: args.slice(1)
46
- }
47
- : levelOrRecord;
48
- const record = {
49
- ...recordBase,
50
- ...errRecord,
51
- ...metadata,
52
- timestamp: isNumber(recordBase.timestamp) && recordBase.timestamp > 0 ? recordBase.timestamp : Date.now(),
53
- };
54
- if (metadata.data) {
55
- record.data = {
56
- ...metadata.data,
57
- ...(recordBase.data ?? {})
58
- };
59
- }
60
- return record;
61
- }
62
- export class Logger {
63
- manager;
64
- category;
65
- options;
66
- state = {
67
- overrideLevel: null
68
- };
69
- get overrideLevel() {
70
- return Option.ofNullable(this.state.overrideLevel)
71
- .filter(isLogLevelKind) //Predicate.of<LevelKind>(isString).and(isLogLevelKind))
72
- .getOrNull();
73
- }
74
- get overrideThreshold() {
75
- return Option.ofNullable(this.overrideLevel)
76
- .map((level) => LevelThresholds[level])
77
- .getOrNull();
78
- }
79
- setOverrideLevel(inOverrideLevel) {
80
- const overrideLevel = (!inOverrideLevel ? null : inOverrideLevel.toLocaleLowerCase());
81
- assert(!isDefined(overrideLevel) || isLogLevelKind(overrideLevel), `Invalid override level, must be a log level, all lower case`);
82
- Object.assign(this.state, {
83
- overrideLevel
84
- });
85
- return this;
86
- }
87
- log(levelOrRecord, ...args) {
88
- const record = toLogRecord(this, levelOrRecord, args);
89
- if (this.options.overrideAppenders.length) {
90
- this.options.overrideAppenders.forEach((appender) => appender.append(record));
91
- }
92
- else {
93
- this.manager.fire(record);
94
- }
95
- }
96
- /**
97
- * Factory for the log
98
- * level functions
99
- *
100
- * @param {LevelKind} level
101
- * @returns {(message: string, ...args: any[]) => void}
102
- * @private
103
- */
104
- createLevelLogger(level) {
105
- const isEnabled = this.createLevelEnabled(level);
106
- return (message, ...args) => {
107
- if (isEnabled()) {
108
- this.log(level, message, ...args);
109
- }
110
- };
111
- }
112
- /**
113
- * Factory for is<Level>Enabled
114
- *
115
- * @param {LevelKind} level
116
- * @returns {() => boolean}
117
- * @private
118
- */
119
- createLevelEnabled(level) {
120
- return () => {
121
- const { rootThreshold } = this.manager;
122
- const globalOverrideThreshold = this.manager.determineThresholdOverride(this.category);
123
- const categoryThresholds = isNumber(this.overrideThreshold) ? [this.overrideThreshold] : [
124
- globalOverrideThreshold,
125
- rootThreshold
126
- ].filter(isNumber);
127
- const categoryThreshold = Math.min(...categoryThresholds);
128
- const recordThreshold = LevelThresholds[level];
129
- return recordThreshold >= categoryThreshold;
130
- };
131
- }
132
- trace = this.createLevelLogger("trace");
133
- debug = this.createLevelLogger("debug");
134
- info = this.createLevelLogger("info");
135
- warn = this.createLevelLogger("warn");
136
- error = this.createLevelLogger("error");
137
- fatal = this.createLevelLogger("fatal");
138
- isTraceEnabled = this.createLevelEnabled("trace");
139
- isDebugEnabled = this.createLevelEnabled("debug");
140
- isInfoEnabled = this.createLevelEnabled("info");
141
- isWarnEnabled = this.createLevelEnabled("warn");
142
- isErrorEnabled = this.createLevelEnabled("error");
143
- isFatalEnabled = this.createLevelEnabled("fatal");
144
- assert(test, message, ...args) {
145
- const isTruthy = isFunction(test) ? test() : test;
146
- if (isTruthy) {
147
- return;
148
- }
149
- this.error(message, ...args);
150
- }
151
- assertFatal(test, message, exitCode = 1) {
152
- const isTruthy = isFunction(test) ? test() : test;
153
- if (isTruthy) {
154
- return;
155
- }
156
- this.fatal("FATAL ASSERTION: ", message);
157
- if (typeof process !== "undefined") {
158
- process.exit(exitCode);
159
- }
160
- else {
161
- console.error("FATAL ASSERTION: `process` is not defined, probably in a web browser");
162
- }
163
- }
164
- constructor(manager, category, options) {
165
- this.manager = manager;
166
- this.category = category;
167
- this.options = options;
168
- }
169
- static hydrateOptions(options = {}) {
170
- return {
171
- ...defaultLoggerOptions,
172
- ...options
173
- };
174
- }
175
- static interoplateCategory(category, options) {
176
- options = {
177
- ...defaultLoggerOptions,
178
- ...options
179
- };
180
- return options.categoryInterpolator(category, options);
181
- }
182
- }
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xvZ2dpbmcvTG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2hHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkMsT0FBTyxFQUFhLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDbEQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUd2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBYTFDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUF5QixDQUNoRSxRQUFnQixFQUNoQixFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hELENBQUE7SUFDRCxNQUFNLEtBQUssR0FDVCxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNmLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQzVDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDekMsQ0FDRjtTQUNBLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN2QixPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBa0I7SUFDakQsb0JBQW9CLEVBQUUsNEJBQTRCO0lBQ2xELGlCQUFpQixFQUFFLEVBQUU7Q0FDdEIsQ0FBQTtBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3pCLE1BQWMsRUFDZCxhQUFvQyxFQUNwQyxJQUFXO0lBRVgsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUE7SUFDcEQsSUFBSSxRQUFRLEdBQWdCO1FBQzFCLEdBQUcsY0FBYztLQUNsQixDQUFBO0lBQ0QsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakQsUUFBUSxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsSUFBSSxjQUFjLEVBQUUsSUFBSTtRQUN0QixRQUFRLENBQUMsSUFBSSxHQUFHO1lBQ2QsR0FBRyxjQUFjLENBQUMsSUFBSTtZQUN0QixHQUFHLFFBQVEsQ0FBQyxJQUFJO1NBQ2pCLENBQUE7SUFFSCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQ3BGLENBQUMsS0FBSyxDQUFDO1FBQ04sSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2QsWUFBWSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3pDLFVBQVUsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztTQUN0QyxDQUFDO1FBQ0YsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2pCLENBQUMsQ0FBQTtJQUVGLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDeEMsQ0FBQyxDQUFFO1lBQ0QsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDaEIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDZixDQUFDLENBQUMsYUFBYSxDQUFBO0lBRWpCLE1BQU0sTUFBTSxHQUFHO1FBRWIsR0FBRyxVQUFVO1FBQ2IsR0FBRyxTQUFTO1FBQ1osR0FBRyxRQUFRO1FBQ1gsU0FBUyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7S0FDMUcsQ0FBQTtJQUVELElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxJQUFJLEdBQUc7WUFDWixHQUFHLFFBQVEsQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUMzQixDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQU1ELE1BQU0sT0FBTyxNQUFNO0lBbUlOO0lBQ0E7SUFDQTtJQXBJRixLQUFLLEdBQWdCO1FBQzVCLGFBQWEsRUFBRSxJQUFJO0tBQ3BCLENBQUE7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7YUFDL0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLHdEQUF3RDthQUMvRSxTQUFTLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDekMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEMsU0FBUyxFQUFFLENBQUE7SUFDaEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLGVBQTBCO1FBQ3pDLE1BQU0sYUFBYSxHQUFHLENBQ3BCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUNqRCxDQUFBO1FBRWQsTUFBTSxDQUNKLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxhQUFhLENBQUMsRUFDMUQsNkRBQTZELENBQzlELENBQUE7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDeEIsYUFBYTtTQUNkLENBQUMsQ0FBQTtRQUVGLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQVVELEdBQUcsQ0FBQyxhQUFvQyxFQUFFLEdBQUcsSUFBVztRQUN0RCxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUMvRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLGlCQUFpQixDQUFDLEtBQWdCO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoRCxPQUFPLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7WUFDekMsSUFBSSxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtZQUNuQyxDQUFDO1FBQ0gsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGtCQUFrQixDQUFDLEtBQWdCO1FBQ3pDLE9BQU8sR0FBRyxFQUFFO1lBQ1YsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUE7WUFFdEMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUN0RixNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZGLHVCQUF1QjtnQkFDdkIsYUFBYTthQUNkLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBRWxCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUE7WUFFekQsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBRTlDLE9BQU8sZUFBZSxJQUFJLGlCQUFpQixDQUFBO1FBQzdDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFUSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNyQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JDLEtBQUssR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdkMsS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUV2QyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2pELGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakQsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQy9DLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDakQsY0FBYyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUUxRCxNQUFNLENBQUMsSUFBK0IsRUFBRSxPQUFlLEVBQUUsR0FBRyxJQUFXO1FBQ3JFLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUNqRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsT0FBTTtRQUNSLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBK0IsRUFBRSxPQUFlLEVBQUUsV0FBbUIsQ0FBQztRQUNoRixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7UUFDakQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUN4QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDeEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUE7UUFDdkYsQ0FBQztJQUNILENBQUM7SUFFRCxZQUNXLE9BQXVCLEVBQ3ZCLFFBQWdCLEVBQ2hCLE9BQXNCO1FBRnRCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUM3QixDQUFDO0lBRUwsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFrQyxFQUFFO1FBQ3hELE9BQU87WUFDTCxHQUFHLG9CQUFvQjtZQUN2QixHQUFHLE9BQU87U0FDWCxDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFnQixFQUFFLE9BQXNCO1FBQ2pFLE9BQU8sR0FBRztZQUNSLEdBQUcsb0JBQW9CO1lBQ3ZCLEdBQUcsT0FBTztTQUNYLENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDeEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0LCBnZXRWYWx1ZSwgaXNTdHJpbmcsIGlzRGVmaW5lZCwgaXNGdW5jdGlvbiwgaXNOdW1iZXIgfSBmcm9tIFwiLi4vZ3VhcmRzL2luZGV4LmpzXCJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCJwcmVsdWRlLXRzXCJcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNPYmplY3QsIHBpY2sgfSBmcm9tIFwibG9kYXNoXCJcbmltcG9ydCB7IExldmVsS2luZCwgTGV2ZWxUaHJlc2hvbGRzIH0gZnJvbSBcIi4vTGV2ZWwuanNcIlxuaW1wb3J0IHR5cGUgeyBMb2dnaW5nTWFuYWdlciB9IGZyb20gXCIuL0xvZ2dpbmdNYW5hZ2VyLmpzXCJcbmltcG9ydCB0eXBlIHsgTG9nTWV0YWRhdGEsIExvZ1JlY29yZCB9IGZyb20gXCIuL0xvZ1JlY29yZC5qc1wiXG5pbXBvcnQgeyBpc0xvZ0xldmVsS2luZCB9IGZyb20gXCIuL3V0aWwuanNcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuL0FwcGVuZGVyLmpzXCJcblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXJPcHRpb25zIHtcbiAgY2F0ZWdvcnlJbnRlcnBvbGF0b3I6IENhdGVnb3J5SW50ZXJwb2xhdG9yXG4gIG92ZXJyaWRlQXBwZW5kZXJzOiBBcnJheTxBcHBlbmRlcjxMb2dSZWNvcmQ+PlxufVxuXG5leHBvcnQgdHlwZSBDYXRlZ29yeUludGVycG9sYXRvciA9IChcbiAgaW5DYXRlZ29yeTogc3RyaW5nLFxuICBvcHRpb25zPzogTG9nZ2VyT3B0aW9uc1xuKSA9PiBzdHJpbmdcblxuZXhwb3J0IGNvbnN0IGZpbGVuYW1lQ2F0ZWdvcnlJbnRlcnBvbGF0b3I6IENhdGVnb3J5SW50ZXJwb2xhdG9yID0gKFxuICBmaWxlbmFtZTogc3RyaW5nXG4pID0+IHtcbiAgY29uc3QgYWxsUGFydHMgPSBmaWxlbmFtZS5yZXBsYWNlQWxsKFwiXFxcXFwiLCBcIi9cIikuc3BsaXQoXCIvXCIpXG4gIGNvbnN0IHJvb3RJbmRleCA9IE1hdGgubWF4KFxuICAgIC4uLltcInNyY1wiLCBcImxpYlwiXS5tYXAoKG5hbWUpID0+IGFsbFBhcnRzLmluZGV4T2YobmFtZSkpXG4gIClcbiAgY29uc3QgcGFydHMgPVxuICAgIHJvb3RJbmRleCA9PT0gLTEgPyBbYWxsUGFydHMucG9wKCldIDogYWxsUGFydHMuc2xpY2Uocm9vdEluZGV4ICsgMSlcbiAgY29uc3QgY2F0ZWdvcnkgPSBPcHRpb24ub2YocGFydHMuam9pbihcIjpcIikpXG4gICAgLmZsYXRNYXAoKGNhdCkgPT5cbiAgICAgIE9wdGlvbi5vZihjYXQubGFzdEluZGV4T2YoXCIuXCIpKS5tYXAoKGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gLTEgPyBjYXQgOiBjYXQuc2xpY2UoMCwgaW5kZXgpXG4gICAgICApXG4gICAgKVxuICAgIC5nZXRPckVsc2UoXCJ1bmtub3duXCIpXG4gIHJldHVybiBjYXRlZ29yeVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ2dlck9wdGlvbnM6IExvZ2dlck9wdGlvbnMgPSB7XG4gIGNhdGVnb3J5SW50ZXJwb2xhdG9yOiBmaWxlbmFtZUNhdGVnb3J5SW50ZXJwb2xhdG9yLFxuICBvdmVycmlkZUFwcGVuZGVyczogW11cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTG9nUmVjb3JkKFxuICBsb2dnZXI6IExvZ2dlcixcbiAgbGV2ZWxPclJlY29yZDogTGV2ZWxLaW5kIHwgTG9nUmVjb3JkLFxuICBhcmdzOiBhbnlbXVxuKSB7XG4gIGNvbnN0IGdsb2JhbE1ldGFkYXRhID0gbG9nZ2VyLm1hbmFnZXIuZ2xvYmFsTWV0YWRhdGFcbiAgbGV0IG1ldGFkYXRhOiBMb2dNZXRhZGF0YSA9IHtcbiAgICAuLi5nbG9iYWxNZXRhZGF0YVxuICB9XG4gIGlmIChpc1N0cmluZyhsZXZlbE9yUmVjb3JkKSAmJiBpc09iamVjdChhcmdzWzBdKSkge1xuICAgIG1ldGFkYXRhID0geyAuLi5tZXRhZGF0YSwgLi4uYXJncy5zaGlmdCgpIH1cbiAgfVxuXG4gIGlmIChnbG9iYWxNZXRhZGF0YT8uZGF0YSlcbiAgICBtZXRhZGF0YS5kYXRhID0ge1xuICAgICAgLi4uZ2xvYmFsTWV0YWRhdGEuZGF0YSxcbiAgICAgIC4uLm1ldGFkYXRhLmRhdGFcbiAgICB9XG5cbiAgY29uc3QgZXJyUmVjb3JkID0gT3B0aW9uLm9mTnVsbGFibGUoXG4gICAgYXJncy5maW5kKChhcmcpID0+IChpc1N0cmluZyhhcmc/Lm1lc3NhZ2UpICYmICEhYXJnLnN0YWNrKSB8fCBhcmcgaW5zdGFuY2VvZiBFcnJvcilcbiAgKS5tYXRjaCh7XG4gICAgU29tZTogKGVycikgPT4gKHtcbiAgICAgIGVycm9yTWVzc2FnZTogZ2V0VmFsdWUoKCkgPT4gZXJyLm1lc3NhZ2UpLFxuICAgICAgZXJyb3JTdGFjazogZ2V0VmFsdWUoKCkgPT4gZXJyLnN0YWNrKVxuICAgIH0pLFxuICAgIE5vbmU6ICgpID0+ICh7fSlcbiAgfSlcblxuICBjb25zdCByZWNvcmRCYXNlID0gaXNTdHJpbmcobGV2ZWxPclJlY29yZClcbiAgICA/ICh7XG4gICAgICAuLi5waWNrKGxvZ2dlciwgW1wiY2F0ZWdvcnlcIl0pLFxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgbWVzc2FnZTogYXJnc1swXSxcbiAgICAgIGxldmVsOiBsZXZlbE9yUmVjb3JkLFxuICAgICAgYXJnczogYXJncy5zbGljZSgxKVxuICAgIH0gYXMgTG9nUmVjb3JkKVxuICAgIDogbGV2ZWxPclJlY29yZFxuXG4gIGNvbnN0IHJlY29yZCA9IHtcblxuICAgIC4uLnJlY29yZEJhc2UsXG4gICAgLi4uZXJyUmVjb3JkLFxuICAgIC4uLm1ldGFkYXRhLFxuICAgIHRpbWVzdGFtcDogaXNOdW1iZXIocmVjb3JkQmFzZS50aW1lc3RhbXApICYmIHJlY29yZEJhc2UudGltZXN0YW1wID4gMCA/IHJlY29yZEJhc2UudGltZXN0YW1wIDogRGF0ZS5ub3coKSxcbiAgfVxuXG4gIGlmIChtZXRhZGF0YS5kYXRhKSB7XG4gICAgcmVjb3JkLmRhdGEgPSB7XG4gICAgICAuLi5tZXRhZGF0YS5kYXRhLFxuICAgICAgLi4uKHJlY29yZEJhc2UuZGF0YSA/PyB7fSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVjb3JkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyU3RhdGUge1xuICBvdmVycmlkZUxldmVsPzogTGV2ZWxLaW5kXG59XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuICByZWFkb25seSBzdGF0ZTogTG9nZ2VyU3RhdGUgPSB7XG4gICAgb3ZlcnJpZGVMZXZlbDogbnVsbFxuICB9XG5cbiAgZ2V0IG92ZXJyaWRlTGV2ZWwoKTogTGV2ZWxLaW5kIHtcbiAgICByZXR1cm4gT3B0aW9uLm9mTnVsbGFibGUodGhpcy5zdGF0ZS5vdmVycmlkZUxldmVsKVxuICAgICAgLmZpbHRlcihpc0xvZ0xldmVsS2luZCkgLy9QcmVkaWNhdGUub2Y8TGV2ZWxLaW5kPihpc1N0cmluZykuYW5kKGlzTG9nTGV2ZWxLaW5kKSlcbiAgICAgIC5nZXRPck51bGwoKVxuICB9XG5cbiAgZ2V0IG92ZXJyaWRlVGhyZXNob2xkKCkge1xuICAgIHJldHVybiBPcHRpb24ub2ZOdWxsYWJsZSh0aGlzLm92ZXJyaWRlTGV2ZWwpXG4gICAgICAubWFwKChsZXZlbCkgPT4gTGV2ZWxUaHJlc2hvbGRzW2xldmVsXSlcbiAgICAgIC5nZXRPck51bGwoKVxuICB9XG5cbiAgc2V0T3ZlcnJpZGVMZXZlbChpbk92ZXJyaWRlTGV2ZWw6IExldmVsS2luZCkge1xuICAgIGNvbnN0IG92ZXJyaWRlTGV2ZWwgPSAoXG4gICAgICAhaW5PdmVycmlkZUxldmVsID8gbnVsbCA6IGluT3ZlcnJpZGVMZXZlbC50b0xvY2FsZUxvd2VyQ2FzZSgpXG4gICAgKSBhcyBMZXZlbEtpbmRcblxuICAgIGFzc2VydChcbiAgICAgICFpc0RlZmluZWQob3ZlcnJpZGVMZXZlbCkgfHwgaXNMb2dMZXZlbEtpbmQob3ZlcnJpZGVMZXZlbCksXG4gICAgICBgSW52YWxpZCBvdmVycmlkZSBsZXZlbCwgbXVzdCBiZSBhIGxvZyBsZXZlbCwgYWxsIGxvd2VyIGNhc2VgXG4gICAgKVxuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLnN0YXRlLCB7XG4gICAgICBvdmVycmlkZUxldmVsXG4gICAgfSlcblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogQmFzZSBsb2dnaW5nIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSByZWNvcmRcbiAgICovXG4gIGxvZyhyZWNvcmQ6IExvZ1JlY29yZCk6IHZvaWRcbiAgbG9nKGxldmVsOiBMZXZlbEtpbmQsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkXG4gIGxvZyhsZXZlbDogTGV2ZWxLaW5kLCBtZXRhZGF0YTogTG9nTWV0YWRhdGEsIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkXG4gIGxvZyhsZXZlbE9yUmVjb3JkOiBMZXZlbEtpbmQgfCBMb2dSZWNvcmQsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgcmVjb3JkID0gdG9Mb2dSZWNvcmQodGhpcywgbGV2ZWxPclJlY29yZCwgYXJncylcbiAgICBpZiAodGhpcy5vcHRpb25zLm92ZXJyaWRlQXBwZW5kZXJzLmxlbmd0aCkge1xuICAgICAgdGhpcy5vcHRpb25zLm92ZXJyaWRlQXBwZW5kZXJzLmZvckVhY2goKGFwcGVuZGVyKSA9PiBhcHBlbmRlci5hcHBlbmQocmVjb3JkKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYW5hZ2VyLmZpcmUocmVjb3JkKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IGZvciB0aGUgbG9nXG4gICAqIGxldmVsIGZ1bmN0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0ge0xldmVsS2luZH0gbGV2ZWxcbiAgICogQHJldHVybnMgeyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkfVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVMZXZlbExvZ2dlcihsZXZlbDogTGV2ZWxLaW5kKTogKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pID0+IHZvaWQge1xuICAgIGNvbnN0IGlzRW5hYmxlZCA9IHRoaXMuY3JlYXRlTGV2ZWxFbmFibGVkKGxldmVsKVxuICAgIHJldHVybiAobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgaWYgKGlzRW5hYmxlZCgpKSB7XG4gICAgICAgIHRoaXMubG9nKGxldmVsLCBtZXNzYWdlLCAuLi5hcmdzKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IGZvciBpczxMZXZlbD5FbmFibGVkXG4gICAqXG4gICAqIEBwYXJhbSB7TGV2ZWxLaW5kfSBsZXZlbFxuICAgKiBAcmV0dXJucyB7KCkgPT4gYm9vbGVhbn1cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlTGV2ZWxFbmFibGVkKGxldmVsOiBMZXZlbEtpbmQpOiAoKSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgeyByb290VGhyZXNob2xkIH0gPSB0aGlzLm1hbmFnZXJcblxuICAgICAgY29uc3QgZ2xvYmFsT3ZlcnJpZGVUaHJlc2hvbGQgPSB0aGlzLm1hbmFnZXIuZGV0ZXJtaW5lVGhyZXNob2xkT3ZlcnJpZGUodGhpcy5jYXRlZ29yeSlcbiAgICAgIGNvbnN0IGNhdGVnb3J5VGhyZXNob2xkcyA9IGlzTnVtYmVyKHRoaXMub3ZlcnJpZGVUaHJlc2hvbGQpID8gW3RoaXMub3ZlcnJpZGVUaHJlc2hvbGRdIDogW1xuICAgICAgICBnbG9iYWxPdmVycmlkZVRocmVzaG9sZCxcbiAgICAgICAgcm9vdFRocmVzaG9sZFxuICAgICAgXS5maWx0ZXIoaXNOdW1iZXIpXG5cbiAgICAgIGNvbnN0IGNhdGVnb3J5VGhyZXNob2xkID0gTWF0aC5taW4oLi4uY2F0ZWdvcnlUaHJlc2hvbGRzKVxuXG4gICAgICBjb25zdCByZWNvcmRUaHJlc2hvbGQgPSBMZXZlbFRocmVzaG9sZHNbbGV2ZWxdXG5cbiAgICAgIHJldHVybiByZWNvcmRUaHJlc2hvbGQgPj0gY2F0ZWdvcnlUaHJlc2hvbGRcbiAgICB9XG4gIH1cblxuICByZWFkb25seSB0cmFjZSA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJ0cmFjZVwiKVxuICByZWFkb25seSBkZWJ1ZyA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJkZWJ1Z1wiKVxuICByZWFkb25seSBpbmZvID0gdGhpcy5jcmVhdGVMZXZlbExvZ2dlcihcImluZm9cIilcbiAgcmVhZG9ubHkgd2FybiA9IHRoaXMuY3JlYXRlTGV2ZWxMb2dnZXIoXCJ3YXJuXCIpXG4gIHJlYWRvbmx5IGVycm9yID0gdGhpcy5jcmVhdGVMZXZlbExvZ2dlcihcImVycm9yXCIpXG4gIHJlYWRvbmx5IGZhdGFsID0gdGhpcy5jcmVhdGVMZXZlbExvZ2dlcihcImZhdGFsXCIpXG5cbiAgcmVhZG9ubHkgaXNUcmFjZUVuYWJsZWQgPSB0aGlzLmNyZWF0ZUxldmVsRW5hYmxlZChcInRyYWNlXCIpXG4gIHJlYWRvbmx5IGlzRGVidWdFbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJkZWJ1Z1wiKVxuICByZWFkb25seSBpc0luZm9FbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJpbmZvXCIpXG4gIHJlYWRvbmx5IGlzV2FybkVuYWJsZWQgPSB0aGlzLmNyZWF0ZUxldmVsRW5hYmxlZChcIndhcm5cIilcbiAgcmVhZG9ubHkgaXNFcnJvckVuYWJsZWQgPSB0aGlzLmNyZWF0ZUxldmVsRW5hYmxlZChcImVycm9yXCIpXG4gIHJlYWRvbmx5IGlzRmF0YWxFbmFibGVkID0gdGhpcy5jcmVhdGVMZXZlbEVuYWJsZWQoXCJmYXRhbFwiKVxuXG4gIGFzc2VydCh0ZXN0OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgY29uc3QgaXNUcnV0aHkgPSBpc0Z1bmN0aW9uKHRlc3QpID8gdGVzdCgpIDogdGVzdFxuICAgIGlmIChpc1RydXRoeSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5lcnJvcihtZXNzYWdlLCAuLi5hcmdzKVxuICB9XG5cbiAgYXNzZXJ0RmF0YWwodGVzdDogYm9vbGVhbiB8ICgoKSA9PiBib29sZWFuKSwgbWVzc2FnZTogc3RyaW5nLCBleGl0Q29kZTogbnVtYmVyID0gMSkge1xuICAgIGNvbnN0IGlzVHJ1dGh5ID0gaXNGdW5jdGlvbih0ZXN0KSA/IHRlc3QoKSA6IHRlc3RcbiAgICBpZiAoaXNUcnV0aHkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuZmF0YWwoXCJGQVRBTCBBU1NFUlRJT046IFwiLCBtZXNzYWdlKVxuICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcHJvY2Vzcy5leGl0KGV4aXRDb2RlKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRkFUQUwgQVNTRVJUSU9OOiBgcHJvY2Vzc2AgaXMgbm90IGRlZmluZWQsIHByb2JhYmx5IGluIGEgd2ViIGJyb3dzZXJcIilcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBtYW5hZ2VyOiBMb2dnaW5nTWFuYWdlcixcbiAgICByZWFkb25seSBjYXRlZ29yeTogc3RyaW5nLFxuICAgIHJlYWRvbmx5IG9wdGlvbnM6IExvZ2dlck9wdGlvbnNcbiAgKSB7IH1cblxuICBzdGF0aWMgaHlkcmF0ZU9wdGlvbnMob3B0aW9uczogUGFydGlhbDxMb2dnZXJPcHRpb25zPiA9IHt9KTogTG9nZ2VyT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRMb2dnZXJPcHRpb25zLFxuICAgICAgLi4ub3B0aW9uc1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBpbnRlcm9wbGF0ZUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcsIG9wdGlvbnM6IExvZ2dlck9wdGlvbnMpIHtcbiAgICBvcHRpb25zID0ge1xuICAgICAgLi4uZGVmYXVsdExvZ2dlck9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmNhdGVnb3J5SW50ZXJwb2xhdG9yKGNhdGVnb3J5LCBvcHRpb25zKVxuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoggingManager.d.ts","sourceRoot":"","sources":["../../src/logging/LoggingManager.ts"],"names":[],"mappings":"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"}
@@ -1,243 +0,0 @@
1
- import { isNumber, isObject, isString } from "../guards/index.js";
2
- import { Option } from "prelude-ts";
3
- import { flatten, isEmpty, min, negate } from "lodash";
4
- import { ConsoleAppender } from "./appenders/ConsoleAppender.js";
5
- import { Level, LevelThresholds } from "./Level.js";
6
- import { Logger } from "./Logger.js";
7
- import { LogContextContainer } from "./context/index.js";
8
- import { flow, get, nth } from "lodash/fp.js";
9
- function parseThresholdOverridePatterns(value, level = "debug") {
10
- return value
11
- .split(",")
12
- .map((s) => [new RegExp(s), level]);
13
- }
14
- export const kEnvThresholdOverrides = Option.ofNullable(typeof process !== "undefined" && process.env.DEBUG_PATTERNS)
15
- .filter(negate(isEmpty))
16
- .map(parseThresholdOverridePatterns)
17
- .getOrElse([]);
18
- /**
19
- * Logging manager
20
- */
21
- export class LoggingManager {
22
- loggers = new Map();
23
- state = {
24
- appenders: [],
25
- globalMetadata: {},
26
- rootLevel: Level.info,
27
- thresholdOverrides: kEnvThresholdOverrides
28
- };
29
- get rootLevel() {
30
- return this.state.rootLevel;
31
- }
32
- get globalMetadata() {
33
- return this.state.globalMetadata;
34
- }
35
- set globalMetadata(newMetadata) {
36
- this.state.globalMetadata = newMetadata ?? {};
37
- }
38
- set rootLevel(newRootLevel) {
39
- this.state.rootLevel = newRootLevel;
40
- }
41
- get rootThreshold() {
42
- return LevelThresholds[this.rootLevel];
43
- }
44
- /**
45
- * Get the current handler
46
- *
47
- * @returns {Appender<Record>}
48
- */
49
- get appenders() {
50
- return Option.ofNullable(this.state.appenders)
51
- .filter((appenders) => appenders.length > 0)
52
- .getOrCall(() => {
53
- this.state.appenders.push(new ConsoleAppender());
54
- return this.state.appenders;
55
- });
56
- }
57
- /**
58
- * Global threshold overrides
59
- */
60
- get thresholdOverrides() {
61
- return this.state.thresholdOverrides;
62
- }
63
- /**
64
- * Update the overrides
65
- *
66
- * @param newOverrides
67
- */
68
- set thresholdOverrides(newOverrides) {
69
- this.state.thresholdOverrides = newOverrides;
70
- }
71
- /**
72
- * Set global appenders
73
- *
74
- * @param {Array<Appender<Record>>} newAppenders
75
- */
76
- setAppenders(...newAppenders) {
77
- // WE MUTATE DO TO THE LIKELIHOOD OF SOMEONE HOLDING A REF TO THE ARRAY,
78
- // CONVERT TO OBSERVABLE AT SOME POINT
79
- const persistentAppenders = this.state.appenders;
80
- persistentAppenders.length = 0;
81
- persistentAppenders.push(...flatten(newAppenders));
82
- return this;
83
- }
84
- /**
85
- * Add one or more appenders to existing appender set
86
- *
87
- * @param {Appender<Record> | Appender<Record>[]} newAppenders
88
- * @returns {this<Record>}
89
- */
90
- addAppenders(...newAppenders) {
91
- this.state.appenders.push(...flatten(newAppenders));
92
- return this;
93
- }
94
- /**
95
- * Clear threshold overrides
96
- *
97
- * @returns {this<Record>}
98
- */
99
- clearThresholdOverrides() {
100
- this.state.thresholdOverrides.length = 0;
101
- return this;
102
- }
103
- setThresholdOverrides(...overrides) {
104
- this.state.thresholdOverrides.length = 0;
105
- this.state.thresholdOverrides.push(...overrides);
106
- return this;
107
- }
108
- addThresholdOverrides(...overrides) {
109
- this.state.thresholdOverrides.push(...overrides);
110
- return this;
111
- }
112
- /**
113
- * Get applicable current contexts
114
- *
115
- * @param {string} category
116
- * @returns {LogContext[]}
117
- */
118
- getApplicableCurrentContexts(category) {
119
- return LogContextContainer.currentContext().filter(({ pattern }) => !pattern || pattern.test(category));
120
- }
121
- /**
122
- * Check for any matching threshold overrides
123
- *
124
- * @param category
125
- */
126
- determineThresholdOverride(category) {
127
- const contexts = this.getApplicableCurrentContexts(category),
128
- // FIND CONFIGURED OVERRIDE LEVEL
129
- overrideThreshold = Option.ofNullable(this.thresholdOverrides.find(([match]) => isString(match) ? match === category : match.test(category)))
130
- .map(nth(1))
131
- .map((level) => LevelThresholds[level])
132
- .getOrNull(),
133
- // FIND `LogContext` OVERRIDE LEVEL
134
- contextThresholds = contexts
135
- .filter(flow(get("thresholdLevel"), isString))
136
- .map(({ thresholdLevel }) => LevelThresholds[thresholdLevel]),
137
- // IF ANY OVERRIDES, GET THE MOST VERBOSE LEVEL
138
- override = Option.ofNullable([...contextThresholds, overrideThreshold].filter(isNumber))
139
- .filter(negate(isEmpty))
140
- .map(min)
141
- .getOrNull();
142
- return override;
143
- }
144
- /**
145
- * Set the root logging level
146
- *
147
- * @param {LevelKind} newLevel
148
- * @returns {this<Record>}
149
- */
150
- setRootLevel(newLevel) {
151
- this.state.rootLevel = newLevel;
152
- return this;
153
- }
154
- /**
155
- * Fire a log event, eventually
156
- * invert this by making `Logger` an
157
- * `EventEmitter3` and having the `LoggingManager`
158
- * subscribe to `record` event
159
- *
160
- * @param {LogRecord<Record>} record
161
- * @internal
162
- */
163
- fire(record) {
164
- const { category } = record, contexts = this.getApplicableCurrentContexts(category), contextAppenders = contexts.flatMap(get("appenders")), appenders = [...this.appenders, ...contextAppenders];
165
- appenders.forEach((appender) => appender.append(record));
166
- }
167
- /**
168
- * Get a logger from cache, if the category
169
- * does not have an existing logger, then create one.
170
- *
171
- * @param {string} categoryOrFilename
172
- * @param {Partial<LoggerOptions>} inOptions
173
- * @returns {Logger}
174
- */
175
- getLogger(categoryOrFilename, inOptions = {}) {
176
- const options = Logger.hydrateOptions(inOptions);
177
- const category = Logger.interoplateCategory(categoryOrFilename, options);
178
- return Option.ofNullable(category)
179
- .map((category) => this.loggers.get(category))
180
- .getOrCall(() => {
181
- const logger = new Logger(this, category, options);
182
- this.loggers.set(category, logger);
183
- return logger;
184
- });
185
- }
186
- /**
187
- * Configure the logging manager,
188
- * this function is additive, so simply calling
189
- * `configure` with a single option `rootLevel`,
190
- * will not affect other options like `appenders` *
191
- *
192
- * @param {LoggingManagerOptions<any>} options
193
- * @returns {this<Record>}
194
- */
195
- configure(options) {
196
- if (Level[options?.rootLevel]) {
197
- this.setRootLevel(options.rootLevel);
198
- }
199
- if (options?.appenders) {
200
- this.setAppenders(options.appenders);
201
- }
202
- if (options?.thresholdOverrides) {
203
- this.addThresholdOverrides(...options.thresholdOverrides);
204
- }
205
- return this;
206
- }
207
- constructor() {
208
- this.configure({});
209
- }
210
- /**
211
- * Singleton instance
212
- *
213
- * @type {LoggingManager}
214
- * @private
215
- */
216
- static manager;
217
- /**
218
- * Get logging manager and optionally provided
219
- * configuration options
220
- *
221
- * @param {LoggingManagerOptions<Record>} options
222
- * @returns {LoggingManager<Record>}
223
- */
224
- static get(options = null) {
225
- if (!this.manager) {
226
- this.manager = new LoggingManager();
227
- }
228
- if (options) {
229
- this.manager.configure(options);
230
- }
231
- return this.manager;
232
- }
233
- }
234
- export function getLoggingManager() {
235
- return LoggingManager.get();
236
- }
237
- if (Option.try_(() => process.env.NODE_ENV === "development").getOrElse(false)) {
238
- [typeof window !== "undefined" && window, typeof global !== "undefined" && global].filter(isObject)
239
- .map(target => Object.assign(target, {
240
- loggingManager: getLoggingManager()
241
- }));
242
- }
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9nZ2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9nZ2luZy9Mb2dnaW5nTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQWEsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQWlCLE1BQU0sYUFBYSxDQUFBO0FBRW5ELE9BQU8sRUFBYyxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQWlCN0MsU0FBUyw4QkFBOEIsQ0FDckMsS0FBYSxFQUNiLFFBQW1CLE9BQU87SUFFMUIsT0FBTyxLQUFLO1NBQ1QsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQXNCLENBQUMsQ0FBQTtBQUM1RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7S0FDbEgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN2QixHQUFHLENBQUMsOEJBQThCLENBQUM7S0FDbkMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRWhCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDUixPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7SUFFbkMsS0FBSyxHQUFnQztRQUNwRCxTQUFTLEVBQUUsRUFBRTtRQUNiLGNBQWMsRUFBRSxFQUFFO1FBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNyQixrQkFBa0IsRUFBRSxzQkFBc0I7S0FDM0MsQ0FBQTtJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUE7SUFDN0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxXQUF3QjtRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxXQUFXLElBQUksRUFBRSxDQUFBO0lBQy9DLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxZQUF1QjtRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUE7SUFDckMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksU0FBUztRQUNYLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQzthQUMzQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2FBQzNDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQyxDQUFBO1lBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUE7UUFDN0IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUE7SUFDdEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGtCQUFrQixDQUFDLFlBQWdDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsWUFBWSxDQUFBO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLEdBQUcsWUFBMEQ7UUFDeEUsd0VBQXdFO1FBQ3hFLHNDQUFzQztRQUN0QyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFBO1FBQ2hELG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUE7UUFDOUIsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7UUFFbEQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUMsR0FBRyxZQUEwRDtRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQTtRQUNuRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUN4QyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxHQUFHLFNBQW1DO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQUcsU0FBbUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQTtRQUNoRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILDRCQUE0QixDQUFDLFFBQWdCO1FBQzNDLE9BQU8sbUJBQW1CLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUNoRCxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3BELENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDBCQUEwQixDQUFDLFFBQWdCO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxRQUFRLENBQUM7UUFFNUQsaUNBQWlDO1FBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FDdkMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBRSxLQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDeEUsQ0FDRjthQUNFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFjLENBQUMsQ0FBQzthQUMvQyxTQUFTLEVBQUU7UUFDZCxtQ0FBbUM7UUFDbkMsaUJBQWlCLEdBQUcsUUFBUTthQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQzdDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvRCwrQ0FBK0M7UUFDL0MsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQzFCLENBQUMsR0FBRyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FDM0Q7YUFDRSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDUixTQUFTLEVBQUUsQ0FBQTtRQUVoQixPQUFPLFFBQWtCLENBQUE7SUFDM0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLFFBQW1CO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQTtRQUMvQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILElBQUksQ0FBQyxNQUF5QjtRQUM1QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxFQUN0RCxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNyRCxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRXRELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBZ0IsQ0FBQyxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFTLENBQ1Asa0JBQTBCLEVBQzFCLFlBQW9DLEVBQUU7UUFFdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNoRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFFeEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUMvQixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUNsQyxPQUFPLE1BQU0sQ0FBQTtRQUNmLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxDQUFDLE9BQW1DO1FBQzNDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RDLENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QyxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUMzRCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQ7UUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxPQUFPLENBQWdCO0lBRXRDOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQ1IsVUFBeUMsSUFBSTtRQUU3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQVUsQ0FBQTtRQUM3QyxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUE7SUFDckIsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtBQUM3QixDQUFDO0FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQy9FLENBQUMsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sRUFBRSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNoRyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNuQyxjQUFjLEVBQUUsaUJBQWlCLEVBQUU7S0FDcEMsQ0FBQyxDQUFDLENBQUE7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOdW1iZXIsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gXCIuLi9ndWFyZHMvaW5kZXguanNcIlxuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSBcInByZWx1ZGUtdHNcIlxuaW1wb3J0IHsgZmxhdHRlbiwgaXNFbXB0eSwgbWluLCBuZWdhdGUgfSBmcm9tIFwibG9kYXNoXCJcbmltcG9ydCB0eXBlIHsgQXBwZW5kZXIgfSBmcm9tIFwiLi9BcHBlbmRlci5qc1wiXG5pbXBvcnQgeyBDb25zb2xlQXBwZW5kZXIgfSBmcm9tIFwiLi9hcHBlbmRlcnMvQ29uc29sZUFwcGVuZGVyLmpzXCJcbmltcG9ydCB7IExldmVsLCBMZXZlbEtpbmQsIExldmVsVGhyZXNob2xkcyB9IGZyb20gXCIuL0xldmVsLmpzXCJcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2VyT3B0aW9ucyB9IGZyb20gXCIuL0xvZ2dlci5qc1wiXG5pbXBvcnQgdHlwZSB7IExvZ01ldGFkYXRhLCBMb2dSZWNvcmQgfSBmcm9tIFwiLi9Mb2dSZWNvcmQuanNcIlxuaW1wb3J0IHsgTG9nQ29udGV4dCwgTG9nQ29udGV4dENvbnRhaW5lciB9IGZyb20gXCIuL2NvbnRleHQvaW5kZXguanNcIlxuaW1wb3J0IHsgZmxvdywgZ2V0LCBudGggfSBmcm9tIFwibG9kYXNoL2ZwLmpzXCJcblxuZXhwb3J0IHR5cGUgQ2F0ZWdvcnlNYXRjaCA9IFJlZ0V4cCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBUaHJlc2hvbGRPdmVycmlkZSA9IFttYXRjaDogQ2F0ZWdvcnlNYXRjaCwgbGV2ZWw6IExldmVsS2luZF1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dnaW5nTWFuYWdlclN0YXRlPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZD4ge1xuICByb290TGV2ZWw6IExldmVsS2luZFxuICBnbG9iYWxNZXRhZGF0YT86IExvZ01ldGFkYXRhXG4gIGFwcGVuZGVyczogQXJyYXk8QXBwZW5kZXI8UmVjb3JkPj5cbiAgdGhyZXNob2xkT3ZlcnJpZGVzOiBBcnJheTxUaHJlc2hvbGRPdmVycmlkZT5cbn1cblxuZXhwb3J0IHR5cGUgTG9nZ2luZ01hbmFnZXJPcHRpb25zPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZD4gPSBQYXJ0aWFsPFxuICBMb2dnaW5nTWFuYWdlclN0YXRlPFJlY29yZD5cbj5cblxuZnVuY3Rpb24gcGFyc2VUaHJlc2hvbGRPdmVycmlkZVBhdHRlcm5zKFxuICB2YWx1ZTogc3RyaW5nLFxuICBsZXZlbDogTGV2ZWxLaW5kID0gXCJkZWJ1Z1wiXG4pOiBUaHJlc2hvbGRPdmVycmlkZVtdIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLnNwbGl0KFwiLFwiKVxuICAgIC5tYXAoKHMpID0+IFtuZXcgUmVnRXhwKHMpLCBsZXZlbF0gYXMgVGhyZXNob2xkT3ZlcnJpZGUpXG59XG5cbmV4cG9ydCBjb25zdCBrRW52VGhyZXNob2xkT3ZlcnJpZGVzID0gT3B0aW9uLm9mTnVsbGFibGUodHlwZW9mIHByb2Nlc3MgIT09IFwidW5kZWZpbmVkXCIgJiYgcHJvY2Vzcy5lbnYuREVCVUdfUEFUVEVSTlMpXG4gIC5maWx0ZXIobmVnYXRlKGlzRW1wdHkpKVxuICAubWFwKHBhcnNlVGhyZXNob2xkT3ZlcnJpZGVQYXR0ZXJucylcbiAgLmdldE9yRWxzZShbXSlcblxuLyoqXG4gKiBMb2dnaW5nIG1hbmFnZXJcbiAqL1xuZXhwb3J0IGNsYXNzIExvZ2dpbmdNYW5hZ2VyPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcnMgPSBuZXcgTWFwPHN0cmluZywgTG9nZ2VyPigpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZTogTG9nZ2luZ01hbmFnZXJTdGF0ZTxSZWNvcmQ+ID0ge1xuICAgIGFwcGVuZGVyczogW10sXG4gICAgZ2xvYmFsTWV0YWRhdGE6IHt9LFxuICAgIHJvb3RMZXZlbDogTGV2ZWwuaW5mbyxcbiAgICB0aHJlc2hvbGRPdmVycmlkZXM6IGtFbnZUaHJlc2hvbGRPdmVycmlkZXNcbiAgfVxuXG4gIGdldCByb290TGV2ZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucm9vdExldmVsXG4gIH1cblxuICBnZXQgZ2xvYmFsTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZ2xvYmFsTWV0YWRhdGFcbiAgfVxuXG4gIHNldCBnbG9iYWxNZXRhZGF0YShuZXdNZXRhZGF0YTogTG9nTWV0YWRhdGEpIHtcbiAgICB0aGlzLnN0YXRlLmdsb2JhbE1ldGFkYXRhID0gbmV3TWV0YWRhdGEgPz8ge31cbiAgfVxuXG4gIHNldCByb290TGV2ZWwobmV3Um9vdExldmVsOiBMZXZlbEtpbmQpIHtcbiAgICB0aGlzLnN0YXRlLnJvb3RMZXZlbCA9IG5ld1Jvb3RMZXZlbFxuICB9XG5cbiAgZ2V0IHJvb3RUaHJlc2hvbGQoKSB7XG4gICAgcmV0dXJuIExldmVsVGhyZXNob2xkc1t0aGlzLnJvb3RMZXZlbF1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgaGFuZGxlclxuICAgKlxuICAgKiBAcmV0dXJucyB7QXBwZW5kZXI8UmVjb3JkPn1cbiAgICovXG4gIGdldCBhcHBlbmRlcnMoKTogQXJyYXk8QXBwZW5kZXI8UmVjb3JkPj4ge1xuICAgIHJldHVybiBPcHRpb24ub2ZOdWxsYWJsZSh0aGlzLnN0YXRlLmFwcGVuZGVycylcbiAgICAgIC5maWx0ZXIoKGFwcGVuZGVycykgPT4gYXBwZW5kZXJzLmxlbmd0aCA+IDApXG4gICAgICAuZ2V0T3JDYWxsKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZS5hcHBlbmRlcnMucHVzaChuZXcgQ29uc29sZUFwcGVuZGVyKCkpXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlLmFwcGVuZGVyc1xuICAgICAgfSlcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdsb2JhbCB0aHJlc2hvbGQgb3ZlcnJpZGVzXG4gICAqL1xuICBnZXQgdGhyZXNob2xkT3ZlcnJpZGVzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnRocmVzaG9sZE92ZXJyaWRlc1xuICB9XG4gIFxuICAvKipcbiAgICogVXBkYXRlIHRoZSBvdmVycmlkZXNcbiAgICpcbiAgICogQHBhcmFtIG5ld092ZXJyaWRlc1xuICAgKi9cbiAgc2V0IHRocmVzaG9sZE92ZXJyaWRlcyhuZXdPdmVycmlkZXM6VGhyZXNob2xkT3ZlcnJpZGVbXSkge1xuICAgIHRoaXMuc3RhdGUudGhyZXNob2xkT3ZlcnJpZGVzID0gbmV3T3ZlcnJpZGVzXG4gIH1cbiAgXG4gIC8qKlxuICAgKiBTZXQgZ2xvYmFsIGFwcGVuZGVyc1xuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5PEFwcGVuZGVyPFJlY29yZD4+fSBuZXdBcHBlbmRlcnNcbiAgICovXG4gIHNldEFwcGVuZGVycyguLi5uZXdBcHBlbmRlcnM6IEFycmF5PEFwcGVuZGVyPFJlY29yZD4gfCBBcHBlbmRlcjxSZWNvcmQ+W10+KSB7XG4gICAgLy8gV0UgTVVUQVRFIERPIFRPIFRIRSBMSUtFTElIT09EIE9GIFNPTUVPTkUgSE9MRElORyBBIFJFRiBUTyBUSEUgQVJSQVksXG4gICAgLy8gQ09OVkVSVCBUTyBPQlNFUlZBQkxFIEFUIFNPTUUgUE9JTlRcbiAgICBjb25zdCBwZXJzaXN0ZW50QXBwZW5kZXJzID0gdGhpcy5zdGF0ZS5hcHBlbmRlcnNcbiAgICBwZXJzaXN0ZW50QXBwZW5kZXJzLmxlbmd0aCA9IDBcbiAgICBwZXJzaXN0ZW50QXBwZW5kZXJzLnB1c2goLi4uZmxhdHRlbihuZXdBcHBlbmRlcnMpKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuICBcbiAgLyoqXG4gICAqIEFkZCBvbmUgb3IgbW9yZSBhcHBlbmRlcnMgdG8gZXhpc3RpbmcgYXBwZW5kZXIgc2V0XG4gICAqXG4gICAqIEBwYXJhbSB7QXBwZW5kZXI8UmVjb3JkPiB8IEFwcGVuZGVyPFJlY29yZD5bXX0gbmV3QXBwZW5kZXJzXG4gICAqIEByZXR1cm5zIHt0aGlzPFJlY29yZD59XG4gICAqL1xuICBhZGRBcHBlbmRlcnMoLi4ubmV3QXBwZW5kZXJzOiBBcnJheTxBcHBlbmRlcjxSZWNvcmQ+IHwgQXBwZW5kZXI8UmVjb3JkPltdPik6IHRoaXMge1xuICAgIHRoaXMuc3RhdGUuYXBwZW5kZXJzLnB1c2goLi4uZmxhdHRlbihuZXdBcHBlbmRlcnMpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDbGVhciB0aHJlc2hvbGQgb3ZlcnJpZGVzXG4gICAqXG4gICAqIEByZXR1cm5zIHt0aGlzPFJlY29yZD59XG4gICAqL1xuICBjbGVhclRocmVzaG9sZE92ZXJyaWRlcygpOiB0aGlzIHtcbiAgICB0aGlzLnN0YXRlLnRocmVzaG9sZE92ZXJyaWRlcy5sZW5ndGggPSAwXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldFRocmVzaG9sZE92ZXJyaWRlcyguLi5vdmVycmlkZXM6IEFycmF5PFRocmVzaG9sZE92ZXJyaWRlPikge1xuICAgIHRoaXMuc3RhdGUudGhyZXNob2xkT3ZlcnJpZGVzLmxlbmd0aCA9IDBcbiAgICB0aGlzLnN0YXRlLnRocmVzaG9sZE92ZXJyaWRlcy5wdXNoKC4uLm92ZXJyaWRlcylcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgYWRkVGhyZXNob2xkT3ZlcnJpZGVzKC4uLm92ZXJyaWRlczogQXJyYXk8VGhyZXNob2xkT3ZlcnJpZGU+KSB7XG4gICAgdGhpcy5zdGF0ZS50aHJlc2hvbGRPdmVycmlkZXMucHVzaCguLi5vdmVycmlkZXMpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYXBwbGljYWJsZSBjdXJyZW50IGNvbnRleHRzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYXRlZ29yeVxuICAgKiBAcmV0dXJucyB7TG9nQ29udGV4dFtdfVxuICAgKi9cbiAgZ2V0QXBwbGljYWJsZUN1cnJlbnRDb250ZXh0cyhjYXRlZ29yeTogc3RyaW5nKTogTG9nQ29udGV4dFtdIHtcbiAgICByZXR1cm4gTG9nQ29udGV4dENvbnRhaW5lci5jdXJyZW50Q29udGV4dCgpLmZpbHRlcihcbiAgICAgICh7IHBhdHRlcm4gfSkgPT4gIXBhdHRlcm4gfHwgcGF0dGVybi50ZXN0KGNhdGVnb3J5KVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBmb3IgYW55IG1hdGNoaW5nIHRocmVzaG9sZCBvdmVycmlkZXNcbiAgICpcbiAgICogQHBhcmFtIGNhdGVnb3J5XG4gICAqL1xuICBkZXRlcm1pbmVUaHJlc2hvbGRPdmVycmlkZShjYXRlZ29yeTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCBjb250ZXh0cyA9IHRoaXMuZ2V0QXBwbGljYWJsZUN1cnJlbnRDb250ZXh0cyhjYXRlZ29yeSksXG4gICAgICBcbiAgICAvLyBGSU5EIENPTkZJR1VSRUQgT1ZFUlJJREUgTEVWRUxcbiAgICAgIG92ZXJyaWRlVGhyZXNob2xkID0gT3B0aW9uLm9mTnVsbGFibGUoXG4gICAgICAgIHRoaXMudGhyZXNob2xkT3ZlcnJpZGVzLmZpbmQoKFttYXRjaF0pID0+XG4gICAgICAgICAgaXNTdHJpbmcobWF0Y2gpID8gbWF0Y2ggPT09IGNhdGVnb3J5IDogKG1hdGNoIGFzIFJlZ0V4cCkudGVzdChjYXRlZ29yeSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgICAubWFwKG50aCgxKSlcbiAgICAgICAgLm1hcCgobGV2ZWwpID0+IExldmVsVGhyZXNob2xkc1tsZXZlbCBhcyBMZXZlbF0pXG4gICAgICAgIC5nZXRPck51bGwoKSxcbiAgICAgIC8vIEZJTkQgYExvZ0NvbnRleHRgIE9WRVJSSURFIExFVkVMXG4gICAgICBjb250ZXh0VGhyZXNob2xkcyA9IGNvbnRleHRzXG4gICAgICAgIC5maWx0ZXIoZmxvdyhnZXQoXCJ0aHJlc2hvbGRMZXZlbFwiKSwgaXNTdHJpbmcpKVxuICAgICAgICAubWFwKCh7IHRocmVzaG9sZExldmVsIH0pID0+IExldmVsVGhyZXNob2xkc1t0aHJlc2hvbGRMZXZlbF0pLFxuICAgICAgLy8gSUYgQU5ZIE9WRVJSSURFUywgR0VUIFRIRSBNT1NUIFZFUkJPU0UgTEVWRUxcbiAgICAgIG92ZXJyaWRlID0gT3B0aW9uLm9mTnVsbGFibGUoXG4gICAgICAgIFsuLi5jb250ZXh0VGhyZXNob2xkcywgb3ZlcnJpZGVUaHJlc2hvbGRdLmZpbHRlcihpc051bWJlcilcbiAgICAgIClcbiAgICAgICAgLmZpbHRlcihuZWdhdGUoaXNFbXB0eSkpXG4gICAgICAgIC5tYXAobWluKVxuICAgICAgICAuZ2V0T3JOdWxsKClcblxuICAgIHJldHVybiBvdmVycmlkZSBhcyBudW1iZXJcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNldCB0aGUgcm9vdCBsb2dnaW5nIGxldmVsXG4gICAqXG4gICAqIEBwYXJhbSB7TGV2ZWxLaW5kfSBuZXdMZXZlbFxuICAgKiBAcmV0dXJucyB7dGhpczxSZWNvcmQ+fVxuICAgKi9cbiAgc2V0Um9vdExldmVsKG5ld0xldmVsOiBMZXZlbEtpbmQpOiB0aGlzIHtcbiAgICB0aGlzLnN0YXRlLnJvb3RMZXZlbCA9IG5ld0xldmVsXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuICBcbiAgLyoqXG4gICAqIEZpcmUgYSBsb2cgZXZlbnQsIGV2ZW50dWFsbHlcbiAgICogaW52ZXJ0IHRoaXMgYnkgbWFraW5nIGBMb2dnZXJgIGFuXG4gICAqIGBFdmVudEVtaXR0ZXIzYCBhbmQgaGF2aW5nIHRoZSBgTG9nZ2luZ01hbmFnZXJgXG4gICAqIHN1YnNjcmliZSB0byBgcmVjb3JkYCBldmVudFxuICAgKlxuICAgKiBAcGFyYW0ge0xvZ1JlY29yZDxSZWNvcmQ+fSByZWNvcmRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBmaXJlKHJlY29yZDogTG9nUmVjb3JkPFJlY29yZD4pIHtcbiAgICBjb25zdCB7IGNhdGVnb3J5IH0gPSByZWNvcmQsXG4gICAgICBjb250ZXh0cyA9IHRoaXMuZ2V0QXBwbGljYWJsZUN1cnJlbnRDb250ZXh0cyhjYXRlZ29yeSksXG4gICAgICBjb250ZXh0QXBwZW5kZXJzID0gY29udGV4dHMuZmxhdE1hcChnZXQoXCJhcHBlbmRlcnNcIikpLFxuICAgICAgYXBwZW5kZXJzID0gWy4uLnRoaXMuYXBwZW5kZXJzLCAuLi5jb250ZXh0QXBwZW5kZXJzXVxuXG4gICAgYXBwZW5kZXJzLmZvckVhY2goKGFwcGVuZGVyKSA9PiBhcHBlbmRlci5hcHBlbmQocmVjb3JkIGFzIFJlY29yZCkpXG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgYSBsb2dnZXIgZnJvbSBjYWNoZSwgaWYgdGhlIGNhdGVnb3J5XG4gICAqIGRvZXMgbm90IGhhdmUgYW4gZXhpc3RpbmcgbG9nZ2VyLCB0aGVuIGNyZWF0ZSBvbmUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBjYXRlZ29yeU9yRmlsZW5hbWVcbiAgICogQHBhcmFtIHtQYXJ0aWFsPExvZ2dlck9wdGlvbnM+fSBpbk9wdGlvbnNcbiAgICogQHJldHVybnMge0xvZ2dlcn1cbiAgICovXG4gIGdldExvZ2dlcihcbiAgICBjYXRlZ29yeU9yRmlsZW5hbWU6IHN0cmluZyxcbiAgICBpbk9wdGlvbnM6IFBhcnRpYWw8TG9nZ2VyT3B0aW9ucz4gPSB7fVxuICApOiBMb2dnZXIge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBMb2dnZXIuaHlkcmF0ZU9wdGlvbnMoaW5PcHRpb25zKVxuICAgIGNvbnN0IGNhdGVnb3J5ID0gTG9nZ2VyLmludGVyb3BsYXRlQ2F0ZWdvcnkoY2F0ZWdvcnlPckZpbGVuYW1lLCBvcHRpb25zKVxuXG4gICAgcmV0dXJuIE9wdGlvbi5vZk51bGxhYmxlKGNhdGVnb3J5KVxuICAgICAgLm1hcCgoY2F0ZWdvcnkpID0+IHRoaXMubG9nZ2Vycy5nZXQoY2F0ZWdvcnkpKVxuICAgICAgLmdldE9yQ2FsbCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcywgY2F0ZWdvcnksIG9wdGlvbnMpXG4gICAgICAgIHRoaXMubG9nZ2Vycy5zZXQoY2F0ZWdvcnksIGxvZ2dlcilcbiAgICAgICAgcmV0dXJuIGxvZ2dlclxuICAgICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgdGhlIGxvZ2dpbmcgbWFuYWdlcixcbiAgICogdGhpcyBmdW5jdGlvbiBpcyBhZGRpdGl2ZSwgc28gc2ltcGx5IGNhbGxpbmdcbiAgICogYGNvbmZpZ3VyZWAgd2l0aCBhIHNpbmdsZSBvcHRpb24gYHJvb3RMZXZlbGAsXG4gICAqIHdpbGwgbm90IGFmZmVjdCBvdGhlciBvcHRpb25zIGxpa2UgYGFwcGVuZGVyc2AgICAqXG4gICAqXG4gICAqIEBwYXJhbSB7TG9nZ2luZ01hbmFnZXJPcHRpb25zPGFueT59IG9wdGlvbnNcbiAgICogQHJldHVybnMge3RoaXM8UmVjb3JkPn1cbiAgICovXG4gIGNvbmZpZ3VyZShvcHRpb25zOiBMb2dnaW5nTWFuYWdlck9wdGlvbnM8YW55Pik6IHRoaXMge1xuICAgIGlmIChMZXZlbFtvcHRpb25zPy5yb290TGV2ZWxdKSB7XG4gICAgICB0aGlzLnNldFJvb3RMZXZlbChvcHRpb25zLnJvb3RMZXZlbClcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8uYXBwZW5kZXJzKSB7XG4gICAgICB0aGlzLnNldEFwcGVuZGVycyhvcHRpb25zLmFwcGVuZGVycylcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucz8udGhyZXNob2xkT3ZlcnJpZGVzKSB7XG4gICAgICB0aGlzLmFkZFRocmVzaG9sZE92ZXJyaWRlcyguLi5vcHRpb25zLnRocmVzaG9sZE92ZXJyaWRlcylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNvbmZpZ3VyZSh7fSlcbiAgfVxuICBcbiAgLyoqXG4gICAqIFNpbmdsZXRvbiBpbnN0YW5jZVxuICAgKlxuICAgKiBAdHlwZSB7TG9nZ2luZ01hbmFnZXJ9XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBtYW5hZ2VyOiBMb2dnaW5nTWFuYWdlclxuICBcbiAgLyoqXG4gICAqIEdldCBsb2dnaW5nIG1hbmFnZXIgYW5kIG9wdGlvbmFsbHkgcHJvdmlkZWRcbiAgICogY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAqXG4gICAqIEBwYXJhbSB7TG9nZ2luZ01hbmFnZXJPcHRpb25zPFJlY29yZD59IG9wdGlvbnNcbiAgICogQHJldHVybnMge0xvZ2dpbmdNYW5hZ2VyPFJlY29yZD59XG4gICAqL1xuICBzdGF0aWMgZ2V0PFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4oXG4gICAgb3B0aW9uczogTG9nZ2luZ01hbmFnZXJPcHRpb25zPFJlY29yZD4gPSBudWxsXG4gICk6IExvZ2dpbmdNYW5hZ2VyPFJlY29yZD4ge1xuICAgIGlmICghdGhpcy5tYW5hZ2VyKSB7XG4gICAgICB0aGlzLm1hbmFnZXIgPSBuZXcgTG9nZ2luZ01hbmFnZXI8UmVjb3JkPigpXG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMubWFuYWdlci5jb25maWd1cmUob3B0aW9ucylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5tYW5hZ2VyXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dpbmdNYW5hZ2VyKCk6IExvZ2dpbmdNYW5hZ2VyIHtcbiAgcmV0dXJuIExvZ2dpbmdNYW5hZ2VyLmdldCgpXG59XG5cbmlmIChPcHRpb24udHJ5XygoKSA9PiBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJkZXZlbG9wbWVudFwiKS5nZXRPckVsc2UoZmFsc2UpKSB7XG4gIFt0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdywgdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBnbG9iYWxdLmZpbHRlcihpc09iamVjdClcbiAgICAubWFwKHRhcmdldCA9PiBPYmplY3QuYXNzaWduKHRhcmdldCwge1xuICAgICAgbG9nZ2luZ01hbmFnZXI6IGdldExvZ2dpbmdNYW5hZ2VyKClcbiAgICB9KSlcbn0iXX0=
@@ -1 +0,0 @@
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,CAAC,MAAM,SAAS,SAAS,CACnD,YAAW,QAAQ,CAAC,MAAM,CAAC;IAE3B,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"}
@@ -1,72 +0,0 @@
1
- import { Option } from "prelude-ts";
2
- const consoleLogBindings = new Map();
3
- function getBoundConsoleFn(level) {
4
- return (console[level] ?? console.log).bind(console);
5
- }
6
- /**
7
- * Get a cached console bound log function
8
- *
9
- * @param {LevelKind} level
10
- * @returns {(...args: any[]) => any}
11
- */
12
- export function getConsoleLogBinding(level) {
13
- if (!consoleLogBindings.has(level)) {
14
- consoleLogBindings.set(level, getBoundConsoleFn(level));
15
- }
16
- return consoleLogBindings.get(level);
17
- }
18
- export const consoleFormatter = ({ level, message, data, args, category, timestamp }) => [
19
- `[${category}] (${level}) ${message}`,
20
- ...(Array.isArray(args) ? args : [args])
21
- ];
22
- /**
23
- * Default console config
24
- * @type {ConsoleAppenderConfig}
25
- */
26
- export const kDefaultConsoleAppenderConfig = {
27
- cacheEnabled: true,
28
- prettyPrint: true,
29
- formatter: consoleFormatter
30
- };
31
- /**
32
- * Console appender, the simple default appender used
33
- * everywhere OOB
34
- */
35
- export class ConsoleAppender {
36
- config;
37
- /**
38
- * Handle log records, transform, push to ES
39
- *
40
- * @param record
41
- */
42
- append(record) {
43
- const { level, message, data, args, category, timestamp } = record;
44
- const { formatter = consoleFormatter } = this.config;
45
- Option.ofNullable(formatter(record)).map((result) => {
46
- const args = Array.isArray(result) ? result : [result];
47
- this.write(level, ...args);
48
- });
49
- }
50
- /**
51
- * Write args to console
52
- *
53
- * @param level
54
- * @param args
55
- */
56
- write(level, ...args) {
57
- Option.ofNullable(console[level])
58
- .orCall(() => Option.ofNullable(console.log))
59
- .map((fn) => fn.apply(console, args));
60
- }
61
- /**
62
- *
63
- * @param {Partial<ConsoleAppenderOptions<Record>>} options
64
- */
65
- constructor(options = {}) {
66
- this.config = {
67
- ...kDefaultConsoleAppenderConfig,
68
- ...options
69
- };
70
- }
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc29sZUFwcGVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvZ2dpbmcvYXBwZW5kZXJzL0NvbnNvbGVBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBSW5DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUE7QUFFeEUsU0FBUyxpQkFBaUIsQ0FBQyxLQUFnQjtJQUN6QyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQWdCO0lBQ25ELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVELE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3RDLENBQUM7QUFrQkQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTBCLENBQUMsRUFDdEQsS0FBSyxFQUNMLE9BQU8sRUFDUCxJQUFJLEVBQ0osSUFBSSxFQUNKLFFBQVEsRUFDUixTQUFTLEVBQ1YsRUFBRSxFQUFFLENBQUM7SUFDSixJQUFJLFFBQVEsT0FBTyxLQUFLLE1BQU0sT0FBTyxFQUFFO0lBQ3ZDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDekMsQ0FBQTtBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEwQjtJQUNsRSxZQUFZLEVBQUUsSUFBSTtJQUNsQixXQUFXLEVBQUUsSUFBSTtJQUNqQixTQUFTLEVBQUUsZ0JBQWdCO0NBQzVCLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUdqQixNQUFNLENBQXVCO0lBRXRDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsTUFBYztRQUNuQixNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDbEUsTUFBTSxFQUFFLFNBQVMsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7UUFDcEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNsRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUM1QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLEtBQUssQ0FBQyxLQUFnQixFQUFFLEdBQUcsSUFBVztRQUM5QyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM1QixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDNUMsR0FBRyxDQUFDLENBQUMsRUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLFVBQW1ELEVBQUU7UUFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLEdBQUcsNkJBQTZCO1lBQ2hDLEdBQUcsT0FBTztTQUNYLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvZ1JlY29yZCB9IGZyb20gXCIuLi9Mb2dSZWNvcmRcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuLi9BcHBlbmRlclwiXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tIFwicHJlbHVkZS10c1wiXG5pbXBvcnQgdHlwZSB7IExldmVsS2luZCB9IGZyb20gXCIuLi9MZXZlbFwiXG5pbXBvcnQgdHlwZSB7IEZvcm1hdHRlciB9IGZyb20gXCIuLi9Gb3JtYXR0ZXJcIlxuXG5jb25zdCBjb25zb2xlTG9nQmluZGluZ3MgPSBuZXcgTWFwPExldmVsS2luZCwgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KClcblxuZnVuY3Rpb24gZ2V0Qm91bmRDb25zb2xlRm4obGV2ZWw6IExldmVsS2luZCkge1xuICByZXR1cm4gKGNvbnNvbGVbbGV2ZWxdID8/IGNvbnNvbGUubG9nKS5iaW5kKGNvbnNvbGUpXG59XG5cbi8qKlxuICogR2V0IGEgY2FjaGVkIGNvbnNvbGUgYm91bmQgbG9nIGZ1bmN0aW9uXG4gKlxuICogQHBhcmFtIHtMZXZlbEtpbmR9IGxldmVsXG4gKiBAcmV0dXJucyB7KC4uLmFyZ3M6IGFueVtdKSA9PiBhbnl9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zb2xlTG9nQmluZGluZyhsZXZlbDogTGV2ZWxLaW5kKSB7XG4gIGlmICghY29uc29sZUxvZ0JpbmRpbmdzLmhhcyhsZXZlbCkpIHtcbiAgICBjb25zb2xlTG9nQmluZGluZ3Muc2V0KGxldmVsLCBnZXRCb3VuZENvbnNvbGVGbihsZXZlbCkpXG4gIH1cblxuICByZXR1cm4gY29uc29sZUxvZ0JpbmRpbmdzLmdldChsZXZlbClcbn1cblxuLyoqXG4gKiBDb25zb2xlQXBwZW5kZXIgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnNvbGVBcHBlbmRlckNvbmZpZzxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBhbnk+IHtcbiAgY2FjaGVFbmFibGVkOiBib29sZWFuXG4gIHByZXR0eVByaW50OiBib29sZWFuXG4gIGZvcm1hdHRlcj86IEZvcm1hdHRlcjxzdHJpbmcgfCBBcnJheTxhbnk+PlxufVxuXG4vKipcbiAqIFBhcnRpYWwgb2YgY29uZmlnLCB1c2VkIGZvciBzaG9ydGVuaW5nIGluc3RlYWQgb2YgUGFydGlhbDwuLi4+XG4gKi9cbmV4cG9ydCB0eXBlIENvbnNvbGVBcHBlbmRlck9wdGlvbnM8UmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkPiA9IFBhcnRpYWw8XG4gIENvbnNvbGVBcHBlbmRlckNvbmZpZzxSZWNvcmQ+XG4+XG5cbmV4cG9ydCBjb25zdCBjb25zb2xlRm9ybWF0dGVyOiBGb3JtYXR0ZXI8QXJyYXk8YW55Pj4gPSAoe1xuICBsZXZlbCxcbiAgbWVzc2FnZSxcbiAgZGF0YSxcbiAgYXJncyxcbiAgY2F0ZWdvcnksXG4gIHRpbWVzdGFtcFxufSkgPT4gW1xuICBgWyR7Y2F0ZWdvcnl9XSAgKCR7bGV2ZWx9KSAgJHttZXNzYWdlfWAsXG4gIC4uLihBcnJheS5pc0FycmF5KGFyZ3MpID8gYXJncyA6IFthcmdzXSlcbl1cblxuLyoqXG4gKiBEZWZhdWx0IGNvbnNvbGUgY29uZmlnXG4gKiBAdHlwZSB7Q29uc29sZUFwcGVuZGVyQ29uZmlnfVxuICovXG5leHBvcnQgY29uc3Qga0RlZmF1bHRDb25zb2xlQXBwZW5kZXJDb25maWc6IENvbnNvbGVBcHBlbmRlckNvbmZpZyA9IHtcbiAgY2FjaGVFbmFibGVkOiB0cnVlLFxuICBwcmV0dHlQcmludDogdHJ1ZSxcbiAgZm9ybWF0dGVyOiBjb25zb2xlRm9ybWF0dGVyXG59XG5cbi8qKlxuICogQ29uc29sZSBhcHBlbmRlciwgdGhlIHNpbXBsZSBkZWZhdWx0IGFwcGVuZGVyIHVzZWRcbiAqIGV2ZXJ5d2hlcmUgT09CXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25zb2xlQXBwZW5kZXI8UmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkPlxuICBpbXBsZW1lbnRzIEFwcGVuZGVyPFJlY29yZD5cbntcbiAgcmVhZG9ubHkgY29uZmlnOiBDb25zb2xlQXBwZW5kZXJDb25maWdcblxuICAvKipcbiAgICogSGFuZGxlIGxvZyByZWNvcmRzLCB0cmFuc2Zvcm0sIHB1c2ggdG8gRVNcbiAgICpcbiAgICogQHBhcmFtIHJlY29yZFxuICAgKi9cbiAgYXBwZW5kKHJlY29yZDogUmVjb3JkKTogdm9pZCB7XG4gICAgY29uc3QgeyBsZXZlbCwgbWVzc2FnZSwgZGF0YSwgYXJncywgY2F0ZWdvcnksIHRpbWVzdGFtcCB9ID0gcmVjb3JkXG4gICAgY29uc3QgeyBmb3JtYXR0ZXIgPSBjb25zb2xlRm9ybWF0dGVyIH0gPSB0aGlzLmNvbmZpZ1xuICAgIE9wdGlvbi5vZk51bGxhYmxlKGZvcm1hdHRlcihyZWNvcmQpKS5tYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgY29uc3QgYXJncyA9IEFycmF5LmlzQXJyYXkocmVzdWx0KSA/IHJlc3VsdCA6IFtyZXN1bHRdXG4gICAgICB0aGlzLndyaXRlKGxldmVsLCAuLi5hcmdzKVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogV3JpdGUgYXJncyB0byBjb25zb2xlXG4gICAqIFxuICAgKiBAcGFyYW0gbGV2ZWwgXG4gICAqIEBwYXJhbSBhcmdzIFxuICAgKi9cbiAgcHJvdGVjdGVkIHdyaXRlKGxldmVsOiBMZXZlbEtpbmQsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgT3B0aW9uLm9mTnVsbGFibGUoY29uc29sZVtsZXZlbF0pXG4gICAgICAgIC5vckNhbGwoKCkgPT4gT3B0aW9uLm9mTnVsbGFibGUoY29uc29sZS5sb2cpKVxuICAgICAgICAubWFwKChmbjogRnVuY3Rpb24pID0+IGZuLmFwcGx5KGNvbnNvbGUsIGFyZ3MpKVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxDb25zb2xlQXBwZW5kZXJPcHRpb25zPFJlY29yZD4+fSBvcHRpb25zXG4gICAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPENvbnNvbGVBcHBlbmRlck9wdGlvbnM8UmVjb3JkPj4gPSB7fSkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgLi4ua0RlZmF1bHRDb25zb2xlQXBwZW5kZXJDb25maWcsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +0,0 @@
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,CAAC,MAAM,SAAS,SAAS,CAChD,YAAW,QAAQ,CAAC,MAAM,CAAC;IAE3B,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"}