@socketsecurity/lib 1.3.2 → 1.3.3

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 (337) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/abort.js +1 -60
  3. package/dist/abort.js.map +2 -2
  4. package/dist/agent.js +1 -289
  5. package/dist/agent.js.map +2 -2
  6. package/dist/ansi.js +1 -60
  7. package/dist/ansi.js.map +2 -2
  8. package/dist/argv/flags.js +1 -282
  9. package/dist/argv/flags.js.map +2 -2
  10. package/dist/argv/parse.js +1 -171
  11. package/dist/argv/parse.js.map +2 -2
  12. package/dist/arrays.js +1 -85
  13. package/dist/arrays.js.map +2 -2
  14. package/dist/bin.js +1 -402
  15. package/dist/bin.js.map +2 -2
  16. package/dist/cacache.js +1 -137
  17. package/dist/cacache.js.map +2 -2
  18. package/dist/cache-with-ttl.js +1 -223
  19. package/dist/cache-with-ttl.js.map +2 -2
  20. package/dist/constants/agents.js +1 -126
  21. package/dist/constants/agents.js.map +2 -2
  22. package/dist/constants/core.js +2 -57
  23. package/dist/constants/core.js.map +2 -2
  24. package/dist/constants/encoding.js +1 -48
  25. package/dist/constants/encoding.js.map +2 -2
  26. package/dist/constants/github.js +1 -30
  27. package/dist/constants/github.js.map +2 -2
  28. package/dist/constants/licenses.js +1 -66
  29. package/dist/constants/licenses.js.map +2 -2
  30. package/dist/constants/node.js +1 -171
  31. package/dist/constants/node.js.map +2 -2
  32. package/dist/constants/packages.js +1 -128
  33. package/dist/constants/packages.js.map +2 -2
  34. package/dist/constants/paths.js +1 -150
  35. package/dist/constants/paths.js.map +2 -2
  36. package/dist/constants/platform.js +1 -41
  37. package/dist/constants/platform.js.map +2 -2
  38. package/dist/constants/process.js +1 -52
  39. package/dist/constants/process.js.map +2 -2
  40. package/dist/constants/socket.js +1 -81
  41. package/dist/constants/socket.js.map +2 -2
  42. package/dist/constants/testing.js +1 -36
  43. package/dist/constants/testing.js.map +2 -2
  44. package/dist/constants/time.js +1 -39
  45. package/dist/constants/time.js.map +2 -2
  46. package/dist/constants/typescript.js +1 -54
  47. package/dist/constants/typescript.js.map +2 -2
  48. package/dist/cover/code.js +1 -135
  49. package/dist/cover/code.js.map +2 -2
  50. package/dist/cover/formatters.js +11 -101
  51. package/dist/cover/formatters.js.map +2 -2
  52. package/dist/cover/type.js +1 -63
  53. package/dist/cover/type.js.map +2 -2
  54. package/dist/cover/types.js +1 -15
  55. package/dist/cover/types.js.map +2 -2
  56. package/dist/debug.js +2 -343
  57. package/dist/debug.js.map +2 -2
  58. package/dist/dlx-binary.js +1 -259
  59. package/dist/dlx-binary.js.map +2 -2
  60. package/dist/dlx-package.js +1 -149
  61. package/dist/dlx-package.js.map +2 -2
  62. package/dist/dlx.js +1 -166
  63. package/dist/dlx.js.map +2 -2
  64. package/dist/download-lock.js +1 -137
  65. package/dist/download-lock.js.map +2 -2
  66. package/dist/effects/pulse-frames.js +1 -64
  67. package/dist/effects/pulse-frames.js.map +2 -2
  68. package/dist/effects/text-shimmer.js +1 -174
  69. package/dist/effects/text-shimmer.js.map +2 -2
  70. package/dist/effects/types.js +1 -15
  71. package/dist/effects/types.js.map +2 -2
  72. package/dist/effects/ultra.js +1 -61
  73. package/dist/effects/ultra.js.map +2 -2
  74. package/dist/env/appdata.js +1 -28
  75. package/dist/env/appdata.js.map +2 -2
  76. package/dist/env/ci.js +1 -29
  77. package/dist/env/ci.js.map +2 -2
  78. package/dist/env/comspec.js +1 -28
  79. package/dist/env/comspec.js.map +2 -2
  80. package/dist/env/debug.js +1 -28
  81. package/dist/env/debug.js.map +2 -2
  82. package/dist/env/getters.js +1 -281
  83. package/dist/env/getters.js.map +2 -2
  84. package/dist/env/github-api-url.js +1 -28
  85. package/dist/env/github-api-url.js.map +2 -2
  86. package/dist/env/github-base-ref.js +1 -28
  87. package/dist/env/github-base-ref.js.map +2 -2
  88. package/dist/env/github-ref-name.js +1 -28
  89. package/dist/env/github-ref-name.js.map +2 -2
  90. package/dist/env/github-ref-type.js +1 -28
  91. package/dist/env/github-ref-type.js.map +2 -2
  92. package/dist/env/github-repository.js +1 -28
  93. package/dist/env/github-repository.js.map +2 -2
  94. package/dist/env/github-server-url.js +1 -28
  95. package/dist/env/github-server-url.js.map +2 -2
  96. package/dist/env/github-token.js +1 -28
  97. package/dist/env/github-token.js.map +2 -2
  98. package/dist/env/helpers.js +1 -47
  99. package/dist/env/helpers.js.map +2 -2
  100. package/dist/env/home.js +1 -28
  101. package/dist/env/home.js.map +2 -2
  102. package/dist/env/jest-worker-id.js +1 -28
  103. package/dist/env/jest-worker-id.js.map +2 -2
  104. package/dist/env/lang.js +1 -28
  105. package/dist/env/lang.js.map +2 -2
  106. package/dist/env/lc-all.js +1 -28
  107. package/dist/env/lc-all.js.map +2 -2
  108. package/dist/env/lc-messages.js +1 -28
  109. package/dist/env/lc-messages.js.map +2 -2
  110. package/dist/env/localappdata.js +1 -28
  111. package/dist/env/localappdata.js.map +2 -2
  112. package/dist/env/node-auth-token.js +1 -28
  113. package/dist/env/node-auth-token.js.map +2 -2
  114. package/dist/env/node-env.js +1 -28
  115. package/dist/env/node-env.js.map +2 -2
  116. package/dist/env/npm-config-registry.js +1 -28
  117. package/dist/env/npm-config-registry.js.map +2 -2
  118. package/dist/env/npm-config-user-agent.js +1 -28
  119. package/dist/env/npm-config-user-agent.js.map +2 -2
  120. package/dist/env/npm-lifecycle-event.js +1 -28
  121. package/dist/env/npm-lifecycle-event.js.map +2 -2
  122. package/dist/env/npm-registry.js +1 -28
  123. package/dist/env/npm-registry.js.map +2 -2
  124. package/dist/env/npm-token.js +1 -28
  125. package/dist/env/npm-token.js.map +2 -2
  126. package/dist/env/path.js +1 -28
  127. package/dist/env/path.js.map +2 -2
  128. package/dist/env/pre-commit.js +1 -29
  129. package/dist/env/pre-commit.js.map +2 -2
  130. package/dist/env/shell.js +1 -28
  131. package/dist/env/shell.js.map +2 -2
  132. package/dist/env/socket-accept-risks.js +1 -29
  133. package/dist/env/socket-accept-risks.js.map +2 -2
  134. package/dist/env/socket-api-base-url.js +1 -28
  135. package/dist/env/socket-api-base-url.js.map +2 -2
  136. package/dist/env/socket-api-proxy.js +1 -28
  137. package/dist/env/socket-api-proxy.js.map +2 -2
  138. package/dist/env/socket-api-timeout.js +1 -29
  139. package/dist/env/socket-api-timeout.js.map +2 -2
  140. package/dist/env/socket-api-token.js +1 -28
  141. package/dist/env/socket-api-token.js.map +2 -2
  142. package/dist/env/socket-cacache-dir.js +1 -28
  143. package/dist/env/socket-cacache-dir.js.map +2 -2
  144. package/dist/env/socket-cli-accept-risks.js +1 -31
  145. package/dist/env/socket-cli-accept-risks.js.map +2 -2
  146. package/dist/env/socket-cli-api-base-url.js +1 -28
  147. package/dist/env/socket-cli-api-base-url.js.map +2 -2
  148. package/dist/env/socket-cli-api-proxy.js +1 -28
  149. package/dist/env/socket-cli-api-proxy.js.map +2 -2
  150. package/dist/env/socket-cli-api-timeout.js +1 -29
  151. package/dist/env/socket-cli-api-timeout.js.map +2 -2
  152. package/dist/env/socket-cli-api-token.js +1 -28
  153. package/dist/env/socket-cli-api-token.js.map +2 -2
  154. package/dist/env/socket-cli-config.js +1 -28
  155. package/dist/env/socket-cli-config.js.map +2 -2
  156. package/dist/env/socket-cli-fix.js +1 -28
  157. package/dist/env/socket-cli-fix.js.map +2 -2
  158. package/dist/env/socket-cli-no-api-token.js +1 -31
  159. package/dist/env/socket-cli-no-api-token.js.map +2 -2
  160. package/dist/env/socket-cli-optimize.js +1 -29
  161. package/dist/env/socket-cli-optimize.js.map +2 -2
  162. package/dist/env/socket-cli-org-slug.js +1 -28
  163. package/dist/env/socket-cli-org-slug.js.map +2 -2
  164. package/dist/env/socket-cli-shadow-accept-risks.js +1 -31
  165. package/dist/env/socket-cli-shadow-accept-risks.js.map +2 -2
  166. package/dist/env/socket-cli-shadow-api-token.js +1 -28
  167. package/dist/env/socket-cli-shadow-api-token.js.map +2 -2
  168. package/dist/env/socket-cli-shadow-bin.js +1 -28
  169. package/dist/env/socket-cli-shadow-bin.js.map +2 -2
  170. package/dist/env/socket-cli-shadow-progress.js +1 -31
  171. package/dist/env/socket-cli-shadow-progress.js.map +2 -2
  172. package/dist/env/socket-cli-shadow-silent.js +1 -31
  173. package/dist/env/socket-cli-shadow-silent.js.map +2 -2
  174. package/dist/env/socket-cli-view-all-risks.js +1 -31
  175. package/dist/env/socket-cli-view-all-risks.js.map +2 -2
  176. package/dist/env/socket-config.js +1 -28
  177. package/dist/env/socket-config.js.map +2 -2
  178. package/dist/env/socket-debug.js +1 -28
  179. package/dist/env/socket-debug.js.map +2 -2
  180. package/dist/env/socket-home.js +1 -28
  181. package/dist/env/socket-home.js.map +2 -2
  182. package/dist/env/socket-no-api-token.js +1 -29
  183. package/dist/env/socket-no-api-token.js.map +2 -2
  184. package/dist/env/socket-npm-registry.js +1 -28
  185. package/dist/env/socket-npm-registry.js.map +2 -2
  186. package/dist/env/socket-org-slug.js +1 -28
  187. package/dist/env/socket-org-slug.js.map +2 -2
  188. package/dist/env/socket-registry-url.js +1 -28
  189. package/dist/env/socket-registry-url.js.map +2 -2
  190. package/dist/env/socket-view-all-risks.js +1 -29
  191. package/dist/env/socket-view-all-risks.js.map +2 -2
  192. package/dist/env/temp.js +1 -28
  193. package/dist/env/temp.js.map +2 -2
  194. package/dist/env/term.js +1 -28
  195. package/dist/env/term.js.map +2 -2
  196. package/dist/env/tmp.js +1 -28
  197. package/dist/env/tmp.js.map +2 -2
  198. package/dist/env/tmpdir.js +1 -28
  199. package/dist/env/tmpdir.js.map +2 -2
  200. package/dist/env/userprofile.js +1 -28
  201. package/dist/env/userprofile.js.map +2 -2
  202. package/dist/env/vitest.js +1 -29
  203. package/dist/env/vitest.js.map +2 -2
  204. package/dist/env/xdg-cache-home.js +1 -28
  205. package/dist/env/xdg-cache-home.js.map +2 -2
  206. package/dist/env/xdg-config-home.js +1 -28
  207. package/dist/env/xdg-config-home.js.map +2 -2
  208. package/dist/env/xdg-data-home.js +1 -28
  209. package/dist/env/xdg-data-home.js.map +2 -2
  210. package/dist/env.js +1 -61
  211. package/dist/env.js.map +2 -2
  212. package/dist/fs.js +3 -626
  213. package/dist/fs.js.map +2 -2
  214. package/dist/functions.js +1 -68
  215. package/dist/functions.js.map +2 -2
  216. package/dist/git.js +2 -320
  217. package/dist/git.js.map +2 -2
  218. package/dist/github.js +1 -201
  219. package/dist/github.js.map +2 -2
  220. package/dist/globs.js +1 -152
  221. package/dist/globs.js.map +2 -2
  222. package/dist/http-request.js +1 -313
  223. package/dist/http-request.js.map +2 -2
  224. package/dist/index.js +1 -62
  225. package/dist/index.js.map +2 -2
  226. package/dist/ipc.js +1 -232
  227. package/dist/ipc.js.map +2 -2
  228. package/dist/json.js +1 -73
  229. package/dist/json.js.map +2 -2
  230. package/dist/logger.js +1 -1254
  231. package/dist/logger.js.map +2 -2
  232. package/dist/maintained-node-versions.js +1 -35
  233. package/dist/maintained-node-versions.js.map +2 -2
  234. package/dist/memoization.js +1 -210
  235. package/dist/memoization.js.map +2 -2
  236. package/dist/objects.d.ts +0 -3
  237. package/dist/objects.js +1 -319
  238. package/dist/objects.js.map +3 -3
  239. package/dist/packages/editable.js +9 -356
  240. package/dist/packages/editable.js.map +2 -2
  241. package/dist/packages/exports.js +1 -162
  242. package/dist/packages/exports.js.map +2 -2
  243. package/dist/packages/isolation.js +1 -195
  244. package/dist/packages/isolation.js.map +2 -2
  245. package/dist/packages/licenses.js +1 -214
  246. package/dist/packages/licenses.js.map +2 -2
  247. package/dist/packages/manifest.js +1 -190
  248. package/dist/packages/manifest.js.map +2 -2
  249. package/dist/packages/normalize.js +1 -120
  250. package/dist/packages/normalize.js.map +2 -2
  251. package/dist/packages/operations.js +1 -304
  252. package/dist/packages/operations.js.map +2 -2
  253. package/dist/packages/paths.js +1 -53
  254. package/dist/packages/paths.js.map +2 -2
  255. package/dist/packages/provenance.js +1 -178
  256. package/dist/packages/provenance.js.map +2 -2
  257. package/dist/packages/registry.js +1 -28
  258. package/dist/packages/registry.js.map +2 -2
  259. package/dist/packages/specs.js +1 -83
  260. package/dist/packages/specs.js.map +2 -2
  261. package/dist/packages/validation.js +1 -51
  262. package/dist/packages/validation.js.map +2 -2
  263. package/dist/packages.js +1 -129
  264. package/dist/packages.js.map +2 -2
  265. package/dist/path.js +1 -448
  266. package/dist/path.js.map +2 -2
  267. package/dist/paths.js +1 -143
  268. package/dist/paths.js.map +2 -2
  269. package/dist/performance.js +15 -216
  270. package/dist/performance.js.map +2 -2
  271. package/dist/promise-queue.js +1 -109
  272. package/dist/promise-queue.js.map +2 -2
  273. package/dist/promises.js +1 -269
  274. package/dist/promises.js.map +2 -2
  275. package/dist/prompts.js +1 -58
  276. package/dist/prompts.js.map +2 -2
  277. package/dist/regexps.js +1 -30
  278. package/dist/regexps.js.map +2 -2
  279. package/dist/sea.js +1 -44
  280. package/dist/sea.js.map +2 -2
  281. package/dist/shadow.js +1 -58
  282. package/dist/shadow.js.map +2 -2
  283. package/dist/signal-exit.js +1 -248
  284. package/dist/signal-exit.js.map +2 -2
  285. package/dist/sorts.js +1 -94
  286. package/dist/sorts.js.map +2 -2
  287. package/dist/spawn.js +1 -199
  288. package/dist/spawn.js.map +2 -2
  289. package/dist/spinner.js +1 -865
  290. package/dist/spinner.js.map +2 -2
  291. package/dist/ssri.js +1 -71
  292. package/dist/ssri.js.map +2 -2
  293. package/dist/stdio/clear.js +1 -82
  294. package/dist/stdio/clear.js.map +2 -2
  295. package/dist/stdio/divider.js +3 -89
  296. package/dist/stdio/divider.js.map +2 -2
  297. package/dist/stdio/footer.js +2 -94
  298. package/dist/stdio/footer.js.map +2 -2
  299. package/dist/stdio/header.js +2 -100
  300. package/dist/stdio/header.js.map +2 -2
  301. package/dist/stdio/mask.js +5 -206
  302. package/dist/stdio/mask.js.map +2 -2
  303. package/dist/stdio/progress.js +2 -209
  304. package/dist/stdio/progress.js.map +2 -2
  305. package/dist/stdio/prompts.js +1 -88
  306. package/dist/stdio/prompts.js.map +2 -2
  307. package/dist/stdio/stderr.js +2 -89
  308. package/dist/stdio/stderr.js.map +2 -2
  309. package/dist/stdio/stdout.js +2 -103
  310. package/dist/stdio/stdout.js.map +2 -2
  311. package/dist/streams.js +1 -78
  312. package/dist/streams.js.map +2 -2
  313. package/dist/strings.js +3 -251
  314. package/dist/strings.js.map +2 -2
  315. package/dist/suppress-warnings.js +1 -98
  316. package/dist/suppress-warnings.js.map +2 -2
  317. package/dist/tables.js +3 -128
  318. package/dist/tables.js.map +2 -2
  319. package/dist/temporary-executor.js +1 -53
  320. package/dist/temporary-executor.js.map +2 -2
  321. package/dist/types.js +1 -72
  322. package/dist/types.js.map +2 -2
  323. package/dist/url.js +1 -142
  324. package/dist/url.js.map +2 -2
  325. package/dist/utils/get-ipc.js +1 -58
  326. package/dist/utils/get-ipc.js.map +2 -2
  327. package/dist/validation/json-parser.js +1 -127
  328. package/dist/validation/json-parser.js.map +2 -2
  329. package/dist/validation/types.js +1 -15
  330. package/dist/validation/types.js.map +2 -2
  331. package/dist/versions.js +1 -153
  332. package/dist/versions.js.map +2 -2
  333. package/dist/words.js +1 -50
  334. package/dist/words.js.map +2 -2
  335. package/dist/zod.js +1 -27
  336. package/dist/zod.js.map +2 -2
  337. package/package.json +1 -1
