natureco-cli 5.56.0 → 5.58.0
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 +1 -1
- package/src/commands/cron.js +75 -73
- package/src/commands/discord.js +7 -5
- package/src/commands/gateway.js +25 -23
- package/src/commands/imessage.js +50 -48
- package/src/commands/irc.js +27 -25
- package/src/commands/mattermost.js +34 -32
- package/src/commands/plugins.js +69 -67
- package/src/commands/signal.js +61 -59
- package/src/commands/skills.js +76 -74
- package/src/commands/slack.js +7 -5
- package/src/commands/sms.js +35 -33
- package/src/commands/telegram.js +50 -48
- package/src/commands/whatsapp.js +43 -41
package/src/commands/signal.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
const chalk = require('chalk');
|
|
2
|
+
const { getLang: _gl } = require('../utils/i18n');
|
|
3
|
+
const L = (tr, en) => (_gl() === 'en' ? en : tr);
|
|
2
4
|
const inquirer = require('../utils/inquirer-wrapper');
|
|
3
5
|
const { getConfig, saveConfig } = require('../utils/config');
|
|
4
6
|
const fs = require('fs');
|
|
@@ -28,11 +30,11 @@ async function signal(action, subAction) {
|
|
|
28
30
|
async function connectSignal() {
|
|
29
31
|
const config = getConfig();
|
|
30
32
|
if (!config.providerUrl) {
|
|
31
|
-
console.log(chalk.red('\n❌ Setup yapılmamış. Önce "natureco setup" çalıştırın.\n'));
|
|
33
|
+
console.log(chalk.red(L('\n❌ Setup yapılmamış. Önce "natureco setup" çalıştırın.\n', '\n❌ Setup not done. Run "natureco setup" first.\n')));
|
|
32
34
|
process.exit(1);
|
|
33
35
|
}
|
|
34
|
-
console.log(chalk.yellow('\n⏳ Signal bağlantısı hazırlanıyor...\n'));
|
|
35
|
-
console.log(chalk.gray('Signal, signal-cli REST API üzerinden bağlanır.\n'));
|
|
36
|
+
console.log(chalk.yellow(L('\n⏳ Signal bağlantısı hazırlanıyor...\n', '\n⏳ Preparing Signal connection...\n')));
|
|
37
|
+
console.log(chalk.gray(L('Signal, signal-cli REST API üzerinden bağlanır.\n', 'Signal connects via the signal-cli REST API.\n')));
|
|
36
38
|
|
|
37
39
|
const existing = config.signalHttpUrl || '';
|
|
38
40
|
const existingAccount = config.signalAccount || '';
|
|
@@ -40,29 +42,29 @@ async function connectSignal() {
|
|
|
40
42
|
const existingMode = config.signalApiMode || 'auto';
|
|
41
43
|
|
|
42
44
|
const answers = await inquirer.prompt([
|
|
43
|
-
{ type: 'input', name: 'httpUrl', message: 'signal-cli REST API URL:', default: existing || 'http://localhost:8080', validate: v => v.trim() ? true : 'URL boş olamaz' },
|
|
44
|
-
{ type: 'input', name: 'account', message: 'Signal hesap numarası (+905551234567):', default: existingAccount, validate: v => v.trim() ? true : 'Numara boş olamaz' },
|
|
45
|
+
{ type: 'input', name: 'httpUrl', message: 'signal-cli REST API URL:', default: existing || 'http://localhost:8080', validate: v => v.trim() ? true : L('URL boş olamaz', 'URL cannot be empty') },
|
|
46
|
+
{ type: 'input', name: 'account', message: L('Signal hesap numarası (+905551234567):', 'Signal account number (+905551234567):'), default: existingAccount, validate: v => v.trim() ? true : L('Numara boş olamaz', 'Number cannot be empty') },
|
|
45
47
|
{
|
|
46
|
-
type: 'list', name: 'apiMode', message: 'API modu:', default: existingMode,
|
|
48
|
+
type: 'list', name: 'apiMode', message: L('API modu:', 'API mode:'), default: existingMode,
|
|
47
49
|
choices: [
|
|
48
|
-
{ name: 'Auto-detect (önerilen)', value: 'auto' },
|
|
50
|
+
{ name: L('Auto-detect (önerilen)', 'Auto-detect (recommended)'), value: 'auto' },
|
|
49
51
|
{ name: 'Native (signal-cli JSON-RPC)', value: 'native' },
|
|
50
52
|
{ name: 'Container (bbernhard/signal-cli-rest-api)', value: 'container' },
|
|
51
53
|
]
|
|
52
54
|
},
|
|
53
|
-
{ type: 'confirm', name: 'autoStart', message: 'Gateway ile signal-cli daemon\'ı otomatik başlatılsın mı?', default: config.signalAutoStart !== undefined ? config.signalAutoStart : true },
|
|
55
|
+
{ type: 'confirm', name: 'autoStart', message: L('Gateway ile signal-cli daemon\'ı otomatik başlatılsın mı?', 'Auto-start the signal-cli daemon with the gateway?'), default: config.signalAutoStart !== undefined ? config.signalAutoStart : true },
|
|
54
56
|
{
|
|
55
|
-
type: 'list', name: 'receiveMode', message: 'Mesaj alma modu:', default: config.signalReceiveMode || 'on-start',
|
|
57
|
+
type: 'list', name: 'receiveMode', message: L('Mesaj alma modu:', 'Message receive mode:'), default: config.signalReceiveMode || 'on-start',
|
|
56
58
|
choices: [
|
|
57
|
-
{ name: 'Gateway başlangıcında dinlemeye başla (önerilen)', value: 'on-start' },
|
|
58
|
-
{ name: 'Manuel (sadece status kontrol)', value: 'manual' },
|
|
59
|
+
{ name: L('Gateway başlangıcında dinlemeye başla (önerilen)', 'Start listening when the gateway starts (recommended)'), value: 'on-start' },
|
|
60
|
+
{ name: L('Manuel (sadece status kontrol)', 'Manual (status check only)'), value: 'manual' },
|
|
59
61
|
]
|
|
60
62
|
},
|
|
61
|
-
{ type: 'list', name: 'dmPolicy', message: 'DM politikası:', default: existingDm, choices: [
|
|
62
|
-
{ name: 'Pairing (önerilen) — eşleşme onayı ile', value: 'pairing' },
|
|
63
|
-
{ name: 'Allowlist — sadece izin listesi', value: 'allowlist' },
|
|
64
|
-
{ name: 'Open — herkese açık', value: 'open' },
|
|
65
|
-
{ name: 'Disabled — devre dışı', value: 'disabled' },
|
|
63
|
+
{ type: 'list', name: 'dmPolicy', message: L('DM politikası:', 'DM policy:'), default: existingDm, choices: [
|
|
64
|
+
{ name: L('Pairing (önerilen) — eşleşme onayı ile', 'Pairing (recommended) — with match approval'), value: 'pairing' },
|
|
65
|
+
{ name: L('Allowlist — sadece izin listesi', 'Allowlist — only the allowlist'), value: 'allowlist' },
|
|
66
|
+
{ name: L('Open — herkese açık', 'Open — public'), value: 'open' },
|
|
67
|
+
{ name: L('Disabled — devre dışı', 'Disabled — off'), value: 'disabled' },
|
|
66
68
|
]},
|
|
67
69
|
]);
|
|
68
70
|
|
|
@@ -76,23 +78,23 @@ async function connectSignal() {
|
|
|
76
78
|
config.signalBotId = botId;
|
|
77
79
|
saveConfig(config);
|
|
78
80
|
|
|
79
|
-
console.log(chalk.green('\n✅ Signal bağlantısı kaydedildi!\n'));
|
|
81
|
+
console.log(chalk.green(L('\n✅ Signal bağlantısı kaydedildi!\n', '\n✅ Signal connection saved!\n')));
|
|
80
82
|
console.log(chalk.cyan('Bot ID:'), chalk.white(botId));
|
|
81
83
|
console.log(chalk.cyan('REST API URL:'), chalk.white(config.signalHttpUrl));
|
|
82
|
-
console.log(chalk.cyan('Hesap:'), chalk.white(config.signalAccount));
|
|
83
|
-
console.log(chalk.cyan('API Modu:'), chalk.white(answers.apiMode));
|
|
84
|
-
console.log(chalk.cyan('DM Politikası:'), chalk.white(answers.dmPolicy));
|
|
84
|
+
console.log(chalk.cyan(L('Hesap:', 'Account:')), chalk.white(config.signalAccount));
|
|
85
|
+
console.log(chalk.cyan(L('API Modu:', 'API Mode:')), chalk.white(answers.apiMode));
|
|
86
|
+
console.log(chalk.cyan(L('DM Politikası:', 'DM Policy:')), chalk.white(answers.dmPolicy));
|
|
85
87
|
|
|
86
88
|
if (answers.autoStart) {
|
|
87
89
|
const signalCliPath = findSignalCli();
|
|
88
90
|
if (signalCliPath) {
|
|
89
|
-
console.log(chalk.gray(`\
|
|
91
|
+
console.log(chalk.gray(`\n${L('signal-cli bulundu', 'signal-cli found')}: ${signalCliPath}`));
|
|
90
92
|
} else {
|
|
91
|
-
console.log(chalk.yellow('\n⚠️ signal-cli bulunamadı. İndirmek için:'));
|
|
93
|
+
console.log(chalk.yellow(L('\n⚠️ signal-cli bulunamadı. İndirmek için:', '\n⚠️ signal-cli not found. To download:')));
|
|
92
94
|
console.log(chalk.cyan(' natureco signal install'));
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
|
-
console.log(chalk.gray('\nGateway ile başlatmak için: natureco gateway start\n'));
|
|
97
|
+
console.log(chalk.gray(L('\nGateway ile başlatmak için: natureco gateway start\n', '\nTo start with the gateway: natureco gateway start\n')));
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
async function disconnectSignal() {
|
|
@@ -102,7 +104,7 @@ async function disconnectSignal() {
|
|
|
102
104
|
return;
|
|
103
105
|
}
|
|
104
106
|
const { confirm } = await inquirer.prompt([
|
|
105
|
-
{ type: 'confirm', name: 'confirm', message: 'Signal bağlantısını kaldırmak istediğinize emin misiniz?', default: false }
|
|
107
|
+
{ type: 'confirm', name: 'confirm', message: L('Signal bağlantısını kaldırmak istediğinize emin misiniz?', 'Are you sure you want to remove the Signal connection?'), default: false }
|
|
106
108
|
]);
|
|
107
109
|
if (!confirm) {
|
|
108
110
|
console.log(chalk.gray('\nCancelled\n'));
|
|
@@ -136,13 +138,13 @@ function statusSignal() {
|
|
|
136
138
|
console.log(chalk.green('\n✅ Signal connected\n'));
|
|
137
139
|
console.log(chalk.cyan('Bot ID:'), chalk.white(config.signalBotId));
|
|
138
140
|
console.log(chalk.cyan('REST API URL:'), chalk.white(config.signalHttpUrl));
|
|
139
|
-
console.log(chalk.cyan('Hesap:'), chalk.white(config.signalAccount));
|
|
140
|
-
console.log(chalk.cyan('API Modu:'), chalk.white(config.signalApiMode || 'auto'));
|
|
141
|
-
console.log(chalk.cyan('DM Politikası:'), chalk.white(config.signalDmPolicy || 'pairing'));
|
|
141
|
+
console.log(chalk.cyan(L('Hesap:', 'Account:')), chalk.white(config.signalAccount));
|
|
142
|
+
console.log(chalk.cyan(L('API Modu:', 'API Mode:')), chalk.white(config.signalApiMode || 'auto'));
|
|
143
|
+
console.log(chalk.cyan(L('DM Politikası:', 'DM Policy:')), chalk.white(config.signalDmPolicy || 'pairing'));
|
|
142
144
|
|
|
143
145
|
console.log('');
|
|
144
|
-
console.log(chalk.cyan('Daemon Durumu:'), daemonRunning ? chalk.green('✓ Çalışıyor') : chalk.gray('✗ Durduruldu'));
|
|
145
|
-
console.log(chalk.cyan('API Erişilebilirlik:'), apiReachable ? chalk.green('✓ Ulaşılabilir') : chalk.red('✗ Ulaşılamıyor'));
|
|
146
|
+
console.log(chalk.cyan(L('Daemon Durumu:', 'Daemon Status:')), daemonRunning ? chalk.green(L('✓ Çalışıyor', '✓ Running')) : chalk.gray(L('✗ Durduruldu', '✗ Stopped')));
|
|
147
|
+
console.log(chalk.cyan(L('API Erişilebilirlik:', 'API Reachability:')), apiReachable ? chalk.green(L('✓ Ulaşılabilir', '✓ Reachable')) : chalk.red(L('✗ Ulaşılamıyor', '✗ Unreachable')));
|
|
146
148
|
|
|
147
149
|
if (config.signalCliPath) {
|
|
148
150
|
console.log(chalk.gray(`\nsignal-cli: ${config.signalCliPath}`));
|
|
@@ -155,7 +157,7 @@ function statusSignal() {
|
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
async function installSignalCli() {
|
|
158
|
-
console.log(chalk.yellow('\n⏳ signal-cli indiriliyor...\n'));
|
|
160
|
+
console.log(chalk.yellow(L('\n⏳ signal-cli indiriliyor...\n', '\n⏳ Downloading signal-cli...\n')));
|
|
159
161
|
|
|
160
162
|
if (!fs.existsSync(SIGNAL_DIR)) {
|
|
161
163
|
fs.mkdirSync(SIGNAL_DIR, { recursive: true });
|
|
@@ -175,8 +177,8 @@ async function installSignalCli() {
|
|
|
175
177
|
archiveName = `signal-cli-${SIGNAL_CLI_VERSION}-macOS.tar.gz`;
|
|
176
178
|
downloadUrl = `https://github.com/AsamK/signal-cli/releases/download/v${SIGNAL_CLI_VERSION}/${archiveName}`;
|
|
177
179
|
} else {
|
|
178
|
-
console.log(chalk.red(`\n❌ Platform desteklenmiyor: ${platform}\n`));
|
|
179
|
-
console.log(chalk.gray('Manual kurulum: https://github.com/AsamK/signal-cli#installation\n'));
|
|
180
|
+
console.log(chalk.red(`\n❌ ${L('Platform desteklenmiyor', 'Platform not supported')}: ${platform}\n`));
|
|
181
|
+
console.log(chalk.gray(L('Manual kurulum: https://github.com/AsamK/signal-cli#installation\n', 'Manual installation: https://github.com/AsamK/signal-cli#installation\n')));
|
|
180
182
|
process.exit(1);
|
|
181
183
|
}
|
|
182
184
|
|
|
@@ -184,30 +186,30 @@ async function installSignalCli() {
|
|
|
184
186
|
const extractDir = path.join(SIGNAL_DIR, `signal-cli-${SIGNAL_CLI_VERSION}`);
|
|
185
187
|
|
|
186
188
|
if (fs.existsSync(extractDir)) {
|
|
187
|
-
console.log(chalk.gray(`signal-cli ${SIGNAL_CLI_VERSION} zaten
|
|
189
|
+
console.log(chalk.gray(`signal-cli ${SIGNAL_CLI_VERSION} ${L('zaten indirilmiş', 'already downloaded')}: ${extractDir}`));
|
|
188
190
|
const config = getConfig();
|
|
189
191
|
config.signalCliPath = path.join(extractDir, 'bin', 'signal-cli' + (platform === 'win32' ? '.bat' : ''));
|
|
190
192
|
saveConfig(config);
|
|
191
|
-
console.log(chalk.green('✅ Hazır\n'));
|
|
193
|
+
console.log(chalk.green(L('✅ Hazır\n', '✅ Ready\n')));
|
|
192
194
|
return;
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
try {
|
|
196
|
-
console.log(chalk.cyan(
|
|
198
|
+
console.log(chalk.cyan(`${L('İndiriliyor', 'Downloading')}: ${downloadUrl}`));
|
|
197
199
|
const response = await fetch(downloadUrl);
|
|
198
200
|
if (!response.ok) {
|
|
199
201
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
200
202
|
}
|
|
201
203
|
const buffer = Buffer.from(await response.arrayBuffer());
|
|
202
204
|
fs.writeFileSync(archivePath, buffer);
|
|
203
|
-
console.log(chalk.green(`✓ İndirildi (${(buffer.length / 1024 / 1024).toFixed(1)} MB)`));
|
|
205
|
+
console.log(chalk.green(`✓ ${L('İndirildi', 'Downloaded')} (${(buffer.length / 1024 / 1024).toFixed(1)} MB)`));
|
|
204
206
|
|
|
205
207
|
// Extract
|
|
206
|
-
console.log(chalk.cyan('Ayıklanıyor...'));
|
|
208
|
+
console.log(chalk.cyan(L('Ayıklanıyor...', 'Extracting...')));
|
|
207
209
|
const tar = require('tar');
|
|
208
210
|
fs.mkdirSync(extractDir, { recursive: true });
|
|
209
211
|
await tar.x({ file: archivePath, cwd: SIGNAL_DIR });
|
|
210
|
-
console.log(chalk.green('✓ Ayıklandı'));
|
|
212
|
+
console.log(chalk.green(L('✓ Ayıklandı', '✓ Extracted')));
|
|
211
213
|
|
|
212
214
|
// Clean up archive
|
|
213
215
|
fs.unlinkSync(archivePath);
|
|
@@ -225,13 +227,13 @@ async function installSignalCli() {
|
|
|
225
227
|
config.signalCliPath = path.join(extractDir, 'bin', 'signal-cli' + (platform === 'win32' ? '.bat' : ''));
|
|
226
228
|
saveConfig(config);
|
|
227
229
|
|
|
228
|
-
console.log(chalk.green(`\n✅ signal-cli ${SIGNAL_CLI_VERSION} kuruldu!\n`));
|
|
230
|
+
console.log(chalk.green(`\n✅ signal-cli ${SIGNAL_CLI_VERSION} ${L('kuruldu', 'installed')}!\n`));
|
|
229
231
|
console.log(chalk.cyan('Binary:'), chalk.white(config.signalCliPath));
|
|
230
|
-
console.log(chalk.gray('\nDaemon\'ı başlatmak için: natureco signal daemon start\n'));
|
|
232
|
+
console.log(chalk.gray(L('\nDaemon\'ı başlatmak için: natureco signal daemon start\n', '\nTo start the daemon: natureco signal daemon start\n')));
|
|
231
233
|
|
|
232
234
|
} catch (err) {
|
|
233
|
-
console.log(chalk.red(`\n❌ Kurulum
|
|
234
|
-
console.log(chalk.gray('Manuel kurulum: https://github.com/AsamK/signal-cli#installation\n'));
|
|
235
|
+
console.log(chalk.red(`\n❌ ${L('Kurulum hatası', 'Installation error')}: ${err.message}\n`));
|
|
236
|
+
console.log(chalk.gray(L('Manuel kurulum: https://github.com/AsamK/signal-cli#installation\n', 'Manual installation: https://github.com/AsamK/signal-cli#installation\n')));
|
|
235
237
|
process.exit(1);
|
|
236
238
|
}
|
|
237
239
|
}
|
|
@@ -239,7 +241,7 @@ async function installSignalCli() {
|
|
|
239
241
|
async function manageDaemon(subAction) {
|
|
240
242
|
const config = getConfig();
|
|
241
243
|
if (!config.signalBotId) {
|
|
242
|
-
console.log(chalk.red('\n❌ Signal bağlı değil\n'));
|
|
244
|
+
console.log(chalk.red(L('\n❌ Signal bağlı değil\n', '\n❌ Signal not connected\n')));
|
|
243
245
|
process.exit(1);
|
|
244
246
|
}
|
|
245
247
|
|
|
@@ -265,13 +267,13 @@ async function startDaemon(config) {
|
|
|
265
267
|
|
|
266
268
|
const cliPath = config.signalCliPath || findSignalCli();
|
|
267
269
|
if (!cliPath) {
|
|
268
|
-
console.log(chalk.red('\n❌ signal-cli bulunamadı\n'));
|
|
269
|
-
console.log(chalk.yellow('Önce indirin:'), chalk.cyan('natureco signal install\n'));
|
|
270
|
+
console.log(chalk.red(L('\n❌ signal-cli bulunamadı\n', '\n❌ signal-cli not found\n')));
|
|
271
|
+
console.log(chalk.yellow(L('Önce indirin:', 'Download first:')), chalk.cyan('natureco signal install\n'));
|
|
270
272
|
process.exit(1);
|
|
271
273
|
}
|
|
272
274
|
|
|
273
275
|
if (!fs.existsSync(cliPath)) {
|
|
274
|
-
console.log(chalk.red(`\n❌ signal-cli binary
|
|
276
|
+
console.log(chalk.red(`\n❌ signal-cli binary ${L('bulunamadı', 'not found')}: ${cliPath}\n`));
|
|
275
277
|
process.exit(1);
|
|
276
278
|
}
|
|
277
279
|
|
|
@@ -285,9 +287,9 @@ async function startDaemon(config) {
|
|
|
285
287
|
const port = urlObj.port || '8080';
|
|
286
288
|
const account = config.signalAccount;
|
|
287
289
|
|
|
288
|
-
console.log(chalk.yellow(`\n⏳ signal-cli daemon başlatılıyor
|
|
290
|
+
console.log(chalk.yellow(`\n⏳ signal-cli daemon ${L('başlatılıyor...', 'starting...')}\n`));
|
|
289
291
|
console.log(chalk.gray(`HTTP: ${host}:${port}`));
|
|
290
|
-
console.log(chalk.gray(
|
|
292
|
+
console.log(chalk.gray(`${L('Hesap', 'Account')}: ${account}`));
|
|
291
293
|
|
|
292
294
|
const args = [
|
|
293
295
|
'daemon',
|
|
@@ -308,21 +310,21 @@ async function startDaemon(config) {
|
|
|
308
310
|
child.unref();
|
|
309
311
|
fs.writeFileSync(SIGNAL_PID_FILE, String(child.pid), 'utf-8');
|
|
310
312
|
|
|
311
|
-
console.log(chalk.green('✅ Daemon başlatıldı'));
|
|
313
|
+
console.log(chalk.green(L('✅ Daemon başlatıldı', '✅ Daemon started')));
|
|
312
314
|
console.log(chalk.cyan('PID:'), chalk.white(child.pid));
|
|
313
315
|
console.log(chalk.cyan('Log:'), chalk.white(SIGNAL_LOG_FILE));
|
|
314
316
|
|
|
315
317
|
// Wait for API to be ready
|
|
316
|
-
console.log(chalk.gray('\nAPI hazır olana kadar bekleniyor...'));
|
|
318
|
+
console.log(chalk.gray(L('\nAPI hazır olana kadar bekleniyor...', '\nWaiting for the API to be ready...')));
|
|
317
319
|
for (let i = 0; i < 30; i++) {
|
|
318
320
|
await new Promise(r => setTimeout(r, 1000));
|
|
319
321
|
if (probeSync(config)) {
|
|
320
|
-
console.log(chalk.green('✓ API hazır\n'));
|
|
322
|
+
console.log(chalk.green(L('✓ API hazır\n', '✓ API ready\n')));
|
|
321
323
|
return;
|
|
322
324
|
}
|
|
323
325
|
process.stdout.write('.');
|
|
324
326
|
}
|
|
325
|
-
console.log(chalk.yellow('\n⚠️ API yanıt vermedi, logları kontrol edin\n'));
|
|
327
|
+
console.log(chalk.yellow(L('\n⚠️ API yanıt vermedi, logları kontrol edin\n', '\n⚠️ API did not respond, check the logs\n')));
|
|
326
328
|
}
|
|
327
329
|
|
|
328
330
|
function stopDaemon() {
|
|
@@ -344,9 +346,9 @@ function stopDaemon() {
|
|
|
344
346
|
if (fs.existsSync(SIGNAL_PID_FILE)) {
|
|
345
347
|
fs.unlinkSync(SIGNAL_PID_FILE);
|
|
346
348
|
}
|
|
347
|
-
console.log(chalk.green('\n✅ Daemon durduruldu\n'));
|
|
349
|
+
console.log(chalk.green(L('\n✅ Daemon durduruldu\n', '\n✅ Daemon stopped\n')));
|
|
348
350
|
} catch (err) {
|
|
349
|
-
console.log(chalk.red(`\n❌ Hata: ${err.message}\n`));
|
|
351
|
+
console.log(chalk.red(`\n❌ ${L('Hata', 'Error')}: ${err.message}\n`));
|
|
350
352
|
}
|
|
351
353
|
}
|
|
352
354
|
|
|
@@ -390,14 +392,14 @@ function isDaemonRunning() {
|
|
|
390
392
|
async function probeSignalCli() {
|
|
391
393
|
const config = getConfig();
|
|
392
394
|
if (!config.signalHttpUrl) {
|
|
393
|
-
console.log(chalk.red('\n❌ Signal bağlantısı yapılmamış\n'));
|
|
394
|
-
console.log(chalk.gray('Önce: natureco signal connect\n'));
|
|
395
|
+
console.log(chalk.red(L('\n❌ Signal bağlantısı yapılmamış\n', '\n❌ Signal connection not set up\n')));
|
|
396
|
+
console.log(chalk.gray(L('Önce: natureco signal connect\n', 'First: natureco signal connect\n')));
|
|
395
397
|
process.exit(1);
|
|
396
398
|
}
|
|
397
399
|
|
|
398
400
|
const baseUrl = config.signalHttpUrl;
|
|
399
401
|
const mode = config.signalApiMode || 'auto';
|
|
400
|
-
console.log(chalk.yellow(`\n⏳ Problanıyor: ${baseUrl}\n`));
|
|
402
|
+
console.log(chalk.yellow(`\n⏳ ${L('Problanıyor', 'Probing')}: ${baseUrl}\n`));
|
|
401
403
|
|
|
402
404
|
let nativeOk = false;
|
|
403
405
|
let containerOk = false;
|
|
@@ -428,7 +430,7 @@ async function probeSignalCli() {
|
|
|
428
430
|
|
|
429
431
|
if (mode === 'auto') {
|
|
430
432
|
const detected = nativeOk ? 'native' : containerOk ? 'container' : 'none';
|
|
431
|
-
console.log(chalk.cyan(`\nAuto-detect sonucu: ${detected}`));
|
|
433
|
+
console.log(chalk.cyan(`\nAuto-detect ${L('sonucu', 'result')}: ${detected}`));
|
|
432
434
|
}
|
|
433
435
|
|
|
434
436
|
const cliPath = findSignalCli();
|
|
@@ -438,7 +440,7 @@ async function probeSignalCli() {
|
|
|
438
440
|
const versionOut = execSync(`"${cliPath}" --version`, { encoding: 'utf-8', timeout: 10000 });
|
|
439
441
|
console.log(chalk.gray(`Version: ${versionOut.trim()}`));
|
|
440
442
|
} catch {
|
|
441
|
-
console.log(chalk.gray('Version sorgulanamadı'));
|
|
443
|
+
console.log(chalk.gray(L('Version sorgulanamadı', 'Could not query version')));
|
|
442
444
|
}
|
|
443
445
|
}
|
|
444
446
|
|