@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
@@ -1,52 +1,249 @@
1
- declare module 'readline' {
2
- import EventEmitter = require('events');
3
-
4
- interface Key {
1
+ /**
2
+ * The `node:readline` module provides an interface for reading data from a [Readable](https://nodejs.org/docs/latest-v22.x/api/stream.html#readable-streams) stream
3
+ * (such as [`process.stdin`](https://nodejs.org/docs/latest-v22.x/api/process.html#processstdin)) one line at a time.
4
+ *
5
+ * To use the promise-based APIs:
6
+ *
7
+ * ```js
8
+ * import * as readline from 'node:readline/promises';
9
+ * ```
10
+ *
11
+ * To use the callback and sync APIs:
12
+ *
13
+ * ```js
14
+ * import * as readline from 'node:readline';
15
+ * ```
16
+ *
17
+ * The following simple example illustrates the basic use of the `node:readline` module.
18
+ *
19
+ * ```js
20
+ * import * as readline from 'node:readline/promises';
21
+ * import { stdin as input, stdout as output } from 'node:process';
22
+ *
23
+ * const rl = readline.createInterface({ input, output });
24
+ *
25
+ * const answer = await rl.question('What do you think of Node.js? ');
26
+ *
27
+ * console.log(`Thank you for your valuable feedback: ${answer}`);
28
+ *
29
+ * rl.close();
30
+ * ```
31
+ *
32
+ * Once this code is invoked, the Node.js application will not terminate until the `readline.Interface` is closed because the interface waits for data to be
33
+ * received on the `input` stream.
34
+ * @see [source](https://github.com/nodejs/node/blob/v22.x/lib/readline.js)
35
+ */
36
+ declare module "readline" {
37
+ import { Abortable, EventEmitter } from "node:events";
38
+ import * as promises from "node:readline/promises";
39
+ export { promises };
40
+ export interface Key {
5
41
  sequence?: string | undefined;
6
42
  name?: string | undefined;
7
43
  ctrl?: boolean | undefined;
8
44
  meta?: boolean | undefined;
9
45
  shift?: boolean | undefined;
10
46
  }
11
-
12
- class Interface extends EventEmitter {
47
+ /**
48
+ * Instances of the `readline.Interface` class are constructed using the `readline.createInterface()` method. Every instance is associated with a
49
+ * single `input` [Readable](https://nodejs.org/docs/latest-v22.x/api/stream.html#readable-streams) stream and a single `output` [Writable](https://nodejs.org/docs/latest-v22.x/api/stream.html#writable-streams) stream.
50
+ * The `output` stream is used to print prompts for user input that arrives on,
51
+ * and is read from, the `input` stream.
52
+ * @since v0.1.104
53
+ */
54
+ export class Interface extends EventEmitter implements Disposable {
13
55
  readonly terminal: boolean;
14
-
15
- // Need direct access to line/cursor data, for use in external processes
16
- // see: https://github.com/nodejs/node/issues/30347
17
- /** The current input data */
56
+ /**
57
+ * The current input data being processed by node.
58
+ *
59
+ * This can be used when collecting input from a TTY stream to retrieve the
60
+ * current value that has been processed thus far, prior to the `line` event
61
+ * being emitted. Once the `line` event has been emitted, this property will
62
+ * be an empty string.
63
+ *
64
+ * Be aware that modifying the value during the instance runtime may have
65
+ * unintended consequences if `rl.cursor` is not also controlled.
66
+ *
67
+ * **If not using a TTY stream for input, use the `'line'` event.**
68
+ *
69
+ * One possible use case would be as follows:
70
+ *
71
+ * ```js
72
+ * const values = ['lorem ipsum', 'dolor sit amet'];
73
+ * const rl = readline.createInterface(process.stdin);
74
+ * const showResults = debounce(() => {
75
+ * console.log(
76
+ * '\n',
77
+ * values.filter((val) => val.startsWith(rl.line)).join(' '),
78
+ * );
79
+ * }, 300);
80
+ * process.stdin.on('keypress', (c, k) => {
81
+ * showResults();
82
+ * });
83
+ * ```
84
+ * @since v0.1.98
85
+ */
18
86
  readonly line: string;
19
- /** The current cursor position in the input line */
87
+ /**
88
+ * The cursor position relative to `rl.line`.
89
+ *
90
+ * This will track where the current cursor lands in the input string, when
91
+ * reading input from a TTY stream. The position of cursor determines the
92
+ * portion of the input string that will be modified as input is processed,
93
+ * as well as the column where the terminal caret will be rendered.
94
+ * @since v0.1.98
95
+ */
20
96
  readonly cursor: number;
21
-
22
97
  /**
23
98
  * NOTE: According to the documentation:
24
99
  *
25
100
  * > Instances of the `readline.Interface` class are constructed using the
26
101
  * > `readline.createInterface()` method.
27
102
  *
28
- * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface
103
+ * @see https://nodejs.org/dist/latest-v22.x/docs/api/readline.html#class-interfaceconstructor
29
104
  */
30
- protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean);
105
+ protected constructor(
106
+ input: NodeJS.ReadableStream,
107
+ output?: NodeJS.WritableStream,
108
+ completer?: Completer | AsyncCompleter,
109
+ terminal?: boolean,
110
+ );
31
111
  /**
32
112
  * NOTE: According to the documentation:
33
113
  *
34
114
  * > Instances of the `readline.Interface` class are constructed using the
35
115
  * > `readline.createInterface()` method.
36
116
  *
37
- * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface
117
+ * @see https://nodejs.org/dist/latest-v22.x/docs/api/readline.html#class-interfaceconstructor
38
118
  */
39
119
  protected constructor(options: ReadLineOptions);
40
-
120
+ /**
121
+ * The `rl.getPrompt()` method returns the current prompt used by `rl.prompt()`.
122
+ * @since v15.3.0, v14.17.0
123
+ * @return the current prompt string
124
+ */
125
+ getPrompt(): string;
126
+ /**
127
+ * The `rl.setPrompt()` method sets the prompt that will be written to `output` whenever `rl.prompt()` is called.
128
+ * @since v0.1.98
129
+ */
41
130
  setPrompt(prompt: string): void;
131
+ /**
132
+ * The `rl.prompt()` method writes the `Interface` instances configured`prompt` to a new line in `output` in order to provide a user with a new
133
+ * location at which to provide input.
134
+ *
135
+ * When called, `rl.prompt()` will resume the `input` stream if it has been
136
+ * paused.
137
+ *
138
+ * If the `Interface` was created with `output` set to `null` or `undefined` the prompt is not written.
139
+ * @since v0.1.98
140
+ * @param preserveCursor If `true`, prevents the cursor placement from being reset to `0`.
141
+ */
42
142
  prompt(preserveCursor?: boolean): void;
143
+ /**
144
+ * The `rl.question()` method displays the `query` by writing it to the `output`,
145
+ * waits for user input to be provided on `input`, then invokes the `callback` function passing the provided input as the first argument.
146
+ *
147
+ * When called, `rl.question()` will resume the `input` stream if it has been
148
+ * paused.
149
+ *
150
+ * If the `Interface` was created with `output` set to `null` or `undefined` the `query` is not written.
151
+ *
152
+ * The `callback` function passed to `rl.question()` does not follow the typical
153
+ * pattern of accepting an `Error` object or `null` as the first argument.
154
+ * The `callback` is called with the provided answer as the only argument.
155
+ *
156
+ * An error will be thrown if calling `rl.question()` after `rl.close()`.
157
+ *
158
+ * Example usage:
159
+ *
160
+ * ```js
161
+ * rl.question('What is your favorite food? ', (answer) => {
162
+ * console.log(`Oh, so your favorite food is ${answer}`);
163
+ * });
164
+ * ```
165
+ *
166
+ * Using an `AbortController` to cancel a question.
167
+ *
168
+ * ```js
169
+ * const ac = new AbortController();
170
+ * const signal = ac.signal;
171
+ *
172
+ * rl.question('What is your favorite food? ', { signal }, (answer) => {
173
+ * console.log(`Oh, so your favorite food is ${answer}`);
174
+ * });
175
+ *
176
+ * signal.addEventListener('abort', () => {
177
+ * console.log('The food question timed out');
178
+ * }, { once: true });
179
+ *
180
+ * setTimeout(() => ac.abort(), 10000);
181
+ * ```
182
+ * @since v0.3.3
183
+ * @param query A statement or query to write to `output`, prepended to the prompt.
184
+ * @param callback A callback function that is invoked with the user's input in response to the `query`.
185
+ */
43
186
  question(query: string, callback: (answer: string) => void): void;
187
+ question(query: string, options: Abortable, callback: (answer: string) => void): void;
188
+ /**
189
+ * The `rl.pause()` method pauses the `input` stream, allowing it to be resumed
190
+ * later if necessary.
191
+ *
192
+ * Calling `rl.pause()` does not immediately pause other events (including `'line'`) from being emitted by the `Interface` instance.
193
+ * @since v0.3.4
194
+ */
44
195
  pause(): this;
196
+ /**
197
+ * The `rl.resume()` method resumes the `input` stream if it has been paused.
198
+ * @since v0.3.4
199
+ */
45
200
  resume(): this;
201
+ /**
202
+ * The `rl.close()` method closes the `Interface` instance and
203
+ * relinquishes control over the `input` and `output` streams. When called,
204
+ * the `'close'` event will be emitted.
205
+ *
206
+ * Calling `rl.close()` does not immediately stop other events (including `'line'`)
207
+ * from being emitted by the `Interface` instance.
208
+ * @since v0.1.98
209
+ */
46
210
  close(): void;
211
+ /**
212
+ * Alias for `rl.close()`.
213
+ * @since v22.15.0
214
+ */
215
+ [Symbol.dispose](): void;
216
+ /**
217
+ * The `rl.write()` method will write either `data` or a key sequence identified
218
+ * by `key` to the `output`. The `key` argument is supported only if `output` is
219
+ * a `TTY` text terminal. See `TTY keybindings` for a list of key
220
+ * combinations.
221
+ *
222
+ * If `key` is specified, `data` is ignored.
223
+ *
224
+ * When called, `rl.write()` will resume the `input` stream if it has been
225
+ * paused.
226
+ *
227
+ * If the `Interface` was created with `output` set to `null` or `undefined` the `data` and `key` are not written.
228
+ *
229
+ * ```js
230
+ * rl.write('Delete this!');
231
+ * // Simulate Ctrl+U to delete the line written previously
232
+ * rl.write(null, { ctrl: true, name: 'u' });
233
+ * ```
234
+ *
235
+ * The `rl.write()` method will write the data to the `readline` `Interface`'s `input` _as if it were provided by the user_.
236
+ * @since v0.1.98
237
+ */
47
238
  write(data: string | Buffer, key?: Key): void;
48
239
  write(data: undefined | null | string | Buffer, key: Key): void;
49
-
240
+ /**
241
+ * Returns the real position of the cursor in relation to the input
242
+ * prompt + string. Long input (wrapping) strings, as well as multiple
243
+ * line prompts are included in the calculations.
244
+ * @since v13.5.0, v12.16.0
245
+ */
246
+ getCursorPos(): CursorPos;
50
247
  /**
51
248
  * events.EventEmitter
52
249
  * 1. close
@@ -56,8 +253,8 @@ declare module 'readline' {
56
253
  * 5. SIGCONT
57
254
  * 6. SIGINT
58
255
  * 7. SIGTSTP
256
+ * 8. history
59
257
  */
60
-
61
258
  addListener(event: string, listener: (...args: any[]) => void): this;
62
259
  addListener(event: "close", listener: () => void): this;
63
260
  addListener(event: "line", listener: (input: string) => void): this;
@@ -66,7 +263,7 @@ declare module 'readline' {
66
263
  addListener(event: "SIGCONT", listener: () => void): this;
67
264
  addListener(event: "SIGINT", listener: () => void): this;
68
265
  addListener(event: "SIGTSTP", listener: () => void): this;
69
-
266
+ addListener(event: "history", listener: (history: string[]) => void): this;
70
267
  emit(event: string | symbol, ...args: any[]): boolean;
71
268
  emit(event: "close"): boolean;
72
269
  emit(event: "line", input: string): boolean;
@@ -75,7 +272,7 @@ declare module 'readline' {
75
272
  emit(event: "SIGCONT"): boolean;
76
273
  emit(event: "SIGINT"): boolean;
77
274
  emit(event: "SIGTSTP"): boolean;
78
-
275
+ emit(event: "history", history: string[]): boolean;
79
276
  on(event: string, listener: (...args: any[]) => void): this;
80
277
  on(event: "close", listener: () => void): this;
81
278
  on(event: "line", listener: (input: string) => void): this;
@@ -84,7 +281,7 @@ declare module 'readline' {
84
281
  on(event: "SIGCONT", listener: () => void): this;
85
282
  on(event: "SIGINT", listener: () => void): this;
86
283
  on(event: "SIGTSTP", listener: () => void): this;
87
-
284
+ on(event: "history", listener: (history: string[]) => void): this;
88
285
  once(event: string, listener: (...args: any[]) => void): this;
89
286
  once(event: "close", listener: () => void): this;
90
287
  once(event: "line", listener: (input: string) => void): this;
@@ -93,7 +290,7 @@ declare module 'readline' {
93
290
  once(event: "SIGCONT", listener: () => void): this;
94
291
  once(event: "SIGINT", listener: () => void): this;
95
292
  once(event: "SIGTSTP", listener: () => void): this;
96
-
293
+ once(event: "history", listener: (history: string[]) => void): this;
97
294
  prependListener(event: string, listener: (...args: any[]) => void): this;
98
295
  prependListener(event: "close", listener: () => void): this;
99
296
  prependListener(event: "line", listener: (input: string) => void): this;
@@ -102,7 +299,7 @@ declare module 'readline' {
102
299
  prependListener(event: "SIGCONT", listener: () => void): this;
103
300
  prependListener(event: "SIGINT", listener: () => void): this;
104
301
  prependListener(event: "SIGTSTP", listener: () => void): this;
105
-
302
+ prependListener(event: "history", listener: (history: string[]) => void): this;
106
303
  prependOnceListener(event: string, listener: (...args: any[]) => void): this;
107
304
  prependOnceListener(event: "close", listener: () => void): this;
108
305
  prependOnceListener(event: "line", listener: (input: string) => void): this;
@@ -111,48 +308,287 @@ declare module 'readline' {
111
308
  prependOnceListener(event: "SIGCONT", listener: () => void): this;
112
309
  prependOnceListener(event: "SIGINT", listener: () => void): this;
113
310
  prependOnceListener(event: "SIGTSTP", listener: () => void): this;
114
- [Symbol.asyncIterator](): AsyncIterableIterator<string>;
311
+ prependOnceListener(event: "history", listener: (history: string[]) => void): this;
312
+ [Symbol.asyncIterator](): NodeJS.AsyncIterator<string>;
115
313
  }
116
-
117
- type ReadLine = Interface; // type forwarded for backwards compatiblity
118
-
119
- type Completer = (line: string) => CompleterResult;
120
- type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => any;
121
-
122
- type CompleterResult = [string[], string];
123
-
124
- interface ReadLineOptions {
314
+ export type ReadLine = Interface; // type forwarded for backwards compatibility
315
+ export type Completer = (line: string) => CompleterResult;
316
+ export type AsyncCompleter = (
317
+ line: string,
318
+ callback: (err?: null | Error, result?: CompleterResult) => void,
319
+ ) => void;
320
+ export type CompleterResult = [string[], string];
321
+ export interface ReadLineOptions {
322
+ /**
323
+ * The [`Readable`](https://nodejs.org/docs/latest-v22.x/api/stream.html#readable-streams) stream to listen to
324
+ */
125
325
  input: NodeJS.ReadableStream;
326
+ /**
327
+ * The [`Writable`](https://nodejs.org/docs/latest-v22.x/api/stream.html#writable-streams) stream to write readline data to.
328
+ */
126
329
  output?: NodeJS.WritableStream | undefined;
330
+ /**
331
+ * An optional function used for Tab autocompletion.
332
+ */
127
333
  completer?: Completer | AsyncCompleter | undefined;
334
+ /**
335
+ * `true` if the `input` and `output` streams should be treated like a TTY,
336
+ * and have ANSI/VT100 escape codes written to it.
337
+ * Default: checking `isTTY` on the `output` stream upon instantiation.
338
+ */
128
339
  terminal?: boolean | undefined;
340
+ /**
341
+ * Initial list of history lines.
342
+ * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check,
343
+ * otherwise the history caching mechanism is not initialized at all.
344
+ * @default []
345
+ */
346
+ history?: string[] | undefined;
347
+ /**
348
+ * Maximum number of history lines retained.
349
+ * To disable the history set this value to `0`.
350
+ * This option makes sense only if `terminal` is set to `true` by the user or by an internal `output` check,
351
+ * otherwise the history caching mechanism is not initialized at all.
352
+ * @default 30
353
+ */
129
354
  historySize?: number | undefined;
355
+ /**
356
+ * If `true`, when a new input line added to the history list duplicates an older one,
357
+ * this removes the older line from the list.
358
+ * @default false
359
+ */
360
+ removeHistoryDuplicates?: boolean | undefined;
361
+ /**
362
+ * The prompt string to use.
363
+ * @default "> "
364
+ */
130
365
  prompt?: string | undefined;
366
+ /**
367
+ * If the delay between `\r` and `\n` exceeds `crlfDelay` milliseconds,
368
+ * both `\r` and `\n` will be treated as separate end-of-line input.
369
+ * `crlfDelay` will be coerced to a number no less than `100`.
370
+ * It can be set to `Infinity`, in which case
371
+ * `\r` followed by `\n` will always be considered a single newline
372
+ * (which may be reasonable for [reading files](https://nodejs.org/docs/latest-v22.x/api/readline.html#example-read-file-stream-line-by-line) with `\r\n` line delimiter).
373
+ * @default 100
374
+ */
131
375
  crlfDelay?: number | undefined;
132
- removeHistoryDuplicates?: boolean | undefined;
376
+ /**
377
+ * The duration `readline` will wait for a character
378
+ * (when reading an ambiguous key sequence in milliseconds
379
+ * one that can both form a complete key sequence using the input read so far
380
+ * and can take additional input to complete a longer key sequence).
381
+ * @default 500
382
+ */
133
383
  escapeCodeTimeout?: number | undefined;
384
+ /**
385
+ * The number of spaces a tab is equal to (minimum 1).
386
+ * @default 8
387
+ */
388
+ tabSize?: number | undefined;
389
+ /**
390
+ * Allows closing the interface using an AbortSignal.
391
+ * Aborting the signal will internally call `close` on the interface.
392
+ */
393
+ signal?: AbortSignal | undefined;
394
+ }
395
+ /**
396
+ * The `readline.createInterface()` method creates a new `readline.Interface` instance.
397
+ *
398
+ * ```js
399
+ * import readline from 'node:readline';
400
+ * const rl = readline.createInterface({
401
+ * input: process.stdin,
402
+ * output: process.stdout,
403
+ * });
404
+ * ```
405
+ *
406
+ * Once the `readline.Interface` instance is created, the most common case is to
407
+ * listen for the `'line'` event:
408
+ *
409
+ * ```js
410
+ * rl.on('line', (line) => {
411
+ * console.log(`Received: ${line}`);
412
+ * });
413
+ * ```
414
+ *
415
+ * If `terminal` is `true` for this instance then the `output` stream will get
416
+ * the best compatibility if it defines an `output.columns` property and emits
417
+ * a `'resize'` event on the `output` if or when the columns ever change
418
+ * (`process.stdout` does this automatically when it is a TTY).
419
+ *
420
+ * When creating a `readline.Interface` using `stdin` as input, the program
421
+ * will not terminate until it receives an [EOF character](https://en.wikipedia.org/wiki/End-of-file#EOF_character). To exit without
422
+ * waiting for user input, call `process.stdin.unref()`.
423
+ * @since v0.1.98
424
+ */
425
+ export function createInterface(
426
+ input: NodeJS.ReadableStream,
427
+ output?: NodeJS.WritableStream,
428
+ completer?: Completer | AsyncCompleter,
429
+ terminal?: boolean,
430
+ ): Interface;
431
+ export function createInterface(options: ReadLineOptions): Interface;
432
+ /**
433
+ * The `readline.emitKeypressEvents()` method causes the given `Readable` stream to begin emitting `'keypress'` events corresponding to received input.
434
+ *
435
+ * Optionally, `interface` specifies a `readline.Interface` instance for which
436
+ * autocompletion is disabled when copy-pasted input is detected.
437
+ *
438
+ * If the `stream` is a `TTY`, then it must be in raw mode.
439
+ *
440
+ * This is automatically called by any readline instance on its `input` if the `input` is a terminal. Closing the `readline` instance does not stop
441
+ * the `input` from emitting `'keypress'` events.
442
+ *
443
+ * ```js
444
+ * readline.emitKeypressEvents(process.stdin);
445
+ * if (process.stdin.isTTY)
446
+ * process.stdin.setRawMode(true);
447
+ * ```
448
+ *
449
+ * ## Example: Tiny CLI
450
+ *
451
+ * The following example illustrates the use of `readline.Interface` class to
452
+ * implement a small command-line interface:
453
+ *
454
+ * ```js
455
+ * import readline from 'node:readline';
456
+ * const rl = readline.createInterface({
457
+ * input: process.stdin,
458
+ * output: process.stdout,
459
+ * prompt: 'OHAI> ',
460
+ * });
461
+ *
462
+ * rl.prompt();
463
+ *
464
+ * rl.on('line', (line) => {
465
+ * switch (line.trim()) {
466
+ * case 'hello':
467
+ * console.log('world!');
468
+ * break;
469
+ * default:
470
+ * console.log(`Say what? I might have heard '${line.trim()}'`);
471
+ * break;
472
+ * }
473
+ * rl.prompt();
474
+ * }).on('close', () => {
475
+ * console.log('Have a great day!');
476
+ * process.exit(0);
477
+ * });
478
+ * ```
479
+ *
480
+ * ## Example: Read file stream line-by-Line
481
+ *
482
+ * A common use case for `readline` is to consume an input file one line at a
483
+ * time. The easiest way to do so is leveraging the `fs.ReadStream` API as
484
+ * well as a `for await...of` loop:
485
+ *
486
+ * ```js
487
+ * import fs from 'node:fs';
488
+ * import readline from 'node:readline';
489
+ *
490
+ * async function processLineByLine() {
491
+ * const fileStream = fs.createReadStream('input.txt');
492
+ *
493
+ * const rl = readline.createInterface({
494
+ * input: fileStream,
495
+ * crlfDelay: Infinity,
496
+ * });
497
+ * // Note: we use the crlfDelay option to recognize all instances of CR LF
498
+ * // ('\r\n') in input.txt as a single line break.
499
+ *
500
+ * for await (const line of rl) {
501
+ * // Each line in input.txt will be successively available here as `line`.
502
+ * console.log(`Line from file: ${line}`);
503
+ * }
504
+ * }
505
+ *
506
+ * processLineByLine();
507
+ * ```
508
+ *
509
+ * Alternatively, one could use the `'line'` event:
510
+ *
511
+ * ```js
512
+ * import fs from 'node:fs';
513
+ * import readline from 'node:readline';
514
+ *
515
+ * const rl = readline.createInterface({
516
+ * input: fs.createReadStream('sample.txt'),
517
+ * crlfDelay: Infinity,
518
+ * });
519
+ *
520
+ * rl.on('line', (line) => {
521
+ * console.log(`Line from file: ${line}`);
522
+ * });
523
+ * ```
524
+ *
525
+ * Currently, `for await...of` loop can be a bit slower. If `async` / `await` flow and speed are both essential, a mixed approach can be applied:
526
+ *
527
+ * ```js
528
+ * import { once } from 'node:events';
529
+ * import { createReadStream } from 'node:fs';
530
+ * import { createInterface } from 'node:readline';
531
+ *
532
+ * (async function processLineByLine() {
533
+ * try {
534
+ * const rl = createInterface({
535
+ * input: createReadStream('big-file.txt'),
536
+ * crlfDelay: Infinity,
537
+ * });
538
+ *
539
+ * rl.on('line', (line) => {
540
+ * // Process the line.
541
+ * });
542
+ *
543
+ * await once(rl, 'close');
544
+ *
545
+ * console.log('File processed.');
546
+ * } catch (err) {
547
+ * console.error(err);
548
+ * }
549
+ * })();
550
+ * ```
551
+ * @since v0.7.7
552
+ */
553
+ export function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void;
554
+ export type Direction = -1 | 0 | 1;
555
+ export interface CursorPos {
556
+ rows: number;
557
+ cols: number;
134
558
  }
135
-
136
- function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface;
137
- function createInterface(options: ReadLineOptions): Interface;
138
- function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void;
139
-
140
- type Direction = -1 | 0 | 1;
141
-
142
559
  /**
143
- * Clears the current line of this WriteStream in a direction identified by `dir`.
560
+ * The `readline.clearLine()` method clears current line of given [TTY](https://nodejs.org/docs/latest-v22.x/api/tty.html) stream
561
+ * in a specified direction identified by `dir`.
562
+ * @since v0.7.7
563
+ * @param callback Invoked once the operation completes.
564
+ * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
144
565
  */
145
- function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean;
566
+ export function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean;
146
567
  /**
147
- * Clears this `WriteStream` from the current cursor down.
568
+ * The `readline.clearScreenDown()` method clears the given [TTY](https://nodejs.org/docs/latest-v22.x/api/tty.html) stream from
569
+ * the current position of the cursor down.
570
+ * @since v0.7.7
571
+ * @param callback Invoked once the operation completes.
572
+ * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
148
573
  */
149
- function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean;
574
+ export function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean;
150
575
  /**
151
- * Moves this WriteStream's cursor to the specified position.
576
+ * The `readline.cursorTo()` method moves cursor to the specified position in a
577
+ * given [TTY](https://nodejs.org/docs/latest-v22.x/api/tty.html) `stream`.
578
+ * @since v0.7.7
579
+ * @param callback Invoked once the operation completes.
580
+ * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
152
581
  */
153
- function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean;
582
+ export function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean;
154
583
  /**
155
- * Moves this WriteStream's cursor relative to its current position.
584
+ * The `readline.moveCursor()` method moves the cursor _relative_ to its current
585
+ * position in a given [TTY](https://nodejs.org/docs/latest-v22.x/api/tty.html) `stream`.
586
+ * @since v0.7.7
587
+ * @param callback Invoked once the operation completes.
588
+ * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`.
156
589
  */
157
- function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean;
590
+ export function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean;
591
+ }
592
+ declare module "node:readline" {
593
+ export * from "readline";
158
594
  }