@@ -1,211 +1,4 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var progress_exports = {};
30
- __export(progress_exports, {
31
- ProgressBar: () => ProgressBar,
32
- createProgressIndicator: () => createProgressIndicator
33
- });
34
- module.exports = __toCommonJS(progress_exports);
35
- var import_yoctocolors_cjs = __toESM(require("../external/yoctocolors-cjs"));
36
- var import_strings = require("../strings");
37
- class ProgressBar {
38
- current = 0;
39
- total;
40
- startTime;
41
- lastRender = 0;
42
- stream;
43
- options;
44
- terminated = false;
45
- lastDrawnWidth = 0;
46
- /**
47
- * Create a new progress bar instance.
48
- *
49
- * @param total - Total number of units for the progress bar
50
- * @param options - Configuration options for the progress bar
51
- *
52
- * @example
53
- * ```ts
54
- * const bar = new ProgressBar(100, {
55
- * width: 50,
56
- * format: ':bar :percent :current/:total :eta',
57
- * color: 'green'
58
- * })
59
- * ```
60
- */
61
- constructor(total, options) {
62
- this.total = total;
63
- this.startTime = Date.now();
64
- this.stream = options?.stream || process.stderr;
65
- this.options = {
66
- width: 40,
67
- format: ":bar :percent :current/:total",
68
- complete: "\u2588",
69
- incomplete: "\u2591",
70
- head: "",
71
- clear: false,
72
- // ~60fps.
73
- renderThrottle: 16,
74
- stream: this.stream,
75
- color: "cyan",
76
- ...options
77
- };
78
- }
79
- /**
80
- * Update progress to a specific value and redraw the bar.
81
- * Updates are throttled to prevent excessive rendering (default ~60fps).
82
- *
83
- * @param current - Current progress value (will be clamped to total)
84
- * @param tokens - Optional custom tokens to replace in format string
85
- *
86
- * @example
87
- * ```ts
88
- * bar.update(50)
89
- * bar.update(75, { status: 'Processing...' })
90
- * ```
91
- */
92
- update(current, tokens) {
93
- if (this.terminated) {
94
- return;
95
- }
96
- this.current = Math.min(current, this.total);
97
- const now = Date.now();
98
- if (now - this.lastRender < this.options.renderThrottle && this.current < this.total) {
99
- return;
100
- }
101
- this.lastRender = now;
102
- this.render(tokens);
103
- if (this.current >= this.total) {
104
- this.terminate();
105
- }
106
- }
107
- /**
108
- * Increment progress by a specified amount.
109
- * Convenience method for `update(current + amount)`.
110
- *
111
- * @param amount - Amount to increment by
112
- * @param tokens - Optional custom tokens to replace in format string
113
- * @default amount 1
114
- *
115
- * @example
116
- * ```ts
117
- * bar.tick() // Increment by 1
118
- * bar.tick(5) // Increment by 5
119
- * bar.tick(1, { file: 'data.json' })
120
- * ```
121
- */
122
- tick(amount = 1, tokens) {
123
- this.update(this.current + amount, tokens);
124
- }
125
- /**
126
- * Render the progress bar.
127
- */
128
- render(tokens) {
129
- const colorFn = import_yoctocolors_cjs.default[this.options.color] || ((s) => s);
130
- const percent = Math.floor(this.current / this.total * 100);
131
- const elapsed = Date.now() - this.startTime;
132
- const eta = this.current === 0 ? 0 : elapsed / this.current * (this.total - this.current);
133
- const availableWidth = this.options.width;
134
- const filledWidth = Math.floor(this.current / this.total * availableWidth);
135
- const emptyWidth = availableWidth - filledWidth;
136
- const filled = (0, import_strings.repeatString)(this.options.complete, filledWidth);
137
- const empty = (0, import_strings.repeatString)(this.options.incomplete, emptyWidth);
138
- const bar = colorFn(filled) + empty;
139
- let output = this.options.format;
140
- output = output.replace(":bar", bar);
141
- output = output.replace(":percent", `${percent}%`);
142
- output = output.replace(":current", String(this.current));
143
- output = output.replace(":total", String(this.total));
144
- output = output.replace(":elapsed", this.formatTime(elapsed));
145
- output = output.replace(":eta", this.formatTime(eta));
146
- if (tokens) {
147
- for (const [key, value] of Object.entries(tokens)) {
148
- output = output.replace(`:${key}`, String(value));
149
- }
150
- }
151
- this.clearLine();
152
- this.stream.write(output);
153
- this.lastDrawnWidth = (0, import_strings.stripAnsi)(output).length;
154
- }
155
- /**
156
- * Clear the current line.
157
- */
158
- clearLine() {
159
- if (this.stream.isTTY) {
160
- this.stream.cursorTo(0);
161
- this.stream.clearLine(0);
162
- } else if (this.lastDrawnWidth > 0) {
163
- this.stream.write(`\r${(0, import_strings.repeatString)(" ", this.lastDrawnWidth)}\r`);
164
- }
165
- }
166
- /**
167
- * Format time in seconds to human readable.
168
- */
169
- formatTime(ms) {
170
- const seconds = Math.round(ms / 1e3);
171
- if (seconds < 60) {
172
- return `${seconds}s`;
173
- }
174
- const minutes = Math.floor(seconds / 60);
175
- const remainingSeconds = seconds % 60;
176
- return `${minutes}m${remainingSeconds}s`;
177
- }
178
- /**
179
- * Terminate the progress bar and optionally clear it.
180
- * Called automatically when progress reaches 100%.
181
- * If `clear` option is true, removes the bar from terminal.
182
- * Otherwise, moves to next line to preserve the final state.
183
- */
184
- terminate() {
185
- if (this.terminated) {
186
- return;
187
- }
188
- this.terminated = true;
189
- if (this.options.clear) {
190
- this.clearLine();
191
- } else {
192
- this.stream.write("\n");
193
- }
194
- }
195
- }
196
- function createProgressIndicator(current, total, label) {
197
- const percent = Math.floor(current / total * 100);
198
- const progress = `${current}/${total}`;
199
- let output = "";
200
- if (label) {
201
- output += `${label}: `;
202
- }
203
- output += `${import_yoctocolors_cjs.default.cyan(`[${percent}%]`)} ${progress}`;
204
- return output;
205
- }
206
- // Annotate the CommonJS export names for ESM import in node:
207
- 0 && (module.exports = {
208
- ProgressBar,
209
- createProgressIndicator
210
- });
2
+ var w=Object.create;var c=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var S=Object.getPrototypeOf,W=Object.prototype.hasOwnProperty;var y=(r,t)=>{for(var e in t)c(r,e,{get:t[e],enumerable:!0})},u=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of $(t))!W.call(r,n)&&n!==e&&c(r,n,{get:()=>t[n],enumerable:!(s=T(t,n))||s.enumerable});return r};var D=(r,t,e)=>(e=r!=null?w(S(r)):{},u(t||!r||!r.__esModule?c(e,"default",{value:r,enumerable:!0}):e,r)),R=r=>u(c({},"__esModule",{value:!0}),r);var k={};y(k,{ProgressBar:()=>M,createProgressIndicator:()=>P});module.exports=R(k);var l=D(require("../external/yoctocolors-cjs")),o=require("../strings");class M{current=0;total;startTime;lastRender=0;stream;options;terminated=!1;lastDrawnWidth=0;constructor(t,e){this.total=t,this.startTime=Date.now(),this.stream=e?.stream||process.stderr,this.options={width:40,format:":bar :percent :current/:total",complete:"\u2588",incomplete:"\u2591",head:"",clear:!1,renderThrottle:16,stream:this.stream,color:"cyan",...e}}update(t,e){if(this.terminated)return;this.current=Math.min(t,this.total);const s=Date.now();s-this.lastRender<this.options.renderThrottle&&this.current<this.total||(this.lastRender=s,this.render(e),this.current>=this.total&&this.terminate())}tick(t=1,e){this.update(this.current+t,e)}render(t){const e=l.default[this.options.color]||(h=>h),s=Math.floor(this.current/this.total*100),n=Date.now()-this.startTime,a=this.current===0?0:n/this.current*(this.total-this.current),d=this.options.width,m=Math.floor(this.current/this.total*d),p=d-m,f=(0,o.repeatString)(this.options.complete,m),g=(0,o.repeatString)(this.options.incomplete,p),b=e(f)+g;let i=this.options.format;if(i=i.replace(":bar",b),i=i.replace(":percent",`${s}%`),i=i.replace(":current",String(this.current)),i=i.replace(":total",String(this.total)),i=i.replace(":elapsed",this.formatTime(n)),i=i.replace(":eta",this.formatTime(a)),t)for(const[h,v]of Object.entries(t))i=i.replace(`:${h}`,String(v));this.clearLine(),this.stream.write(i),this.lastDrawnWidth=(0,o.stripAnsi)(i).length}clearLine(){this.stream.isTTY?(this.stream.cursorTo(0),this.stream.clearLine(0)):this.lastDrawnWidth>0&&this.stream.write(`\r${(0,o.repeatString)(" ",this.lastDrawnWidth)}\r`)}formatTime(t){const e=Math.round(t/1e3);if(e<60)return`${e}s`;const s=Math.floor(e/60),n=e%60;return`${s}m${n}s`}terminate(){this.terminated||(this.terminated=!0,this.options.clear?this.clearLine():this.stream.write(`
3
+ `))}}function P(r,t,e){const s=Math.floor(r/t*100),n=`${r}/${t}`;let a="";return e&&(a+=`${e}: `),a+=`${l.default.cyan(`[${s}%]`)} ${n}`,a}0&&(module.exports={ProgressBar,createProgressIndicator});
211
4
  //# sourceMappingURL=progress.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/stdio/progress.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Progress bar utilities for CLI applications.\n * Provides various progress indicators including bars, percentages, and spinners.\n */\n\nimport colors from '../external/yoctocolors-cjs'\nimport { repeatString, stripAnsi } from '../strings'\n\nexport interface ProgressBarOptions {\n /**\n * Width of the progress bar in characters.\n * @default 40\n */\n width?: number | undefined\n /**\n * Format template for progress bar display.\n * Available tokens: `:bar`, `:percent`, `:current`, `:total`, `:elapsed`, `:eta`.\n * Custom tokens can be passed via the `tokens` parameter in `update()` or `tick()`.\n * @default ':bar :percent :current/:total'\n * @example\n * ```ts\n * format: ':bar :percent :current/:total :eta'\n * ```\n */\n format?: string | undefined\n /**\n * Character(s) to use for completed portion of bar.\n * @default '\u2588'\n */\n complete?: string | undefined\n /**\n * Character(s) to use for incomplete portion of bar.\n * @default '\u2591'\n */\n incomplete?: string | undefined\n /**\n * Character(s) to use for the head of the progress bar.\n * @default ''\n */\n head?: string | undefined\n /**\n * Clear the progress bar when complete.\n * @default false\n */\n clear?: boolean | undefined\n /**\n * Minimum time between renders in milliseconds.\n * ~60fps = 16ms throttle.\n * @default 16\n */\n renderThrottle?: number | undefined\n /**\n * Stream to write progress bar output to.\n * @default process.stderr\n */\n stream?: NodeJS.WriteStream | undefined\n /**\n * Color to apply to the completed portion of the bar.\n * @default 'cyan'\n */\n color?: 'cyan' | 'green' | 'yellow' | 'blue' | 'magenta' | undefined\n}\n\nexport class ProgressBar {\n private current: number = 0\n private total: number\n private startTime: number\n private lastRender: number = 0\n private stream: NodeJS.WriteStream\n private options: Required<ProgressBarOptions>\n private terminated: boolean = false\n private lastDrawnWidth: number = 0\n\n /**\n * Create a new progress bar instance.\n *\n * @param total - Total number of units for the progress bar\n * @param options - Configuration options for the progress bar\n *\n * @example\n * ```ts\n * const bar = new ProgressBar(100, {\n * width: 50,\n * format: ':bar :percent :current/:total :eta',\n * color: 'green'\n * })\n * ```\n */\n constructor(total: number, options?: ProgressBarOptions) {\n this.total = total\n this.startTime = Date.now()\n this.stream = options?.stream || process.stderr\n this.options = {\n width: 40,\n format: ':bar :percent :current/:total',\n complete: '\u2588',\n incomplete: '\u2591',\n head: '',\n clear: false,\n // ~60fps.\n renderThrottle: 16,\n stream: this.stream,\n color: 'cyan',\n ...options,\n }\n }\n\n /**\n * Update progress to a specific value and redraw the bar.\n * Updates are throttled to prevent excessive rendering (default ~60fps).\n *\n * @param current - Current progress value (will be clamped to total)\n * @param tokens - Optional custom tokens to replace in format string\n *\n * @example\n * ```ts\n * bar.update(50)\n * bar.update(75, { status: 'Processing...' })\n * ```\n */\n update(current: number, tokens?: Record<string, unknown>): void {\n if (this.terminated) {\n return\n }\n\n this.current = Math.min(current, this.total)\n\n // Throttle rendering\n const now = Date.now()\n if (\n now - this.lastRender < this.options.renderThrottle &&\n this.current < this.total\n ) {\n return\n }\n this.lastRender = now\n\n this.render(tokens)\n\n if (this.current >= this.total) {\n this.terminate()\n }\n }\n\n /**\n * Increment progress by a specified amount.\n * Convenience method for `update(current + amount)`.\n *\n * @param amount - Amount to increment by\n * @param tokens - Optional custom tokens to replace in format string\n * @default amount 1\n *\n * @example\n * ```ts\n * bar.tick() // Increment by 1\n * bar.tick(5) // Increment by 5\n * bar.tick(1, { file: 'data.json' })\n * ```\n */\n tick(amount: number = 1, tokens?: Record<string, unknown>): void {\n this.update(this.current + amount, tokens)\n }\n\n /**\n * Render the progress bar.\n */\n private render(tokens?: Record<string, unknown>): void {\n const colorFn = colors[this.options.color] || ((s: string) => s)\n\n // Calculate values\n const percent = Math.floor((this.current / this.total) * 100)\n const elapsed = Date.now() - this.startTime\n const eta =\n this.current === 0\n ? 0\n : (elapsed / this.current) * (this.total - this.current)\n\n // Build bar\n const availableWidth = this.options.width\n const filledWidth = Math.floor((this.current / this.total) * availableWidth)\n const emptyWidth = availableWidth - filledWidth\n\n const filled = repeatString(this.options.complete, filledWidth)\n const empty = repeatString(this.options.incomplete, emptyWidth)\n const bar = colorFn(filled) + empty\n\n // Format output\n let output = this.options.format\n output = output.replace(':bar', bar)\n output = output.replace(':percent', `${percent}%`)\n output = output.replace(':current', String(this.current))\n output = output.replace(':total', String(this.total))\n output = output.replace(':elapsed', this.formatTime(elapsed))\n output = output.replace(':eta', this.formatTime(eta))\n\n // Replace custom tokens\n if (tokens) {\n for (const [key, value] of Object.entries(tokens)) {\n output = output.replace(`:${key}`, String(value))\n }\n }\n\n // Clear line and write\n this.clearLine()\n this.stream.write(output)\n this.lastDrawnWidth = stripAnsi(output).length\n }\n\n /**\n * Clear the current line.\n */\n private clearLine(): void {\n if (this.stream.isTTY) {\n this.stream.cursorTo(0)\n this.stream.clearLine(0)\n } else if (this.lastDrawnWidth > 0) {\n this.stream.write(`\\r${repeatString(' ', this.lastDrawnWidth)}\\r`)\n }\n }\n\n /**\n * Format time in seconds to human readable.\n */\n private formatTime(ms: number): string {\n const seconds = Math.round(ms / 1000)\n if (seconds < 60) {\n return `${seconds}s`\n }\n const minutes = Math.floor(seconds / 60)\n const remainingSeconds = seconds % 60\n return `${minutes}m${remainingSeconds}s`\n }\n\n /**\n * Terminate the progress bar and optionally clear it.\n * Called automatically when progress reaches 100%.\n * If `clear` option is true, removes the bar from terminal.\n * Otherwise, moves to next line to preserve the final state.\n */\n terminate(): void {\n if (this.terminated) {\n return\n }\n this.terminated = true\n\n if (this.options.clear) {\n this.clearLine()\n } else {\n this.stream.write('\\n')\n }\n }\n}\n\n/**\n * Create a simple progress indicator without a graphical bar.\n * Returns a formatted string showing progress as percentage and fraction.\n *\n * @param current - Current progress value\n * @param total - Total progress value\n * @param label - Optional label prefix\n * @returns Formatted progress indicator string\n *\n * @example\n * ```ts\n * createProgressIndicator(50, 100)\n * // Returns: '[50%] 50/100'\n *\n * createProgressIndicator(3, 10, 'Files')\n * // Returns: 'Files: [30%] 3/10'\n * ```\n */\nexport function createProgressIndicator(\n current: number,\n total: number,\n label?: string | undefined,\n): string {\n const percent = Math.floor((current / total) * 100)\n const progress = `${current}/${total}`\n\n let output = ''\n if (label) {\n output += `${label}: `\n }\n\n output += `${colors.cyan(`[${percent}%]`)} ${progress}`\n\n return output\n}\n"],
