codifx 0.1.9 → 0.1.11

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 (43) hide show
  1. package/dist/cli/commands/explain.js +1 -179
  2. package/dist/cli/commands/profile.js +1 -55
  3. package/dist/cli/commands/scan.js +1 -300
  4. package/dist/cli/commands/simulate.js +1 -109
  5. package/dist/cli/commands/validate.js +1 -26
  6. package/dist/cli/index.js +1 -94
  7. package/dist/config/loader.js +1 -124
  8. package/dist/config/schema.js +1 -49
  9. package/dist/core/engine.js +1 -169
  10. package/dist/core/filters.js +1 -70
  11. package/dist/core/oscillator-engine.js +1 -224
  12. package/dist/core/scoring.js +1 -101
  13. package/dist/core/timeframe.js +1 -52
  14. package/dist/core/trend-engine.js +1 -137
  15. package/dist/data/mock.js +1 -111
  16. package/dist/data/provider.js +1 -29
  17. package/dist/data/yahoo.js +1 -200
  18. package/dist/index.js +1 -19
  19. package/dist/indicators/oscillator/adx.js +1 -118
  20. package/dist/indicators/oscillator/atr.js +1 -31
  21. package/dist/indicators/oscillator/cci.js +1 -39
  22. package/dist/indicators/oscillator/macd.js +1 -73
  23. package/dist/indicators/oscillator/momentum.js +1 -35
  24. package/dist/indicators/oscillator/rsi.js +1 -93
  25. package/dist/indicators/oscillator/stochastic.js +1 -89
  26. package/dist/indicators/oscillator/williams.js +1 -44
  27. package/dist/indicators/trend/ema.js +1 -36
  28. package/dist/indicators/trend/hma.js +1 -48
  29. package/dist/indicators/trend/sma.js +1 -30
  30. package/dist/indicators/trend/vwma.js +1 -23
  31. package/dist/types/index.js +1 -5
  32. package/dist/utils/constants.js +1 -105
  33. package/dist/utils/explain.js +1 -83
  34. package/dist/utils/formatter.js +1 -104
  35. package/dist/utils/html-generator.js +1 -107
  36. package/dist/utils/indicators.js +1 -106
  37. package/dist/utils/levels.js +1 -82
  38. package/dist/utils/logger.js +1 -238
  39. package/dist/utils/paths.js +1 -32
  40. package/dist/utils/symbols.js +1 -44
  41. package/dist/utils/trading-type-config.js +1 -96
  42. package/dist/utils/version-checker.js +1 -76
  43. package/package.json +1 -2
