bno-cli 1.0.0 → 1.0.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/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # bnochat-cli
1
+ # bno-cli
2
2
 
3
3
  Terminal chat application for Ubuntu, Windows, and macOS.
4
4
 
@@ -41,18 +41,19 @@ sudo dpkg -i bnochat.deb
41
41
  ### Option 2: npm (Requires Node.js)
42
42
 
43
43
  ```bash
44
- npm install -g bnochat-cli
44
+ npm install -g bno-cli
45
45
  ```
46
46
 
47
47
  ## Usage
48
48
 
49
49
  ```bash
50
- bno -v # Check version
51
- bno -c # Check for updates
52
- bno -u # Update to latest
53
- bno -a # Login via browser
54
- bno -l # Logout
55
- bno -j # Join chat room
50
+ bno -h, --help #display help for command
51
+ bno -a, --auth #Login via browser
52
+ bno -j, --join [code] #Join a chat room
53
+ bno -v, --version #output the version number
54
+ bno -c, --check #Check for updates
55
+ bno -u, --update #Update to latest version
56
+ bno -l, --logout #Logout
56
57
  ```
57
58
 
58
59
  ## Chat Commands
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAYA,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,IAAI;IACT,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwC/B,QAAQ,IAAI,SAAS,GAAG,IAAI;IAI5B,MAAM,IAAI,IAAI;IAKd,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,IAAI;CAIb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAaA,UAAU,SAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,IAAI;IACT,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAwC/B,QAAQ,IAAI,SAAS,GAAG,IAAI;IAI5B,MAAM,IAAI,IAAI;IAKd,OAAO,CAAC,IAAI;IAQZ,OAAO,CAAC,IAAI;CAIb"}
@@ -13,7 +13,8 @@ const os_1 = __importDefault(require("os"));
13
13
  const config_1 = require("../config");
14
14
  const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.bno');
15
15
  const TOKEN_FILE = path_1.default.join(CONFIG_DIR, 'auth.json');
16
- const SUCCESS_HTML = fs_1.default.readFileSync(path_1.default.join(__dirname, 'success.html'), 'utf-8');
16
+ const SUCCESS_HTML = fs_1.default.readFileSync(path_1.default.join(__dirname, 'success.html'), 'utf-8')
17
+ .replace('{{BASE_URL}}', config_1.config.baseUrl);
17
18
  class Auth {
18
19
  async login() {
19
20
  console.log(chalk_1.default.cyan('Opening browser for authentication...'));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,7 @@
83
83
  el.textContent = count;
84
84
  if (count <= 0) {
85
85
  clearInterval(timer);
86
- window.location.href = 'https://bnochat.cc/room';
86
+ window.location.href = '{{BASE_URL}}/room';
87
87
  }
88
88
  }, 1000);
89
89
  </script>
@@ -1,11 +1,13 @@
1
1
  import { Auth } from '../auth';