5
- "mappings": "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",
6
- "names": ["colors"]
5
+ "mappings": "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",
6
+ "names": ["progress_exports", "__export", "ProgressBar", "createProgressIndicator", "__toCommonJS", "import_yoctocolors_cjs", "import_strings", "total", "options", "current", "tokens", "now", "amount", "colorFn", "colors", "s", "percent", "elapsed", "eta", "availableWidth", "filledWidth", "emptyWidth", "filled", "empty", "bar", "output", "key", "value", "ms", "seconds", "minutes", "remainingSeconds", "label", "progress"]
7
7
  }
@@ -1,90 +1,3 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var prompts_exports = {};
20
- __export(prompts_exports, {
21
- Separator: () => ActualSeparator,
22
- confirm: () => confirm,
23
- input: () => input,
24
- password: () => password,
25
- search: () => search,
26
- select: () => select,
27
- wrapPrompt: () => wrapPrompt
28
- });
29
- module.exports = __toCommonJS(prompts_exports);
30
- var import_process = require("#constants/process");
31
- const abortSignal = (0, import_process.getAbortSignal)();
32
- const spinner = (0, import_process.getSpinner)();
33
- // @__NO_SIDE_EFFECTS__
34
- function wrapPrompt(inquirerPrompt) {
35
- return async (...args) => {
36
- const origContext = args.length > 1 ? args[1] : void 0;
37
- const { spinner: contextSpinner, ...contextWithoutSpinner } = origContext ?? {};
38
- const spinnerInstance = contextSpinner !== void 0 ? contextSpinner : spinner;
39
- const signal = abortSignal;
40
- if (origContext) {
41
- args[1] = {
42
- signal,
43
- ...contextWithoutSpinner
44
- };
45
- } else {
46
- args[1] = { signal };
47
- }
48
- const wasSpinning = !!spinnerInstance?.isSpinning;
49
- spinnerInstance?.stop();
50
- let result;
51
- try {
52
- result = await inquirerPrompt(...args);
53
- } catch (e) {
54
- if (e instanceof TypeError) {
55
- throw e;
56
- }
57
- }
58
- if (wasSpinning) {
59
- spinnerInstance.start();
60
- }
61
- return typeof result === "string" ? result.trim() : result;
62
- };
63
- }
64
- const confirmExport = require("../external/@inquirer/confirm");
65
- const inputExport = require("../external/@inquirer/input");
66
- const passwordExport = require("../external/@inquirer/password");
67
- const searchExport = require("../external/@inquirer/search");
68
- const selectExport = require("../external/@inquirer/select");
69
- const confirmRaw = confirmExport.default ?? confirmExport;
70
- const inputRaw = inputExport.default ?? inputExport;
71
- const passwordRaw = passwordExport.default ?? passwordExport;
72
- const searchRaw = searchExport.default ?? searchExport;
73
- const selectRaw = selectExport.default ?? selectExport;
74
- const ActualSeparator = selectExport.Separator;
75
- const confirm = /* @__PURE__ */ wrapPrompt(confirmRaw);
76
- const input = /* @__PURE__ */ wrapPrompt(inputRaw);
77
- const password = /* @__PURE__ */ wrapPrompt(passwordRaw);
78
- const search = /* @__PURE__ */ wrapPrompt(searchRaw);
79
- const select = /* @__PURE__ */ wrapPrompt(selectRaw);
80
- // Annotate the CommonJS export names for ESM import in node:
81
- 0 && (module.exports = {
82
- Separator,
83
- confirm,
84
- input,
85
- password,
86
- search,
87
- select,
88
- wrapPrompt
89
- });
2
+ var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var R=Object.prototype.hasOwnProperty;var h=(n,e)=>{for(var t in e)c(n,t,{get:e[t],enumerable:!0})},b=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of y(e))!R.call(n,r)&&r!==t&&c(n,r,{get:()=>e[r],enumerable:!(a=g(e,r))||a.enumerable});return n};var q=n=>b(c({},"__esModule",{value:!0}),n);var D={};h(D,{Separator:()=>J,confirm:()=>N,input:()=>V,password:()=>W,search:()=>j,select:()=>v,wrapPrompt:()=>o});module.exports=q(D);var s=require("#constants/process");const C=(0,s.getAbortSignal)(),T=(0,s.getSpinner)();function o(n){return async(...e)=>{const t=e.length>1?e[1]:void 0,{spinner:a,...r}=t??{},p=a!==void 0?a:T,d=C;t?e[1]={signal:d,...r}:e[1]={signal:d};const m=!!p?.isSpinning;p?.stop();let i;try{i=await n(...e)}catch(f){if(f instanceof TypeError)throw f}return m&&p.start(),typeof i=="string"?i.trim():i}}const l=require("../external/@inquirer/confirm"),w=require("../external/@inquirer/input"),x=require("../external/@inquirer/password"),S=require("../external/@inquirer/search"),u=require("../external/@inquirer/select"),E=l.default??l,k=w.default??w,P=x.default??x,A=S.default??S,I=u.default??u,J=u.Separator,N=o(E),V=o(k),W=o(P),j=o(A),v=o(I);0&&(module.exports={Separator,confirm,input,password,search,select,wrapPrompt});
90
3
  //# sourceMappingURL=prompts.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/stdio/prompts.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview User prompt utilities for interactive scripts.\n * Provides inquirer.js integration with spinner support and context handling.\n */\n\nimport { getAbortSignal, getSpinner } from '#constants/process'\n\nconst abortSignal = getAbortSignal()\nconst spinner = getSpinner()\n\n// Type definitions\n\n/**\n * Choice option for select and search prompts.\n *\n * @template Value - Type of the choice value\n */\nexport interface Choice<Value = unknown> {\n /** The value returned when this choice is selected */\n value: Value\n /** Whether this choice is disabled, or a reason string */\n disabled?: boolean | string | undefined\n /** Additional description text shown below the choice */\n description?: string | undefined\n /** Display name for the choice (defaults to value.toString()) */\n name?: string | undefined\n /** Short text shown after selection (defaults to name) */\n short?: string | undefined\n}\n\n/**\n * Context for inquirer prompts.\n * Minimal context interface used by Inquirer prompts.\n * Duplicated from `@inquirer/type` - InquirerContext.\n */\ninterface InquirerContext {\n /** Abort signal for cancelling the prompt */\n signal?: AbortSignal | undefined\n /** Input stream (defaults to process.stdin) */\n input?: NodeJS.ReadableStream | undefined\n /** Output stream (defaults to process.stdout) */\n output?: NodeJS.WritableStream | undefined\n /** Clear the prompt from terminal when done */\n clearPromptOnDone?: boolean | undefined\n}\n\n/**\n * Extended context with spinner support.\n * Allows passing a spinner instance to be managed during prompts.\n */\nexport type Context = import('../objects').Remap<\n InquirerContext & {\n /** Optional spinner to stop/start during prompt display */\n spinner?: import('../spinner').Spinner | undefined\n }\n>\n\n/**\n * Separator for visual grouping in select/checkbox prompts.\n * Creates a non-selectable visual separator line.\n * Duplicated from `@inquirer/select` - Separator.\n * This type definition ensures the Separator type is available in published packages.\n *\n * @example\n * import { Separator } from './prompts'\n *\n * const choices = [\n * { name: 'Option 1', value: 1 },\n * new Separator(),\n * { name: 'Option 2', value: 2 }\n * ]\n */\ndeclare class SeparatorType {\n readonly separator: string\n readonly type: 'separator'\n constructor(separator?: string)\n}\n\nexport type Separator = SeparatorType\n\n/**\n * Wrap an inquirer prompt with spinner handling and signal injection.\n * Automatically stops/starts spinners during prompt display and injects abort signals.\n * Trims string results and handles cancellation gracefully.\n *\n * @template T - Type of the prompt result\n * @param inquirerPrompt - The inquirer prompt function to wrap\n * @returns Wrapped prompt function with spinner and signal handling\n *\n * @example\n * const myPrompt = wrapPrompt(rawInquirerPrompt)\n * const result = await myPrompt({ message: 'Enter name:' })\n */\n/*@__NO_SIDE_EFFECTS__*/\nexport function wrapPrompt<T = unknown>(\n inquirerPrompt: (...args: unknown[]) => Promise<T>,\n): (...args: unknown[]) => Promise<T | undefined> {\n return async (...args) => {\n const origContext = (args.length > 1 ? args[1] : undefined) as\n | Context\n | undefined\n const { spinner: contextSpinner, ...contextWithoutSpinner } =\n origContext ?? ({} as Context)\n const spinnerInstance =\n contextSpinner !== undefined ? contextSpinner : spinner\n const signal = abortSignal\n if (origContext) {\n args[1] = {\n signal,\n ...contextWithoutSpinner,\n }\n } else {\n args[1] = { signal }\n }\n const wasSpinning = !!spinnerInstance?.isSpinning\n spinnerInstance?.stop()\n let result: unknown\n try {\n result = await inquirerPrompt(...args)\n } catch (e) {\n if (e instanceof TypeError) {\n throw e\n }\n }\n if (wasSpinning) {\n spinnerInstance.start()\n }\n return (typeof result === 'string' ? result.trim() : result) as\n | T\n | undefined\n }\n}\n\n// c8 ignore start - Third-party inquirer library requires and exports not testable in isolation.\nconst confirmExport = /*@__PURE__*/ require('../external/@inquirer/confirm')\nconst inputExport = /*@__PURE__*/ require('../external/@inquirer/input')\nconst passwordExport = /*@__PURE__*/ require('../external/@inquirer/password')\nconst searchExport = /*@__PURE__*/ require('../external/@inquirer/search')\nconst selectExport = /*@__PURE__*/ require('../external/@inquirer/select')\nconst confirmRaw = confirmExport.default ?? confirmExport\nconst inputRaw = inputExport.default ?? inputExport\nconst passwordRaw = passwordExport.default ?? passwordExport\nconst searchRaw = searchExport.default ?? searchExport\nconst selectRaw = selectExport.default ?? selectExport\nconst ActualSeparator = selectExport.Separator\n// c8 ignore stop\n\n/**\n * Prompt for a yes/no confirmation.\n * Wrapped with spinner handling and abort signal support.\n *\n * @example\n * const answer = await confirm({ message: 'Continue?' })\n * if (answer) { // user confirmed }\n */\nexport const confirm: typeof confirmRaw = wrapPrompt(confirmRaw)\n\n/**\n * Prompt for text input.\n * Wrapped with spinner handling and abort signal support.\n * Result is automatically trimmed.\n *\n * @example\n * const name = await input({ message: 'Enter your name:' })\n */\nexport const input: typeof inputRaw = wrapPrompt(inputRaw)\n\n/**\n * Prompt for password input (hidden characters).\n * Wrapped with spinner handling and abort signal support.\n *\n * @example\n * const token = await password({ message: 'Enter API token:' })\n */\nexport const password: typeof passwordRaw = wrapPrompt(passwordRaw)\n\n/**\n * Prompt with searchable/filterable choices.\n * Wrapped with spinner handling and abort signal support.\n *\n * @example\n * const result = await search({\n * message: 'Select a package:',\n * source: async (input) => fetchPackages(input)\n * })\n */\nexport const search: typeof searchRaw = wrapPrompt(searchRaw)\n\n/**\n * Prompt to select from a list of choices.\n * Wrapped with spinner handling and abort signal support.\n *\n * @example\n * const choice = await select({\n * message: 'Choose an option:',\n * choices: [\n * { name: 'Option 1', value: 'opt1' },\n * { name: 'Option 2', value: 'opt2' }\n * ]\n * })\n */\nexport const select: typeof selectRaw = wrapPrompt(selectRaw)\n\nexport { ActualSeparator as Separator }\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAA2C;AAE3C,MAAM,kBAAc,+BAAe;AACnC,MAAM,cAAU,2BAAW;AAAA;AAsFpB,SAAS,WACd,gBACgD;AAChD,SAAO,UAAU,SAAS;AACxB,UAAM,cAAe,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI;AAGjD,UAAM,EAAE,SAAS,gBAAgB,GAAG,sBAAsB,IACxD,eAAgB,CAAC;AACnB,UAAM,kBACJ,mBAAmB,SAAY,iBAAiB;AAClD,UAAM,SAAS;AACf,QAAI,aAAa;AACf,WAAK,CAAC,IAAI;AAAA,QACR;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF,OAAO;AACL,WAAK,CAAC,IAAI,EAAE,OAAO;AAAA,IACrB;AACA,UAAM,cAAc,CAAC,CAAC,iBAAiB;AACvC,qBAAiB,KAAK;AACtB,QAAI;AACJ,QAAI;AACF,eAAS,MAAM,eAAe,GAAG,IAAI;AAAA,IACvC,SAAS,GAAG;AACV,UAAI,aAAa,WAAW;AAC1B,cAAM;AAAA,MACR;AAAA,IACF;AACA,QAAI,aAAa;AACf,sBAAgB,MAAM;AAAA,IACxB;AACA,WAAQ,OAAO,WAAW,WAAW,OAAO,KAAK,IAAI;AAAA,EAGvD;AACF;AAGA,MAAM,gBAA8B,QAAQ,+BAA+B;AAC3E,MAAM,cAA4B,QAAQ,6BAA6B;AACvE,MAAM,iBAA+B,QAAQ,gCAAgC;AAC7E,MAAM,eAA6B,QAAQ,8BAA8B;AACzE,MAAM,eAA6B,QAAQ,8BAA8B;AACzE,MAAM,aAAa,cAAc,WAAW;AAC5C,MAAM,WAAW,YAAY,WAAW;AACxC,MAAM,cAAc,eAAe,WAAW;AAC9C,MAAM,YAAY,aAAa,WAAW;AAC1C,MAAM,YAAY,aAAa,WAAW;AAC1C,MAAM,kBAAkB,aAAa;AAW9B,MAAM,UAA6B,2BAAW,UAAU;AAUxD,MAAM,QAAyB,2BAAW,QAAQ;AASlD,MAAM,WAA+B,2BAAW,WAAW;AAY3D,MAAM,SAA2B,2BAAW,SAAS;AAerD,MAAM,SAA2B,2BAAW,SAAS;",
