@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,403 @@
1
+ 'use strict'
2
+
3
+ /* eslint no-prototype-builtins: 0 */
4
+
5
+ const test = require('node:test')
6
+ const assert = require('node:assert')
7
+ const os = require('node:os')
8
+ const tspl = require('@matteo.collina/tspl')
9
+
10
+ const { sink, once } = require('./helper')
11
+ const pino = require('../')
12
+
13
+ const { pid } = process
14
+ const hostname = os.hostname()
15
+ const level = 50
16
+ const name = 'error'
17
+
18
+ test('err is serialized with additional properties set on the Error object', async () => {
19
+ const stream = sink()
20
+ const err = Object.assign(new Error('myerror'), { foo: 'bar' })
21
+ const instance = pino(stream)
22
+ instance.level = name
23
+ instance[name](err)
24
+ const result = await once(stream, 'data')
25
+ assert.ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()')
26
+ delete result.time
27
+ assert.deepEqual(result, {
28
+ pid,
29
+ hostname,
30
+ level,
31
+ err: {
32
+ type: 'Error',
33
+ message: err.message,
34
+ stack: err.stack,
35
+ foo: err.foo
36
+ },
37
+ msg: err.message
38
+ })
39
+ })
40
+
41
+ test('type should be detected based on constructor', async () => {
42
+ class Bar extends Error {}
43
+ const stream = sink()
44
+ const err = new Bar('myerror')
45
+ const instance = pino(stream)
46
+ instance.level = name
47
+ instance[name](err)
48
+ const result = await once(stream, 'data')
49
+ assert.ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()')
50
+ delete result.time
51
+ assert.deepEqual(result, {
52
+ pid,
53
+ hostname,
54
+ level,
55
+ err: {
56
+ type: 'Bar',
57
+ message: err.message,
58
+ stack: err.stack
59
+ },
60
+ msg: err.message
61
+ })
62
+ })
63
+
64
+ test('type, message and stack should be first level properties', async () => {
65
+ const stream = sink()
66
+ const err = Object.assign(new Error('foo'), { foo: 'bar' })
67
+ const instance = pino(stream)
68
+ instance.level = name
69
+ instance[name](err)
70
+
71
+ const result = await once(stream, 'data')
72
+ assert.ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()')
73
+ delete result.time
74
+ assert.deepEqual(result, {
75
+ pid,
76
+ hostname,
77
+ level,
78
+ err: {
79
+ type: 'Error',
80
+ message: err.message,
81
+ stack: err.stack,
82
+ foo: err.foo
83
+ },
84
+ msg: err.message
85
+ })
86
+ })
87
+
88
+ test('err serializer', async () => {
89
+ const stream = sink()
90
+ const err = Object.assign(new Error('myerror'), { foo: 'bar' })
91
+ const instance = pino({
92
+ serializers: {
93
+ err: pino.stdSerializers.err
94
+ }
95
+ }, stream)
96
+
97
+ instance.level = name
98
+ instance[name]({ err })
99
+ const result = await once(stream, 'data')
100
+ assert.ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()')
101
+ delete result.time
102
+ assert.deepEqual(result, {
103
+ pid,
104
+ hostname,
105
+ level,
106
+ err: {
107
+ type: 'Error',
108
+ message: err.message,
109
+ stack: err.stack,
110
+ foo: err.foo
111
+ },
112
+ msg: err.message
113
+ })
114
+ })
115
+
116
+ test('an error with statusCode property is not confused for a http response', async () => {
117
+ const stream = sink()
118
+ const err = Object.assign(new Error('StatusCodeErr'), { statusCode: 500 })
119
+ const instance = pino(stream)
120
+
121
+ instance.level = name
122
+ instance[name](err)
123
+ const result = await once(stream, 'data')
124
+
125
+ assert.ok(new Date(result.time) <= new Date(), 'time is greater than Date.now()')
126
+ delete result.time
127
+ assert.deepEqual(result, {
128
+ pid,
129
+ hostname,
130
+ level,
131
+ err: {
132
+ type: 'Error',
133
+ message: err.message,
134
+ stack: err.stack,
135
+ statusCode: err.statusCode
136
+ },
137
+ msg: err.message
138
+ })
139
+ })
140
+
141
+ test('stack is omitted if it is not set on err', async (t) => {
142
+ const plan = tspl(t, { plan: 2 })
143
+ const err = new Error('myerror')
144
+ delete err.stack
145
+ const instance = pino(sink(function (chunk, enc, cb) {
146
+ plan.ok(new Date(chunk.time) <= new Date(), 'time is greater than Date.now()')
147
+ delete chunk.time
148
+ plan.equal(chunk.hasOwnProperty('stack'), false)
149
+ cb()
150
+ }))
151
+
152
+ instance.level = name
153
+ instance[name](err)
154
+
155
+ await plan
156
+ })
157
+
158
+ test('correctly ignores toString on errors', async () => {
159
+ const err = new Error('myerror')
160
+ err.toString = () => undefined
161
+ const stream = sink()
162
+ const instance = pino({
163
+ test: 'this'
164
+ }, stream)
165
+ instance.fatal(err)
166
+ const result = await once(stream, 'data')
167
+ delete result.time
168
+ assert.deepEqual(result, {
169
+ pid,
170
+ hostname,
171
+ level: 60,
172
+ err: {
173
+ type: 'Error',
174
+ message: err.message,
175
+ stack: err.stack
176
+ },
177
+ msg: err.message
178
+ })
179
+ })
180
+
181
+ test('assign mixin()', async () => {
182
+ const err = new Error('myerror')
183
+ const stream = sink()
184
+ const instance = pino({
185
+ mixin () {
186
+ return { hello: 'world' }
187
+ }
188
+ }, stream)
189
+ instance.fatal(err)
190
+ const result = await once(stream, 'data')
191
+ delete result.time
192
+ assert.deepEqual(result, {
193
+ pid,
194
+ hostname,
195
+ level: 60,
196
+ hello: 'world',
197
+ err: {
198
+ type: 'Error',
199
+ message: err.message,
200
+ stack: err.stack
201
+ },
202
+ msg: err.message
203
+ })
204
+ })
205
+
206
+ test('no err serializer', async () => {
207
+ const err = new Error('myerror')
208
+ const stream = sink()
209
+ const instance = pino({
210
+ serializers: {}
211
+ }, stream)
212
+ instance.fatal(err)
213
+ const result = await once(stream, 'data')
214
+ delete result.time
215
+ assert.deepEqual(result, {
216
+ pid,
217
+ hostname,
218
+ level: 60,
219
+ err: {
220
+ type: 'Error',
221
+ message: err.message,
222
+ stack: err.stack
223
+ },
224
+ msg: err.message
225
+ })
226
+ })
227
+
228
+ test('empty serializer', async () => {
229
+ const err = new Error('myerror')
230
+ const stream = sink()
231
+ const instance = pino({
232
+ serializers: {
233
+ err () {}
234
+ }
235
+ }, stream)
236
+ instance.fatal(err)
237
+ const result = await once(stream, 'data')
238
+ delete result.time
239
+ assert.deepEqual(result, {
240
+ pid,
241
+ hostname,
242
+ level: 60,
243
+ msg: err.message
244
+ })
245
+ })
246
+
247
+ test('assign mixin()', async () => {
248
+ const err = new Error('myerror')
249
+ const stream = sink()
250
+ const instance = pino({
251
+ mixin () {
252
+ return { hello: 'world' }
253
+ }
254
+ }, stream)
255
+ instance.fatal(err)
256
+ const result = await once(stream, 'data')
257
+ delete result.time
258
+ assert.deepEqual(result, {
259
+ pid,
260
+ hostname,
261
+ level: 60,
262
+ hello: 'world',
263
+ err: {
264
+ type: 'Error',
265
+ message: err.message,
266
+ stack: err.stack
267
+ },
268
+ msg: err.message
269
+ })
270
+ })
271
+
272
+ test('no err serializer', async () => {
273
+ const err = new Error('myerror')
274
+ const stream = sink()
275
+ const instance = pino({
276
+ serializers: {}
277
+ }, stream)
278
+ instance.fatal(err)
279
+ const result = await once(stream, 'data')
280
+ delete result.time
281
+ assert.deepEqual(result, {
282
+ pid,
283
+ hostname,
284
+ level: 60,
285
+ err: {
286
+ type: 'Error',
287
+ message: err.message,
288
+ stack: err.stack
289
+ },
290
+ msg: err.message
291
+ })
292
+ })
293
+
294
+ test('empty serializer', async () => {
295
+ const err = new Error('myerror')
296
+ const stream = sink()
297
+ const instance = pino({
298
+ serializers: {
299
+ err () {}
300
+ }
301
+ }, stream)
302
+ instance.fatal(err)
303
+ const result = await once(stream, 'data')
304
+ delete result.time
305
+ assert.deepEqual(result, {
306
+ pid,
307
+ hostname,
308
+ level: 60,
309
+ msg: err.message
310
+ })
311
+ })
312
+
313
+ test('correctly adds error information when nestedKey is used', async () => {
314
+ const err = new Error('myerror')
315
+ err.toString = () => undefined
316
+ const stream = sink()
317
+ const instance = pino({
318
+ test: 'this',
319
+ nestedKey: 'obj'
320
+ }, stream)
321
+ instance.fatal(err)
322
+ const result = await once(stream, 'data')
323
+ delete result.time
324
+ assert.deepEqual(result, {
325
+ pid,
326
+ hostname,
327
+ level: 60,
328
+ obj: {
329
+ err: {
330
+ type: 'Error',
331
+ stack: err.stack,
332
+ message: err.message
333
+ }
334
+ },
335
+ msg: err.message
336
+ })
337
+ })
338
+
339
+ test('correctly adds msg on error when nestedKey is used', async () => {
340
+ const err = new Error('myerror')
341
+ err.toString = () => undefined
342
+ const stream = sink()
343
+ const instance = pino({
344
+ test: 'this',
345
+ nestedKey: 'obj'
346
+ }, stream)
347
+ instance.fatal(err, 'msg message')
348
+ const result = await once(stream, 'data')
349
+ delete result.time
350
+ assert.deepEqual(result, {
351
+ pid,
352
+ hostname,
353
+ level: 60,
354
+ obj: {
355
+ err: {
356
+ type: 'Error',
357
+ stack: err.stack,
358
+ message: err.message
359
+ }
360
+ },
361
+ msg: 'msg message'
362
+ })
363
+ })
364
+
365
+ test('msg should take precedence over error message on mergingObject', async () => {
366
+ const err = new Error('myerror')
367
+ const stream = sink()
368
+ const instance = pino(stream)
369
+ instance.error({ msg: 'my message', err })
370
+ const result = await once(stream, 'data')
371
+ delete result.time
372
+ assert.deepEqual(result, {
373
+ pid,
374
+ hostname,
375
+ level: 50,
376
+ err: {
377
+ type: 'Error',
378
+ stack: err.stack,
379
+ message: err.message
380
+ },
381
+ msg: 'my message'
382
+ })
383
+ })
384
+
385
+ test('considers messageKey when giving msg precedence over error', async () => {
386
+ const err = new Error('myerror')
387
+ const stream = sink()
388
+ const instance = pino({ messageKey: 'message' }, stream)
389
+ instance.error({ message: 'my message', err })
390
+ const result = await once(stream, 'data')
391
+ delete result.time
392
+ assert.deepEqual(result, {
393
+ pid,
394
+ hostname,
395
+ level: 50,
396
+ err: {
397
+ type: 'Error',
398
+ stack: err.stack,
399
+ message: err.message
400
+ },
401
+ message: 'my message'
402
+ })
403
+ })
@@ -0,0 +1,110 @@
1
+ 'use strict'
2
+
3
+ const test = require('node:test')
4
+ const assert = require('node:assert')
5
+ const os = require('node:os')
6
+
7
+ const { sink, once } = require('./helper')
8
+ const pino = require('../')
9
+
10
+ const { pid } = process
11
+ const hostname = os.hostname()
12
+
13
+ function testEscape (ch, key) {
14
+ test('correctly escape ' + ch, async () => {
15
+ const stream = sink()
16
+ const instance = pino({
17
+ name: 'hello'
18
+ }, stream)
19
+ instance.fatal('this contains ' + key)
20
+ const result = await once(stream, 'data')
21
+ delete result.time
22
+ assert.deepEqual(result, {
23
+ pid,
24
+ hostname,
25
+ level: 60,
26
+ name: 'hello',
27
+ msg: 'this contains ' + key
28
+ })
29
+ })
30
+ }
31
+
32
+ testEscape('\\n', '\n')
33
+ testEscape('\\/', '/')
34
+ testEscape('\\\\', '\\')
35
+ testEscape('\\r', '\r')
36
+ testEscape('\\t', '\t')
37
+ testEscape('\\b', '\b')
38
+
39
+ test('correctly escape child binding keys', async () => {
40
+ const stream = sink()
41
+ const key = 'x"}\n{"level":60,"msg":"forged"}\n{"swallow'
42
+ const instance = pino(stream).child({ [key]: true })
43
+
44
+ instance.info('hello')
45
+ const result = await once(stream, 'data')
46
+ delete result.time
47
+ assert.deepEqual(result, {
48
+ pid,
49
+ hostname,
50
+ level: 30,
51
+ msg: 'hello',
52
+ [key]: true
53
+ })
54
+ })
55
+
56
+ const toEscape = [
57
+ '\u0000', // NUL Null character
58
+ '\u0001', // SOH Start of Heading
59
+ '\u0002', // STX Start of Text
60
+ '\u0003', // ETX End-of-text character
61
+ '\u0004', // EOT End-of-transmission character
62
+ '\u0005', // ENQ Enquiry character
63
+ '\u0006', // ACK Acknowledge character
64
+ '\u0007', // BEL Bell character
65
+ '\u0008', // BS Backspace
66
+ '\u0009', // HT Horizontal tab
67
+ '\u000A', // LF Line feed
68
+ '\u000B', // VT Vertical tab
69
+ '\u000C', // FF Form feed
70
+ '\u000D', // CR Carriage return
71
+ '\u000E', // SO Shift Out
72
+ '\u000F', // SI Shift In
73
+ '\u0010', // DLE Data Link Escape
74
+ '\u0011', // DC1 Device Control 1
75
+ '\u0012', // DC2 Device Control 2
76
+ '\u0013', // DC3 Device Control 3
77
+ '\u0014', // DC4 Device Control 4
78
+ '\u0015', // NAK Negative-acknowledge character
79
+ '\u0016', // SYN Synchronous Idle
80
+ '\u0017', // ETB End of Transmission Block
81
+ '\u0018', // CAN Cancel character
82
+ '\u0019', // EM End of Medium
83
+ '\u001A', // SUB Substitute character
84
+ '\u001B', // ESC Escape character
85
+ '\u001C', // FS File Separator
86
+ '\u001D', // GS Group Separator
87
+ '\u001E', // RS Record Separator
88
+ '\u001F' // US Unit Separator
89
+ ]
90
+
91
+ toEscape.forEach((key) => {
92
+ testEscape(JSON.stringify(key), key)
93
+ })
94
+
95
+ test('correctly escape `hello \\u001F world \\n \\u0022`', async () => {
96
+ const stream = sink()
97
+ const instance = pino({
98
+ name: 'hello'
99
+ }, stream)
100
+ instance.fatal('hello \u001F world \n \u0022')
101
+ const result = await once(stream, 'data')
102
+ delete result.time
103
+ assert.deepEqual(result, {
104
+ pid,
105
+ hostname,
106
+ level: 60,
107
+ name: 'hello',
108
+ msg: 'hello \u001F world \n \u0022'
109
+ })
110
+ })
@@ -0,0 +1,14 @@
1
+ import test from 'node:test'
2
+ import assert from 'node:assert'
3
+
4
+ import pino from '../../pino.js'
5
+ import helper from '../helper.js'
6
+
7
+ const { sink, check, once } = helper
8
+
9
+ test('esm support', async () => {
10
+ const stream = sink()
11
+ const instance = pino(stream)
12
+ instance.info('hello world')
13
+ check(assert.equal, await once(stream, 'data'), 30, 'hello world')
14
+ })
@@ -0,0 +1,21 @@
1
+ 'use strict'
2
+
3
+ // Node v8 throw a `SyntaxError: Unexpected token import`
4
+ // even if this branch is never touched in the code,
5
+ // by using `eval` we can avoid this issue.
6
+ // eslint-disable-next-line
7
+ new Function('module', 'return import(module)')('./esm.mjs').catch((err) => {
8
+ process.nextTick(() => {
9
+ throw err
10
+ })
11
+ })
12
+
13
+ // Node v8 throw a `SyntaxError: Unexpected token import`
14
+ // even if this branch is never touched in the code,
15
+ // by using `eval` we can avoid this issue.
16
+ // eslint-disable-next-line
17
+ new Function('module', 'return import(module)')('./named-exports.mjs').catch((err) => {
18
+ process.nextTick(() => {
19
+ throw err
20
+ })
21
+ })
@@ -0,0 +1,29 @@
1
+ import test from 'node:test'
2
+ import assert from 'node:assert'
3
+ import { hostname } from 'node:os'
4
+ import { readFileSync } from 'node:fs'
5
+
6
+ import { sink, check, once, watchFileCreated, file } from '../helper.js'
7
+ import { pino, destination } from '../../pino.js'
8
+
9
+ test('named exports support', async () => {
10
+ const stream = sink()
11
+ const instance = pino(stream)
12
+ instance.info('hello world')
13
+ check(assert.equal, await once(stream, 'data'), 30, 'hello world')
14
+ })
15
+
16
+ test('destination', async () => {
17
+ const tmp = file()
18
+ const instance = pino(destination(tmp))
19
+ instance.info('hello')
20
+ await watchFileCreated(tmp)
21
+ const result = JSON.parse(readFileSync(tmp).toString())
22
+ delete result.time
23
+ assert.deepEqual(result, {
24
+ pid: process.pid,
25
+ hostname,
26
+ level: 30,
27
+ msg: 'hello'
28
+ })
29
+ })
@@ -0,0 +1,79 @@
1
+ 'use strict'
2
+
3
+ const test = require('node:test')
4
+ const assert = require('node:assert')
5
+ const { join } = require('node:path')
6
+
7
+ const execa = require('execa')
8
+ const writer = require('flush-write-stream')
9
+ const { once } = require('./helper')
10
+
11
+ // https://github.com/pinojs/pino/issues/542
12
+ test('pino.destination log everything when calling process.exit(0)', async () => {
13
+ let actual = ''
14
+ const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'destination-exit.js')])
15
+
16
+ child.stdout.pipe(writer((s, enc, cb) => {
17
+ actual += s
18
+ cb()
19
+ }))
20
+
21
+ await once(child, 'close')
22
+
23
+ assert.equal(actual.match(/hello/) != null, true)
24
+ assert.equal(actual.match(/world/) != null, true)
25
+ })
26
+
27
+ test('pino with no args log everything when calling process.exit(0)', async () => {
28
+ let actual = ''
29
+ const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'default-exit.js')])
30
+
31
+ child.stdout.pipe(writer((s, enc, cb) => {
32
+ actual += s
33
+ cb()
34
+ }))
35
+
36
+ await once(child, 'close')
37
+
38
+ assert.equal(actual.match(/hello/) != null, true)
39
+ assert.equal(actual.match(/world/) != null, true)
40
+ })
41
+
42
+ test('sync false logs everything when calling process.exit(0)', async () => {
43
+ let actual = ''
44
+ const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'syncfalse-exit.js')])
45
+
46
+ child.stdout.pipe(writer((s, enc, cb) => {
47
+ actual += s
48
+ cb()
49
+ }))
50
+
51
+ await once(child, 'close')
52
+
53
+ assert.equal(actual.match(/hello/) != null, true)
54
+ assert.equal(actual.match(/world/) != null, true)
55
+ })
56
+
57
+ test('sync false logs everything when calling flushSync', async () => {
58
+ let actual = ''
59
+ const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'syncfalse-flush-exit.js')])
60
+
61
+ child.stdout.pipe(writer((s, enc, cb) => {
62
+ actual += s
63
+ cb()
64
+ }))
65
+
66
+ await once(child, 'close')
67
+
68
+ assert.equal(actual.match(/hello/) != null, true)
69
+ assert.equal(actual.match(/world/) != null, true)
70
+ })
71
+
72
+ test('transports exits gracefully when logging in exit', async () => {
73
+ const child = execa(process.argv[0], [join(__dirname, 'fixtures', 'transport-with-on-exit.js')])
74
+ child.stdout.resume()
75
+
76
+ const code = await once(child, 'close')
77
+
78
+ assert.equal(code, 0)
79
+ })
@@ -0,0 +1,9 @@
1
+ 'use strict'
2
+
3
+ global.process = { __proto__: process, pid: 123456 }
4
+ Date.now = function () { return 1459875739796 }
5
+ require('node:os').hostname = function () { return 'abcdefghijklmnopqr' }
6
+
7
+ const pino = require('../../..')()
8
+
9
+ pino.info('hello world')
@@ -0,0 +1,10 @@
1
+ 'use strict'
2
+
3
+ global.process = { __proto__: process, pid: 123456 }
4
+ Date.now = function () { return 1459875739796 }
5
+ require('node:os').hostname = function () { return 'abcdefghijklmnopqr' }
6
+
7
+ const pino = require('../../..')
8
+ const logger = pino(pino.destination())
9
+
10
+ logger.info('hello world')
@@ -0,0 +1,12 @@
1
+ 'use strict'
2
+
3
+ global.process = { __proto__: process, pid: 123456 }
4
+ Date.now = function () { return 1459875739796 }
5
+ require('node:os').hostname = function () { return 'abcdefghijklmnopqr' }
6
+
7
+ const pino = require('../../..')
8
+ const logger = pino(pino.destination({ sync: false }))
9
+
10
+ for (var i = 0; i < 1000; i++) {
11
+ logger.info('hello world')
12
+ }
@@ -0,0 +1,6 @@
1
+ const getCallers = require('../../lib/caller.js')
2
+
3
+ module.exports = function loop (count) {
4
+ if (count <= 0) return getCallers()
5
+ return loop(count - 1)
6
+ }