@siranjeevan/releaseflow 1.1.1 → 1.1.2

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 (3) hide show
  1. package/index.js +19 -14
  2. package/package.json +1 -1
  3. package/uploader.js +6 -2
package/index.js CHANGED
@@ -269,27 +269,32 @@ async function runConfigureFlow() {
269
269
  }
270
270
 
271
271
  function runPromptFlow() {
272
- console.log('\n\x1b[36m--- NEXT STEPS FOR YOUR FLUTTER APP ---\x1b[0m');
273
- console.log('1. Manual UI: Build a Force Update screen with an "Update Now" button.');
274
- console.log('2. Integration: On your button\'s "onPressed:", add the code below.');
275
- console.log('3. Security: Allow users to READ "app_config/version" in Firebase Rules.');
276
-
277
- console.log('\n\x1b[35m--- BUTTON DART CODE (COPY THIS!) ---\x1b[0m');
278
- console.log('// Place this in your button\'s onPressed:');
279
- console.log('final url = doc["download_url"]; // Field name from the CLI');
272
+ console.log('\n\x1b[36m--- 🚀 MASTER INTEGRATION GUIDE FOR FLUTTER ---\x1b[0m');
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"];');
280
284
  console.log('if (await canLaunchUrl(Uri.parse(url))) {');
281
285
  console.log(' await launchUrl(Uri.parse(url), mode: LaunchMode.externalApplication);');
282
286
  console.log('}');
283
287
 
284
- console.log('\n\x1b[33m--- VERIFICATION CHECKLIST (TEST YOUR UI) ---\x1b[0m');
285
- console.log('To confirm your navigation is working:');
288
+ console.log('\n\x1b[35m[3/3] VERIFICATION CHECKLIST\x1b[0m');
289
+ console.log('To confirm your Force Update is working correctly:');
286
290
  console.log(' a. Run "releaseflow release" and set "Force Update" to TRUE.');
287
- console.log(' b. Open your app and click your "Update Now" button.');
291
+ console.log(' b. Open your app and click the "Update Now" button.');
288
292
  console.log(' c. Verify: Does it open Chrome and download your new APK?');
289
293
 
290
- console.log('\n\x1b[32m--- READY TO RELEASE? ---\x1b[0m');
291
- console.log(' releaseflow release : Build and Upload your first APK.');
292
- console.log(' releaseflow manual : View full Flutter integration guide.\n');
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');
293
298
  }
294
299
 
295
300
  async function runRemoveConfig() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siranjeevan/releaseflow",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "Automated Flutter Release Manager",
5
5
  "main": "index.js",
6
6
  "bin": {
package/uploader.js CHANGED
@@ -59,6 +59,8 @@ async function uploadApk(apkPath, version) {
59
59
  const [url] = await file.getSignedUrl({
60
60
  action: 'read',
61
61
  expires: '03-01-2099',
62
+ promptSaveAs: true,
63
+ responseDisposition: 'attachment; filename="app-update.apk"'
62
64
  });
63
65
 
64
66
  return url;
@@ -72,7 +74,7 @@ async function updateFirestore(version, url, forceUpdate) {
72
74
 
73
75
  await configRef.set({
74
76
  latest_version: version,
75
- apk_url: url,
77
+ download_url: url,
76
78
  force_update: forceUpdate,
77
79
  updated_at: new Date().toISOString()
78
80
  });
@@ -110,12 +112,14 @@ async function rollbackToVersion(version, forceUpdate) {
110
112
  const [url] = await file.getSignedUrl({
111
113
  action: 'read',
112
114
  expires: '03-01-2099',
115
+ promptSaveAs: true,
116
+ responseDisposition: 'attachment; filename="app-update.apk"'
113
117
  });
114
118
 
115
119
  const configRef = db.collection('app_config').doc('version');
116
120
  await configRef.set({
117
121
  latest_version: version,
118
- apk_url: url,
122
+ download_url: url,
119
123
  force_update: forceUpdate,
120
124
  updated_at: new Date().toISOString()
121
125
  });