@wbce/projen-d9 0.0.28 → 0.1.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 (421) hide show
  1. package/.jsii +184 -45
  2. package/API.md +153 -37
  3. package/CHANGELOG.md +13 -0
  4. package/README.md +10 -3
  5. package/docs/D9-plumbing.md +189 -0
  6. package/lib/cli/atlas.d.ts +10 -0
  7. package/lib/cli/atlas.js +65 -0
  8. package/lib/cli/commands/cedar/cedar-format.d.ts +7 -0
  9. package/lib/cli/commands/cedar/cedar-format.js +75 -0
  10. package/lib/cli/commands/cedar/cedar-to-d9-translations.d.ts +12 -0
  11. package/lib/cli/commands/cedar/cedar-to-d9-translations.js +130 -0
  12. package/lib/cli/commands/cedar/cedar-to-d9.d.ts +57 -0
  13. package/lib/cli/commands/cedar/cedar-to-d9.js +221 -0
  14. package/lib/cli/commands/cedar/cedar-translations.d.ts +9 -0
  15. package/lib/cli/commands/cedar/cedar-translations.js +213 -0
  16. package/lib/cli/commands/cedar/d9-permission.d.ts +27 -0
  17. package/lib/cli/commands/cedar/d9-permission.js +45 -0
  18. package/lib/cli/commands/cedar/d9-to-cedar.d.ts +33 -0
  19. package/lib/cli/commands/cedar/d9-to-cedar.js +157 -0
  20. package/lib/cli/commands/cedar/roles-table.d.ts +14 -0
  21. package/lib/cli/commands/cedar/roles-table.js +29 -0
  22. package/lib/cli/commands/save/apply-snapshot.js +39 -30
  23. package/lib/cli/commands/save/check-unsaved.d.ts +9 -0
  24. package/lib/cli/commands/save/check-unsaved.js +81 -0
  25. package/lib/cli/commands/save/env.d.ts +33 -0
  26. package/lib/cli/commands/save/env.js +109 -0
  27. package/lib/cli/commands/save/save-snapshot.d.ts +9 -0
  28. package/lib/cli/commands/save/save-snapshot.js +232 -0
  29. package/lib/cli/commands/save/sync-files.d.ts +5 -0
  30. package/lib/cli/commands/save/sync-files.js +46 -0
  31. package/lib/cli/commands/save/transfer.d.ts +18 -0
  32. package/lib/cli/commands/save/transfer.js +96 -0
  33. package/lib/cli/commands/save/utils.d.ts +5 -0
  34. package/lib/cli/commands/save/utils.js +33 -3
  35. package/lib/cli/commands/sync.js +4 -3
  36. package/lib/cli/index.js +65 -25
  37. package/lib/cli/logger.d.ts +2 -0
  38. package/lib/cli/logger.js +10 -0
  39. package/lib/cli/plumbing-config.d.ts +11 -0
  40. package/lib/cli/plumbing-config.js +13 -0
  41. package/lib/index.d.ts +44 -5
  42. package/lib/index.js +54 -41
  43. package/node_modules/@cedar-policy/cedar-wasm/README.md +181 -0
  44. package/node_modules/@cedar-policy/cedar-wasm/esm/README.md +181 -0
  45. package/node_modules/@cedar-policy/cedar-wasm/esm/cedar_wasm.d.ts +427 -0
  46. package/node_modules/@cedar-policy/cedar-wasm/esm/cedar_wasm.js +9 -0
  47. package/node_modules/@cedar-policy/cedar-wasm/esm/cedar_wasm_bg.js +434 -0
  48. package/node_modules/@cedar-policy/cedar-wasm/esm/cedar_wasm_bg.wasm +0 -0
  49. package/node_modules/@cedar-policy/cedar-wasm/esm/cedar_wasm_bg.wasm.d.ts +34 -0
  50. package/node_modules/@cedar-policy/cedar-wasm/esm/package.json +23 -0
  51. package/node_modules/@cedar-policy/cedar-wasm/nodejs/README.md +181 -0
  52. package/node_modules/@cedar-policy/cedar-wasm/nodejs/cedar_wasm.d.ts +427 -0
  53. package/node_modules/@cedar-policy/cedar-wasm/nodejs/cedar_wasm.js +463 -0
  54. package/node_modules/@cedar-policy/cedar-wasm/nodejs/cedar_wasm_bg.wasm +0 -0
  55. package/node_modules/@cedar-policy/cedar-wasm/nodejs/cedar_wasm_bg.wasm.d.ts +34 -0
  56. package/node_modules/@cedar-policy/cedar-wasm/nodejs/package.json +18 -0
  57. package/node_modules/@cedar-policy/cedar-wasm/package.json +53 -0
  58. package/node_modules/@cedar-policy/cedar-wasm/web/README.md +181 -0
  59. package/node_modules/@cedar-policy/cedar-wasm/web/cedar_wasm.d.ts +486 -0
  60. package/node_modules/@cedar-policy/cedar-wasm/web/cedar_wasm.js +534 -0
  61. package/node_modules/@cedar-policy/cedar-wasm/web/cedar_wasm_bg.wasm +0 -0
  62. package/node_modules/@cedar-policy/cedar-wasm/web/cedar_wasm_bg.wasm.d.ts +34 -0
  63. package/node_modules/@cedar-policy/cedar-wasm/web/package.json +21 -0
  64. package/node_modules/@types/node/README.md +5 -6
  65. package/node_modules/@types/node/assert/strict.d.ts +111 -0
  66. package/node_modules/@types/node/assert.d.ts +1040 -79
  67. package/node_modules/@types/node/async_hooks.d.ts +476 -119
  68. package/node_modules/@types/node/buffer.buffer.d.ts +472 -0
  69. package/node_modules/@types/node/buffer.d.ts +1925 -13
  70. package/node_modules/@types/node/child_process.d.ts +1204 -235
  71. package/node_modules/@types/node/cluster.d.ts +455 -137
  72. package/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  73. package/node_modules/@types/node/compatibility/index.d.ts +9 -0
  74. package/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  75. package/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  76. package/node_modules/@types/node/console.d.ts +450 -1
  77. package/node_modules/@types/node/constants.d.ts +20 -447
  78. package/node_modules/@types/node/crypto.d.ts +3962 -600
  79. package/node_modules/@types/node/dgram.d.ts +515 -33
  80. package/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  81. package/node_modules/@types/node/dns/promises.d.ts +503 -0
  82. package/node_modules/@types/node/dns.d.ts +798 -247
  83. package/node_modules/@types/node/domain.d.ts +164 -10
  84. package/node_modules/@types/node/events.d.ts +954 -25
  85. package/node_modules/@types/node/fs/promises.d.ts +1295 -0
  86. package/node_modules/@types/node/fs.d.ts +3463 -1569
  87. package/node_modules/@types/node/globals.d.ts +98 -1277
  88. package/node_modules/@types/node/globals.typedarray.d.ts +38 -0
  89. package/node_modules/@types/node/http.d.ts +1933 -300
  90. package/node_modules/@types/node/http2.d.ts +1946 -254
  91. package/node_modules/@types/node/https.d.ts +557 -134
  92. package/node_modules/@types/node/index.d.ts +54 -48
  93. package/node_modules/@types/node/inspector.d.ts +227 -3014
  94. package/node_modules/@types/node/inspector.generated.d.ts +4052 -0
  95. package/node_modules/@types/node/module.d.ts +890 -2
  96. package/node_modules/@types/node/net.d.ts +872 -105
  97. package/node_modules/@types/node/os.d.ts +452 -209
  98. package/node_modules/@types/node/package.json +78 -128
  99. package/node_modules/@types/node/path.d.ts +196 -155
  100. package/node_modules/@types/node/perf_hooks.d.ts +829 -120
  101. package/node_modules/@types/node/process.d.ts +2072 -3
  102. package/node_modules/@types/node/punycode.d.ts +69 -27
  103. package/node_modules/@types/node/querystring.d.ts +132 -9
  104. package/node_modules/@types/node/readline/promises.d.ts +161 -0
  105. package/node_modules/@types/node/readline.d.ts +485 -49
  106. package/node_modules/@types/node/repl.d.ts +121 -83
  107. package/node_modules/@types/node/sea.d.ts +153 -0
  108. package/node_modules/@types/node/sqlite.d.ts +721 -0
  109. package/node_modules/@types/node/stream/consumers.d.ts +38 -0
  110. package/node_modules/@types/node/stream/promises.d.ts +90 -0
  111. package/node_modules/@types/node/stream/web.d.ts +622 -0
  112. package/node_modules/@types/node/stream.d.ts +1470 -140
  113. package/node_modules/@types/node/string_decoder.d.ts +64 -4
  114. package/node_modules/@types/node/test.d.ts +2163 -0
  115. package/node_modules/@types/node/timers/promises.d.ts +108 -0
  116. package/node_modules/@types/node/timers.d.ts +284 -13
  117. package/node_modules/@types/node/tls.d.ts +850 -244
  118. package/node_modules/@types/node/trace_events.d.ts +147 -11
  119. package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
  120. package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
  121. package/node_modules/@types/node/ts5.6/index.d.ts +97 -0
  122. package/node_modules/@types/node/tty.d.ts +160 -18
  123. package/node_modules/@types/node/url.d.ts +890 -53
  124. package/node_modules/@types/node/util.d.ts +2566 -160
  125. package/node_modules/@types/node/v8.d.ts +806 -83
  126. package/node_modules/@types/node/vm.d.ts +932 -44
  127. package/node_modules/@types/node/wasi.d.ts +148 -22
  128. package/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  129. package/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  130. package/node_modules/@types/node/web-globals/events.d.ts +97 -0
  131. package/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
  132. package/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  133. package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  134. package/node_modules/@types/node/worker_threads.d.ts +657 -80
  135. package/node_modules/@types/node/zlib.d.ts +510 -119
  136. package/node_modules/pino/.nojekyll +0 -0
  137. package/node_modules/pino/.prettierignore +1 -0
  138. package/node_modules/pino/CNAME +1 -0
  139. package/node_modules/pino/CONTRIBUTING.md +34 -0
  140. package/node_modules/pino/LICENSE +21 -0
  141. package/node_modules/pino/README.md +177 -0
  142. package/node_modules/pino/SECURITY.md +103 -0
  143. package/node_modules/pino/benchmarks/basic.bench.js +95 -0
  144. package/node_modules/pino/benchmarks/child-child.bench.js +52 -0
  145. package/node_modules/pino/benchmarks/child-creation.bench.js +73 -0
  146. package/node_modules/pino/benchmarks/child.bench.js +62 -0
  147. package/node_modules/pino/benchmarks/deep-object.bench.js +88 -0
  148. package/node_modules/pino/benchmarks/formatters.bench.js +50 -0
  149. package/node_modules/pino/benchmarks/internal/custom-levels.js +67 -0
  150. package/node_modules/pino/benchmarks/internal/just-pino-heavy.bench.js +76 -0
  151. package/node_modules/pino/benchmarks/internal/just-pino.bench.js +182 -0
  152. package/node_modules/pino/benchmarks/internal/parent-vs-child.bench.js +75 -0
  153. package/node_modules/pino/benchmarks/internal/redact.bench.js +86 -0
  154. package/node_modules/pino/benchmarks/long-string.bench.js +81 -0
  155. package/node_modules/pino/benchmarks/multi-arg.bench.js +193 -0
  156. package/node_modules/pino/benchmarks/multistream.js +98 -0
  157. package/node_modules/pino/benchmarks/object.bench.js +82 -0
  158. package/node_modules/pino/benchmarks/utils/generate-benchmark-doc.js +36 -0
  159. package/node_modules/pino/benchmarks/utils/runbench.js +138 -0
  160. package/node_modules/pino/benchmarks/utils/wrap-log-level.js +55 -0
  161. package/node_modules/pino/bin.js +6 -0
  162. package/node_modules/pino/browser.js +607 -0
  163. package/node_modules/pino/build/sync-version.js +25 -0
  164. package/node_modules/pino/docs/api.md +1664 -0
  165. package/node_modules/pino/docs/asynchronous.md +55 -0
  166. package/node_modules/pino/docs/benchmarks.md +55 -0
  167. package/node_modules/pino/docs/browser.md +341 -0
  168. package/node_modules/pino/docs/bundling.md +40 -0
  169. package/node_modules/pino/docs/child-loggers.md +116 -0
  170. package/node_modules/pino/docs/diagnostics.md +16 -0
  171. package/node_modules/pino/docs/ecosystem.md +87 -0
  172. package/node_modules/pino/docs/help.md +353 -0
  173. package/node_modules/pino/docs/lts.md +93 -0
  174. package/node_modules/pino/docs/pretty.md +38 -0
  175. package/node_modules/pino/docs/redaction.md +130 -0
  176. package/node_modules/pino/docs/transports.md +1447 -0
  177. package/node_modules/pino/docs/web.md +306 -0
  178. package/node_modules/pino/eslint.config.js +36 -0
  179. package/node_modules/pino/examples/basic.js +43 -0
  180. package/node_modules/pino/examples/transport.js +68 -0
  181. package/node_modules/pino/favicon.ico +0 -0
  182. package/node_modules/pino/file.js +12 -0
  183. package/node_modules/pino/inc-version.sh +42 -0
  184. package/node_modules/pino/index.html +55 -0
  185. package/node_modules/pino/lib/caller.js +40 -0
  186. package/node_modules/pino/lib/constants.js +28 -0
  187. package/node_modules/pino/lib/deprecations.js +8 -0
  188. package/node_modules/pino/lib/levels.js +241 -0
  189. package/node_modules/pino/lib/meta.js +3 -0
  190. package/node_modules/pino/lib/multistream.js +211 -0
  191. package/node_modules/pino/lib/proto.js +256 -0
  192. package/node_modules/pino/lib/redaction.js +119 -0
  193. package/node_modules/pino/lib/symbols.js +76 -0
  194. package/node_modules/pino/lib/time.js +39 -0
  195. package/node_modules/pino/lib/tools.js +427 -0
  196. package/node_modules/pino/lib/transport-stream.js +56 -0
  197. package/node_modules/pino/lib/transport.js +302 -0
  198. package/node_modules/pino/lib/worker.js +197 -0
  199. package/node_modules/pino/package.json +112 -0
  200. package/node_modules/pino/pino.d.ts +881 -0
  201. package/node_modules/pino/pino.js +259 -0
  202. package/node_modules/pino/test/basic.test.js +952 -0
  203. package/node_modules/pino/test/broken-pipe.test.js +59 -0
  204. package/node_modules/pino/test/browser-bindings.test.js +114 -0
  205. package/node_modules/pino/test/browser-child.test.js +132 -0
  206. package/node_modules/pino/test/browser-disabled.test.js +87 -0
  207. package/node_modules/pino/test/browser-early-console-freeze.test.js +12 -0
  208. package/node_modules/pino/test/browser-is-level-enabled.test.js +101 -0
  209. package/node_modules/pino/test/browser-levels.test.js +241 -0
  210. package/node_modules/pino/test/browser-redaction.test.js +264 -0
  211. package/node_modules/pino/test/browser-serializers.test.js +352 -0
  212. package/node_modules/pino/test/browser-set-bindings.test.js +99 -0
  213. package/node_modules/pino/test/browser-timestamp.test.js +88 -0
  214. package/node_modules/pino/test/browser-transmit.test.js +417 -0
  215. package/node_modules/pino/test/browser.test.js +698 -0
  216. package/node_modules/pino/test/caller.test.js +20 -0
  217. package/node_modules/pino/test/complex-objects.test.js +36 -0
  218. package/node_modules/pino/test/crlf.test.js +34 -0
  219. package/node_modules/pino/test/custom-levels.test.js +267 -0
  220. package/node_modules/pino/test/diagnostics.test.js +107 -0
  221. package/node_modules/pino/test/error-key.test.js +37 -0
  222. package/node_modules/pino/test/error.test.js +403 -0
  223. package/node_modules/pino/test/escaping.test.js +110 -0
  224. package/node_modules/pino/test/esm/esm.mjs +14 -0
  225. package/node_modules/pino/test/esm/index.test.js +21 -0
  226. package/node_modules/pino/test/esm/named-exports.mjs +29 -0
  227. package/node_modules/pino/test/exit.test.js +79 -0
  228. package/node_modules/pino/test/fixtures/broken-pipe/basic.js +9 -0
  229. package/node_modules/pino/test/fixtures/broken-pipe/destination.js +10 -0
  230. package/node_modules/pino/test/fixtures/broken-pipe/syncfalse.js +12 -0
  231. package/node_modules/pino/test/fixtures/caller-loop.js +6 -0
  232. package/node_modules/pino/test/fixtures/console-transport.js +13 -0
  233. package/node_modules/pino/test/fixtures/crashing-transport.js +13 -0
  234. package/node_modules/pino/test/fixtures/default-exit.js +8 -0
  235. package/node_modules/pino/test/fixtures/destination-exit.js +8 -0
  236. package/node_modules/pino/test/fixtures/eval/index.js +13 -0
  237. package/node_modules/pino/test/fixtures/eval/node_modules/14-files.js +3 -0
  238. package/node_modules/pino/test/fixtures/eval/node_modules/2-files.js +3 -0
  239. package/node_modules/pino/test/fixtures/eval/node_modules/file1.js +5 -0
  240. package/node_modules/pino/test/fixtures/eval/node_modules/file10.js +5 -0
  241. package/node_modules/pino/test/fixtures/eval/node_modules/file11.js +5 -0
  242. package/node_modules/pino/test/fixtures/eval/node_modules/file12.js +5 -0
  243. package/node_modules/pino/test/fixtures/eval/node_modules/file13.js +5 -0
  244. package/node_modules/pino/test/fixtures/eval/node_modules/file14.js +11 -0
  245. package/node_modules/pino/test/fixtures/eval/node_modules/file2.js +5 -0
  246. package/node_modules/pino/test/fixtures/eval/node_modules/file3.js +5 -0
  247. package/node_modules/pino/test/fixtures/eval/node_modules/file4.js +5 -0
  248. package/node_modules/pino/test/fixtures/eval/node_modules/file5.js +5 -0
  249. package/node_modules/pino/test/fixtures/eval/node_modules/file6.js +5 -0
  250. package/node_modules/pino/test/fixtures/eval/node_modules/file7.js +5 -0
  251. package/node_modules/pino/test/fixtures/eval/node_modules/file8.js +5 -0
  252. package/node_modules/pino/test/fixtures/eval/node_modules/file9.js +5 -0
  253. package/node_modules/pino/test/fixtures/noop-transport.js +10 -0
  254. package/node_modules/pino/test/fixtures/pretty/null-prototype.js +8 -0
  255. package/node_modules/pino/test/fixtures/stdout-hack-protection.js +11 -0
  256. package/node_modules/pino/test/fixtures/syncfalse-child.js +6 -0
  257. package/node_modules/pino/test/fixtures/syncfalse-exit.js +9 -0
  258. package/node_modules/pino/test/fixtures/syncfalse-flush-exit.js +10 -0
  259. package/node_modules/pino/test/fixtures/syncfalse.js +6 -0
  260. package/node_modules/pino/test/fixtures/syntax-error-esm.mjs +2 -0
  261. package/node_modules/pino/test/fixtures/to-file-transport-with-transform.js +20 -0
  262. package/node_modules/pino/test/fixtures/to-file-transport.js +13 -0
  263. package/node_modules/pino/test/fixtures/to-file-transport.mjs +8 -0
  264. package/node_modules/pino/test/fixtures/transport/index.js +12 -0
  265. package/node_modules/pino/test/fixtures/transport/package.json +5 -0
  266. package/node_modules/pino/test/fixtures/transport-exit-immediately-with-async-dest.js +16 -0
  267. package/node_modules/pino/test/fixtures/transport-exit-immediately.js +11 -0
  268. package/node_modules/pino/test/fixtures/transport-exit-on-ready.js +12 -0
  269. package/node_modules/pino/test/fixtures/transport-invalid-node-options.js +26 -0
  270. package/node_modules/pino/test/fixtures/transport-main.js +9 -0
  271. package/node_modules/pino/test/fixtures/transport-many-lines.js +29 -0
  272. package/node_modules/pino/test/fixtures/transport-preload-main.mjs +13 -0
  273. package/node_modules/pino/test/fixtures/transport-preload.mjs +13 -0
  274. package/node_modules/pino/test/fixtures/transport-string-stdout.js +9 -0
  275. package/node_modules/pino/test/fixtures/transport-transform.js +21 -0
  276. package/node_modules/pino/test/fixtures/transport-uses-pino-config.js +33 -0
  277. package/node_modules/pino/test/fixtures/transport-with-on-exit.js +12 -0
  278. package/node_modules/pino/test/fixtures/transport-worker-data.js +19 -0
  279. package/node_modules/pino/test/fixtures/transport-worker-name.js +24 -0
  280. package/node_modules/pino/test/fixtures/transport-worker.js +15 -0
  281. package/node_modules/pino/test/fixtures/transport-wrong-export-type.js +3 -0
  282. package/node_modules/pino/test/fixtures/ts/to-file-transport-native.mts +15 -0
  283. package/node_modules/pino/test/fixtures/ts/to-file-transport-with-transform.ts +18 -0
  284. package/node_modules/pino/test/fixtures/ts/to-file-transport.ts +11 -0
  285. package/node_modules/pino/test/fixtures/ts/transpile.cjs +36 -0
  286. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately-with-async-dest.ts +15 -0
  287. package/node_modules/pino/test/fixtures/ts/transport-exit-immediately.ts +10 -0
  288. package/node_modules/pino/test/fixtures/ts/transport-exit-on-ready.ts +11 -0
  289. package/node_modules/pino/test/fixtures/ts/transport-main.ts +8 -0
  290. package/node_modules/pino/test/fixtures/ts/transport-string-stdout.ts +8 -0
  291. package/node_modules/pino/test/fixtures/ts/transport-worker.ts +14 -0
  292. package/node_modules/pino/test/formatters.test.js +364 -0
  293. package/node_modules/pino/test/helper.d.ts +4 -0
  294. package/node_modules/pino/test/helper.js +159 -0
  295. package/node_modules/pino/test/hooks.test.js +114 -0
  296. package/node_modules/pino/test/http.test.js +214 -0
  297. package/node_modules/pino/test/internals/version.test.js +17 -0
  298. package/node_modules/pino/test/is-level-enabled.test.js +179 -0
  299. package/node_modules/pino/test/jest/basic.spec.js +10 -0
  300. package/node_modules/pino/test/levels.test.js +810 -0
  301. package/node_modules/pino/test/metadata.test.js +120 -0
  302. package/node_modules/pino/test/mixin-merge-strategy.test.js +57 -0
  303. package/node_modules/pino/test/mixin.test.js +241 -0
  304. package/node_modules/pino/test/multistream.test.js +793 -0
  305. package/node_modules/pino/test/redact.test.js +923 -0
  306. package/node_modules/pino/test/serializers.test.js +257 -0
  307. package/node_modules/pino/test/smoke.js +59 -0
  308. package/node_modules/pino/test/stdout-protection.test.js +41 -0
  309. package/node_modules/pino/test/syncfalse.test.js +186 -0
  310. package/node_modules/pino/test/timestamp-nano.test.js +37 -0
  311. package/node_modules/pino/test/timestamp.test.js +124 -0
  312. package/node_modules/pino/test/transport/big.test.js +42 -0
  313. package/node_modules/pino/test/transport/bundlers-support.test.js +99 -0
  314. package/node_modules/pino/test/transport/caller.test.js +24 -0
  315. package/node_modules/pino/test/transport/core.test.js +818 -0
  316. package/node_modules/pino/test/transport/core.transpiled.test.ts +114 -0
  317. package/node_modules/pino/test/transport/crash.test.js +36 -0
  318. package/node_modules/pino/test/transport/module-link.test.js +241 -0
  319. package/node_modules/pino/test/transport/native-type-stripping.test.mjs +151 -0
  320. package/node_modules/pino/test/transport/node-options.test.js +116 -0
  321. package/node_modules/pino/test/transport/pipeline.test.js +137 -0
  322. package/node_modules/pino/test/transport/preload.test.js +54 -0
  323. package/node_modules/pino/test/transport/repl.test.js +15 -0
  324. package/node_modules/pino/test/transport/sync-false.test.js +79 -0
  325. package/node_modules/pino/test/transport/sync-true.test.js +57 -0
  326. package/node_modules/pino/test/transport/targets.test.js +48 -0
  327. package/node_modules/pino/test/transport/uses-pino-config.test.js +166 -0
  328. package/node_modules/pino/test/transport-stream.test.js +40 -0
  329. package/node_modules/pino/test/types/pino-import.tst.cts +30 -0
  330. package/node_modules/pino/test/types/pino-import.tst.js +73 -0
  331. package/node_modules/pino/test/types/pino-multistream.tst.ts +49 -0
  332. package/node_modules/pino/test/types/pino-top-export.tst.ts +32 -0
  333. package/node_modules/pino/test/types/pino-transport.tst.ts +171 -0
  334. package/node_modules/pino/test/types/pino-type-only.tst.ts +77 -0
  335. package/node_modules/pino/test/types/pino.ts +98 -0
  336. package/node_modules/pino/test/types/pino.tst.ts +681 -0
  337. package/node_modules/pino/test/types/tsconfig.json +10 -0
  338. package/node_modules/pino/tsconfig.json +14 -0
  339. package/node_modules/pino-pretty/.borp.yaml +6 -0
  340. package/node_modules/pino-pretty/.editorconfig +13 -0
  341. package/node_modules/pino-pretty/.github/dependabot.yml +13 -0
  342. package/node_modules/pino-pretty/.github/workflows/ci.yml +83 -0
  343. package/node_modules/pino-pretty/LICENSE +21 -0
  344. package/node_modules/pino-pretty/Readme.md +425 -0
  345. package/node_modules/pino-pretty/SECURITY.md +146 -0
  346. package/node_modules/pino-pretty/benchmark.js +105 -0
  347. package/node_modules/pino-pretty/bin.js +113 -0
  348. package/node_modules/pino-pretty/demo.png +0 -0
  349. package/node_modules/pino-pretty/docs/help.md +24 -0
  350. package/node_modules/pino-pretty/eslint.config.js +5 -0
  351. package/node_modules/pino-pretty/help/help.txt +68 -0
  352. package/node_modules/pino-pretty/index.d.ts +227 -0
  353. package/node_modules/pino-pretty/index.js +234 -0
  354. package/node_modules/pino-pretty/lib/colors.js +134 -0
  355. package/node_modules/pino-pretty/lib/colors.test.js +132 -0
  356. package/node_modules/pino-pretty/lib/constants.js +55 -0
  357. package/node_modules/pino-pretty/lib/pretty.js +171 -0
  358. package/node_modules/pino-pretty/lib/utils/build-safe-sonic-boom.js +69 -0
  359. package/node_modules/pino-pretty/lib/utils/build-safe-sonic-boom.test.js +84 -0
  360. package/node_modules/pino-pretty/lib/utils/create-date.js +26 -0
  361. package/node_modules/pino-pretty/lib/utils/create-date.test.js +20 -0
  362. package/node_modules/pino-pretty/lib/utils/delete-log-property.js +28 -0
  363. package/node_modules/pino-pretty/lib/utils/delete-log-property.test.js +31 -0
  364. package/node_modules/pino-pretty/lib/utils/filter-log.js +99 -0
  365. package/node_modules/pino-pretty/lib/utils/filter-log.test.js +265 -0
  366. package/node_modules/pino-pretty/lib/utils/format-time.js +66 -0
  367. package/node_modules/pino-pretty/lib/utils/format-time.test.js +71 -0
  368. package/node_modules/pino-pretty/lib/utils/get-level-label-data.js +29 -0
  369. package/node_modules/pino-pretty/lib/utils/get-property-value.js +30 -0
  370. package/node_modules/pino-pretty/lib/utils/get-property-value.test.js +31 -0
  371. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-names-opts.js +38 -0
  372. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-names-opts.test.js +45 -0
  373. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-opts.js +39 -0
  374. package/node_modules/pino-pretty/lib/utils/handle-custom-levels-opts.test.js +47 -0
  375. package/node_modules/pino-pretty/lib/utils/index.js +108 -0
  376. package/node_modules/pino-pretty/lib/utils/index.test.js +37 -0
  377. package/node_modules/pino-pretty/lib/utils/interpret-conditionals.js +41 -0
  378. package/node_modules/pino-pretty/lib/utils/interpret-conditionals.test.js +84 -0
  379. package/node_modules/pino-pretty/lib/utils/is-object.js +7 -0
  380. package/node_modules/pino-pretty/lib/utils/is-object.test.js +10 -0
  381. package/node_modules/pino-pretty/lib/utils/is-valid-date.js +14 -0
  382. package/node_modules/pino-pretty/lib/utils/is-valid-date.test.js +16 -0
  383. package/node_modules/pino-pretty/lib/utils/join-lines-with-indentation.js +29 -0
  384. package/node_modules/pino-pretty/lib/utils/join-lines-with-indentation.test.js +16 -0
  385. package/node_modules/pino-pretty/lib/utils/noop.js +3 -0
  386. package/node_modules/pino-pretty/lib/utils/noop.test.js +12 -0
  387. package/node_modules/pino-pretty/lib/utils/parse-factory-options.js +171 -0
  388. package/node_modules/pino-pretty/lib/utils/prettify-error-log.js +76 -0
  389. package/node_modules/pino-pretty/lib/utils/prettify-error-log.test.js +143 -0
  390. package/node_modules/pino-pretty/lib/utils/prettify-error.js +54 -0
  391. package/node_modules/pino-pretty/lib/utils/prettify-error.test.js +25 -0
  392. package/node_modules/pino-pretty/lib/utils/prettify-level.js +41 -0
  393. package/node_modules/pino-pretty/lib/utils/prettify-level.test.js +70 -0
  394. package/node_modules/pino-pretty/lib/utils/prettify-message.js +65 -0
  395. package/node_modules/pino-pretty/lib/utils/prettify-message.test.js +287 -0
  396. package/node_modules/pino-pretty/lib/utils/prettify-metadata.js +75 -0
  397. package/node_modules/pino-pretty/lib/utils/prettify-metadata.test.js +170 -0
  398. package/node_modules/pino-pretty/lib/utils/prettify-object.js +115 -0
  399. package/node_modules/pino-pretty/lib/utils/prettify-object.test.js +217 -0
  400. package/node_modules/pino-pretty/lib/utils/prettify-time.js +43 -0
  401. package/node_modules/pino-pretty/lib/utils/prettify-time.test.js +264 -0
  402. package/node_modules/pino-pretty/lib/utils/split-property-key.js +49 -0
  403. package/node_modules/pino-pretty/lib/utils/split-property-key.test.js +29 -0
  404. package/node_modules/pino-pretty/lib/utils/strip-unsafe-control-chars.js +18 -0
  405. package/node_modules/pino-pretty/lib/utils/strip-unsafe-control-chars.test.js +9 -0
  406. package/node_modules/pino-pretty/package.json +64 -0
  407. package/node_modules/pino-pretty/test/basic.test.js +1305 -0
  408. package/node_modules/pino-pretty/test/boolean-options.test.js +228 -0
  409. package/node_modules/pino-pretty/test/cli-rc.test.js +275 -0
  410. package/node_modules/pino-pretty/test/cli.test.js +360 -0
  411. package/node_modules/pino-pretty/test/crlf.test.js +33 -0
  412. package/node_modules/pino-pretty/test/error-objects.test.js +494 -0
  413. package/node_modules/pino-pretty/test/example/example.js +33 -0
  414. package/node_modules/pino-pretty/test/helper.js +19 -0
  415. package/node_modules/pino-pretty/test/types/exports.tst.ts +15 -0
  416. package/node_modules/pino-pretty/test/types/pino-pretty.tst.ts +140 -0
  417. package/node_modules/pino-pretty/test/types/tsconfig.json +9 -0
  418. package/package.json +12 -5
  419. package/lib/cli/commands/init.d.ts +0 -1
  420. package/lib/cli/commands/init.js +0 -8
  421. package/node_modules/@types/node/globals.global.d.ts +0 -1