6
- "names": []
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,YAAAC,EAAA,UAAAC,EAAA,aAAAC,EAAA,WAAAC,EAAA,WAAAC,EAAA,eAAAC,IAAA,eAAAC,EAAAT,GAKA,IAAAU,EAA2C,8BAE3C,MAAMC,KAAc,kBAAe,EAC7BC,KAAU,cAAW,EAsFpB,SAASJ,EACdK,EACgD,CAChD,MAAO,UAAUC,IAAS,CACxB,MAAMC,EAAeD,EAAK,OAAS,EAAIA,EAAK,CAAC,EAAI,OAG3C,CAAE,QAASE,EAAgB,GAAGC,CAAsB,EACxDF,GAAgB,CAAC,EACbG,EACJF,IAAmB,OAAYA,EAAiBJ,EAC5CO,EAASR,EACXI,EACFD,EAAK,CAAC,EAAI,CACR,OAAAK,EACA,GAAGF,CACL,EAEAH,EAAK,CAAC,EAAI,CAAE,OAAAK,CAAO,EAErB,MAAMC,EAAc,CAAC,CAACF,GAAiB,WACvCA,GAAiB,KAAK,EACtB,IAAIG,EACJ,GAAI,CACFA,EAAS,MAAMR,EAAe,GAAGC,CAAI,CACvC,OAASQ,EAAG,CACV,GAAIA,aAAa,UACf,MAAMA,CAEV,CACA,OAAIF,GACFF,EAAgB,MAAM,EAEhB,OAAOG,GAAW,SAAWA,EAAO,KAAK,EAAIA,CAGvD,CACF,CAGA,MAAME,EAA8B,QAAQ,+BAA+B,EACrEC,EAA4B,QAAQ,6BAA6B,EACjEC,EAA+B,QAAQ,gCAAgC,EACvEC,EAA6B,QAAQ,8BAA8B,EACnEC,EAA6B,QAAQ,8BAA8B,EACnEC,EAAaL,EAAc,SAAWA,EACtCM,EAAWL,EAAY,SAAWA,EAClCM,EAAcL,EAAe,SAAWA,EACxCM,EAAYL,EAAa,SAAWA,EACpCM,EAAYL,EAAa,SAAWA,EACpCzB,EAAkByB,EAAa,UAWxBxB,EAA6BK,EAAWoB,CAAU,EAUlDxB,EAAyBI,EAAWqB,CAAQ,EAS5CxB,EAA+BG,EAAWsB,CAAW,EAYrDxB,EAA2BE,EAAWuB,CAAS,EAe/CxB,EAA2BC,EAAWwB,CAAS",
6
+ "names": ["prompts_exports", "__export", "ActualSeparator", "confirm", "input", "password", "search", "select", "wrapPrompt", "__toCommonJS", "import_process", "abortSignal", "spinner", "inquirerPrompt", "args", "origContext", "contextSpinner", "contextWithoutSpinner", "spinnerInstance", "signal", "wasSpinning", "result", "e", "confirmExport", "inputExport", "passwordExport", "searchExport", "selectExport", "confirmRaw", "inputRaw", "passwordRaw", "searchRaw", "selectRaw"]
7
7
  }
