hedgequantx 2.7.57 → 2.7.59

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": "hedgequantx",
3
- "version": "2.7.57",
3
+ "version": "2.7.59",
4
4
  "description": "HedgeQuantX - Prop Futures Trading CLI",
5
5
  "main": "src/app.js",
6
6
  "bin": {
package/src/app.js CHANGED
@@ -175,9 +175,8 @@ const run = async () => {
175
175
  await refreshStats();
176
176
  }
177
177
 
178
- // Clear spinner interval but don't erase the line visually
179
- // dashboardMenu's console.clear() will handle the visual cleanup
180
- spinner.stop();
178
+ // Store spinner globally so dashboardMenu can stop it before clear
179
+ global.__hqxSpinner = spinner;
181
180
 
182
181
  // Main loop
183
182
  while (true) {
@@ -8,7 +8,7 @@ const ora = require('ora');
8
8
  const { connections } = require('../services');
9
9
  const { RithmicService } = require('../services/rithmic');
10
10
  const { PROPFIRM_CHOICES } = require('../config');
11
- const { getLogoWidth, centerText, prepareStdin } = require('../ui');
11
+ const { getLogoWidth, centerText, prepareStdin, displayBanner } = require('../ui');
12
12
  const { validateUsername, validatePassword } = require('../security');
13
13
  const { prompts } = require('../utils');
14
14
 
@@ -38,6 +38,10 @@ const loginPrompt = async (propfirmName) => {
38
38
  * Rithmic menu - Main connection menu
39
39
  */
40
40
  const rithmicMenu = async () => {
41
+ // Clear screen and show banner
42
+ console.clear();
43
+ displayBanner();
44
+
41
45
  const propfirms = PROPFIRM_CHOICES;
42
46
  const boxWidth = getLogoWidth();
43
47
  const innerWidth = boxWidth - 2;
@@ -46,7 +50,6 @@ const rithmicMenu = async () => {
46
50
 
47
51
  const numbered = propfirms.map((pf, i) => ({ num: i + 1, key: pf.value, name: pf.name }));
48
52
 
49
- console.log();
50
53
  console.log(chalk.cyan('╔' + '═'.repeat(innerWidth) + '╗'));
51
54
  console.log(chalk.cyan('║') + chalk.white.bold(centerText('SELECT PROPFIRM', innerWidth)) + chalk.cyan('║'));
52
55
  console.log(chalk.cyan('║') + ' '.repeat(innerWidth) + chalk.cyan('║'));
@@ -17,6 +17,12 @@ const { prompts } = require('../utils');
17
17
  const dashboardMenu = async (service) => {
18
18
  prepareStdin();
19
19
 
20
+ // Stop any global spinner before clearing
21
+ if (global.__hqxSpinner) {
22
+ global.__hqxSpinner.stop();
23
+ global.__hqxSpinner = null;
24
+ }
25
+
20
26
  // Clear screen and show banner (always closed)
21
27
  console.clear();
22
28
  displayBanner();