@pnpm/exe 11.0.0-alpha.9 → 11.0.0-beta.1

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 (219) hide show
  1. package/dist/node_modules/@gar/promise-retry/lib/index.js +28 -0
  2. package/dist/node_modules/@gar/promise-retry/package.json +48 -0
  3. package/dist/node_modules/@npmcli/agent/package.json +7 -7
  4. package/dist/node_modules/@npmcli/fs/package.json +4 -4
  5. package/dist/node_modules/abbrev/package.json +11 -15
  6. package/dist/node_modules/balanced-match/package.json +4 -7
  7. package/dist/node_modules/brace-expansion/dist/commonjs/index.js +1 -1
  8. package/dist/node_modules/brace-expansion/dist/esm/index.js +1 -1
  9. package/dist/node_modules/brace-expansion/package.json +3 -3
  10. package/dist/node_modules/cacache/package.json +10 -11
  11. package/dist/node_modules/glob/dist/commonjs/glob.js +2 -1
  12. package/dist/node_modules/glob/dist/commonjs/index.min.js +4 -0
  13. package/dist/node_modules/glob/dist/commonjs/pattern.js +4 -0
  14. package/dist/node_modules/glob/dist/esm/glob.js +2 -1
  15. package/dist/node_modules/glob/dist/esm/index.min.js +4 -0
  16. package/dist/node_modules/glob/dist/esm/pattern.js +4 -0
  17. package/dist/node_modules/glob/package.json +38 -37
  18. package/dist/node_modules/iconv-lite/encodings/dbcs-codec.js +460 -525
  19. package/dist/node_modules/iconv-lite/encodings/dbcs-data.js +179 -182
  20. package/dist/node_modules/iconv-lite/encodings/index.js +15 -15
  21. package/dist/node_modules/iconv-lite/encodings/internal.js +168 -148
  22. package/dist/node_modules/iconv-lite/encodings/sbcs-codec.js +55 -52
  23. package/dist/node_modules/iconv-lite/encodings/sbcs-data.js +174 -175
  24. package/dist/node_modules/iconv-lite/encodings/utf16.js +121 -131
  25. package/dist/node_modules/iconv-lite/encodings/utf32.js +226 -238
  26. package/dist/node_modules/iconv-lite/encodings/utf7.js +208 -215
  27. package/dist/node_modules/iconv-lite/lib/bom-handling.js +30 -34
  28. package/dist/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  29. package/dist/node_modules/iconv-lite/lib/index.js +125 -123
  30. package/dist/node_modules/iconv-lite/lib/streams.js +92 -96
  31. package/dist/node_modules/iconv-lite/package.json +34 -8
  32. package/dist/node_modules/isexe/package.json +65 -18
  33. package/dist/node_modules/lru-cache/dist/commonjs/index.js +134 -85
  34. package/dist/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  35. package/dist/node_modules/lru-cache/dist/esm/index.js +134 -85
  36. package/dist/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  37. package/dist/node_modules/lru-cache/package.json +18 -41
  38. package/dist/node_modules/make-fetch-happen/lib/remote.js +1 -1
  39. package/dist/node_modules/make-fetch-happen/package.json +10 -10
  40. package/dist/node_modules/minimatch/dist/commonjs/ast.js +266 -21
  41. package/dist/node_modules/minimatch/dist/commonjs/index.js +178 -92
  42. package/dist/node_modules/minimatch/dist/esm/ast.js +266 -21
  43. package/dist/node_modules/minimatch/dist/esm/index.js +178 -92
  44. package/dist/node_modules/minimatch/package.json +4 -4
  45. package/dist/node_modules/minipass/dist/commonjs/index.js +13 -3
  46. package/dist/node_modules/minipass/dist/esm/index.js +3 -1
  47. package/dist/node_modules/minipass/package.json +9 -14
  48. package/dist/node_modules/minipass-fetch/lib/body.js +25 -15
  49. package/dist/node_modules/minipass-fetch/package.json +7 -7
  50. package/dist/node_modules/minipass-sized/dist/commonjs/index.js +69 -0
  51. package/dist/node_modules/minipass-sized/dist/esm/index.js +64 -0
  52. package/dist/node_modules/minipass-sized/package.json +39 -9
  53. package/dist/node_modules/node-gyp/.release-please-manifest.json +1 -1
  54. package/dist/node_modules/node-gyp/bin/node-gyp.js +7 -0
  55. package/dist/node_modules/node-gyp/gyp/.release-please-manifest.json +1 -1
  56. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +3 -3
  57. package/dist/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +26 -1
  58. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +1 -1
  59. package/dist/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +3 -4
  60. package/dist/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +1 -1
  61. package/dist/node_modules/node-gyp/gyp/pyproject.toml +1 -1
  62. package/dist/node_modules/node-gyp/lib/build.js +2 -2
  63. package/dist/node_modules/node-gyp/lib/find-python.js +2 -8
  64. package/dist/node_modules/node-gyp/lib/find-visualstudio.js +11 -5
  65. package/dist/node_modules/node-gyp/lib/install.js +1 -1
  66. package/dist/node_modules/node-gyp/lib/process-release.js +3 -3
  67. package/dist/node_modules/node-gyp/package.json +13 -13
  68. package/dist/node_modules/nopt/package.json +5 -5
  69. package/dist/node_modules/path-scurry/package.json +8 -24
  70. package/dist/node_modules/proc-log/lib/index.js +10 -5
  71. package/dist/node_modules/proc-log/package.json +5 -5
  72. package/dist/node_modules/retry/lib/retry.js +2 -2
  73. package/dist/node_modules/retry/lib/retry_operation.js +10 -6
  74. package/dist/node_modules/retry/package.json +6 -2
  75. package/dist/node_modules/ssri/lib/index.js +33 -63
  76. package/dist/node_modules/ssri/package.json +17 -17
  77. package/dist/node_modules/tar/dist/commonjs/index.min.js +2 -2
  78. package/dist/node_modules/tar/dist/commonjs/unpack.js +4 -4
  79. package/dist/node_modules/tar/dist/esm/index.min.js +2 -2
  80. package/dist/node_modules/tar/dist/esm/unpack.js +4 -4
  81. package/dist/node_modules/tar/package.json +6 -6
  82. package/dist/node_modules/unique-filename/package.json +5 -5
  83. package/dist/node_modules/unique-slug/package.json +4 -4
  84. package/dist/node_modules/which/package.json +29 -20
  85. package/dist/pnpm.mjs +225713 -208017
  86. package/dist/worker.js +4838 -5926
  87. package/package.json +10 -10
  88. package/setup.js +12 -14
  89. package/dist/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js +0 -16
  90. package/dist/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js +0 -170
  91. package/dist/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js +0 -307
  92. package/dist/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js +0 -7
  93. package/dist/node_modules/@isaacs/cliui/dist/commonjs/index.js +0 -322
  94. package/dist/node_modules/@isaacs/cliui/dist/commonjs/index.min.js +0 -12
  95. package/dist/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js +0 -49
  96. package/dist/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js +0 -8
  97. package/dist/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js +0 -176
  98. package/dist/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js +0 -12
  99. package/dist/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js +0 -167
  100. package/dist/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js +0 -299
  101. package/dist/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js +0 -3
  102. package/dist/node_modules/@isaacs/cliui/dist/esm/index.js +0 -317
  103. package/dist/node_modules/@isaacs/cliui/dist/esm/index.min.js +0 -12
  104. package/dist/node_modules/@isaacs/cliui/dist/esm/string-width/index.js +0 -46
  105. package/dist/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js +0 -4
  106. package/dist/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js +0 -172
  107. package/dist/node_modules/@isaacs/cliui/package.json +0 -163
  108. package/dist/node_modules/cross-spawn/LICENSE +0 -21
  109. package/dist/node_modules/cross-spawn/index.js +0 -39
  110. package/dist/node_modules/cross-spawn/lib/enoent.js +0 -59
  111. package/dist/node_modules/cross-spawn/lib/parse.js +0 -91
  112. package/dist/node_modules/cross-spawn/lib/util/escape.js +0 -47
  113. package/dist/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  114. package/dist/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  115. package/dist/node_modules/cross-spawn/package.json +0 -73
  116. package/dist/node_modules/encoding/.prettierrc.js +0 -8
  117. package/dist/node_modules/encoding/LICENSE +0 -16
  118. package/dist/node_modules/encoding/lib/encoding.js +0 -83
  119. package/dist/node_modules/encoding/package.json +0 -18
  120. package/dist/node_modules/err-code/.eslintrc.json +0 -7
  121. package/dist/node_modules/err-code/bower.json +0 -30
  122. package/dist/node_modules/err-code/index.js +0 -47
  123. package/dist/node_modules/err-code/index.umd.js +0 -51
  124. package/dist/node_modules/err-code/package.json +0 -34
  125. package/dist/node_modules/foreground-child/LICENSE +0 -15
  126. package/dist/node_modules/foreground-child/dist/commonjs/all-signals.js +0 -58
  127. package/dist/node_modules/foreground-child/dist/commonjs/index.js +0 -123
  128. package/dist/node_modules/foreground-child/dist/commonjs/proxy-signals.js +0 -38
  129. package/dist/node_modules/foreground-child/dist/commonjs/watchdog.js +0 -50
  130. package/dist/node_modules/foreground-child/dist/esm/all-signals.js +0 -52
  131. package/dist/node_modules/foreground-child/dist/esm/index.js +0 -115
  132. package/dist/node_modules/foreground-child/dist/esm/proxy-signals.js +0 -34
  133. package/dist/node_modules/foreground-child/dist/esm/watchdog.js +0 -46
  134. package/dist/node_modules/foreground-child/package.json +0 -106
  135. package/dist/node_modules/glob/dist/esm/bin.d.mts +0 -3
  136. package/dist/node_modules/glob/dist/esm/bin.mjs +0 -346
  137. package/dist/node_modules/iconv-lite/.github/dependabot.yml +0 -11
  138. package/dist/node_modules/iconv-lite/.idea/codeStyles/Project.xml +0 -47
  139. package/dist/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml +0 -5
  140. package/dist/node_modules/iconv-lite/.idea/iconv-lite.iml +0 -12
  141. package/dist/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml +0 -6
  142. package/dist/node_modules/iconv-lite/.idea/modules.xml +0 -8
  143. package/dist/node_modules/iconv-lite/.idea/vcs.xml +0 -6
  144. package/dist/node_modules/isexe/LICENSE +0 -15
  145. package/dist/node_modules/isexe/index.js +0 -57
  146. package/dist/node_modules/isexe/mode.js +0 -41
  147. package/dist/node_modules/isexe/windows.js +0 -42
  148. package/dist/node_modules/jackspeak/dist/commonjs/index.js +0 -944
  149. package/dist/node_modules/jackspeak/dist/commonjs/index.min.js +0 -33
  150. package/dist/node_modules/jackspeak/dist/commonjs/package.json +0 -3
  151. package/dist/node_modules/jackspeak/dist/esm/index.js +0 -936
  152. package/dist/node_modules/jackspeak/dist/esm/index.min.js +0 -33
  153. package/dist/node_modules/jackspeak/dist/esm/package.json +0 -3
  154. package/dist/node_modules/jackspeak/package.json +0 -115
  155. package/dist/node_modules/lru-cache/LICENSE +0 -15
  156. package/dist/node_modules/minipass/LICENSE +0 -15
  157. package/dist/node_modules/minipass-sized/index.js +0 -67
  158. package/dist/node_modules/minipass-sized/node_modules/minipass/LICENSE +0 -15
  159. package/dist/node_modules/minipass-sized/node_modules/minipass/index.js +0 -649
  160. package/dist/node_modules/minipass-sized/node_modules/minipass/package.json +0 -56
  161. package/dist/node_modules/minipass-sized/package-lock.json +0 -3464
  162. package/dist/node_modules/node-gyp/node_modules/isexe/dist/commonjs/package.json +0 -3
  163. package/dist/node_modules/node-gyp/node_modules/isexe/dist/esm/package.json +0 -3
  164. package/dist/node_modules/node-gyp/node_modules/isexe/package.json +0 -78
  165. package/dist/node_modules/node-gyp/node_modules/which/LICENSE +0 -15
  166. package/dist/node_modules/node-gyp/node_modules/which/package.json +0 -52
  167. package/dist/node_modules/package-json-from-dist/dist/commonjs/index.js +0 -134
  168. package/dist/node_modules/package-json-from-dist/dist/commonjs/package.json +0 -3
  169. package/dist/node_modules/package-json-from-dist/dist/esm/index.js +0 -129
  170. package/dist/node_modules/package-json-from-dist/dist/esm/package.json +0 -3
  171. package/dist/node_modules/package-json-from-dist/package.json +0 -68
  172. package/dist/node_modules/path-key/index.js +0 -16
  173. package/dist/node_modules/path-key/license +0 -9
  174. package/dist/node_modules/path-key/package.json +0 -39
  175. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.js +0 -1589
  176. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/index.min.js +0 -2
  177. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/commonjs/package.json +0 -3
  178. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.js +0 -1585
  179. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/index.min.js +0 -2
  180. package/dist/node_modules/path-scurry/node_modules/lru-cache/dist/esm/package.json +0 -3
  181. package/dist/node_modules/path-scurry/node_modules/lru-cache/package.json +0 -101
  182. package/dist/node_modules/promise-retry/index.js +0 -52
  183. package/dist/node_modules/promise-retry/package.json +0 -37
  184. package/dist/node_modules/retry/equation.gif +0 -0
  185. package/dist/node_modules/shebang-command/index.js +0 -19
  186. package/dist/node_modules/shebang-command/license +0 -9
  187. package/dist/node_modules/shebang-command/package.json +0 -34
  188. package/dist/node_modules/shebang-regex/index.js +0 -2
  189. package/dist/node_modules/shebang-regex/license +0 -9
  190. package/dist/node_modules/shebang-regex/package.json +0 -35
  191. package/dist/node_modules/signal-exit/LICENSE.txt +0 -16
  192. package/dist/node_modules/signal-exit/dist/cjs/browser.js +0 -10
  193. package/dist/node_modules/signal-exit/dist/cjs/index.js +0 -279
  194. package/dist/node_modules/signal-exit/dist/cjs/package.json +0 -3
  195. package/dist/node_modules/signal-exit/dist/cjs/signals.js +0 -42
  196. package/dist/node_modules/signal-exit/dist/mjs/browser.js +0 -4
  197. package/dist/node_modules/signal-exit/dist/mjs/index.js +0 -275
  198. package/dist/node_modules/signal-exit/dist/mjs/package.json +0 -3
  199. package/dist/node_modules/signal-exit/dist/mjs/signals.js +0 -39
  200. package/dist/node_modules/signal-exit/package.json +0 -106
  201. package/dist/node_modules/which/bin/node-which +0 -52
  202. package/dist/node_modules/which/which.js +0 -125
  203. /package/dist/node_modules/{promise-retry → @gar/promise-retry}/LICENSE +0 -0
  204. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/index.js +0 -0
  205. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/index.min.js +0 -0
  206. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/options.js +0 -0
  207. /package/dist/node_modules/{@isaacs/cliui → isexe}/dist/commonjs/package.json +0 -0
  208. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/posix.js +0 -0
  209. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/commonjs/win32.js +0 -0
  210. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/index.js +0 -0
  211. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/index.min.js +0 -0
  212. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/options.js +0 -0
  213. /package/dist/node_modules/{@isaacs/cliui → isexe}/dist/esm/package.json +0 -0
  214. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/posix.js +0 -0
  215. /package/dist/node_modules/{node-gyp/node_modules/isexe → isexe}/dist/esm/win32.js +0 -0
  216. /package/dist/node_modules/{foreground-child → minipass-sized}/dist/commonjs/package.json +0 -0
  217. /package/dist/node_modules/{foreground-child → minipass-sized}/dist/esm/package.json +0 -0
  218. /package/dist/node_modules/{node-gyp/node_modules/which → which}/bin/which.js +0 -0
  219. /package/dist/node_modules/{node-gyp/node_modules/which → which}/lib/index.js +0 -0