@@ -1,91 +1,4 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var stderr_exports = {};
20
- __export(stderr_exports, {
21
- clearLine: () => clearLine,
22
- cursorTo: () => cursorTo,
23
- getColumns: () => getColumns,
24
- getRows: () => getRows,
25
- isTTY: () => isTTY,
26
- stderr: () => stderr,
27
- writeError: () => writeError,
28
- writeErrorFormatted: () => writeErrorFormatted,
29
- writeErrorLine: () => writeErrorLine,
30
- writeStackTrace: () => writeStackTrace,
31
- writeWarning: () => writeWarning
32
- });
33
- module.exports = __toCommonJS(stderr_exports);
34
- const stderr = process.stderr;
35
- function writeErrorLine(text = "") {
36
- stderr.write(`${text}
37
- `);
38
- }
39
- function writeError(text) {
40
- stderr.write(text);
41
- }
42
- function clearLine() {
43
- if (stderr.isTTY) {
44
- stderr.cursorTo(0);
45
- stderr.clearLine(0);
46
- }
47
- }
48
- function cursorTo(x, y) {
49
- if (stderr.isTTY) {
50
- stderr.cursorTo(x, y);
51
- }
52
- }
53
- function isTTY() {
54
- return stderr.isTTY || false;
55
- }
56
- function getColumns() {
57
- return stderr.columns || 80;
58
- }
59
- function getRows() {
60
- return stderr.rows || 24;
61
- }
62
- function writeWarning(message, prefix = "Warning") {
63
- const formatted = `${prefix}: ${message}`;
64
- writeErrorLine(formatted);
65
- }
66
- function writeErrorFormatted(message, prefix = "Error") {
67
- const formatted = `${prefix}: ${message}`;
68
- writeErrorLine(formatted);
69
- }
70
- function writeStackTrace(error) {
71
- if (error.stack) {
72
- writeErrorLine(error.stack);
73
- } else {
74
- writeErrorFormatted(error.message);
75
- }
76
- }
77
- // Annotate the CommonJS export names for ESM import in node:
78
- 0 && (module.exports = {
79
- clearLine,
80
- cursorTo,
81
- getColumns,
82
- getRows,
83
- isTTY,
84
- stderr,
85
- writeError,
86
- writeErrorFormatted,
87
- writeErrorLine,
88
- writeStackTrace,
89
- writeWarning
90
- });
2
+ var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var p=(r,t)=>{for(var n in t)s(r,n,{get:t[n],enumerable:!0})},T=(r,t,n,c)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of a(t))!d.call(r,e)&&e!==n&&s(r,e,{get:()=>t[e],enumerable:!(c=f(t,e))||c.enumerable});return r};var g=r=>T(s({},"__esModule",{value:!0}),r);var Y={};p(Y,{clearLine:()=>x,cursorTo:()=>w,getColumns:()=>v,getRows:()=>b,isTTY:()=>l,stderr:()=>o,writeError:()=>m,writeErrorFormatted:()=>u,writeErrorLine:()=>i,writeStackTrace:()=>$,writeWarning:()=>E});module.exports=g(Y);const o=process.stderr;function i(r=""){o.write(`${r}
3
+ `)}function m(r){o.write(r)}function x(){o.isTTY&&(o.cursorTo(0),o.clearLine(0))}function w(r,t){o.isTTY&&o.cursorTo(r,t)}function l(){return o.isTTY||!1}function v(){return o.columns||80}function b(){return o.rows||24}function E(r,t="Warning"){const n=`${t}: ${r}`;i(n)}function u(r,t="Error"){const n=`${t}: ${r}`;i(n)}function $(r){r.stack?i(r.stack):u(r.message)}0&&(module.exports={clearLine,cursorTo,getColumns,getRows,isTTY,stderr,writeError,writeErrorFormatted,writeErrorLine,writeStackTrace,writeWarning});
91
4
  //# sourceMappingURL=stderr.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/stdio/stderr.ts"],
