@contrast/agent 4.16.0 → 4.17.0

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 (567) hide show
  1. package/bin/VERSION +1 -1
  2. package/bin/linux/contrast-service +0 -0
  3. package/bin/mac/contrast-service +0 -0
  4. package/bin/windows/contrast-service.exe +0 -0
  5. package/esm.mjs +21 -11
  6. package/lib/assess/policy/propagators.json +4 -0
  7. package/lib/assess/policy/signatures.json +5 -0
  8. package/lib/assess/propagators/fastify-static/allowed-path.js +85 -0
  9. package/lib/contrast.js +1 -1
  10. package/lib/core/rewrite/index.js +2 -2
  11. package/lib/protect/rules/cmd-injection/cmdinjection-rule.js +1 -1
  12. package/node_modules/@colors/colors/LICENSE +26 -0
  13. package/node_modules/@colors/colors/README.md +219 -0
  14. package/node_modules/@colors/colors/examples/normal-usage.js +83 -0
  15. package/node_modules/@colors/colors/examples/safe-string.js +80 -0
  16. package/node_modules/@colors/colors/index.d.ts +136 -0
  17. package/node_modules/@colors/colors/lib/colors.js +211 -0
  18. package/node_modules/@colors/colors/lib/custom/trap.js +46 -0
  19. package/node_modules/@colors/colors/lib/custom/zalgo.js +110 -0
  20. package/node_modules/@colors/colors/lib/extendStringPrototype.js +110 -0
  21. package/node_modules/@colors/colors/lib/index.js +13 -0
  22. package/node_modules/@colors/colors/lib/maps/america.js +10 -0
  23. package/node_modules/@colors/colors/lib/maps/rainbow.js +12 -0
  24. package/node_modules/@colors/colors/lib/maps/random.js +11 -0
  25. package/node_modules/@colors/colors/lib/maps/zebra.js +5 -0
  26. package/node_modules/@colors/colors/lib/styles.js +95 -0
  27. package/node_modules/@colors/colors/lib/system/has-flag.js +35 -0
  28. package/node_modules/@colors/colors/lib/system/supports-colors.js +151 -0
  29. package/node_modules/@colors/colors/package.json +49 -0
  30. package/node_modules/@colors/colors/safe.d.ts +48 -0
  31. package/node_modules/@colors/colors/safe.js +10 -0
  32. package/node_modules/@colors/colors/themes/generic-logging.js +12 -0
  33. package/node_modules/@dabh/diagnostics/README.md +16 -16
  34. package/node_modules/@dabh/diagnostics/package.json +9 -9
  35. package/node_modules/async/CHANGELOG.md +13 -0
  36. package/node_modules/async/all.js +74 -9
  37. package/node_modules/async/allLimit.js +3 -3
  38. package/node_modules/async/allSeries.js +3 -3
  39. package/node_modules/async/any.js +75 -9
  40. package/node_modules/async/anyLimit.js +3 -3
  41. package/node_modules/async/anySeries.js +3 -3
  42. package/node_modules/async/applyEach.js +2 -2
  43. package/node_modules/async/applyEachSeries.js +2 -2
  44. package/node_modules/async/asyncify.js +3 -3
  45. package/node_modules/async/auto.js +81 -15
  46. package/node_modules/async/autoInject.js +30 -4
  47. package/node_modules/async/cargo.js +1 -1
  48. package/node_modules/async/cargoQueue.js +1 -1
  49. package/node_modules/async/compose.js +1 -1
  50. package/node_modules/async/concat.js +72 -4
  51. package/node_modules/async/concatLimit.js +3 -3
  52. package/node_modules/async/concatSeries.js +2 -2
  53. package/node_modules/async/detect.js +43 -8
  54. package/node_modules/async/detectLimit.js +3 -3
  55. package/node_modules/async/detectSeries.js +3 -3
  56. package/node_modules/async/dir.js +1 -1
  57. package/node_modules/async/dist/async.js +1379 -168
  58. package/node_modules/async/dist/async.min.js +1 -1
  59. package/node_modules/async/dist/async.mjs +1372 -161
  60. package/node_modules/async/doDuring.js +3 -3
  61. package/node_modules/async/doUntil.js +2 -2
  62. package/node_modules/async/doWhilst.js +3 -3
  63. package/node_modules/async/during.js +3 -3
  64. package/node_modules/async/each.js +69 -28
  65. package/node_modules/async/eachLimit.js +4 -4
  66. package/node_modules/async/eachOf.js +85 -16
  67. package/node_modules/async/eachOfLimit.js +3 -3
  68. package/node_modules/async/eachOfSeries.js +2 -2
  69. package/node_modules/async/eachSeries.js +2 -2
  70. package/node_modules/async/ensureAsync.js +2 -2
  71. package/node_modules/async/every.js +74 -9
  72. package/node_modules/async/everyLimit.js +3 -3
  73. package/node_modules/async/everySeries.js +3 -3
  74. package/node_modules/async/filter.js +49 -9
  75. package/node_modules/async/filterLimit.js +3 -3
  76. package/node_modules/async/filterSeries.js +3 -3
  77. package/node_modules/async/find.js +43 -8
  78. package/node_modules/async/findLimit.js +3 -3
  79. package/node_modules/async/findSeries.js +3 -3
  80. package/node_modules/async/flatMap.js +72 -4
  81. package/node_modules/async/flatMapLimit.js +3 -3
  82. package/node_modules/async/flatMapSeries.js +2 -2
  83. package/node_modules/async/foldl.js +87 -11
  84. package/node_modules/async/foldr.js +2 -2
  85. package/node_modules/async/forEach.js +69 -28
  86. package/node_modules/async/forEachLimit.js +4 -4
  87. package/node_modules/async/forEachOf.js +85 -16
  88. package/node_modules/async/forEachOfLimit.js +3 -3
  89. package/node_modules/async/forEachOfSeries.js +2 -2
  90. package/node_modules/async/forEachSeries.js +2 -2
  91. package/node_modules/async/forever.js +4 -4
  92. package/node_modules/async/groupBy.js +62 -8
  93. package/node_modules/async/groupByLimit.js +3 -3
  94. package/node_modules/async/groupBySeries.js +2 -2
  95. package/node_modules/async/inject.js +87 -11
  96. package/node_modules/async/internal/applyEach.js +2 -2
  97. package/node_modules/async/internal/asyncEachOfLimit.js +1 -1
  98. package/node_modules/async/internal/consoleFunc.js +5 -1
  99. package/node_modules/async/internal/createTester.js +2 -2
  100. package/node_modules/async/internal/eachOfLimit.js +6 -6
  101. package/node_modules/async/internal/filter.js +2 -2
  102. package/node_modules/async/internal/iterator.js +5 -2
  103. package/node_modules/async/internal/map.js +1 -1
  104. package/node_modules/async/internal/parallel.js +3 -3
  105. package/node_modules/async/internal/queue.js +4 -4
  106. package/node_modules/async/internal/reject.js +2 -2
  107. package/node_modules/async/internal/setImmediate.js +6 -2
  108. package/node_modules/async/internal/wrapAsync.js +1 -1
  109. package/node_modules/async/log.js +1 -1
  110. package/node_modules/async/map.js +86 -6
  111. package/node_modules/async/mapLimit.js +3 -3
  112. package/node_modules/async/mapSeries.js +3 -3
  113. package/node_modules/async/mapValues.js +102 -12
  114. package/node_modules/async/mapValuesLimit.js +4 -4
  115. package/node_modules/async/mapValuesSeries.js +1 -1
  116. package/node_modules/async/memoize.js +3 -3
  117. package/node_modules/async/nextTick.js +3 -3
  118. package/node_modules/async/package.json +4 -6
  119. package/node_modules/async/parallel.js +96 -7
  120. package/node_modules/async/parallelLimit.js +2 -2
  121. package/node_modules/async/priorityQueue.js +11 -4
  122. package/node_modules/async/queue.js +4 -4
  123. package/node_modules/async/race.js +3 -3
  124. package/node_modules/async/reduce.js +87 -11
  125. package/node_modules/async/reduceRight.js +2 -2
  126. package/node_modules/async/reflect.js +2 -2
  127. package/node_modules/async/reflectAll.js +1 -1
  128. package/node_modules/async/reject.js +44 -10
  129. package/node_modules/async/rejectLimit.js +3 -3
  130. package/node_modules/async/rejectSeries.js +3 -3
  131. package/node_modules/async/retry.js +2 -2
  132. package/node_modules/async/retryable.js +4 -4
  133. package/node_modules/async/select.js +49 -9
  134. package/node_modules/async/selectLimit.js +3 -3
  135. package/node_modules/async/selectSeries.js +3 -3
  136. package/node_modules/async/seq.js +4 -4
  137. package/node_modules/async/series.js +112 -12
  138. package/node_modules/async/setImmediate.js +1 -1
  139. package/node_modules/async/some.js +75 -9
  140. package/node_modules/async/someLimit.js +3 -3
  141. package/node_modules/async/someSeries.js +3 -3
  142. package/node_modules/async/sortBy.js +121 -19
  143. package/node_modules/async/timeout.js +2 -2
  144. package/node_modules/async/times.js +1 -1
  145. package/node_modules/async/timesLimit.js +3 -3
  146. package/node_modules/async/timesSeries.js +1 -1
  147. package/node_modules/async/transform.js +111 -19
  148. package/node_modules/async/tryEach.js +3 -3
  149. package/node_modules/async/until.js +3 -3
  150. package/node_modules/async/waterfall.js +4 -4
  151. package/node_modules/async/whilst.js +3 -3
  152. package/node_modules/async/wrapSync.js +3 -3
  153. package/node_modules/color/README.md +9 -0
  154. package/node_modules/color/index.js +4 -1
  155. package/node_modules/color/package.json +8 -8
  156. package/node_modules/color-string/README.md +6 -2
  157. package/node_modules/color-string/index.js +21 -13
  158. package/node_modules/color-string/package.json +4 -4
  159. package/node_modules/colorspace/package.json +5 -5
  160. package/node_modules/fecha/dist/fecha.min.js +1 -1
  161. package/node_modules/fecha/dist/fecha.min.js.map +1 -0
  162. package/node_modules/fecha/lib/fecha.d.ts +2 -2
  163. package/node_modules/fecha/lib/fecha.js +35 -18
  164. package/node_modules/fecha/lib/fecha.js.map +1 -0
  165. package/node_modules/fecha/lib/fecha.umd.js +35 -18
  166. package/node_modules/fecha/lib/fecha.umd.js.map +1 -0
  167. package/node_modules/fecha/package.json +9 -10
  168. package/node_modules/fecha/src/fecha.ts +524 -0
  169. package/node_modules/logform/.eslintrc +1 -1
  170. package/node_modules/logform/CHANGELOG.md +24 -0
  171. package/node_modules/logform/README.md +15 -17
  172. package/node_modules/logform/browser.js +3 -1
  173. package/node_modules/logform/cli.js +1 -1
  174. package/node_modules/logform/colorize.js +2 -2
  175. package/node_modules/logform/dist/browser.js +8 -2
  176. package/node_modules/logform/dist/cli.js +2 -2
  177. package/node_modules/logform/dist/colorize.js +5 -5
  178. package/node_modules/logform/dist/errors.js +1 -1
  179. package/node_modules/logform/dist/format.js +9 -5
  180. package/node_modules/logform/dist/index.js +53 -20
  181. package/node_modules/logform/dist/json.js +7 -6
  182. package/node_modules/logform/dist/logstash.js +1 -1
  183. package/node_modules/logform/dist/pad-levels.js +4 -4
  184. package/node_modules/logform/dist/printf.js +1 -1
  185. package/node_modules/logform/dist/simple.js +1 -1
  186. package/node_modules/logform/dist/splat.js +2 -2
  187. package/node_modules/logform/dist/uncolorize.js +1 -1
  188. package/node_modules/logform/errors.js +1 -1
  189. package/node_modules/logform/index.d.ts +36 -0
  190. package/node_modules/logform/index.js +19 -20
  191. package/node_modules/logform/json.js +7 -7
  192. package/node_modules/logform/logstash.js +1 -1
  193. package/node_modules/logform/package.json +10 -9
  194. package/node_modules/logform/simple.js +1 -1
  195. package/node_modules/logform/uncolorize.js +1 -1
  196. package/node_modules/moment/CHANGELOG.md +6 -0
  197. package/node_modules/moment/dist/locale/ar-kw.js +4 -3
  198. package/node_modules/moment/dist/locale/ar-ly.js +1 -1
  199. package/node_modules/moment/dist/locale/ar-ma.js +4 -3
  200. package/node_modules/moment/dist/locale/ar-sa.js +4 -3
  201. package/node_modules/moment/dist/locale/ar-tn.js +4 -3
  202. package/node_modules/moment/dist/locale/az.js +4 -3
  203. package/node_modules/moment/dist/locale/be.js +10 -9
  204. package/node_modules/moment/dist/locale/bn-bd.js +4 -3
  205. package/node_modules/moment/dist/locale/bn.js +4 -3
  206. package/node_modules/moment/dist/locale/bo.js +8 -6
  207. package/node_modules/moment/dist/locale/br.js +6 -3
  208. package/node_modules/moment/dist/locale/bs.js +4 -3
  209. package/node_modules/moment/dist/locale/ca.js +12 -9
  210. package/node_modules/moment/dist/locale/cs.js +15 -6
  211. package/node_modules/moment/dist/locale/cv.js +4 -3
  212. package/node_modules/moment/dist/locale/cy.js +4 -3
  213. package/node_modules/moment/dist/locale/de-at.js +6 -6
  214. package/node_modules/moment/dist/locale/de-ch.js +6 -6
  215. package/node_modules/moment/dist/locale/de.js +6 -6
  216. package/node_modules/moment/dist/locale/el.js +8 -6
  217. package/node_modules/moment/dist/locale/es-do.js +10 -6
  218. package/node_modules/moment/dist/locale/es-mx.js +10 -6
  219. package/node_modules/moment/dist/locale/es-us.js +10 -6
  220. package/node_modules/moment/dist/locale/es.js +10 -6
  221. package/node_modules/moment/dist/locale/et.js +6 -6
  222. package/node_modules/moment/dist/locale/eu.js +8 -6
  223. package/node_modules/moment/dist/locale/fa.js +12 -9
  224. package/node_modules/moment/dist/locale/fi.js +12 -9
  225. package/node_modules/moment/dist/locale/fo.js +4 -3
  226. package/node_modules/moment/dist/locale/fr-ca.js +4 -3
  227. package/node_modules/moment/dist/locale/fr-ch.js +4 -3
  228. package/node_modules/moment/dist/locale/fr.js +10 -6
  229. package/node_modules/moment/dist/locale/fy.js +4 -6
  230. package/node_modules/moment/dist/locale/gl.js +4 -3
  231. package/node_modules/moment/dist/locale/gom-deva.js +8 -6
  232. package/node_modules/moment/dist/locale/gom-latn.js +6 -6
  233. package/node_modules/moment/dist/locale/gu.js +4 -3
  234. package/node_modules/moment/dist/locale/he.js +4 -4
  235. package/node_modules/moment/dist/locale/hi.js +14 -10
  236. package/node_modules/moment/dist/locale/hr.js +7 -5
  237. package/node_modules/moment/dist/locale/hu.js +6 -6
  238. package/node_modules/moment/dist/locale/hy-am.js +8 -6
  239. package/node_modules/moment/dist/locale/is.js +4 -3
  240. package/node_modules/moment/dist/locale/ka.js +10 -10
  241. package/node_modules/moment/dist/locale/km.js +4 -3
  242. package/node_modules/moment/dist/locale/kn.js +4 -3
  243. package/node_modules/moment/dist/locale/ku.js +6 -6
  244. package/node_modules/moment/dist/locale/lb.js +8 -6
  245. package/node_modules/moment/dist/locale/lo.js +4 -3
  246. package/node_modules/moment/dist/locale/lt.js +8 -6
  247. package/node_modules/moment/dist/locale/lv.js +4 -3
  248. package/node_modules/moment/dist/locale/me.js +2 -3
  249. package/node_modules/moment/dist/locale/mi.js +4 -3
  250. package/node_modules/moment/dist/locale/ml.js +8 -6
  251. package/node_modules/moment/dist/locale/mn.js +4 -3
  252. package/node_modules/moment/dist/locale/mr.js +4 -3
  253. package/node_modules/moment/dist/locale/mt.js +4 -3
  254. package/node_modules/moment/dist/locale/nb.js +2 -3
  255. package/node_modules/moment/dist/locale/ne.js +4 -3
  256. package/node_modules/moment/dist/locale/nl-be.js +12 -12
  257. package/node_modules/moment/dist/locale/nl.js +12 -12
  258. package/node_modules/moment/dist/locale/nn.js +2 -3
  259. package/node_modules/moment/dist/locale/oc-lnc.js +8 -6
  260. package/node_modules/moment/dist/locale/pa-in.js +4 -3
  261. package/node_modules/moment/dist/locale/pl.js +10 -9
  262. package/node_modules/moment/dist/locale/pt-br.js +4 -3
  263. package/node_modules/moment/dist/locale/pt.js +4 -3
  264. package/node_modules/moment/dist/locale/ro.js +4 -3
  265. package/node_modules/moment/dist/locale/ru.js +20 -13
  266. package/node_modules/moment/dist/locale/se.js +6 -6
  267. package/node_modules/moment/dist/locale/si.js +4 -3
  268. package/node_modules/moment/dist/locale/sk.js +4 -3
  269. package/node_modules/moment/dist/locale/sl.js +4 -3
  270. package/node_modules/moment/dist/locale/sr-cyrl.js +32 -22
  271. package/node_modules/moment/dist/locale/sr.js +32 -22
  272. package/node_modules/moment/dist/locale/ss.js +4 -3
  273. package/node_modules/moment/dist/locale/sw.js +4 -3
  274. package/node_modules/moment/dist/locale/ta.js +8 -6
  275. package/node_modules/moment/dist/locale/te.js +8 -6
  276. package/node_modules/moment/dist/locale/tg.js +4 -3
  277. package/node_modules/moment/dist/locale/th.js +4 -3
  278. package/node_modules/moment/dist/locale/tlh.js +8 -9
  279. package/node_modules/moment/dist/locale/tr.js +1 -1
  280. package/node_modules/moment/dist/locale/tzm-latn.js +4 -3
  281. package/node_modules/moment/dist/locale/tzm.js +4 -3
  282. package/node_modules/moment/dist/locale/ug-cn.js +4 -3
  283. package/node_modules/moment/dist/locale/uk.js +16 -12
  284. package/node_modules/moment/dist/locale/uz-latn.js +4 -3
  285. package/node_modules/moment/dist/locale/vi.js +4 -3
  286. package/node_modules/moment/dist/locale/x-pseudo.js +8 -6
  287. package/node_modules/moment/dist/moment.js +95 -80
  288. package/node_modules/moment/locale/ar-kw.js +4 -3
  289. package/node_modules/moment/locale/ar-ly.js +1 -1
  290. package/node_modules/moment/locale/ar-ma.js +4 -3
  291. package/node_modules/moment/locale/ar-sa.js +4 -3
  292. package/node_modules/moment/locale/ar-tn.js +4 -3
  293. package/node_modules/moment/locale/az.js +4 -3
  294. package/node_modules/moment/locale/be.js +10 -9
  295. package/node_modules/moment/locale/bn-bd.js +4 -3
  296. package/node_modules/moment/locale/bn.js +4 -3
  297. package/node_modules/moment/locale/bo.js +8 -6
  298. package/node_modules/moment/locale/br.js +6 -3
  299. package/node_modules/moment/locale/bs.js +4 -3
  300. package/node_modules/moment/locale/ca.js +12 -9
  301. package/node_modules/moment/locale/cs.js +15 -6
  302. package/node_modules/moment/locale/cv.js +4 -3
  303. package/node_modules/moment/locale/cy.js +4 -3
  304. package/node_modules/moment/locale/de-at.js +6 -6
  305. package/node_modules/moment/locale/de-ch.js +6 -6
  306. package/node_modules/moment/locale/de.js +6 -6
  307. package/node_modules/moment/locale/el.js +8 -6
  308. package/node_modules/moment/locale/es-do.js +10 -6
  309. package/node_modules/moment/locale/es-mx.js +10 -6
  310. package/node_modules/moment/locale/es-us.js +10 -6
  311. package/node_modules/moment/locale/es.js +10 -6
  312. package/node_modules/moment/locale/et.js +6 -6
  313. package/node_modules/moment/locale/eu.js +8 -6
  314. package/node_modules/moment/locale/fa.js +12 -9
  315. package/node_modules/moment/locale/fi.js +12 -9
  316. package/node_modules/moment/locale/fo.js +4 -3
  317. package/node_modules/moment/locale/fr-ca.js +4 -3
  318. package/node_modules/moment/locale/fr-ch.js +4 -3
  319. package/node_modules/moment/locale/fr.js +10 -6
  320. package/node_modules/moment/locale/fy.js +4 -6
  321. package/node_modules/moment/locale/gl.js +4 -3
  322. package/node_modules/moment/locale/gom-deva.js +8 -6
  323. package/node_modules/moment/locale/gom-latn.js +6 -6
  324. package/node_modules/moment/locale/gu.js +4 -3
  325. package/node_modules/moment/locale/he.js +4 -4
  326. package/node_modules/moment/locale/hi.js +14 -10
  327. package/node_modules/moment/locale/hr.js +7 -5
  328. package/node_modules/moment/locale/hu.js +6 -6
  329. package/node_modules/moment/locale/hy-am.js +8 -6
  330. package/node_modules/moment/locale/is.js +4 -3
  331. package/node_modules/moment/locale/ka.js +10 -10
  332. package/node_modules/moment/locale/km.js +4 -3
  333. package/node_modules/moment/locale/kn.js +4 -3
  334. package/node_modules/moment/locale/ku.js +6 -6
  335. package/node_modules/moment/locale/lb.js +8 -6
  336. package/node_modules/moment/locale/lo.js +4 -3
  337. package/node_modules/moment/locale/lt.js +8 -6
  338. package/node_modules/moment/locale/lv.js +4 -3
  339. package/node_modules/moment/locale/me.js +2 -3
  340. package/node_modules/moment/locale/mi.js +4 -3
  341. package/node_modules/moment/locale/ml.js +8 -6
  342. package/node_modules/moment/locale/mn.js +4 -3
  343. package/node_modules/moment/locale/mr.js +4 -3
  344. package/node_modules/moment/locale/mt.js +4 -3
  345. package/node_modules/moment/locale/nb.js +2 -3
  346. package/node_modules/moment/locale/ne.js +4 -3
  347. package/node_modules/moment/locale/nl-be.js +12 -12
  348. package/node_modules/moment/locale/nl.js +12 -12
  349. package/node_modules/moment/locale/nn.js +2 -3
  350. package/node_modules/moment/locale/oc-lnc.js +8 -6
  351. package/node_modules/moment/locale/pa-in.js +4 -3
  352. package/node_modules/moment/locale/pl.js +10 -9
  353. package/node_modules/moment/locale/pt-br.js +4 -3
  354. package/node_modules/moment/locale/pt.js +4 -3
  355. package/node_modules/moment/locale/ro.js +4 -3
  356. package/node_modules/moment/locale/ru.js +20 -13
  357. package/node_modules/moment/locale/se.js +6 -6
  358. package/node_modules/moment/locale/si.js +4 -3
  359. package/node_modules/moment/locale/sk.js +4 -3
  360. package/node_modules/moment/locale/sl.js +4 -3
  361. package/node_modules/moment/locale/sr-cyrl.js +32 -22
  362. package/node_modules/moment/locale/sr.js +32 -22
  363. package/node_modules/moment/locale/ss.js +4 -3
  364. package/node_modules/moment/locale/sw.js +4 -3
  365. package/node_modules/moment/locale/ta.js +8 -6
  366. package/node_modules/moment/locale/te.js +8 -6
  367. package/node_modules/moment/locale/tg.js +4 -3
  368. package/node_modules/moment/locale/th.js +4 -3
  369. package/node_modules/moment/locale/tlh.js +8 -9
  370. package/node_modules/moment/locale/tr.js +1 -1
  371. package/node_modules/moment/locale/tzm-latn.js +4 -3
  372. package/node_modules/moment/locale/tzm.js +4 -3
  373. package/node_modules/moment/locale/ug-cn.js +4 -3
  374. package/node_modules/moment/locale/uk.js +16 -12
  375. package/node_modules/moment/locale/uz-latn.js +4 -3
  376. package/node_modules/moment/locale/vi.js +4 -3
  377. package/node_modules/moment/locale/x-pseudo.js +8 -6
  378. package/node_modules/moment/min/locales.js +613 -474
  379. package/node_modules/moment/min/locales.min.js +1 -1
  380. package/node_modules/moment/min/locales.min.js.map +1 -1
  381. package/node_modules/moment/min/moment-with-locales.js +707 -553
  382. package/node_modules/moment/min/moment-with-locales.min.js +1 -1
  383. package/node_modules/moment/min/moment-with-locales.min.js.map +1 -1
  384. package/node_modules/moment/min/moment.min.js +1 -1
  385. package/node_modules/moment/min/moment.min.js.map +1 -1
  386. package/node_modules/moment/moment.js +95 -80
  387. package/node_modules/moment/package.json +4 -4
  388. package/node_modules/moment/src/lib/create/from-string-and-array.js +4 -3
  389. package/node_modules/moment/src/lib/create/from-string-and-format.js +4 -3
  390. package/node_modules/moment/src/lib/create/from-string.js +11 -7
  391. package/node_modules/moment/src/lib/duration/create.js +2 -1
  392. package/node_modules/moment/src/lib/duration/valid.js +3 -2
  393. package/node_modules/moment/src/lib/format/format.js +2 -1
  394. package/node_modules/moment/src/lib/locale/locales.js +7 -1
  395. package/node_modules/moment/src/lib/moment/constructor.js +6 -3
  396. package/node_modules/moment/src/lib/moment/get-set.js +3 -2
  397. package/node_modules/moment/src/lib/parse/regex.js +8 -10
  398. package/node_modules/moment/src/lib/parse/token.js +4 -2
  399. package/node_modules/moment/src/lib/units/day-of-week.js +2 -3
  400. package/node_modules/moment/src/lib/units/era.js +10 -12
  401. package/node_modules/moment/src/lib/units/month.js +6 -6
  402. package/node_modules/moment/src/lib/units/week-year.js +6 -8
  403. package/node_modules/moment/src/lib/units/week.js +6 -8
  404. package/node_modules/moment/src/lib/utils/deprecate.js +3 -2
  405. package/node_modules/moment/src/lib/utils/is-moment-input.js +3 -2
  406. package/node_modules/moment/src/lib/utils/map.js +3 -2
  407. package/node_modules/moment/src/locale/ar-kw.js +4 -3
  408. package/node_modules/moment/src/locale/ar-ly.js +1 -1
  409. package/node_modules/moment/src/locale/ar-ma.js +4 -3
  410. package/node_modules/moment/src/locale/ar-sa.js +4 -3
  411. package/node_modules/moment/src/locale/ar-tn.js +4 -3
  412. package/node_modules/moment/src/locale/az.js +4 -3
  413. package/node_modules/moment/src/locale/be.js +10 -9
  414. package/node_modules/moment/src/locale/bn-bd.js +4 -3
  415. package/node_modules/moment/src/locale/bn.js +4 -3
  416. package/node_modules/moment/src/locale/bo.js +8 -6
  417. package/node_modules/moment/src/locale/br.js +6 -3
  418. package/node_modules/moment/src/locale/bs.js +4 -3
  419. package/node_modules/moment/src/locale/ca.js +12 -9
  420. package/node_modules/moment/src/locale/cs.js +15 -6
  421. package/node_modules/moment/src/locale/cv.js +4 -3
  422. package/node_modules/moment/src/locale/cy.js +4 -3
  423. package/node_modules/moment/src/locale/de-at.js +6 -6
  424. package/node_modules/moment/src/locale/de-ch.js +6 -6
  425. package/node_modules/moment/src/locale/de.js +6 -6
  426. package/node_modules/moment/src/locale/el.js +8 -6
  427. package/node_modules/moment/src/locale/es-do.js +10 -6
  428. package/node_modules/moment/src/locale/es-mx.js +10 -6
  429. package/node_modules/moment/src/locale/es-us.js +10 -6
  430. package/node_modules/moment/src/locale/es.js +10 -6
  431. package/node_modules/moment/src/locale/et.js +6 -6
  432. package/node_modules/moment/src/locale/eu.js +8 -6
  433. package/node_modules/moment/src/locale/fa.js +12 -9
  434. package/node_modules/moment/src/locale/fi.js +12 -9
  435. package/node_modules/moment/src/locale/fo.js +4 -3
  436. package/node_modules/moment/src/locale/fr-ca.js +4 -3
  437. package/node_modules/moment/src/locale/fr-ch.js +4 -3
  438. package/node_modules/moment/src/locale/fr.js +10 -6
  439. package/node_modules/moment/src/locale/fy.js +4 -6
  440. package/node_modules/moment/src/locale/gl.js +4 -3
  441. package/node_modules/moment/src/locale/gom-deva.js +8 -6
  442. package/node_modules/moment/src/locale/gom-latn.js +6 -6
  443. package/node_modules/moment/src/locale/gu.js +4 -3
  444. package/node_modules/moment/src/locale/he.js +4 -4
  445. package/node_modules/moment/src/locale/hi.js +14 -10
  446. package/node_modules/moment/src/locale/hr.js +7 -5
  447. package/node_modules/moment/src/locale/hu.js +6 -6
  448. package/node_modules/moment/src/locale/hy-am.js +8 -6
  449. package/node_modules/moment/src/locale/is.js +4 -3
  450. package/node_modules/moment/src/locale/ka.js +10 -10
  451. package/node_modules/moment/src/locale/km.js +4 -3
  452. package/node_modules/moment/src/locale/kn.js +4 -3
  453. package/node_modules/moment/src/locale/ku.js +6 -6
  454. package/node_modules/moment/src/locale/lb.js +8 -6
  455. package/node_modules/moment/src/locale/lo.js +4 -3
  456. package/node_modules/moment/src/locale/lt.js +8 -6
  457. package/node_modules/moment/src/locale/lv.js +4 -3
  458. package/node_modules/moment/src/locale/me.js +2 -3
  459. package/node_modules/moment/src/locale/mi.js +4 -3
  460. package/node_modules/moment/src/locale/ml.js +8 -6
  461. package/node_modules/moment/src/locale/mn.js +4 -3
  462. package/node_modules/moment/src/locale/mr.js +4 -3
  463. package/node_modules/moment/src/locale/mt.js +4 -3
  464. package/node_modules/moment/src/locale/nb.js +2 -3
  465. package/node_modules/moment/src/locale/ne.js +4 -3
  466. package/node_modules/moment/src/locale/nl-be.js +12 -12
  467. package/node_modules/moment/src/locale/nl.js +12 -12
  468. package/node_modules/moment/src/locale/nn.js +2 -3
  469. package/node_modules/moment/src/locale/oc-lnc.js +8 -6
  470. package/node_modules/moment/src/locale/pa-in.js +4 -3
  471. package/node_modules/moment/src/locale/pl.js +10 -9
  472. package/node_modules/moment/src/locale/pt-br.js +4 -3
  473. package/node_modules/moment/src/locale/pt.js +4 -3
  474. package/node_modules/moment/src/locale/ro.js +4 -3
  475. package/node_modules/moment/src/locale/ru.js +20 -13
  476. package/node_modules/moment/src/locale/se.js +6 -6
  477. package/node_modules/moment/src/locale/si.js +4 -3
  478. package/node_modules/moment/src/locale/sk.js +4 -3
  479. package/node_modules/moment/src/locale/sl.js +4 -3
  480. package/node_modules/moment/src/locale/sr-cyrl.js +32 -22
  481. package/node_modules/moment/src/locale/sr.js +32 -22
  482. package/node_modules/moment/src/locale/ss.js +4 -3
  483. package/node_modules/moment/src/locale/sw.js +4 -3
  484. package/node_modules/moment/src/locale/ta.js +8 -6
  485. package/node_modules/moment/src/locale/te.js +8 -6
  486. package/node_modules/moment/src/locale/tg.js +4 -3
  487. package/node_modules/moment/src/locale/th.js +4 -3
  488. package/node_modules/moment/src/locale/tlh.js +8 -9
  489. package/node_modules/moment/src/locale/tr.js +1 -1
  490. package/node_modules/moment/src/locale/tzm-latn.js +4 -3
  491. package/node_modules/moment/src/locale/tzm.js +4 -3
  492. package/node_modules/moment/src/locale/ug-cn.js +4 -3
  493. package/node_modules/moment/src/locale/uk.js +16 -12
  494. package/node_modules/moment/src/locale/uz-latn.js +4 -3
  495. package/node_modules/moment/src/locale/vi.js +4 -3
  496. package/node_modules/moment/src/locale/x-pseudo.js +8 -6
  497. package/node_modules/moment/src/moment.js +2 -2
  498. package/node_modules/moment/ts3.1-typings/moment.d.ts +1 -1
  499. package/node_modules/safe-stable-stringify/CHANGELOG.md +75 -0
  500. package/node_modules/safe-stable-stringify/LICENSE +21 -0
  501. package/node_modules/safe-stable-stringify/esm/package.json +4 -0
  502. package/node_modules/safe-stable-stringify/esm/wrapper.js +6 -0
  503. package/node_modules/safe-stable-stringify/index.d.ts +18 -0
  504. package/node_modules/safe-stable-stringify/index.js +618 -0
  505. package/node_modules/safe-stable-stringify/package.json +69 -0
  506. package/node_modules/safe-stable-stringify/readme.md +170 -0
  507. package/node_modules/safe-stable-stringify/tsconfig.json +22 -0
  508. package/node_modules/winston/LICENSE +18 -18
  509. package/node_modules/winston/README.md +1231 -1230
  510. package/node_modules/winston/dist/winston/common.js +10 -10
  511. package/node_modules/winston/dist/winston/config/index.js +17 -17
  512. package/node_modules/winston/dist/winston/container.js +46 -46
  513. package/node_modules/winston/dist/winston/create-logger.js +28 -24
  514. package/node_modules/winston/dist/winston/exception-handler.js +49 -49
  515. package/node_modules/winston/dist/winston/exception-stream.js +27 -27
  516. package/node_modules/winston/dist/winston/logger.js +152 -138
  517. package/node_modules/winston/dist/winston/profiler.js +22 -22
  518. package/node_modules/winston/dist/winston/rejection-handler.js +54 -54
  519. package/node_modules/winston/dist/winston/tail-file.js +14 -14
  520. package/node_modules/winston/dist/winston/transports/console.js +31 -31
  521. package/node_modules/winston/dist/winston/transports/file.js +101 -101
  522. package/node_modules/winston/dist/winston/transports/http.js +119 -41
  523. package/node_modules/winston/dist/winston/transports/index.js +17 -17
  524. package/node_modules/winston/dist/winston/transports/stream.js +24 -24
  525. package/node_modules/winston/dist/winston.js +91 -97
  526. package/node_modules/winston/index.d.ts +213 -193
  527. package/node_modules/winston/lib/winston/common.js +61 -61
  528. package/node_modules/winston/lib/winston/config/index.d.ts +99 -98
  529. package/node_modules/winston/lib/winston/config/index.js +35 -35
  530. package/node_modules/winston/lib/winston/container.js +114 -114
  531. package/node_modules/winston/lib/winston/create-logger.js +104 -104
  532. package/node_modules/winston/lib/winston/exception-handler.js +245 -245
  533. package/node_modules/winston/lib/winston/exception-stream.js +54 -54
  534. package/node_modules/winston/lib/winston/logger.js +676 -667
  535. package/node_modules/winston/lib/winston/profiler.js +51 -51
  536. package/node_modules/winston/lib/winston/rejection-handler.js +251 -251
  537. package/node_modules/winston/lib/winston/tail-file.js +124 -124
  538. package/node_modules/winston/lib/winston/transports/console.js +117 -117
  539. package/node_modules/winston/lib/winston/transports/file.js +695 -695
  540. package/node_modules/winston/lib/winston/transports/http.js +267 -202
  541. package/node_modules/winston/lib/winston/transports/index.d.ts +103 -100
  542. package/node_modules/winston/lib/winston/transports/index.js +56 -56
  543. package/node_modules/winston/lib/winston/transports/stream.js +63 -63
  544. package/node_modules/winston/lib/winston.js +176 -182
  545. package/node_modules/winston/node_modules/winston-transport/.babelrc +3 -0
  546. package/node_modules/winston/node_modules/winston-transport/.eslintrc +7 -0
  547. package/node_modules/winston/node_modules/winston-transport/.gitattributes +1 -0
  548. package/node_modules/winston/node_modules/winston-transport/.nyc_output/c3d7ddb9-cc26-466b-a4f6-993ad69e86f6.json +1 -0
  549. package/node_modules/winston/node_modules/winston-transport/.nyc_output/processinfo/c3d7ddb9-cc26-466b-a4f6-993ad69e86f6.json +1 -0
  550. package/node_modules/winston/node_modules/winston-transport/.nyc_output/processinfo/index.json +1 -0
  551. package/node_modules/winston/node_modules/winston-transport/CHANGELOG.md +126 -0
  552. package/node_modules/winston/node_modules/winston-transport/LICENSE +22 -0
  553. package/node_modules/winston/node_modules/winston-transport/README.md +50 -0
  554. package/node_modules/winston/node_modules/winston-transport/dist/index.js +215 -0
  555. package/node_modules/winston/node_modules/winston-transport/dist/legacy.js +116 -0
  556. package/node_modules/winston/node_modules/winston-transport/index.d.ts +39 -0
  557. package/node_modules/winston/node_modules/winston-transport/index.js +215 -0
  558. package/node_modules/winston/node_modules/winston-transport/legacy.js +119 -0
  559. package/node_modules/winston/node_modules/winston-transport/package.json +56 -0
  560. package/node_modules/winston/package.json +76 -75
  561. package/package.json +6 -4
  562. package/node_modules/@dabh/diagnostics/example.png +0 -0
  563. package/node_modules/color-string/CHANGELOG.md +0 -18
  564. package/node_modules/colorspace/test.js +0 -14
  565. package/node_modules/fecha/CHANGELOG.md +0 -67
  566. package/node_modules/logform/.travis.yml +0 -17
  567. package/node_modules/winston/CHANGELOG.md +0 -560
