brave-real-launcher 1.2.1 → 1.2.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.
@@ -72,8 +72,37 @@ jobs:
72
72
  run: |
73
73
  echo "🔍 Checking for chrome-launcher updates..."
74
74
 
75
- # Chrome-launcher ⤕āĨ€ latest version fetch ⤕⤰āĨ‡ā¤‚
76
- CHROME_VERSION=$(curl -s https://api.github.com/repos/GoogleChrome/chrome-launcher/releases/latest | jq -r .tag_name | sed 's/v//')
75
+ # Chrome-launcher ⤕āĨ€ latest version fetch ⤕⤰āĨ‡ā¤‚ with error handling
76
+ echo "🔍 Fetching chrome-launcher latest release..."
77
+
78
+ # Fetch chrome-launcher version with multiple methods
79
+ CHROME_VERSION=""
80
+
81
+ # Method 1: Try GitHub API
82
+ if command -v jq >/dev/null 2>&1; then
83
+ CHROME_API_RESPONSE=$(curl -s "https://api.github.com/repos/GoogleChrome/chrome-launcher/releases/latest")
84
+ if echo "$CHROME_API_RESPONSE" | jq -e '.tag_name' >/dev/null 2>&1; then
85
+ CHROME_VERSION=$(echo "$CHROME_API_RESPONSE" | jq -r .tag_name | sed 's/v//')
86
+ echo "✅ Found chrome-launcher version via GitHub API: $CHROME_VERSION"
87
+ fi
88
+ fi
89
+
90
+ # Method 2: Fallback to NPM registry
91
+ if [ -z "$CHROME_VERSION" ] || [ "$CHROME_VERSION" = "null" ]; then
92
+ echo "âš ī¸ GitHub API failed, trying NPM registry..."
93
+ CHROME_VERSION=$(curl -s "https://registry.npmjs.org/chrome-launcher/latest" | jq -r .version 2>/dev/null || echo "")
94
+ if [ -n "$CHROME_VERSION" ] && [ "$CHROME_VERSION" != "null" ]; then
95
+ echo "✅ Found chrome-launcher version via NPM: $CHROME_VERSION"
96
+ fi
97
+ fi
98
+
99
+ # Method 3: Final fallback - use current version
100
+ if [ -z "$CHROME_VERSION" ] || [ "$CHROME_VERSION" = "null" ]; then
101
+ echo "âš ī¸ All methods failed, using current version as fallback"
102
+ CHROME_VERSION=$(node -e "console.log(require('./package.json').version)")
103
+ echo "đŸ“Ļ Fallback to current version: $CHROME_VERSION"
104
+ fi
105
+
77
106
  CURRENT_VERSION=$(node -e "console.log(require('./package.json').version)")
78
107
 
79
108
  echo "chrome_version=$CHROME_VERSION" >> $GITHUB_OUTPUT
@@ -102,10 +131,27 @@ jobs:
102
131
  - name: 🔄 Sync with Chrome-Launcher
103
132
  if: steps.sync-check.outputs.should_sync == 'true'
104
133
  run: |
105
- echo "🔄 Syncing brave-real-launcher with chrome-launcher v${{ steps.sync-check.outputs.chrome_version }}"
134
+ echo "đŸ”ĸ Syncing brave-real-launcher with chrome-launcher v${{ steps.sync-check.outputs.chrome_version }}"
135
+
136
+ # Validate chrome version before using it
137
+ CHROME_VER="${{ steps.sync-check.outputs.chrome_version }}"
138
+ if [ "$CHROME_VER" = "null" ] || [ -z "$CHROME_VER" ]; then
139
+ echo "❌ Invalid chrome version detected: $CHROME_VER"
140
+ echo "🔄 Skipping sync due to invalid version"
141
+ exit 0
142
+ fi
143
+
144
+ # Validate version format (should be x.y.z)
145
+ if ! echo "$CHROME_VER" | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$'; then
146
+ echo "❌ Invalid version format: $CHROME_VER"
147
+ echo "🔄 Skipping sync due to invalid version format"
148
+ exit 0
149
+ fi
150
+
151
+ echo "✅ Valid chrome version: $CHROME_VER"
106
152
 
107
153
  # Package.json version ⤕āĨ‹ update ⤕⤰āĨ‡ā¤‚
108
- npm version ${{ steps.sync-check.outputs.chrome_version }} --no-git-tag-version
154
+ npm version "$CHROME_VER" --no-git-tag-version
109
155
 
110
156
  # Git configuration
111
157
  git config user.name "🤖 Brave Sync Bot"
@@ -198,102 +244,135 @@ jobs:
198
244
  npm audit --audit-level high || echo "âš ī¸ Some security issues found but continuing..."
199
245
  echo "✅ Security audit completed!"
200
246
 
201
- # Step 10: Determine publish strategy
202
- - name: đŸŽ¯ Determine Publish Strategy
203
- id: publish-check
247
+ # Step 10: Smart Version Management & Publish Strategy
248
+ - name: đŸ”ĸ Smart Version Management
249
+ id: version-manager
204
250
  run: |
205
- echo "đŸŽ¯ Determining publish strategy..."
251
+ echo "đŸ”ĸ Smart version management starting..."
206
252
 
253
+ # Get current status
207
254
  PUBLISH_MODE="${{ github.event.inputs.publish_mode || 'auto' }}"
208
- SHOULD_PUBLISH="false"
209
- REASON=""
255
+ SYNC_PERFORMED="${{ steps.sync-check.outputs.should_sync }}"
256
+ CHROME_VERSION="${{ steps.sync-check.outputs.chrome_version }}"
210
257
 
211
- # Current ⤔⤰ NPM version check ⤕⤰āĨ‡ā¤‚
258
+ # Current version from package.json
212
259
  CURRENT_VERSION=$(node -e "console.log(require('./package.json').version)")
260
+
261
+ # NPM published version
262
+ echo "📎 Checking NPM registry..."
213
263
  NPM_VERSION=$(npm view brave-real-launcher version 2>/dev/null || echo "0.0.0")
214
264
 
215
- echo "Current version: $CURRENT_VERSION"
265
+ echo "=== Version Status ==="
266
+ echo "Local version: $CURRENT_VERSION"
216
267
  echo "NPM version: $NPM_VERSION"
268
+ echo "Chrome-launcher version: $CHROME_VERSION"
269
+ echo "Sync performed: $SYNC_PERFORMED"
270
+ echo "Publish mode: $PUBLISH_MODE"
271
+
272
+ # Smart version determination
273
+ NEW_VERSION=""
274
+ SHOULD_PUBLISH="false"
275
+ REASON=""
217
276
 
218
- # Publish logic
219
277
  if [ "$PUBLISH_MODE" = "skip" ]; then
278
+ SHOULD_PUBLISH="false"
220
279
  REASON="Publish mode set to skip"
221
- elif [ "$PUBLISH_MODE" = "force" ]; then
280
+ NEW_VERSION="$CURRENT_VERSION"
281
+
282
+ elif [ "$SYNC_PERFORMED" = "true" ]; then
283
+ # Chrome-launcher sync ā¤šāĨā¤† ā¤šāĨˆ - use chrome version
284
+ NEW_VERSION="$CHROME_VERSION"
222
285
  SHOULD_PUBLISH="true"
223
- REASON="Force publish requested"
224
- elif [ "$PUBLISH_MODE" = "auto" ]; then
225
- if [ "$CURRENT_VERSION" != "$NPM_VERSION" ]; then
226
- # Only publish on main/master branch for auto mode
227
- if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.ref }}" == "refs/heads/master" ]]; then
286
+ REASON="Synced with chrome-launcher v$CHROME_VERSION"
287
+
288
+ # Update package.json with chrome version
289
+ if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
290
+ echo "🔄 Updating package.json to chrome-launcher version: $NEW_VERSION"
291
+ npm version "$NEW_VERSION" --no-git-tag-version
292
+ fi
293
+
294
+ else
295
+ # Regular update - ⤏ā¤ŋ⤰āĨā¤Ģ main/master branch ā¤Ē⤰ publish ⤕⤰āĨ‡ā¤‚
296
+ if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.ref }}" == "refs/heads/master" ]]; then
297
+
298
+ if [ "$NPM_VERSION" = "0.0.0" ]; then
299
+ # First publish
300
+ NEW_VERSION="$CURRENT_VERSION"
228
301
  SHOULD_PUBLISH="true"
