@siranjeevan/releaseflow 1.1.2 → 1.1.3

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 (2) hide show
  1. package/index.js +36 -25
  2. package/package.json +2 -2
package/index.js CHANGED
@@ -269,32 +269,43 @@ async function runConfigureFlow() {
269
269
  }
270
270
 
271
271
  function runPromptFlow() {
272
- console.log('\n\x1b[36m--- 🚀 MASTER INTEGRATION GUIDE FOR FLUTTER ---\x1b[0m');
272
+ console.log('\n\x1b[36m--- 🚀 THE ULTIMATE ZERO-ERROR FLUTTER RELEASE GUIDE ---\x1b[0m');
273
273
 
274
- console.log('\n\x1b[35m[1/3] ADD DEPENDENCIES\x1b[0m');
275
- console.log('Add these to your pubspec.yaml:');
276
- console.log(' - package_info_plus (to get local version)');
277
- console.log(' - cloud_firestore (to read from app_config/version)');
278
- console.log(' - url_launcher (to open the download link)');
279
-
280
- console.log('\n\x1b[35m[2/3] THE DART LOGIC (CODE SNIPPET)\x1b[0m');
281
- console.log('// Inside your button\'s onPressed:');
282
- console.log('final doc = await FirebaseFirestore.instance.collection("app_config").doc("version").get();');
283
- console.log('final url = doc["download_url"];');
284
- console.log('if (await canLaunchUrl(Uri.parse(url))) {');
285
- console.log(' await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication);');
286
- console.log('}');
287
-
288
- console.log('\n\x1b[35m[3/3] VERIFICATION CHECKLIST\x1b[0m');
289
- console.log('To confirm your Force Update is working correctly:');
290
- console.log(' a. Run "releaseflow release" and set "Force Update" to TRUE.');
291
- console.log(' b. Open your app and click the "Update Now" button.');
292
- console.log(' c. Verify: Does it open Chrome and download your new APK?');
293
-
294
- console.log('\n\x1b[32m--- 🏁 READY FOR YOUR FIRST RELEASE? ---\x1b[0m');
295
- console.log(' releaseflow release : Build & Deploy your first version.');
296
- console.log(' releaseflow config show : Check your project settings.');
297
- console.log(' releaseflow manual : Open full docs.\n');
274
+ console.log('\n\x1b[35m[STEP 1] - ADD DEPENDENCIES\x1b[0m');
275
+ console.log('\x1b[33mAdd these to your pubspec.yaml and run flutter pub get:\x1b[0m');
276
+ console.log(' firebase_core: ^latest_version');
277
+ console.log(' cloud_firestore: ^latest_version');
278
+ console.log(' package_info_plus: ^latest_version');
279
+ console.log(' url_launcher: ^latest_version');
280
+
281
+ console.log('\n\x1b[35m[STEP 2] - CONFIGURE THE ENGINE (CRITICAL!)\x1b[0m');
282
+ console.log('\x1b[33m2A. In android/app/src/main/AndroidManifest.xml (Before </manifest>):\x1b[0m');
283
+ console.log(' <queries>');
284
+ console.log(' <intent><action android:name="android.intent.action.VIEW" /><data android:scheme="https" /></intent>');
285
+ console.log(' <intent><action android:name="android.intent.action.VIEW" /><data android:scheme="http" /></intent>');
286
+ console.log(' </queries>');
287
+ console.log('\x1b[33m2B. In lib/main.dart (Initialize first!):\x1b[0m');
288
+ console.log(' await Firebase.initializeApp(); // Add this line inside main()');
289
+
290
+ console.log('\n\x1b[35m[STEP 3] - THE DART LOGIC (STRICT VERSION CHECK)\x1b[0m');
291
+ console.log('\x1b[33mCreate remote_config_service.dart and compare versions:\x1b[0m');
292
+ console.log(' final doc = await FirebaseFirestore.instance.collection("app_config").doc("version").get();');
293
+ console.log(' final String latest = doc["latest_version"];');
294
+ console.log(' final bool force = doc["force_update"];');
295
+ console.log(' return (latest != currentVersion) && force;');
296
+
297
+ console.log('\n\x1b[35m[STEP 4] - THE FORCE UPDATE SCREEN\x1b[0m');
298
+ console.log('\x1b[33mCreate force_update_screen.dart with an "UPDATE NOW" button:\x1b[0m');
299
+ console.log(' final url = doc["download_url"];');
300
+ console.log(' if (await canLaunchUrl(Uri.parse(url))) {');
301
+ console.log(' await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication);');
302
+ console.log(' }');
303
+
304
+ console.log('\n\x1b[35m[STEP 5] - INTEGRATION IN SPLASH SCREEN\x1b[0m');
305
+ console.log('\x1b[33mIn splash_screen.dart, check the logic then navigate:\x1b[0m');
306
+ console.log(' if (required) { Navigator.push(context, MaterialPageRoute(builder: (_) => ForceUpdateScreen())); }');
307
+
308
+ console.log('\n\x1b[32m--- 🏁 READY? RUN: releaseflow release ---\x1b[0m\n');
298
309
  }
299
310
 
300
311
  async function runRemoveConfig() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siranjeevan/releaseflow",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Automated Flutter Release Manager",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -15,7 +15,7 @@
15
15
  "firebase",
16
16
  "automation"
17
17
  ],
18
- "author": "Jeevith",
18
+ "author": "Siranjeevan",
19
19
  "license": "ISC",
20
20
  "dependencies": {
21
21
  "axios": "^1.7.9",