4
4
  "sourcesContent": ["/**\n * @fileoverview Standard error stream utilities.\n * Provides utilities for writing to stderr with formatting and control.\n */\n\n// Get the actual stderr stream\nconst stderr: NodeJS.WriteStream = process.stderr\n\n/**\n * Write a line to stderr with trailing newline.\n * Used for error messages, warnings, and diagnostic output.\n *\n * @param text - Text to write\n * @default text ''\n *\n * @example\n * ```ts\n * writeErrorLine('Error: File not found')\n * writeErrorLine() // Write empty line\n * ```\n */\nexport function writeErrorLine(text: string = ''): void {\n stderr.write(`${text}\\n`)\n}\n\n/**\n * Write text to stderr without adding a newline.\n *\n * @param text - Text to write\n *\n * @example\n * ```ts\n * writeError('Downloading...')\n * // Later update progress\n * ```\n */\nexport function writeError(text: string): void {\n stderr.write(text)\n}\n\n/**\n * Clear the current line on stderr.\n * Only works in TTY environments.\n *\n * @example\n * ```ts\n * writeError('Processing...')\n * clearLine()\n * writeError('Done!')\n * ```\n */\nexport function clearLine(): void {\n if (stderr.isTTY) {\n stderr.cursorTo(0)\n stderr.clearLine(0)\n }\n}\n\n/**\n * Move cursor to specific position on stderr.\n * Only works in TTY environments.\n *\n * @param x - Column position (0-based)\n * @param y - Row position (0-based, optional)\n *\n * @example\n * ```ts\n * cursorTo(0) // Move to start of line\n * cursorTo(10, 5) // Move to column 10, row 5\n * ```\n */\nexport function cursorTo(x: number, y?: number | undefined): void {\n if (stderr.isTTY) {\n stderr.cursorTo(x, y)\n }\n}\n\n/**\n * Check if stderr is connected to a TTY (terminal).\n *\n * @returns `true` if stderr is a TTY, `false` if piped/redirected\n *\n * @example\n * ```ts\n * if (isTTY()) {\n * // Show colored error messages\n * } else {\n * // Use plain text\n * }\n * ```\n */\nexport function isTTY(): boolean {\n return stderr.isTTY || false\n}\n\n/**\n * Get the number of columns (width) in the terminal.\n *\n * @returns Terminal width in characters\n * @default 80\n *\n * @example\n * ```ts\n * const width = getColumns()\n * console.error(`Terminal is ${width} characters wide`)\n * ```\n */\nexport function getColumns(): number {\n return stderr.columns || 80\n}\n\n/**\n * Get the number of rows (height) in the terminal.\n *\n * @returns Terminal height in lines\n * @default 24\n *\n * @example\n * ```ts\n * const height = getRows()\n * console.error(`Terminal is ${height} lines tall`)\n * ```\n */\nexport function getRows(): number {\n return stderr.rows || 24\n}\n\n/**\n * Write a formatted warning message to stderr.\n *\n * @param message - Warning message text\n * @param prefix - Prefix label for the warning\n * @default prefix 'Warning'\n *\n * @example\n * ```ts\n * writeWarning('Deprecated API usage')\n * // Output: 'Warning: Deprecated API usage'\n *\n * writeWarning('Invalid config', 'Config')\n * // Output: 'Config: Invalid config'\n * ```\n */\nexport function writeWarning(\n message: string,\n prefix: string = 'Warning',\n): void {\n const formatted = `${prefix}: ${message}`\n writeErrorLine(formatted)\n}\n\n/**\n * Write a formatted error message to stderr.\n *\n * @param message - Error message text\n * @param prefix - Prefix label for the error\n * @default prefix 'Error'\n *\n * @example\n * ```ts\n * writeErrorFormatted('File not found')\n * // Output: 'Error: File not found'\n *\n * writeErrorFormatted('Connection failed', 'Network')\n * // Output: 'Network: Connection failed'\n * ```\n */\nexport function writeErrorFormatted(\n message: string,\n prefix: string = 'Error',\n): void {\n const formatted = `${prefix}: ${message}`\n writeErrorLine(formatted)\n}\n\n/**\n * Write an error's stack trace to stderr.\n * Falls back to formatted error message if no stack is available.\n *\n * @param error - Error object to write\n *\n * @example\n * ```ts\n * try {\n * throw new Error('Something went wrong')\n * } catch (err) {\n * writeStackTrace(err as Error)\n * }\n * ```\n */\nexport function writeStackTrace(error: Error): void {\n if (error.stack) {\n writeErrorLine(error.stack)\n } else {\n writeErrorFormatted(error.message)\n }\n}\n\n// Export the raw stream for advanced usage\nexport { stderr }\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,SAA6B,QAAQ;AAepC,SAAS,eAAe,OAAe,IAAU;AACtD,SAAO,MAAM,GAAG,IAAI;AAAA,CAAI;AAC1B;AAaO,SAAS,WAAW,MAAoB;AAC7C,SAAO,MAAM,IAAI;AACnB;AAaO,SAAS,YAAkB;AAChC,MAAI,OAAO,OAAO;AAChB,WAAO,SAAS,CAAC;AACjB,WAAO,UAAU,CAAC;AAAA,EACpB;AACF;AAeO,SAAS,SAAS,GAAW,GAA8B;AAChE,MAAI,OAAO,OAAO;AAChB,WAAO,SAAS,GAAG,CAAC;AAAA,EACtB;AACF;AAgBO,SAAS,QAAiB;AAC/B,SAAO,OAAO,SAAS;AACzB;AAcO,SAAS,aAAqB;AACnC,SAAO,OAAO,WAAW;AAC3B;AAcO,SAAS,UAAkB;AAChC,SAAO,OAAO,QAAQ;AACxB;AAkBO,SAAS,aACd,SACA,SAAiB,WACX;AACN,QAAM,YAAY,GAAG,MAAM,KAAK,OAAO;AACvC,iBAAe,SAAS;AAC1B;AAkBO,SAAS,oBACd,SACA,SAAiB,SACX;AACN,QAAM,YAAY,GAAG,MAAM,KAAK,OAAO;AACvC,iBAAe,SAAS;AAC1B;AAiBO,SAAS,gBAAgB,OAAoB;AAClD,MAAI,MAAM,OAAO;AACf,mBAAe,MAAM,KAAK;AAAA,EAC5B,OAAO;AACL,wBAAoB,MAAM,OAAO;AAAA,EACnC;AACF;",
6
- "names": []
5
+ "mappings": ";4ZAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,EAAA,aAAAC,EAAA,eAAAC,EAAA,YAAAC,EAAA,UAAAC,EAAA,WAAAC,EAAA,eAAAC,EAAA,wBAAAC,EAAA,mBAAAC,EAAA,oBAAAC,EAAA,iBAAAC,IAAA,eAAAC,EAAAb,GAMA,MAAMO,EAA6B,QAAQ,OAepC,SAASG,EAAeI,EAAe,GAAU,CACtDP,EAAO,MAAM,GAAGO,CAAI;AAAA,CAAI,CAC1B,CAaO,SAASN,EAAWM,EAAoB,CAC7CP,EAAO,MAAMO,CAAI,CACnB,CAaO,SAASZ,GAAkB,CAC5BK,EAAO,QACTA,EAAO,SAAS,CAAC,EACjBA,EAAO,UAAU,CAAC,EAEtB,CAeO,SAASJ,EAASY,EAAWC,EAA8B,CAC5DT,EAAO,OACTA,EAAO,SAASQ,EAAGC,CAAC,CAExB,CAgBO,SAASV,GAAiB,CAC/B,OAAOC,EAAO,OAAS,EACzB,CAcO,SAASH,GAAqB,CACnC,OAAOG,EAAO,SAAW,EAC3B,CAcO,SAASF,GAAkB,CAChC,OAAOE,EAAO,MAAQ,EACxB,CAkBO,SAASK,EACdK,EACAC,EAAiB,UACX,CACN,MAAMC,EAAY,GAAGD,CAAM,KAAKD,CAAO,GACvCP,EAAeS,CAAS,CAC1B,CAkBO,SAASV,EACdQ,EACAC,EAAiB,QACX,CACN,MAAMC,EAAY,GAAGD,CAAM,KAAKD,CAAO,GACvCP,EAAeS,CAAS,CAC1B,CAiBO,SAASR,EAAgBS,EAAoB,CAC9CA,EAAM,MACRV,EAAeU,EAAM,KAAK,EAE1BX,EAAoBW,EAAM,OAAO,CAErC",
6
+ "names": ["stderr_exports", "__export", "clearLine", "cursorTo", "getColumns", "getRows", "isTTY", "stderr", "writeError", "writeErrorFormatted", "writeErrorLine", "writeStackTrace", "writeWarning", "__toCommonJS", "text", "x", "y", "message", "prefix", "formatted", "error"]
7
7
  }
