ticketlens 0.1.1 → 0.1.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ticketlens",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Jira CLI for developers — fetch ticket context, triage your queue, and stop tab-switching. Zero dependencies, all local.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -41,25 +41,30 @@ export async function promptSecret(label, { stream = process.stderr, existingVal
41
41
  while (true) {
42
42
  stream.write(` ${label} `);
43
43
  const value = await new Promise(res => {
44
- let buf = '';
44
+ let buf = '';
45
+ let stars = 0; // visual asterisk count — may differ from buf.length after a paste
45
46
  const stdin = process.stdin;
46
47
  stdin.setRawMode(true);
47
48
  stdin.resume();
48
49
  stdin.setEncoding('utf8');
49
- function onData(char) {
50
- if (char === '\r' || char === '\n') {
50
+ function onData(chunk) {
51
+ if (chunk === '\r' || chunk === '\n') {
51
52
  stdin.setRawMode(false);
52
53
  stdin.pause();
53
54
  stdin.removeListener('data', onData);
54
55
  stream.write('\n');
55
56
  res(buf);
56
- } else if (char === '\x7f' || char === '\x08') {
57
- if (buf.length > 0) { buf = buf.slice(0, -1); stream.write('\b \b'); }
58
- } else if (char === '\x03') {
57
+ } else if (chunk === '\x7f' || chunk === '\x08') {
58
+ if (buf.length > 0) {
59
+ buf = buf.slice(0, -1);
60
+ if (stars > 0) { stars--; stream.write('\b \b'); }
61
+ }
62
+ } else if (chunk === '\x03') {
59
63
  process.exit(0);
60
64
  } else {
61
- buf += char;
62
- stream.write('*');
65
+ buf += chunk;
66
+ stars += chunk.length;
67
+ stream.write('*'.repeat(chunk.length));
63
68
  }
64
69
  }
65
70
  stdin.on('data', onData);