@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,193 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../')
5
+ const bunyan = require('bunyan')
6
+ const bole = require('bole')('bench')
7
+ const winston = require('winston')
8
+ const fs = require('node:fs')
9
+ const dest = fs.createWriteStream('/dev/null')
10
+ const plogNodeStream = pino(dest)
11
+ delete require.cache[require.resolve('../')]
12
+ const plogDest = require('../')(pino.destination('/dev/null'))
13
+ delete require.cache[require.resolve('../')]
14
+ const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
15
+ delete require.cache[require.resolve('../')]
16
+
17
+ const deep = require('../package.json')
18
+ deep.deep = Object.assign({}, JSON.parse(JSON.stringify(deep)))
19
+ deep.deep.deep = Object.assign({}, JSON.parse(JSON.stringify(deep)))
20
+ deep.deep.deep.deep = Object.assign({}, JSON.parse(JSON.stringify(deep)))
21
+
22
+ const blog = bunyan.createLogger({
23
+ name: 'myapp',
24
+ streams: [{
25
+ level: 'trace',
26
+ stream: dest
27
+ }]
28
+ })
29
+
30
+ require('bole').output({
31
+ level: 'info',
32
+ stream: dest
33
+ }).setFastTime(true)
34
+
35
+ const chill = winston.createLogger({
36
+ transports: [
37
+ new winston.transports.Stream({
38
+ stream: fs.createWriteStream('/dev/null')
39
+ })
40
+ ]
41
+ })
42
+
43
+ const max = 10
44
+
45
+ const run = bench([
46
+ function benchBunyanInterpolate (cb) {
47
+ for (var i = 0; i < max; i++) {
48
+ blog.info('hello %s', 'world')
49
+ }
50
+ setImmediate(cb)
51
+ },
52
+ function benchWinstonInterpolate (cb) {
53
+ for (var i = 0; i < max; i++) {
54
+ chill.log('info', 'hello %s', 'world')
55
+ }
56
+ setImmediate(cb)
57
+ },
58
+ function benchBoleInterpolate (cb) {
59
+ for (var i = 0; i < max; i++) {
60
+ bole.info('hello %s', 'world')
61
+ }
62
+ setImmediate(cb)
63
+ },
64
+ function benchPinoInterpolate (cb) {
65
+ for (var i = 0; i < max; i++) {
66
+ plogDest.info('hello %s', 'world')
67
+ }
68
+ setImmediate(cb)
69
+ },
70
+ function benchPinoMinLengthInterpolate (cb) {
71
+ for (var i = 0; i < max; i++) {
72
+ plogMinLength.info('hello %s', 'world')
73
+ }
74
+ setImmediate(cb)
75
+ },
76
+ function benchPinoNodeStreamInterpolate (cb) {
77
+ for (var i = 0; i < max; i++) {
78
+ plogNodeStream.info('hello %s', 'world')
79
+ }
80
+ setImmediate(cb)
81
+ },
82
+ function benchBunyanInterpolateAll (cb) {
83
+ for (var i = 0; i < max; i++) {
84
+ blog.info('hello %s %j %d', 'world', { obj: true }, 4)
85
+ }
86
+ setImmediate(cb)
87
+ },
88
+
89
+ function benchWinstonInterpolateAll (cb) {
90
+ for (var i = 0; i < max; i++) {
91
+ chill.log('info', 'hello %s %j %d', 'world', { obj: true }, 4)
92
+ }
93
+ setImmediate(cb)
94
+ },
95
+ function benchBoleInterpolateAll (cb) {
96
+ for (var i = 0; i < max; i++) {
97
+ bole.info('hello %s %j %d', 'world', { obj: true }, 4)
98
+ }
99
+ setImmediate(cb)
100
+ },
101
+ function benchPinoInterpolateAll (cb) {
102
+ for (var i = 0; i < max; i++) {
103
+ plogDest.info('hello %s %j %d', 'world', { obj: true }, 4)
104
+ }
105
+ setImmediate(cb)
106
+ },
107
+ function benchPinoMinLengthInterpolateAll (cb) {
108
+ for (var i = 0; i < max; i++) {
109
+ plogMinLength.info('hello %s %j %d', 'world', { obj: true }, 4)
110
+ }
111
+ setImmediate(cb)
112
+ },
113
+ function benchPinoNodeStreamInterpolateAll (cb) {
114
+ for (var i = 0; i < max; i++) {
115
+ plogNodeStream.info('hello %s %j %d', 'world', { obj: true }, 4)
116
+ }
117
+ setImmediate(cb)
118
+ },
119
+ function benchBunyanInterpolateExtra (cb) {
120
+ for (var i = 0; i < max; i++) {
121
+ blog.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
122
+ }
123
+ setImmediate(cb)
124
+ },
125
+ function benchWinstonInterpolateExtra (cb) {
126
+ for (var i = 0; i < max; i++) {
127
+ chill.log('info', 'hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
128
+ }
129
+ setImmediate(cb)
130
+ },
131
+ function benchBoleInterpolateExtra (cb) {
132
+ for (var i = 0; i < max; i++) {
133
+ bole.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
134
+ }
135
+ setImmediate(cb)
136
+ },
137
+ function benchPinoInterpolateExtra (cb) {
138
+ for (var i = 0; i < max; i++) {
139
+ plogDest.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
140
+ }
141
+ setImmediate(cb)
142
+ },
143
+ function benchPinoMinLengthInterpolateExtra (cb) {
144
+ for (var i = 0; i < max; i++) {
145
+ plogMinLength.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
146
+ }
147
+ setImmediate(cb)
148
+ },
149
+ function benchPinoNodeStreamInterpolateExtra (cb) {
150
+ for (var i = 0; i < max; i++) {
151
+ plogNodeStream.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' })
152
+ }
153
+ setImmediate(cb)
154
+ },
155
+ function benchBunyanInterpolateDeep (cb) {
156
+ for (var i = 0; i < max; i++) {
157
+ blog.info('hello %j', deep)
158
+ }
159
+ setImmediate(cb)
160
+ },
161
+ function benchWinstonInterpolateDeep (cb) {
162
+ for (var i = 0; i < max; i++) {
163
+ chill.log('info', 'hello %j', deep)
164
+ }
165
+ setImmediate(cb)
166
+ },
167
+ function benchBoleInterpolateDeep (cb) {
168
+ for (var i = 0; i < max; i++) {
169
+ bole.info('hello %j', deep)
170
+ }
171
+ setImmediate(cb)
172
+ },
173
+ function benchPinoInterpolateDeep (cb) {
174
+ for (var i = 0; i < max; i++) {
175
+ plogDest.info('hello %j', deep)
176
+ }
177
+ setImmediate(cb)
178
+ },
179
+ function benchPinoMinLengthInterpolateDeep (cb) {
180
+ for (var i = 0; i < max; i++) {
181
+ plogMinLength.info('hello %j', deep)
182
+ }
183
+ setImmediate(cb)
184
+ },
185
+ function benchPinoNodeStreamInterpolateDeep (cb) {
186
+ for (var i = 0; i < max; i++) {
187
+ plogNodeStream.info('hello %j', deep)
188
+ }
189
+ setImmediate(cb)
190
+ }
191
+ ], 10000)
192
+
193
+ run(run)
@@ -0,0 +1,98 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const bunyan = require('bunyan')
5
+ const pino = require('../')
6
+ const fs = require('node:fs')
7
+ const dest = fs.createWriteStream('/dev/null')
8
+
9
+ const tenStreams = [
10
+ { stream: dest },
11
+ { stream: dest },
12
+ { stream: dest },
13
+ { stream: dest },
14
+ { stream: dest },
15
+ { level: 'debug', stream: dest },
16
+ { level: 'debug', stream: dest },
17
+ { level: 'trace', stream: dest },
18
+ { level: 'warn', stream: dest },
19
+ { level: 'fatal', stream: dest }
20
+ ]
21
+ const pinomsTen = pino({ level: 'debug' }, pino.multistream(tenStreams))
22
+
23
+ const fourStreams = [
24
+ { stream: dest },
25
+ { stream: dest },
26
+ { level: 'debug', stream: dest },
27
+ { level: 'trace', stream: dest }
28
+ ]
29
+ const pinomsFour = pino({ level: 'debug' }, pino.multistream(fourStreams))
30
+
31
+ const pinomsOne = pino({ level: 'info' }, pino.multistream(dest))
32
+ const blogOne = bunyan.createLogger({
33
+ name: 'myapp',
34
+ streams: [{ stream: dest }]
35
+ })
36
+
37
+ const blogTen = bunyan.createLogger({
38
+ name: 'myapp',
39
+ streams: tenStreams
40
+ })
41
+ const blogFour = bunyan.createLogger({
42
+ name: 'myapp',
43
+ streams: fourStreams
44
+ })
45
+
46
+ const max = 10
47
+ const run = bench([
48
+ function benchBunyanTen (cb) {
49
+ for (let i = 0; i < max; i++) {
50
+ blogTen.info('hello world')
51
+ blogTen.debug('hello world')
52
+ blogTen.trace('hello world')
53
+ blogTen.warn('hello world')
54
+ blogTen.fatal('hello world')
55
+ }
56
+ setImmediate(cb)
57
+ },
58
+ function benchPinoMSTen (cb) {
59
+ for (let i = 0; i < max; i++) {
60
+ pinomsTen.info('hello world')
61
+ pinomsTen.debug('hello world')
62
+ pinomsTen.trace('hello world')
63
+ pinomsTen.warn('hello world')
64
+ pinomsTen.fatal('hello world')
65
+ }
66
+ setImmediate(cb)
67
+ },
68
+ function benchBunyanFour (cb) {
69
+ for (let i = 0; i < max; i++) {
70
+ blogFour.info('hello world')
71
+ blogFour.debug('hello world')
72
+ blogFour.trace('hello world')
73
+ }
74
+ setImmediate(cb)
75
+ },
76
+ function benchPinoMSFour (cb) {
77
+ for (let i = 0; i < max; i++) {
78
+ pinomsFour.info('hello world')
79
+ pinomsFour.debug('hello world')
80
+ pinomsFour.trace('hello world')
81
+ }
82
+ setImmediate(cb)
83
+ },
84
+ function benchBunyanOne (cb) {
85
+ for (let i = 0; i < max; i++) {
86
+ blogOne.info('hello world')
87
+ }
88
+ setImmediate(cb)
89
+ },
90
+ function benchPinoMSOne (cb) {
91
+ for (let i = 0; i < max; i++) {
92
+ pinomsOne.info('hello world')
93
+ }
94
+ setImmediate(cb)
95
+ }
96
+ ], 10000)
97
+
98
+ run()
@@ -0,0 +1,82 @@
1
+ 'use strict'
2
+
3
+ const bench = require('fastbench')
4
+ const pino = require('../')
5
+ const bunyan = require('bunyan')
6
+ const bole = require('bole')('bench')
7
+ const winston = require('winston')
8
+ const fs = require('node:fs')
9
+ const dest = fs.createWriteStream('/dev/null')
10
+ const loglevel = require('./utils/wrap-log-level')(dest)
11
+ const plogNodeStream = pino(dest)
12
+ delete require.cache[require.resolve('../')]
13
+ const plogDest = require('../')(pino.destination('/dev/null'))
14
+ delete require.cache[require.resolve('../')]
15
+ const plogMinLength = require('../')(pino.destination({ dest: '/dev/null', sync: false, minLength: 4096 }))
16
+ const blog = bunyan.createLogger({
17
+ name: 'myapp',
18
+ streams: [{
19
+ level: 'trace',
20
+ stream: dest
21
+ }]
22
+ })
23
+ require('bole').output({
24
+ level: 'info',
25
+ stream: dest
26
+ }).setFastTime(true)
27
+ const chill = winston.createLogger({
28
+ transports: [
29
+ new winston.transports.Stream({
30
+ stream: fs.createWriteStream('/dev/null')
31
+ })
32
+ ]
33
+ })
34
+
35
+ const max = 10
36
+
37
+ const run = bench([
38
+ function benchBunyanObj (cb) {
39
+ for (var i = 0; i < max; i++) {
40
+ blog.info({ hello: 'world' })
41
+ }
42
+ setImmediate(cb)
43
+ },
44
+ function benchWinstonObj (cb) {
45
+ for (var i = 0; i < max; i++) {
46
+ chill.info({ hello: 'world' })
47
+ }
48
+ setImmediate(cb)
49
+ },
50
+ function benchBoleObj (cb) {
51
+ for (var i = 0; i < max; i++) {
52
+ bole.info({ hello: 'world' })
53
+ }
54
+ setImmediate(cb)
55
+ },
56
+ function benchLogLevelObject (cb) {
57
+ for (var i = 0; i < max; i++) {
58
+ loglevel.info({ hello: 'world' })
59
+ }
60
+ setImmediate(cb)
61
+ },
62
+ function benchPinoObj (cb) {
63
+ for (var i = 0; i < max; i++) {
64
+ plogDest.info({ hello: 'world' })
65
+ }
66
+ setImmediate(cb)
67
+ },
68
+ function benchPinoMinLengthObj (cb) {
69
+ for (var i = 0; i < max; i++) {
70
+ plogMinLength.info({ hello: 'world' })
71
+ }
72
+ setImmediate(cb)
73
+ },
74
+ function benchPinoNodeStreamObj (cb) {
75
+ for (var i = 0; i < max; i++) {
76
+ plogNodeStream.info({ hello: 'world' })
77
+ }
78
+ setImmediate(cb)
79
+ }
80
+ ], 10000)
81
+
82
+ run(run)
@@ -0,0 +1,36 @@
1
+ 'use strict'
2
+ const { join } = require('node:path')
3
+ const { execSync } = require('node:child_process')
4
+
5
+ const run = (type) => {
6
+ process.stderr.write(`benchmarking ${type}\n`)
7
+ return execSync(`node ${join(__dirname, 'runbench')} ${type} -q`)
8
+ }
9
+
10
+ console.log(`
11
+ # Benchmarks
12
+
13
+ \`pino.info('hello world')\`:
14
+
15
+ \`\`\`
16
+ ${run('basic')}
17
+ \`\`\`
18
+
19
+ \`pino.info({'hello': 'world'})\`:
20
+
21
+ \`\`\`
22
+ ${run('object')}
23
+ \`\`\`
24
+
25
+ \`pino.info(aBigDeeplyNestedObject)\`:
26
+
27
+ \`\`\`
28
+ ${run('deep-object')}
29
+ \`\`\`
30
+
31
+ \`pino.info('hello %s %j %d', 'world', {obj: true}, 4, {another: 'obj'})\`:
32
+
33
+ For a fair comparison, [LogLevel](http://npm.im/loglevel) was extended
34
+ to include a timestamp and [bole](http://npm.im/bole) had
35
+ \`fastTime\` mode switched on.
36
+ `)
@@ -0,0 +1,138 @@
1
+ 'use strict'
2
+
3
+ const { type, platform, arch, release, cpus } = require('node:os')
4
+ const { resolve, join } = require('node:path')
5
+ const spawn = require('node:child_process').spawn
6
+ const pump = require('pump')
7
+ const split = require('split2')
8
+ const through = require('through2')
9
+ const steed = require('steed')
10
+
11
+ function usage () {
12
+ console.log(`
13
+ Pino Benchmarks
14
+
15
+ To run a benchmark, specify which to run:
16
+
17
+ ・all ⁃ run all benchmarks (takes a while)
18
+ ・basic ⁃ log a simple string
19
+ ・object ⁃ logging a basic object
20
+ ・deep-object ⁃ logging a large object
21
+ ・multi-arg ⁃ multiple log method arguments
22
+ ・child ⁃ child from a parent
23
+ ・child-child ⁃ child from a child
24
+ ・child-creation ⁃ child constructor
25
+ ・formatters ⁃ difference between with or without formatters
26
+
27
+ Example:
28
+
29
+ node runbench basic
30
+ `)
31
+ }
32
+
33
+ if (!process.argv[2]) {
34
+ usage()
35
+ process.exit()
36
+ }
37
+
38
+ const quiet = process.argv[3] === '-q'
39
+
40
+ const selectedBenchmark = process.argv[2].toLowerCase()
41
+ const benchmarkDir = resolve(__dirname, '..')
42
+ const benchmarks = {
43
+ basic: 'basic.bench.js',
44
+ object: 'object.bench.js',
45
+ 'deep-object': 'deep-object.bench.js',
46
+ 'multi-arg': 'multi-arg.bench.js',
47
+ 'long-string': 'long-string.bench.js',
48
+ child: 'child.bench.js',
49
+ 'child-child': 'child-child.bench.js',
50
+ 'child-creation': 'child-creation.bench.js',
51
+ formatters: 'formatters.bench.js'
52
+ }
53
+
54
+ function runBenchmark (name, done) {
55
+ const benchmarkResults = {}
56
+ benchmarkResults[name] = {}
57
+
58
+ const processor = through(function (line, enc, cb) {
59
+ const [label, time] = ('' + line).split(': ')
60
+ const [target, iterations] = label.split('*')
61
+ const logger = target.replace('bench', '')
62
+
63
+ if (!benchmarkResults[name][logger]) benchmarkResults[name][logger] = []
64
+
65
+ benchmarkResults[name][logger].push({
66
+ time: time.replace('ms', ''),
67
+ iterations: iterations.replace(':', '')
68
+ })
69
+
70
+ cb()
71
+ })
72
+
73
+ if (quiet === false) console.log(`Running ${name.toUpperCase()} benchmark\n`)
74
+
75
+ const benchmark = spawn(
76
+ process.argv[0],
77
+ [join(benchmarkDir, benchmarks[name])]
78
+ )
79
+
80
+ if (quiet === false) {
81
+ benchmark.stdout.pipe(process.stdout)
82
+ }
83
+
84
+ pump(benchmark.stdout, split(), processor)
85
+
86
+ benchmark.on('exit', () => {
87
+ console.log()
88
+ if (done && typeof done === 'function') done(null, benchmarkResults)
89
+ })
90
+ }
91
+
92
+ function sum (arr) {
93
+ let result = 0
94
+ for (var i = 0; i < arr.length; i += 1) {
95
+ result += Number.parseFloat(arr[i].time)
96
+ }
97
+ return result
98
+ }
99
+
100
+ function displayResults (results) {
101
+ if (quiet === false) console.log('==========')
102
+ const benchNames = Object.keys(results)
103
+ for (var i = 0; i < benchNames.length; i += 1) {
104
+ console.log(`${benchNames[i].toUpperCase()} benchmark averages`)
105
+ const benchmark = results[benchNames[i]]
106
+ const loggers = Object.keys(benchmark)
107
+ for (var j = 0; j < loggers.length; j += 1) {
108
+ const logger = benchmark[loggers[j]]
109
+ const average = sum(logger) / logger.length
110
+ console.log(`${loggers[j]} average: ${average.toFixed(3)}ms`)
111
+ }
112
+ }
113
+ if (quiet === false) {
114
+ console.log('==========')
115
+ console.log(
116
+ `System: ${type()}/${platform()} ${arch()} ${release()}`,
117
+ `~ ${cpus()[0].model} (cores/threads: ${cpus().length})`
118
+ )
119
+ }
120
+ }
121
+
122
+ function toBench (done) {
123
+ runBenchmark(this.name, done)
124
+ }
125
+
126
+ const benchQueue = []
127
+ if (selectedBenchmark !== 'all') {
128
+ benchQueue.push(toBench.bind({ name: selectedBenchmark }))
129
+ } else {
130
+ const keys = Object.keys(benchmarks)
131
+ for (var i = 0; i < keys.length; i += 1) {
132
+ benchQueue.push(toBench.bind({ name: keys[i] }))
133
+ }
134
+ }
135
+ steed.series(benchQueue, function (err, results) {
136
+ if (err) return console.error(err.message)
137
+ results.forEach(displayResults)
138
+ })
@@ -0,0 +1,55 @@
1
+ 'use strict'
2
+
3
+ const { readFileSync } = require('node:fs')
4
+ const vm = require('vm')
5
+ const { join } = require('node:path')
6
+ const code = readFileSync(
7
+ join(__dirname, '..', '..', 'node_modules', 'loglevel', 'lib', 'loglevel.js')
8
+ )
9
+ const { Console } = require('console')
10
+
11
+ function build (dest) {
12
+ const sandbox = {
13
+ module: {},
14
+ console: new Console(dest, dest)
15
+ }
16
+ const context = vm.createContext(sandbox)
17
+
18
+ const script = new vm.Script(code)
19
+ script.runInContext(context)
20
+
21
+ const loglevel = sandbox.log
22
+
23
+ const originalFactory = loglevel.methodFactory
24
+ loglevel.methodFactory = function (methodName, logLevel, loggerName) {
25
+ const rawMethod = originalFactory(methodName, logLevel, loggerName)
26
+
27
+ return function () {
28
+ const time = new Date()
29
+ let array
30
+ if (typeof arguments[0] === 'string') {
31
+ arguments[0] = '[' + time.toISOString() + '] ' + arguments[0]
32
+ rawMethod.apply(null, arguments)
33
+ } else {
34
+ array = new Array(arguments.length + 1)
35
+ array[0] = '[' + time.toISOString() + ']'
36
+ for (var i = 0; i < arguments.length; i++) {
37
+ array[i + 1] = arguments[i]
38
+ }
39
+ rawMethod.apply(null, array)
40
+ }
41
+ }
42
+ }
43
+
44
+ loglevel.setLevel(loglevel.levels.INFO)
45
+ return loglevel
46
+ }
47
+
48
+ module.exports = build
49
+
50
+ if (require.main === module) {
51
+ const loglevel = build(process.stdout)
52
+ loglevel.info('hello')
53
+ loglevel.info({ hello: 'world' })
54
+ loglevel.info('hello %j', { hello: 'world' })
55
+ }
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ console.error(
3
+ '`pino` cli has been removed. Use `pino-pretty` cli instead.\n' +
4
+ '\nSee: https://github.com/pinojs/pino-pretty'
5
+ )
6
+ process.exit(1)