From 01844550eef357e84eaf043e4318cc0b3822e4d3 Mon Sep 17 00:00:00 2001 From: fleet-release <80479975+fleet-release@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:21:34 -0500 Subject: [PATCH] Update Fleet-maintained apps (#48795) Automated ingestion of latest Fleet-maintained app data. Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com> --- ee/maintained-apps/outputs/8x8-work/darwin.json | 8 ++++---- ee/maintained-apps/outputs/8x8-work/windows.json | 8 ++++---- ee/maintained-apps/outputs/apidog/darwin.json | 8 ++++---- ee/maintained-apps/outputs/bettermouse/darwin.json | 4 ++-- ee/maintained-apps/outputs/clop/darwin.json | 8 ++++---- ee/maintained-apps/outputs/codexbar/darwin.json | 8 ++++---- ee/maintained-apps/outputs/cursor/darwin.json | 8 ++++---- ee/maintained-apps/outputs/docker-desktop/darwin.json | 8 ++++---- ee/maintained-apps/outputs/duckduckgo/darwin.json | 8 ++++---- ee/maintained-apps/outputs/enpass/darwin.json | 8 ++++---- ee/maintained-apps/outputs/ente-auth/darwin.json | 8 ++++---- ee/maintained-apps/outputs/kdenlive/darwin.json | 8 ++++---- ee/maintained-apps/outputs/lookaway/darwin.json | 8 ++++---- ee/maintained-apps/outputs/masscode/darwin.json | 8 ++++---- ee/maintained-apps/outputs/notepadexe/darwin.json | 8 ++++---- ee/maintained-apps/outputs/notesnook/darwin.json | 8 ++++---- ee/maintained-apps/outputs/notesnook/windows.json | 8 ++++---- ee/maintained-apps/outputs/novabench/darwin.json | 4 ++-- ee/maintained-apps/outputs/postman/darwin.json | 8 ++++---- ee/maintained-apps/outputs/rustdesk/darwin.json | 8 ++++---- ee/maintained-apps/outputs/screen-studio/darwin.json | 8 ++++---- ee/maintained-apps/outputs/spotify/darwin.json | 6 +++--- ee/maintained-apps/outputs/unity-hub/darwin.json | 4 ++-- ee/maintained-apps/outputs/wavebox/darwin.json | 8 ++++---- ee/maintained-apps/outputs/wechat/darwin.json | 8 ++++---- ee/maintained-apps/outputs/whatsapp/darwin.json | 4 ++-- 26 files changed, 95 insertions(+), 95 deletions(-) diff --git a/ee/maintained-apps/outputs/8x8-work/darwin.json b/ee/maintained-apps/outputs/8x8-work/darwin.json index 9455da8695..081ed70392 100644 --- a/ee/maintained-apps/outputs/8x8-work/darwin.json +++ b/ee/maintained-apps/outputs/8x8-work/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "8.34.1", + "version": "8.35.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.34.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.35.2') < 0);" }, - "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-arm64-dmg-v8.34.1-11.dmg", + "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-arm64-dmg-v8.35.2-6.dmg", "install_script_ref": "9a372acc", "uninstall_script_ref": "6eb42abf", - "sha256": "3f26bf3a07e83c0e8e0b303c66f1440dac8d902c78d846c8b7a50073f0485077", + "sha256": "24be6f8e2b864f4ca7b9acd661e81a4171278d86b8105f8ada0cc3221b28e87b", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/8x8-work/windows.json b/ee/maintained-apps/outputs/8x8-work/windows.json index 2b0c822caf..0623651eff 100644 --- a/ee/maintained-apps/outputs/8x8-work/windows.json +++ b/ee/maintained-apps/outputs/8x8-work/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "8.34.1", + "version": "8.35.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.34.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.35.2') < 0);" }, - "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-64-msi-v8.34.1-11.msi", + "installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-64-msi-v8.35.2-6.msi", "install_script_ref": "8959087b", "uninstall_script_ref": "3f17b97d", - "sha256": "a5b4ed9ef3e00a9e41a50654a9a01e6d83c7de28ed62f01ffab61f238454b469", + "sha256": "36da12afc9f6abaadefd3d7b75178d807e9f275ea29087e6775add5c180ac6ff", "default_categories": [ "Communication" ], diff --git a/ee/maintained-apps/outputs/apidog/darwin.json b/ee/maintained-apps/outputs/apidog/darwin.json index 1dc2335dba..a28669f570 100644 --- a/ee/maintained-apps/outputs/apidog/darwin.json +++ b/ee/maintained-apps/outputs/apidog/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.8.36", + "version": "2.8.37", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app' AND version_compare(bundle_short_version, '2.8.36') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.apidog.app' AND version_compare(bundle_short_version, '2.8.37') < 0);" }, - "installer_url": "https://file-assets.apidog.com/download/2.8.36/legacy-Apidog-macOS-arm64-2.8.36.dmg", + "installer_url": "https://file-assets.apidog.com/download/2.8.37/legacy-Apidog-macOS-arm64-2.8.37.dmg", "install_script_ref": "164bc8ef", "uninstall_script_ref": "b51190cf", - "sha256": "fb3e042923717afcb8ae5ddd698cfaaa3bbc38e5faf675f8f88ffe394badbb42", + "sha256": "751577934586b4fe5cc3a45f111049e99d2fb5eaf79a832b5e670d9d56a9f562", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/bettermouse/darwin.json b/ee/maintained-apps/outputs/bettermouse/darwin.json index 03e9c93bda..e5ab65c390 100644 --- a/ee/maintained-apps/outputs/bettermouse/darwin.json +++ b/ee/maintained-apps/outputs/bettermouse/darwin.json @@ -6,10 +6,10 @@ "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.naotanhaocan.BetterMouse';", "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.naotanhaocan.BetterMouse' AND version_compare(bundle_short_version, '1.6') < 0);" }, - "installer_url": "https://better-mouse.com/wp-content/uploads/BetterMouse.1.6.8882.zip", + "installer_url": "https://better-mouse.com/wp-content/uploads/BetterMouse.1.6.8888.zip", "install_script_ref": "f290e8e9", "uninstall_script_ref": "598ead04", - "sha256": "080d2101b357a9c0d1c7fd90acae990d5193bef8ca04f3d1eab4bde117962e15", + "sha256": "22449306ee4fbeb1398f919f98209ec5750739b2905542b2ed3484e756c51d3e", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/clop/darwin.json b/ee/maintained-apps/outputs/clop/darwin.json index 4551c584ca..1253d82e8f 100644 --- a/ee/maintained-apps/outputs/clop/darwin.json +++ b/ee/maintained-apps/outputs/clop/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.2.4b1", + "version": "3.2.4b2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.2.4b1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.2.4b2') < 0);" }, - "installer_url": "https://files.lowtechguys.com/releases/Clop-3.2.4b1.dmg", + "installer_url": "https://files.lowtechguys.com/releases/Clop-3.2.4b2.dmg", "install_script_ref": "76fb9b1b", "uninstall_script_ref": "3712ca1f", - "sha256": "42e212b47829aa84650a3db91b395086da0fc845f84930fc03d69ba81c4ca79a", + "sha256": "c4d976517043d71188f0c8a688de22ec2618ce1a918d480649a0787ed4fe33fc", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/codexbar/darwin.json b/ee/maintained-apps/outputs/codexbar/darwin.json index 601285a02e..06c5be5040 100644 --- a/ee/maintained-apps/outputs/codexbar/darwin.json +++ b/ee/maintained-apps/outputs/codexbar/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.39.0", + "version": "0.40.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar' AND version_compare(bundle_short_version, '0.39.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.steipete.codexbar' AND version_compare(bundle_short_version, '0.40.0') < 0);" }, - "installer_url": "https://github.com/steipete/CodexBar/releases/download/v0.39.0/CodexBar-macos-universal-0.39.0.zip", + "installer_url": "https://github.com/steipete/CodexBar/releases/download/v0.40.0/CodexBar-macos-universal-0.40.0.zip", "install_script_ref": "aea54a4e", "uninstall_script_ref": "efcab822", - "sha256": "f7d3046b1a538dfc1023e8cba251e76801e5c0cf5ca1eadbf4daceee59b12623", + "sha256": "f1c908d932c8a60e229474b54833ed6e71bfeccba371b365ee9b04331a6f9075", "default_categories": [ "Utilities" ] diff --git a/ee/maintained-apps/outputs/cursor/darwin.json b/ee/maintained-apps/outputs/cursor/darwin.json index 5ccb628e03..981ee41524 100644 --- a/ee/maintained-apps/outputs/cursor/darwin.json +++ b/ee/maintained-apps/outputs/cursor/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.9.16", + "version": "3.10.11", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.9.16') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.10.11') < 0);" }, - "installer_url": "https://downloads.cursor.com/production/042b3c1a4c53f2c3808067f519fbfc67b72cad8b/darwin/arm64/Cursor-darwin-arm64.zip", + "installer_url": "https://downloads.cursor.com/production/4ef9fe3d055f8c4523179a090f14eb835bc3c94e/darwin/arm64/Cursor-darwin-arm64.zip", "install_script_ref": "5147ff0b", "uninstall_script_ref": "9d80ae1c", - "sha256": "83d8de4cf35339404cdf00b69d5e46a1a3c0deb396c784f76abd7ab08e3db1fd", + "sha256": "03337271ef9ea01669add55893871e9659a84d5f1d0cbfe09b0c9484b4e5a115", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/docker-desktop/darwin.json b/ee/maintained-apps/outputs/docker-desktop/darwin.json index 444dadfeca..e2473dfd34 100644 --- a/ee/maintained-apps/outputs/docker-desktop/darwin.json +++ b/ee/maintained-apps/outputs/docker-desktop/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "4.80.0", + "version": "4.81.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop' AND path NOT LIKE '%.back' AND version_compare(bundle_short_version, '4.80.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dockerdesktop' AND path NOT LIKE '%.back' AND version_compare(bundle_short_version, '4.81.0') < 0);" }, - "installer_url": "https://desktop.docker.com/mac/main/arm64/232116/Docker.dmg", + "installer_url": "https://desktop.docker.com/mac/main/arm64/232925/Docker.dmg", "install_script_ref": "2c3a200a", "uninstall_script_ref": "4f0d2974", - "sha256": "41d0e5c61327a877f229a1e1158d056d37f003902189fd5e0ba8629619c1819f", + "sha256": "a35a0b14fbf182fb2ef9f8e650ace9a8ebcc81ad4872d51bccc4496f5cdb0158", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/duckduckgo/darwin.json b/ee/maintained-apps/outputs/duckduckgo/darwin.json index ea76257a36..6bb93ab42d 100644 --- a/ee/maintained-apps/outputs/duckduckgo/darwin.json +++ b/ee/maintained-apps/outputs/duckduckgo/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.196.0", + "version": "1.197.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser' AND version_compare(bundle_short_version, '1.196.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.duckduckgo.macos.browser' AND version_compare(bundle_short_version, '1.197.0') < 0);" }, - "installer_url": "https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo-1.196.0.751.dmg", + "installer_url": "https://staticcdn.duckduckgo.com/macos-desktop-browser/duckduckgo-1.197.0.754.dmg", "install_script_ref": "c6bf9cce", "uninstall_script_ref": "b6f097db", - "sha256": "4960923e78442485f18b57642406b4ad137b21c2fd15dacb7e3f198cd3704ca2", + "sha256": "50c440046e052fa875fc436d4f18c27a68227527d3bcda63337a30f181bcdc74", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/enpass/darwin.json b/ee/maintained-apps/outputs/enpass/darwin.json index b87c8ddd6f..bb0c1bc14f 100644 --- a/ee/maintained-apps/outputs/enpass/darwin.json +++ b/ee/maintained-apps/outputs/enpass/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "6.12.3.2597", + "version": "6.12.4.2629", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop' AND version_compare(bundle_short_version, '6.12.3.2597') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'in.sinew.Enpass-Desktop' AND version_compare(bundle_short_version, '6.12.4.2629') < 0);" }, - "installer_url": "https://dl.enpass.io/stable/mac/package/6.12.3.2597/Enpass.pkg", + "installer_url": "https://dl.enpass.io/stable/mac/package/6.12.4.2629/Enpass.pkg", "install_script_ref": "fc5573f6", "uninstall_script_ref": "30b298ce", - "sha256": "c17b6665ba84cb66d0d0547de8eeb3047ab937602d021262dcebe4fa5f507b63", + "sha256": "63488dda6eed92a3e58f40b6aac2151e659ecb26672c51518b195805ef4bacc1", "default_categories": [ "Security" ] diff --git a/ee/maintained-apps/outputs/ente-auth/darwin.json b/ee/maintained-apps/outputs/ente-auth/darwin.json index c8db1e019b..c27470e7b0 100644 --- a/ee/maintained-apps/outputs/ente-auth/darwin.json +++ b/ee/maintained-apps/outputs/ente-auth/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "4.4.23", + "version": "4.4.24", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac' AND version_compare(bundle_short_version, '4.4.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.ente.auth.mac' AND version_compare(bundle_short_version, '4.4.24') < 0);" }, - "installer_url": "https://github.com/ente-io/ente/releases/download/auth-v4.4.23/ente-auth-v4.4.23.dmg", + "installer_url": "https://github.com/ente-io/ente/releases/download/auth-v4.4.24/ente-auth-v4.4.24.dmg", "install_script_ref": "ffb611f2", "uninstall_script_ref": "9563d919", - "sha256": "ffb4cde8f784415cfe8b428e5b73584e5dd82ee82bba42c4f2d9366257b642cc", + "sha256": "8770d318a3813b09dcb88b01a82b13c50401ea0ad3a466ccc7ebeb6e86352cb3", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/kdenlive/darwin.json b/ee/maintained-apps/outputs/kdenlive/darwin.json index e4ee720b6b..a4a6af9086 100644 --- a/ee/maintained-apps/outputs/kdenlive/darwin.json +++ b/ee/maintained-apps/outputs/kdenlive/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "26.04.2", + "version": "26.04.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive' AND version_compare(bundle_short_version, '26.04.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.kde.Kdenlive' AND version_compare(bundle_short_version, '26.04.3') < 0);" }, - "installer_url": "https://cdn.download.kde.org/stable/kdenlive/26.04/macOS/kdenlive-26.04.2-arm64.dmg", + "installer_url": "https://cdn.download.kde.org/stable/kdenlive/26.04/macOS/kdenlive-26.04.3-arm64.dmg", "install_script_ref": "bc830162", "uninstall_script_ref": "a2f49d83", - "sha256": "56ba17fafc8176e8176bdd5f612618f71f8110c935c200d349df8bcb9acd233d", + "sha256": "ea82cd8b81789455c987d9fb0d47ab47fe9495a632bb2d495c31b27e19992802", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/lookaway/darwin.json b/ee/maintained-apps/outputs/lookaway/darwin.json index 454fab866e..915e522730 100644 --- a/ee/maintained-apps/outputs/lookaway/darwin.json +++ b/ee/maintained-apps/outputs/lookaway/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.2.3", + "version": "2.2.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.2.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.2.4') < 0);" }, - "installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.2.3/LookAway.dmg", + "installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.2.4/LookAway.dmg", "install_script_ref": "8e23d582", "uninstall_script_ref": "edb6da69", - "sha256": "cdb5106d5faecb4fec403582ab8a9871f038b9fe3bfaab8333c8406ad4b08cda", + "sha256": "9cc973a169b6eb88e595da845d2b8c9380fef63c6caee0e06f9829fcae0d51a9", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/masscode/darwin.json b/ee/maintained-apps/outputs/masscode/darwin.json index fc3aceedda..1faf0f5bec 100644 --- a/ee/maintained-apps/outputs/masscode/darwin.json +++ b/ee/maintained-apps/outputs/masscode/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "5.7.0", + "version": "5.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app' AND version_compare(bundle_short_version, '5.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app' AND version_compare(bundle_short_version, '5.8.0') < 0);" }, - "installer_url": "https://github.com/massCodeIO/massCode/releases/download/v5.7.0/massCode-5.7.0-arm64.dmg", + "installer_url": "https://github.com/massCodeIO/massCode/releases/download/v5.8.0/massCode-5.8.0-arm64.dmg", "install_script_ref": "0a664ca4", "uninstall_script_ref": "39171b71", - "sha256": "30f52296af5a5e42db96531090ca768f3b5fbea8b8e3ee723b730846800b729a", + "sha256": "f699b7b4d66f0c649591e86983a9675a7af4504e6166f09b8925d781829346a1", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/notepadexe/darwin.json b/ee/maintained-apps/outputs/notepadexe/darwin.json index 7fa7c72c1f..7bcdbb4a92 100644 --- a/ee/maintained-apps/outputs/notepadexe/darwin.json +++ b/ee/maintained-apps/outputs/notepadexe/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.4.1903", + "version": "1.4.1916", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.4.1903') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.4.1916') < 0);" }, - "installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.4.1903/Notepad.zip", + "installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.4.1916/Notepad.zip", "install_script_ref": "17716d6a", "uninstall_script_ref": "abe56690", - "sha256": "0e6670cef59dcd74108879c59d7e1f5874bbafb21ffb7ae7ff8a05490aebe43e", + "sha256": "aa2add695001b0d0ed1f4b85855b9baa1f695a30b1ca3ee1b44e47a70f33981f", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/notesnook/darwin.json b/ee/maintained-apps/outputs/notesnook/darwin.json index 28a9ade714..abd9cfbd0d 100644 --- a/ee/maintained-apps/outputs/notesnook/darwin.json +++ b/ee/maintained-apps/outputs/notesnook/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.4.2", + "version": "3.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook' AND version_compare(bundle_short_version, '3.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.streetwriters.notesnook' AND version_compare(bundle_short_version, '3.4.3') < 0);" }, - "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.2/notesnook_mac_arm64.dmg", + "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.3/notesnook_mac_arm64.dmg", "install_script_ref": "458f8fba", "uninstall_script_ref": "181a288a", - "sha256": "300a9e515ab2dcc21ccc1033ec37a4d677892662c205625ce1e98a1dfa99ccf9", + "sha256": "b20a57f06475fc6e7e1aeff24add994991729521aaad10259d47ca8b99cda077", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/notesnook/windows.json b/ee/maintained-apps/outputs/notesnook/windows.json index 70f03b4d51..7564a5d9fc 100644 --- a/ee/maintained-apps/outputs/notesnook/windows.json +++ b/ee/maintained-apps/outputs/notesnook/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.4.2", + "version": "3.4.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters' AND version_compare(version, '3.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters' AND version_compare(version, '3.4.3') < 0);" }, - "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.2/notesnook_win_x64.exe", + "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.3/notesnook_win_x64.exe", "install_script_ref": "fae91a29", "uninstall_script_ref": "83cee2d6", - "sha256": "ce4013647c105f9a7a9cb47c7d4d266a05cb9459e962bb5e9f8d11abeec0c542", + "sha256": "28a97af1e2df6db7a97767d5717752098a668a28033d3bcb8d3fe3c4ab0d5b90", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/novabench/darwin.json b/ee/maintained-apps/outputs/novabench/darwin.json index 7647130d2b..48cd83c5d8 100644 --- a/ee/maintained-apps/outputs/novabench/darwin.json +++ b/ee/maintained-apps/outputs/novabench/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "6.1.1", + "version": "6.1.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client' AND version_compare(bundle_short_version, '6.1.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.novabench.client' AND version_compare(bundle_short_version, '6.1.2') < 0);" }, "installer_url": "https://novabench.com/files/novabench.dmg", "install_script_ref": "02eaf90e", diff --git a/ee/maintained-apps/outputs/postman/darwin.json b/ee/maintained-apps/outputs/postman/darwin.json index b7e641a82b..b529dc4adf 100644 --- a/ee/maintained-apps/outputs/postman/darwin.json +++ b/ee/maintained-apps/outputs/postman/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "12.17.3", + "version": "12.18.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.17.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.18.0') < 0);" }, - "installer_url": "https://dl.pstmn.io/download/version/12.17.3/osx_arm64", + "installer_url": "https://dl.pstmn.io/download/version/12.18.0/osx_arm64", "install_script_ref": "96d73870", "uninstall_script_ref": "966b2fa5", - "sha256": "772c120afd7bac082ac38037db355987dda2f441ac64b1902beea801558c9946", + "sha256": "80428dc2b1cdc7e83b9b0b15f8f010726d3bbe6b5901386aeca9deb370077670", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/rustdesk/darwin.json b/ee/maintained-apps/outputs/rustdesk/darwin.json index 5d8056c096..42473ab4a6 100644 --- a/ee/maintained-apps/outputs/rustdesk/darwin.json +++ b/ee/maintained-apps/outputs/rustdesk/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.4.8", + "version": "1.4.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk' AND version_compare(bundle_short_version, '1.4.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.carriez.rustdesk' AND version_compare(bundle_short_version, '1.4.9') < 0);" }, - "installer_url": "https://github.com/rustdesk/rustdesk/releases/download/1.4.8/rustdesk-1.4.8-aarch64.dmg", + "installer_url": "https://github.com/rustdesk/rustdesk/releases/download/1.4.9/rustdesk-1.4.9-aarch64.dmg", "install_script_ref": "030ba817", "uninstall_script_ref": "3d6da5bf", - "sha256": "7f8acfb0dcab21d4c8fe570902be70a02ed0db007daa5ebfe1e0119487a5fc17", + "sha256": "f7935597b247d42c8f2a2ed71176a9f5868018cd9e1a33b8096418a668c8caf0", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/screen-studio/darwin.json b/ee/maintained-apps/outputs/screen-studio/darwin.json index 3c505a6ac2..80094f9d97 100644 --- a/ee/maintained-apps/outputs/screen-studio/darwin.json +++ b/ee/maintained-apps/outputs/screen-studio/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.7.2-4445", + "version": "3.7.3-4475", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio' AND version_compare(bundle_short_version, '3.7.2-4445') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.timpler.screenstudio' AND version_compare(bundle_short_version, '3.7.3-4475') < 0);" }, - "installer_url": "https://screenstudioassets.com/releases/3.7.2-4445/Screen%20Studio-3.7.2-4445-arm64-mac.zip", + "installer_url": "https://screenstudioassets.com/releases/3.7.3-4475/Screen%20Studio-3.7.3-4475-arm64-mac.zip", "install_script_ref": "d312fd68", "uninstall_script_ref": "2d679c2a", - "sha256": "6680221af056dc6dd9afb6d3162c94fe7b0238824775e04bf42a45e13634906d", + "sha256": "ddbe1f8967d04d00f4b8131aa82c11df680461ba1f3681e0fb140696d67d7dfc", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/spotify/darwin.json b/ee/maintained-apps/outputs/spotify/darwin.json index a2d9730bbc..64643d5900 100644 --- a/ee/maintained-apps/outputs/spotify/darwin.json +++ b/ee/maintained-apps/outputs/spotify/darwin.json @@ -8,7 +8,7 @@ }, "installer_url": "https://download.scdn.co/SpotifyARM64.dmg", "install_script_ref": "0ddf928e", - "uninstall_script_ref": "0b3c1eeb", + "uninstall_script_ref": "f2b28de9", "sha256": "no_check", "default_categories": [ "Productivity" @@ -16,7 +16,7 @@ } ], "refs": { - "0b3c1eeb": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service '*.spotify.client.*'\nremove_launchctl_service 'com.spotify.client.startuphelper'\nremove_launchctl_service 'com.spotify.webhelper'\nquit_application 'com.spotify.client'\nsudo rm -rf \"$APPDIR/Spotify.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.spotify.client.startuphelper.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Spotify'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.spotify.client'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.spotify.client.helper'\ntrash $LOGGED_IN_USER '~/Library/Cookies/com.spotify.client.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.spotify.client'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.spotify.client.helper'\ntrash $LOGGED_IN_USER '~/Library/Logs/Spotify'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.spotify.client.helper.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.spotify.client.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.spotify.client.savedState'\n", - "0ddf928e": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# copy to the applications folder\nquit_and_track_application 'com.spotify.client'\nif [ -d \"$APPDIR/Spotify.app\" ]; then\n\tsudo mv \"$APPDIR/Spotify.app\" \"$TMPDIR/Spotify.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Spotify.app\" \"$APPDIR\"\nrelaunch_application 'com.spotify.client'\n" + "0ddf928e": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n# copy to the applications folder\nquit_and_track_application 'com.spotify.client'\nif [ -d \"$APPDIR/Spotify.app\" ]; then\n\tsudo mv \"$APPDIR/Spotify.app\" \"$TMPDIR/Spotify.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Spotify.app\" \"$APPDIR\"\nrelaunch_application 'com.spotify.client'\n", + "f2b28de9": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n # A wildcard label can't be used with launchctl or as a plist name, so expand\n # it to the labels of currently loaded services that match the pattern.\n local services=(\"$service\")\n if [[ \"$service\" == *\"*\"* ]]; then\n local regex\n # Escape regex metacharacters, turn '*' into '.*', and anchor the pattern so\n # it matches a full label rather than a substring.\n regex=$(printf '%s' \"$service\" | sed -e 's/[][(){}.^$+?|\\\\]/\\\\&/g' -e 's/\\*/.*/g')\n regex=\"^${regex}$\"\n services=()\n local id\n # Match every loaded job by label regardless of PID; launchctl list reports\n # loaded-but-not-running jobs with a \"-\" in the PID column.\n while read -r _ _ id; do\n [[ \"$id\" =~ $regex ]] && services+=(\"$id\")\n done < <(launchctl list 2>/dev/null | tail -n +2)\n if [[ ${#services[@]} -eq 0 ]]; then\n echo \"No loaded launchctl service matches ${service}\"\n return\n fi\n fi\n\n local service_label\n for service_label in \"${services[@]}\"; do\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service_label}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service_label}\"\n else\n launchctl remove \"${service_label}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service_label}.plist\"\n \"/Library/LaunchDaemons/${service_label}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n done\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service '*.spotify.client.*'\nremove_launchctl_service 'com.spotify.client.startuphelper'\nremove_launchctl_service 'com.spotify.webhelper'\nquit_application 'com.spotify.client'\nsudo rm -rf \"$APPDIR/Spotify.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.spotify.client.startuphelper.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Spotify'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.spotify.client'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.spotify.client.helper'\ntrash $LOGGED_IN_USER '~/Library/Cookies/com.spotify.client.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.spotify.client'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.spotify.client.helper'\ntrash $LOGGED_IN_USER '~/Library/Logs/Spotify'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.spotify.client.helper.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.spotify.client.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.spotify.client.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.spotify.client'\n" } } diff --git a/ee/maintained-apps/outputs/unity-hub/darwin.json b/ee/maintained-apps/outputs/unity-hub/darwin.json index 7863c0708b..278ab15164 100644 --- a/ee/maintained-apps/outputs/unity-hub/darwin.json +++ b/ee/maintained-apps/outputs/unity-hub/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "3.19.2", + "version": "3.19.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub' AND version_compare(bundle_short_version, '3.19.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub' AND version_compare(bundle_short_version, '3.19.3') < 0);" }, "installer_url": "https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup-arm64.dmg", "install_script_ref": "c26804cb", diff --git a/ee/maintained-apps/outputs/wavebox/darwin.json b/ee/maintained-apps/outputs/wavebox/darwin.json index 736c4481bf..5198949b15 100644 --- a/ee/maintained-apps/outputs/wavebox/darwin.json +++ b/ee/maintained-apps/outputs/wavebox/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "149.2.103.2", + "version": "150.2.117.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '149.2.103.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '150.2.117.2') < 0);" }, - "installer_url": "https://download.wavebox.app/stable/macarm64/Wavebox_149.2.103.2.zip", + "installer_url": "https://download.wavebox.app/stable/macarm64/Wavebox_150.2.117.2.zip", "install_script_ref": "60a16753", "uninstall_script_ref": "ecfbed36", - "sha256": "5dfb4f0159e7b62fc550ed15f0d3e548adf0e71fefc0694166d0d50771c1e951", + "sha256": "37d4e78042bfadef684884442e0bf789ebda6571bcf14c9f513c5f398ac8f9ff", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/wechat/darwin.json b/ee/maintained-apps/outputs/wechat/darwin.json index 39dc930d34..ab55daf4d9 100644 --- a/ee/maintained-apps/outputs/wechat/darwin.json +++ b/ee/maintained-apps/outputs/wechat/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "4.1.11.23", + "version": "4.1.11.51", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat' AND version_compare(bundle_short_version, '4.1.11.23') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tencent.xinWeChat' AND version_compare(bundle_short_version, '4.1.11.51') < 0);" }, - "installer_url": "https://dldir1.qq.com/weixin/Universal/Mac/xWeChatMac_universal_4.1.11.23_40493.dmg", + "installer_url": "https://dldir1.qq.com/weixin/Universal/Mac/xWeChatMac_universal_4.1.11.51_41725.dmg", "install_script_ref": "57f30b74", "uninstall_script_ref": "18d6be1e", - "sha256": "ebda8533ec85c9f92741d1178ac197efbec9856cae056842e7521b2bf6685e62", + "sha256": "aaf6bd3cf6ffc12fddd73ce2d36cfcf82278997a2b09bad3d3b43a365f60a8e6", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/whatsapp/darwin.json b/ee/maintained-apps/outputs/whatsapp/darwin.json index fc76794cf5..4ab6f1fd86 100644 --- a/ee/maintained-apps/outputs/whatsapp/darwin.json +++ b/ee/maintained-apps/outputs/whatsapp/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "26.26.19", + "version": "26.27.12", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.26.19') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.27.12') < 0);" }, "installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?configuration=Release&src=whatsapp_downloads_page", "install_script_ref": "157dabb3",