@contrast/agent-bundle 5.47.0 → 5.48.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 (526) hide show
  1. package/node_modules/@contrast/agent/package.json +10 -10
  2. package/node_modules/@contrast/agentify/package.json +14 -14
  3. package/node_modules/@contrast/architecture-components/package.json +4 -4
  4. package/node_modules/@contrast/assess/lib/configuration-analysis/install/apollo-server.js +1 -1
  5. package/node_modules/@contrast/assess/lib/configuration-analysis/install/graphql-yoga.js +1 -1
  6. package/node_modules/@contrast/assess/lib/dataflow/sinks/install/fs.js +8 -15
  7. package/node_modules/@contrast/assess/package.json +11 -11
  8. package/node_modules/@contrast/config/package.json +2 -2
  9. package/node_modules/@contrast/core/package.json +4 -4
  10. package/node_modules/@contrast/deadzones/package.json +4 -4
  11. package/node_modules/@contrast/dep-hooks/lib/export-handler-registry.js +1 -10
  12. package/node_modules/@contrast/dep-hooks/lib/export-hook-descriptor.js +1 -1
  13. package/node_modules/@contrast/dep-hooks/lib/index.d.ts +1 -1
  14. package/node_modules/@contrast/dep-hooks/lib/index.js +1 -1
  15. package/node_modules/@contrast/dep-hooks/lib/package-finder.d.ts +2 -1
  16. package/node_modules/@contrast/dep-hooks/lib/package-finder.js +11 -2
  17. package/node_modules/@contrast/dep-hooks/package.json +3 -3
  18. package/node_modules/@contrast/esm-hooks/package.json +5 -5
  19. package/node_modules/@contrast/instrumentation/package.json +4 -4
  20. package/node_modules/@contrast/library-analysis/lib/install/library-reporting/dep.json +144 -202
  21. package/node_modules/@contrast/library-analysis/package.json +3 -3
  22. package/node_modules/@contrast/logger/package.json +3 -3
  23. package/node_modules/@contrast/metrics/package.json +5 -5
  24. package/node_modules/@contrast/patcher/package.json +2 -2
  25. package/node_modules/@contrast/protect/lib/input-tracing/install/fs.js +0 -8
  26. package/node_modules/@contrast/protect/package.json +10 -10
  27. package/node_modules/@contrast/reporter/package.json +5 -5
  28. package/node_modules/@contrast/rewriter/package.json +4 -4
  29. package/node_modules/@contrast/route-coverage/lib/index.d.ts +2 -0
  30. package/node_modules/@contrast/route-coverage/lib/index.js +2 -1
  31. package/node_modules/@contrast/route-coverage/lib/install/express.js +535 -0
  32. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-express.js +71 -0
  33. package/node_modules/@contrast/route-coverage/lib/install/fastify/fastify-middie.js +67 -0
  34. package/node_modules/@contrast/route-coverage/lib/install/{fastify.js → fastify/fastify.js} +12 -12
  35. package/node_modules/@contrast/route-coverage/lib/install/{express → fastify}/index.js +6 -5
  36. package/node_modules/@contrast/route-coverage/lib/install/koa.js +39 -45
  37. package/node_modules/@contrast/route-coverage/lib/utils/route-info.js +26 -1
  38. package/node_modules/@contrast/route-coverage/package.json +7 -7
  39. package/node_modules/@contrast/scopes/package.json +5 -5
  40. package/node_modules/@contrast/sec-obs/package.json +8 -8
  41. package/node_modules/@contrast/sources/package.json +2 -2
  42. package/node_modules/@contrast/telemetry/package.json +4 -4
  43. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.d.ts +697 -30
  44. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js +697 -30
  45. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_attributes.js.map +1 -1
  46. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.d.ts +6 -0
  47. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js +6 -0
  48. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_events.js.map +1 -1
  49. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.d.ts +877 -49
  50. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js +877 -49
  51. package/node_modules/@opentelemetry/semantic-conventions/build/esm/experimental_metrics.js.map +1 -1
  52. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.d.ts +13 -4
  53. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js +13 -4
  54. package/node_modules/@opentelemetry/semantic-conventions/build/esm/stable_attributes.js.map +1 -1
  55. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.d.ts +1 -1
  56. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js +1 -1
  57. package/node_modules/@opentelemetry/semantic-conventions/build/esm/version.js.map +1 -1
  58. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.d.ts +697 -30
  59. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js +697 -30
  60. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_attributes.js.map +1 -1
  61. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.d.ts +6 -0
  62. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js +6 -0
  63. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_events.js.map +1 -1
  64. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.d.ts +877 -49
  65. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js +877 -49
  66. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/experimental_metrics.js.map +1 -1
  67. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.d.ts +13 -4
  68. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js +13 -4
  69. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/stable_attributes.js.map +1 -1
  70. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.d.ts +1 -1
  71. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js +1 -1
  72. package/node_modules/@opentelemetry/semantic-conventions/build/esnext/version.js.map +1 -1
  73. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.d.ts +697 -30
  74. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js +729 -61
  75. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_attributes.js.map +1 -1
  76. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.d.ts +6 -0
  77. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js +7 -1
  78. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_events.js.map +1 -1
  79. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.d.ts +877 -49
  80. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js +886 -56
  81. package/node_modules/@opentelemetry/semantic-conventions/build/src/experimental_metrics.js.map +1 -1
  82. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.d.ts +13 -4
  83. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js +13 -4
  84. package/node_modules/@opentelemetry/semantic-conventions/build/src/stable_attributes.js.map +1 -1
  85. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.d.ts +1 -1
  86. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js +1 -1
  87. package/node_modules/@opentelemetry/semantic-conventions/build/src/version.js.map +1 -1
  88. package/node_modules/@opentelemetry/semantic-conventions/package.json +3 -5
  89. package/node_modules/{pino → @pinojs/redact}/.github/dependabot.yml +1 -1
  90. package/node_modules/@pinojs/redact/.github/workflows/ci.yml +48 -0
  91. package/node_modules/@pinojs/redact/.github/workflows/publish-release.yml +43 -0
  92. package/node_modules/{abort-controller → @pinojs/redact}/LICENSE +1 -1
  93. package/node_modules/@pinojs/redact/README.md +350 -0
  94. package/node_modules/@pinojs/redact/benchmarks/basic.js +184 -0
  95. package/node_modules/@pinojs/redact/eslint.config.js +1 -0
  96. package/node_modules/@pinojs/redact/index.d.ts +52 -0
  97. package/node_modules/@pinojs/redact/index.js +529 -0
  98. package/node_modules/@pinojs/redact/index.test-d.ts +22 -0
  99. package/node_modules/@pinojs/redact/package.json +37 -0
  100. package/node_modules/@pinojs/redact/scripts/sync-version.mjs +20 -0
  101. package/node_modules/@pinojs/redact/test/actual-redact-comparison.test.js +211 -0
  102. package/node_modules/@pinojs/redact/test/index.test.js +824 -0
  103. package/node_modules/@pinojs/redact/test/integration.test.js +390 -0
  104. package/node_modules/@pinojs/redact/test/multiple-wildcards.test.js +227 -0
  105. package/node_modules/@pinojs/redact/test/prototype-pollution.test.js +223 -0
  106. package/node_modules/@pinojs/redact/test/selective-clone.test.js +115 -0
  107. package/node_modules/@pinojs/redact/tsconfig.json +19 -0
  108. package/node_modules/@types/node/README.md +1 -1
  109. package/node_modules/@types/node/console.d.ts +3 -2
  110. package/node_modules/@types/node/package.json +2 -2
  111. package/node_modules/@types/node/process.d.ts +7 -0
  112. package/node_modules/@types/node/sqlite.d.ts +107 -0
  113. package/node_modules/@types/node/url.d.ts +32 -8
  114. package/node_modules/axios/CHANGELOG.md +18 -0
  115. package/node_modules/axios/README.md +1 -4
  116. package/node_modules/axios/dist/axios.js +2 -2
  117. package/node_modules/axios/dist/axios.js.map +1 -1
  118. package/node_modules/axios/dist/axios.min.js +2 -2
  119. package/node_modules/axios/dist/axios.min.js.map +1 -1
  120. package/node_modules/axios/dist/browser/axios.cjs +2 -2
  121. package/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  122. package/node_modules/axios/dist/esm/axios.js +2 -2
  123. package/node_modules/axios/dist/esm/axios.js.map +1 -1
  124. package/node_modules/axios/dist/esm/axios.min.js +2 -2
  125. package/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  126. package/node_modules/axios/dist/node/axios.cjs +25 -20
  127. package/node_modules/axios/dist/node/axios.cjs.map +1 -1
  128. package/node_modules/axios/lib/adapters/http.js +22 -18
  129. package/node_modules/axios/lib/env/data.js +1 -1
  130. package/node_modules/axios/package.json +1 -1
  131. package/node_modules/form-data/CHANGELOG.md +60 -2
  132. package/node_modules/form-data/README.md +4 -4
  133. package/node_modules/form-data/lib/form_data.js +2 -2
  134. package/node_modules/form-data/package.json +4 -4
  135. package/node_modules/ipaddr.js/README.md +1 -0
  136. package/node_modules/ipaddr.js/ipaddr.min.js +1 -1
  137. package/node_modules/ipaddr.js/lib/ipaddr.js +11 -0
  138. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +1 -0
  139. package/node_modules/ipaddr.js/package.json +2 -3
  140. package/node_modules/nan/.github/workflows/ci.yml +3 -1
  141. package/node_modules/nan/CHANGELOG.md +4 -1
  142. package/node_modules/nan/README.md +2 -2
  143. package/node_modules/nan/nan.h +25 -15
  144. package/node_modules/nan/nan_maybe_43_inl.h +5 -1
  145. package/node_modules/nan/package.json +2 -2
  146. package/node_modules/node-abi/abi_registry.json +8 -1
  147. package/node_modules/node-abi/package.json +1 -1
  148. package/node_modules/pino/CONTRIBUTING.md +4 -0
  149. package/node_modules/pino/LICENSE +1 -1
  150. package/node_modules/pino/README.md +20 -3
  151. package/node_modules/pino/benchmarks/basic.bench.js +1 -1
  152. package/node_modules/pino/benchmarks/child-child.bench.js +1 -1
  153. package/node_modules/pino/benchmarks/child-creation.bench.js +1 -1
  154. package/node_modules/pino/benchmarks/child.bench.js +1 -1
  155. package/node_modules/pino/benchmarks/deep-object.bench.js +1 -1
  156. package/node_modules/pino/benchmarks/internal/just-pino-heavy.bench.js +1 -1
  157. package/node_modules/pino/benchmarks/internal/just-pino.bench.js +1 -1
  158. package/node_modules/pino/benchmarks/internal/redact.bench.js +1 -1
  159. package/node_modules/pino/benchmarks/long-string.bench.js +1 -1
  160. package/node_modules/pino/benchmarks/multi-arg.bench.js +1 -1
  161. package/node_modules/pino/benchmarks/multistream.js +1 -1
  162. package/node_modules/pino/benchmarks/object.bench.js +1 -1
  163. package/node_modules/pino/benchmarks/utils/generate-benchmark-doc.js +2 -2
  164. package/node_modules/pino/benchmarks/utils/runbench.js +3 -3
  165. package/node_modules/pino/benchmarks/utils/wrap-log-level.js +2 -2
  166. package/node_modules/pino/browser.js +76 -36
  167. package/node_modules/pino/build/sync-version.js +18 -3
  168. package/node_modules/pino/docs/api.md +155 -13
  169. package/node_modules/pino/docs/browser.md +16 -1
  170. package/node_modules/pino/docs/bundling.md +5 -3
  171. package/node_modules/pino/docs/diagnostics.md +16 -0
  172. package/node_modules/pino/docs/ecosystem.md +15 -12
  173. package/node_modules/pino/docs/help.md +29 -3
  174. package/node_modules/pino/docs/lts.md +5 -4
  175. package/node_modules/pino/docs/transports.md +442 -271
  176. package/node_modules/pino/docs/web.md +59 -9
  177. package/node_modules/pino/eslint.config.js +19 -0
  178. package/node_modules/pino/examples/transport.js +2 -2
  179. package/node_modules/pino/file.js +1 -1
  180. package/node_modules/pino/lib/meta.js +1 -1
  181. package/node_modules/pino/lib/multistream.js +17 -2
  182. package/node_modules/pino/lib/proto.js +35 -11
  183. package/node_modules/pino/lib/redaction.js +9 -13
  184. package/node_modules/pino/lib/time.js +29 -1
  185. package/node_modules/pino/lib/tools.js +37 -8
  186. package/node_modules/pino/lib/transport-stream.js +10 -4
  187. package/node_modules/pino/lib/transport.js +23 -9
  188. package/node_modules/pino/lib/worker.js +164 -24
  189. package/node_modules/pino/package.json +28 -27
  190. package/node_modules/pino/pino.d.ts +244 -203
  191. package/node_modules/pino/pino.js +7 -3
  192. package/node_modules/pino/test/basic.test.js +181 -169
  193. package/node_modules/pino/test/broken-pipe.test.js +18 -16
  194. package/node_modules/pino/test/browser-child.test.js +26 -0
  195. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  196. package/node_modules/pino/test/browser-serializers.test.js +0 -2
  197. package/node_modules/pino/test/browser-transmit.test.js +68 -0
  198. package/node_modules/pino/test/browser.test.js +98 -13
  199. package/node_modules/pino/test/complex-objects.test.js +8 -6
  200. package/node_modules/pino/test/crlf.test.js +7 -5
  201. package/node_modules/pino/test/custom-levels.test.js +80 -66
  202. package/node_modules/pino/test/diagnostics.test.js +107 -0
  203. package/node_modules/pino/test/error-key.test.js +37 -0
  204. package/node_modules/pino/test/error.test.js +48 -43
  205. package/node_modules/pino/test/escaping.test.js +8 -6
  206. package/node_modules/pino/test/esm/esm.mjs +5 -3
  207. package/node_modules/pino/test/esm/index.test.js +14 -27
  208. package/node_modules/pino/test/esm/named-exports.mjs +9 -8
  209. package/node_modules/pino/test/exit.test.js +18 -16
  210. package/node_modules/pino/test/fixtures/broken-pipe/basic.js +1 -1
  211. package/node_modules/pino/test/fixtures/broken-pipe/destination.js +1 -1
  212. package/node_modules/pino/test/fixtures/broken-pipe/syncfalse.js +1 -1
  213. package/node_modules/pino/test/fixtures/console-transport.js +1 -1
  214. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  215. package/node_modules/pino/test/fixtures/default-exit.js +1 -1
  216. package/node_modules/pino/test/fixtures/destination-exit.js +1 -1
  217. package/node_modules/pino/test/fixtures/noop-transport.js +1 -1
  218. package/node_modules/pino/test/fixtures/pretty/null-prototype.js +1 -1
  219. package/node_modules/pino/test/fixtures/stdout-hack-protection.js +1 -1
  220. package/node_modules/pino/test/fixtures/syncfalse-child.js +1 -1
  221. package/node_modules/pino/test/fixtures/syncfalse-exit.js +1 -1
  222. package/node_modules/pino/test/fixtures/syncfalse-flush-exit.js +1 -1
  223. package/node_modules/pino/test/fixtures/syncfalse.js +1 -1
  224. package/node_modules/pino/test/fixtures/syntax-error-esm.mjs +2 -0
  225. package/node_modules/pino/test/fixtures/to-file-transport-with-transform.js +3 -3
  226. package/node_modules/pino/test/fixtures/to-file-transport.js +2 -2
  227. package/node_modules/pino/test/fixtures/to-file-transport.mjs +2 -2
  228. package/node_modules/pino/test/fixtures/transport/index.js +2 -2
  229. package/node_modules/pino/test/fixtures/transport-main.js +1 -1
  230. package/node_modules/pino/test/fixtures/transport-transform.js +1 -1
  231. package/node_modules/pino/test/fixtures/transport-uses-pino-config.js +1 -1
  232. package/node_modules/pino/test/fixtures/transport-worker-data.js +1 -1
  233. package/node_modules/pino/test/fixtures/transport-worker.js +2 -2
  234. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +3 -3
  235. package/node_modules/pino/test/fixtures/ts/to-file-transport.ts +2 -2
  236. package/node_modules/pino/test/fixtures/ts/transpile.cjs +1 -1
  237. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +1 -1
  238. package/node_modules/pino/test/fixtures/ts/transport-main.ts +1 -1
  239. package/node_modules/pino/test/fixtures/ts/transport-worker.ts +1 -1
  240. package/node_modules/pino/test/formatters.test.js +46 -37
  241. package/node_modules/pino/test/helper.d.ts +1 -1
  242. package/node_modules/pino/test/helper.js +37 -10
  243. package/node_modules/pino/test/hooks.test.js +45 -28
  244. package/node_modules/pino/test/http.test.js +39 -67
  245. package/node_modules/pino/test/internals/version.test.js +11 -9
  246. package/node_modules/pino/test/is-level-enabled.test.js +66 -72
  247. package/node_modules/pino/test/levels.test.js +245 -141
  248. package/node_modules/pino/test/metadata.test.js +45 -31
  249. package/node_modules/pino/test/mixin-merge-strategy.test.js +9 -7
  250. package/node_modules/pino/test/mixin.test.js +63 -40
  251. package/node_modules/pino/test/multistream.test.js +174 -118
  252. package/node_modules/pino/test/redact.test.js +172 -126
  253. package/node_modules/pino/test/serializers.test.js +61 -57
  254. package/node_modules/pino/test/stdout-protection.test.js +14 -12
  255. package/node_modules/pino/test/syncfalse.test.js +29 -34
  256. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  257. package/node_modules/pino/test/timestamp.test.js +37 -34
  258. package/node_modules/pino/test/transport/big.test.js +11 -12
  259. package/node_modules/pino/test/transport/bundlers-support.test.js +15 -43
  260. package/node_modules/pino/test/transport/caller.test.js +9 -8
  261. package/node_modules/pino/test/transport/core.test.js +175 -145
  262. package/node_modules/pino/test/transport/core.transpiled.test.ts +17 -19
  263. package/node_modules/pino/test/transport/crash.test.js +36 -0
  264. package/node_modules/pino/test/transport/module-link.test.js +21 -19
  265. package/node_modules/pino/test/transport/pipeline.test.js +109 -8
  266. package/node_modules/pino/test/transport/repl.test.js +4 -3
  267. package/node_modules/pino/test/transport/{syncfalse.test.js → sync-false.test.js} +14 -12
  268. package/node_modules/pino/test/transport/sync-true.test.js +57 -0
  269. package/node_modules/pino/test/transport/targets.test.js +25 -5
  270. package/node_modules/pino/test/transport/uses-pino-config.test.js +16 -17
  271. package/node_modules/pino/test/transport-stream.test.js +40 -0
  272. package/node_modules/pino/test/types/{pino-import.test-d.ts → pino-import.test-d.cts} +4 -3
  273. package/node_modules/pino/test/types/pino-multistream.test-d.ts +1 -1
  274. package/node_modules/pino/test/types/pino-top-export.test-d.ts +1 -0
  275. package/node_modules/pino/test/types/pino-transport.test-d.ts +1 -1
  276. package/node_modules/pino/test/types/pino-type-only.test-d.ts +24 -6
  277. package/node_modules/pino/test/types/pino.test-d.ts +161 -6
  278. package/node_modules/pino/test/types/pino.ts +31 -19
  279. package/node_modules/pino/tsconfig.json +1 -1
  280. package/node_modules/pino-abstract-transport/.github/workflows/ci.yml +2 -4
  281. package/node_modules/pino-abstract-transport/index.js +1 -1
  282. package/node_modules/pino-abstract-transport/package.json +2 -3
  283. package/node_modules/pino-abstract-transport/test/base.test.js +1 -1
  284. package/node_modules/pino-abstract-transport/test/worker.test.js +7 -14
  285. package/node_modules/pino-std-serializers/.github/workflows/ci.yml +5 -5
  286. package/node_modules/pino-std-serializers/Readme.md +1 -0
  287. package/node_modules/pino-std-serializers/package.json +9 -8
  288. package/node_modules/pino-std-serializers/test/err-with-cause.test.js +72 -88
  289. package/node_modules/pino-std-serializers/test/err.test.js +76 -91
  290. package/node_modules/pino-std-serializers/test/req.test.js +142 -98
  291. package/node_modules/pino-std-serializers/test/res.test.js +42 -31
  292. package/node_modules/process-warning/.github/dependabot.yml +1 -1
  293. package/node_modules/process-warning/.github/workflows/ci.yml +1 -2
  294. package/node_modules/process-warning/README.md +4 -4
  295. package/node_modules/process-warning/eslint.config.js +6 -0
  296. package/node_modules/process-warning/package.json +39 -8
  297. package/node_modules/process-warning/test/emit-interpolated-string.test.js +11 -6
  298. package/node_modules/process-warning/test/emit-once-only.test.js +11 -6
  299. package/node_modules/process-warning/test/emit-reset.test.js +10 -6
  300. package/node_modules/process-warning/test/emit-set.test.js +10 -5
  301. package/node_modules/process-warning/test/emit-unlimited.test.js +12 -7
  302. package/node_modules/process-warning/test/index.test.js +20 -20
  303. package/node_modules/process-warning/test/issue-88.test.js +8 -3
  304. package/node_modules/process-warning/test/jest.test.js +17 -15
  305. package/node_modules/process-warning/test/no-warnings.test.js +9 -9
  306. package/node_modules/process-warning/test/promise.js +10 -0
  307. package/node_modules/process-warning/types/index.d.ts +5 -5
  308. package/node_modules/thread-stream/.github/workflows/ci.yml +4 -8
  309. package/node_modules/thread-stream/index.d.ts +4 -5
  310. package/node_modules/thread-stream/lib/worker.js +5 -2
  311. package/node_modules/thread-stream/package.json +6 -4
  312. package/node_modules/thread-stream/test/base.test.js +12 -0
  313. package/node_modules/thread-stream/test/never-drain.test.js +3 -1
  314. package/node_modules/thread-stream/test/pkg/pkg.test.js +2 -0
  315. package/node_modules/thread-stream/test/syntax-error.mjs +2 -0
  316. package/node_modules/thread-stream/tsconfig.json +8 -0
  317. package/node_modules/yaml/browser/dist/compose/compose-collection.js +1 -1
  318. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +1 -1
  319. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +2 -2
  320. package/node_modules/yaml/browser/dist/errors.js +1 -1
  321. package/node_modules/yaml/browser/dist/nodes/Alias.js +1 -1
  322. package/node_modules/yaml/browser/dist/parse/parser.js +2 -2
  323. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +1 -1
  324. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +1 -1
  325. package/node_modules/yaml/dist/compose/compose-collection.js +1 -1
  326. package/node_modules/yaml/dist/compose/resolve-block-seq.js +1 -1
  327. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +2 -2
  328. package/node_modules/yaml/dist/errors.js +1 -1
  329. package/node_modules/yaml/dist/nodes/Alias.js +1 -1
  330. package/node_modules/yaml/dist/parse/parser.js +2 -2
  331. package/node_modules/yaml/dist/stringify/stringifyNumber.js +1 -1
  332. package/node_modules/yaml/dist/stringify/stringifyPair.js +1 -1
  333. package/node_modules/yaml/package.json +4 -4
  334. package/package.json +2 -2
  335. package/node_modules/@contrast/route-coverage/lib/install/express/express4.js +0 -157
  336. package/node_modules/@contrast/route-coverage/lib/install/express/express5.js +0 -553
  337. package/node_modules/abort-controller/README.md +0 -98
  338. package/node_modules/abort-controller/browser.js +0 -13
  339. package/node_modules/abort-controller/browser.mjs +0 -11
  340. package/node_modules/abort-controller/dist/abort-controller.d.ts +0 -43
  341. package/node_modules/abort-controller/dist/abort-controller.js +0 -127
  342. package/node_modules/abort-controller/dist/abort-controller.js.map +0 -1
  343. package/node_modules/abort-controller/dist/abort-controller.mjs +0 -118
  344. package/node_modules/abort-controller/dist/abort-controller.mjs.map +0 -1
  345. package/node_modules/abort-controller/dist/abort-controller.umd.js +0 -5
  346. package/node_modules/abort-controller/dist/abort-controller.umd.js.map +0 -1
  347. package/node_modules/abort-controller/package.json +0 -97
  348. package/node_modules/abort-controller/polyfill.js +0 -21
  349. package/node_modules/abort-controller/polyfill.mjs +0 -19
  350. package/node_modules/base64-js/LICENSE +0 -21
  351. package/node_modules/base64-js/README.md +0 -34
  352. package/node_modules/base64-js/base64js.min.js +0 -1
  353. package/node_modules/base64-js/index.d.ts +0 -3
  354. package/node_modules/base64-js/index.js +0 -150
  355. package/node_modules/base64-js/package.json +0 -47
  356. package/node_modules/buffer/AUTHORS.md +0 -73
  357. package/node_modules/buffer/LICENSE +0 -21
  358. package/node_modules/buffer/README.md +0 -410
  359. package/node_modules/buffer/index.d.ts +0 -194
  360. package/node_modules/buffer/index.js +0 -2106
  361. package/node_modules/buffer/package.json +0 -93
  362. package/node_modules/event-target-shim/LICENSE +0 -22
  363. package/node_modules/event-target-shim/README.md +0 -293
  364. package/node_modules/event-target-shim/dist/event-target-shim.js +0 -871
  365. package/node_modules/event-target-shim/dist/event-target-shim.js.map +0 -1
  366. package/node_modules/event-target-shim/dist/event-target-shim.mjs +0 -862
  367. package/node_modules/event-target-shim/dist/event-target-shim.mjs.map +0 -1
  368. package/node_modules/event-target-shim/dist/event-target-shim.umd.js +0 -6
  369. package/node_modules/event-target-shim/dist/event-target-shim.umd.js.map +0 -1
  370. package/node_modules/event-target-shim/index.d.ts +0 -399
  371. package/node_modules/event-target-shim/package.json +0 -82
  372. package/node_modules/events/.airtap.yml +0 -15
  373. package/node_modules/events/.github/FUNDING.yml +0 -12
  374. package/node_modules/events/.travis.yml +0 -18
  375. package/node_modules/events/History.md +0 -118
  376. package/node_modules/events/LICENSE +0 -22
  377. package/node_modules/events/Readme.md +0 -50
  378. package/node_modules/events/events.js +0 -497
  379. package/node_modules/events/package.json +0 -37
  380. package/node_modules/events/security.md +0 -10
  381. package/node_modules/events/tests/add-listeners.js +0 -111
  382. package/node_modules/events/tests/check-listener-leaks.js +0 -101
  383. package/node_modules/events/tests/common.js +0 -104
  384. package/node_modules/events/tests/errors.js +0 -13
  385. package/node_modules/events/tests/events-list.js +0 -28
  386. package/node_modules/events/tests/events-once.js +0 -234
  387. package/node_modules/events/tests/index.js +0 -64
  388. package/node_modules/events/tests/legacy-compat.js +0 -16
  389. package/node_modules/events/tests/listener-count.js +0 -37
  390. package/node_modules/events/tests/listeners-side-effects.js +0 -56
  391. package/node_modules/events/tests/listeners.js +0 -168
  392. package/node_modules/events/tests/max-listeners.js +0 -47
  393. package/node_modules/events/tests/method-names.js +0 -35
  394. package/node_modules/events/tests/modify-in-emit.js +0 -90
  395. package/node_modules/events/tests/num-args.js +0 -60
  396. package/node_modules/events/tests/once.js +0 -83
  397. package/node_modules/events/tests/prepend.js +0 -31
  398. package/node_modules/events/tests/remove-all-listeners.js +0 -133
  399. package/node_modules/events/tests/remove-listeners.js +0 -212
  400. package/node_modules/events/tests/set-max-listeners-side-effects.js +0 -31
  401. package/node_modules/events/tests/special-event-names.js +0 -45
  402. package/node_modules/events/tests/subclass.js +0 -66
  403. package/node_modules/events/tests/symbols.js +0 -25
  404. package/node_modules/fast-redact/.github/workflows/ci.yml +0 -37
  405. package/node_modules/fast-redact/LICENSE +0 -21
  406. package/node_modules/fast-redact/benchmark/index.js +0 -223
  407. package/node_modules/fast-redact/example/default-usage.js +0 -14
  408. package/node_modules/fast-redact/example/intermediate-wildcard-array.js +0 -11
  409. package/node_modules/fast-redact/example/multi-wildcard-array-depth.js +0 -11
  410. package/node_modules/fast-redact/example/multi-wildcard-array-end.js +0 -11
  411. package/node_modules/fast-redact/example/multi-wildcard-array.js +0 -11
  412. package/node_modules/fast-redact/example/serialize-false.js +0 -11
  413. package/node_modules/fast-redact/example/serialize-function.js +0 -4
  414. package/node_modules/fast-redact/example/top-wildcard-object.js +0 -9
  415. package/node_modules/fast-redact/index.js +0 -56
  416. package/node_modules/fast-redact/lib/modifiers.js +0 -291
  417. package/node_modules/fast-redact/lib/parse.js +0 -44
  418. package/node_modules/fast-redact/lib/redactor.js +0 -108
  419. package/node_modules/fast-redact/lib/restorer.js +0 -92
  420. package/node_modules/fast-redact/lib/rx.js +0 -16
  421. package/node_modules/fast-redact/lib/state.js +0 -20
  422. package/node_modules/fast-redact/lib/validator.js +0 -33
  423. package/node_modules/fast-redact/package.json +0 -50
  424. package/node_modules/fast-redact/readme.md +0 -282
  425. package/node_modules/fast-redact/test/index.js +0 -1502
  426. package/node_modules/ieee754/LICENSE +0 -11
  427. package/node_modules/ieee754/README.md +0 -51
  428. package/node_modules/ieee754/index.d.ts +0 -10
  429. package/node_modules/ieee754/index.js +0 -85
  430. package/node_modules/ieee754/package.json +0 -52
  431. package/node_modules/pino/.eslintignore +0 -2
  432. package/node_modules/pino/.eslintrc +0 -8
  433. package/node_modules/pino/.github/workflows/bench.yml +0 -61
  434. package/node_modules/pino/.github/workflows/ci.yml +0 -86
  435. package/node_modules/pino/.github/workflows/lock-threads.yml +0 -30
  436. package/node_modules/pino/.github/workflows/package-manager-ci.yml +0 -99
  437. package/node_modules/pino/.github/workflows/target-main.yml +0 -23
  438. package/node_modules/pino/.taprc.yaml +0 -8
  439. package/node_modules/pino/docsify/sidebar.md +0 -26
  440. package/node_modules/pino/favicon-16x16.png +0 -0
  441. package/node_modules/pino/favicon-32x32.png +0 -0
  442. package/node_modules/pino/lib/worker-pipeline.js +0 -38
  443. package/node_modules/pino/node_modules/sonic-boom/.eslintignore +0 -2
  444. package/node_modules/pino/node_modules/sonic-boom/.husky/pre-commit +0 -4
  445. package/node_modules/pino/node_modules/sonic-boom/.taprc.yaml +0 -11
  446. package/node_modules/pino/node_modules/sonic-boom/LICENSE +0 -21
  447. package/node_modules/pino/node_modules/sonic-boom/README.md +0 -151
  448. package/node_modules/pino/node_modules/sonic-boom/bench.js +0 -98
  449. package/node_modules/pino/node_modules/sonic-boom/check.js +0 -18
  450. package/node_modules/pino/node_modules/sonic-boom/example.js +0 -8
  451. package/node_modules/pino/node_modules/sonic-boom/fixtures/firehose.js +0 -22
  452. package/node_modules/pino/node_modules/sonic-boom/index.js +0 -690
  453. package/node_modules/pino/node_modules/sonic-boom/package.json +0 -50
  454. package/node_modules/pino/node_modules/sonic-boom/test/destroy.test.js +0 -49
  455. package/node_modules/pino/node_modules/sonic-boom/test/end.test.js +0 -98
  456. package/node_modules/pino/node_modules/sonic-boom/test/flush-sync.test.js +0 -140
  457. package/node_modules/pino/node_modules/sonic-boom/test/flush.test.js +0 -419
  458. package/node_modules/pino/node_modules/sonic-boom/test/fsync.test.js +0 -63
  459. package/node_modules/pino/node_modules/sonic-boom/test/helper.js +0 -42
  460. package/node_modules/pino/node_modules/sonic-boom/test/minlength.test.js +0 -35
  461. package/node_modules/pino/node_modules/sonic-boom/test/mode.test.js +0 -116
  462. package/node_modules/pino/node_modules/sonic-boom/test/reopen.test.js +0 -239
  463. package/node_modules/pino/node_modules/sonic-boom/test/retry.test.js +0 -414
  464. package/node_modules/pino/node_modules/sonic-boom/test/sync.test.js +0 -261
  465. package/node_modules/pino/node_modules/sonic-boom/test/write.test.js +0 -465
  466. package/node_modules/pino/node_modules/sonic-boom/types/index.d.ts +0 -62
  467. package/node_modules/pino/node_modules/sonic-boom/types/tests/test.ts +0 -4
  468. package/node_modules/pino/pino-banner.png +0 -0
  469. package/node_modules/pino/pino-logo-hire.png +0 -0
  470. package/node_modules/pino/pino-tree.png +0 -0
  471. package/node_modules/pino/pretty-demo.png +0 -0
  472. package/node_modules/pino/test/errorKey.test.js +0 -34
  473. package/node_modules/pino/test/transport/core.test.ts +0 -236
  474. package/node_modules/pino-std-serializers/.taprc +0 -2
  475. package/node_modules/process/.eslintrc +0 -21
  476. package/node_modules/process/LICENSE +0 -22
  477. package/node_modules/process/README.md +0 -26
  478. package/node_modules/process/browser.js +0 -184
  479. package/node_modules/process/index.js +0 -2
  480. package/node_modules/process/package.json +0 -27
  481. package/node_modules/process/test.js +0 -199
  482. package/node_modules/process-warning/.taprc +0 -2
  483. package/node_modules/readable-stream/LICENSE +0 -47
  484. package/node_modules/readable-stream/README.md +0 -116
  485. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -4
  486. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -4
  487. package/node_modules/readable-stream/lib/_stream_readable.js +0 -4
  488. package/node_modules/readable-stream/lib/_stream_transform.js +0 -4
  489. package/node_modules/readable-stream/lib/_stream_writable.js +0 -4
  490. package/node_modules/readable-stream/lib/internal/streams/add-abort-signal.js +0 -52
  491. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -157
  492. package/node_modules/readable-stream/lib/internal/streams/compose.js +0 -194
  493. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -290
  494. package/node_modules/readable-stream/lib/internal/streams/duplex.js +0 -143
  495. package/node_modules/readable-stream/lib/internal/streams/duplexify.js +0 -378
  496. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -286
  497. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -98
  498. package/node_modules/readable-stream/lib/internal/streams/lazy_transform.js +0 -51
  499. package/node_modules/readable-stream/lib/internal/streams/legacy.js +0 -89
  500. package/node_modules/readable-stream/lib/internal/streams/operators.js +0 -457
  501. package/node_modules/readable-stream/lib/internal/streams/passthrough.js +0 -39
  502. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -471
  503. package/node_modules/readable-stream/lib/internal/streams/readable.js +0 -1290
  504. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -39
  505. package/node_modules/readable-stream/lib/internal/streams/transform.js +0 -180
  506. package/node_modules/readable-stream/lib/internal/streams/utils.js +0 -327
  507. package/node_modules/readable-stream/lib/internal/streams/writable.js +0 -819
  508. package/node_modules/readable-stream/lib/internal/validators.js +0 -530
  509. package/node_modules/readable-stream/lib/ours/browser.js +0 -35
  510. package/node_modules/readable-stream/lib/ours/errors.js +0 -343
  511. package/node_modules/readable-stream/lib/ours/index.js +0 -65
  512. package/node_modules/readable-stream/lib/ours/primordials.js +0 -124
  513. package/node_modules/readable-stream/lib/ours/util/inspect.js +0 -55
  514. package/node_modules/readable-stream/lib/ours/util.js +0 -148
  515. package/node_modules/readable-stream/lib/stream/promises.js +0 -43
  516. package/node_modules/readable-stream/lib/stream.js +0 -143
  517. package/node_modules/readable-stream/package.json +0 -88
  518. package/node_modules/safe-buffer/LICENSE +0 -21
  519. package/node_modules/safe-buffer/README.md +0 -584
  520. package/node_modules/safe-buffer/index.d.ts +0 -187
  521. package/node_modules/safe-buffer/index.js +0 -65
  522. package/node_modules/safe-buffer/package.json +0 -51
  523. package/node_modules/string_decoder/LICENSE +0 -48
  524. package/node_modules/string_decoder/README.md +0 -47
  525. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  526. package/node_modules/string_decoder/package.json +0 -34