229
- REASON="Version updated from $NPM_VERSION to $CURRENT_VERSION"
302
+ REASON="First publish"
230
303
  else
231
- REASON="Version changed but not on main branch"
304
+ # Auto-increment ⤕⤰āĨ‡ā¤‚ ⤅⤗⤰ NPM version >= current version
305
+ if [ "$(printf '%s\n' "$NPM_VERSION" "$CURRENT_VERSION" | sort -V | tail -n1)" = "$NPM_VERSION" ]; then
306
+ # NPM version is same or newer, increment
307
+ echo "đŸ”ĸ Auto-incrementing patch version..."
308
+
309
+ # Parse NPM version and increment
310
+ IFS='.' read -r major minor patch <<< "$NPM_VERSION"
311
+ NEW_PATCH=$((patch + 1))
312
+ NEW_VERSION="${major}.${minor}.${NEW_PATCH}"
313
+
314
+ echo "📈 Version increment: $NPM_VERSION → $NEW_VERSION"
315
+
316
+ # Update package.json
317
+ npm version "$NEW_VERSION" --no-git-tag-version
318
+
319
+ SHOULD_PUBLISH="true"
320
+ REASON="Auto-incremented from $NPM_VERSION to $NEW_VERSION"
321
+ else
322
+ # Current version is newer
323
+ NEW_VERSION="$CURRENT_VERSION"
324
+ SHOULD_PUBLISH="true"
325
+ REASON="Local version newer than NPM: $CURRENT_VERSION > $NPM_VERSION"
326
+ fi
232
327
  fi
