@wireio/shared 1.0.18 → 1.0.20

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 +33 -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 +80 -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 +78 -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 +68 -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 +238 -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 +196 -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 +95 -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 +42 -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 +121 -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 +124 -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 +48 -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 -6
  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,214 @@
1
+ import { assign, defaults, padStart } from "lodash";
2
+ import * as Path from "path";
3
+ import * as Fs from "fs";
4
+ import { Option, Future } from "@3fv/prelude-ts";
5
+ import { Buffer } from "buffer";
6
+ import Debug from "debug";
7
+ import Bluebird from "bluebird";
8
+ const FsAsync = Fs.promises;
9
+ const debug = Debug("3fv:logger:FileAppender");
10
+ const osTempDir = process.env.TMP ?? process.env.TEMP ?? "/tmp";
11
+ const tempDir = Fs.mkdtempSync(Path.join(osTempDir, "logger-proxy-example")); //
12
+ const getDefaultConfig = () => ({
13
+ filename: Path.join(tempDir, "app.log"),
14
+ prettyPrint: process.env.NODE_ENV !== "production",
15
+ maxSize: -1,
16
+ maxFiles: 5,
17
+ enableRolling: false,
18
+ sync: false
19
+ });
20
+ function applyConfigDefaults(options) {
21
+ return defaults(options, getDefaultConfig());
22
+ }
23
+ export class FileAppender {
24
+ config;
25
+ state = {
26
+ archivedFilenames: [],
27
+ filename: undefined,
28
+ file: undefined,
29
+ ready: false,
30
+ currentSize: 0,
31
+ flushing: false,
32
+ queue: []
33
+ };
34
+ get enableRolling() {
35
+ return this.config.enableRolling;
36
+ }
37
+ isReady() {
38
+ return this.state.ready;
39
+ }
40
+ /**
41
+ * Initialize and setup the appender
42
+ *
43
+ * @returns {FileAppender<Record>}
44
+ */
45
+ setup() {
46
+ const { state } = this;
47
+ if (!!state.ready) {
48
+ return this;
49
+ }
50
+ try {
51
+ const { filename } = this;
52
+ const file = Fs.openSync(filename, "a");
53
+ assign(state, {
54
+ filename,
55
+ file,
56
+ ready: true
57
+ });
58
+ return this;
59
+ }
60
+ catch (err) {
61
+ assign(state, {
62
+ error: err,
63
+ file: undefined,
64
+ ready: false
65
+ });
66
+ throw err;
67
+ }
68
+ }
69
+ /**
70
+ * Only exposed for the sake of tests & examples
71
+ * DO NOT USE
72
+ *
73
+ * This should all be async, but i was in a rush :(
74
+ *
75
+ * @returns
76
+ */
77
+ rollFile() {
78
+ const { state, config } = this;
79
+ let { file, filename, archivedFilenames } = state;
80
+ if (!this.isReady() || !file) {
81
+ debug(`Can not roll file before ready`);
82
+ return;
83
+ }
84
+ if (!this.enableRolling) {
85
+ return;
86
+ }
87
+ const fileCount = archivedFilenames.length + 1;
88
+ if (config.maxFiles < 1 || fileCount < config.maxFiles) {
89
+ archivedFilenames.push(filename + "." + padStart(fileCount.toString(10), 4, "0"));
90
+ }
91
+ Fs.fdatasyncSync(file);
92
+ Fs.closeSync(file);
93
+ file = state.file = undefined;
94
+ const filenames = [filename, ...archivedFilenames];
95
+ let dest = filenames.pop();
96
+ while (filenames.length) {
97
+ let src = filenames.pop();
98
+ if (!Fs.existsSync(src)) {
99
+ debug(`src does not exist, skipping ${src}`);
100
+ }
101
+ else {
102
+ debug(`Moving src (${src}) to dest (${dest})`);
103
+ if (Fs.existsSync(dest)) {
104
+ Fs.unlinkSync(dest);
105
+ }
106
+ Fs.renameSync(src, dest);
107
+ // if (src === filename) {
108
+ // Fs.copyFileSync(src, dest)
109
+ // Fs.truncateSync(src, 0)
110
+ // } else {
111
+ // Fs.renameSync(src, dest)
112
+ // }
113
+ }
114
+ dest = src;
115
+ }
116
+ assign(state, {
117
+ currentSize: 0,
118
+ file: Fs.openSync(filename, "a")
119
+ });
120
+ }
121
+ /**
122
+ * Close the handler
123
+ *
124
+ * @returns {Promise<void>}
125
+ */
126
+ close() {
127
+ return this.flush()
128
+ .onComplete(() => Option.of(this.state.file).map(Fs.closeSync))
129
+ .toPromise();
130
+ }
131
+ get queue() {
132
+ return this.state.queue;
133
+ }
134
+ get file() {
135
+ return this.state.file;
136
+ }
137
+ get flushing() {
138
+ return this.state.flushing;
139
+ }
140
+ get filename() {
141
+ return (this.state.filename = this.state.filename ?? this.config.filename);
142
+ }
143
+ /**
144
+ * Appends the log queue records to the file
145
+ */
146
+ flush() {
147
+ const { state } = this;
148
+ return Future.do(async () => {
149
+ state.flushing = true;
150
+ try {
151
+ const { file } = this;
152
+ if (!file) {
153
+ throw Error(`${this.filename} was not opened properly`);
154
+ }
155
+ while (this.queue.length) {
156
+ const buf = this.queue.shift();
157
+ await Bluebird.fromCallback(cb => Fs.appendFile(file, buf, "utf-8", cb));
158
+ state.currentSize += buf.byteLength;
159
+ }
160
+ const { maxSize } = this.config;
161
+ if (maxSize > 0 && state.currentSize >= maxSize) {
162
+ this.rollFile();
163
+ }
164
+ //await Bluebird.fromCallback((cb) => Fs.fdatasync(this.file, cb))
165
+ }
166
+ catch (err) {
167
+ console.error(`Failed to append file ${this.filename}`, err);
168
+ }
169
+ finally {
170
+ this.state.flushing = false;
171
+ if (this.queue.length) {
172
+ queueMicrotask(() => this.flush());
173
+ }
174
+ }
175
+ });
176
+ }
177
+ /**
178
+ * Handle log records, transform, push to ES
179
+ *
180
+ * @param record
181
+ */
182
+ append(record) {
183
+ try {
184
+ const { queue, filename } = this.state;
185
+ const count = queue.length;
186
+ if (count > 999) {
187
+ debug(`Too many log records (${count}) are in the queue without the file (${filename}) opening, skipping %O`, record);
188
+ return;
189
+ }
190
+ const data = this.config.prettyPrint
191
+ ? JSON.stringify(record, null, 2)
192
+ : JSON.stringify(record);
193
+ queue.push(Buffer.from(data + "\n", "utf-8"));
194
+ this.flush();
195
+ }
196
+ catch (err) {
197
+ console.warn(`Failed to synchronize `, err);
198
+ }
199
+ }
200
+ /**
201
+ *
202
+ * @param {Partial<FileAppenderOptions<Record>>} options
203
+ */
204
+ constructor(options = {}) {
205
+ this.config = applyConfigDefaults(options);
206
+ assign(this.state, {
207
+ filename: this.config.filename
208
+ });
209
+ this.setup();
210
+ debug(`File appender is ready, logging to ${this.state.filename}`);
211
+ // return this
212
+ }
213
+ }
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZUFwcGVuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xvZ2dpbmcvYXBwZW5kZXJzL0ZpbGVBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDbkQsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUE7QUFDNUIsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFHeEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQTtBQUN6QixPQUFPLFFBQVEsTUFBTSxVQUFVLENBQUE7QUFFL0IsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQTtBQUUzQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQTtBQUM5QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUE7QUFDL0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUEsQ0FBQyxFQUFFO0FBQy9FLE1BQU0sZ0JBQWdCLEdBQUcsR0FBdUIsRUFBRSxDQUFDLENBQUM7SUFDbEQsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztJQUN2QyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWTtJQUNsRCxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsUUFBUSxF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QUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMxQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQzdDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNkLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksVUFBZ0QsRUFBRTtRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDL0IsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ1osS0FBSyxDQUFDLHNDQUFzQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbEUsbUJBQW1CO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzc2lnbiwgZGVmYXVsdHMsIHBhZFN0YXJ0IH0gZnJvbSBcImxvZGFzaFwiXG5pbXBvcnQgKiBhcyBQYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCAqIGFzIEZzIGZyb20gXCJmc1wiXG5pbXBvcnQgdHlwZSB7IExvZ1JlY29yZCB9IGZyb20gXCIuLi9Mb2dSZWNvcmRcIlxuaW1wb3J0IHR5cGUgeyBBcHBlbmRlciB9IGZyb20gXCIuLi9BcHBlbmRlclwiXG5pbXBvcnQgeyBPcHRpb24sIEZ1dHVyZSB9IGZyb20gXCJAM2Z2L3ByZWx1ZGUtdHNcIlxuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlclwiXG5pbXBvcnQgRGVidWcgZnJvbSBcImRlYnVnXCJcbmltcG9ydCBCbHVlYmlyZCBmcm9tIFwiYmx1ZWJpcmRcIlxuXG5jb25zdCBGc0FzeW5jID0gRnMucHJvbWlzZXNcblxuY29uc3QgZGVidWcgPSBEZWJ1ZyhcIjNmdjpsb2dnZXI6RmlsZUFwcGVuZGVyXCIpXG5jb25zdCBvc1RlbXBEaXIgPSBwcm9jZXNzLmVudi5UTVAgPz8gcHJvY2Vzcy5lbnYuVEVNUCA/PyBcIi90bXBcIlxuY29uc3QgdGVtcERpciA9IEZzLm1rZHRlbXBTeW5jKFBhdGguam9pbihvc1RlbXBEaXIsIFwibG9nZ2VyLXByb3h5LWV4YW1wbGVcIikpIC8vXG5jb25zdCBnZXREZWZhdWx0Q29uZmlnID0gKCk6IEZpbGVBcHBlbmRlckNvbmZpZyA9PiAoe1xuICBmaWxlbmFtZTogUGF0aC5qb2luKHRlbXBEaXIsIFwiYXBwLmxvZ1wiKSxcbiAgcHJldHR5UHJpbnQ6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIixcbiAgbWF4U2l6ZTogLTEsXG4gIG1heEZpbGVzOiA1LFxuICBlbmFibGVSb2xsaW5nOiBmYWxzZSxcbiAgc3luYzogZmFsc2Vcbn0pXG5cbmZ1bmN0aW9uIGFwcGx5Q29uZmlnRGVmYXVsdHMob3B0aW9uczogRmlsZUFwcGVuZGVyT3B0aW9ucyk6IEZpbGVBcHBlbmRlckNvbmZpZyB7XG4gIHJldHVybiBkZWZhdWx0cyhvcHRpb25zLCBnZXREZWZhdWx0Q29uZmlnKCkpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZCBleHRlbmRzIExvZ1JlY29yZCA9IGFueT4ge1xuICBmaWxlbmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhGaWxlczogbnVtYmVyXG5cbiAgLyoqXG4gICAqIEZvciByb2xsaW5nXG4gICAqL1xuICBtYXhTaXplOiBudW1iZXJcblxuICBlbmFibGVSb2xsaW5nOiBib29sZWFuXG4gIHByZXR0eVByaW50OiBib29sZWFuXG4gIHN5bmM6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgRmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBhbnk+ID0gUGFydGlhbDxcbiAgRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cbj5cblxuZXhwb3J0IGNsYXNzIEZpbGVBcHBlbmRlcjxcbiAgUmVjb3JkIGV4dGVuZHMgTG9nUmVjb3JkXG4+IGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPiB7XG4gIHJlYWRvbmx5IGNvbmZpZzogRmlsZUFwcGVuZGVyQ29uZmlnPFJlY29yZD5cblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlOiB7XG4gICAgZmlsZW5hbWU6IHN0cmluZ1xuICAgIGZpbGU6IG51bWJlclxuICAgIGZsdXNoaW5nOiBib29sZWFuXG4gICAgcXVldWU6IEFycmF5PEJ1ZmZlcj5cbiAgICByZWFkeTogYm9vbGVhblxuICAgIGVycm9yPzogRXJyb3JcbiAgICBjdXJyZW50U2l6ZTogbnVtYmVyXG4gICAgYXJjaGl2ZWRGaWxlbmFtZXM6IHN0cmluZ1tdXG4gIH0gPSB7XG4gICAgYXJjaGl2ZWRGaWxlbmFtZXM6IFtdLFxuICAgIGZpbGVuYW1lOiB1bmRlZmluZWQsXG4gICAgZmlsZTogdW5kZWZpbmVkLFxuICAgIHJlYWR5OiBmYWxzZSxcbiAgICBjdXJyZW50U2l6ZTogMCxcbiAgICBmbHVzaGluZzogZmFsc2UsXG4gICAgcXVldWU6IFtdXG4gIH1cblxuICBnZXQgZW5hYmxlUm9sbGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuZW5hYmxlUm9sbGluZ1xuICB9XG5cbiAgaXNSZWFkeSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5yZWFkeVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgYW5kIHNldHVwIHRoZSBhcHBlbmRlclxuICAgKlxuICAgKiBAcmV0dXJucyB7RmlsZUFwcGVuZGVyPFJlY29yZD59XG4gICAqL1xuICBzZXR1cCgpOiBGaWxlQXBwZW5kZXI8UmVjb3JkPiB7XG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpc1xuICAgIGlmICghIXN0YXRlLnJlYWR5KSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGZpbGVuYW1lIH0gPSB0aGlzXG4gICAgICBjb25zdCBmaWxlID0gRnMub3BlblN5bmMoZmlsZW5hbWUsIFwiYVwiKVxuXG4gICAgICBhc3NpZ24oc3RhdGUsIHtcbiAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHJlYWR5OiB0cnVlXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gdGhpc1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXNzaWduKHN0YXRlLCB7XG4gICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgIGZpbGU6IHVuZGVmaW5lZCxcbiAgICAgICAgcmVhZHk6IGZhbHNlXG4gICAgICB9KVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9ubHkgZXhwb3NlZCBmb3IgdGhlIHNha2Ugb2YgdGVzdHMgJiBleGFtcGxlc1xuICAgKiBETyBOT1QgVVNFXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGFsbCBiZSBhc3luYywgYnV0IGkgd2FzIGluIGEgcnVzaCA6KFxuICAgKlxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcm9sbEZpbGUoKSB7XG4gICAgY29uc3QgeyBzdGF0ZSwgY29uZmlnIH0gPSB0aGlzXG4gICAgbGV0IHsgZmlsZSwgZmlsZW5hbWUsIGFyY2hpdmVkRmlsZW5hbWVzIH0gPSBzdGF0ZVxuICAgIGlmICghdGhpcy5pc1JlYWR5KCkgfHwgIWZpbGUpIHtcbiAgICAgIGRlYnVnKGBDYW4gbm90IHJvbGwgZmlsZSBiZWZvcmUgcmVhZHlgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmVuYWJsZVJvbGxpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb3VudCA9IGFyY2hpdmVkRmlsZW5hbWVzLmxlbmd0aCArIDFcbiAgICBpZiAoY29uZmlnLm1heEZpbGVzIDwgMSB8fCBmaWxlQ291bnQgPCBjb25maWcubWF4RmlsZXMpIHtcbiAgICAgIGFyY2hpdmVkRmlsZW5hbWVzLnB1c2goXG4gICAgICAgIGZpbGVuYW1lICsgXCIuXCIgKyBwYWRTdGFydChmaWxlQ291bnQudG9TdHJpbmcoMTApLCA0LCBcIjBcIilcbiAgICAgIClcbiAgICB9XG4gICAgRnMuZmRhdGFzeW5jU3luYyhmaWxlKVxuICAgIEZzLmNsb3NlU3luYyhmaWxlKVxuICAgIGZpbGUgPSBzdGF0ZS5maWxlID0gdW5kZWZpbmVkXG4gICAgY29uc3QgZmlsZW5hbWVzID0gW2ZpbGVuYW1lLCAuLi5hcmNoaXZlZEZpbGVuYW1lc11cblxuICAgIGxldCBkZXN0OiBzdHJpbmcgPSBmaWxlbmFtZXMucG9wKClcbiAgICB3aGlsZSAoZmlsZW5hbWVzLmxlbmd0aCkge1xuICAgICAgbGV0IHNyYyA9IGZpbGVuYW1lcy5wb3AoKVxuICAgICAgaWYgKCFGcy5leGlzdHNTeW5jKHNyYykpIHtcbiAgICAgICAgZGVidWcoYHNyYyBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcgJHtzcmN9YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlYnVnKGBNb3Zpbmcgc3JjICgke3NyY30pIHRvIGRlc3QgKCR7ZGVzdH0pYClcbiAgICAgICAgaWYgKEZzLmV4aXN0c1N5bmMoZGVzdCkpIHtcbiAgICAgICAgICBGcy51bmxpbmtTeW5jKGRlc3QpXG4gICAgICAgIH1cbiAgICAgICAgRnMucmVuYW1lU3luYyhzcmMsIGRlc3QpXG4gICAgICAgIC8vIGlmIChzcmMgPT09IGZpbGVuYW1lKSB7XG4gICAgICAgIC8vICAgRnMuY29weUZpbGVTeW5jKHNyYywgZGVzdClcbiAgICAgICAgLy8gICBGcy50cnVuY2F0ZVN5bmMoc3JjLCAwKVxuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgIEZzLnJlbmFtZVN5bmMoc3JjLCBkZXN0KVxuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgICBkZXN0ID0gc3JjXG4gICAgfVxuXG4gICAgYXNzaWduKHN0YXRlLCB7XG4gICAgICBjdXJyZW50U2l6ZTogMCxcbiAgICAgIGZpbGU6IEZzLm9wZW5TeW5jKGZpbGVuYW1lLCBcImFcIilcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBoYW5kbGVyXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgY2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmx1c2goKVxuICAgICAgLm9uQ29tcGxldGUoKCkgPT4gT3B0aW9uLm9mKHRoaXMuc3RhdGUuZmlsZSkubWFwKEZzLmNsb3NlU3luYykpXG4gICAgICAudG9Qcm9taXNlKClcbiAgfVxuXG4gIGdldCBxdWV1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5xdWV1ZVxuICB9XG5cbiAgZ2V0IGZpbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZVxuICB9XG5cbiAgZ2V0IGZsdXNoaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmZsdXNoaW5nXG4gIH1cblxuICBnZXQgZmlsZW5hbWUoKSB7XG4gICAgcmV0dXJuICh0aGlzLnN0YXRlLmZpbGVuYW1lID0gdGhpcy5zdGF0ZS5maWxlbmFtZSA/PyB0aGlzLmNvbmZpZy5maWxlbmFtZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBlbmRzIHRoZSBsb2cgcXVldWUgcmVjb3JkcyB0byB0aGUgZmlsZVxuICAgKi9cbiAgcHJpdmF0ZSBmbHVzaCgpIHtcbiAgICBjb25zdCB7IHN0YXRlIH0gPSB0aGlzXG4gICAgcmV0dXJuIEZ1dHVyZS5kbyhhc3luYyAoKSA9PiB7XG4gICAgICBzdGF0ZS5mbHVzaGluZyA9IHRydWVcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZmlsZSB9ID0gdGhpc1xuICAgICAgICBpZiAoIWZpbGUpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgJHt0aGlzLmZpbGVuYW1lfSB3YXMgbm90IG9wZW5lZCBwcm9wZXJseWApXG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKHRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgYnVmOiBCdWZmZXIgPSB0aGlzLnF1ZXVlLnNoaWZ0KClcblxuICAgICAgICAgIGF3YWl0IEJsdWViaXJkLmZyb21DYWxsYmFjayhjYiA9PlxuICAgICAgICAgICAgRnMuYXBwZW5kRmlsZShmaWxlLCBidWYsIFwidXRmLThcIiwgY2IpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgc3RhdGUuY3VycmVudFNpemUgKz0gYnVmLmJ5dGVMZW5ndGhcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgbWF4U2l6ZSB9ID0gdGhpcy5jb25maWdcbiAgICAgICAgaWYgKG1heFNpemUgPiAwICYmIHN0YXRlLmN1cnJlbnRTaXplID49IG1heFNpemUpIHtcbiAgICAgICAgICB0aGlzLnJvbGxGaWxlKClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYXdhaXQgQmx1ZWJpcmQuZnJvbUNhbGxiYWNrKChjYikgPT4gRnMuZmRhdGFzeW5jKHRoaXMuZmlsZSwgY2IpKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBlbmQgZmlsZSAke3RoaXMuZmlsZW5hbWV9YCwgZXJyKVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5zdGF0ZS5mbHVzaGluZyA9IGZhbHNlXG4gICAgICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMuZmx1c2goKSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGxvZyByZWNvcmRzLCB0cmFuc2Zvcm0sIHB1c2ggdG8gRVNcbiAgICpcbiAgICogQHBhcmFtIHJlY29yZFxuICAgKi9cbiAgYXBwZW5kKHJlY29yZDogUmVjb3JkKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgcXVldWUsIGZpbGVuYW1lIH0gPSB0aGlzLnN0YXRlXG4gICAgICBjb25zdCBjb3VudCA9IHF1ZXVlLmxlbmd0aFxuICAgICAgaWYgKGNvdW50ID4gOTk5KSB7XG4gICAgICAgIGRlYnVnKFxuICAgICAgICAgIGBUb28gbWFueSBsb2cgcmVjb3JkcyAoJHtjb3VudH0pIGFyZSBpbiB0aGUgcXVldWUgd2l0aG91dCB0aGUgZmlsZSAoJHtmaWxlbmFtZX0pIG9wZW5pbmcsIHNraXBwaW5nICVPYCxcbiAgICAgICAgICByZWNvcmRcbiAgICAgICAgKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuY29uZmlnLnByZXR0eVByaW50XG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkocmVjb3JkLCBudWxsLCAyKVxuICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHJlY29yZClcbiAgICAgIHF1ZXVlLnB1c2goQnVmZmVyLmZyb20oZGF0YSArIFwiXFxuXCIsIFwidXRmLThcIikpXG4gICAgICB0aGlzLmZsdXNoKClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIHN5bmNocm9uaXplIGAsIGVycilcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtQYXJ0aWFsPEZpbGVBcHBlbmRlck9wdGlvbnM8UmVjb3JkPj59IG9wdGlvbnNcbiAgICovXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZUFwcGVuZGVyT3B0aW9uczxSZWNvcmQ+PiA9IHt9KSB7XG4gICAgdGhpcy5jb25maWcgPSBhcHBseUNvbmZpZ0RlZmF1bHRzKG9wdGlvbnMpXG5cbiAgICBhc3NpZ24odGhpcy5zdGF0ZSwge1xuICAgICAgZmlsZW5hbWU6IHRoaXMuY29uZmlnLmZpbGVuYW1lXG4gICAgfSlcblxuICAgIHRoaXMuc2V0dXAoKVxuICAgIGRlYnVnKGBGaWxlIGFwcGVuZGVyIGlzIHJlYWR5LCBsb2dnaW5nIHRvICR7dGhpcy5zdGF0ZS5maWxlbmFtZX1gKVxuICAgIC8vICAgICAgcmV0dXJuIHRoaXNcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import AWSFirehoseCredentialManager from "./AWSFirehoseCredentialManager.js";
2
+ import { LogRecord } from "../../LogRecord.js";
3
+ import { Appender } from "../../Appender.js";
4
+ export declare class AWSFirehoseAppender<Record extends LogRecord = LogRecord> implements Appender<Record> {
5
+ readonly credentialEndpointUrl: string;
6
+ private pendingRecords;
7
+ private flushDeferred;
8
+ private flushIntervalMs;
9
+ readonly credentialManager: AWSFirehoseCredentialManager;
10
+ constructor(credentialEndpointUrl: string);
11
+ append(record: Record): void;
12
+ /**
13
+ * Create the firehose client and return
14
+ *
15
+ * @param {IAWSTemporaryCredentials} credentials
16
+ * @param {boolean} flush
17
+ * @returns {Firehose}
18
+ */
19
+ private getFirehose;
20
+ /**
21
+ * Flush pending records
22
+ *
23
+ * @returns {Promise<void>}
24
+ */
25
+ private flush;
26
+ }
27
+ export default AWSFirehoseAppender;
28
+ //# sourceMappingURL=AWSFirehoseAppender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AWSFirehoseAppender.d.ts","sourceRoot":"","sources":["../../../../../src/logging/appenders/aws-firehose/AWSFirehoseAppender.ts"],"names":[],"mappings":"AASA,OAAO,4BAA4B,MAAM,mCAAmC,CAAA;AAK5E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAM5C,qBAAa,mBAAmB,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS,CACnE,YAAW,QAAQ,CAAC,MAAM,CAAC;aAQT,qBAAqB,EAAE,MAAM;IAP/C,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAQ;IAE/B,SAAgB,iBAAiB,EAAE,4BAA4B,CAAA;gBAG7C,qBAAqB,EAAE,MAAM;IAc/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAoB5B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;YACW,KAAK;CA+EpB;AAED,eAAe,mBAAmB,CAAA"}
@@ -0,0 +1,138 @@
1
+ import { FirehoseClient, PutRecordBatchCommand } from "@aws-sdk/client-firehose";
2
+ import { ExpiredTokenException, } from "@aws-sdk/client-sts";
3
+ import AWSFirehoseCredentialManager from "./AWSFirehoseCredentialManager.js";
4
+ import { getInternalLogger } from "../../InternalLogger.js";
5
+ import { pick } from "lodash";
6
+ import { Deferred } from "../../../helpers/index.js";
7
+ const LogQueueMaxRecords = 10000;
8
+ const log = getInternalLogger();
9
+ export class AWSFirehoseAppender {
10
+ credentialEndpointUrl;
11
+ pendingRecords = Array();
12
+ flushDeferred;
13
+ flushIntervalMs = 1000;
14
+ credentialManager;
15
+ constructor(credentialEndpointUrl) {
16
+ this.credentialEndpointUrl = credentialEndpointUrl;
17
+ this.credentialManager = new AWSFirehoseCredentialManager(credentialEndpointUrl);
18
+ this.credentialManager.on("received", () => {
19
+ log.info("Credentials received, initializing firehose client");
20
+ if (!this.pendingRecords.length || !!this.flushDeferred) {
21
+ log.debug("Nothing to flush upon credential receipt OR flush already in progress");
22
+ return;
23
+ }
24
+ this.flush()
25
+ .catch((e) => {
26
+ log.error(`Error flushing logs after credential receipt: ${e.message}`, e);
27
+ });
28
+ });
29
+ }
30
+ append(record) {
31
+ const pendingCount = this.pendingRecords.length + 1, removeCount = LogQueueMaxRecords - pendingCount;
32
+ if (removeCount < 0) {
33
+ this.pendingRecords.splice(0, Math.abs(removeCount));
34
+ }
35
+ this.pendingRecords.push({
36
+ timestamp: Date.now(),
37
+ ...record,
38
+ app: record.app?.length > 0 ? record.app : "UNKNOWN",
39
+ env: record.env?.length > 0 ? record.env : "UNKNOWN",
40
+ url: typeof window === "undefined" ? "local://" : window.location.href,
41
+ });
42
+ this.flush();
43
+ }
44
+ /**
45
+ * Create the firehose client and return
46
+ *
47
+ * @param {IAWSTemporaryCredentials} credentials
48
+ * @param {boolean} flush
49
+ * @returns {Firehose}
50
+ */
51
+ getFirehose() {
52
+ const creds = this.credentialManager.getCredentials();
53
+ if (!creds) {
54
+ log.warn("No credentials available for flush");
55
+ return null;
56
+ }
57
+ const { region, streamName } = creds;
58
+ if (!region || !streamName) {
59
+ throw new Error("Region or stream name not available");
60
+ }
61
+ const client = new FirehoseClient({
62
+ region: creds.region,
63
+ credentials: pick(creds, "accessKeyId", "secretAccessKey", "sessionToken"),
64
+ });
65
+ return client;
66
+ }
67
+ /**
68
+ * Flush pending records
69
+ *
70
+ * @returns {Promise<void>}
71
+ */
72
+ async flush() {
73
+ if (!!this.flushDeferred) {
74
+ log.debug("Flush already in progress, skipping");
75
+ return;
76
+ }
77
+ if (!this.pendingRecords.length) {
78
+ log.debug("No pending records to flush");
79
+ return;
80
+ }
81
+ const creds = this.credentialManager.getCredentials();
82
+ if (!creds) {
83
+ log.warn("No credentials available for flush");
84
+ return;
85
+ }
86
+ const { streamName } = creds, client = this.getFirehose();
87
+ if (!client) {
88
+ log.warn("No firehose client available, skipping flush");
89
+ return;
90
+ }
91
+ const deferred = this.flushDeferred = new Deferred();
92
+ try {
93
+ while (this.pendingRecords.length) {
94
+ const chunkSize = Math.min(this.pendingRecords.length, 10), records = this.pendingRecords.splice(0, chunkSize), recordJsons = records.map(record => JSON.stringify(record));
95
+ if (log.isDebugEnabled())
96
+ log.debug("Records", records);
97
+ const textEncoder = new TextEncoder(), batch = recordJsons.map(jsonStr => ({
98
+ Data: textEncoder.encode(jsonStr)
99
+ }));
100
+ log.info(`Pushing ${records.length} records to firehose`);
101
+ const cmd = new PutRecordBatchCommand({
102
+ DeliveryStreamName: streamName,
103
+ Records: batch,
104
+ });
105
+ const resp = await client.send(cmd);
106
+ const failed = resp.FailedPutCount || 0;
107
+ if (failed) {
108
+ const rr = resp.RequestResponses || [];
109
+ for (let i = 0; i < rr.length; i++) {
110
+ if (rr[i].ErrorCode) {
111
+ log.warn(`Record failed: ${rr[i].ErrorCode} ${rr[i].ErrorMessage}`);
112
+ //this.pendingRecords.unshift(records[i])
113
+ }
114
+ }
115
+ log.info(`PutRecordBatch failed=${failed}; requeued failed records`);
116
+ }
117
+ else {
118
+ log.info(`PutRecordBatch ok count=${records.length}`);
119
+ }
120
+ }
121
+ }
122
+ catch (err) {
123
+ log.error("Failed to push logs", err);
124
+ if (err.code === ExpiredTokenException) {
125
+ this.credentialManager.forceUpdateCredentials();
126
+ }
127
+ deferred.reject(err);
128
+ }
129
+ finally {
130
+ this.flushDeferred = null;
131
+ // if (this.pendingRecords.length)
132
+ // this.flush()
133
+ }
134
+ return deferred.promise;
135
+ }
136
+ }
137
+ export default AWSFirehoseAppender;
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VBcHBlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VBcHBlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLDBCQUEwQixDQUFBO0FBQ3JHLE9BQU8sRUFFTCxxQkFBcUIsR0FDdEIsTUFBTSxxQkFBcUIsQ0FBQTtBQUc1QixPQUFPLDRCQUE0QixNQUFNLG1DQUFtQyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRTNELE9BQU8sRUFBVyxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBSXBELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0FBRWhDLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixFQUFFLENBQUE7QUFFL0IsTUFBTSxPQUFPLG1CQUFtQjtJQVNaO0lBUFYsY0FBYyxHQUFHLEtBQUssRUFBYSxDQUFBO0lBQ25DLGFBQWEsQ0FBZ0I7SUFDN0IsZUFBZSxHQUFHLElBQUksQ0FBQztJQUVmLGlCQUFpQixDQUE4QjtJQUUvRCxZQUNrQixxQkFBNkI7UUFBN0IsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFRO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDLENBQUE7UUFDaEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ3pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtZQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUks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QkFBcUIsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUNqRCxDQUFDO1lBQ0QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN0QixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtZQUV6QixrQ0FBa0M7WUFDbEMsaUJBQWlCO1FBQ25CLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUE7SUFDekIsQ0FBQztDQUdGO0FBRUQsZUFBZSxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4uLy4uLy4uL2d1YXJkcy9wcmltaXRpdmUuanMnXG5pbXBvcnQgeyBGaXJlaG9zZUNsaWVudCwgUHV0UmVjb3JkQmF0Y2hDb21tYW5kLCBQdXRSZWNvcmRCYXRjaElucHV0IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1maXJlaG9zZVwiXG5pbXBvcnQge1xuICBDcmVkZW50aWFscyBhcyBJQVdTVGVtcG9yYXJ5Q3JlZGVudGlhbHMsXG4gIEV4cGlyZWRUb2tlbkV4Y2VwdGlvbixcbn0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zdHNcIlxuaW1wb3J0IHsgTGV2ZWwgfSBmcm9tIFwiLi4vLi4vTGV2ZWwuanNcIlxuXG5pbXBvcnQgQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlciBmcm9tIFwiLi9BV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyLmpzXCJcbmltcG9ydCB7IGdldEludGVybmFsTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0ludGVybmFsTG9nZ2VyLmpzXCJcbmltcG9ydCB7IGdldFZhbHVlLCBndWFyZCB9IGZyb20gXCIuLi8uLi8uLi9ndWFyZHMvaW5kZXguanNcIlxuaW1wb3J0IHsgaXNFbXB0eSwgcGljayB9IGZyb20gXCJsb2Rhc2hcIlxuaW1wb3J0IHsgRGVmZXJyZWQgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9pbmRleC5qc1wiXG5pbXBvcnQgeyBMb2dSZWNvcmQgfSBmcm9tIFwiLi4vLi4vTG9nUmVjb3JkLmpzXCJcbmltcG9ydCB7IEFwcGVuZGVyIH0gZnJvbSBcIi4uLy4uL0FwcGVuZGVyLmpzXCJcblxuY29uc3QgTG9nUXVldWVNYXhSZWNvcmRzID0gMTAwMDBcblxuY29uc3QgbG9nID0gZ2V0SW50ZXJuYWxMb2dnZXIoKVxuXG5leHBvcnQgY2xhc3MgQVdTRmlyZWhvc2VBcHBlbmRlcjxSZWNvcmQgZXh0ZW5kcyBMb2dSZWNvcmQgPSBMb2dSZWNvcmQ+XG4gIGltcGxlbWVudHMgQXBwZW5kZXI8UmVjb3JkPiB7XG4gIHByaXZhdGUgcGVuZGluZ1JlY29yZHMgPSBBcnJheTxMb2dSZWNvcmQ+KClcbiAgcHJpdmF0ZSBmbHVzaERlZmVycmVkOiBEZWZlcnJlZDx2b2lkPlxuICBwcml2YXRlIGZsdXNoSW50ZXJ2YWxNcyA9IDEwMDA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxNYW5hZ2VyOiBBV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxFbmRwb2ludFVybDogc3RyaW5nKSB7XG4gICAgdGhpcy5jcmVkZW50aWFsTWFuYWdlciA9IG5ldyBBV1NGaXJlaG9zZUNyZWRlbnRpYWxNYW5hZ2VyKGNyZWRlbnRpYWxFbmRwb2ludFVybClcbiAgICB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLm9uKFwicmVjZWl2ZWRcIiwgKCkgPT4ge1xuICAgICAgbG9nLmluZm8oXCJDcmVkZW50aWFscyByZWNlaXZlZCwgaW5pdGlhbGl6aW5nIGZpcmVob3NlIGNsaWVudFwiKVxuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aCB8fCAhIXRoaXMuZmx1c2hEZWZlcnJlZCkge1xuICAgICAgICBsb2cuZGVidWcoXCJOb3RoaW5nIHRvIGZsdXNoIHVwb24gY3JlZGVudGlhbCByZWNlaXB0IE9SIGZsdXNoIGFscmVhZHkgaW4gcHJvZ3Jlc3NcIilcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB0aGlzLmZsdXNoKClcbiAgICAgICAgLmNhdGNoKChlOiBFcnJvcikgPT4ge1xuICAgICAgICAgIGxvZy5lcnJvcihgRXJyb3IgZmx1c2hpbmcgbG9ncyBhZnRlciBjcmVkZW50aWFsIHJlY2VpcHQ6ICR7ZS5tZXNzYWdlfWAsIGUpXG4gICAgICAgIH0pXG4gICAgfSlcbiAgfVxuICBhcHBlbmQocmVjb3JkOiBSZWNvcmQpOiB2b2lkIHtcbiAgICBjb25zdFxuICAgICAgcGVuZGluZ0NvdW50ID0gdGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGggKyAxLFxuICAgICAgcmVtb3ZlQ291bnQgPSBMb2dRdWV1ZU1heFJlY29yZHMgLSBwZW5kaW5nQ291bnRcblxuICAgIGlmIChyZW1vdmVDb3VudCA8IDApIHtcbiAgICAgIHRoaXMucGVuZGluZ1JlY29yZHMuc3BsaWNlKDAsIE1hdGguYWJzKHJlbW92ZUNvdW50KSlcbiAgICB9XG5cbiAgICB0aGlzLnBlbmRpbmdSZWNvcmRzLnB1c2goe1xuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgLi4ucmVjb3JkLFxuICAgICAgYXBwOiByZWNvcmQuYXBwPy5sZW5ndGggPiAwID8gcmVjb3JkLmFwcCA6IFwiVU5LTk9XTlwiLFxuICAgICAgZW52OiByZWNvcmQuZW52Py5sZW5ndGggPiAwID8gcmVjb3JkLmVudiA6IFwiVU5LTk9XTlwiLFxuICAgICAgdXJsOiB0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiID8gXCJsb2NhbDovL1wiIDogd2luZG93LmxvY2F0aW9uLmhyZWYsXG4gICAgfSlcblxuICAgIHRoaXMuZmx1c2goKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgZmlyZWhvc2UgY2xpZW50IGFuZCByZXR1cm5cbiAgICpcbiAgICogQHBhcmFtIHtJQVdTVGVtcG9yYXJ5Q3JlZGVudGlhbHN9IGNyZWRlbnRpYWxzXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZmx1c2hcbiAgICogQHJldHVybnMge0ZpcmVob3NlfVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaXJlaG9zZSgpOiBGaXJlaG9zZUNsaWVudCB7XG4gICAgY29uc3QgY3JlZHMgPSB0aGlzLmNyZWRlbnRpYWxNYW5hZ2VyLmdldENyZWRlbnRpYWxzKClcblxuICAgIGlmICghY3JlZHMpIHtcbiAgICAgIGxvZy53YXJuKFwiTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGZvciBmbHVzaFwiKVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCB7IHJlZ2lvbiwgc3RyZWFtTmFtZSB9ID0gY3JlZHNcblxuICAgIGlmICghcmVnaW9uIHx8ICFzdHJlYW1OYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gb3Igc3RyZWFtIG5hbWUgbm90IGF2YWlsYWJsZVwiKVxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBGaXJlaG9zZUNsaWVudCh7XG4gICAgICByZWdpb246IGNyZWRzLnJlZ2lvbixcbiAgICAgIGNyZWRlbnRpYWxzOiBwaWNrKGNyZWRzLCBcImFjY2Vzc0tleUlkXCIsIFwic2VjcmV0QWNjZXNzS2V5XCIsIFwic2Vzc2lvblRva2VuXCIpLFxuICAgIH0pXG5cbiAgICByZXR1cm4gY2xpZW50XG4gIH1cblxuICAvKipcbiAgICogRmx1c2ggcGVuZGluZyByZWNvcmRzXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBmbHVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoISF0aGlzLmZsdXNoRGVmZXJyZWQpIHtcbiAgICAgIGxvZy5kZWJ1ZyhcIkZsdXNoIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHNraXBwaW5nXCIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGVuZGluZ1JlY29yZHMubGVuZ3RoKSB7XG4gICAgICBsb2cuZGVidWcoXCJObyBwZW5kaW5nIHJlY29yZHMgdG8gZmx1c2hcIilcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjcmVkcyA9IHRoaXMuY3JlZGVudGlhbE1hbmFnZXIuZ2V0Q3JlZGVudGlhbHMoKVxuICAgIGlmICghY3JlZHMpIHtcbiAgICAgIGxvZy53YXJuKFwiTm8gY3JlZGVudGlhbHMgYXZhaWxhYmxlIGZvciBmbHVzaFwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHsgc3RyZWFtTmFtZSB9ID0gY3JlZHMsXG4gICAgICBjbGllbnQgPSB0aGlzLmdldEZpcmVob3NlKClcbiAgICBpZiAoIWNsaWVudCkge1xuICAgICAgbG9nLndhcm4oXCJObyBmaXJlaG9zZSBjbGllbnQgYXZhaWxhYmxlLCBza2lwcGluZyBmbHVzaFwiKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgZGVmZXJyZWQgPSB0aGlzLmZsdXNoRGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQ8dm9pZD4oKVxuICAgIHRyeSB7XG4gICAgICB3aGlsZSAodGhpcy5wZW5kaW5nUmVjb3Jkcy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3RcbiAgICAgICAgICBjaHVua1NpemUgPSBNYXRoLm1pbih0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aCwgMTApLFxuICAgICAgICAgIHJlY29yZHMgPSB0aGlzLnBlbmRpbmdSZWNvcmRzLnNwbGljZSgwLCBjaHVua1NpemUpLFxuICAgICAgICAgIHJlY29yZEpzb25zID0gcmVjb3Jkcy5tYXAocmVjb3JkID0+IEpTT04uc3RyaW5naWZ5KHJlY29yZCkpXG5cbiAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKVxuICAgICAgICAgIGxvZy5kZWJ1ZyhcIlJlY29yZHNcIiwgcmVjb3JkcylcblxuICAgICAgICBjb25zdFxuICAgICAgICAgIHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCksXG4gICAgICAgICAgYmF0Y2g6IFB1dFJlY29yZEJhdGNoSW5wdXRbXCJSZWNvcmRzXCJdID0gcmVjb3JkSnNvbnMubWFwKGpzb25TdHIgPT4gKHtcbiAgICAgICAgICAgIERhdGE6IHRleHRFbmNvZGVyLmVuY29kZShqc29uU3RyKVxuICAgICAgICAgIH0pKVxuXG4gICAgICAgIGxvZy5pbmZvKGBQdXNoaW5nICR7cmVjb3Jkcy5sZW5ndGh9IHJlY29yZHMgdG8gZmlyZWhvc2VgKVxuXG4gICAgICAgIGNvbnN0IGNtZCA9IG5ldyBQdXRSZWNvcmRCYXRjaENvbW1hbmQoe1xuICAgICAgICAgIERlbGl2ZXJ5U3RyZWFtTmFtZTogc3RyZWFtTmFtZSxcbiAgICAgICAgICBSZWNvcmRzOiBiYXRjaCxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgY2xpZW50LnNlbmQoY21kKVxuICAgICAgICBjb25zdCBmYWlsZWQgPSByZXNwLkZhaWxlZFB1dENvdW50IHx8IDBcbiAgICAgICAgaWYgKGZhaWxlZCkge1xuICAgICAgICAgIGNvbnN0IHJyID0gcmVzcC5SZXF1ZXN0UmVzcG9uc2VzIHx8IFtdXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJyW2ldLkVycm9yQ29kZSkge1xuICAgICAgICAgICAgICBsb2cud2FybihgUmVjb3JkIGZhaWxlZDogJHtycltpXS5FcnJvckNvZGV9ICR7cnJbaV0uRXJyb3JNZXNzYWdlfWApXG4gICAgICAgICAgICAgIC8vdGhpcy5wZW5kaW5nUmVjb3Jkcy51bnNoaWZ0KHJlY29yZHNbaV0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvZy5pbmZvKGBQdXRSZWNvcmRCYXRjaCBmYWlsZWQ9JHtmYWlsZWR9OyByZXF1ZXVlZCBmYWlsZWQgcmVjb3Jkc2ApXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nLmluZm8oYFB1dFJlY29yZEJhdGNoIG9rIGNvdW50PSR7cmVjb3Jkcy5sZW5ndGh9YClcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZXJyb3IoXCJGYWlsZWQgdG8gcHVzaCBsb2dzXCIsIGVycilcbiAgICAgIGlmIChlcnIuY29kZSA9PT0gRXhwaXJlZFRva2VuRXhjZXB0aW9uKSB7XG4gICAgICAgIHRoaXMuY3JlZGVudGlhbE1hbmFnZXIuZm9yY2VVcGRhdGVDcmVkZW50aWFscygpXG4gICAgICB9XG4gICAgICBkZWZlcnJlZC5yZWplY3QoZXJyKVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmZsdXNoRGVmZXJyZWQgPSBudWxsXG5cbiAgICAgIC8vIGlmICh0aGlzLnBlbmRpbmdSZWNvcmRzLmxlbmd0aClcbiAgICAgIC8vICAgdGhpcy5mbHVzaCgpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2VcbiAgfVxuXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgQVdTRmlyZWhvc2VBcHBlbmRlclxuIl19
@@ -0,0 +1,29 @@
1
+ import EventEmitter3 from "eventemitter3";
2
+ export interface AWSCredentials {
3
+ accessKeyId: string;
4
+ secretAccessKey: string;
5
+ sessionToken: string;
6
+ streamName: string;
7
+ region: string;
8
+ expiration: string;
9
+ }
10
+ export interface AWSFirehoseCredentialManagerEventMap {
11
+ received: (creds: AWSCredentials) => void;
12
+ expired: () => void;
13
+ }
14
+ export declare class AWSFirehoseCredentialManager extends EventEmitter3<AWSFirehoseCredentialManagerEventMap> {
15
+ readonly credentialEndpointUrl: string;
16
+ private refreshTimer;
17
+ private loadDeferred;
18
+ constructor(credentialEndpointUrl: string);
19
+ forceUpdateCredentials(): void;
20
+ getCredentials(): AWSCredentials;
21
+ hasCredentials(): boolean;
22
+ private load;
23
+ scheduleRefresh(credsOrMillis: AWSCredentials | number): void;
24
+ getStreamName(): string;
25
+ getRegion(): string;
26
+ destroy(): void;
27
+ }
28
+ export default AWSFirehoseCredentialManager;
29
+ //# sourceMappingURL=AWSFirehoseCredentialManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AWSFirehoseCredentialManager.d.ts","sourceRoot":"","sources":["../../../../../src/logging/appenders/aws-firehose/AWSFirehoseCredentialManager.ts"],"names":[],"mappings":"AAGA,OAAO,aAAa,MAAM,eAAe,CAAA;AAMzC,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,qBAAa,4BAA6B,SAAQ,aAAa,CAAC,oCAAoC,CAAC;aAMjF,qBAAqB,EAAE,MAAM;IAJ/C,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,YAAY,CAAkC;gBAGpC,qBAAqB,EAAE,MAAM;IAK/C,sBAAsB,IAAI,IAAI;IAS9B,cAAc,IAAI,cAAc;IAmBhC,cAAc,IAAI,OAAO;YAIX,IAAI;IAyBlB,eAAe,CAAC,aAAa,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IA4B7D,aAAa,IAAI,MAAM;IAIvB,SAAS,IAAI,MAAM;IAInB,OAAO,IAAI,IAAI;CAMhB;AAGD,eAAe,4BAA4B,CAAA"}
@@ -0,0 +1,98 @@
1
+ import { Deferred } from "../../../helpers/index.js";
2
+ import { getInternalLogger } from "../../InternalLogger.js";
3
+ import EventEmitter3 from "eventemitter3";
4
+ const CRED_BUFFER_PADDING_MS = 3 * 60 * 1000; // 3 minutes
5
+ const log = getInternalLogger();
6
+ export class AWSFirehoseCredentialManager extends EventEmitter3 {
7
+ credentialEndpointUrl;
8
+ refreshTimer = null;
9
+ loadDeferred = null;
10
+ constructor(credentialEndpointUrl) {
11
+ super();
12
+ this.credentialEndpointUrl = credentialEndpointUrl;
13
+ }
14
+ forceUpdateCredentials() {
15
+ if (this.loadDeferred && !this.loadDeferred.isSettled()) {
16
+ this.loadDeferred.reject(new Error("force update"));
17
+ }
18
+ this.loadDeferred = null;
19
+ this.scheduleRefresh(1);
20
+ }
21
+ getCredentials() {
22
+ if (this.loadDeferred && this.loadDeferred.isFulfilled()) {
23
+ const creds = this.loadDeferred.getResult(), expMs = Date.parse(creds.expiration);
24
+ if (expMs <= Date.now()) {
25
+ log.info("Credentials expired");
26
+ this.loadDeferred = null;
27
+ this.scheduleRefresh(1);
28
+ this.emit("expired");
29
+ return null;
30
+ }
31
+ return creds;
32
+ }
33
+ this.scheduleRefresh(1);
34
+ return null;
35
+ }
36
+ hasCredentials() {
37
+ return this.getCredentials() != null;
38
+ }
39
+ async load() {
40
+ if (this.loadDeferred && !this.loadDeferred.isRejected())
41
+ return this.loadDeferred.promise;
42
+ const deferred = this.loadDeferred = new Deferred();
43
+ try {
44
+ const r = await fetch(this.credentialEndpointUrl, {
45
+ method: "GET",
46
+ credentials: "include",
47
+ });
48
+ if (!r.ok)
49
+ throw new Error(`creds http ${r.status}`);
50
+ const creds = await r.json();
51
+ this.scheduleRefresh(creds);
52
+ log.info(`Got creds, expire=${creds.expiration}, stream=${creds.streamName}, region=${creds.region}`);
53
+ deferred.resolve(creds);
54
+ this.emit("received", creds);
55
+ return deferred.promise;
56
+ }
57
+ catch (e) {
58
+ deferred.reject(e);
59
+ this.loadDeferred = null;
60
+ throw e;
61
+ }
62
+ }
63
+ scheduleRefresh(credsOrMillis) {
64
+ if (this.refreshTimer) {
65
+ clearTimeout(this.refreshTimer);
66
+ this.refreshTimer = null;
67
+ }
68
+ if (!credsOrMillis)
69
+ return;
70
+ let refreshInMs;
71
+ if (typeof credsOrMillis === "number") {
72
+ refreshInMs = credsOrMillis;
73
+ }
74
+ else {
75
+ const creds = credsOrMillis, expMs = Date.parse(creds.expiration);
76
+ refreshInMs = expMs - Date.now() - CRED_BUFFER_PADDING_MS;
77
+ }
78
+ refreshInMs = Math.max(100, refreshInMs);
79
+ this.refreshTimer = setTimeout(() => {
80
+ this.loadDeferred = null;
81
+ this.load().catch((e) => log.error(`refresh failed: ${e.message}`, e));
82
+ }, refreshInMs);
83
+ }
84
+ getStreamName() {
85
+ return this.getCredentials()?.streamName;
86
+ }
87
+ getRegion() {
88
+ return this.getCredentials()?.region;
89
+ }
90
+ destroy() {
91
+ this.scheduleRefresh(null);
92
+ if (!this.loadDeferred.isSettled())
93
+ this.loadDeferred.reject(new Error("destroyed"));
94
+ this.loadDeferred = null;
95
+ }
96
+ }
97
+ export default AWSFirehoseCredentialManager;
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dnaW5nL2FwcGVuZGVycy9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VDcmVkZW50aWFsTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxhQUFhLE1BQU0sZUFBZSxDQUFBO0FBRXpDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUEsQ0FBQyxZQUFZO0FBRXpELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixFQUFFLENBQUE7QUFnQi9CLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxhQUFtRDtJQU1qRjtJQUpWLFlBQVksR0FBa0MsSUFBSSxDQUFDO0lBQ25ELFlBQVksR0FBNkIsSUFBSSxDQUFDO0lBRXRELFlBQ2tCLHFCQUE2QjtRQUU3QyxLQUFLLEVBQUUsQ0FBQTtRQUZTLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUTtJQUcvQyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN6RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxFQUN6QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUE7WUFFdEMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQTtnQkFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUE7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLElBQUksQ0FBQTtJQUN0QyxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQTtRQUVsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksUUFBUSxFQUFrQixDQUFBO1FBQ25FLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxHQUFHLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDaEQsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsV0FBVyxFQUFFLFNBQVM7YUFDdkIsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQTtZQUNwRCxNQUFNLEtBQUssR0FBbUIsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7WUFHNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLENBQUMsVUFBVSxZQUFZLEtBQUssQ0FBQyxVQUFVLFlBQVksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUE7WUFDckcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUM1QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUE7UUFDekIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1lBQ3hCLE1BQU0sQ0FBQyxDQUFBO1FBQ1QsQ0FBQztJQUNILENBQUM7SUFDRCxlQUFlLENBQUMsYUFBc0M7UUFDcEQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtRQUMxQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWE7WUFDaEIsT0FBTTtRQUVSLElBQUksV0FBbUIsQ0FBQTtRQUN2QixJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLFdBQVcsR0FBRyxhQUFhLENBQUE7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUNFLEtBQUssR0FBRyxhQUFhLEVBQ3JCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUV0QyxXQUFXLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQTtRQUUzRCxDQUFDO1FBRUQsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBRXhDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUMvRSxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUE7SUFDakIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxVQUFVLENBQUE7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUE7SUFDdEMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQzFCLENBQUM7Q0FDRjtBQUdELGVBQWUsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlaG9zZUNsaWVudCwgUHV0UmVjb3JkQmF0Y2hDb21tYW5kIH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1maXJlaG9zZVwiXG5pbXBvcnQgeyBEZWZlcnJlZCB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2luZGV4LmpzXCJcbmltcG9ydCB7IGdldEludGVybmFsTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL0ludGVybmFsTG9nZ2VyLmpzXCJcbmltcG9ydCBFdmVudEVtaXR0ZXIzIGZyb20gXCJldmVudGVtaXR0ZXIzXCJcblxuY29uc3QgQ1JFRF9CVUZGRVJfUEFERElOR19NUyA9IDMgKiA2MCAqIDEwMDAgLy8gMyBtaW51dGVzXG5cbmNvbnN0IGxvZyA9IGdldEludGVybmFsTG9nZ2VyKClcblxuZXhwb3J0IGludGVyZmFjZSBBV1NDcmVkZW50aWFscyB7XG4gIGFjY2Vzc0tleUlkOiBzdHJpbmdcbiAgc2VjcmV0QWNjZXNzS2V5OiBzdHJpbmdcbiAgc2Vzc2lvblRva2VuOiBzdHJpbmdcbiAgc3RyZWFtTmFtZTogc3RyaW5nXG4gIHJlZ2lvbjogc3RyaW5nXG4gIGV4cGlyYXRpb246IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJFdmVudE1hcCB7XG4gIHJlY2VpdmVkOiAoY3JlZHM6IEFXU0NyZWRlbnRpYWxzKSA9PiB2b2lkXG4gIGV4cGlyZWQ6ICgpID0+IHZvaWRcbn1cblxuZXhwb3J0IGNsYXNzIEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIzPEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJFdmVudE1hcD4ge1xuXG4gIHByaXZhdGUgcmVmcmVzaFRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiA9IG51bGw7XG4gIHByaXZhdGUgbG9hZERlZmVycmVkOiBEZWZlcnJlZDxBV1NDcmVkZW50aWFscz4gPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsRW5kcG9pbnRVcmw6IHN0cmluZyxcbiAgKSB7XG4gICAgc3VwZXIoKVxuICB9XG5cbiAgZm9yY2VVcGRhdGVDcmVkZW50aWFscygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkRGVmZXJyZWQgJiYgIXRoaXMubG9hZERlZmVycmVkLmlzU2V0dGxlZCgpKSB7XG4gICAgICB0aGlzLmxvYWREZWZlcnJlZC5yZWplY3QobmV3IEVycm9yKFwiZm9yY2UgdXBkYXRlXCIpKVxuICAgIH1cblxuICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gIH1cblxuICBnZXRDcmVkZW50aWFscygpOiBBV1NDcmVkZW50aWFscyB7XG4gICAgaWYgKHRoaXMubG9hZERlZmVycmVkICYmIHRoaXMubG9hZERlZmVycmVkLmlzRnVsZmlsbGVkKCkpIHtcbiAgICAgIGNvbnN0IGNyZWRzID0gdGhpcy5sb2FkRGVmZXJyZWQuZ2V0UmVzdWx0KCksXG4gICAgICAgIGV4cE1zID0gRGF0ZS5wYXJzZShjcmVkcy5leHBpcmF0aW9uKVxuXG4gICAgICBpZiAoZXhwTXMgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICBsb2cuaW5mbyhcIkNyZWRlbnRpYWxzIGV4cGlyZWRcIilcbiAgICAgICAgdGhpcy5sb2FkRGVmZXJyZWQgPSBudWxsXG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gICAgICAgIHRoaXMuZW1pdChcImV4cGlyZWRcIilcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVkc1xuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKDEpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGhhc0NyZWRlbnRpYWxzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldENyZWRlbnRpYWxzKCkgIT0gbnVsbFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8QVdTQ3JlZGVudGlhbHM+IHtcbiAgICBpZiAodGhpcy5sb2FkRGVmZXJyZWQgJiYgIXRoaXMubG9hZERlZmVycmVkLmlzUmVqZWN0ZWQoKSlcbiAgICAgIHJldHVybiB0aGlzLmxvYWREZWZlcnJlZC5wcm9taXNlXG5cbiAgICBjb25zdCBkZWZlcnJlZCA9IHRoaXMubG9hZERlZmVycmVkID0gbmV3IERlZmVycmVkPEFXU0NyZWRlbnRpYWxzPigpXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaCh0aGlzLmNyZWRlbnRpYWxFbmRwb2ludFVybCwge1xuICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgIGNyZWRlbnRpYWxzOiBcImluY2x1ZGVcIixcbiAgICAgIH0pXG4gICAgICBpZiAoIXIub2spIHRocm93IG5ldyBFcnJvcihgY3JlZHMgaHR0cCAke3Iuc3RhdHVzfWApXG4gICAgICBjb25zdCBjcmVkczogQVdTQ3JlZGVudGlhbHMgPSBhd2FpdCByLmpzb24oKVxuXG5cbiAgICAgIHRoaXMuc2NoZWR1bGVSZWZyZXNoKGNyZWRzKVxuICAgICAgbG9nLmluZm8oYEdvdCBjcmVkcywgZXhwaXJlPSR7Y3JlZHMuZXhwaXJhdGlvbn0sIHN0cmVhbT0ke2NyZWRzLnN0cmVhbU5hbWV9LCByZWdpb249JHtjcmVkcy5yZWdpb259YClcbiAgICAgIGRlZmVycmVkLnJlc29sdmUoY3JlZHMpXG4gICAgICB0aGlzLmVtaXQoXCJyZWNlaXZlZFwiLCBjcmVkcylcbiAgICAgIHJldHVybiBkZWZlcnJlZC5wcm9taXNlXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgZGVmZXJyZWQucmVqZWN0KGUpXG4gICAgICB0aGlzLmxvYWREZWZlcnJlZCA9IG51bGxcbiAgICAgIHRocm93IGVcbiAgICB9XG4gIH1cbiAgc2NoZWR1bGVSZWZyZXNoKGNyZWRzT3JNaWxsaXM6IEFXU0NyZWRlbnRpYWxzIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVmcmVzaFRpbWVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoVGltZXIpXG4gICAgICB0aGlzLnJlZnJlc2hUaW1lciA9IG51bGxcbiAgICB9XG4gICAgaWYgKCFjcmVkc09yTWlsbGlzKVxuICAgICAgcmV0dXJuXG5cbiAgICBsZXQgcmVmcmVzaEluTXM6IG51bWJlclxuICAgIGlmICh0eXBlb2YgY3JlZHNPck1pbGxpcyA9PT0gXCJudW1iZXJcIikge1xuICAgICAgcmVmcmVzaEluTXMgPSBjcmVkc09yTWlsbGlzXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0XG4gICAgICAgIGNyZWRzID0gY3JlZHNPck1pbGxpcyxcbiAgICAgICAgZXhwTXMgPSBEYXRlLnBhcnNlKGNyZWRzLmV4cGlyYXRpb24pXG5cbiAgICAgIHJlZnJlc2hJbk1zID0gZXhwTXMgLSBEYXRlLm5vdygpIC0gQ1JFRF9CVUZGRVJfUEFERElOR19NU1xuXG4gICAgfVxuXG4gICAgcmVmcmVzaEluTXMgPSBNYXRoLm1heCgxMDAsIHJlZnJlc2hJbk1zKVxuXG4gICAgdGhpcy5yZWZyZXNoVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9hZERlZmVycmVkID0gbnVsbFxuICAgICAgdGhpcy5sb2FkKCkuY2F0Y2goKGU6IEVycm9yKSA9PiBsb2cuZXJyb3IoYHJlZnJlc2ggZmFpbGVkOiAke2UubWVzc2FnZX1gLCBlKSlcbiAgICB9LCByZWZyZXNoSW5NcylcbiAgfVxuXG4gIGdldFN0cmVhbU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDcmVkZW50aWFscygpPy5zdHJlYW1OYW1lXG4gIH1cblxuICBnZXRSZWdpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDcmVkZW50aWFscygpPy5yZWdpb25cbiAgfVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZVJlZnJlc2gobnVsbClcbiAgICBpZiAoIXRoaXMubG9hZERlZmVycmVkLmlzU2V0dGxlZCgpKVxuICAgICAgdGhpcy5sb2FkRGVmZXJyZWQucmVqZWN0KG5ldyBFcnJvcihcImRlc3Ryb3llZFwiKSlcbiAgICB0aGlzLmxvYWREZWZlcnJlZCA9IG51bGxcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWZhdWx0IEFXU0ZpcmVob3NlQ3JlZGVudGlhbE1hbmFnZXJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from "./aws-firehose/AWSFirehoseAppender.js";
2
+ export * from "./ConsoleAppender.js";
3
+ export * from "./push/PushLogRecordsAppender.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/logging/appenders/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AACrD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kCAAkC,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from "./aws-firehose/AWSFirehoseAppender.js";
2
+ export * from "./ConsoleAppender.js";
3
+ export * from "./push/PushLogRecordsAppender.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbG9nZ2luZy9hcHBlbmRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hd3MtZmlyZWhvc2UvQVdTRmlyZWhvc2VBcHBlbmRlci5qc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9Db25zb2xlQXBwZW5kZXIuanNcIlxuZXhwb3J0ICogZnJvbSBcIi4vcHVzaC9QdXNoTG9nUmVjb3Jkc0FwcGVuZGVyLmpzXCJcbiJdfQ==