fleetbo-cockpit-cli 1.0.183 → 1.0.184
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/cli.js +13 -13
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -986,11 +986,11 @@ else if (command === 'android' || command === 'ios') {
|
|
|
986
986
|
console.error(`\x1b[31m Error:\x1b[0m ${error.message}`);
|
|
987
987
|
|
|
988
988
|
if (error.message.includes('Limit') || error.message.includes('Quota')) {
|
|
989
|
-
console.log(`\n\x1b[33m
|
|
989
|
+
console.log(`\n\x1b[33m Tip:\x1b[0m Upgrade to Senior Pilot for more builds.`);
|
|
990
990
|
} else if (error.message.includes('No native module')) {
|
|
991
|
-
console.log(`\n\x1b[33m
|
|
991
|
+
console.log(`\n\x1b[33m Tip:\x1b[0m Run "npm run fleetbo alex" to create native modules first.`);
|
|
992
992
|
} else if (error.message.includes('Trial Period Ended')) {
|
|
993
|
-
console.log(`\n\x1b[33m
|
|
993
|
+
console.log(`\n\x1b[33m Tip:\x1b[0m Your free sprint is over. Upgrade to Senior Pilot on fleetbo.io.`);
|
|
994
994
|
}
|
|
995
995
|
console.log('');
|
|
996
996
|
process.exit(1);
|
|
@@ -1074,8 +1074,8 @@ else {
|
|
|
1074
1074
|
await axios.post(UPDATE_NETWORK_URL, { keyApp, networkUrl, tester: testerEmail });
|
|
1075
1075
|
console.log('\n\x1b[32mEngine started successfully\x1b[0m');
|
|
1076
1076
|
console.log(`\n\x1b[32mFleetbo OS ❯\x1b[0m -------------------------------------------------------------`);
|
|
1077
|
-
console.log(
|
|
1078
|
-
console.log('\x1b[32mFleetbo OS ❯\x1b[0m You can now start coding and previewing.
|
|
1077
|
+
console.log(`\x1b[32mFleetbo OS ❯\x1b[0m \x1b[1mGO ! ${projectName} running in OS\x1b[0m`);
|
|
1078
|
+
console.log('\x1b[32mFleetbo OS ❯\x1b[0m You can now start coding and previewing.');
|
|
1079
1079
|
console.log(`\x1b[32mFleetbo OS ❯\x1b[0m -------------------------------------------------------------`);
|
|
1080
1080
|
console.log(`\n\x1b[34mPilot Instruction ❯\x1b[0m Return to the Workspace. The Engine is ready for your orders.\n`);
|
|
1081
1081
|
} catch (err) {
|
|
@@ -1084,7 +1084,7 @@ else {
|
|
|
1084
1084
|
}
|
|
1085
1085
|
|
|
1086
1086
|
async function runDevEnvironment() {
|
|
1087
|
-
console.log(`[Fleetbo]
|
|
1087
|
+
console.log(`[Fleetbo] Initializing Universal Dev Environment...`);
|
|
1088
1088
|
|
|
1089
1089
|
killNetworkService();
|
|
1090
1090
|
killProcessOnPort(PORT); // On tue le 3000 par précaution, au cas où
|
|
@@ -1114,7 +1114,7 @@ else {
|
|
|
1114
1114
|
devServer.stdout.on('data', (data) => {
|
|
1115
1115
|
const output = data.toString();
|
|
1116
1116
|
|
|
1117
|
-
//
|
|
1117
|
+
// FILTRE ANTI-PLOMBERIE FLEETBO
|
|
1118
1118
|
const lines = output.split('\n');
|
|
1119
1119
|
const forbiddenTerms = [
|
|
1120
1120
|
'Attempting to bind to HOST', 'If this was unintentional', 'Learn more here:',
|
|
@@ -1131,10 +1131,10 @@ else {
|
|
|
1131
1131
|
process.stdout.write(filteredOutput + '\n');
|
|
1132
1132
|
}
|
|
1133
1133
|
|
|
1134
|
-
//
|
|
1135
|
-
//
|
|
1136
|
-
//
|
|
1137
|
-
//
|
|
1134
|
+
// MAGIE 1 : DÉTECTION DU PORT RÉEL (Vite/Vue ou React)
|
|
1135
|
+
// Cherche un pattern comme http://localhost:5173 ou http://127.0.0.1:3000
|
|
1136
|
+
// LA SOLUTION : On déclenche UNIQUEMENT quand on a trouvé le port !
|
|
1137
|
+
// CAPTURE AGNOSTIQUE DU PORT (S'adapte dynamiquement à Vite)
|
|
1138
1138
|
const portMatch = output.match(/http:\/\/(?:localhost|127\.0\.0\.1):(\d+)/);
|
|
1139
1139
|
|
|
1140
1140
|
if (portMatch) {
|
|
@@ -1159,10 +1159,10 @@ else {
|
|
|
1159
1159
|
const npxCmd = process.platform === 'win32' ? 'npx.cmd' : 'npx';
|
|
1160
1160
|
|
|
1161
1161
|
if (attempt > 0) {
|
|
1162
|
-
console.log(`\x1b[33m[Fleetbo]
|
|
1162
|
+
console.log(`\x1b[33m[Fleetbo] Uplink reconnection ${attempt}/${MAX_UPLINK_RETRIES - 1}...\x1b[0m`);
|
|
1163
1163
|
}
|
|
1164
1164
|
|
|
1165
|
-
//
|
|
1165
|
+
// LE TUNNEL CLOUDFLARE UTILISE LE PORT DÉTECTÉ DYNAMIQUEMENT !
|
|
1166
1166
|
const uplinkCommand = `${npxCmd} -y cloudflared tunnel --url http://127.0.0.1:${detectedPort} --http-host-header 127.0.0.1:${detectedPort}`;
|
|
1167
1167
|
uplinkProcess = spawn(uplinkCommand, { shell: true });
|
|
1168
1168
|
|