2
2
  export declare class ChatClient {
3
- private serverUrl;
4
- private ws;
3
+ private socketUrl;
4
+ private socket;
5
5
  private rl;
6
6
  private token;
7
- constructor(serverUrl: string, auth: Auth);
7
+ private roomCode;
8
+ constructor(socketUrl: string, auth: Auth);
8
9
  join(roomCode?: string): Promise<void>;
10
+ private buildCookieHeader;
9
11
  private prompt;
10
12
  private startInput;
11
13
  private send;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/chat/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAe/B,qBAAa,UAAU;IAKT,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,KAAK,CAAmB;gBAEZ,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAI3C,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqE5C,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,OAAO;CAIhB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/chat/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAe/B,qBAAa,UAAU;IAMT,OAAO,CAAC,SAAS;IAL7B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,EAAE,CAAmC;IAC7C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAc;gBAEV,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAI3C,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmF5C,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,OAAO;CAIhB"}
@@ -4,108 +4,131 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ChatClient = void 0;
7
- const ws_1 = __importDefault(require("ws"));
7
+ const socket_io_client_1 = require("socket.io-client");
8
8
  const readline_1 = __importDefault(require("readline"));
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
10
  const axios_1 = __importDefault(require("axios"));
11
11
  const config_1 = require("../config");
12
12
  class ChatClient {
13
- constructor(serverUrl, auth) {
14
- this.serverUrl = serverUrl;
15
- this.ws = null;
13
+ constructor(socketUrl, auth) {
14
+ this.socketUrl = socketUrl;
15
+ this.socket = null;
16
16
  this.rl = null;
17
+ this.roomCode = '';
17
18
  this.token = auth.getToken();
18
19
  }
19
20
  async join(roomCode) {
20
21
  const rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout });
21
- const code = roomCode || await this.prompt(rl, chalk_1.default.cyan('Room Code: '));
22
- if (!code) {
23
- console.log(chalk_1.default.red('Room Code is required'));
24
- rl.close();
25
- return;
22
+ let code = roomCode || await this.prompt(rl, chalk_1.default.cyan('Room Code: '));
23
+ let attempts = 1;
24
+ while (!code) {
25
+ if (attempts >= 3) {
26
+ console.log(chalk_1.default.yellow('Room Code is required. Type /q to exit'));
27
+ }
28
+ else {
29
+ console.log(chalk_1.default.red('Room Code is required'));
30
+ }
31
+ code = await this.prompt(rl, chalk_1.default.cyan('Room Code: '));
32
+ if (code === '/q') {
33
+ rl.close();
34
+ return;
35
+ }
36
+ attempts++;
26
37
  }
38
+ this.roomCode = code;
27
39
  const pin = await this.prompt(rl, chalk_1.default.cyan('Room PIN (press Enter if none): '));
28
40
  rl.close();
29
41
  console.log(chalk_1.default.cyan('\nJoining room...'));
30
42
  // Call API to join room
31
43
  try {
32
- const body = { code };
33
- if (pin)
34
- body.pin = pin;
35
44
  const cookies = [];
36
45
  if (this.token?.anonymousToken)
37
46
  cookies.push(`bnochat.anonymous-token=${this.token.anonymousToken}`);
38
47
  if (this.token?.userToken)
39
48
  cookies.push(`bnochat.user-token=${this.token.userToken}`);
40
- await axios_1.default.post(`${config_1.config.apiUrl}/room/join-pin`, body, {
41
- headers: { Cookie: cookies.join('; ') }
42
- });
49
+ const headers = { Cookie: cookies.join('; ') };
50
+ const endpoint = pin ? `${config_1.config.apiUrl}/room/join-pin` : `${config_1.config.apiUrl}/room/join`;
51
+ const body = pin ? { code, pin } : { code };
52
+ await axios_1.default.post(endpoint, body, { headers });
43
53
  }
44
54
  catch (err) {
45
- const msg = err.response?.data?.message || 'Failed to join room';
55
+ const msg = err.response?.data?.message || err.message || 'Failed to join room';
46
56
  console.log(chalk_1.default.red(`\n✗ ${msg}`));
47
57
  return;
48
58
  }
49
59
  console.log(chalk_1.default.cyan('Connecting...'));
50
- const params = new URLSearchParams();
51
- params.set('code', code);
52
- if (pin)
53
- params.set('pin', pin);
54
- const url = `${this.serverUrl}/chat?${params.toString()}`;
55
60
  return new Promise((resolve, reject) => {
56
- this.ws = new ws_1.default(url);
57
- this.ws.on('open', () => {
61
+ // Connect to /chat namespace
62
+ this.socket = (0, socket_io_client_1.io)(`${this.socketUrl}`, {
63
+ transports: ['websocket', 'polling'],
64
+ autoConnect: true,
65
+ reconnection: true,
66
+ reconnectionAttempts: Infinity,
67
+ reconnectionDelay: 1000,
68
+ reconnectionDelayMax: 3000,
69
+ timeout: 5000,
70
+ // withCredentials: true,
71
+ extraHeaders: {
72
+ Cookie: this.buildCookieHeader()
73
+ }
74
+ });
75
+ this.socket.on('connect', () => {
76
+ console.log(chalk_1.default.green('✔️ Connected'));
77
+ console.log(chalk_1.default.gray('Type message and press Enter to send. /q to leave.\n'));
78
+ this.socket?.emit('room:focus', { roomCode: this.roomCode });
58
79
  this.startInput();
59
80
  resolve();
60
81
  });
61
- this.ws.on('message', (data) => {
62
- const msg = JSON.parse(data.toString());
63
- if (msg.type === 'error') {
64
- console.log(chalk_1.default.red(`\n✗ ${msg.content}`));
65
- this.cleanup();
66
- process.exit(1);
67
- }
68
- if (msg.type === 'system' && msg.content.includes('Welcome')) {
69
- console.log(chalk_1.default.green(`✓ Joined room`));
70
- console.log(chalk_1.default.gray('Type message and press Enter. /q to leave.\n'));
71
- }
82
+ this.socket.on('message', (msg) => {
72
83
  this.display(msg);
73
84
  });
74
- this.ws.on('close', () => { console.log(chalk_1.default.yellow('\nDisconnected')); this.cleanup(); });
75
- this.ws.on('error', (err) => { console.error(chalk_1.default.red('Connection failed:', err.message)); reject(err); });
85
+ this.socket.on('disconnect', () => {
86
+ console.log(chalk_1.default.yellow('\nDisconnected'));
87
+ this.cleanup();
88
+ });
89
+ this.socket.on('connect_error', (err) => {
90
+ console.error(chalk_1.default.red('Connection failed:', err.message));
91
+ reject(err);
92
+ });
76
93
  });
77
94
  }
95
+ buildCookieHeader() {
96
+ const cookies = [];
97
+ if (this.token?.anonymousToken)
98
+ cookies.push(`bnochat.anonymous-token=${this.token.anonymousToken}`);
99
+ if (this.token?.userToken)
100
+ cookies.push(`bnochat.user-token=${this.token.userToken}`);
101
+ return cookies.join('; ');
102
+ }
78
103
  prompt(rl, question) {
79
104
  return new Promise((resolve) => rl.question(question, resolve));
80
105
  }
81
106
  startInput() {
82
107
  this.rl = readline_1.default.createInterface({ input: process.stdin, output: process.stdout });
83
- this.rl.on('line', (input) => {
84
- const text = input.trim();
85
- if (['/q', '/quit', '/exit'].includes(text)) {
86
- this.leave();
87
- return;
88
- }
89
- if (text)
90
- this.send(text);
91
- });
108
+ const promptUser = () => {
109
+ this.rl?.question(chalk_1.default.cyan('> '), (input) => {
110
+ const text = input.trim();
111
+ if (['/q', '/quit', '/exit'].includes(text)) {
112
+ this.leave();
113
+ return;
114
+ }
115
+ if (text)
116
+ this.send(text);
117
+ promptUser();
118
+ });
119
+ };
120
+ promptUser();
92
121
  process.on('SIGINT', () => this.leave());
93
122
  }
94
123
  send(content) {
95
- if (this.ws?.readyState === ws_1.default.OPEN) {
96
- this.ws.send(JSON.stringify({ type: 'message', content, timestamp: new Date() }));
124
+ if (this.socket?.connected) {
125
+ this.socket.emit('message:send', { roomCode: this.roomCode, text: content });
97
126
  }
98
127
  }
99
128
  display(msg) {
100
- const time = new Date(msg.timestamp).toLocaleTimeString();
101
- const formats = {
102
- message: () => console.log(`${chalk_1.default.gray(`[${time}]`)} ${chalk_1.default.blue(msg.user)}: ${msg.content}`),
103
- join: () => console.log(chalk_1.default.green(`→ ${msg.user} joined`)),
104
- leave: () => console.log(chalk_1.default.yellow(`← ${msg.user} left`)),
105
- system: () => console.log(chalk_1.default.magenta(`[System] ${msg.content}`)),
106
- error: () => console.log(chalk_1.default.red(`[Error] ${msg.content}`))
107
- };
108
- formats[msg.type]?.();
129
+ if (msg.isOwn)
130
+ return;
131
+ console.log(`[${chalk_1.default.blue(msg.displayName)}]: ${msg.text}`);
109
132
  }
110
133
  leave() {
111
134
  console.log(chalk_1.default.yellow('\nLeaving...'));
@@ -113,7 +136,7 @@ class ChatClient {
113
136
  process.exit(0);
114
137
  }
115
138
  cleanup() {
116
- this.ws?.close();
139
+ this.socket?.disconnect();
117
140
  this.rl?.close();
118
141
  }
119
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/chat/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/chat/client.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import 'dotenv/config';
2
2
  export declare const config: {
3
3
  version: string;
4
4
  repo: string;
5
- serverUrl: string;
5
+ socketUrl: string;
6
6
  baseUrl: string;
7
7
  authUrl: string;
8
8
  apiUrl: string;
@@ -5,10 +5,10 @@ require("dotenv/config");
5
5
  const baseUrl = process.env.BASE_URL || 'https://bnochat.cc';
6
6
  exports.config = {
7
7
  // App
8
- version: '1.0.0',
8
+ version: '1.0.2',
9
9
  repo: 'bnochat/cli',
10
- // WebSocket Server
11
- serverUrl: process.env.SERVER_URL || 'wss://socket.bnochat.cc',
10
+ // Socket.io Server
11
+ socketUrl: process.env.SOCKET_URL || 'wss://socket.bnochat.cc',
12
12
  // Base URL
13
13
  baseUrl,
14
14
  authUrl: `${baseUrl}/auth-cli`,
package/dist/index.js CHANGED
@@ -14,12 +14,12 @@ const program = new commander_1.Command();
14
14
  const auth = new auth_1.Auth();
15
15
  program
16
16
  .name('bno')
17
- .description('Terminal chat application')
18
- .version(config_1.config.version, '-v, --version')
17
+ .description('Terminal chat application.\n\nFirst, authenticate by running "bno -a" - this opens your browser for login approval.\nOnce logged in, join a chat room with "bno -j <roomCode>" to start chatting.')
18
+ .option('-a, --auth', 'Login via browser')
19
19
  .option('-j, --join [code]', 'Join a chat room')
20
+ .version(config_1.config.version, '-v, --version')
20
21
  .option('-c, --check', 'Check for updates')
21
22
  .option('-u, --update', 'Update to latest version')
22
- .option('-a, --auth', 'Login via browser')
23
23
  .option('-l, --logout', 'Logout');
24
24
  program.parse();
25
25
  const opts = program.opts();
@@ -27,7 +27,7 @@ const opts = program.opts();
27
27
  if (opts.auth) {
28
28
  const success = await auth.login();
29
29
  if (success) {
30
- await new client_1.ChatClient(config_1.config.serverUrl, auth).join();
30
+ await new client_1.ChatClient(config_1.config.socketUrl, auth).join();
31
31
  }
32
32
  }
33
33
  else if (opts.logout) {
@@ -45,7 +45,7 @@ const opts = program.opts();
45
45
  process.exit(1);
46
46
  }
47
47
  const code = typeof opts.join === 'string' ? opts.join : undefined;
48
- await new client_1.ChatClient(config_1.config.serverUrl, auth).join(code);
48
+ await new client_1.ChatClient(config_1.config.socketUrl, auth).join(code);
49
49
  }
50
50
  else {
51
51
  program.help();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,qCAAkC;AAClC,0CAA2C;AAC3C,uCAAoC;AACpC,iCAA8B;AAE9B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAC;AAExB,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,2BAA2B,CAAC;KACxC,OAAO,CAAC,eAAM,CAAC,OAAO,EAAE,eAAe,CAAC;KACxC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAE5B,CAAC,KAAK,IAAI,EAAE;IACV,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,mBAAU,CAAC,eAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,IAAI,mBAAU,CAAC,eAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,qCAAkC;AAClC,0CAA2C;AAC3C,uCAAoC;AACpC,iCAA8B;AAE9B,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,MAAM,IAAI,GAAG,IAAI,WAAI,EAAE,CAAC;AAExB,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,mMAAmM,CAAC;KAChN,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC;KACzC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,OAAO,CAAC,eAAM,CAAC,OAAO,EAAE,eAAe,CAAC;KACxC,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;AAEpC,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;AAE5B,CAAC,KAAK,IAAI,EAAE;IACV,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,mBAAU,CAAC,eAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,iBAAO,EAAE,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,IAAI,mBAAU,CAAC,eAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bno-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Terminal chat application for Ubuntu, Windows, and macOS",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -14,7 +14,8 @@
14
14
  "package:win": "npm run build && pkg dist/index.js --targets node18-win-x64 --output bin/bno.exe",
15
15
  "package:mac": "npm run build && pkg dist/index.js --targets node18-macos-x64 --output bin/bno-macos-x64",
16
16
  "package:mac-arm": "npm run build && pkg dist/index.js --targets node18-macos-arm64 --output bin/bno-macos-arm64",
17
- "package:linux": "npm run build && pkg dist/index.js --targets node18-linux-x64 --output bin/bno-linux"
17
+ "package:linux": "npm run build && pkg dist/index.js --targets node18-linux-x64 --output bin/bno-linux",
18
+ "publish": "npm run build && npm publish"
18
19
  },
19
20
  "keywords": [
20
21
  "chat",
@@ -43,6 +44,7 @@
43
44
  "commander": "^11.1.0",
44
45
  "dotenv": "^17.2.3",
45
46
  "open": "^8.4.2",
47
+ "socket.io-client": "^4.8.3",
46
48
  "ws": "^8.14.2"
47
49
  },
48
50
  "devDependencies": {