@@ -1,238 +1 @@
1
- /**
2
- * Logging utility for scan results
3
- */
4
- import { writeFile, mkdir } from "fs/promises";
5
- import { dirname } from "path";
6
- export class ScanLogger {
7
- logs = [];
8
- scanStartTime = Date.now();
9
- rejectionStats = {
10
- liquidity: 0,
11
- volatility: 0,
12
- lowScore: 0,
13
- noReversal: 0,
14
- };
15
- /**
16
- * Log scan start
17
- */
18
- logStart(tradingType, timeframes, symbols) {
19
- const now = new Date();
20
- this.logs.push("=".repeat(80));
21
- this.logs.push(`CODIFX SCAN LOG - ${now.toLocaleString("en-US", {
22
- month: "numeric",
23
- day: "numeric",
24
- year: "numeric",
25
- hour: "numeric",
26
- minute: "numeric",
27
- second: "numeric",
28
- })}`);
29
- this.logs.push("=".repeat(80));
30
- this.logs.push("");
31
- this.logs.push(`Trading Type: ${tradingType.toUpperCase()}`);
32
- this.logs.push(`Primary Timeframe: ${timeframes.primary}`);
33
- this.logs.push(`Confirmation Timeframe: ${timeframes.confirmation}`);
34
- this.logs.push(`Symbols to Scan: ${symbols.join(", ")}`);
35
- this.logs.push(`Total Symbols: ${symbols.length}`);
36
- this.logs.push("");
37
- this.logs.push("-".repeat(80));
38
- this.logs.push("");
39
- }
40
- /**
41
- * Log a trading signal
42
- */
43
- logSignal(signal) {
44
- this.logs.push(`[${signal.symbol}] ✔ SIGNAL FOUND`);
45
- this.logs.push(` Direction: ${signal.direction}`);
46
- this.logs.push(` Rating: ${signal.rating}`);
47
- this.logs.push(` Final Score: ${signal.score}/100`);
48
- this.logs.push(` Score Breakdown:`);
49
- this.logs.push(` - Trend: ${signal.trendScore}/100`);
50
- this.logs.push(` - Oscillator: ${signal.oscillatorScore}/100`);
51
- this.logs.push(` - Volume Bonus: +${signal.volumeBonus}`);
52
- this.logs.push(` - Volatility Bonus: +${signal.volatilityBonus}`);
53
- this.logs.push(` - Confirmation Bonus: +${signal.confirmationBonus}`);
54
- if (signal.trendDetails && signal.trendDetails.length > 0) {
55
- this.logs.push(` Trend Details:`);
56
- signal.trendDetails.forEach((d) => {
57
- this.logs.push(` - ${d}`);
58
- });
59
- }
60
- if (signal.oscillatorDetails && signal.oscillatorDetails.length > 0) {
61
- this.logs.push(` Oscillator Details:`);
62
- signal.oscillatorDetails.forEach((d) => {
63
- this.logs.push(` - ${d}`);
64
- });
65
- }
66
- this.logs.push(` Filters:`);
67
- this.logs.push(` - Liquidity: PASS`);
68
- this.logs.push(` - Volatility: PASS`);
69
- this.logs.push("");
70
- }
71
- /**
72
- * Log no signal with detailed analysis
73
- */
74
- logNoSignal(symbol, reason, details) {
75
- this.logs.push(`[${symbol}] ✖ NO SIGNAL`);
76
- this.logs.push(` Direction: NONE`);
77
- this.logs.push(` Rating: NO TRADE`);
78
- if (details) {
79
- // Check if filter failed (hard constraint)
80
- const hasFilterFailure = details.liquidityPass === false ||
81
- details.volatilityPass === false;
82
- // Show score information
83
- if (hasFilterFailure) {
84
- // Don't show numeric score for hard filter failures
85
- this.logs.push(` Final Score: N/A (Filtered)`);
86
- this.logs.push(` Status: FILTER REJECTED`);
87
- }
88
- else {
89
- // Show score with correct threshold comparison
90
- if (details.finalScore !== undefined &&
91
- details.minScoreThreshold !== undefined) {
92
- const meetsThreshold = details.finalScore >= details.minScoreThreshold;
93
- const status = meetsThreshold
94
- ? "(Meets Threshold)"
95
- : "(Below Threshold)";
96
- this.logs.push(` Final Score: ${details.finalScore}/100 ${status}`);
97
- this.logs.push(` Required Score: ≥ ${details.minScoreThreshold}`);
98
- }
99
- else if (details.finalScore !== undefined) {
100
- this.logs.push(` Final Score: ${details.finalScore}/100`);
101
- }
102
- }
103
- this.logs.push(``);
104
- // Show score breakdown
105
- if (details.trendScore !== undefined &&
106
- details.oscillatorScore !== undefined) {
107
- this.logs.push(` Score Breakdown:`);
108
- this.logs.push(` - Trend: ${details.trendScore}/100`);
109
- this.logs.push(` - Oscillator: ${details.oscillatorScore}/100`);
110
- if (details.volumeBonus !== undefined) {
111
- this.logs.push(` - Volume Bonus: +${details.volumeBonus}`);
112
- }
113
- if (details.volatilityBonus !== undefined) {
114
- this.logs.push(` - Volatility Bonus: +${details.volatilityBonus}`);
115
- }
116
- if (details.confirmationBonus !== undefined) {
117
- this.logs.push(` - Confirmation Bonus: +${details.confirmationBonus}`);
118
- }
119
- this.logs.push(``);
120
- }
121
- // Show failure reasons with hard constraint labels
122
- if (reason) {
123
- this.logs.push(` Failed Conditions:`);
124
- reason.split("; ").forEach((r) => {
125
- if (r.trim()) {
126
- // Mark filter failures as hard constraints
127
- if (r.includes("volume") ||
128
- r.includes("Volatility") ||
129
- r.includes("ATR")) {
130
- this.logs.push(` - ${r.trim()} (hard constraint)`);
131
- }
132
- else {
133
- this.logs.push(` - ${r.trim()}`);
134
- }
135
- }
136
- });
137
- this.logs.push(``);
138
- // Add note explaining filter rejection
139
- if (hasFilterFailure) {
140
- this.logs.push(` Note:`);
141
- this.logs.push(` - Analysis stopped due to hard constraint violation`);
142
- this.logs.push(``);
143
- }
144
- }
145
- // Show filters
146
- if (details.liquidityPass !== undefined ||
147
- details.volatilityPass !== undefined) {
148
- this.logs.push(` Filters:`);
149
- if (details.liquidityPass !== undefined) {
150
- const label = details.liquidityPass
151
- ? "PASS"
152
- : "FAIL (Hard constraint)";
153
- this.logs.push(` - Liquidity: ${label}`);
154
- }
155
- if (details.volatilityPass !== undefined) {
156
- const label = details.volatilityPass
157
- ? "PASS"
158
- : "FAIL (Hard constraint)";
159
- this.logs.push(` - Volatility: ${label}`);
160
- }
161
- }
162
- }
163
- // Track rejection reasons for summary
164
- if (details?.liquidityPass === false)
165
- this.rejectionStats.liquidity++;
166
- if (details?.volatilityPass === false)
167
- this.rejectionStats.volatility++;
168
- if (reason.includes("No reversal"))
169
- this.rejectionStats.noReversal++;
170
- if (reason.includes("below minimum threshold"))
171
- this.rejectionStats.lowScore++;
172
- this.logs.push("");
173
- }
174
- /**
175
- * Log error
176
- */
177
- logError(symbol, error) {
178
- this.logs.push(`[${symbol}] ⚠ ERROR`);
179
- this.logs.push(` Error: ${error}`);
180
- this.logs.push("");
181
- }
182
- /**
183
- * Log scan summary
184
- */
185
- logSummary(totalScanned, signalsFound) {
186
- const duration = Date.now() - this.scanStartTime;
187
- this.logs.push("-".repeat(80));
188
- this.logs.push("");
189
- this.logs.push(`SCAN SUMMARY`);
190
- this.logs.push(` Total Symbols Scanned: ${totalScanned}`);
191
- this.logs.push(` Signals Found: ${signalsFound}`);
192
- // Add rejection breakdown
193
- const totalRejected = totalScanned - signalsFound;
194
- if (totalRejected > 0) {
195
- this.logs.push(` Rejected: ${totalRejected}`);
196
- this.logs.push(` Rejected by:`);
197
- if (this.rejectionStats.liquidity > 0) {
198
- this.logs.push(` - Liquidity: ${this.rejectionStats.liquidity} symbols`);
199
- }
200
- if (this.rejectionStats.volatility > 0) {
201
- this.logs.push(` - Volatility: ${this.rejectionStats.volatility} symbols`);
202
- }
203
- if (this.rejectionStats.noReversal > 0) {
204
- this.logs.push(` - No Reversal: ${this.rejectionStats.noReversal} symbols`);
205
- }
206
- if (this.rejectionStats.lowScore > 0) {
207
- this.logs.push(` - Low Score: ${this.rejectionStats.lowScore} symbols`);
208
- }
209
- }
210
- this.logs.push(` Success Rate: ${((signalsFound / totalScanned) * 100).toFixed(1)}%`);
211
- this.logs.push(` Scan Duration: ${(duration / 1000).toFixed(2)}s`);
212
- this.logs.push("");
213
- this.logs.push("=".repeat(80));
214
- }
215
- /**
216
- * Save log to file
217
- */
218
- async saveToFile(filepath) {
219
- try {
220
- // Ensure directory exists
221
- const dir = dirname(filepath);
222
- await mkdir(dir, { recursive: true });
223
- // Write log file
224
- await writeFile(filepath, this.logs.join("\n"), "utf-8");
225
- console.log(`\n📝 Log saved to: ${filepath}`);
226
- }
227
- catch (error) {
228
- console.error(`Failed to save log: ${error}`);
229
- }
230
- }
231
- /**
232
- * Get log content as string
233
- */
234
- getContent() {
235
- return this.logs.join("\n");
236
- }
237
- }
238
- //# sourceMappingURL=logger.js.map
1
+ const a0_0x25b258=a0_0x57f2;function a0_0x41e4(){const _0x1dffd6=['icaGic0GvM9SyxrPBgL0EtOG','D3LsAu8','lZeWmca','Bg9NtM9tAwDUywW','zMHTB3q','AgLvAuG','D0fwAfi','icbtAwDUywXZiezVDw5KoIa','AM9PBG','icbgAw5HBcbty29YztOG','mJG0q2nPyMv5','vgrlBuu','Dhz6rw8','ndaWnZy0menVywHYuq','mtyYodfvBKjrzLu','icaGic0GvM9SyxrPBgL0EsbcB251CZOGkW','C0rMsu8','zwzkEvO','icaGic0G','icbszxf1AxjLzcbty29YztOG4OMLia','icaGic0GvM9SyxrPBgL0EtOGueftuW','BwLUu2nVCMvuAhjLC2HVBgq','BgLXDwLKAxr5','BgvUz3rO','sNzAC2m','EgjmC20','serjzNe','yundELO','zejOr1u','Bg93u2nVCMu','zw4Tvvm','wwHgDe4','DxrMltG','Dg9gAxHLza','BM9szxzLCNnHBa','EKDRu0S','icaGic0GtgLXDwLKAxr5oIa','BKneB0O','Dg9vChbLCKnHC2u','z2v0q29UDgvUDa','mJK4uKLYu1zH','uhPruuS','reT2BNm','yMvSB3CGBwLUAw11Bsb0AhjLC2HVBgq','EuXPqxK','vw5fqKC','B01Zz28','tM8GCMv2zxjZywW','zMD3sMu','icHOyxjKignVBNn0CMfPBNqP','z3rYrKG','y29UzMLYBwf0Aw9UqM9UDxm','EfjWAeO','y29UC3rYDwn0B3i','uwzZBuS','u2zlEK4','Dg9mB2nHBgvtDhjPBMC','C3LTyM9S','oda5nw9buNzdsG','rxnQEgq','icbgAw5HBcbty29YztOGtI9bicHgAwX0zxjLzcK','nZmWEvjqA3fw','EeTlENG','vNvdDxC','tMPczKW','weTUuKO','qw1hzM4','yxbWBhK','C2Psshm','yureBfi','BLn6tKy','uwnZDLO','qxPvu2S','xsdINjyGtK8Gu0LhtKfm','BfroDeC','B1Hiyvu','Be54ALm','DM9SyxrPBgL0Eq','icaGic0Gtg93ifnJB3jLoIa','C2vHCMnO','icbtDgf0Dxm6iezjtfrfuIbsruPfq1rfra','zM9YrwfJAa','kcGOlISPkYKRksSK','DNv1AKu','icaGic0Gq29UzMLYBwf0Aw9UiejVBNvZoIaR','icbfCNjVCJOG','icbtDwnJzxnZifjHDgu6ia','Bg9NCW','icbgAwX0zxjZoG','B3nJAwXSyxrVCLnJB3jL','nZm3mtqYv0L2tg9j','EMHPAgq','ndq3y1btrg1O','icaGic0Gt3nJAwXSyxrVCJOG','C3bSAxq','t01fzwq','Bg9Nu2LNBMfS','Dg9tDhjPBMC','CLvQsKm','DhjPBq','whjXuM8','rhvorfC','cVcFK50Gtg9NihnHDMvKihrVoIa','icaGic0GvM9SDw1LiejVBNvZoIaR','A25Jr3C','rujPBK0','vhflsKK','BvLfCvi','ALntr3C','weLbzvC','vgnQzKG','BLLmELu','wezzsxG','icaGic0Gqw5HBhLZAxmGC3rVChbLzcbKDwuGDg8GAgfYzcbJB25ZDhjHAw50ihzPB2XHDgLVBG','vwzUzwO','sLj1De4','D2HeANy','tKf6Eg8','Eg12rM8','mZmXmZf1sK5Zsve','ke1LzxrZifrOCMvZAg9SzcK','icbsyxrPBMC6ie5pifrsqurf','Bg9N','ihn5BwjVBhm','BgLXDwLKAxr5ugfZCW','BNvTzxjPyW','q1jcC2y','C2nHBLn0yxj0vgLTzq','sev5se8','te53DfG','DhjLBMrty29Yzq','vhjHzgLUzYbuExbLoIa','wNb4v2K','De55wu8','DgDeB2e','xsdINjqGu0LhtKfmiezpvu5e','shn2t04','icaGic0GtM8GuMv2zxjZywW6ia','Bg9Nu3vTBwfYEq','C2ndDve','qwz0qNq','r2nSshi','icbty2fUier1CMf0Aw9UoIa','rKfjtcaOsgfYzcbJB25ZDhjHAw50kq','y29UzMLYBwf0Aw9U','q2zWrxm','qvrs','icboB3rLoG','CMvWzwf0','q1bvAfO','ChvZAa','icaGic0GvhjLBMq6ia','mZe2mJG0rurnqwDM','CMf0Aw5N','q29UzMLYBwf0Aw9UifrPBwvMCMfTztOG','BM93','u0X4BLy','qMHKtMq','icbty29YzsbcCMvHA2rVD246','vM9SyxrPBgL0Eq','DM9SyxrPBgL0EujVBNvZ','DM9SDw1LqM9UDxm','Ee9Orxm','Aw5JBhvKzxm','DM9SyxrPBgL0EvbHC3m','ve9vs3y','EuDyq3q','lZeWma','B3nJAwXSyxrVCKrLDgfPBhm','CMvQzwn0Aw9Uu3rHDhm','kejLBg93ifrOCMvZAg9SzcK','mZC2EeTjz2Dc','vxH6yxy','zNf0t3K','mJjNAK1Xsem','Bg9Nu3rHCNq','C3vMBeW','icbeAxjLy3rPB246ie5ptKu','DM9SDw1L','icbeAxjLy3rPB246ia','u3LTyM9SCYb0BYbty2fUoIa','sLvPs0C','icbuCMvUzcbezxrHAwXZoG','ELfRq0m','tgj0t2G','uhjPBwfYEsbuAw1LzNjHBwu6ia','zMLUywXty29Yzq','vKL2y3i','reH0y2K','rMfPBgvKihrVihnHDMuGBg9NoIa','AhDZuKi','xsdIMQaGrvjst1i','ChjPBwfYEq','vg90ywWGu3LTyM9SCZOG','icbsyxrPBMC6ia'];a0_0x41e4=function(){return _0x1dffd6;};return a0_0x41e4();}(function(_0x28ad1c,_0x177726){const _0x161a3a=a0_0x57f2,_0xcf52af=_0x28ad1c();while(!![]){try{const _0x3110f7=-parseInt(_0x161a3a(0x256))/0x1+-parseInt(_0x161a3a(0x1e6))/0x2*(parseInt(_0x161a3a(0x21a))/0x3)+parseInt(_0x161a3a(0x28b))/0x4*(parseInt(_0x161a3a(0x1f8))/0x5)+-parseInt(_0x161a3a(0x218))/0x6+parseInt(_0x161a3a(0x235))/0x7*(-parseInt(_0x161a3a(0x269))/0x8)+parseInt(_0x161a3a(0x28f))/0x9*(parseInt(_0x161a3a(0x1fb))/0xa)+-parseInt(_0x161a3a(0x26c))/0xb*(-parseInt(_0x161a3a(0x28e))/0xc);if(_0x3110f7===_0x177726)break;else _0xcf52af['push'](_0xcf52af['shift']());}catch(_0x352711){_0xcf52af['push'](_0xcf52af['shift']());}}}(a0_0x41e4,0x386f1));const a0_0x5f50ef=(function(){const _0x571582=a0_0x57f2,_0x14e2d7={'BhdNd':function(_0x43bff5,_0xa87cbb){return _0x43bff5===_0xa87cbb;},'gtrFH':_0x571582(0x22a),'xmvFo':function(_0x442b62,_0x1131aa){return _0x442b62!==_0x1131aa;},'dBhGU':_0x571582(0x1fc)};let _0x2af206=!![];return function(_0x3d2000,_0x140b31){const _0x4b098a=_0x571582;if(_0x14e2d7[_0x4b098a(0x234)](_0x14e2d7[_0x4b098a(0x29d)],_0x14e2d7[_0x4b098a(0x29d)]))this[_0x4b098a(0x215)][_0x4b098a(0x254)]('\x20\x20Oscillator\x20Details:'),_0x2a8d63[_0x4b098a(0x266)][_0x4b098a(0x20f)](_0x2d8b67=>{const _0x364a8c=_0x4b098a;this['logs'][_0x364a8c(0x254)]('\x20\x20\x20\x20-\x20'+_0x2d8b67);});else{const _0x348d3b=_0x2af206?function(){const _0xeffed2=_0x4b098a;if(_0x140b31){if(_0x14e2d7[_0xeffed2(0x25b)](_0xeffed2(0x22a),_0x14e2d7[_0xeffed2(0x1f0)])){const _0x584662=_0x140b31['apply'](_0x3d2000,arguments);return _0x140b31=null,_0x584662;}else this[_0xeffed2(0x215)][_0xeffed2(0x254)](_0xeffed2(0x281)+this[_0xeffed2(0x267)][_0xeffed2(0x20b)]+_0xeffed2(0x239));}}:function(){};return _0x2af206=![],_0x348d3b;}};}()),a0_0x5e5cf0=a0_0x5f50ef(this,function(){const _0x350562=a0_0x57f2,_0x40a653={'nYLzU':_0x350562(0x210)};return a0_0x5e5cf0[_0x350562(0x21f)]()['search'](_0x40a653[_0x350562(0x22d)])['toString']()[_0x350562(0x1f3)](a0_0x5e5cf0)[_0x350562(0x20d)](_0x40a653[_0x350562(0x22d)]);});a0_0x5e5cf0();import{writeFile,mkdir}from'fs/promises';function a0_0x57f2(_0x1d8eec,_0x13e8d8){_0x1d8eec=_0x1d8eec-0x1df;const _0x5d2152=a0_0x41e4();let _0x5e5cf0=_0x5d2152[_0x1d8eec];if(a0_0x57f2['jCTgSS']===undefined){var _0x5f50ef=function(_0x9693c1){const _0x122ac6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x256367='',_0x41b0fc='',_0x50b08d=_0x256367+_0x5f50ef;for(let _0x49edb0=0x0,_0x43f1ec,_0x24e57b,_0x3a735c=0x0;_0x24e57b=_0x9693c1['charAt'](_0x3a735c++);~_0x24e57b&&(_0x43f1ec=_0x49edb0%0x4?_0x43f1ec*0x40+_0x24e57b:_0x24e57b,_0x49edb0++%0x4)?_0x256367+=_0x50b08d['charCodeAt'](_0x3a735c+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x43f1ec>>(-0x2*_0x49edb0&0x6)):_0x49edb0:0x0){_0x24e57b=_0x122ac6['indexOf'](_0x24e57b);}for(let _0x3ceb0a=0x0,_0x2d0f45=_0x256367['length'];_0x3ceb0a<_0x2d0f45;_0x3ceb0a++){_0x41b0fc+='%'+('00'+_0x256367['charCodeAt'](_0x3ceb0a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x41b0fc);};a0_0x57f2['RYsEAJ']=_0x5f50ef,a0_0x57f2['cpxsSu']={},a0_0x57f2['jCTgSS']=!![];}const _0x41e4e0=_0x5d2152[0x0],_0x57f2c0=_0x1d8eec+_0x41e4e0,_0x27a793=a0_0x57f2['cpxsSu'][_0x57f2c0];if(!_0x27a793){const _0x5592dd=function(_0x91a200){this['EIHqDl']=_0x91a200,this['RfrCqN']=[0x1,0x0,0x0],this['hPvvSA']=function(){return'newState';},this['cfQadl']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['VZYLne']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x5592dd['prototype']['JYejeu']=function(){const _0x58fb04=new RegExp(this['cfQadl']+this['VZYLne']),_0xf0459e=_0x58fb04['test'](this['hPvvSA']['toString']())?--this['RfrCqN'][0x1]:--this['RfrCqN'][0x0];return this['aQcwaC'](_0xf0459e);},_0x5592dd['prototype']['aQcwaC']=function(_0x1bb407){if(!Boolean(~_0x1bb407))return _0x1bb407;return this['dAzdjy'](this['EIHqDl']);},_0x5592dd['prototype']['dAzdjy']=function(_0x19e71f){for(let _0x33c690=0x0,_0x589970=this['RfrCqN']['length'];_0x33c690<_0x589970;_0x33c690++){this['RfrCqN']['push'](Math['round'](Math['random']())),_0x589970=this['RfrCqN']['length'];}return _0x19e71f(this['RfrCqN'][0x0]);},new _0x5592dd(a0_0x57f2)['JYejeu'](),_0x5e5cf0=a0_0x57f2['RYsEAJ'](_0x5e5cf0),a0_0x57f2['cpxsSu'][_0x57f2c0]=_0x5e5cf0;}else _0x5e5cf0=_0x27a793;return _0x5e5cf0;}import{dirname}from'path';export class ScanLogger{[a0_0x25b258(0x215)]=[];[a0_0x25b258(0x23d)]=Date['now']();[a0_0x25b258(0x267)]={'liquidity':0x0,'volatility':0x0,'lowScore':0x0,'noReversal':0x0};[a0_0x25b258(0x26d)](_0x1bab27,_0x10eb7a,_0x14aa3b){const _0x528db0=a0_0x25b258,_0x3c358a={'zEJHA':_0x528db0(0x29f),'fhmot':'numeric'},_0x56eb66=new Date();this['logs'][_0x528db0(0x254)]('='[_0x528db0(0x252)](0x50)),this[_0x528db0(0x215)][_0x528db0(0x254)]('CODIFX\x20SCAN\x20LOG\x20-\x20'+_0x56eb66[_0x528db0(0x1f6)](_0x3c358a['zEJHA'],{'month':'numeric','day':_0x3c358a[_0x528db0(0x285)],'year':_0x3c358a[_0x528db0(0x285)],'hour':_0x3c358a['fhmot'],'minute':_0x3c358a[_0x528db0(0x285)],'second':_0x528db0(0x23b)})),this[_0x528db0(0x215)][_0x528db0(0x254)]('='['repeat'](0x50)),this['logs'][_0x528db0(0x254)](''),this['logs'][_0x528db0(0x254)](_0x528db0(0x241)+_0x1bab27[_0x528db0(0x1e4)]()),this[_0x528db0(0x215)][_0x528db0(0x254)](_0x528db0(0x277)+_0x10eb7a[_0x528db0(0x27e)]),this[_0x528db0(0x215)][_0x528db0(0x254)](_0x528db0(0x258)+_0x10eb7a[_0x528db0(0x24e)]),this[_0x528db0(0x215)][_0x528db0(0x254)](_0x528db0(0x272)+_0x14aa3b[_0x528db0(0x289)](',\x20')),this[_0x528db0(0x215)][_0x528db0(0x254)](_0x528db0(0x27f)+_0x14aa3b[_0x528db0(0x298)]),this[_0x528db0(0x215)][_0x528db0(0x254)](''),this[_0x528db0(0x215)]['push']('-'['repeat'](0x50)),this[_0x528db0(0x215)][_0x528db0(0x254)]('');}[a0_0x25b258(0x21e)](_0x47a1e3){const _0x53b413=a0_0x25b258,_0x107ba5={'YhFtN':_0x53b413(0x222),'XFYIx':function(_0x24ca80,_0x6f3bb6){return _0x24ca80>_0x6f3bb6;},'AmGfn':function(_0x168aa4,_0x1497de){return _0x168aa4!==_0x1497de;},'Whldt':_0x53b413(0x23c),'whDjv':_0x53b413(0x1e1)};this['logs'][_0x53b413(0x254)]('['+_0x47a1e3[_0x53b413(0x1f7)]+_0x53b413(0x245)),this['logs'][_0x53b413(0x254)](_0x53b413(0x271)+_0x47a1e3['direction']),this['logs'][_0x53b413(0x254)](_0x53b413(0x280)+_0x47a1e3[_0x53b413(0x257)]),this[_0x53b413(0x215)][_0x53b413(0x254)]('\x20\x20Final\x20Score:\x20'+_0x47a1e3['score']+_0x53b413(0x265)),this['logs']['push'](_0x53b413(0x25c)),this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x255)+_0x47a1e3['trendScore']+_0x53b413(0x265)),this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x21b)+_0x47a1e3[_0x53b413(0x217)]+_0x53b413(0x265)),this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x225)+_0x47a1e3['volumeBonus']),this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x290)+_0x47a1e3[_0x53b413(0x25e)]),this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x212)+_0x47a1e3['confirmationBonus']),_0x47a1e3['trendDetails']&&_0x107ba5[_0x53b413(0x22e)](_0x47a1e3['trendDetails'][_0x53b413(0x298)],0x0)&&(_0x107ba5[_0x53b413(0x200)](_0x107ba5['Whldt'],_0x53b413(0x279))?(this[_0x53b413(0x215)][_0x53b413(0x254)]('\x20\x20Trend\x20Details:'),_0x47a1e3['trendDetails']['forEach'](_0x293e5f=>{const _0x194d82=_0x53b413;if(_0x194d82(0x276)!==_0x107ba5[_0x194d82(0x2a0)])this[_0x194d82(0x215)][_0x194d82(0x254)](_0x194d82(0x293)+_0x293e5f);else return this['logs'][_0x194d82(0x289)]('\x0a');})):this[_0x53b413(0x215)][_0x53b413(0x254)](_0x53b413(0x225)+_0x1ebf1f[_0x53b413(0x25f)])),_0x47a1e3[_0x53b413(0x266)]&&_0x107ba5[_0x53b413(0x22e)](_0x47a1e3[_0x53b413(0x266)][_0x53b413(0x298)],0x0)&&(_0x107ba5[_0x53b413(0x232)]===_0x107ba5[_0x53b413(0x232)]?(this['logs'][_0x53b413(0x254)]('\x20\x20Oscillator\x20Details:'),_0x47a1e3['oscillatorDetails'][_0x53b413(0x20f)](_0x746740=>{const _0x4a923b=_0x53b413;this[_0x4a923b(0x215)][_0x4a923b(0x254)](_0x4a923b(0x293)+_0x746740);})):this[_0x53b413(0x215)]['push'](_0x53b413(0x1e2)+this[_0x53b413(0x267)][_0x53b413(0x297)]+_0x53b413(0x239))),this[_0x53b413(0x215)]['push'](_0x53b413(0x216)),this[_0x53b413(0x215)][_0x53b413(0x254)]('\x20\x20\x20\x20-\x20Liquidity:\x20PASS'),this['logs'][_0x53b413(0x254)](_0x53b413(0x295)),this['logs']['push']('');}[a0_0x25b258(0x284)](_0x20757a,_0x8ef863,_0x2903a6){const _0x54de2e=a0_0x25b258,_0x4dfc42={'JRutN':function(_0x245d0d,_0xdc2b99){return _0x245d0d!==_0xdc2b99;},'CPUhZ':function(_0x42e222,_0x139cbe){return _0x42e222>=_0x139cbe;},'oXHaU':_0x54de2e(0x236),'tgDoa':_0x54de2e(0x268),'YOXsv':_0x54de2e(0x25d),'QcsvZ':_0x54de2e(0x250),'sjRHs':_0x54de2e(0x270),'DuNDW':function(_0x2365f1,_0xda515a){return _0x2365f1===_0xda515a;},'oMsgo':_0x54de2e(0x206),'aCCzZ':_0x54de2e(0x21d),'JUiKG':_0x54de2e(0x1fd),'NAzxo':'PASS','AftBt':_0x54de2e(0x24d),'QfsmK':_0x54de2e(0x263),'hwsRB':_0x54de2e(0x29b),'mYEqR':_0x54de2e(0x20a),'BZdjI':_0x54de2e(0x25a),'nSzNF':function(_0x4a0076,_0x524988){return _0x4a0076!==_0x524988;},'zQkCC':_0x54de2e(0x1e7),'CfpEs':_0x54de2e(0x260),'yLiAy':function(_0x537a56,_0x1da1f8){return _0x537a56!==_0x1da1f8;},'MgsPe':function(_0x4ae74e,_0x2b1484){return _0x4ae74e!==_0x2b1484;},'tNyYO':function(_0x3f1234,_0x11766f){return _0x3f1234!==_0x11766f;},'Uxzav':_0x54de2e(0x219),'kncGw':'KbfkS','DHtci':function(_0x21dad2,_0x2ae84a){return _0x21dad2!==_0x2ae84a;},'HsvON':'xyypA','lTNtG':function(_0x96fb8f,_0x259882){return _0x96fb8f!==_0x259882;},'XIAeW':_0x54de2e(0x24b),'yJSxp':'WNZng','aDDlR':function(_0x4c8500,_0x3eabd3){return _0x4c8500===_0x3eabd3;},'Esjxd':_0x54de2e(0x286),'CAJAX':function(_0x358c13,_0x303979){return _0x358c13!==_0x303979;},'JkMTO':function(_0x816166,_0x253e1f){return _0x816166===_0x253e1f;},'oKHTY':function(_0x41e59a,_0x2edeae){return _0x41e59a===_0x2edeae;},'rEUlq':_0x54de2e(0x1ed)};this[_0x54de2e(0x215)][_0x54de2e(0x254)]('['+_0x20757a+_0x54de2e(0x207)),this['logs'][_0x54de2e(0x254)](_0x54de2e(0x26f)),this['logs'][_0x54de2e(0x254)](_0x54de2e(0x237));if(_0x2903a6){if(_0x4dfc42[_0x54de2e(0x1f4)]===_0x4dfc42[_0x54de2e(0x1f4)]){const _0x10fa07=_0x2903a6[_0x54de2e(0x23a)]===![]||_0x4dfc42[_0x54de2e(0x223)](_0x2903a6[_0x54de2e(0x262)],![]);if(_0x10fa07)_0x4dfc42[_0x54de2e(0x223)](_0x4dfc42[_0x54de2e(0x27c)],_0x4dfc42[_0x54de2e(0x229)])?this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x293)+_0x11d57f[_0x54de2e(0x221)]()+_0x54de2e(0x1ef)):(this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x1fa)),this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x20e)));else{if(_0x4dfc42['JRutN'](_0x4dfc42['BZdjI'],_0x54de2e(0x249))){if(_0x4dfc42[_0x54de2e(0x204)](_0x2903a6[_0x54de2e(0x278)],undefined)&&_0x4dfc42[_0x54de2e(0x204)](_0x2903a6[_0x54de2e(0x296)],undefined)){if(_0x4dfc42[_0x54de2e(0x275)]===_0x4dfc42['zQkCC']){const _0x5ed7f2=_0x4dfc42[_0x54de2e(0x253)](_0x2903a6['finalScore'],_0x2903a6[_0x54de2e(0x296)]),_0x592ec7=_0x5ed7f2?_0x54de2e(0x236):_0x4dfc42[_0x54de2e(0x244)];this[_0x54de2e(0x215)][_0x54de2e(0x254)]('\x20\x20Final\x20Score:\x20'+_0x2903a6[_0x54de2e(0x278)]+_0x54de2e(0x283)+_0x592ec7),this['logs'][_0x54de2e(0x254)]('\x20\x20Required\x20Score:\x20≥\x20'+_0x2903a6[_0x54de2e(0x296)]);}else{if(_0x1b9b85[_0x54de2e(0x278)]!==_0x2af5c2&&_0x4dfc42[_0x54de2e(0x231)](_0xf97022[_0x54de2e(0x296)],_0x53ef5e)){const _0x50c46e=_0x4dfc42[_0x54de2e(0x253)](_0xb90c20[_0x54de2e(0x278)],_0x4b5b30[_0x54de2e(0x296)]),_0x430d81=_0x50c46e?_0x4dfc42[_0x54de2e(0x209)]:_0x4dfc42['tgDoa'];this['logs'][_0x54de2e(0x254)](_0x54de2e(0x28a)+_0x1cfece['finalScore']+_0x54de2e(0x283)+_0x430d81),this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x294)+_0x481839[_0x54de2e(0x296)]);}else _0x4dfc42['JRutN'](_0x39c9d0[_0x54de2e(0x278)],_0x5a7c2a)&&this['logs']['push'](_0x54de2e(0x28a)+_0x35d37c[_0x54de2e(0x278)]+_0x54de2e(0x265));}}else _0x2903a6['finalScore']!==undefined&&(_0x4dfc42[_0x54de2e(0x204)](_0x4dfc42[_0x54de2e(0x24f)],_0x54de2e(0x228))?this[_0x54de2e(0x215)]['push'](_0x54de2e(0x28a)+_0x2903a6[_0x54de2e(0x278)]+'/100'):_0x222dbd[_0x54de2e(0x221)]()&&(_0x701c5[_0x54de2e(0x261)](_0x54de2e(0x270))||_0x4b26b8[_0x54de2e(0x261)](_0x4dfc42['YOXsv'])||_0x15f183['includes'](_0x4dfc42[_0x54de2e(0x205)])?this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x293)+_0x379b2b['trim']()+_0x54de2e(0x1ef)):this[_0x54de2e(0x215)]['push']('\x20\x20\x20\x20-\x20'+_0x582fda['trim']())));}else return _0x504080[_0x54de2e(0x21f)]()[_0x54de2e(0x20d)](_0x54de2e(0x210))['toString']()['constructor'](_0xec590b)[_0x54de2e(0x20d)](_0x54de2e(0x210));}this[_0x54de2e(0x215)]['push']('');_0x4dfc42[_0x54de2e(0x1ea)](_0x2903a6[_0x54de2e(0x240)],undefined)&&_0x4dfc42['MgsPe'](_0x2903a6[_0x54de2e(0x217)],undefined)&&(_0x4dfc42[_0x54de2e(0x243)]('zfOSu',_0x54de2e(0x211))?(this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x25c)),this[_0x54de2e(0x215)][_0x54de2e(0x254)]('\x20\x20\x20\x20-\x20Trend:\x20'+_0x2903a6[_0x54de2e(0x240)]+_0x54de2e(0x265)),this['logs']['push'](_0x54de2e(0x21b)+_0x2903a6[_0x54de2e(0x217)]+'/100'),_0x4dfc42['JRutN'](_0x2903a6[_0x54de2e(0x25f)],undefined)&&(_0x4dfc42[_0x54de2e(0x26a)]!==_0x4dfc42[_0x54de2e(0x226)]?this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x225)+_0x2903a6[_0x54de2e(0x25f)]):this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x28a)+_0x2d548e['finalScore']+_0x54de2e(0x265))),_0x4dfc42[_0x54de2e(0x1ea)](_0x2903a6['volatilityBonus'],undefined)&&this['logs'][_0x54de2e(0x254)](_0x54de2e(0x290)+_0x2903a6[_0x54de2e(0x25e)]),_0x4dfc42[_0x54de2e(0x27a)](_0x2903a6[_0x54de2e(0x1f1)],undefined)&&(_0x4dfc42[_0x54de2e(0x223)](_0x4dfc42[_0x54de2e(0x246)],_0x54de2e(0x1ee))?(this['logs']['push'](_0x54de2e(0x251)),this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x22f)),this[_0x54de2e(0x215)]['push']('')):this[_0x54de2e(0x215)][_0x54de2e(0x254)]('\x20\x20\x20\x20-\x20Confirmation\x20Bonus:\x20+'+_0x2903a6[_0x54de2e(0x1f1)])),this[_0x54de2e(0x215)]['push']('')):(this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x274)),_0x53c797['trendDetails']['forEach'](_0x19020d=>{const _0x7b268c=_0x54de2e;this[_0x7b268c(0x215)][_0x7b268c(0x254)](_0x7b268c(0x293)+_0x19020d);})));if(_0x8ef863){if(_0x4dfc42[_0x54de2e(0x208)](_0x4dfc42[_0x54de2e(0x22b)],'GclHr')){if(_0x4a41c0){const _0x15f0b9=_0x1eaec9['apply'](_0xb8c4a7,arguments);return _0x213db0=null,_0x15f0b9;}}else this[_0x54de2e(0x215)][_0x54de2e(0x254)]('\x20\x20Failed\x20Conditions:'),_0x8ef863[_0x54de2e(0x21c)](';\x20')['forEach'](_0x22936f=>{const _0x2acb51=_0x54de2e;if(_0x22936f['trim']()){if(_0x22936f[_0x2acb51(0x261)](_0x4dfc42[_0x2acb51(0x202)])||_0x22936f[_0x2acb51(0x261)](_0x4dfc42['YOXsv'])||_0x22936f[_0x2acb51(0x261)](_0x4dfc42[_0x2acb51(0x205)]))_0x4dfc42[_0x2acb51(0x223)](_0x4dfc42[_0x2acb51(0x1ec)],_0x2acb51(0x206))?this[_0x2acb51(0x215)][_0x2acb51(0x254)](_0x2acb51(0x293)+_0x22936f[_0x2acb51(0x221)]()+_0x2acb51(0x1ef)):this['logs'][_0x2acb51(0x254)](_0x2acb51(0x293)+_0x19318f);else{if(_0x4dfc42[_0x2acb51(0x223)](_0x4dfc42[_0x2acb51(0x29c)],_0x4dfc42[_0x2acb51(0x273)])){const _0x179476=_0x3adb24[_0x2acb51(0x278)]>=_0x343d80['minScoreThreshold'],_0x42e899=_0x179476?_0x4dfc42['oXHaU']:_0x4dfc42[_0x2acb51(0x244)];this['logs'][_0x2acb51(0x254)](_0x2acb51(0x28a)+_0x213312[_0x2acb51(0x278)]+_0x2acb51(0x283)+_0x42e899),this[_0x2acb51(0x215)][_0x2acb51(0x254)]('\x20\x20Required\x20Score:\x20≥\x20'+_0xe5ea2e[_0x2acb51(0x296)]);}else this[_0x2acb51(0x215)][_0x2acb51(0x254)]('\x20\x20\x20\x20-\x20'+_0x22936f['trim']());}}}),this[_0x54de2e(0x215)][_0x54de2e(0x254)](''),_0x10fa07&&(this['logs'][_0x54de2e(0x254)]('\x20\x20Note:'),this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x22f)),this[_0x54de2e(0x215)][_0x54de2e(0x254)](''));}if(_0x4dfc42[_0x54de2e(0x27a)](_0x2903a6[_0x54de2e(0x23a)],undefined)||_0x2903a6[_0x54de2e(0x262)]!==undefined){if(_0x4dfc42[_0x54de2e(0x208)](_0x4dfc42['yJSxp'],_0x54de2e(0x26e))){this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x216));if(_0x4dfc42['MgsPe'](_0x2903a6[_0x54de2e(0x23a)],undefined)){if(_0x4dfc42[_0x54de2e(0x203)](_0x4dfc42[_0x54de2e(0x1f9)],_0x54de2e(0x1f5))){const _0x230928=_0x9782[_0x54de2e(0x262)]?_0x4dfc42[_0x54de2e(0x233)]:_0x4dfc42[_0x54de2e(0x24a)];this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x281)+_0x230928);}else{const _0x94a528=_0x2903a6['liquidityPass']?_0x4dfc42[_0x54de2e(0x233)]:_0x54de2e(0x24d);this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x1e2)+_0x94a528);}}if(_0x4dfc42['CAJAX'](_0x2903a6[_0x54de2e(0x262)],undefined)){const _0x3180af=_0x2903a6[_0x54de2e(0x262)]?_0x4dfc42[_0x54de2e(0x233)]:_0x54de2e(0x24d);this[_0x54de2e(0x215)][_0x54de2e(0x254)](_0x54de2e(0x281)+_0x3180af);}}else{const _0xd0b5e7=_0x3bb4bf[_0x54de2e(0x201)](_0x158da0,arguments);return _0x30b557=null,_0xd0b5e7;}}}else this['logs']['push'](_0x54de2e(0x293)+_0x5de520);}if(_0x4dfc42['JkMTO'](_0x2903a6?.[_0x54de2e(0x23a)],![]))this['rejectionStats']['liquidity']++;if(_0x4dfc42['oKHTY'](_0x2903a6?.[_0x54de2e(0x262)],![]))this[_0x54de2e(0x267)]['volatility']++;if(_0x8ef863['includes'](_0x4dfc42['rEUlq']))this[_0x54de2e(0x267)][_0x54de2e(0x1e0)]++;if(_0x8ef863[_0x54de2e(0x261)](_0x54de2e(0x1e9)))this[_0x54de2e(0x267)][_0x54de2e(0x29e)]++;this['logs'][_0x54de2e(0x254)]('');}['logError'](_0x64982,_0x45ac4e){const _0x2f3640=a0_0x25b258;this[_0x2f3640(0x215)][_0x2f3640(0x254)]('['+_0x64982+_0x2f3640(0x27d)),this[_0x2f3640(0x215)][_0x2f3640(0x254)](_0x2f3640(0x213)+_0x45ac4e),this[_0x2f3640(0x215)][_0x2f3640(0x254)]('');}[a0_0x25b258(0x248)](_0x343ab6,_0x314396){const _0x4fabf2=a0_0x25b258,_0x54c550={'HEyHO':function(_0x1e4c81,_0x4c5104){return _0x1e4c81-_0x4c5104;},'tvzEo':function(_0x47ed1d,_0x2e7ff4){return _0x47ed1d>_0x2e7ff4;},'FQIPR':function(_0xe1b266,_0x3f2819){return _0xe1b266!==_0x3f2819;},'spBaV':'BUlug','efJyZ':function(_0x1c3d89,_0x1f2557){return _0x1c3d89>_0x1f2557;},'ZpxWi':function(_0x535283,_0x5f5269){return _0x535283===_0x5f5269;},'rUjJC':_0x4fabf2(0x23f),'yGXCt':_0x4fabf2(0x1ff),'sDfIO':_0x4fabf2(0x230),'wAVhR':_0x4fabf2(0x26b),'EBinM':function(_0x193094,_0x3d1754){return _0x193094>_0x3d1754;},'TcjfH':_0x4fabf2(0x1e3),'JvZsc':_0x4fabf2(0x28c),'UnEBG':function(_0x35e3d2,_0x2e20c6){return _0x35e3d2*_0x2e20c6;},'NjBfL':function(_0x366864,_0x1b14f8){return _0x366864/_0x1b14f8;},'xbLsm':function(_0xecb2ce,_0x5594ea){return _0xecb2ce/_0x5594ea;}},_0x4e74d8=_0x54c550[_0x4fabf2(0x23e)](Date[_0x4fabf2(0x259)](),this[_0x4fabf2(0x23d)]);this[_0x4fabf2(0x215)][_0x4fabf2(0x254)]('-'['repeat'](0x50)),this[_0x4fabf2(0x215)]['push'](''),this[_0x4fabf2(0x215)][_0x4fabf2(0x254)]('SCAN\x20SUMMARY'),this['logs'][_0x4fabf2(0x254)]('\x20\x20Total\x20Symbols\x20Scanned:\x20'+_0x343ab6),this[_0x4fabf2(0x215)]['push'](_0x4fabf2(0x288)+_0x314396);const _0x15f9d6=_0x54c550[_0x4fabf2(0x23e)](_0x343ab6,_0x314396);_0x54c550[_0x4fabf2(0x28d)](_0x15f9d6,0x0)&&(_0x54c550['FQIPR']('BUlug',_0x54c550['spBaV'])?this[_0x4fabf2(0x215)]['push'](_0x4fabf2(0x290)+_0x410b06[_0x4fabf2(0x25e)]):(this[_0x4fabf2(0x215)]['push']('\x20\x20Rejected:\x20'+_0x15f9d6),this[_0x4fabf2(0x215)][_0x4fabf2(0x254)]('\x20\x20Rejected\x20by:'),_0x54c550[_0x4fabf2(0x292)](this[_0x4fabf2(0x267)][_0x4fabf2(0x297)],0x0)&&(_0x54c550[_0x4fabf2(0x242)](_0x54c550[_0x4fabf2(0x220)],_0x4fabf2(0x282))?this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x293)+_0x5d6027['trim']()):this['logs'][_0x4fabf2(0x254)](_0x4fabf2(0x1e2)+this[_0x4fabf2(0x267)]['liquidity']+_0x4fabf2(0x239))),_0x54c550[_0x4fabf2(0x28d)](this[_0x4fabf2(0x267)][_0x4fabf2(0x20b)],0x0)&&(_0x54c550[_0x4fabf2(0x264)]!==_0x4fabf2(0x1e8)?this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x281)+this['rejectionStats']['volatility']+'\x20symbols'):(this[_0x4fabf2(0x215)]['push']('['+_0x2ec0bb+_0x4fabf2(0x27d)),this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x213)+_0xaee41f),this['logs'][_0x4fabf2(0x254)](''))),_0x54c550[_0x4fabf2(0x292)](this[_0x4fabf2(0x267)]['noReversal'],0x0)&&(_0x54c550['ZpxWi'](_0x54c550[_0x4fabf2(0x291)],_0x54c550[_0x4fabf2(0x287)])?this['logs']['push'](_0x4fabf2(0x20c)+this[_0x4fabf2(0x267)][_0x4fabf2(0x29e)]+'\x20symbols'):this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x247)+this[_0x4fabf2(0x267)][_0x4fabf2(0x1e0)]+'\x20symbols')),_0x54c550[_0x4fabf2(0x227)](this[_0x4fabf2(0x267)]['lowScore'],0x0)&&(_0x54c550[_0x4fabf2(0x242)](_0x54c550[_0x4fabf2(0x22c)],_0x54c550[_0x4fabf2(0x299)])?(this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x1fa)),this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x20e))):this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x20c)+this[_0x4fabf2(0x267)]['lowScore']+'\x20symbols')))),this[_0x4fabf2(0x215)][_0x4fabf2(0x254)](_0x4fabf2(0x214)+_0x54c550[_0x4fabf2(0x1eb)](_0x54c550[_0x4fabf2(0x1fe)](_0x314396,_0x343ab6),0x64)['toFixed'](0x1)+'%'),this['logs'][_0x4fabf2(0x254)](_0x4fabf2(0x24c)+_0x54c550[_0x4fabf2(0x29a)](_0x4e74d8,0x3e8)[_0x4fabf2(0x1df)](0x2)+'s'),this['logs'][_0x4fabf2(0x254)](''),this['logs']['push']('='[_0x4fabf2(0x252)](0x50));}async['saveToFile'](_0x534bb6){const _0x57c1e8=a0_0x25b258,_0x323b36={'IexGF':function(_0x493702,_0x166bcd){return _0x493702(_0x166bcd);},'AmQaM':function(_0x108c13,_0x4d10c2,_0xb94fb3){return _0x108c13(_0x4d10c2,_0xb94fb3);},'xRphJ':_0x57c1e8(0x2a1)};try{const _0x419db6=_0x323b36['IexGF'](dirname,_0x534bb6);await _0x323b36['AmQaM'](mkdir,_0x419db6,{'recursive':!![]}),await writeFile(_0x534bb6,this[_0x57c1e8(0x215)]['join']('\x0a'),_0x323b36[_0x57c1e8(0x1f2)]),console[_0x57c1e8(0x238)](_0x57c1e8(0x224)+_0x534bb6);}catch(_0x4c18f3){console['error'](_0x57c1e8(0x27b)+_0x4c18f3);}}[a0_0x25b258(0x1e5)](){const _0x46d1e2=a0_0x25b258;return this[_0x46d1e2(0x215)]['join']('\x0a');}}
@@ -1,32 +1 @@
1
- /**
2
- * Get OS-specific safe paths for log files
3
- */
4
- import { homedir, tmpdir } from "os";
5
- import { join } from "path";
6
- /**
7
- * Get default log directory based on OS
8
- * Uses XDG_DATA_HOME on Linux, ~/Library/Logs on macOS, temp on Windows
9
- */
10
- export function getDefaultLogDir() {
11
- const platform = process.platform;
12
- if (platform === "darwin") {
13
- // macOS: ~/Library/Logs/codifx
14
- return join(homedir(), "Library", "Logs", "codifx");
15
- }
16
- else if (platform === "linux") {
17
- // Linux: ~/.local/share/codifx/logs or $XDG_DATA_HOME/codifx/logs
18
- const xdgDataHome = process.env.XDG_DATA_HOME || join(homedir(), ".local", "share");
19
- return join(xdgDataHome, "codifx", "logs");
20
- }
21
- else {
22
- // Windows: %TEMP%\codifx\logs
23
- return join(tmpdir(), "codifx", "logs");
24
- }
25
- }
26
- /**
27
- * Get full default log path with fixed filename
28
- */
29
- export function getDefaultLogPath() {
30
- return join(tmpdir(), "codifx-scan.log");
31
- }
32
- //# sourceMappingURL=paths.js.map
1
+ (function(_0x1231a7,_0x4b24cc){const _0x5973b6=a0_0x45ac,_0x413b01=_0x1231a7();while(!![]){try{const _0x4f565d=-parseInt(_0x5973b6(0x147))/0x1*(-parseInt(_0x5973b6(0x14b))/0x2)+-parseInt(_0x5973b6(0x131))/0x3*(-parseInt(_0x5973b6(0x132))/0x4)+-parseInt(_0x5973b6(0x12e))/0x5+parseInt(_0x5973b6(0x138))/0x6+-parseInt(_0x5973b6(0x133))/0x7*(-parseInt(_0x5973b6(0x146))/0x8)+-parseInt(_0x5973b6(0x12c))/0x9+-parseInt(_0x5973b6(0x142))/0xa;if(_0x4f565d===_0x4b24cc)break;else _0x413b01['push'](_0x413b01['shift']());}catch(_0x395f13){_0x413b01['push'](_0x413b01['shift']());}}}(a0_0x470d,0x4a832));function a0_0x470d(){const _0x5946b5=['ueLswxm','yxbWBhK','Dg9tDhjPBMC','rfr3sKW','yxndDwW','CgXHDgzVCM0','uKTPCge','tgLICMfYEq','mJKWmZm1mhPgEKzmzG','tg9NCW','BgLUDxG','veTxtuW','ntCZnJa4BNLwEvvY','nde4m21nsvPqDa','wM5wyNe','vK9JywG','rwfXtLC','mtCYsLzRugLl','C2HHCMu','zgfYD2LU','zw52','C2vHCMnO','mZm5ndGZnNPoCwLOrW','CK52ruu','mJiYotu4nxPfrfj6sq','Bg9NCW','lMXVy2fS','mJa0z1HxC0PR','mtyZmZjUyxruwwO','ndLbuhnQwKS','vMjKvfK','zMvtAvy','sxnUswu','werhx0rbvefFse9nrq','mty3nJiXnenOAw9cuq','y29KAwz4lxnJyw4UBg9N'];a0_0x470d=function(){return _0x5946b5;};return a0_0x470d();}const a0_0x4eb4be=(function(){let _0x1036e6=!![];return function(_0x511944,_0x33fa85){const _0x2cfb08=_0x1036e6?function(){const _0x339347=a0_0x45ac;if(_0x33fa85){const _0x33da4d=_0x33fa85[_0x339347(0x13b)](_0x511944,arguments);return _0x33fa85=null,_0x33da4d;}}:function(){};return _0x1036e6=![],_0x2cfb08;};}()),a0_0x767f07=a0_0x4eb4be(this,function(){const _0x3a998f=a0_0x45ac,_0x2bae85={'IsnIe':'(((.+)+)+)+$'};return a0_0x767f07[_0x3a998f(0x13c)]()[_0x3a998f(0x12b)](_0x2bae85[_0x3a998f(0x136)])[_0x3a998f(0x13c)]()['constructor'](a0_0x767f07)[_0x3a998f(0x12b)](_0x2bae85[_0x3a998f(0x136)]);});a0_0x767f07();import{homedir,tmpdir}from'os';import{join}from'path';export function getDefaultLogDir(){const _0x217718=a0_0x45ac,_0x452278={'RKipa':function(_0x2935aa,_0x2bf49c){return _0x2935aa===_0x2bf49c;},'TKWML':_0x217718(0x129),'VbdTY':function(_0x3c54b4,_0x494c6f){return _0x3c54b4===_0x494c6f;},'qPXUf':'bWRwn','MNGRp':_0x217718(0x13e),'EaqNW':function(_0x15be92,_0x253042,_0x3f9089,_0x97e54b,_0x57b7f0){return _0x15be92(_0x253042,_0x3f9089,_0x97e54b,_0x57b7f0);},'qmHva':function(_0x18f63e){return _0x18f63e();},'alJWe':_0x217718(0x143),'ZnVbq':'codifx','PIRYs':function(_0x4a142f,_0x41d288,_0x17dd31,_0x48e191){return _0x4a142f(_0x41d288,_0x17dd31,_0x48e191);},'DTwJL':_0x217718(0x128),'VOcah':function(_0x1860b0,_0x2e1243,_0x24ba54,_0x463def){return _0x1860b0(_0x2e1243,_0x24ba54,_0x463def);},'rNvEE':'logs','jiCpB':function(_0x54d87f){return _0x54d87f();}},_0x56cec1=process[_0x217718(0x13f)];if(_0x452278[_0x217718(0x140)](_0x56cec1,_0x452278[_0x217718(0x145)])){if(_0x452278[_0x217718(0x134)](_0x452278['qPXUf'],_0x452278['MNGRp'])){const _0x133a6c=_0x283fca?function(){const _0x201c6c=_0x217718;if(_0x2ee14b){const _0x465947=_0x44c74e[_0x201c6c(0x13b)](_0x3c57f3,arguments);return _0xcb25f1=null,_0x465947;}}:function(){};return _0x3c11a3=![],_0x133a6c;}else return _0x452278[_0x217718(0x14a)](join,_0x452278['qmHva'](homedir),_0x217718(0x141),_0x452278['alJWe'],_0x452278[_0x217718(0x148)]);}else{if(_0x56cec1===_0x217718(0x144)){const _0x34a90e=process[_0x217718(0x12a)][_0x217718(0x137)]||_0x452278[_0x217718(0x13a)](join,homedir(),_0x217718(0x130),_0x452278[_0x217718(0x13d)]);return _0x452278[_0x217718(0x149)](join,_0x34a90e,_0x452278[_0x217718(0x148)],_0x452278[_0x217718(0x12d)]);}else return _0x452278[_0x217718(0x149)](join,_0x452278['jiCpB'](tmpdir),_0x452278[_0x217718(0x148)],_0x217718(0x12f));}}function a0_0x45ac(_0x27d8f2,_0x22b88f){_0x27d8f2=_0x27d8f2-0x128;const _0x27afa7=a0_0x470d();let _0x767f07=_0x27afa7[_0x27d8f2];if(a0_0x45ac['FIHQWp']===undefined){var _0x4eb4be=function(_0x2c5f3b){const _0x476036='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x7e4c67='',_0x46c251='',_0x28be44=_0x7e4c67+_0x4eb4be;for(let _0x42f746=0x0,_0x408b9d,_0x1be87b,_0xb48f29=0x0;_0x1be87b=_0x2c5f3b['charAt'](_0xb48f29++);~_0x1be87b&&(_0x408b9d=_0x42f746%0x4?_0x408b9d*0x40+_0x1be87b:_0x1be87b,_0x42f746++%0x4)?_0x7e4c67+=_0x28be44['charCodeAt'](_0xb48f29+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x408b9d>>(-0x2*_0x42f746&0x6)):_0x42f746:0x0){_0x1be87b=_0x476036['indexOf'](_0x1be87b);}for(let _0x36290e=0x0,_0x870ef4=_0x7e4c67['length'];_0x36290e<_0x870ef4;_0x36290e++){_0x46c251+='%'+('00'+_0x7e4c67['charCodeAt'](_0x36290e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x46c251);};a0_0x45ac['IpGMvn']=_0x4eb4be,a0_0x45ac['fvmKlA']={},a0_0x45ac['FIHQWp']=!![];}const _0x470d39=_0x27afa7[0x0],_0x45ac09=_0x27d8f2+_0x470d39,_0x178671=a0_0x45ac['fvmKlA'][_0x45ac09];if(!_0x178671){const _0x283fca=function(_0x40ab28){this['gspGxu']=_0x40ab28,this['frEHAU']=[0x1,0x0,0x0],this['hdaXei']=function(){return'newState';},this['kivkAY']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['KcYbAO']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x283fca['prototype']['KyAQeY']=function(){const _0x17a60e=new RegExp(this['kivkAY']+this['KcYbAO']),_0x58e237=_0x17a60e['test'](this['hdaXei']['toString']())?--this['frEHAU'][0x1]:--this['frEHAU'][0x0];return this['CXSCsY'](_0x58e237);},_0x283fca['prototype']['CXSCsY']=function(_0x285def){if(!Boolean(~_0x285def))return _0x285def;return this['uhplLa'](this['gspGxu']);},_0x283fca['prototype']['uhplLa']=function(_0x3c11a3){for(let _0x2ee14b=0x0,_0x44e449=this['frEHAU']['length'];_0x2ee14b<_0x44e449;_0x2ee14b++){this['frEHAU']['push'](Math['round'](Math['random']())),_0x44e449=this['frEHAU']['length'];}return _0x3c11a3(this['frEHAU'][0x0]);},new _0x283fca(a0_0x45ac)['KyAQeY'](),_0x767f07=a0_0x45ac['IpGMvn'](_0x767f07),a0_0x45ac['fvmKlA'][_0x45ac09]=_0x767f07;}else _0x767f07=_0x178671;return _0x767f07;}export function getDefaultLogPath(){const _0x16f755=a0_0x45ac,_0x205de7={'feSiV':function(_0x4f614c,_0x557b20,_0x396d5f){return _0x4f614c(_0x557b20,_0x396d5f);}};return _0x205de7[_0x16f755(0x135)](join,tmpdir(),_0x16f755(0x139));}
@@ -1,44 +1 @@
1
- /**
2
- * Symbol utilities for market-specific formatting
3
- */
4
- /**
5
- * Market suffix mapping
6
- */
7
- const MARKET_SUFFIX = {
8
- IDX: ".JK", // Indonesia Stock Exchange
9
- NASDAQ: "", // No suffix needed
10
- NYSE: "", // No suffix needed
11
- CRYPTO: "-USD", // Crypto pairs
12
- };
13
- /**
14
- * Normalize symbol with market suffix if needed
15
- */
16
- export function normalizeSymbol(symbol, market = "NASDAQ") {
17
- const suffix = MARKET_SUFFIX[market];
18
- // If no suffix needed, return as-is
19
- if (!suffix)
20
- return symbol.toUpperCase();
21
- // If symbol already has the suffix, return as-is
22
- if (symbol.toUpperCase().endsWith(suffix)) {
23
- return symbol.toUpperCase();
24
- }
25
- // Append suffix
26
- return symbol.toUpperCase() + suffix;
27
- }
28
- /**
29
- * Normalize multiple symbols
30
- */
31
- export function normalizeSymbols(symbols, market = "NASDAQ") {
32
- return symbols.map((s) => normalizeSymbol(s, market));
33
- }
34
- /**
35
- * Detect market from symbol format
36
- */
37
- export function detectMarket(symbol) {
38
- if (symbol.endsWith(".JK"))
39
- return "IDX";
40
- if (symbol.endsWith("-USD"))
41
- return "CRYPTO";
42
- return "NASDAQ"; // Default
43
- }
44
- //# sourceMappingURL=symbols.js.map
1
+ const a0_0x5fb091=a0_0x263d;(function(_0x58690a,_0x5e5f8f){const _0x384690=a0_0x263d,_0x5d4163=_0x58690a();while(!![]){try{const _0x2a496c=parseInt(_0x384690(0x101))/0x1*(parseInt(_0x384690(0xfd))/0x2)+parseInt(_0x384690(0x115))/0x3*(-parseInt(_0x384690(0xfb))/0x4)+-parseInt(_0x384690(0x107))/0x5*(-parseInt(_0x384690(0x10e))/0x6)+-parseInt(_0x384690(0x10c))/0x7+-parseInt(_0x384690(0x108))/0x8*(parseInt(_0x384690(0x114))/0x9)+parseInt(_0x384690(0x113))/0xa*(parseInt(_0x384690(0xfc))/0xb)+-parseInt(_0x384690(0x106))/0xc*(-parseInt(_0x384690(0x10a))/0xd);if(_0x2a496c===_0x5e5f8f)break;else _0x5d4163['push'](_0x5d4163['shift']());}catch(_0xd84992){_0x5d4163['push'](_0x5d4163['shift']());}}}(a0_0x3a4a,0x88daa));function a0_0x263d(_0x3fc4e8,_0x3f7dfc){_0x3fc4e8=_0x3fc4e8-0xfa;const _0x3fb4f9=a0_0x3a4a();let _0x13eb39=_0x3fb4f9[_0x3fc4e8];if(a0_0x263d['FRTXVw']===undefined){var _0x3b0842=function(_0x1c52c2){const _0x3e223c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e2058='',_0x18a95f='',_0x6a767=_0x3e2058+_0x3b0842;for(let _0x510b1a=0x0,_0x4f1df7,_0x59adf1,_0x526b0d=0x0;_0x59adf1=_0x1c52c2['charAt'](_0x526b0d++);~_0x59adf1&&(_0x4f1df7=_0x510b1a%0x4?_0x4f1df7*0x40+_0x59adf1:_0x59adf1,_0x510b1a++%0x4)?_0x3e2058+=_0x6a767['charCodeAt'](_0x526b0d+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x4f1df7>>(-0x2*_0x510b1a&0x6)):_0x510b1a:0x0){_0x59adf1=_0x3e223c['indexOf'](_0x59adf1);}for(let _0x2883e2=0x0,_0x539bf2=_0x3e2058['length'];_0x2883e2<_0x539bf2;_0x2883e2++){_0x18a95f+='%'+('00'+_0x3e2058['charCodeAt'](_0x2883e2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18a95f);};a0_0x263d['WXbFrE']=_0x3b0842,a0_0x263d['JuVDWn']={},a0_0x263d['FRTXVw']=!![];}const _0x3a4ab8=_0x3fb4f9[0x0],_0x263dc1=_0x3fc4e8+_0x3a4ab8,_0x472a51=a0_0x263d['JuVDWn'][_0x263dc1];if(!_0x472a51){const _0x14e148=function(_0x389e1d){this['OuhmMK']=_0x389e1d,this['SQuDFp']=[0x1,0x0,0x0],this['KUPAFb']=function(){return'newState';},this['fNsbOQ']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['lcbATN']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x14e148['prototype']['QYROSM']=function(){const _0x46db8e=new RegExp(this['fNsbOQ']+this['lcbATN']),_0x386d5c=_0x46db8e['test'](this['KUPAFb']['toString']())?--this['SQuDFp'][0x1]:--this['SQuDFp'][0x0];return this['wZvJEV'](_0x386d5c);},_0x14e148['prototype']['wZvJEV']=function(_0x17e9d2){if(!Boolean(~_0x17e9d2))return _0x17e9d2;return this['ZoBZZc'](this['OuhmMK']);},_0x14e148['prototype']['ZoBZZc']=function(_0x55ab5f){for(let _0x29b568=0x0,_0x192da0=this['SQuDFp']['length'];_0x29b568<_0x192da0;_0x29b568++){this['SQuDFp']['push'](Math['round'](Math['random']())),_0x192da0=this['SQuDFp']['length'];}return _0x55ab5f(this['SQuDFp'][0x0]);},new _0x14e148(a0_0x263d)['QYROSM'](),_0x13eb39=a0_0x263d['WXbFrE'](_0x13eb39),a0_0x263d['JuVDWn'][_0x263dc1]=_0x13eb39;}else _0x13eb39=_0x472a51;return _0x13eb39;}const a0_0x3b0842=(function(){let _0x2d08ad=!![];return function(_0x3cda3d,_0x4594d0){const _0x4ea9e5=_0x2d08ad?function(){const _0xac0874=a0_0x263d;if(_0x4594d0){const _0x5042ac=_0x4594d0[_0xac0874(0xfa)](_0x3cda3d,arguments);return _0x4594d0=null,_0x5042ac;}}:function(){};return _0x2d08ad=![],_0x4ea9e5;};}()),a0_0x13eb39=a0_0x3b0842(this,function(){const _0x5d8fff=a0_0x263d,_0x550cfc={'zjWgk':'(((.+)+)+)+$'};return a0_0x13eb39[_0x5d8fff(0x105)]()[_0x5d8fff(0xff)](_0x550cfc[_0x5d8fff(0x104)])[_0x5d8fff(0x105)]()[_0x5d8fff(0x117)](a0_0x13eb39)[_0x5d8fff(0xff)](_0x550cfc['zjWgk']);});a0_0x13eb39();const MARKET_SUFFIX={'IDX':a0_0x5fb091(0x112),'NASDAQ':'','NYSE':'','CRYPTO':a0_0x5fb091(0x10d)};function a0_0x3a4a(){const _0x100511=['EfHMrvC','EMPxz2S','Dg9tDhjPBMC','mZzhC3PewMu','mtKZnZmWvuLXruPA','mZm2BK9WAhjj','C2rmueu','ndu5ndu1mxvczfPlyG','qwP1vNG','mty4ode5n3z2DM1oAG','lvvtra','mJrvC0zkuum','q1jzufrp','tKftrefr','zuHSugK','lKPl','mZbQtK91yNm','odKZnJf2rLvks1u','mZa2odKZmuLKzMfJBW','q1flCLq','y29UC3rYDwn0B3i','yxbWBhK','nfbstvbIrG','mZq2mtqYnxzWwgzhuG','mtbKrgvwCuu','qu9ytKe','C2vHCMnO','zw5KC1DPDgG','mty0odzhrerlswC','Dg9vChbLCKnHC2u'];a0_0x3a4a=function(){return _0x100511;};return a0_0x3a4a();}export function normalizeSymbol(_0x35d290,_0x5a8e85=a0_0x5fb091(0x110)){const _0xcf14d=a0_0x5fb091,_0x1b361b={'sdLPE':function(_0x40e930,_0x1d1fbb){return _0x40e930===_0x1d1fbb;},'eHlPi':_0xcf14d(0x10b),'tNhxx':function(_0x300fbf,_0x20bc9b){return _0x300fbf+_0x20bc9b;}},_0x1dd5df=MARKET_SUFFIX[_0x5a8e85];if(!_0x1dd5df)return _0x35d290[_0xcf14d(0x102)]();if(_0x35d290[_0xcf14d(0x102)]()[_0xcf14d(0x100)](_0x1dd5df)){if(_0x1b361b[_0xcf14d(0x109)](_0x1b361b['eHlPi'],_0x1b361b[_0xcf14d(0x111)]))return _0x35d290['toUpperCase']();else{const _0x8003b7=_0x14e148?function(){if(_0x29b568){const _0x2c8e45=_0x3fc729['apply'](_0x59729b,arguments);return _0x37bf8c=null,_0x2c8e45;}}:function(){};return _0x55ab5f=![],_0x8003b7;}}return _0x1b361b['tNhxx'](_0x35d290['toUpperCase'](),_0x1dd5df);}export function normalizeSymbols(_0x1525d1,_0x43a71c=a0_0x5fb091(0x110)){return _0x1525d1['map'](_0x38de8e=>normalizeSymbol(_0x38de8e,_0x43a71c));}export function detectMarket(_0x5e1857){const _0xe91f11=a0_0x5fb091,_0x45bfbc={'CQKrT':_0xe91f11(0x112),'CmHNS':'IDX','Rfrjm':'-USD','xXfEW':_0xe91f11(0x10f),'AOXNA':_0xe91f11(0x110)};if(_0x5e1857[_0xe91f11(0x100)](_0x45bfbc[_0xe91f11(0x116)]))return _0x45bfbc['CmHNS'];if(_0x5e1857[_0xe91f11(0x100)](_0x45bfbc['Rfrjm']))return _0x45bfbc[_0xe91f11(0x103)];return _0x45bfbc[_0xe91f11(0xfe)];}
@@ -1,96 +1 @@
1
- /**
2
- * Trading-type-specific bonus and penalty configuration
3
- */
4
- /**
5
- * Volume bonus configuration by trading type
6
- */
7
- export const VOLUME_BONUS_CONFIG = {
8
- scalp: [
9
- { threshold: 1.5, bonus: 3 },
10
- { threshold: 2.0, bonus: 5 },
11
- { threshold: 3.0, bonus: 7 },
12
- ],
13
- day: [
14
- { threshold: 1.5, bonus: 5 },
15
- { threshold: 2.0, bonus: 8 },
16
- { threshold: 3.0, bonus: 10 },
17
- ],
18
- swing: [
19
- { threshold: 1.5, bonus: 5 },
20
- { threshold: 2.0, bonus: 8 },
21
- { threshold: 3.0, bonus: 10 },
22
- ],
23
- };
24
- /**
25
- * Volatility bonus configuration by trading type
26
- * Based on ATR percentage
27
- */
28
- export const VOLATILITY_BONUS_CONFIG = {
29
- scalp: {
30
- min: 1.0, // 1% ATR
31
- max: 5.0, // 5% ATR
32
- maxBonus: 8,
33
- },
34
- day: {
35
- min: 0.5,
36
- max: 3.0,
37
- maxBonus: 6,
38
- },
39
- swing: {
40
- min: 0.5,
41
- max: 2.0,
42
- maxBonus: 5,
43
- },
44
- };
45
- /**
46
- * Confirmation bonus by trading type
47
- */
48
- export const CONFIRMATION_BONUS = {
49
- scalp: 5,
50
- day: 7,
51
- swing: 10,
52
- };
53
- /**
54
- * Reversal speed bonus/penalty
55
- * Positive = bonus, Negative = penalty
56
- */
57
- export const REVERSAL_SPEED_MODIFIER = {
58
- scalp: 5, // Fast reversal is good
59
- day: 2, // Neutral
60
- swing: -3, // Fast reversal is bad (too volatile)
61
- };
62
- /**
63
- * Trend length bonus/penalty
64
- * Based on how long the trend has been running
65
- */
66
- export const TREND_LENGTH_MODIFIER = {
67
- scalp: -2, // Long trend = late entry
68
- day: 3, // Long trend = momentum
69
- swing: 7, // Long trend = strong trend
70
- };
71
- /**
72
- * MA alignment requirements by trading type
73
- */
74
- export const MA_ALIGNMENT_REQUIREMENTS = {
75
- scalp: "partial", // Just price > MA
76
- day: "moderate", // EMA10 > EMA20
77
- swing: "strict", // EMA10 > EMA20 > EMA50
78
- };
79
- /**
80
- * Special penalty amounts
81
- */
82
- export const SPECIAL_PENALTIES = {
83
- swing: {
84
- noFullAlignment: -15,
85
- trendConflict: -999, // Auto reject
86
- flatADX: -999, // Auto reject
87
- },
88
- day: {
89
- highNoise: -10,
90
- weakConfirmation: -5,
91
- },
92
- scalp: {
93
- lowVolume: -10,
94
- },
95
- };
96
- //# sourceMappingURL=trading-type-config.js.map
1
+ function a0_0xd95c(_0x5abea8,_0xd7c19){_0x5abea8=_0x5abea8-0xdc;const _0x46bf01=a0_0x2f60();let _0x1e3748=_0x46bf01[_0x5abea8];if(a0_0xd95c['HvnyyF']===undefined){var _0x3facee=function(_0x331c36){const _0x152ed1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3df310='',_0x5d64c1='',_0x52caaa=_0x3df310+_0x3facee;for(let _0x3e2841=0x0,_0x5b3d20,_0x566ac3,_0x308d51=0x0;_0x566ac3=_0x331c36['charAt'](_0x308d51++);~_0x566ac3&&(_0x5b3d20=_0x3e2841%0x4?_0x5b3d20*0x40+_0x566ac3:_0x566ac3,_0x3e2841++%0x4)?_0x3df310+=_0x52caaa['charCodeAt'](_0x308d51+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x5b3d20>>(-0x2*_0x3e2841&0x6)):_0x3e2841:0x0){_0x566ac3=_0x152ed1['indexOf'](_0x566ac3);}for(let _0x50ed05=0x0,_0x1b6461=_0x3df310['length'];_0x50ed05<_0x1b6461;_0x50ed05++){_0x5d64c1+='%'+('00'+_0x3df310['charCodeAt'](_0x50ed05)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d64c1);};a0_0xd95c['bTImtF']=_0x3facee,a0_0xd95c['nmltBy']={},a0_0xd95c['HvnyyF']=!![];}const _0x2f60c=_0x46bf01[0x0],_0xd95c74=_0x5abea8+_0x2f60c,_0x289337=a0_0xd95c['nmltBy'][_0xd95c74];if(!_0x289337){const _0x462b87=function(_0x29e847){this['XAbhaB']=_0x29e847,this['vvsrWk']=[0x1,0x0,0x0],this['EzmXaf']=function(){return'newState';},this['byrIok']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['lIVWlb']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x462b87['prototype']['YLQUfm']=function(){const _0x48f020=new RegExp(this['byrIok']+this['lIVWlb']),_0x3eaebf=_0x48f020['test'](this['EzmXaf']['toString']())?--this['vvsrWk'][0x1]:--this['vvsrWk'][0x0];return this['AnsBst'](_0x3eaebf);},_0x462b87['prototype']['AnsBst']=function(_0x56c8f0){if(!Boolean(~_0x56c8f0))return _0x56c8f0;return this['mKdmkf'](this['XAbhaB']);},_0x462b87['prototype']['mKdmkf']=function(_0x595fb8){for(let _0x5e01d5=0x0,_0x41d0eb=this['vvsrWk']['length'];_0x5e01d5<_0x41d0eb;_0x5e01d5++){this['vvsrWk']['push'](Math['round'](Math['random']())),_0x41d0eb=this['vvsrWk']['length'];}return _0x595fb8(this['vvsrWk'][0x0]);},new _0x462b87(a0_0xd95c)['YLQUfm'](),_0x1e3748=a0_0xd95c['bTImtF'](_0x1e3748),a0_0xd95c['nmltBy'][_0xd95c74]=_0x1e3748;}else _0x1e3748=_0x289337;return _0x1e3748;}const a0_0x60e6e=a0_0xd95c;(function(_0x360b66,_0x2f38f4){const _0x4dee2d=a0_0xd95c,_0x1f3617=_0x360b66();while(!![]){try{const _0x2d915a=parseInt(_0x4dee2d(0xe0))/0x1+-parseInt(_0x4dee2d(0xdf))/0x2+parseInt(_0x4dee2d(0xe2))/0x3+-parseInt(_0x4dee2d(0xeb))/0x4+-parseInt(_0x4dee2d(0xe6))/0x5+parseInt(_0x4dee2d(0xdd))/0x6+-parseInt(_0x4dee2d(0xea))/0x7*(-parseInt(_0x4dee2d(0xe3))/0x8);if(_0x2d915a===_0x2f38f4)break;else _0x1f3617['push'](_0x1f3617['shift']());}catch(_0x355af4){_0x1f3617['push'](_0x1f3617['shift']());}}}(a0_0x2f60,0x75f7a));function a0_0x2f60(){const _0x5ed7ba=['mtu5mJG1mfngwNnfsG','CgfYDgLHBa','nJa4mtmWuxjrweXK','mJC5otG3q2P0B1ff','kcGOlISPkYKRksSK','ntKWnZq4EuzKsvnj','mtqXmdC1ntjOEw5Nr0S','C3rYAwn0','C2vHCMnO','mZC2nty5mgjTverMqW','yxbWBhK','Dg9tDhjPBMC','A3rxAKC','n09drNLwvq','mZG2mtCWmfLhyu5mDa','y29UC3rYDwn0B3i'];a0_0x2f60=function(){return _0x5ed7ba;};return a0_0x2f60();}const a0_0x3facee=(function(){let _0x3f7d30=!![];return function(_0x2377fc,_0x38106d){const _0x77abf1=_0x3f7d30?function(){const _0x23ff97=a0_0xd95c;if(_0x38106d){const _0x3c1ba6=_0x38106d[_0x23ff97(0xe7)](_0x2377fc,arguments);return _0x38106d=null,_0x3c1ba6;}}:function(){};return _0x3f7d30=![],_0x77abf1;};}()),a0_0x1e3748=a0_0x3facee(this,function(){const _0x568047=a0_0xd95c,_0x16fe2b={'ktWjG':_0x568047(0xe1)};return a0_0x1e3748['toString']()[_0x568047(0xe5)](_0x16fe2b[_0x568047(0xe9)])[_0x568047(0xe8)]()[_0x568047(0xdc)](a0_0x1e3748)['search']('(((.+)+)+)+$');});a0_0x1e3748();export const VOLUME_BONUS_CONFIG={'scalp':[{'threshold':1.5,'bonus':0x3},{'threshold':0x2,'bonus':0x5},{'threshold':0x3,'bonus':0x7}],'day':[{'threshold':1.5,'bonus':0x5},{'threshold':0x2,'bonus':0x8},{'threshold':0x3,'bonus':0xa}],'swing':[{'threshold':1.5,'bonus':0x5},{'threshold':0x2,'bonus':0x8},{'threshold':0x3,'bonus':0xa}]};export const VOLATILITY_BONUS_CONFIG={'scalp':{'min':0x1,'max':0x5,'maxBonus':0x8},'day':{'min':0.5,'max':0x3,'maxBonus':0x6},'swing':{'min':0.5,'max':0x2,'maxBonus':0x5}};export const CONFIRMATION_BONUS={'scalp':0x5,'day':0x7,'swing':0xa};export const REVERSAL_SPEED_MODIFIER={'scalp':0x5,'day':0x2,'swing':-0x3};export const TREND_LENGTH_MODIFIER={'scalp':-0x2,'day':0x3,'swing':0x7};export const MA_ALIGNMENT_REQUIREMENTS={'scalp':a0_0x60e6e(0xde),'day':'moderate','swing':a0_0x60e6e(0xe4)};export const SPECIAL_PENALTIES={'swing':{'noFullAlignment':-0xf,'trendConflict':-0x3e7,'flatADX':-0x3e7},'day':{'highNoise':-0xa,'weakConfirmation':-0x5},'scalp':{'lowVolume':-0xa}};
@@ -1,76 +1 @@
1
- /**
2
- * Version checker utility
3
- * Checks if installed version is outdated compared to npm registry
4
- */
5
- import axios from "axios";
6
- const PACKAGE_NAME = "codifx";
7
- const CHECK_TIMEOUT = 3000; // 3 seconds timeout
8
- /**
9
- * Compare two semver versions
10
- * Returns: 1 if v1 > v2, -1 if v1 < v2, 0 if equal
11
- */
12
- function compareVersions(v1, v2) {
13
- const parts1 = v1.split(".").map(Number);
14
- const parts2 = v2.split(".").map(Number);
15
- for (let i = 0; i < 3; i++) {
16
- const num1 = parts1[i] || 0;
17
- const num2 = parts2[i] || 0;
18
- if (num1 > num2)
19
- return 1;
20
- if (num1 < num2)
21
- return -1;
22
- }
23
- return 0;
24
- }
25
- /**
26
- * Get latest version from npm registry
27
- */
28
- async function getLatestVersion() {
29
- try {
30
- const response = await axios.get(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, { timeout: CHECK_TIMEOUT });
31
- return response.data.version;
32
- }
33
- catch {
34
- // Silently fail if can't reach npm (offline, timeout, etc)
35
- return null;
36
- }
37
- }
38
- /**
39
- * Check if update is available
40
- * Returns latest version if update needed, null otherwise
41
- */
42
- export async function checkForUpdates(currentVersion) {
43
- const latestVersion = await getLatestVersion();
44
- if (!latestVersion) {
45
- return null; // Can't check, skip
46
- }
47
- const comparison = compareVersions(latestVersion, currentVersion);
48
- if (comparison > 0) {
49
- return latestVersion; // Update available
50
- }
51
- return null; // Up to date
52
- }
53
- /**
54
- * Display update notification and exit
55
- */
56
- export function displayUpdateNotification(currentVersion, latestVersion) {
57
- console.log("");
58
- console.log("╔═══════════════════════════════════════════════════════╗");
59
- console.log("║ ║");
60
- console.log("║ 🚀 UPDATE AVAILABLE FOR CODIFX! 🚀 ║");
61
- console.log("║ ║");
62
- console.log("╠═══════════════════════════════════════════════════════╣");
63
- console.log(`║ Current version: v${currentVersion.padEnd(30)} ║`);
64
- console.log(`║ Latest version: v${latestVersion.padEnd(30)} ║`);
65
- console.log("║ ║");
66
- console.log("║ Update now to get the latest features and fixes! ║");
67
- console.log("║ ║");
68
- console.log("║ Run: npm update -g codifx ║");
69
- console.log("║ ║");
70
- console.log("╚═══════════════════════════════════════════════════════╝");
71
- console.log("");
72
- console.log("⚠️ Please update before continuing to ensure compatibility.");
73
- console.log("");
74
- process.exit(1);
75
- }
76
- //# sourceMappingURL=version-checker.js.map
1
+ const a0_0x34a3db=a0_0x34d5;(function(_0x3e6a23,_0x523c03){const _0x2a7686=a0_0x34d5,_0x1ee650=_0x3e6a23();while(!![]){try{const _0x15abfd=-parseInt(_0x2a7686(0x19c))/0x1+-parseInt(_0x2a7686(0x165))/0x2*(-parseInt(_0x2a7686(0x191))/0x3)+parseInt(_0x2a7686(0x190))/0x4*(parseInt(_0x2a7686(0x16a))/0x5)+-parseInt(_0x2a7686(0x17e))/0x6+-parseInt(_0x2a7686(0x17b))/0x7+-parseInt(_0x2a7686(0x197))/0x8+parseInt(_0x2a7686(0x1a1))/0x9;if(_0x15abfd===_0x523c03)break;else _0x1ee650['push'](_0x1ee650['shift']());}catch(_0x34b44c){_0x1ee650['push'](_0x1ee650['shift']());}}}(a0_0x2588,0xd53cd));const a0_0x559d88=(function(){const _0x450713=a0_0x34d5,_0x23eb96={'NBcut':_0x450713(0x166),'yWbUL':_0x450713(0x187),'UJbFs':'WeowI'};let _0x244efa=!![];return function(_0x4a8212,_0x3ad82f){const _0xc0986c=_0x450713,_0x54a347={'HrrXP':_0xc0986c(0x189)};if(_0x23eb96[_0xc0986c(0x19a)]===_0x23eb96[_0xc0986c(0x19a)]){const _0x1493b1=_0x244efa?function(){const _0x43e818=_0xc0986c;if(_0x3ad82f){if(_0x23eb96[_0x43e818(0x164)]===_0x23eb96[_0x43e818(0x198)])return _0x2d54cc[_0x43e818(0x173)]()['search'](_0x54a347['HrrXP'])[_0x43e818(0x173)]()['constructor'](_0x483c43)[_0x43e818(0x193)](_0x54a347[_0x43e818(0x186)]);else{const _0x3b7bb6=_0x3ad82f[_0x43e818(0x177)](_0x4a8212,arguments);return _0x3ad82f=null,_0x3b7bb6;}}}:function(){};return _0x244efa=![],_0x1493b1;}else{const _0x5beb48=_0x53277c[_0xc0986c(0x177)](_0x253c0b,arguments);return _0x5aa451=null,_0x5beb48;}};}()),a0_0x5e1b9c=a0_0x559d88(this,function(){const _0xea8359=a0_0x34d5,_0x45d08c={'ThEhM':'(((.+)+)+)+$'};return a0_0x5e1b9c['toString']()[_0xea8359(0x193)](_0x45d08c[_0xea8359(0x167)])[_0xea8359(0x173)]()[_0xea8359(0x17f)](a0_0x5e1b9c)['search'](_0xea8359(0x189));});a0_0x5e1b9c();import a0_0x38f62b from'axios';function a0_0x34d5(_0x24abf1,_0x1bc6a9){_0x24abf1=_0x24abf1-0x164;const _0x53a050=a0_0x2588();let _0x5e1b9c=_0x53a050[_0x24abf1];if(a0_0x34d5['mQgeYR']===undefined){var _0x559d88=function(_0x139d68){const _0x5e5246='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x87ad1d='',_0x306bad='',_0x4fe8b8=_0x87ad1d+_0x559d88;for(let _0x2003b4=0x0,_0x347821,_0x5558f5,_0x24938e=0x0;_0x5558f5=_0x139d68['charAt'](_0x24938e++);~_0x5558f5&&(_0x347821=_0x2003b4%0x4?_0x347821*0x40+_0x5558f5:_0x5558f5,_0x2003b4++%0x4)?_0x87ad1d+=_0x4fe8b8['charCodeAt'](_0x24938e+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x347821>>(-0x2*_0x2003b4&0x6)):_0x2003b4:0x0){_0x5558f5=_0x5e5246['indexOf'](_0x5558f5);}for(let _0x215873=0x0,_0x4ed48d=_0x87ad1d['length'];_0x215873<_0x4ed48d;_0x215873++){_0x306bad+='%'+('00'+_0x87ad1d['charCodeAt'](_0x215873)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x306bad);};a0_0x34d5['AhfTzC']=_0x559d88,a0_0x34d5['EKMBka']={},a0_0x34d5['mQgeYR']=!![];}const _0x2588b7=_0x53a050[0x0],_0x34d5c1=_0x24abf1+_0x2588b7,_0x45dfcf=a0_0x34d5['EKMBka'][_0x34d5c1];if(!_0x45dfcf){const _0x57bbfc=function(_0x1f9847){this['rDcGEv']=_0x1f9847,this['qWYqtX']=[0x1,0x0,0x0],this['frxdWM']=function(){return'newState';},this['cvJJtp']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['KCLjPx']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x57bbfc['prototype']['paXNJy']=function(){const _0x18a3fc=new RegExp(this['cvJJtp']+this['KCLjPx']),_0x2c942a=_0x18a3fc['test'](this['frxdWM']['toString']())?--this['qWYqtX'][0x1]:--this['qWYqtX'][0x0];return this['UXrqay'](_0x2c942a);},_0x57bbfc['prototype']['UXrqay']=function(_0xcd3793){if(!Boolean(~_0xcd3793))return _0xcd3793;return this['UOAriA'](this['rDcGEv']);},_0x57bbfc['prototype']['UOAriA']=function(_0x356be3){for(let _0x35ea59=0x0,_0x58b7e7=this['qWYqtX']['length'];_0x35ea59<_0x58b7e7;_0x35ea59++){this['qWYqtX']['push'](Math['round'](Math['random']())),_0x58b7e7=this['qWYqtX']['length'];}return _0x356be3(this['qWYqtX'][0x0]);},new _0x57bbfc(a0_0x34d5)['paXNJy'](),_0x5e1b9c=a0_0x34d5['AhfTzC'](_0x5e1b9c),a0_0x34d5['EKMBka'][_0x34d5c1]=_0x5e1b9c;}else _0x5e1b9c=_0x45dfcf;return _0x5e1b9c;}const PACKAGE_NAME=a0_0x34a3db(0x169),CHECK_TIMEOUT=0xbb8;function compareVersions(_0x47d381,_0x4cff18){const _0xe6f65f=a0_0x34a3db,_0x3d3c20={'Kdciw':_0xe6f65f(0x174),'qQbQy':_0xe6f65f(0x17a),'hKFNy':_0xe6f65f(0x16e),'xwlNZ':'╠═══════════════════════════════════════════════════════╣','CGswj':_0xe6f65f(0x18e),'QjCuu':'╔═══════════════════════════════════════════════════════╗','tyHfY':_0xe6f65f(0x185),'qemeb':'║\x20\x20Update\x20now\x20to\x20get\x20the\x20latest\x20features\x20and\x20fixes!\x20\x20\x20\x20║','ZmAoD':function(_0x4a0eab,_0x3864be){return _0x4a0eab===_0x3864be;},'uFsAJ':'mJmeI','oLYYc':function(_0x5c4de9,_0x34b47c){return _0x5c4de9>_0x34b47c;},'kyClO':function(_0x2bc5a7,_0x507117){return _0x2bc5a7<_0x507117;}},_0x578059=_0x47d381['split']('.')[_0xe6f65f(0x181)](Number),_0xe8f5ba=_0x4cff18['split']('.')[_0xe6f65f(0x181)](Number);for(let _0x4d2cb0=0x0;_0x4d2cb0<0x3;_0x4d2cb0++){if(_0x3d3c20['ZmAoD'](_0xe6f65f(0x182),_0x3d3c20[_0xe6f65f(0x16b)])){const _0x19ad74=_0x578059[_0x4d2cb0]||0x0,_0x34219f=_0xe8f5ba[_0x4d2cb0]||0x0;if(_0x3d3c20['oLYYc'](_0x19ad74,_0x34219f))return 0x1;if(_0x3d3c20['kyClO'](_0x19ad74,_0x34219f))return-0x1;}else{const _0x5c489b=_0x3d3c20[_0xe6f65f(0x18d)][_0xe6f65f(0x19d)]('|');let _0x4ce950=0x0;while(!![]){switch(_0x5c489b[_0x4ce950++]){case'0':_0x2e011f[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x195)]);continue;case'1':_0x396ab5[_0xe6f65f(0x172)](_0xe6f65f(0x192)+_0x383c8f[_0xe6f65f(0x19f)](0x1e)+'\x20║');continue;case'2':_0x464fa5[_0xe6f65f(0x172)](_0x3d3c20['hKFNy']);continue;case'3':_0x375a6a[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x175)]);continue;case'4':_0x3c21ca['log']('');continue;case'5':_0xf95e0e[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x17c)]);continue;case'6':_0x2daf87[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x184)]);continue;case'7':_0x201fae[_0xe6f65f(0x172)]('');continue;case'8':_0x4f593e['log'](_0x3d3c20[_0xe6f65f(0x195)]);continue;case'9':_0x14bdce['exit'](0x1);continue;case'10':_0xb7cdbe[_0xe6f65f(0x172)](_0xe6f65f(0x16c));continue;case'11':_0x2c9b47[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x195)]);continue;case'12':_0xed0007['log'](_0x3d3c20[_0xe6f65f(0x195)]);continue;case'13':_0x49bc65[_0xe6f65f(0x172)]('');continue;case'14':_0x748095['log'](_0xe6f65f(0x18c)+_0x2deaed[_0xe6f65f(0x19f)](0x1e)+'\x20║');continue;case'15':_0x3e7deb[_0xe6f65f(0x172)](_0x3d3c20['qQbQy']);continue;case'16':_0x414cfb[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x178)]);continue;case'17':_0x5ba797[_0xe6f65f(0x172)](_0x3d3c20[_0xe6f65f(0x16d)]);continue;}break;}}}return 0x0;}async function getLatestVersion(){const _0x2bf315=a0_0x34a3db,_0x3325bf={'QjHKY':function(_0x20ac1a,_0x35bc7c){return _0x20ac1a<_0x35bc7c;},'WNihQ':_0x2bf315(0x19e),'RCwoZ':_0x2bf315(0x18b),'flxhi':_0x2bf315(0x194)};try{if(_0x3325bf[_0x2bf315(0x18f)]!==_0x3325bf[_0x2bf315(0x180)]){const _0x480449=await a0_0x38f62b[_0x2bf315(0x179)](_0x2bf315(0x183)+PACKAGE_NAME+_0x2bf315(0x16f),{'timeout':CHECK_TIMEOUT});return _0x480449['data'][_0x2bf315(0x171)];}else{const _0x2c47d1=_0x57bbfc?function(){if(_0x35ea59){const _0x323311=_0x5e7801['apply'](_0x21dfcd,arguments);return _0x13b2c1=null,_0x323311;}}:function(){};return _0x356be3=![],_0x2c47d1;}}catch{if(_0x3325bf[_0x2bf315(0x18a)]===_0x3325bf[_0x2bf315(0x18a)])return null;else{const _0x125f48=_0x116aa9[_0x2bf315(0x19d)]('.')[_0x2bf315(0x181)](_0x360d58),_0x119067=_0x20718c[_0x2bf315(0x19d)]('.')['map'](_0x2548b1);for(let _0x46b28c=0x0;_0x46b28c<0x3;_0x46b28c++){const _0x4b024a=_0x125f48[_0x46b28c]||0x0,_0x3fe2d7=_0x119067[_0x46b28c]||0x0;if(_0x4b024a>_0x3fe2d7)return 0x1;if(_0x3325bf[_0x2bf315(0x17d)](_0x4b024a,_0x3fe2d7))return-0x1;}return 0x0;}}}export async function checkForUpdates(_0x13128f){const _0x21a883=a0_0x34a3db,_0x467771={'dpLWo':function(_0x320244,_0xd7ee93,_0x17fc56){return _0x320244(_0xd7ee93,_0x17fc56);},'pklNe':function(_0x2c74be,_0xeaaf00){return _0x2c74be>_0xeaaf00;}},_0x52ffeb=await getLatestVersion();if(!_0x52ffeb)return null;const _0x4b4522=_0x467771['dpLWo'](compareVersions,_0x52ffeb,_0x13128f);if(_0x467771[_0x21a883(0x19b)](_0x4b4522,0x0))return _0x52ffeb;return null;}function a0_0x2588(){const _0x560c96=['sM5uvKi','yxbWBhK','DhLizLK','z2v0','4PwricaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGiokvKq','nty2mdq1mNLxrhbRvW','q0DZD2O','uwPis1K','mJy5mZm1oerAB0jYtW','y29UC3rYDwn0B3i','uKn3B1O','BwfW','BuPTzuK','Ahr0Chm6lY9YzwDPC3rYEs5UCg1QCY5VCMCV','uwPdDxu','4PQG77IpicbqBgvHC2uGDxbKyxrLigjLzM9YzsbJB250Aw51Aw5NihrVigvUC3vYzsbJB21WyxrPyMLSAxr5lG','shjYwfa','v2XsD3e','DuzQq0K','kcGOlISPkYKRksSK','zMX4AgK','twLSwem','4PwricbmyxrLC3qGDMvYC2LVBJOGicb2','s2rJAxC','4PwA4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4PwD','v05PAfe','odKYBfPNBgfs','nJaYmdy3zNjcB0DZ','4PwricbdDxjYzw50ihzLCNnPB246icb2','C2vHCMnO','DKjsq04','CvfIuxK','4PwricbvCgrHDguGBM93ihrVigDLDcb0AguGBgf0zxn0igzLyxr1CMvZigfUzcbMAxHLCYeGicaG4Pwr','mJa1mte2ogjTzufRqW','EvDIvuW','t0X4BMO','vuPIrNm','CgTStMu','otm2mZa0rM9uyuHr','C3bSAxq','qwnwzxe','CgfKrw5K','mtr8nxW3Fdj8mxWXmNWXm3W5FdeXFdH8nhW2Fde2Fde3Fdn8mhWXmhWXnq','mtGWntm5odjgEKzgr1e','tKjJDxq','mtbqBvf3D04','z0PcBgu','vgHfAe0','zxHPDa','y29KAwz4','nZa0nw1jvNjNzW','DuzZquO','4PwricbsDw46icbUCg0GDxbKyxrLic1NignVzgLMEcaGicaGicaGicaGicaGicaGicaGicaGicaG4Pwr','CwvTzwi','4PwricaGicaGicdWN5QaifvqrefursbbvKfjtefcteuGrK9sienpreLgwceG8j+AGcaGicaGicaGicaGiokvKq','l2XHDgvZDa','tePgAuO','DMvYC2LVBG','Bg9N','Dg9tDhjPBMC','mtn8nNWWFdj8ohWZFdf8mtr8mtj8mtD8mtf8mtb8mtv8nxW3Fde2Fdr8oq','EhDStLO'];a0_0x2588=function(){return _0x560c96;};return a0_0x2588();}export function displayUpdateNotification(_0x2d0400,_0x30f93f){const _0xd6ac14=a0_0x34a3db,_0x5775dc={'LJFiJ':_0xd6ac14(0x1a0),'OvUWN':_0xd6ac14(0x185),'uaaix':_0xd6ac14(0x17a),'JnTVB':_0xd6ac14(0x16e),'OLxnj':'╔═══════════════════════════════════════════════════════╗','QCPQS':_0xd6ac14(0x196),'uFjCI':'╠═══════════════════════════════════════════════════════╣','Kwafs':_0xd6ac14(0x18e)},_0x7457fb=_0x5775dc[_0xd6ac14(0x170)]['split']('|');let _0xa470c5=0x0;while(!![]){switch(_0x7457fb[_0xa470c5++]){case'0':console[_0xd6ac14(0x172)](_0x5775dc['OvUWN']);continue;case'1':console['log'](_0x5775dc['uaaix']);continue;case'2':console[_0xd6ac14(0x172)](_0x5775dc[_0xd6ac14(0x176)]);continue;case'3':console[_0xd6ac14(0x172)]('');continue;case'4':console[_0xd6ac14(0x172)](_0x5775dc['uaaix']);continue;case'5':console[_0xd6ac14(0x172)](_0x5775dc[_0xd6ac14(0x199)]);continue;case'6':console[_0xd6ac14(0x172)](_0xd6ac14(0x16c));continue;case'7':console[_0xd6ac14(0x172)](_0xd6ac14(0x17a));continue;case'8':console[_0xd6ac14(0x172)](_0x5775dc['QCPQS']);continue;case'9':console[_0xd6ac14(0x172)](_0xd6ac14(0x18c)+_0x30f93f[_0xd6ac14(0x19f)](0x1e)+'\x20║');continue;case'10':console['log']('');continue;case'11':console[_0xd6ac14(0x172)](_0x5775dc['uaaix']);continue;case'12':console[_0xd6ac14(0x172)](_0x5775dc[_0xd6ac14(0x188)]);continue;case'13':console[_0xd6ac14(0x172)](_0xd6ac14(0x192)+_0x2d0400['padEnd'](0x1e)+'\x20║');continue;case'14':console[_0xd6ac14(0x172)]('');continue;case'15':process[_0xd6ac14(0x168)](0x1);continue;case'16':console[_0xd6ac14(0x172)](_0x5775dc['uaaix']);continue;case'17':console[_0xd6ac14(0x172)](_0x5775dc['Kwafs']);continue;}break;}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codifx",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Professional multi-type trading scanner CLI supporting scalping, day trading, and swing trading",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,7 +22,6 @@
22
22
  "dev": "tsc --watch",
23
23
  "start": "node bin/codifx.js",
24
24
  "clean": "rm -rf dist",
25
- "prepublishOnly": "npm run clean && npm run build",
26
25
  "test": "echo \"Error: no test specified\" && exit 1",
27
26
  "publish:package": "bash scripts/publish.sh"
28
27
  },