@@ -1,105 +1,4 @@
1
1
  /* Socket Lib - Built with esbuild */
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var stdout_exports = {};
20
- __export(stdout_exports, {
21
- clearLine: () => clearLine,
22
- clearScreenDown: () => clearScreenDown,
23
- cursorTo: () => cursorTo,
24
- ensureCursorOnExit: () => ensureCursorOnExit,
25
- getColumns: () => getColumns,
26
- getRows: () => getRows,
27
- hideCursor: () => hideCursor,
28
- isTTY: () => isTTY,
29
- showCursor: () => showCursor,
30
- stdout: () => stdout,
31
- write: () => write,
32
- writeLine: () => writeLine
33
- });
34
- module.exports = __toCommonJS(stdout_exports);
35
- var import_node_tty = require("node:tty");
36
- const stdout = process.stdout;
37
- function writeLine(text = "") {
38
- stdout.write(`${text}
39
- `);
40
- }
41
- function write(text) {
42
- stdout.write(text);
43
- }
44
- function clearLine() {
45
- if (stdout.isTTY) {
46
- stdout.cursorTo(0);
47
- stdout.clearLine(0);
48
- }
49
- }
50
- function cursorTo(x, y) {
51
- if (stdout.isTTY) {
52
- stdout.cursorTo(x, y);
53
- }
54
- }
55
- function clearScreenDown() {
56
- if (stdout.isTTY) {
57
- stdout.clearScreenDown();
58
- }
59
- }
60
- function isTTY() {
61
- return stdout.isTTY || false;
62
- }
63
- function getColumns() {
64
- return stdout.columns || 80;
65
- }
66
- function getRows() {
67
- return stdout.rows || 24;
68
- }
69
- function hideCursor() {
70
- if (stdout.isTTY && stdout instanceof import_node_tty.WriteStream) {
71
- stdout.write("\x1B[?25l");
72
- }
73
- }
74
- function showCursor() {
75
- if (stdout.isTTY && stdout instanceof import_node_tty.WriteStream) {
76
- stdout.write("\x1B[?25h");
77
- }
78
- }
79
- function ensureCursorOnExit() {
80
- process.on("exit", showCursor);
81
- process.on("SIGINT", () => {
82
- showCursor();
83
- process.exit(130);
84
- });
85
- process.on("SIGTERM", () => {
86
- showCursor();
87
- process.exit(143);
88
- });
89
- }
90
- // Annotate the CommonJS export names for ESM import in node:
91
- 0 && (module.exports = {
92
- clearLine,
93
- clearScreenDown,
94
- cursorTo,
95
- ensureCursorOnExit,
96
- getColumns,
97
- getRows,
98
- hideCursor,
99
- isTTY,
100
- showCursor,
101
- stdout,
102
- write,
103
- writeLine
104
- });
2
+ var s=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var x=(r,e)=>{for(var i in e)s(r,i,{get:e[i],enumerable:!0})},d=(r,e,i,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of p(e))!T.call(r,n)&&n!==i&&s(r,n,{get:()=>e[n],enumerable:!(c=f(e,n))||c.enumerable});return r};var w=r=>d(s({},"__esModule",{value:!0}),r);var I={};x(I,{clearLine:()=>l,clearScreenDown:()=>S,cursorTo:()=>v,ensureCursorOnExit:()=>h,getColumns:()=>b,getRows:()=>g,hideCursor:()=>C,isTTY:()=>Y,showCursor:()=>t,stdout:()=>o,write:()=>m,writeLine:()=>a});module.exports=w(I);var u=require("node:tty");const o=process.stdout;function a(r=""){o.write(`${r}
3
+ `)}function m(r){o.write(r)}function l(){o.isTTY&&(o.cursorTo(0),o.clearLine(0))}function v(r,e){o.isTTY&&o.cursorTo(r,e)}function S(){o.isTTY&&o.clearScreenDown()}function Y(){return o.isTTY||!1}function b(){return o.columns||80}function g(){return o.rows||24}function C(){o.isTTY&&o instanceof u.WriteStream&&o.write("\x1B[?25l")}function t(){o.isTTY&&o instanceof u.WriteStream&&o.write("\x1B[?25h")}function h(){process.on("exit",t),process.on("SIGINT",()=>{t(),process.exit(130)}),process.on("SIGTERM",()=>{t(),process.exit(143)})}0&&(module.exports={clearLine,clearScreenDown,cursorTo,ensureCursorOnExit,getColumns,getRows,hideCursor,isTTY,showCursor,stdout,write,writeLine});
105
4
  //# sourceMappingURL=stdout.js.map