328
+
233
329
  else
234
- REASON="No version change detected"
330
+ # Not on main branch
331
+ NEW_VERSION="$CURRENT_VERSION"
332
+ SHOULD_PUBLISH="false"
333
+ REASON="Not on main/master branch"
235
334
  fi
236
335
  fi
237
336
 
238
- echo "should_publish=$SHOULD_PUBLISH" >> $GITHUB_OUTPUT
239
- echo "reason=$REASON" >> $GITHUB_OUTPUT
240
- echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
241
- echo "npm_version=$NPM_VERSION" >> $GITHUB_OUTPUT
242
-
243
- echo "📋 Publish decision: $SHOULD_PUBLISH ($REASON)"
244
-
245
- # Step 10.5: Smart Version Increment (if needed)
246
- - name: đŸ”ĸ Smart Version Increment
247
- id: version-increment
248
- if: steps.publish-check.outputs.should_publish == 'true'
249
- run: |
250
- echo "đŸ”ĸ Processing smart version increment..."
251
-
252
- CURRENT_VERSION="${{ steps.publish-check.outputs.current_version }}"
253
- NPM_VERSION="${{ steps.publish-check.outputs.npm_version }}"
254
- SYNC_PERFORMED="${{ steps.sync-check.outputs.should_sync }}"
255
-
256
- echo "Current version: $CURRENT_VERSION"
257
- echo "NPM version: $NPM_VERSION"
258
- echo "Sync performed: $SYNC_PERFORMED"
337
+ # Force publish override
338
+ if [ "$PUBLISH_MODE" = "force" ]; then
339
+ if [ -z "$NEW_VERSION" ] || [ "$NEW_VERSION" = "$CURRENT_VERSION" ]; then
340
+ # Force ⤕āĨ‡ ⤞ā¤ŋā¤ increment ⤕⤰āĨ‡ā¤‚
341
+ IFS='.' read -r major minor patch <<< "$([ "$NPM_VERSION" != "0.0.0" ] && echo "$NPM_VERSION" || echo "$CURRENT_VERSION")"
342
+ NEW_PATCH=$((patch + 1))
343
+ NEW_VERSION="${major}.${minor}.${NEW_PATCH}"
344
+ npm version "$NEW_VERSION" --no-git-tag-version
345
+ fi
346
+ SHOULD_PUBLISH="true"
347
+ REASON="Force publish requested - v$NEW_VERSION"
348
+ fi
259
349
 
260
- # Version increment logic
261
- if [ "$SYNC_PERFORMED" = "true" ]; then
262
- # Chrome-launcher sync ā¤šāĨā¤† ā¤šāĨˆ, version ā¤Ēā¤šā¤˛āĨ‡ ⤏āĨ‡ updated ā¤šāĨˆ
263
- NEW_VERSION="$CURRENT_VERSION"
264
- echo "✅ Version already synced with chrome-launcher: $NEW_VERSION"
265
- else
266
- # Auto-increment patch version for regular updates
267
- echo "đŸ”ĸ Auto-incrementing patch version..."
268
-
269
- # Parse version components
270
- IFS='.' read -r major minor patch <<< "$CURRENT_VERSION"
271
- NEW_PATCH=$((patch + 1))
272
- NEW_VERSION="${major}.${minor}.${NEW_PATCH}"
273
-
274
- echo "📈 Version increment: $CURRENT_VERSION → $NEW_VERSION"
275
-
276
- # Update package.json
277
- npm version $NEW_VERSION --no-git-tag-version
278
-
279
- # Commit version change
280
- git config user.name "🤖 Brave Version Bot"
350
+ # Commit version changes if made
351
+ if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then
352
+ echo "📁 Committing version change..."
353
+ git config user.name "🤖 Brave Version Manager"
281
354
  git config user.email "action@github.com"