@@ -12,6 +12,7 @@ web framework ecosystem.
12
12
  - [Pino with Node core `http`](#pino-with-node-core-http)
13
13
  - [Pino with Nest](#pino-with-nest)
14
14
  - [Pino with H3](#pino-with-h3)
15
+ - [Pino with Hono](#pino-with-hono)
15
16
 
16
17
  <a id="fastify"></a>
17
18
  ## Pino with Fastify
@@ -236,24 +237,73 @@ See the [nestjs-pino README](https://npm.im/nestjs-pino) for more info.
236
237
  ## Pino with H3
237
238
 
238
239
  ```sh
239
- npm install pino-http
240
+ npm install pino-http h3
240
241
  ```
241
242
 
243
+ Save as `server.mjs`:
244
+
242
245
  ```js
243
- import { createServer } from 'http'
244
- import { createApp } from 'h3'
246
+ import { createApp, createRouter, eventHandler, fromNodeMiddleware } from "h3";
245
247
  import pino from 'pino-http'
246
248
 
247
- const app = createApp()
249
+ export const app = createApp();
248
250
 
249
- app.use(pino())
251
+ const router = createRouter();
252
+ app.use(router);
253
+ app.use(fromNodeMiddleware(pino()))
250
254
 
251
- app.use('/', (req) => {
252
- req.log.info('something')
255
+ app.use(eventHandler((event) => {
256
+ event.node.req.log.info('something')
253
257
  return 'hello world'
254
- })
258
+ }))
259
+
260
+ router.get(
261
+ "/",
262
+ eventHandler((event) => {
263
+ return { path: event.path, message: "Hello World!" };
264
+ }),
265
+ );
266
+ ```
267
+
268
+ Execute `npx --yes listhen -w --open ./server.mjs`.
269
+
270
+ See the [pino-http README](https://npm.im/pino-http) for more info.
271
+
272
+
273
+ <a id="hono"></a>
274
+ ## Pino with Hono
275
+
276
+ ```sh
277
+ npm install pino pino-http hono
278
+ ```
279
+
280
+ ```js
281
+ import { serve } from '@hono/node-server';
282
+ import { Hono } from 'hono';
283
+ import { requestId } from 'hono/request-id';
284
+ import { pinoHttp } from 'pino-http';
285
+
286
+ const app = new Hono();
287
+ app.use(requestId());
288
+ app.use(async (c, next) => {
289
+ // pass hono's request-id to pino-http
290
+ c.env.incoming.id = c.var.requestId;
291
+
292
+ // map express style middleware to hono
293
+ await new Promise((resolve) => pinoHttp()(c.env.incoming, c.env.outgoing, () => resolve()));
294
+
295
+ c.set('logger', c.env.incoming.log);
296
+
297
+ await next();
298
+ });
299
+
300
+ app.get('/', (c) => {
301
+ c.var.logger.info('something');
302
+
303
+ return c.text('Hello Node.js!');
304
+ });
255
305
 
256
- createServer(app).listen(process.env.PORT || 3000)
306
+ serve(app);
257
307
  ```
258
308
 
259
309
  See the [pino-http README](https://npm.im/pino-http) for more info.
@@ -0,0 +1,19 @@
1
+ 'use strict'
2
+
3
+ const { defineConfig, globalIgnores } = require('eslint/config')
4
+ const neostandard = require('neostandard')
5
+
6
+ module.exports = defineConfig([
7
+ neostandard({}),
8
+ globalIgnores([
9
+ 'pino.d.ts',
10
+ 'test/types/pino.test-d.ts',
11
+ 'test/fixtures/syntax-error-esm.mjs',
12
+ 'test/fixtures/ts/*cjs',
13
+ ]),
14
+ {
15
+ rules: {
16
+ 'no-var': 'off',
17
+ },
18
+ },
19
+ ])
@@ -1,8 +1,8 @@
1
1
  'use strict'
2
2
 
3
3
  const pino = require('..')
4
- const { tmpdir } = require('os')
5
- const { join } = require('path')
4
+ const { tmpdir } = require('node:os')
5
+ const { join } = require('node:path')
6
6
 
7
7
  const file = join(tmpdir(), `pino-${process.pid}-example`)
8
8
 
@@ -1,7 +1,7 @@
1
1
  'use strict'
2
2
 
3
3
  const pino = require('./pino')
4
- const { once } = require('events')
4
+ const { once } = require('node:events')
5
5
 
6
6
  module.exports = async function (opts = {}) {
7
7
  const destOpts = Object.assign({}, opts, { dest: opts.destination || 1, sync: false })
@@ -1,3 +1,3 @@
1
1
  'use strict'
2
2
 
3
- module.exports = { version: '8.21.0' }
3
+ module.exports = { version: '10.1.0' }
@@ -6,7 +6,6 @@ const { DEFAULT_LEVELS } = require('./constants')
6
6
  const DEFAULT_INFO_LEVEL = DEFAULT_LEVELS.info
7
7
 
8
8
  function multistream (streamsArray, opts) {
9
- let counter = 0
10
9
  streamsArray = streamsArray || []
11
10
  opts = opts || { dedupe: false }
12
11
 
@@ -21,10 +20,12 @@ function multistream (streamsArray, opts) {
21
20
  const res = {
22
21
  write,
23
22
  add,
23
+ remove,
24
24
  emit,
25
25
  flushSync,
26
26
  end,
27
27
  minLevel: 0,
28
+ lastId: 0,
28
29
  streams: [],
29
30
  clone,
30
31
  [metadata]: true,
@@ -126,7 +127,7 @@ function multistream (streamsArray, opts) {
126
127
  stream: stream_,
127
128
  level,
128
129
  levelVal: undefined,
129
- id: counter++
130
+ id: ++res.lastId
130
131
  }
131
132
 
132
133
  streams.unshift(dest_)
@@ -137,6 +138,19 @@ function multistream (streamsArray, opts) {
137
138
  return res
138
139
  }
139
140
 
141
+ function remove (id) {
142
+ const { streams } = this
143
+ const index = streams.findIndex(s => s.id === id)
144
+
145
+ if (index >= 0) {
146
+ streams.splice(index, 1)
147
+ streams.sort(compareByLevel)
148
+ this.minLevel = streams.length > 0 ? streams[0].level : -1
149
+ }
150
+
151
+ return res
152
+ }
153
+
140
154
  function end () {
141
155
  for (const { stream } of this.streams) {
142
156
  if (typeof stream.flushSync === 'function') {
@@ -159,6 +173,7 @@ function multistream (streamsArray, opts) {
159
173
  return {
160
174
  write,
161
175
  add,
176
+ remove,
162
177
  minLevel: level,
163
178
  streams,
164
179
  clone,
@@ -2,14 +2,13 @@
2
2
 
3
3
  /* eslint no-prototype-builtins: 0 */
4
4
 
5
- const { EventEmitter } = require('events')
5
+ const { EventEmitter } = require('node:events')
6
6
  const {
7
7
  lsCacheSym,
8
8
  levelValSym,
9
9
  setLevelSym,
10
10
  getLevelSym,
11
11
  chindingsSym,
12
- parsedChindingsSym,
13
12
  mixinSym,
14
13
  asJsonSym,
15
14
  writeSym,
@@ -27,7 +26,8 @@ const {
27
26
  stringifySym,
28
27
  formatOptsSym,
29
28
  stringifiersSym,
30
- msgPrefixSym
29
+ msgPrefixSym,
30
+ hooksSym
31
31
  } = require('./symbols')
32
32
  const {
33
33
  getLevel,
@@ -42,7 +42,8 @@ const {
42
42
  asChindings,
43
43
  asJson,
44
44
  buildFormatters,
45
- stringify
45
+ stringify,
46
+ noop
46
47
  } = require('./tools')
47
48
  const {
48
49
  version
@@ -64,6 +65,8 @@ const prototype = {
64
65
  set level (lvl) { this[setLevelSym](lvl) },
65
66
  get levelVal () { return this[levelValSym] },
66
67
  set levelVal (n) { throw Error('levelVal is read-only') },
68
+ get msgPrefix () { return this[msgPrefixSym] },
69
+ get [Symbol.toStringTag] () { return 'Pino' },
67
70
  [lsCacheSym]: initialLsCache,
68
71
  [writeSym]: write,
69
72
  [asJsonSym]: asJson,
@@ -83,11 +86,32 @@ function child (bindings, options) {
83
86
  if (!bindings) {
84
87
  throw Error('missing bindings for child Pino')
85
88
  }
86
- options = options || {} // default options to empty object
87
89
  const serializers = this[serializersSym]
88
90
  const formatters = this[formattersSym]
89
91
  const instance = Object.create(this)
90
92
 
93
+ // If an `options` object was not supplied, we can improve
94
+ // the performance of child creation by skipping
95
+ // the checks for set options and simply return
96
+ // a baseline instance.
97
+ if (options == null) {
98
+ if (instance[formattersSym].bindings !== resetChildingsFormatter) {
99
+ instance[formattersSym] = buildFormatters(
100
+ formatters.level,
101
+ resetChildingsFormatter,
102
+ formatters.log
103
+ )
104
+ }
105
+
106
+ instance[chindingsSym] = asChindings(instance, bindings)
107
+
108
+ if (this.onChild !== noop) {
109
+ this.onChild(instance)
110
+ }
111
+
112
+ return instance
113
+ }
114
+
91
115
  if (options.hasOwnProperty('serializers') === true) {
92
116
  instance[serializersSym] = Object.create(null)
93
117
 
@@ -145,8 +169,10 @@ function child (bindings, options) {
145
169
  }
146
170
 
147
171
  instance[chindingsSym] = asChindings(instance, bindings)
148
- const childLevel = options.level || this.level
149
- instance[setLevelSym](childLevel)
172
+ if ((options.level !== undefined && options.level !== this.level) || options.hasOwnProperty('customLevels')) {
173
+ const childLevel = options.level || this.level
174
+ instance[setLevelSym](childLevel)
175
+ }
150
176
  this.onChild(instance)
151
177
  return instance
152
178
  }
@@ -163,7 +189,6 @@ function bindings () {
163
189
  function setBindings (newBindings) {
164
190
  const chindings = asChindings(this, newBindings)
165
191
  this[chindingsSym] = chindings
166
- delete this[parsedChindingsSym]
167
192
  }
168
193
 
169
194
  /**
@@ -185,6 +210,7 @@ function write (_obj, msg, num) {
185
210
  const messageKey = this[messageKeySym]
186
211
  const mixinMergeStrategy = this[mixinMergeStrategySym] || defaultMixinMergeStrategy
187
212
  let obj
213
+ const streamWriteHook = this[hooksSym].streamWrite
188
214
 
189
215
  if (_obj === undefined || _obj === null) {
190
216
  obj = {}
@@ -214,11 +240,9 @@ function write (_obj, msg, num) {
214
240
  stream.lastTime = t.slice(this[timeSliceIndexSym])
215
241
  stream.lastLogger = this // for child loggers
216
242
  }
217
- stream.write(s)
243
+ stream.write(streamWriteHook ? streamWriteHook(s) : s)
218
244
  }
219
245
 
220
- function noop () {}
221
-
222
246
  function flush (cb) {
223
247
  if (cb != null && typeof cb !== 'function') {
224
248
  throw Error('callback must be a function')
@@ -1,19 +1,16 @@
1
1
  'use strict'
2
2
 
3
- const fastRedact = require('fast-redact')
3
+ const Redact = require('@pinojs/redact')
4
4
  const { redactFmtSym, wildcardFirstSym } = require('./symbols')
5
- const { rx, validator } = fastRedact
6
5
 
7
- const validate = validator({
8
- ERR_PATHS_MUST_BE_STRINGS: () => 'pino – redacted paths must be strings',
9
- ERR_INVALID_PATH: (s) => `pino – redact paths array contains an invalid path (${s})`
10
- })
6
+ // Custom rx regex equivalent to fast-redact's rx
7
+ const rx = /[^.[\]]+|\[([^[\]]*?)\]/g
11
8
 
12
9
  const CENSOR = '[Redacted]'
13
10
  const strict = false // TODO should this be configurable?
14
11
 
15
12
  function redaction (opts, serialize) {
16
- const { paths, censor } = handle(opts)
13
+ const { paths, censor, remove } = handle(opts)
17
14
 
18
15
  const shape = paths.reduce((o, str) => {
19
16
  rx.lastIndex = 0
@@ -73,7 +70,7 @@ function redaction (opts, serialize) {
73
70
  // provides top level redaction for instances where
74
71
  // an object is interpolated into the msg string
75
72
  const result = {
76
- [redactFmtSym]: fastRedact({ paths, censor, serialize, strict })
73
+ [redactFmtSym]: Redact({ paths, censor, serialize, strict, remove })
77
74
  }
78
75
 
79
76
  const topCensor = (...args) => {
@@ -90,11 +87,12 @@ function redaction (opts, serialize) {
90
87
  return censor(value, [k, ...path])
91
88
  }
92
89
  : censor
93
- o[k] = fastRedact({
90
+ o[k] = Redact({
94
91
  paths: shape[k],
95
92
  censor: wrappedCensor,
96
93
  serialize,
97
- strict
94
+ strict,
95
+ remove
98
96
  })
99
97
  }
100
98
  return o
@@ -104,15 +102,13 @@ function redaction (opts, serialize) {
104
102
  function handle (opts) {
105
103
  if (Array.isArray(opts)) {
106
104
  opts = { paths: opts, censor: CENSOR }
107
- validate(opts)
108
105
  return opts
109
106
  }
110
107
  let { paths, censor = CENSOR, remove } = opts
111
108
  if (Array.isArray(paths) === false) { throw Error('pino – redact must contain an array of strings') }
112
109
  if (remove === true) censor = undefined
113
- validate({ paths, censor })
114
110
 
115
- return { paths, censor }
111
+ return { paths, censor, remove }
116
112
  }
117
113
 
118
114
  module.exports = redaction
@@ -8,4 +8,32 @@ const unixTime = () => `,"time":${Math.round(Date.now() / 1000.0)}`
8
8
 
9
9
  const isoTime = () => `,"time":"${new Date(Date.now()).toISOString()}"` // using Date.now() for testability
10
10
 
11
- module.exports = { nullTime, epochTime, unixTime, isoTime }
11
+ const NS_PER_MS = 1_000_000n
12
+ const NS_PER_SEC = 1_000_000_000n
13
+
14
+ const startWallTimeNs = BigInt(Date.now()) * NS_PER_MS
15
+ const startHrTime = process.hrtime.bigint()
16
+
17
+ const isoTimeNano = () => {
18
+ const elapsedNs = process.hrtime.bigint() - startHrTime
19
+ const currentTimeNs = startWallTimeNs + elapsedNs
20
+
21
+ const secondsSinceEpoch = currentTimeNs / NS_PER_SEC
22
+ const nanosWithinSecond = currentTimeNs % NS_PER_SEC
23
+
24
+ const msSinceEpoch = Number(secondsSinceEpoch * 1000n + nanosWithinSecond / 1_000_000n)
25
+ const date = new Date(msSinceEpoch)
26
+
27
+ const year = date.getUTCFullYear()
28
+ const month = (date.getUTCMonth() + 1).toString().padStart(2, '0')
29
+ const day = date.getUTCDate().toString().padStart(2, '0')
30
+ const hours = date.getUTCHours().toString().padStart(2, '0')
31
+ const minutes = date.getUTCMinutes().toString().padStart(2, '0')
32
+ const seconds = date.getUTCSeconds().toString().padStart(2, '0')
33
+
34
+ return `,"time":"${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${nanosWithinSecond
35
+ .toString()
36
+ .padStart(9, '0')}Z"`
37
+ }
38
+
39
+ module.exports = { nullTime, epochTime, unixTime, isoTime, isoTimeNano }
@@ -2,6 +2,7 @@
2
2
 
3
3
  /* eslint no-prototype-builtins: 0 */
4
4
 
5
+ const diagChan = require('node:diagnostics_channel')
5
6
  const format = require('quick-format-unescaped')
6
7
  const { mapHttpRequest, mapHttpResponse } = require('pino-std-serializers')
7
8
  const SonicBoom = require('sonic-boom')
@@ -27,6 +28,8 @@ const {
27
28
  const { isMainThread } = require('worker_threads')
28
29
  const transport = require('./transport')
29
30
 
31
+ const asJsonChan = diagChan.tracingChannel('pino_asJson')
32
+
30
33
  function noop () {
31
34
  }
32
35
 
@@ -103,7 +106,38 @@ function asString (str) {
103
106
  return point < 32 ? JSON.stringify(str) : '"' + result + '"'
104
107
  }
105
108
 
109
+ /**
110
+ * `asJson` wraps `_asJson` in order to facilitate generating diagnostics.
111
+ *
112
+ * @param {object} obj The merging object passed to the log method.
113
+ * @param {string} msg The log message passed to the log method.
114
+ * @param {number} num The log level number.
115
+ * @param {number} time The log time in milliseconds.
116
+ *
117
+ * @returns {string}
118
+ */
106
119
  function asJson (obj, msg, num, time) {
120
+ if (asJsonChan.hasSubscribers === false) {
121
+ return _asJson.call(this, obj, msg, num, time)
122
+ }
123
+
124
+ const store = { instance: this, arguments }
125
+ return asJsonChan.traceSync(_asJson, store, this, obj, msg, num, time)
126
+ }
127
+
128
+ /**
129
+ * `_asJson` parses all collected data and generates the finalized newline
130
+ * delimited JSON string.
131
+ *
132
+ * @param {object} obj The merging object passed to the log method.
133
+ * @param {string} msg The log message passed to the log method.
134
+ * @param {number} num The log level number.
135
+ * @param {number} time The log time in milliseconds.
136
+ *
137
+ * @returns {string} The finalized log string terminated with a newline.
138
+ * @private
139
+ */
140
+ function _asJson (obj, msg, num, time) {
107
141
  const stringify = this[stringifySym]
108
142
  const stringifySafe = this[stringifySafeSym]
109
143
  const stringifiers = this[stringifiersSym]
@@ -170,7 +204,6 @@ function asJson (obj, msg, num, time) {
170
204
  case 'function':
171
205
  break
172
206
  case 'number':
173
- /* eslint no-fallthrough: "off" */
174
207
  if (Number.isFinite(value) === false) {
175
208
  value = null
176
209
  }
@@ -211,10 +244,10 @@ function asChindings (instance, bindings) {
211
244
 
212
245
  for (const key in bindings) {
213
246
  value = bindings[key]
214
- const valid = key !== 'level' &&
247
+ const valid = (key.length < 5 || (key !== 'level' &&
215
248
  key !== 'serializers' &&
216
249
  key !== 'formatters' &&
217
- key !== 'customLevels' &&
250
+ key !== 'customLevels')) &&
218
251
  bindings.hasOwnProperty(key) &&
219
252
  value !== undefined
220
253
  if (valid === true) {
@@ -231,15 +264,11 @@ function hasBeenTampered (stream) {
231
264
  return stream.write !== stream.constructor.prototype.write
232
265
  }
233
266
 
234
- const hasNodeCodeCoverage = process.env.NODE_V8_COVERAGE || process.env.V8_COVERAGE
235
-
236
267
  function buildSafeSonicBoom (opts) {
237
268
  const stream = new SonicBoom(opts)
238
269
  stream.on('error', filterBrokenPipe)
239
270
  // If we are sync: false, we must flush on exit
240
- // We must disable this if there is node code coverage due to
241
- // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308.
242
- if (!hasNodeCodeCoverage && !opts.sync && isMainThread) {
271
+ if (!opts.sync && isMainThread) {
243
272
  onExit.register(stream, autoEnd)
244
273
 
245
274
  stream.on('close', function () {
@@ -7,13 +7,13 @@ module.exports = loadTransportStreamBuilder
7
7
  /**
8
8
  * Loads & returns a function to build transport streams
9
9
  * @param {string} target
10
- * @returns {function(object): Promise<import('stream').Writable>}
10
+ * @returns {Promise<function(object): Promise<import('node:stream').Writable>>}
11
11
  * @throws {Error} In case the target module does not export a function
12
12
  */
13
13
  async function loadTransportStreamBuilder (target) {
14
14
  let fn
15
15
  try {
16
- const toLoad = 'file://' + target
16
+ const toLoad = target.startsWith('file://') ? target : 'file://' + target
17
17
 
18
18
  if (toLoad.endsWith('.ts') || toLoad.endsWith('.cts')) {
19
19
  // TODO: add support for the TSM modules loader ( https://github.com/lukeed/tsm ).
@@ -31,9 +31,15 @@ async function loadTransportStreamBuilder (target) {
31
31
  // See this PR for details: https://github.com/pinojs/thread-stream/pull/34
32
32
  if ((error.code === 'ENOTDIR' || error.code === 'ERR_MODULE_NOT_FOUND')) {
33
33
  fn = realRequire(target)
34
- } else if (error.code === undefined) {
34
+ } else if (error.code === undefined || error.code === 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING') {
35
35
  // When bundled with pkg, an undefined error is thrown when called with realImport
36
- fn = realRequire(decodeURIComponent(target))
36
+ // When bundled with pkg and using node v20, an ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING error is thrown when called with realImport
37
+ // More info at: https://github.com/pinojs/thread-stream/issues/143
38
+ try {
39
+ fn = realRequire(decodeURIComponent(target))
40
+ } catch {
41
+ throw error
42
+ }
37
43
  } else {
38
44
  throw error
39
45
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  const { createRequire } = require('module')
4
4
  const getCallers = require('./caller')
5
- const { join, isAbsolute, sep } = require('path')
5
+ const { join, isAbsolute, sep } = require('node:path')
6
6
  const sleep = require('atomic-sleep')
7
7
  const onExit = require('on-exit-leak-free')
8
8
  const ThreadStream = require('thread-stream')
@@ -17,11 +17,12 @@ function setupOnExit (stream) {
17
17
  })
18
18
  }
19
19
 
20
- function buildStream (filename, workerData, workerOpts) {
20
+ function buildStream (filename, workerData, workerOpts, sync) {
21
21
  const stream = new ThreadStream({
22
22
  filename,
23
23
  workerData,
24
- workerOpts
24
+ workerOpts,
25
+ sync
25
26
  })
26
27
 
27
28
  stream.on('ready', onReady)
@@ -71,7 +72,11 @@ function flush (stream) {
71
72
  }
72
73
 
73
74
  function transport (fullOptions) {
74
- const { pipeline, targets, levels, dedupe, options = {}, worker = {}, caller = getCallers() } = fullOptions
75
+ const { pipeline, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions
76
+
77
+ const options = {
78
+ ...fullOptions.options
79
+ }
75
80
 
76
81
  // Backwards compatibility
77
82
  const callers = typeof caller === 'string' ? [caller] : caller
@@ -87,20 +92,29 @@ function transport (fullOptions) {
87
92
 
88
93
  if (targets) {
89
94
  target = bundlerOverrides['pino-worker'] || join(__dirname, 'worker.js')
90
- options.targets = targets.map((dest) => {
95
+ options.targets = targets.filter(dest => dest.target).map((dest) => {
91
96
  return {
92
97
  ...dest,
93
98
  target: fixTarget(dest.target)
94
99
  }
95
100
  })
101
+ options.pipelines = targets.filter(dest => dest.pipeline).map((dest) => {
102
+ return dest.pipeline.map((t) => {
103
+ return {
104
+ ...t,
105
+ level: dest.level, // duplicate the pipeline `level` property defined in the upper level
106
+ target: fixTarget(t.target)
107
+ }
108
+ })
109
+ })
96
110
  } else if (pipeline) {
97
- target = bundlerOverrides['pino-pipeline-worker'] || join(__dirname, 'worker-pipeline.js')
98
- options.targets = pipeline.map((dest) => {
111
+ target = bundlerOverrides['pino-worker'] || join(__dirname, 'worker.js')
112
+ options.pipelines = [pipeline.map((dest) => {
99
113
  return {
100
114
  ...dest,
101
115
  target: fixTarget(dest.target)
102
116
  }
103
- })
117
+ })]
104
118
  }
105
119
 
106
120
  if (levels) {
@@ -113,7 +127,7 @@ function transport (fullOptions) {
113
127
 
114
128
  options.pinoWillSendConfig = true
115
129
 
116
- return buildStream(fixTarget(target), options, worker)
130
+ return buildStream(fixTarget(target), options, worker, sync)
117
131
 
118
132
  function fixTarget (origin) {
119
133
  origin = bundlerOverrides[origin] || origin