@@ -0,0 +1,56 @@
1
+ 'use strict'
2
+
3
+ const { realImport, realRequire } = require('real-require')
4
+
5
+ module.exports = loadTransportStreamBuilder
6
+
7
+ /**
8
+ * Loads & returns a function to build transport streams
9
+ * @param {string} target
10
+ * @returns {Promise<function(object): Promise<import('node:stream').Writable>>}
11
+ * @throws {Error} In case the target module does not export a function
12
+ */
13
+ async function loadTransportStreamBuilder (target) {
14
+ let fn
15
+ try {
16
+ const toLoad = target.startsWith('file://') ? target : 'file://' + target
17
+
18
+ if (toLoad.endsWith('.ts') || toLoad.endsWith('.cts')) {
19
+ // TODO: add support for the TSM modules loader ( https://github.com/lukeed/tsm ).
20
+ if (process[Symbol.for('ts-node.register.instance')]) {
21
+ realRequire('ts-node/register')
22
+ } else if (process.env && process.env.TS_NODE_DEV) {
23
+ realRequire('ts-node-dev')
24
+ }
25
+ // TODO: Support ES imports once tsc, tap & ts-node provide better compatibility guarantees.
26
+ fn = realRequire(decodeURIComponent(target))
27
+ } else {
28
+ fn = (await realImport(toLoad))
29
+ }
30
+ } catch (error) {
31
+ // See this PR for details: https://github.com/pinojs/thread-stream/pull/34
32
+ if ((error.code === 'ENOTDIR' || error.code === 'ERR_MODULE_NOT_FOUND')) {
33
+ fn = realRequire(target)
34
+ } else if (error.code === undefined || error.code === 'ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING') {
35
+ // When bundled with pkg, an undefined error is thrown when called with realImport
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
+ }
43
+ } else {
44
+ throw error
45
+ }
46
+ }
47
+
48
+ // Depending on how the default export is performed, and on how the code is
49
+ // transpiled, we may find cases of two nested "default" objects.
50
+ // See https://github.com/pinojs/pino/issues/1243#issuecomment-982774762
51
+ if (typeof fn === 'object') fn = fn.default
52
+ if (typeof fn === 'object') fn = fn.default
53
+ if (typeof fn !== 'function') throw Error('exported worker is not a function')
54
+
55
+ return fn
56
+ }
@@ -0,0 +1,302 @@
1
+ 'use strict'
2
+
3
+ const { createRequire } = require('module')
4
+ const { existsSync } = require('node:fs')
5
+ const getCallers = require('./caller')
6
+ const { join, isAbsolute, sep } = require('node:path')
7
+ const { fileURLToPath } = require('node:url')
8
+ const sleep = require('atomic-sleep')
9
+ const onExit = require('on-exit-leak-free')
10
+ const ThreadStream = require('thread-stream')
11
+
12
+ const { transportUsesMultistreamSym } = require('./symbols')
13
+
14
+ function setupOnExit (stream) {
15
+ // This is leak free, it does not leave event handlers
16
+ onExit.register(stream, autoEnd)
17
+ onExit.registerBeforeExit(stream, flush)
18
+
19
+ stream.on('close', function () {
20
+ onExit.unregister(stream)
21
+ })
22
+ }
23
+
24
+ // Check if preload flags exist in execArgv.
25
+ // During preload phase (require.main undefined), we pass empty execArgv to prevent infinite worker spawning.
26
+ // We don't try to filter and pass other flags because many (like --stack-trace-limit, --tls-cipher-list)
27
+ // aren't valid for worker threads and would cause ERR_WORKER_INVALID_EXEC_ARGV.
28
+ function hasPreloadFlags () {
29
+ const execArgv = process.execArgv
30
+ for (let i = 0; i < execArgv.length; i++) {
31
+ const arg = execArgv[i]
32
+ if (arg === '--import' || arg === '--require' || arg === '-r') {
33
+ return true
34
+ }
35
+ if (arg.startsWith('--import=') || arg.startsWith('--require=') || arg.startsWith('-r=')) {
36
+ return true
37
+ }
38
+ }
39
+ return false
40
+ }
41
+
42
+ function sanitizeNodeOptions (nodeOptions) {
43
+ const tokens = nodeOptions.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g)
44
+ if (!tokens) {
45
+ return nodeOptions
46
+ }
47
+
48
+ const sanitized = []
49
+ let changed = false
50
+
51
+ for (let i = 0; i < tokens.length; i++) {
52
+ const token = tokens[i]
53
+
54
+ if (token === '--require' || token === '-r' || token === '--import') {
55
+ const next = tokens[i + 1]
56
+ if (next && shouldDropPreload(next)) {
57
+ changed = true
58
+ i++
59
+ continue
60
+ }
61
+
62
+ sanitized.push(token)
63
+ if (next) {
64
+ sanitized.push(next)
65
+ i++
66
+ }
67
+ continue
68
+ }
69
+
70
+ if (token.startsWith('--require=') || token.startsWith('-r=') || token.startsWith('--import=')) {
71
+ const value = token.slice(token.indexOf('=') + 1)
72
+ if (shouldDropPreload(value)) {
73
+ changed = true
74
+ continue
75
+ }
76
+ }
77
+
78
+ sanitized.push(token)
79
+ }
80
+
81
+ return changed ? sanitized.join(' ') : nodeOptions
82
+ }
83
+
84
+ function shouldDropPreload (value) {
85
+ const unquoted = stripQuotes(value)
86
+ if (!unquoted) {
87
+ return false
88
+ }
89
+
90
+ let path = unquoted
91
+ if (path.startsWith('file://')) {
92
+ try {
93
+ path = fileURLToPath(path)
94
+ } catch {
95
+ return false
96
+ }
97
+ }
98
+
99
+ return isAbsolute(path) && !existsSync(path)
100
+ }
101
+
102
+ function stripQuotes (value) {
103
+ const first = value[0]
104
+ const last = value[value.length - 1]
105
+
106
+ if ((first === '"' && last === '"') || (first === "'" && last === "'")) {
107
+ return value.slice(1, -1)
108
+ }
109
+
110
+ return value
111
+ }
112
+
113
+ function buildStream (filename, workerData, workerOpts, sync, name) {
114
+ // When pino is loaded during a preload phase (via --import or --require),
115
+ // pass empty execArgv to prevent infinite spawning. Each worker would
116
+ // otherwise re-run the preload, creating another transport.
117
+ if (!workerOpts.execArgv && hasPreloadFlags() && require.main === undefined) {
118
+ workerOpts = {
119
+ ...workerOpts,
120
+ execArgv: []
121
+ }
122
+ }
123
+
124
+ if (!workerOpts.env && process.env.NODE_OPTIONS) {
125
+ const nodeOptions = sanitizeNodeOptions(process.env.NODE_OPTIONS)
126
+ if (nodeOptions !== process.env.NODE_OPTIONS) {
127
+ workerOpts = {
128
+ ...workerOpts,
129
+ env: {
130
+ ...process.env,
131
+ NODE_OPTIONS: nodeOptions
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ workerOpts = { ...workerOpts, name }
138
+
139
+ const stream = new ThreadStream({
140
+ filename,
141
+ workerData,
142
+ workerOpts,
143
+ sync
144
+ })
145
+
146
+ stream.on('ready', onReady)
147
+ stream.on('close', function () {
148
+ process.removeListener('exit', onExit)
149
+ })
150
+
151
+ process.on('exit', onExit)
152
+
153
+ function onReady () {
154
+ process.removeListener('exit', onExit)
155
+ stream.unref()
156
+
157
+ if (workerOpts.autoEnd !== false) {
158
+ setupOnExit(stream)
159
+ }
160
+ }
161
+
162
+ function onExit () {
163
+ /* istanbul ignore next */
164
+ if (stream.closed) {
165
+ return
166
+ }
167
+ stream.flushSync()
168
+ // Apparently there is a very sporadic race condition
169
+ // that in certain OS would prevent the messages to be flushed
170
+ // because the thread might not have been created still.
171
+ // Unfortunately we need to sleep(100) in this case.
172
+ sleep(100)
173
+ stream.end()
174
+ }
175
+
176
+ return stream
177
+ }
178
+
179
+ function autoEnd (stream) {
180
+ stream.ref()
181
+ stream.flushSync()
182
+ stream.end()
183
+ stream.once('close', function () {
184
+ stream.unref()
185
+ })
186
+ }
187
+
188
+ function flush (stream) {
189
+ stream.flushSync()
190
+ }
191
+
192
+ function transport (fullOptions) {
193
+ const { pipeline, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions
194
+
195
+ const options = {
196
+ ...fullOptions.options
197
+ }
198
+
199
+ let usesMultistream = false
200
+
201
+ // Backwards compatibility
202
+ const callers = typeof caller === 'string' ? [caller] : caller
203
+
204
+ // This will be eventually modified by bundlers
205
+ const bundlerOverrides = (typeof globalThis === 'object' &&
206
+ Object.prototype.hasOwnProperty.call(globalThis, '__bundlerPathsOverrides') &&
207
+ globalThis.__bundlerPathsOverrides &&
208
+ typeof globalThis.__bundlerPathsOverrides === 'object')
209
+ ? globalThis.__bundlerPathsOverrides
210
+ : Object.create(null)
211
+
212
+ let target = fullOptions.target
213
+
214
+ if (target && targets) {
215
+ throw new Error('only one of target or targets can be specified')
216
+ }
217
+
218
+ if (targets) {
219
+ target = bundlerOverrides['pino-worker'] || join(__dirname, 'worker.js')
220
+ options.targets = targets.filter(dest => dest.target).map((dest) => {
221
+ return {
222
+ ...dest,
223
+ target: fixTarget(dest.target)
224
+ }
225
+ })
226
+ options.pipelines = targets.filter(dest => dest.pipeline).map((dest) => {
227
+ return dest.pipeline.map((t) => {
228
+ return {
229
+ ...t,
230
+ level: dest.level, // duplicate the pipeline `level` property defined in the upper level
231
+ target: fixTarget(t.target)
232
+ }
233
+ })
234
+ })
235
+
236
+ const targetsHaveLevel = options.targets.some(t => t.level != null)
237
+ const pipelinesHaveLevel = options.pipelines.some(p => p.some(t => t.level != null))
238
+ usesMultistream = options.targets.length + options.pipelines.length > 1 ||
239
+ targetsHaveLevel || pipelinesHaveLevel
240
+ } else if (pipeline) {
241
+ target = bundlerOverrides['pino-worker'] || join(__dirname, 'worker.js')
242
+ options.pipelines = [pipeline.map((dest) => {
243
+ return {
244
+ ...dest,
245
+ target: fixTarget(dest.target)
246
+ }
247
+ })]
248
+ }
249
+
250
+ if (levels) {
251
+ options.levels = levels
252
+ }
253
+
254
+ if (dedupe) {
255
+ options.dedupe = dedupe
256
+ }
257
+
258
+ options.pinoWillSendConfig = true
259
+
260
+ const name = (targets || pipeline) ? 'pino.transport' : target
261
+ const stream = buildStream(fixTarget(target), options, worker, sync, name)
262
+ if (usesMultistream) {
263
+ stream[transportUsesMultistreamSym] = true
264
+ }
265
+ return stream
266
+
267
+ function fixTarget (origin) {
268
+ origin = bundlerOverrides[origin] || origin
269
+
270
+ if (isAbsolute(origin) || origin.indexOf('file://') === 0) {
271
+ return origin
272
+ }
273
+
274
+ if (origin === 'pino/file') {
275
+ return join(__dirname, '..', 'file.js')
276
+ }
277
+
278
+ let fixTarget
279
+
280
+ for (const filePath of callers) {
281
+ try {
282
+ const context = filePath === 'node:repl'
283
+ ? process.cwd() + sep
284
+ : filePath
285
+
286
+ fixTarget = createRequire(context).resolve(origin)
287
+ break
288
+ } catch (err) {
289
+ // Silent catch
290
+ continue
291
+ }
292
+ }
293
+
294
+ if (!fixTarget) {
295
+ throw new Error(`unable to determine transport target for "${origin}"`)
296
+ }
297
+
298
+ return fixTarget
299
+ }
300
+ }
301
+
302
+ module.exports = transport
@@ -0,0 +1,197 @@
1
+ 'use strict'
2
+
3
+ const EE = require('node:events')
4
+ const { pipeline, PassThrough } = require('node:stream')
5
+ const pino = require('../pino.js')
6
+ const build = require('pino-abstract-transport')
7
+ const loadTransportStreamBuilder = require('./transport-stream')
8
+
9
+ // This file is not checked by the code coverage tool,
10
+ // as it is not reliable.
11
+
12
+ /* istanbul ignore file */
13
+
14
+ /*
15
+ * > Multiple targets & pipelines
16
+ *
17
+ *
18
+ * ┌─────────────────────────────────────────────────┐ ┌─────┐
19
+ * │ │ │ p │
20
+ * │ │ │ i │
21
+ * │ target │ │ n │
22
+ * │ │ ────────────────────────────────┼────┤ o │
23
+ * │ targets │ target │ │ . │
24
+ * │ ────────────► │ ────────────────────────────────┼────┤ m │ source
25
+ * │ │ target │ │ u │ │
26
+ * │ │ ────────────────────────────────┼────┤ l │ │write
27
+ * │ │ │ │ t │ ▼
28
+ * │ │ pipeline ┌───────────────┐ │ │ i │ ┌────────┐
29
+ * │ │ ──────────► │ PassThrough ├───┼────┤ s ├──────┤ │
30
+ * │ │ └───────────────┘ │ │ t │ write│ Thread │
31
+ * │ │ │ │ r │◄─────┤ Stream │
32
+ * │ │ pipeline ┌───────────────┐ │ │ e │ │ │
33
+ * │ │ ──────────► │ PassThrough ├───┼────┤ a │ └────────┘
34
+ * │ └───────────────┘ │ │ m │
35
+ * │ │ │ │
36
+ * └─────────────────────────────────────────────────┘ └─────┘
37
+ *
38
+ *
39
+ *
40
+ * > One single pipeline or target
41
+ *
42
+ *
43
+ * source
44
+ * │
45
+ * ┌────────────────────────────────────────────────┐ │write
46
+ * │ │ ▼
47
+ * │ │ ┌────────┐
48
+ * │ targets │ target │ │ │
49
+ * │ ────────────► │ ──────────────────────────────┤ │ │
50
+ * │ │ │ │ │
51
+ * │ ├──────┤ │
52
+ * │ │ │ │
53
+ * │ │ │ │
54
+ * │ OR │ │ │
55
+ * │ │ │ │
56
+ * │ │ │ │
57
+ * │ ┌──────────────┐ │ │ │
58
+ * │ targets │ pipeline │ │ │ │ Thread │
59
+ * │ ────────────► │ ────────────►│ PassThrough ├─┤ │ Stream │
60
+ * │ │ │ │ │ │ │
61
+ * │ └──────────────┘ │ │ │
62
+ * │ │ │ │
63
+ * │ OR │ write│ │
64
+ * │ │◄─────┤ │
65
+ * │ │ │ │
66
+ * │ ┌──────────────┐ │ │ │
67
+ * │ pipeline │ │ │ │ │
68
+ * │ ──────────────►│ PassThrough ├────────────────┤ │ │
69
+ * │ │ │ │ │ │
70
+ * │ └──────────────┘ │ └────────┘
71
+ * │ │
72
+ * │ │
73
+ * └────────────────────────────────────────────────┘
74
+ */
75
+
76
+ module.exports = async function ({ targets, pipelines, levels, dedupe }) {
77
+ const targetStreams = []
78
+
79
+ // Process targets
80
+ if (targets && targets.length) {
81
+ targets = await Promise.all(targets.map(async (t) => {
82
+ const fn = await loadTransportStreamBuilder(t.target)
83
+ const stream = await fn(t.options)
84
+ return {
85
+ level: t.level,
86
+ stream
87
+ }
88
+ }))
89
+
90
+ targetStreams.push(...targets)
91
+ }
92
+
93
+ // Process pipelines
94
+ if (pipelines && pipelines.length) {
95
+ pipelines = await Promise.all(
96
+ pipelines.map(async (p) => {
97
+ let level
98
+ const pipeDests = await Promise.all(
99
+ p.map(async (t) => {
100
+ // level assigned to pipeline is duplicated over all its targets, just store it
101
+ level = t.level
102
+ const fn = await loadTransportStreamBuilder(t.target)
103
+ const stream = await fn(t.options)
104
+ return stream
105
+ }
106
+ ))
107
+
108
+ return {
109
+ level,
110
+ stream: createPipeline(pipeDests)
111
+ }
112
+ })
113
+ )
114
+ targetStreams.push(...pipelines)
115
+ }
116
+
117
+ // Skip building the multistream step if either one single pipeline or target is defined and
118
+ // return directly the stream instance back to TreadStream.
119
+ // This is equivalent to define either:
120
+ //
121
+ // pino.transport({ target: ... })
122
+ //
123
+ // OR
124
+ //
125
+ // pino.transport({ pipeline: ... })
126
+ //
127
+ // When a `level` is set on the single target/pipeline, fall through to the
128
+ // multistream path so the per-target level filter is honored (#1996).
129
+ if (targetStreams.length === 1 && targetStreams[0].level == null) {
130
+ return targetStreams[0].stream
131
+ } else {
132
+ return build(process, {
133
+ parse: 'lines',
134
+ metadata: true,
135
+ close (err, cb) {
136
+ let expected = 0
137
+ for (const transport of targetStreams) {
138
+ expected++
139
+ transport.stream.on('close', closeCb)
140
+ transport.stream.end()
141
+ }
142
+
143
+ function closeCb () {
144
+ if (--expected === 0) {
145
+ cb(err)
146
+ }
147
+ }
148
+ }
149
+ })
150
+ }
151
+
152
+ // TODO: Why split2 was not used for pipelines?
153
+ function process (stream) {
154
+ const multi = pino.multistream(targetStreams, { levels, dedupe })
155
+ // TODO manage backpressure
156
+ stream.on('data', function (chunk) {
157
+ const { lastTime, lastMsg, lastObj, lastLevel } = this
158
+ multi.lastLevel = lastLevel
159
+ multi.lastTime = lastTime
160
+ multi.lastMsg = lastMsg
161
+ multi.lastObj = lastObj
162
+
163
+ // TODO handle backpressure
164
+ multi.write(chunk + '\n')
165
+ })
166
+ }
167
+
168
+ /**
169
+ * Creates a pipeline using the provided streams and return an instance of `PassThrough` stream
170
+ * as a source for the pipeline.
171
+ *
172
+ * @param {(TransformStream|WritableStream)[]} streams An array of streams.
173
+ * All intermediate streams in the array *MUST* be `Transform` streams and only the last one `Writable`.
174
+ * @returns A `PassThrough` stream instance representing the source stream of the pipeline
175
+ */
176
+ function createPipeline (streams) {
177
+ const ee = new EE()
178
+ const stream = new PassThrough({
179
+ autoDestroy: true,
180
+ destroy (_, cb) {
181
+ ee.on('error', cb)
182
+ ee.on('closed', cb)
183
+ }
184
+ })
185
+
186
+ pipeline(stream, ...streams, function (err) {
187
+ if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {
188
+ ee.emit('error', err)
189
+ return
190
+ }
191
+
192
+ ee.emit('closed')
193
+ })
194
+
195
+ return stream
196
+ }
197
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "pino",
3
+ "version": "10.4.0",
4
+ "description": "super fast, all natural json logger",
5
+ "main": "pino.js",
6
+ "type": "commonjs",
7
+ "types": "pino.d.ts",
8
+ "browser": "./browser.js",
9
+ "scripts": {
10
+ "borp": "borp --timeout 60000 --coverage --check-coverage --lines 95 --functions 95 --branches 95 --statements 95",
11
+ "docs": "docsify serve",
12
+ "browser-test": "airtap --local 8080 test/browser*test.js",
13
+ "lint": "eslint .",
14
+ "prepublishOnly": "node test/internals/version.test.js",
15
+ "test": "npm run lint && npm run transpile && npm run borp && jest test/jest && npm run test-types",
16
+ "test-ci": "npm run lint && npm run transpile && npm run borp && npm run test-types",
17
+ "test-ci-pnpm": "pnpm run lint && npm run transpile && borp --timeout 60000 && pnpm run test-types",
18
+ "test-ci-yarn-pnp": "yarn run lint && npm run transpile && borp --timeout 60000",
19
+ "test-types": "tsc && tstyche && ts-node test/types/pino.ts && attw --pack .",
20
+ "test:smoke": "node ./test/smoke.js",
21
+ "transpile": "node ./test/fixtures/ts/transpile.cjs",
22
+ "cov-ui": "tap --ts --coverage-report=html",
23
+ "bench": "node benchmarks/utils/runbench all",
24
+ "bench-basic": "node benchmarks/utils/runbench basic",
25
+ "bench-object": "node benchmarks/utils/runbench object",
26
+ "bench-deep-object": "node benchmarks/utils/runbench deep-object",
27
+ "bench-multi-arg": "node benchmarks/utils/runbench multi-arg",
28
+ "bench-long-string": "node benchmarks/utils/runbench long-string",
29
+ "bench-child": "node benchmarks/utils/runbench child",
30
+ "bench-child-child": "node benchmarks/utils/runbench child-child",
31
+ "bench-child-creation": "node benchmarks/utils/runbench child-creation",
32
+ "bench-formatters": "node benchmarks/utils/runbench formatters",
33
+ "update-bench-doc": "node benchmarks/utils/generate-benchmark-doc > docs/benchmarks.md"
34
+ },
35
+ "bin": {
36
+ "pino": "./bin.js"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/pinojs/pino.git"
41
+ },
42
+ "keywords": [
43
+ "fast",
44
+ "logger",
45
+ "stream",
46
+ "json"
47
+ ],
48
+ "author": "Matteo Collina <hello@matteocollina.com>",
49
+ "contributors": [
50
+ "David Mark Clements <huperekchuno@googlemail.com>",
51
+ "James Sumners <james.sumners@gmail.com>",
52
+ "Thomas Watson Steen <w@tson.dk> (https://twitter.com/wa7son)"
53
+ ],
54
+ "license": "MIT",
55
+ "bugs": {
56
+ "url": "https://github.com/pinojs/pino/issues"
57
+ },
58
+ "homepage": "https://getpino.io",
59
+ "devDependencies": {
60
+ "@arethetypeswrong/cli": "^0.18.1",
61
+ "@matteo.collina/tspl": "^0.2.0",
62
+ "@types/flush-write-stream": "^1.0.0",
63
+ "@types/node": "^25.0.3",
64
+ "airtap": "5.0.0",
65
+ "bole": "^6.0.7",
66
+ "borp": "^0.21.0",
67
+ "bunyan": "^1.8.14",
68
+ "debug": "^4.3.4",
69
+ "docsify-cli": "^5.0.0",
70
+ "eslint": "^9.37.0",
71
+ "eslint-plugin-import": "^2.26.0",
72
+ "eslint-plugin-n": "18.3.0",
73
+ "eslint-plugin-node": "^11.1.0",
74
+ "eslint-plugin-promise": "^7.3.0",
75
+ "execa": "^5.0.0",
76
+ "fastbench": "^1.0.1",
77
+ "fastify-tsconfig": "^3.0.0",
78
+ "flush-write-stream": "^2.0.0",
79
+ "import-fresh": "^3.2.1",
80
+ "jest": "^30.0.3",
81
+ "log": "^6.0.0",
82
+ "loglevel": "^1.6.7",
83
+ "neostandard": "^0.13.0",
84
+ "pino-pretty": "^13.0.0",
85
+ "proxyquire": "^2.1.3",
86
+ "pump": "^3.0.0",
87
+ "rimraf": "^6.0.1",
88
+ "semver": "^7.3.7",
89
+ "split2": "^4.0.0",
90
+ "steed": "^1.1.3",
91
+ "strip-ansi": "^6.0.0",
92
+ "tape": "^5.5.3",
93
+ "through2": "^5.0.10",
94
+ "ts-node": "^10.9.1",
95
+ "tstyche": "^7.1.0",
96
+ "typescript": "~6.0.2",
97
+ "winston": "^3.7.2"
98
+ },
99
+ "dependencies": {
100
+ "@pinojs/redact": "^0.4.0",
101
+ "atomic-sleep": "^1.0.0",
102
+ "on-exit-leak-free": "^2.1.0",
103
+ "pino-abstract-transport": "^3.0.0",
104
+ "pino-std-serializers": "^7.0.0",
105
+ "process-warning": "^5.0.0",
106
+ "quick-format-unescaped": "^4.0.3",
107
+ "real-require": "^1.0.0",
108
+ "safe-stable-stringify": "^2.3.1",
109
+ "sonic-boom": "^4.0.1",
110
+ "thread-stream": "^4.0.0"
111
+ }
112
+ }