282
355
  git add package.json package-lock.json
283
- git commit -m "đŸ”ĸ Auto-increment version to v$NEW_VERSION" || echo "No changes to commit"
356
+ git commit -m "đŸ”ĸ Version update: $CURRENT_VERSION → $NEW_VERSION" || echo "No changes to commit"
284
357
  git push || echo "Nothing to push"
285
-
286
- echo "✅ Version incremented and committed: $NEW_VERSION"
287
358
  fi
288
359
 
289
- echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
290
- echo "version_incremented=$([ "$NEW_VERSION" != "$CURRENT_VERSION" ] && echo "true" || echo "false")" >> $GITHUB_OUTPUT
360
+ # Output results
361
+ echo "should_publish=$SHOULD_PUBLISH" >> $GITHUB_OUTPUT
362
+ echo "reason=$REASON" >> $GITHUB_OUTPUT
363
+ echo "final_version=$NEW_VERSION" >> $GITHUB_OUTPUT
364
+ echo "version_changed=$([ "$NEW_VERSION" != "$CURRENT_VERSION" ] && echo "true" || echo "false")" >> $GITHUB_OUTPUT
365
+
366
+ echo "=== Final Decision ==="
367
+ echo "📋 Should publish: $SHOULD_PUBLISH"
368
+ echo "📋 Final version: $NEW_VERSION"
369
+ echo "📋 Reason: $REASON"
291
370
 
292
371
  # Step 11: Publish to NPM
293
372
  - name: 🚀 Publish to NPM
294
- if: steps.publish-check.outputs.should_publish == 'true'
373
+ if: steps.version-manager.outputs.should_publish == 'true'
295
374
  run: |
296
- FINAL_VERSION="${{ steps.version-increment.outputs.new_version || steps.publish-check.outputs.current_version }}"
375
+ FINAL_VERSION="${{ steps.version-manager.outputs.final_version }}"
297
376
  echo "🚀 Publishing brave-real-launcher v$FINAL_VERSION to NPM..."
298
377
 
299
378
  # Verify we have NPM token
@@ -328,21 +407,20 @@ jobs:
328
407
  echo "=================================="
329
408
  echo "📋 Execution Summary:"
330
409
  echo "â€ĸ Chrome-launcher version: ${{ steps.sync-check.outputs.chrome_version }}"
331
- echo "â€ĸ Original version: ${{ steps.publish-check.outputs.current_version }}"
332
- echo "â€ĸ Final version: ${{ steps.version-increment.outputs.new_version || steps.publish-check.outputs.current_version }}"
333
- echo "â€ĸ Version incremented: ${{ steps.version-increment.outputs.version_incremented || 'false' }}"
410
+ echo "â€ĸ Final version: ${{ steps.version-manager.outputs.final_version }}"
411
+ echo "â€ĸ Version changed: ${{ steps.version-manager.outputs.version_changed }}"
334
412
  echo "â€ĸ Sync performed: ${{ steps.sync-check.outputs.should_sync }}"
335
413
  echo "â€ĸ Sync mode: ${{ steps.sync-check.outputs.sync_mode }}"
336
- echo "â€ĸ Publish performed: ${{ steps.publish-check.outputs.should_publish }}"
337
- echo "â€ĸ Publish reason: ${{ steps.publish-check.outputs.reason }}"
414
+ echo "â€ĸ Publish performed: ${{ steps.version-manager.outputs.should_publish }}"
415
+ echo "â€ĸ Publish reason: ${{ steps.version-manager.outputs.reason }}"
338
416
  echo "â€ĸ Build: ✅ Success"
339
417
  echo "â€ĸ Tests: ✅ Passed"
340
418
  echo "â€ĸ Security: ✅ Checked"
341
419
  echo "=================================="
342
420
 
343
421
  # Set workflow status
344
- if [ "${{ steps.publish-check.outputs.should_publish }}" = "true" ]; then
345
- echo "🚀 Package published successfully!"
422
+ if [ "${{ steps.version-manager.outputs.should_publish }}" = "true" ]; then
423
+ echo "🚀 Package published successfully as v${{ steps.version-manager.outputs.final_version }}!"
346
424
  else
347
- echo "đŸ“Ļ Package ready but not published (${{ steps.publish-check.outputs.reason }})"
348
- fi
425
+ echo "đŸ“Ļ Package ready but not published (${{ steps.version-manager.outputs.reason }})"
426
+ fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brave-real-launcher",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Launch Brave Browser with ease from node. Based on chrome-launcher with Brave-specific support.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",