@@ -0,0 +1,50 @@
1
+ # winston-transport
2
+
3
+ The base `TransportStream` implementation for `winston >= 3`. Use these to
4
+ write ecosystem Transports for `winston`.
5
+
6
+ ## Usage
7
+
8
+ ``` js
9
+ const Transport = require('winston-transport');
10
+ const util = require('util');
11
+
12
+ //
13
+ // Inherit from `winston-transport` so you can take advantage
14
+ // of the base functionality and `.exceptions.handle()`.
15
+ //
16
+ module.exports = class CustomTransport extends Transport {
17
+ constructor(opts) {
18
+ super(opts);
19
+
20
+ //
21
+ // Consume any custom options here. e.g.:
22
+ // - Connection information for databases
23
+ // - Authentication information for APIs (e.g. loggly, papertrail,
24
+ // logentries, etc.).
25
+ //
26
+ }
27
+
28
+ log(info, callback) {
29
+ setImmediate(() => {
30
+ this.emit('logged', info);
31
+ });
32
+
33
+ // Perform the writing to the remote service
34
+
35
+ callback();
36
+ }
37
+ };
38
+ ```
39
+
40
+ ## Tests
41
+
42
+ Tests are written with `mocha`, `nyc`, `assume`, and
43
+ `abstract-winston-transport`. They can be run with `npm`:
44
+
45
+ ``` bash
46
+ npm test
47
+ ```
48
+
49
+ ##### Author: [Charlie Robbins](https://github.com/indexzero)
50
+ ##### LICENSE: MIT
@@ -0,0 +1,215 @@
1
+ 'use strict';
2
+
3
+ var util = require('util');
4
+ var Writable = require('readable-stream/lib/_stream_writable.js');
5
+
6
+ var _require = require('triple-beam'),
7
+ LEVEL = _require.LEVEL;
8
+
9
+ /**
10
+ * Constructor function for the TransportStream. This is the base prototype
11
+ * that all `winston >= 3` transports should inherit from.
12
+ * @param {Object} options - Options for this TransportStream instance
13
+ * @param {String} options.level - Highest level according to RFC5424.
14
+ * @param {Boolean} options.handleExceptions - If true, info with
15
+ * { exception: true } will be written.
16
+ * @param {Function} options.log - Custom log function for simple Transport
17
+ * creation
18
+ * @param {Function} options.close - Called on "unpipe" from parent.
19
+ */
20
+
21
+
22
+ var TransportStream = module.exports = function TransportStream() {
23
+ var _this = this;
24
+
25
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
+
27
+ Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });
28
+
29
+ this.format = options.format;
30
+ this.level = options.level;
31
+ this.handleExceptions = options.handleExceptions;
32
+ this.handleRejections = options.handleRejections;
33
+ this.silent = options.silent;
34
+
35
+ if (options.log) this.log = options.log;
36
+ if (options.logv) this.logv = options.logv;
37
+ if (options.close) this.close = options.close;
38
+
39
+ // Get the levels from the source we are piped from.
40
+ this.once('pipe', function (logger) {
41
+ // Remark (indexzero): this bookkeeping can only support multiple
42
+ // Logger parents with the same `levels`. This comes into play in
43
+ // the `winston.Container` code in which `container.add` takes
44
+ // a fully realized set of options with pre-constructed TransportStreams.
45
+ _this.levels = logger.levels;
46
+ _this.parent = logger;
47
+ });
48
+
49
+ // If and/or when the transport is removed from this instance
50
+ this.once('unpipe', function (src) {
51
+ // Remark (indexzero): this bookkeeping can only support multiple
52
+ // Logger parents with the same `levels`. This comes into play in
53
+ // the `winston.Container` code in which `container.add` takes
54
+ // a fully realized set of options with pre-constructed TransportStreams.
55
+ if (src === _this.parent) {
56
+ _this.parent = null;
57
+ if (_this.close) {
58
+ _this.close();
59
+ }
60
+ }
61
+ });
62
+ };
63
+
64
+ /*
65
+ * Inherit from Writeable using Node.js built-ins
66
+ */
67
+ util.inherits(TransportStream, Writable);
68
+
69
+ /**
70
+ * Writes the info object to our transport instance.
71
+ * @param {mixed} info - TODO: add param description.
72
+ * @param {mixed} enc - TODO: add param description.
73
+ * @param {function} callback - TODO: add param description.
74
+ * @returns {undefined}
75
+ * @private
76
+ */
77
+ TransportStream.prototype._write = function _write(info, enc, callback) {
78
+ if (this.silent || info.exception === true && !this.handleExceptions) {
79
+ return callback(null);
80
+ }
81
+
82
+ // Remark: This has to be handled in the base transport now because we
83
+ // cannot conditionally write to our pipe targets as stream. We always
84
+ // prefer any explicit level set on the Transport itself falling back to
85
+ // any level set on the parent.
86
+ var level = this.level || this.parent && this.parent.level;
87
+
88
+ if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {
89
+ if (info && !this.format) {
90
+ return this.log(info, callback);
91
+ }
92
+
93
+ var errState = void 0;
94
+ var transformed = void 0;
95
+
96
+ // We trap(and re-throw) any errors generated by the user-provided format, but also
97
+ // guarantee that the streams callback is invoked so that we can continue flowing.
98
+ try {
99
+ transformed = this.format.transform(Object.assign({}, info), this.format.options);
100
+ } catch (err) {
101
+ errState = err;
102
+ }
103
+
104
+ if (errState || !transformed) {
105
+ // eslint-disable-next-line callback-return
106
+ callback();
107
+ if (errState) throw errState;
108
+ return;
109
+ }
110
+
111
+ return this.log(transformed, callback);
112
+ }
113
+ this._writableState.sync = false;
114
+ return callback(null);
115
+ };
116
+
117
+ /**
118
+ * Writes the batch of info objects (i.e. "object chunks") to our transport
119
+ * instance after performing any necessary filtering.
120
+ * @param {mixed} chunks - TODO: add params description.
121
+ * @param {function} callback - TODO: add params description.
122
+ * @returns {mixed} - TODO: add returns description.
123
+ * @private
124
+ */
125
+ TransportStream.prototype._writev = function _writev(chunks, callback) {
126
+ if (this.logv) {
127
+ var infos = chunks.filter(this._accept, this);
128
+ if (!infos.length) {
129
+ return callback(null);
130
+ }
131
+
132
+ // Remark (indexzero): from a performance perspective if Transport
133
+ // implementers do choose to implement logv should we make it their
134
+ // responsibility to invoke their format?
135
+ return this.logv(infos, callback);
136
+ }
137
+
138
+ for (var i = 0; i < chunks.length; i++) {
139
+ if (!this._accept(chunks[i])) continue;
140
+
141
+ if (chunks[i].chunk && !this.format) {
142
+ this.log(chunks[i].chunk, chunks[i].callback);
143
+ continue;
144
+ }
145
+
146
+ var errState = void 0;
147
+ var transformed = void 0;
148
+
149
+ // We trap(and re-throw) any errors generated by the user-provided format, but also
150
+ // guarantee that the streams callback is invoked so that we can continue flowing.
151
+ try {
152
+ transformed = this.format.transform(Object.assign({}, chunks[i].chunk), this.format.options);
153
+ } catch (err) {
154
+ errState = err;
155
+ }
156
+
157
+ if (errState || !transformed) {
158
+ // eslint-disable-next-line callback-return
159
+ chunks[i].callback();
160
+ if (errState) {
161
+ // eslint-disable-next-line callback-return
162
+ callback(null);
163
+ throw errState;
164
+ }
165
+ } else {
166
+ this.log(transformed, chunks[i].callback);
167
+ }
168
+ }
169
+
170
+ return callback(null);
171
+ };
172
+
173
+ /**
174
+ * Predicate function that returns true if the specfied `info` on the
175
+ * WriteReq, `write`, should be passed down into the derived
176
+ * TransportStream's I/O via `.log(info, callback)`.
177
+ * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object
178
+ * representing the log message.
179
+ * @returns {Boolean} - Value indicating if the `write` should be accepted &
180
+ * logged.
181
+ */
182
+ TransportStream.prototype._accept = function _accept(write) {
183
+ var info = write.chunk;
184
+ if (this.silent) {
185
+ return false;
186
+ }
187
+
188
+ // We always prefer any explicit level set on the Transport itself
189
+ // falling back to any level set on the parent.
190
+ var level = this.level || this.parent && this.parent.level;
191
+
192
+ // Immediately check the average case: log level filtering.
193
+ if (info.exception === true || !level || this.levels[level] >= this.levels[info[LEVEL]]) {
194
+ // Ensure the info object is valid based on `{ exception }`:
195
+ // 1. { handleExceptions: true }: all `info` objects are valid
196
+ // 2. { exception: false }: accepted by all transports.
197
+ if (this.handleExceptions || info.exception !== true) {
198
+ return true;
199
+ }
200
+ }
201
+
202
+ return false;
203
+ };
204
+
205
+ /**
206
+ * _nop is short for "No operation"
207
+ * @returns {Boolean} Intentionally false.
208
+ */
209
+ TransportStream.prototype._nop = function _nop() {
210
+ // eslint-disable-next-line no-undefined
211
+ return void undefined;
212
+ };
213
+
214
+ // Expose legacy stream
215
+ module.exports.LegacyTransportStream = require('./legacy');
@@ -0,0 +1,116 @@
1
+ 'use strict';
2
+
3
+ var util = require('util');
4
+
5
+ var _require = require('triple-beam'),
6
+ LEVEL = _require.LEVEL;
7
+
8
+ var TransportStream = require('./');
9
+
10
+ /**
11
+ * Constructor function for the LegacyTransportStream. This is an internal
12
+ * wrapper `winston >= 3` uses to wrap older transports implementing
13
+ * log(level, message, meta).
14
+ * @param {Object} options - Options for this TransportStream instance.
15
+ * @param {Transpot} options.transport - winston@2 or older Transport to wrap.
16
+ */
17
+
18
+ var LegacyTransportStream = module.exports = function LegacyTransportStream() {
19
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
+
21
+ TransportStream.call(this, options);
22
+ if (!options.transport || typeof options.transport.log !== 'function') {
23
+ throw new Error('Invalid transport, must be an object with a log method.');
24
+ }
25
+
26
+ this.transport = options.transport;
27
+ this.level = this.level || options.transport.level;
28
+ this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;
29
+
30
+ // Display our deprecation notice.
31
+ this._deprecated();
32
+
33
+ // Properly bubble up errors from the transport to the
34
+ // LegacyTransportStream instance, but only once no matter how many times
35
+ // this transport is shared.
36
+ function transportError(err) {
37
+ this.emit('error', err, this.transport);
38
+ }
39
+
40
+ if (!this.transport.__winstonError) {
41
+ this.transport.__winstonError = transportError.bind(this);
42
+ this.transport.on('error', this.transport.__winstonError);
43
+ }
44
+ };
45
+
46
+ /*
47
+ * Inherit from TransportStream using Node.js built-ins
48
+ */
49
+ util.inherits(LegacyTransportStream, TransportStream);
50
+
51
+ /**
52
+ * Writes the info object to our transport instance.
53
+ * @param {mixed} info - TODO: add param description.
54
+ * @param {mixed} enc - TODO: add param description.
55
+ * @param {function} callback - TODO: add param description.
56
+ * @returns {undefined}
57
+ * @private
58
+ */
59
+ LegacyTransportStream.prototype._write = function _write(info, enc, callback) {
60
+ if (this.silent || info.exception === true && !this.handleExceptions) {
61
+ return callback(null);
62
+ }
63
+
64
+ // Remark: This has to be handled in the base transport now because we
65
+ // cannot conditionally write to our pipe targets as stream.
66
+ if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {
67
+ this.transport.log(info[LEVEL], info.message, info, this._nop);
68
+ }
69
+
70
+ callback(null);
71
+ };
72
+
73
+ /**
74
+ * Writes the batch of info objects (i.e. "object chunks") to our transport
75
+ * instance after performing any necessary filtering.
76
+ * @param {mixed} chunks - TODO: add params description.
77
+ * @param {function} callback - TODO: add params description.
78
+ * @returns {mixed} - TODO: add returns description.
79
+ * @private
80
+ */
81
+ LegacyTransportStream.prototype._writev = function _writev(chunks, callback) {
82
+ for (var i = 0; i < chunks.length; i++) {
83
+ if (this._accept(chunks[i])) {
84
+ this.transport.log(chunks[i].chunk[LEVEL], chunks[i].chunk.message, chunks[i].chunk, this._nop);
85
+ chunks[i].callback();
86
+ }
87
+ }
88
+
89
+ return callback(null);
90
+ };
91
+
92
+ /**
93
+ * Displays a deprecation notice. Defined as a function so it can be
94
+ * overriden in tests.
95
+ * @returns {undefined}
96
+ */
97
+ LegacyTransportStream.prototype._deprecated = function _deprecated() {
98
+ // eslint-disable-next-line no-console
99
+ console.error([this.transport.name + ' is a legacy winston transport. Consider upgrading: ', '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'].join('\n'));
100
+ };
101
+
102
+ /**
103
+ * Clean up error handling state on the legacy transport associated
104
+ * with this instance.
105
+ * @returns {undefined}
106
+ */
107
+ LegacyTransportStream.prototype.close = function close() {
108
+ if (this.transport.close) {
109
+ this.transport.close();
110
+ }
111
+
112
+ if (this.transport.__winstonError) {
113
+ this.transport.removeListener('error', this.transport.__winstonError);
114
+ this.transport.__winstonError = null;
115
+ }
116
+ };
@@ -0,0 +1,39 @@
1
+ // Type definitions for winston-transport 3.0
2
+ // Project: https://github.com/winstonjs/winston-transport
3
+ // Definitions by: DABH <https://github.com/DABH>
4
+ // Definitions: https://github.com/winstonjs/winston-transport
5
+
6
+ /// <reference types="node" />
7
+
8
+ import * as stream from 'stream';
9
+ import * as logform from 'logform';
10
+
11
+ declare class TransportStream extends stream.Writable {
12
+ public format?: logform.Format;
13
+ public level?: string;
14
+ public silent?: boolean;
15
+ public handleExceptions?: boolean;
16
+ public handleRejections?: boolean;
17
+
18
+ constructor(opts?: TransportStream.TransportStreamOptions);
19
+
20
+ public log?(info: any, next: () => void): any;
21
+ public logv?(info: any, next: () => void): any;
22
+ public close?(): void;
23
+ }
24
+
25
+ declare namespace TransportStream {
26
+ interface TransportStreamOptions {
27
+ format?: logform.Format;
28
+ level?: string;
29
+ silent?: boolean;
30
+ handleExceptions?: boolean;
31
+ handleRejections?: boolean;
32
+
33
+ log?(info: any, next: () => void): any;
34
+ logv?(info: any, next: () => void): any;
35
+ close?(): void;
36
+ }
37
+ }
38
+
39
+ export = TransportStream;
@@ -0,0 +1,215 @@
1
+ 'use strict';
2
+
3
+ const util = require('util');
4
+ const Writable = require('readable-stream/lib/_stream_writable.js');
5
+ const { LEVEL } = require('triple-beam');
6
+
7
+ /**
8
+ * Constructor function for the TransportStream. This is the base prototype
9
+ * that all `winston >= 3` transports should inherit from.
10
+ * @param {Object} options - Options for this TransportStream instance
11
+ * @param {String} options.level - Highest level according to RFC5424.
12
+ * @param {Boolean} options.handleExceptions - If true, info with
13
+ * { exception: true } will be written.
14
+ * @param {Function} options.log - Custom log function for simple Transport
15
+ * creation
16
+ * @param {Function} options.close - Called on "unpipe" from parent.
17
+ */
18
+ const TransportStream = module.exports = function TransportStream(options = {}) {
19
+ Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });
20
+
21
+ this.format = options.format;
22
+ this.level = options.level;
23
+ this.handleExceptions = options.handleExceptions;
24
+ this.handleRejections = options.handleRejections;
25
+ this.silent = options.silent;
26
+
27
+ if (options.log) this.log = options.log;
28
+ if (options.logv) this.logv = options.logv;
29
+ if (options.close) this.close = options.close;
30
+
31
+ // Get the levels from the source we are piped from.
32
+ this.once('pipe', logger => {
33
+ // Remark (indexzero): this bookkeeping can only support multiple
34
+ // Logger parents with the same `levels`. This comes into play in
35
+ // the `winston.Container` code in which `container.add` takes
36
+ // a fully realized set of options with pre-constructed TransportStreams.
37
+ this.levels = logger.levels;
38
+ this.parent = logger;
39
+ });
40
+
41
+ // If and/or when the transport is removed from this instance
42
+ this.once('unpipe', src => {
43
+ // Remark (indexzero): this bookkeeping can only support multiple
44
+ // Logger parents with the same `levels`. This comes into play in
45
+ // the `winston.Container` code in which `container.add` takes
46
+ // a fully realized set of options with pre-constructed TransportStreams.
47
+ if (src === this.parent) {
48
+ this.parent = null;
49
+ if (this.close) {
50
+ this.close();
51
+ }
52
+ }
53
+ });
54
+ };
55
+
56
+ /*
57
+ * Inherit from Writeable using Node.js built-ins
58
+ */
59
+ util.inherits(TransportStream, Writable);
60
+
61
+ /**
62
+ * Writes the info object to our transport instance.
63
+ * @param {mixed} info - TODO: add param description.
64
+ * @param {mixed} enc - TODO: add param description.
65
+ * @param {function} callback - TODO: add param description.
66
+ * @returns {undefined}
67
+ * @private
68
+ */
69
+ TransportStream.prototype._write = function _write(info, enc, callback) {
70
+ if (this.silent || (info.exception === true && !this.handleExceptions)) {
71
+ return callback(null);
72
+ }
73
+
74
+ // Remark: This has to be handled in the base transport now because we
75
+ // cannot conditionally write to our pipe targets as stream. We always
76
+ // prefer any explicit level set on the Transport itself falling back to
77
+ // any level set on the parent.
78
+ const level = this.level || (this.parent && this.parent.level);
79
+
80
+ if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {
81
+ if (info && !this.format) {
82
+ return this.log(info, callback);
83
+ }
84
+
85
+ let errState;
86
+ let transformed;
87
+
88
+ // We trap(and re-throw) any errors generated by the user-provided format, but also
89
+ // guarantee that the streams callback is invoked so that we can continue flowing.
90
+ try {
91
+ transformed = this.format.transform(Object.assign({}, info), this.format.options);
92
+ } catch (err) {
93
+ errState = err;
94
+ }
95
+
96
+ if (errState || !transformed) {
97
+ // eslint-disable-next-line callback-return
98
+ callback();
99
+ if (errState) throw errState;
100
+ return;
101
+ }
102
+
103
+ return this.log(transformed, callback);
104
+ }
105
+ this._writableState.sync = false;
106
+ return callback(null);
107
+ };
108
+
109
+ /**
110
+ * Writes the batch of info objects (i.e. "object chunks") to our transport
111
+ * instance after performing any necessary filtering.
112
+ * @param {mixed} chunks - TODO: add params description.
113
+ * @param {function} callback - TODO: add params description.
114
+ * @returns {mixed} - TODO: add returns description.
115
+ * @private
116
+ */
117
+ TransportStream.prototype._writev = function _writev(chunks, callback) {
118
+ if (this.logv) {
119
+ const infos = chunks.filter(this._accept, this);
120
+ if (!infos.length) {
121
+ return callback(null);
122
+ }
123
+
124
+ // Remark (indexzero): from a performance perspective if Transport
125
+ // implementers do choose to implement logv should we make it their
126
+ // responsibility to invoke their format?
127
+ return this.logv(infos, callback);
128
+ }
129
+
130
+ for (let i = 0; i < chunks.length; i++) {
131
+ if (!this._accept(chunks[i])) continue;
132
+
133
+ if (chunks[i].chunk && !this.format) {
134
+ this.log(chunks[i].chunk, chunks[i].callback);
135
+ continue;
136
+ }
137
+
138
+ let errState;
139
+ let transformed;
140
+
141
+ // We trap(and re-throw) any errors generated by the user-provided format, but also
142
+ // guarantee that the streams callback is invoked so that we can continue flowing.
143
+ try {
144
+ transformed = this.format.transform(
145
+ Object.assign({}, chunks[i].chunk),
146
+ this.format.options
147
+ );
148
+ } catch (err) {
149
+ errState = err;
150
+ }
151
+
152
+ if (errState || !transformed) {
153
+ // eslint-disable-next-line callback-return
154
+ chunks[i].callback();
155
+ if (errState) {
156
+ // eslint-disable-next-line callback-return
157
+ callback(null);
158
+ throw errState;
159
+ }
160
+ } else {
161
+ this.log(transformed, chunks[i].callback);
162
+ }
163
+ }
164
+
165
+ return callback(null);
166
+ };
167
+
168
+ /**
169
+ * Predicate function that returns true if the specfied `info` on the
170
+ * WriteReq, `write`, should be passed down into the derived
171
+ * TransportStream's I/O via `.log(info, callback)`.
172
+ * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object
173
+ * representing the log message.
174
+ * @returns {Boolean} - Value indicating if the `write` should be accepted &
175
+ * logged.
176
+ */
177
+ TransportStream.prototype._accept = function _accept(write) {
178
+ const info = write.chunk;
179
+ if (this.silent) {
180
+ return false;
181
+ }
182
+
183
+ // We always prefer any explicit level set on the Transport itself
184
+ // falling back to any level set on the parent.
185
+ const level = this.level || (this.parent && this.parent.level);
186
+
187
+ // Immediately check the average case: log level filtering.
188
+ if (
189
+ info.exception === true ||
190
+ !level ||
191
+ this.levels[level] >= this.levels[info[LEVEL]]
192
+ ) {
193
+ // Ensure the info object is valid based on `{ exception }`:
194
+ // 1. { handleExceptions: true }: all `info` objects are valid
195
+ // 2. { exception: false }: accepted by all transports.
196
+ if (this.handleExceptions || info.exception !== true) {
197
+ return true;
198
+ }
199
+ }
200
+
201
+ return false;
202
+ };
203
+
204
+ /**
205
+ * _nop is short for "No operation"
206
+ * @returns {Boolean} Intentionally false.
207
+ */
208
+ TransportStream.prototype._nop = function _nop() {
209
+ // eslint-disable-next-line no-undefined
210
+ return void undefined;
211
+ };
212
+
213
+
214
+ // Expose legacy stream
215
+ module.exports.LegacyTransportStream = require('./legacy');