@@ -1,317 +0,0 @@
1
- import { stringWidth } from './string-width/index.js';
2
- import { stripAnsi } from './strip-ansi/index.js';
3
- import { wrap } from './wrap-ansi/index.js';
4
- const align = {
5
- right: (str, width) => `${' '.repeat(Math.max(0, width - stringWidth(str)))}${str}`,
6
- center: (str, width) => `${' '.repeat(Math.max(0, width - stringWidth(str)) >> 1)}${str}`,
7
- };
8
- const top = 0;
9
- const right = 1;
10
- const bottom = 2;
11
- const left = 3;
12
- export class UI {
13
- width;
14
- wrap;
15
- rows;
16
- constructor(opts) {
17
- this.width = opts.width;
18
- /* c8 ignore start */
19
- this.wrap = opts.wrap ?? true;
20
- /* c8 ignore stop */
21
- this.rows = [];
22
- }
23
- span(...args) {
24
- const cols = this.div(...args);
25
- cols.span = true;
26
- }
27
- resetOutput() {
28
- this.rows = [];
29
- }
30
- div(...args) {
31
- if (args.length === 0) {
32
- this.div('');
33
- }
34
- if (this.wrap &&
35
- this.shouldApplyLayoutDSL(...args) &&
36
- typeof args[0] === 'string') {
37
- return this.applyLayoutDSL(args[0]);
38
- }
39
- const cols = Object.assign(args.map(arg => {
40
- if (typeof arg === 'string') {
41
- return this.colFromString(arg);
42
- }
43
- return arg;
44
- }), { span: false });
45
- this.rows.push(cols);
46
- return cols;
47
- }
48
- shouldApplyLayoutDSL(...args) {
49
- return (args.length === 1 &&
50
- typeof args[0] === 'string' &&
51
- /[\t\n]/.test(args[0]));
52
- }
53
- applyLayoutDSL(str) {
54
- const rows = str.split('\n').map(row => row.split('\t'));
55
- let leftColumnWidth = 0;
56
- // simple heuristic for layout, make sure the
57
- // second column lines up along the left-hand.
58
- // don't allow the first column to take up more
59
- // than 50% of the screen.
60
- rows.forEach(columns => {
61
- if (columns.length > 1 &&
62
- stringWidth(String(columns[0])) > leftColumnWidth) {
63
- leftColumnWidth = Math.min(Math.floor(this.width * 0.5), stringWidth(String(columns[0])));
64
- }
65
- });
66
- // generate a table:
67
- // replacing ' ' with padding calculations.
68
- // using the algorithmically generated width.
69
- rows.forEach(columns => {
70
- this.div(...columns.map((r, i) => {
71
- return {
72
- text: r.trim(),
73
- padding: this.measurePadding(r),
74
- width: i === 0 && columns.length > 1 ? leftColumnWidth : undefined,
75
- };
76
- }));
77
- });
78
- const row = this.rows[this.rows.length - 1];
79
- /* c8 ignore start */
80
- if (!row) {
81
- throw new Error('no rows found');
82
- }
83
- /* c8 ignore stop */
84
- return row;
85
- }
86
- colFromString(text) {
87
- return {
88
- text,
89
- padding: this.measurePadding(text),
90
- };
91
- }
92
- measurePadding(str) {
93
- // measure padding without ansi escape codes
94
- const noAnsi = stripAnsi(str);
95
- const [right = '', left = ''] = [
96
- noAnsi.match(/\s*$/)?.[0],
97
- noAnsi.match(/^\s*/)?.[0],
98
- ];
99
- return [0, right.length, 0, left.length];
100
- }
101
- toString() {
102
- const lines = [];
103
- this.rows.forEach(row => {
104
- this.rowToString(row, lines);
105
- });
106
- // don't display any lines with the
107
- // hidden flag set.
108
- return lines
109
- .filter(line => !line.hidden)
110
- .map(line => line.text)
111
- .join('\n');
112
- }
113
- rowToString(row, lines) {
114
- this.rasterize(row).forEach((rrow, r) => {
115
- let str = '';
116
- rrow.forEach((col, c) => {
117
- const column = row[c];
118
- const { width } = column; // the width with padding.
119
- const wrapWidth = this.negatePadding(column); // the width without padding.
120
- let ts = col; // temporary string used during alignment/padding.
121
- if (wrapWidth > stringWidth(col)) {
122
- ts += ' '.repeat(wrapWidth - stringWidth(col));
123
- }
124
- // align the string within its column.
125
- if (column.align && column.align !== 'left' && this.wrap) {
126
- const fn = align[column.align];
127
- ts = fn(ts.trim(), wrapWidth);
128
- if (stringWidth(ts) < wrapWidth) {
129
- /* c8 ignore start */
130
- const w = width || 0;
131
- /* c8 ignore stop */
132
- ts += ' '.repeat(w - stringWidth(ts) - 1);
133
- }
134
- }
135
- // apply border and padding to string.
136
- const padding = column.padding || [0, 0, 0, 0];
137
- if (padding[left]) {
138
- str += ' '.repeat(padding[left]);
139
- }
140
- str += addBorder(column, ts, '| ');
141
- str += ts;
142
- str += addBorder(column, ts, ' |');
143
- if (padding[right]) {
144
- str += ' '.repeat(padding[right]);
145
- }
146
- // if prior row is span, try to render the
147
- // current row on the prior line.
148
- if (r === 0 && lines.length > 0) {
149
- const lastLine = lines[lines.length - 1];
150
- /* c8 ignore start */
151
- if (!lastLine) {
152
- throw new Error('last line not found');
153
- }
154
- /* c8 ignore stop */
155
- str = this.renderInline(str, lastLine);
156
- }
157
- });
158
- // remove trailing whitespace.
159
- lines.push({
160
- text: str.replace(/ +$/, ''),
161
- span: row.span,
162
- });
163
- });
164
- return lines;
165
- }
166
- // if the full 'source' can render in
167
- // the target line, do so.
168
- renderInline(source, previousLine) {
169
- const match = source.match(/^ */);
170
- /* c8 ignore start */
171
- const leadingWhitespace = match ? match[0].length : 0;
172
- /* c8 ignore stop */
173
- const target = previousLine.text;
174
- const targetTextWidth = stringWidth(target.trimEnd());
175
- if (!previousLine.span) {
176
- return source;
177
- }
178
- // if we're not applying wrapping logic,
179
- // just always append to the span.
180
- if (!this.wrap) {
181
- previousLine.hidden = true;
182
- return target + source;
183
- }
184
- if (leadingWhitespace < targetTextWidth) {
185
- return source;
186
- }
187
- previousLine.hidden = true;
188
- return (target.trimEnd() +
189
- ' '.repeat(leadingWhitespace - targetTextWidth) +
190
- source.trimStart());
191
- }
192
- rasterize(row) {
193
- const rrows = [];
194
- const widths = this.columnWidths(row);
195
- let wrapped;
196
- // word wrap all columns, and create
197
- // a data-structure that is easy to rasterize.
198
- row.forEach((col, c) => {
199
- // leave room for left and right padding.
200
- col.width = widths[c];
201
- if (this.wrap) {
202
- wrapped = wrap(col.text, this.negatePadding(col), {
203
- hard: true,
204
- }).split('\n');
205
- }
206
- else {
207
- wrapped = col.text.split('\n');
208
- }
209
- if (col.border) {
210
- wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');
211
- wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'");
212
- }
213
- // add top and bottom padding.
214
- if (col.padding) {
215
- wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));
216
- wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));
217
- }
218
- wrapped.forEach((str, r) => {
219
- if (!rrows[r]) {
220
- rrows.push([]);
221
- }
222
- /* c8 ignore start */
223
- const rrow = rrows[r] ?? [];
224
- /* c8 ignore stop */
225
- for (let i = 0; i < c; i++) {
226
- if (rrow[i] === undefined) {
227
- rrow.push('');
228
- }
229
- }
230
- rrow.push(str);
231
- });
232
- });
233
- return rrows;
234
- }
235
- negatePadding(col) {
236
- /* c8 ignore start */
237
- let wrapWidth = col.width || 0;
238
- /* c8 ignore stop */
239
- if (col.padding) {
240
- wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);
241
- }
242
- if (col.border) {
243
- wrapWidth -= 4;
244
- }
245
- return wrapWidth;
246
- }
247
- columnWidths(row) {
248
- if (!this.wrap) {
249
- return row.map(col => {
250
- return col.width || stringWidth(col.text);
251
- });
252
- }
253
- let unset = row.length;
254
- let remainingWidth = this.width;
255
- // column widths can be set in config.
256
- const widths = row.map(col => {
257
- if (col.width) {
258
- unset--;
259
- remainingWidth -= col.width;
260
- return col.width;
261
- }
262
- return undefined;
263
- });
264
- // any unset widths should be calculated.
265
- /* c8 ignore start */
266
- const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;
267
- /* c8 ignore stop */
268
- return widths.map((w, i) => {
269
- if (w === undefined) {
270
- /* c8 ignore start */
271
- const col = row[i] ?? { text: '', padding: [] };
272
- /* c8 ignore stop */
273
- return Math.max(unsetWidth, _minWidth(col));
274
- }
275
- return w;
276
- });
277
- }
278
- }
279
- const addBorder = (col, ts, style) => {
280
- if (col.border) {
281
- if (/[.']-+[.']/.test(ts)) {
282
- return '';
283
- }
284
- if (ts.trim().length !== 0) {
285
- return style;
286
- }
287
- return ' ';
288
- }
289
- return '';
290
- };
291
- // calculates the minimum width of
292
- // a column, based on padding preferences.
293
- const _minWidth = (col) => {
294
- const padding = col.padding || [];
295
- const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);
296
- if (col.border) {
297
- return minWidth + 4;
298
- }
299
- return minWidth;
300
- };
301
- const getWindowWidth = () => {
302
- /* c8 ignore start */
303
- if (typeof process === 'object' &&
304
- process.stdout &&
305
- process.stdout.columns) {
306
- return process.stdout.columns;
307
- }
308
- return 80;
309
- };
310
- /* c8 ignore stop */
311
- export const cliui = (opts = {}) => new UI({
312
- /* c8 ignore start */
313
- width: opts?.width || getWindowWidth(),
314
- wrap: opts?.wrap,
315
- /* c8 ignore stop */
316
- });
317
- //# sourceMappingURL=index.js.map
@@ -1,12 +0,0 @@
1
- var $=({onlyFirst:F=!1}={})=>{let t="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(t,F?void 0:"g")};var R=$(),o=F=>F.replace(R,"");var y=F=>{var u=F.charCodeAt(0),C=F.length==2?F.charCodeAt(1):0,D=u;return 55296<=u&&u<=56319&&56320<=C&&C<=57343&&(u&=1023,C&=1023,D=u<<10|C,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?"F":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?"H":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?"W":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?"Na":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?"A":"N"};var W=()=>/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g;function f(F,u={}){if(typeof F!="string"||F.length===0||(u={ambiguousIsNarrow:!0,...u},F=o(F),F.length===0))return 0;F=F.replace(W()," ");let C=u.ambiguousIsNarrow?1:2,D=0;for(let t of F){let E=t.codePointAt(0);if(!E||E<=31||E>=127&&E<=159||E>=768&&E<=879)continue;switch(y(t)){case"F":case"W":D+=2;break;case"A":D+=C;break;default:D+=1}}return D}var A={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},xD=Object.keys(A.modifier),I=Object.keys(A.color),O=Object.keys(A.bgColor),rD=[...I,...O],d=class{},T=new Map,p=F=>Object.fromEntries(Object.entries(F).map(([u,[C,D]])=>(T.set(C,D),[u,d.prototype[u]={open:`\x1B[${C}m`,close:`\x1B[${D}m`}]))),M=new class extends d{codes=T;modifier=p(A.modifier);color={...p(A.color),close:"\x1B[39m",ansi:F=>`\x1B[${F}m`,ansi256:F=>`\x1B[38;5;${F}m`,ansi16m:(F,u,C)=>`\x1B[38;2;${F};${u};${C}m`};bgColor={...p(A.bgColor),close:"\x1B[49m",ansi:F=>`\x1B[${F+10}m`,ansi256:F=>`\x1B[48;5;${F}m`,ansi16m:(F,u,C)=>`\x1B[48;2;${F};${u};${C}m`};rgbToAnsi256(F,u,C){return F===u&&u===C?F<8?16:F>248?231:Math.round((F-8)/247*24)+232:16+36*Math.round(F/255*5)+6*Math.round(u/255*5)+Math.round(C/255*5)}hexToRgb(F){let u=/[a-f\d]{6}|[a-f\d]{3}/i.exec(F.toString(16));if(!u)return[0,0,0];let[C]=u;C.length===3&&(C=[...C].map(t=>t+t).join(""));let D=Number.parseInt(C,16);return[D>>16&255,D>>8&255,D&255]}hexToAnsi256(F){return this.rgbToAnsi256(...this.hexToRgb(F))}ansi256ToAnsi(F){if(F<8)return 30+F;if(F<16)return 90+(F-8);let u,C,D;if(F>=232)u=((F-232)*10+8)/255,C=u,D=u;else{F-=16;let e=F%36;u=Math.floor(F/36)/5,C=Math.floor(e/6)/5,D=e%6/5}let t=Math.max(u,C,D)*2;if(t===0)return 30;let E=30+(Math.round(D)<<2|Math.round(C)<<1|Math.round(u));return t===2&&(E+=60),E}rgbToAnsi(F,u,C){return this.ansi256ToAnsi(this.rgbToAnsi256(F,u,C))}hexToAnsi(F){return this.ansi256ToAnsi(this.hexToAnsi256(F))}};var c=new Set(["\x1B","\x9B"]),_=39,m="\x07",j="[",G="]",k="m",w=`${G}8;;`,N=F=>`${c.values().next().value}${j}${F}${k}`,v=F=>`${c.values().next().value}${w}${F}${m}`,z=F=>F.split(" ").map(u=>f(u)),b=(F,u,C)=>{let D=[...u],t=!1,E=!1,e=f(o(String(F[F.length-1])));for(let[x,r]of D.entries()){let a=f(r);if(e+a<=C?F[F.length-1]+=r:(F.push(r),e=0),c.has(r)&&(t=!0,E=D.slice(x+1).join("").startsWith(w)),t){E?r===m&&(t=!1,E=!1):r===k&&(t=!1);continue}e+=a,e===C&&x<D.length-1&&(F.push(""),e=0)}!e&&String(F[F.length-1]).length>0&&F.length>1&&(F[F.length-2]=String(F[F.length-1])+F.pop())},H=F=>{let u=F.split(" "),C=u.length;for(;C>0&&!(f(String(u[C-1]))>0);)C--;return C===u.length?F:u.slice(0,C).join(" ")+u.slice(C).join("")},V=(F,u,C={})=>{if(C.trim!==!1&&F.trim()==="")return"";let D="",t,E,e=z(F),x=[""];for(let[a,i]of F.split(" ").entries()){C.trim!==!1&&(x[x.length-1]=String(x[x.length-1]).trimStart());let n=f(String(x[x.length-1]));a!==0&&(n>=u&&(C.wordWrap===!1||C.trim===!1)&&(x.push(""),n=0),(n>0||C.trim===!1)&&(x[x.length-1]+=" ",n++));let B=Number(e[a]);if(C.hard&&B>u){let s=u-n,l=1+Math.floor((B-s-1)/u);Math.floor((B-1)/u)<l&&x.push(""),b(x,i,u);continue}if(n+B>u&&n>0&&B>0){if(C.wordWrap===!1&&n<u){b(x,i,u);continue}x.push("")}if(n+B>u&&C.wordWrap===!1){b(x,i,u);continue}x[x.length-1]+=i}C.trim!==!1&&(x=x.map(a=>H(a)));let r=[...x.join(`
2
- `)];for(let[a,i]of r.entries()){if(D+=i,c.has(i)){let{groups:B}=new RegExp(`(?:\\${j}(?<code>\\d+)m|\\${w}(?<uri>.*)${m})`).exec(r.slice(a).join(""))||{groups:{}};if(B.code!==void 0){let s=Number.parseFloat(B.code);t=s===_?void 0:s}else B.uri!==void 0&&(E=B.uri.length===0?void 0:B.uri)}let n=M.codes.get(Number(t));r[a+1]===`
3
- `?(E&&(D+=v("")),t&&n&&(D+=N(n))):i===`
4
- `&&(t&&n&&(D+=N(t)),E&&(D+=v(E)))}return D},L=(F,u,C)=>String(F).normalize().replace(/\r\n/g,`
5
- `).split(`
6
- `).map(D=>V(D,u,C)).join(`
7
- `);var Y={right:(F,u)=>`${" ".repeat(Math.max(0,u-f(F)))}${F}`,center:(F,u)=>`${" ".repeat(Math.max(0,u-f(F))>>1)}${F}`},q=0,h=1,K=2,g=3,S=class{width;wrap;rows;constructor(u){this.width=u.width,this.wrap=u.wrap??!0,this.rows=[]}span(...u){let C=this.div(...u);C.span=!0}resetOutput(){this.rows=[]}div(...u){if(u.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...u)&&typeof u[0]=="string")return this.applyLayoutDSL(u[0]);let C=Object.assign(u.map(D=>typeof D=="string"?this.colFromString(D):D),{span:!1});return this.rows.push(C),C}shouldApplyLayoutDSL(...u){return u.length===1&&typeof u[0]=="string"&&/[\t\n]/.test(u[0])}applyLayoutDSL(u){let C=u.split(`
8
- `).map(E=>E.split(" ")),D=0;C.forEach(E=>{E.length>1&&f(String(E[0]))>D&&(D=Math.min(Math.floor(this.width*.5),f(String(E[0]))))}),C.forEach(E=>{this.div(...E.map((e,x)=>({text:e.trim(),padding:this.measurePadding(e),width:x===0&&E.length>1?D:void 0})))});let t=this.rows[this.rows.length-1];if(!t)throw new Error("no rows found");return t}colFromString(u){return{text:u,padding:this.measurePadding(u)}}measurePadding(u){let C=o(u),[D="",t=""]=[C.match(/\s*$/)?.[0],C.match(/^\s*/)?.[0]];return[0,D.length,0,t.length]}toString(){let u=[];return this.rows.forEach(C=>{this.rowToString(C,u)}),u.filter(C=>!C.hidden).map(C=>C.text).join(`
9
- `)}rowToString(u,C){return this.rasterize(u).forEach((D,t)=>{let E="";D.forEach((e,x)=>{let r=u[x],{width:a}=r,i=this.negatePadding(r),n=e;if(i>f(e)&&(n+=" ".repeat(i-f(e))),r.align&&r.align!=="left"&&this.wrap){let s=Y[r.align];if(n=s(n.trim(),i),f(n)<i){let l=a||0;n+=" ".repeat(l-f(n)-1)}}let B=r.padding||[0,0,0,0];if(B[g]&&(E+=" ".repeat(B[g])),E+=P(r,n,"| "),E+=n,E+=P(r,n," |"),B[h]&&(E+=" ".repeat(B[h])),t===0&&C.length>0){let s=C[C.length-1];if(!s)throw new Error("last line not found");E=this.renderInline(E,s)}}),C.push({text:E.replace(/ +$/,""),span:u.span})}),C}renderInline(u,C){let D=u.match(/^ */),t=D?D[0].length:0,E=C.text,e=f(E.trimEnd());return C.span?this.wrap?t<e?u:(C.hidden=!0,E.trimEnd()+" ".repeat(t-e)+u.trimStart()):(C.hidden=!0,E+u):u}rasterize(u){let C=[],D=this.columnWidths(u),t;return u.forEach((E,e)=>{E.width=D[e],this.wrap?t=L(E.text,this.negatePadding(E),{hard:!0}).split(`
10
- `):t=E.text.split(`
11
- `),E.border&&(t.unshift("."+"-".repeat(this.negatePadding(E)+2)+"."),t.push("'"+"-".repeat(this.negatePadding(E)+2)+"'")),E.padding&&(t.unshift(...new Array(E.padding[q]||0).fill("")),t.push(...new Array(E.padding[K]||0).fill(""))),t.forEach((x,r)=>{C[r]||C.push([]);let a=C[r]??[];for(let i=0;i<e;i++)a[i]===void 0&&a.push("");a.push(x)})}),C}negatePadding(u){let C=u.width||0;return u.padding&&(C-=(u.padding[g]||0)+(u.padding[h]||0)),u.border&&(C-=4),C}columnWidths(u){if(!this.wrap)return u.map(e=>e.width||f(e.text));let C=u.length,D=this.width,t=u.map(e=>{if(e.width)return C--,D-=e.width,e.width}),E=C?Math.floor(D/C):0;return t.map((e,x)=>{if(e===void 0){let r=u[x]??{text:"",padding:[]};return Math.max(E,Z(r))}return e})}},P=(F,u,C)=>F.border?/[.']-+[.']/.test(u)?"":u.trim().length!==0?C:" ":"",Z=F=>{let u=F.padding||[],C=1+(u[g]||0)+(u[h]||0);return F.border?C+4:C},J=()=>typeof process=="object"&&process.stdout&&process.stdout.columns?process.stdout.columns:80,cD=(F={})=>new S({width:F?.width||J(),wrap:F?.wrap});export{S as UI,cD as cliui};
12
- //# sourceMappingURL=index.min.js.map
@@ -1,46 +0,0 @@
1
- import { stripAnsi } from "../strip-ansi/index.js";
2
- import { eastAsianWidth } from "../eastasianwidth/index.js";
3
- import { emojiRegex } from "../emoji-regex/index.js";
4
- export function stringWidth(str, options = {}) {
5
- if (typeof str !== "string" || str.length === 0) {
6
- return 0;
7
- }
8
- options = {
9
- ambiguousIsNarrow: true,
10
- ...options,
11
- };
12
- str = stripAnsi(str);
13
- if (str.length === 0) {
14
- return 0;
15
- }
16
- str = str.replace(emojiRegex(), " ");
17
- const ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;
18
- let width = 0;
19
- for (const character of str) {
20
- const codePoint = character.codePointAt(0);
21
- // Ignore control characters
22
- if (!codePoint ||
23
- codePoint <= 0x1f ||
24
- (codePoint >= 0x7f && codePoint <= 0x9f)) {
25
- continue;
26
- }
27
- // Ignore combining characters
28
- if (codePoint >= 0x300 && codePoint <= 0x36f) {
29
- continue;
30
- }
31
- const code = eastAsianWidth(character);
32
- switch (code) {
33
- case "F":
34
- case "W":
35
- width += 2;
36
- break;
37
- case "A":
38
- width += ambiguousCharacterWidth;
39
- break;
40
- default:
41
- width += 1;
42
- }
43
- }
44
- return width;
45
- }
46
- //# sourceMappingURL=index.js.map
@@ -1,4 +0,0 @@
1
- import { ansiRegex } from "../ansi-regex/index.js";
2
- const regex = ansiRegex();
3
- export const stripAnsi = (str) => str.replace(regex, "");
4
- //# sourceMappingURL=index.js.map
@@ -1,172 +0,0 @@
1
- import { stringWidth } from "../string-width/index.js";
2
- import { stripAnsi } from "../strip-ansi/index.js";
3
- import { ansiStyles } from "../ansi-styles/index.js";
4
- const ESCAPES = new Set(["\u001B", "\u009B"]);
5
- const END_CODE = 39;
6
- const ANSI_ESCAPE_BELL = "\u0007";
7
- const ANSI_CSI = "[";
8
- const ANSI_OSC = "]";
9
- const ANSI_SGR_TERMINATOR = "m";
10
- const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;
11
- const wrapAnsiCode = (code) => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;
12
- const wrapAnsiHyperlink = (uri) => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;
13
- // Calculate the length of words split on ' ', ignoring
14
- // the extra characters added by ansi escape codes
15
- const wordLengths = (str) => str.split(" ").map((character) => stringWidth(character));
16
- // Wrap a long word across multiple rows
17
- // Ansi escape codes do not count towards length
18
- const wrapWord = (rows, word, columns) => {
19
- const characters = [...word];
20
- let isInsideEscape = false;
21
- let isInsideLinkEscape = false;
22
- let visible = stringWidth(stripAnsi(String(rows[rows.length - 1])));
23
- for (const [index, character] of characters.entries()) {
24
- const characterLength = stringWidth(character);
25
- if (visible + characterLength <= columns) {
26
- rows[rows.length - 1] += character;
27
- }
28
- else {
29
- rows.push(character);
30
- visible = 0;
31
- }
32
- if (ESCAPES.has(character)) {
33
- isInsideEscape = true;
34
- isInsideLinkEscape = characters
35
- .slice(index + 1)
36
- .join("")
37
- .startsWith(ANSI_ESCAPE_LINK);
38
- }
39
- if (isInsideEscape) {
40
- if (isInsideLinkEscape) {
41
- if (character === ANSI_ESCAPE_BELL) {
42
- isInsideEscape = false;
43
- isInsideLinkEscape = false;
44
- }
45
- }
46
- else if (character === ANSI_SGR_TERMINATOR) {
47
- isInsideEscape = false;
48
- }
49
- continue;
50
- }
51
- visible += characterLength;
52
- if (visible === columns && index < characters.length - 1) {
53
- rows.push("");
54
- visible = 0;
55
- }
56
- }
57
- // It's possible that the last row we copy over is only
58
- // ansi escape characters, handle this edge-case
59
- if (!visible && String(rows[rows.length - 1]).length > 0 && rows.length > 1) {
60
- rows[rows.length - 2] = String(rows[rows.length - 1]) + rows.pop();
61
- }
62
- };
63
- // Trims spaces from a string ignoring invisible sequences
64
- const stringVisibleTrimSpacesRight = (str) => {
65
- const words = str.split(" ");
66
- let last = words.length;
67
- while (last > 0) {
68
- if (stringWidth(String(words[last - 1])) > 0) {
69
- break;
70
- }
71
- last--;
72
- }
73
- if (last === words.length) {
74
- return str;
75
- }
76
- return words.slice(0, last).join(" ") + words.slice(last).join("");
77
- };
78
- const exec = (str, columns, options = {}) => {
79
- if (options.trim !== false && str.trim() === "") {
80
- return "";
81
- }
82
- let returnValue = "";
83
- let escapeCode;
84
- let escapeUrl;
85
- const lengths = wordLengths(str);
86
- let rows = [""];
87
- for (const [index, word] of str.split(" ").entries()) {
88
- if (options.trim !== false) {
89
- rows[rows.length - 1] = String(rows[rows.length - 1]).trimStart();
90
- }
91
- let rowLength = stringWidth(String(rows[rows.length - 1]));
92
- if (index !== 0) {
93
- if (rowLength >= columns &&
94
- (options.wordWrap === false || options.trim === false)) {
95
- // If we start with a new word but the current row length equals the length of the columns, add a new row
96
- rows.push("");
97
- rowLength = 0;
98
- }
99
- if (rowLength > 0 || options.trim === false) {
100
- rows[rows.length - 1] += " ";
101
- rowLength++;
102
- }
103
- }
104
- // In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'
105
- const len = Number(lengths[index]);
106
- if (options.hard && len > columns) {
107
- const remainingColumns = columns - rowLength;
108
- const breaksStartingThisLine = 1 + Math.floor((len - remainingColumns - 1) / columns);
109
- const breaksStartingNextLine = Math.floor((len - 1) / columns);
110
- if (breaksStartingNextLine < breaksStartingThisLine) {
111
- rows.push("");
112
- }
113
- wrapWord(rows, word, columns);
114
- continue;
115
- }
116
- if (rowLength + len > columns && rowLength > 0 && len > 0) {
117
- if (options.wordWrap === false && rowLength < columns) {
118
- wrapWord(rows, word, columns);
119
- continue;
120
- }
121
- rows.push("");
122
- }
123
- if (rowLength + len > columns && options.wordWrap === false) {
124
- wrapWord(rows, word, columns);
125
- continue;
126
- }
127
- rows[rows.length - 1] += word;
128
- }
129
- if (options.trim !== false) {
130
- rows = rows.map((row) => stringVisibleTrimSpacesRight(row));
131
- }
132
- const pre = [...rows.join("\n")];
133
- for (const [index, character] of pre.entries()) {
134
- returnValue += character;
135
- if (ESCAPES.has(character)) {
136
- const { groups } = (new RegExp(`(?:\\${ANSI_CSI}(?<code>\\d+)m|\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join("")) || { groups: {} });
137
- if (groups.code !== undefined) {
138
- const code = Number.parseFloat(groups.code);
139
- escapeCode = code === END_CODE ? undefined : code;
140
- }
141
- else if (groups.uri !== undefined) {
142
- escapeUrl = groups.uri.length === 0 ? undefined : groups.uri;
143
- }
144
- }
145
- const code = ansiStyles.codes.get(Number(escapeCode));
146
- if (pre[index + 1] === "\n") {
147
- if (escapeUrl) {
148
- returnValue += wrapAnsiHyperlink("");
149
- }
150
- if (escapeCode && code) {
151
- returnValue += wrapAnsiCode(code);
152
- }
153
- }
154
- else if (character === "\n") {
155
- if (escapeCode && code) {
156
- returnValue += wrapAnsiCode(escapeCode);
157
- }
158
- if (escapeUrl) {
159
- returnValue += wrapAnsiHyperlink(escapeUrl);
160
- }
161
- }
162
- }
163
- return returnValue;
164
- };
165
- // For each newline, invoke the method separately
166
- export const wrap = (str, columns, options) => String(str)
167
- .normalize()
168
- .replace(/\r\n/g, "\n")
169
- .split("\n")
170
- .map((line) => exec(line, columns, options))
171
- .join("\n");
172
- //# sourceMappingURL=index.js.map