From 978e01cfd9bd6bd5cf46ed8050f89d9dac7b71bb Mon Sep 17 00:00:00 2001 From: allenhouchins <32207388+allenhouchins@users.noreply.github.com> Date: Fri, 7 Aug 2026 12:19:50 +0000 Subject: [PATCH 1/4] Update Fleet-maintained apps. Generated automatically with cmd/maintained-apps. --- ee/maintained-apps/outputs/alt-tab/darwin.json | 8 ++++---- ee/maintained-apps/outputs/amadine/darwin.json | 4 ++-- ee/maintained-apps/outputs/arc/darwin.json | 8 ++++---- ee/maintained-apps/outputs/badgeify/darwin.json | 8 ++++---- .../outputs/beekeeper-studio/windows.json | 8 ++++---- .../outputs/brave-browser/windows.json | 8 ++++---- ee/maintained-apps/outputs/burp-suite/darwin.json | 8 ++++---- ee/maintained-apps/outputs/calibre/darwin.json | 8 ++++---- ee/maintained-apps/outputs/calibre/windows.json | 8 ++++---- ee/maintained-apps/outputs/capcut/darwin.json | 8 ++++---- ee/maintained-apps/outputs/chatbox/windows.json | 8 ++++---- ee/maintained-apps/outputs/chatgpt/darwin.json | 8 ++++---- .../outputs/cherry-studio/darwin.json | 8 ++++---- ee/maintained-apps/outputs/claude/darwin.json | 8 ++++---- ee/maintained-apps/outputs/cmake-app/windows.json | 8 ++++---- ee/maintained-apps/outputs/codexbar/darwin.json | 8 ++++---- ee/maintained-apps/outputs/coteditor/darwin.json | 8 ++++---- ee/maintained-apps/outputs/cursor/darwin.json | 8 ++++---- ee/maintained-apps/outputs/dataflare/darwin.json | 8 ++++---- ee/maintained-apps/outputs/dataflare/windows.json | 8 ++++---- ee/maintained-apps/outputs/datagrip/darwin.json | 8 ++++---- ee/maintained-apps/outputs/deezer/darwin.json | 8 ++++---- ee/maintained-apps/outputs/downie/darwin.json | 4 ++-- ee/maintained-apps/outputs/drofus/windows.json | 8 ++++---- ee/maintained-apps/outputs/elevate-uc/windows.json | 4 ++-- ee/maintained-apps/outputs/evernote/windows.json | 8 ++++---- ee/maintained-apps/outputs/fellow/windows.json | 8 ++++---- .../outputs/firefox@nightly/darwin.json | 6 +++--- ee/maintained-apps/outputs/framer/darwin.json | 8 ++++---- ee/maintained-apps/outputs/gitkraken/windows.json | 8 ++++---- ee/maintained-apps/outputs/gog-galaxy/darwin.json | 12 ++++++------ .../outputs/google-chrome/darwin.json | 4 ++-- ee/maintained-apps/outputs/granola/darwin.json | 8 ++++---- .../outputs/ibm-semeru-jre-11/windows.json | 8 ++++---- ee/maintained-apps/outputs/imageglass/windows.json | 8 ++++---- ee/maintained-apps/outputs/kiro-cli/darwin.json | 8 ++++---- ee/maintained-apps/outputs/kiro/darwin.json | 8 ++++---- ee/maintained-apps/outputs/kiro/windows.json | 8 ++++---- ee/maintained-apps/outputs/krita/darwin.json | 4 ++-- ee/maintained-apps/outputs/loom/darwin.json | 8 ++++---- ee/maintained-apps/outputs/loom/windows.json | 8 ++++---- ee/maintained-apps/outputs/marked-app/darwin.json | 8 ++++---- ee/maintained-apps/outputs/masscode/darwin.json | 8 ++++---- ee/maintained-apps/outputs/melodics/darwin.json | 8 ++++---- .../outputs/microsoft-edge/darwin.json | 8 ++++---- .../outputs/mongodb-compass/windows.json | 8 ++++---- ee/maintained-apps/outputs/nordpass/darwin.json | 4 ++-- ee/maintained-apps/outputs/nordpass/windows.json | 6 +++--- ee/maintained-apps/outputs/notesnook/windows.json | 8 ++++---- ee/maintained-apps/outputs/nova/darwin.json | 8 ++++---- ee/maintained-apps/outputs/onedrive/windows.json | 8 ++++---- .../outputs/opencode-desktop/darwin.json | 8 ++++---- ee/maintained-apps/outputs/opera/darwin.json | 4 ++-- ee/maintained-apps/outputs/orbstack/darwin.json | 8 ++++---- ee/maintained-apps/outputs/p4v/darwin.json | 2 +- ee/maintained-apps/outputs/p4v/windows.json | 6 +++--- ee/maintained-apps/outputs/pale-moon/windows.json | 8 ++++---- ee/maintained-apps/outputs/parallels/darwin.json | 8 ++++---- ee/maintained-apps/outputs/postman/darwin.json | 8 ++++---- ee/maintained-apps/outputs/postman/windows.json | 8 ++++---- ee/maintained-apps/outputs/powerphotos/darwin.json | 4 ++-- .../outputs/prisma-browser/darwin.json | 8 ++++---- .../outputs/prisma-browser/windows.json | 8 ++++---- .../outputs/proton-drive/darwin.json | 14 +++++++------- ee/maintained-apps/outputs/rider/windows.json | 8 ++++---- ee/maintained-apps/outputs/rive/darwin.json | 8 ++++---- ee/maintained-apps/outputs/rustrover/darwin.json | 8 ++++---- ee/maintained-apps/outputs/rustrover/windows.json | 8 ++++---- ee/maintained-apps/outputs/shapr3d/darwin.json | 8 ++++---- ee/maintained-apps/outputs/spokenly/darwin.json | 8 ++++---- ee/maintained-apps/outputs/spotify/darwin.json | 4 ++-- ee/maintained-apps/outputs/spyder/windows.json | 8 ++++---- .../outputs/superwhisper/darwin.json | 8 ++++---- ee/maintained-apps/outputs/sync/darwin.json | 8 ++++---- ee/maintained-apps/outputs/telegram/windows.json | 8 ++++---- ee/maintained-apps/outputs/viscosity/darwin.json | 8 ++++---- ee/maintained-apps/outputs/viscosity/windows.json | 8 ++++---- ee/maintained-apps/outputs/webex/darwin.json | 4 ++-- ee/maintained-apps/outputs/whatsapp/darwin.json | 4 ++-- .../outputs/windows-app/windows.json | 8 ++++---- ee/maintained-apps/outputs/wispr-flow/darwin.json | 8 ++++---- ee/maintained-apps/outputs/workflowy/darwin.json | 8 ++++---- ee/maintained-apps/outputs/xnconvert/windows.json | 8 ++++---- ee/maintained-apps/outputs/zen/darwin.json | 8 ++++---- 84 files changed, 313 insertions(+), 313 deletions(-) diff --git a/ee/maintained-apps/outputs/alt-tab/darwin.json b/ee/maintained-apps/outputs/alt-tab/darwin.json index ae02cfea67a..9e270627c38 100644 --- a/ee/maintained-apps/outputs/alt-tab/darwin.json +++ b/ee/maintained-apps/outputs/alt-tab/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "11.4.3", + "version": "11.4.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lwouis.alt-tab-macos' AND version_compare(bundle_short_version, '11.4.4') < 0);" }, - "installer_url": "https://github.com/lwouis/alt-tab-macos/releases/download/v11.4.3/AltTab-11.4.3.zip", + "installer_url": "https://github.com/lwouis/alt-tab-macos/releases/download/v11.4.4/AltTab-11.4.4.zip", "install_script_ref": "ec488fa7", "uninstall_script_ref": "2cc2914b", - "sha256": "f6471d3cfc3ca70986ab55fe2dd334da5ad629d517eaf8eb3449fc0e7123eddd", + "sha256": "83e2254169c7b3308b7b4f9ff31b376df436e0dde0fa8d2fb484b5cf2fe4a507", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/amadine/darwin.json b/ee/maintained-apps/outputs/amadine/darwin.json index 4c9afa5a7df..9468db572c1 100644 --- a/ee/maintained-apps/outputs/amadine/darwin.json +++ b/ee/maintained-apps/outputs/amadine/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "1.8.3", + "version": "1.8.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.belightsoft.Amadine' AND version_compare(bundle_short_version, '1.8.4') < 0);" }, "installer_url": "https://belightsoft.s3.amazonaws.com/Amadine.dmg", "install_script_ref": "6a5b1e85", diff --git a/ee/maintained-apps/outputs/arc/darwin.json b/ee/maintained-apps/outputs/arc/darwin.json index 4b7471a962d..b1dc1bd9a1f 100644 --- a/ee/maintained-apps/outputs/arc/darwin.json +++ b/ee/maintained-apps/outputs/arc/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.158.1", + "version": "1.159.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.158.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.159.0') < 0);" }, - "installer_url": "https://releases.arc.net/release/Arc-1.158.1-84367.zip", + "installer_url": "https://releases.arc.net/release/Arc-1.159.0-84639.zip", "install_script_ref": "cbf109ae", "uninstall_script_ref": "a19b04fa", - "sha256": "be7330c46a541676f82326cfb896534a40c37f5384c1bc33bf0cb90ddd205ab5", + "sha256": "989037d63b91c869157f85ad10dfbe9634ae6ccd59cc7663b7e0485b3cff9ba8", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/badgeify/darwin.json b/ee/maintained-apps/outputs/badgeify/darwin.json index 37f83a3ce5c..79433f3e1bb 100644 --- a/ee/maintained-apps/outputs/badgeify/darwin.json +++ b/ee/maintained-apps/outputs/badgeify/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.14.3", + "version": "1.14.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'studio.techflow.badgeify' AND version_compare(bundle_short_version, '1.14.4') < 0);" }, - "installer_url": "https://api.badgeify.app/release/download/darwin/universal/1.14.3", + "installer_url": "https://api.badgeify.app/release/download/darwin/universal/1.14.4", "install_script_ref": "cdee59cc", "uninstall_script_ref": "9d0f29ae", - "sha256": "cdec814a6e868a6dfbe294f762eee2d443669574aeaf9ee7e260af98cc104fbb", + "sha256": "161b2eb84475161a23b8a4d189f84e71c24c7cc993479e665b53c0397985c75d", "default_categories": [ "Utilities" ] diff --git a/ee/maintained-apps/outputs/beekeeper-studio/windows.json b/ee/maintained-apps/outputs/beekeeper-studio/windows.json index 9a882f05040..38faed4df39 100644 --- a/ee/maintained-apps/outputs/beekeeper-studio/windows.json +++ b/ee/maintained-apps/outputs/beekeeper-studio/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "5.9.2", + "version": "5.9.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Beekeeper Studio' AND publisher = 'Beekeeper Studio Team' AND version_compare(version, '5.9.3') < 0);" }, - "installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.2/Beekeeper-Studio-Setup-5.9.2.exe", + "installer_url": "https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v5.9.3/Beekeeper-Studio-Setup-5.9.3.exe", "install_script_ref": "13334753", "uninstall_script_ref": "44e6f772", - "sha256": "b0df0fb81ba4615373b484b77338913c47682f3f78f35806162f9ecd16ec638d", + "sha256": "7627dde785d05ef4c20bacf6d2c3a88fcbeb6d30f8bfde344ab09aaecfe15c4e", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/brave-browser/windows.json b/ee/maintained-apps/outputs/brave-browser/windows.json index f9b8c8947d0..f45cdf8302a 100644 --- a/ee/maintained-apps/outputs/brave-browser/windows.json +++ b/ee/maintained-apps/outputs/brave-browser/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "151.1.93.129", + "version": "151.1.93.132", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.129') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '151.1.93.132') < 0);" }, - "installer_url": "https://github.com/brave/brave-browser/releases/download/v1.93.129/BraveBrowserStandaloneSilentSetup.exe", + "installer_url": "https://github.com/brave/brave-browser/releases/download/v1.93.132/BraveBrowserStandaloneSilentSetup.exe", "install_script_ref": "9a0c2b15", "uninstall_script_ref": "30c77f69", - "sha256": "e343f5716621b98267b7991004f822661fda3297e7a05b308ec603fb279fdb61", + "sha256": "a5dd2df003548bf95711a85bc8be7bec39a44ad80440915f2c2073748f3b05e8", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/burp-suite/darwin.json b/ee/maintained-apps/outputs/burp-suite/darwin.json index 06914ea037a..ab1342dffea 100644 --- a/ee/maintained-apps/outputs/burp-suite/darwin.json +++ b/ee/maintained-apps/outputs/burp-suite/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.7.2", + "version": "2026.7.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.install4j.9806-1938-4586-6531.70' AND version_compare(bundle_short_version, '2026.7.3') < 0);" }, - "installer_url": "https://portswigger-cdn.net/burp/releases/download?product=desktop&version=2026.7.2&type=MacOsArm64", + "installer_url": "https://portswigger-cdn.net/burp/releases/download?product=desktop&version=2026.7.3&type=MacOsArm64", "install_script_ref": "1cdedd7f", "uninstall_script_ref": "6916a6a5", - "sha256": "3740b9af5c08a57ee10134dc963cb14005300003cfe87a15a396bc9027f45086", + "sha256": "fa2702f50dd6f68faaa2e288cf2b5334c193c177925c8a96ffe6d7f8c958fac6", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/calibre/darwin.json b/ee/maintained-apps/outputs/calibre/darwin.json index 6161e3cfec8..07593b4e93a 100644 --- a/ee/maintained-apps/outputs/calibre/darwin.json +++ b/ee/maintained-apps/outputs/calibre/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "9.12.0", + "version": "9.13.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.13.0') < 0);" }, - "installer_url": "https://download.calibre-ebook.com/9.12.0/calibre-9.12.0.dmg", + "installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-9.13.0.dmg", "install_script_ref": "099b9491", "uninstall_script_ref": "1945fe9a", - "sha256": "9bf73b38ecf46e064b068c89047e6d55c827458a1db20d7c90dc435db4b1783a", + "sha256": "001be6ed70d8acfd793fa7d8c95ea50045abedaf0e756b20e564275a0b0a7667", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/calibre/windows.json b/ee/maintained-apps/outputs/calibre/windows.json index 515d9e4d19b..1ea7f02717d 100644 --- a/ee/maintained-apps/outputs/calibre/windows.json +++ b/ee/maintained-apps/outputs/calibre/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "9.12.0", + "version": "9.13.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'calibre %' AND publisher = 'Kovid Goyal' AND version_compare(version, '9.13.0') < 0);" }, - "installer_url": "https://download.calibre-ebook.com/9.12.0/calibre-64bit-9.12.0.msi", + "installer_url": "https://download.calibre-ebook.com/9.13.0/calibre-64bit-9.13.0.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "3ae8dcd8", - "sha256": "f6456073bfcf37adf6302fb4149fa8b4d798d411bc0dafd99cb629a5006dcfa6", + "sha256": "f5f19e870163c20ec63a656d6f5d0c123e07c4254899380ebeec51b00766e615", "default_categories": [ "Productivity" ], diff --git a/ee/maintained-apps/outputs/capcut/darwin.json b/ee/maintained-apps/outputs/capcut/darwin.json index 10bb54215e0..8ab851f81b3 100644 --- a/ee/maintained-apps/outputs/capcut/darwin.json +++ b/ee/maintained-apps/outputs/capcut/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "9.1.0.4369", + "version": "9.2.0.4444", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.1.0.4369') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemon.lvoverseas' AND version_compare(bundle_short_version, '9.2.0.4444') < 0);" }, - "installer_url": "https://sf16-web-tos-buz.capcutstatic.com/obj/capcut-web-buz-sg/packages/CapCut_9_1_0_4369_capcutpc_0_creatortool.dmg", + "installer_url": "https://sf16-web-tos-buz.capcutstatic.com/obj/capcut-web-buz-sg/packages/CapCut_9_2_0_4444_capcutpc_0_creatortool.dmg", "install_script_ref": "6c43d082", "uninstall_script_ref": "30a898df", - "sha256": "95a8b1cc9ecbcbe368b3e788c2acfb911a8969eb15936e9dc6cdd9d7eb720148", + "sha256": "5abd96d2d022088e655958c8c526b91632783bb887e270482caeba222f50d14e", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/chatbox/windows.json b/ee/maintained-apps/outputs/chatbox/windows.json index a3825efcb82..cf20a1956cf 100644 --- a/ee/maintained-apps/outputs/chatbox/windows.json +++ b/ee/maintained-apps/outputs/chatbox/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.22.1", + "version": "1.22.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Chatbox %' AND name NOT LIKE 'Chatbox Community%' AND publisher = 'Benn Huang' AND version_compare(version, '1.22.2') < 0);" }, - "installer_url": "https://download.chatboxai.app/releases/Chatbox-1.22.1-Setup.exe", + "installer_url": "https://download.chatboxai.app/releases/Chatbox-1.22.2-Setup.exe", "install_script_ref": "dd2de847", "uninstall_script_ref": "ba694131", - "sha256": "476666ea51fb725b7453dace0934a0f186672545115dfa931e015d28e05ffb3f", + "sha256": "1c6a8f7b98fd6eebfb267d537315467554d4495dce684f376517375c850bbd0e", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/chatgpt/darwin.json b/ee/maintained-apps/outputs/chatgpt/darwin.json index ffb724752e6..52fc9090fc8 100644 --- a/ee/maintained-apps/outputs/chatgpt/darwin.json +++ b/ee/maintained-apps/outputs/chatgpt/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "26.730.61639", + "version": "26.803.41515", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.730.61639') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '26.803.41515') < 0);" }, - "installer_url": "https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.730.61639.zip", + "installer_url": "https://persistent.oaistatic.com/codex-app-prod/ChatGPT-darwin-arm64-26.803.41515.zip", "install_script_ref": "cbce2d7d", "uninstall_script_ref": "678e6cf0", - "sha256": "da88c8a15eab1ddc8efdf50182d4aca7468d995193d952c344a4d10d38c45871", + "sha256": "8abd46bf063bc27cbadcbc2863007ac44365b13a23ede17ceaee81fb9eeaeb9a", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/cherry-studio/darwin.json b/ee/maintained-apps/outputs/cherry-studio/darwin.json index 004fb398ad7..81f9d41e28a 100644 --- a/ee/maintained-apps/outputs/cherry-studio/darwin.json +++ b/ee/maintained-apps/outputs/cherry-studio/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.0.0", + "version": "2.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kangfenmao.CherryStudio' AND version_compare(bundle_short_version, '2.0.2') < 0);" }, - "installer_url": "https://github.com/CherryHQ/cherry-studio/releases/download/v2.0.0/Cherry-Studio-2.0.0-arm64.dmg", + "installer_url": "https://github.com/CherryHQ/cherry-studio/releases/download/v2.0.2/Cherry-Studio-2.0.2-arm64.dmg", "install_script_ref": "31529318", "uninstall_script_ref": "69da7eb5", - "sha256": "5bfb675c37cb821ff97afbd31c4229d76040d150d6ce728a4569ef342ca14ee6", + "sha256": "f3bc808fd03382671e8d7f542300bfcc8058091399654cba5bd2f4942d057b34", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/claude/darwin.json b/ee/maintained-apps/outputs/claude/darwin.json index 8e51785b754..a3ea726c471 100644 --- a/ee/maintained-apps/outputs/claude/darwin.json +++ b/ee/maintained-apps/outputs/claude/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.25927.0", + "version": "1.26832.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.25927.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.26832.0') < 0);" }, - "installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.25927.0/Claude-003700efafbc2ccb4b1177a5e637b14da381799e.zip", + "installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.26832.0/Claude-056ee2be623b207f6a4d24dfb1b2fb5a82db0ecf.zip", "install_script_ref": "6e4c028b", "uninstall_script_ref": "421baa98", - "sha256": "024fd60c6008efcac5be32e5faf3f5e7510b6a8adef07fd5834e49a7b5d1a78a", + "sha256": "6b0f2c51c5e1c3f6db3885233ad96e48f92e61438b0bd9892c69f2ea11c54950", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/cmake-app/windows.json b/ee/maintained-apps/outputs/cmake-app/windows.json index 56f0a616fae..cef497b9725 100644 --- a/ee/maintained-apps/outputs/cmake-app/windows.json +++ b/ee/maintained-apps/outputs/cmake-app/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "4.4.1", + "version": "4.4.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware' AND version_compare(version, '4.4.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CMake' AND publisher = 'Kitware' AND version_compare(version, '4.4.2') < 0);" }, - "installer_url": "https://github.com/Kitware/CMake/releases/download/v4.4.1/cmake-4.4.1-windows-x86_64.msi", + "installer_url": "https://github.com/Kitware/CMake/releases/download/v4.4.2/cmake-4.4.2-windows-x86_64.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "6ac3efbc", - "sha256": "2d4800cb2cfb9028edef95fd36c3f1a1c7b20771f6c6b828f23a84e8014d543a", + "sha256": "5f391b528a6604c7248375d107ee993baa85667549ecb6e4c14bed9d9a718c41", "default_categories": [ "Productivity" ], diff --git a/ee/maintained-apps/outputs/codexbar/darwin.json b/ee/maintained-apps/outputs/codexbar/darwin.json index 15dca3d8af7..c32c2b1ce72 100644 --- a/ee/maintained-apps/outputs/codexbar/darwin.json +++ b/ee/maintained-apps/outputs/codexbar/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.47.0", + "version": "0.48.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.47.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.48.0') < 0);" }, - "installer_url": "https://github.com/steipete/CodexBar/releases/download/v0.47.0/CodexBar-macos-universal-0.47.0.zip", + "installer_url": "https://github.com/steipete/CodexBar/releases/download/v0.48.0/CodexBar-macos-universal-0.48.0.zip", "install_script_ref": "6993c93e", "uninstall_script_ref": "efcab822", - "sha256": "6e3e362db1405c982e37644d829ec1b6837e59b1f34feb75d9b636eb71b17317", + "sha256": "a5add825131d2df059e8eb897a746237e5876e8f88d3f8973c89d1a39924fe94", "default_categories": [ "Utilities" ] diff --git a/ee/maintained-apps/outputs/coteditor/darwin.json b/ee/maintained-apps/outputs/coteditor/darwin.json index 8f355133f19..c52b347956d 100644 --- a/ee/maintained-apps/outputs/coteditor/darwin.json +++ b/ee/maintained-apps/outputs/coteditor/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.0.7", + "version": "7.0.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor' AND version_compare(bundle_short_version, '7.0.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor' AND version_compare(bundle_short_version, '7.0.8') < 0);" }, - "installer_url": "https://github.com/coteditor/CotEditor/releases/download/7.0.7/CotEditor_7.0.7.dmg", + "installer_url": "https://github.com/coteditor/CotEditor/releases/download/7.0.8/CotEditor_7.0.8.dmg", "install_script_ref": "d7df556c", "uninstall_script_ref": "b4411f31", - "sha256": "353997fdf989085a7a02e67fe5e3517c2b594c44c9a93102d4c017fcfc4b84b0", + "sha256": "d065d99178f15df2a146eaba5b98de95e6ad4437802d9e8a62d61033fdc0ff90", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/cursor/darwin.json b/ee/maintained-apps/outputs/cursor/darwin.json index 6793e1a10f5..25d230e54fe 100644 --- a/ee/maintained-apps/outputs/cursor/darwin.json +++ b/ee/maintained-apps/outputs/cursor/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.14.27", + "version": "3.15.6", "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.14.27') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.15.6') < 0);" }, - "installer_url": "https://downloads.cursor.com/production/047548b00c1a079373d74d00183f32510a4a41e1/darwin/arm64/Cursor-darwin-arm64.zip", + "installer_url": "https://downloads.cursor.com/production/a1f686545fd0ce8917bbd2449f733551a9bce420/darwin/arm64/Cursor-darwin-arm64.zip", "install_script_ref": "1ae48b55", "uninstall_script_ref": "03b9aece", - "sha256": "aad8d3dfa50fffce0314ceeb332cc6a44fee2f76ac15dc2b29d3f92ce7ec3552", + "sha256": "c089aa5f3abbabb842acdc244137f6517c24e57b35992fad04ec8dec77fa4a55", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/dataflare/darwin.json b/ee/maintained-apps/outputs/dataflare/darwin.json index 289d61fca27..07a3d468146 100644 --- a/ee/maintained-apps/outputs/dataflare/darwin.json +++ b/ee/maintained-apps/outputs/dataflare/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.1.8", + "version": "3.1.9", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop' AND version_compare(bundle_short_version, '3.1.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.dataflare.desktop' AND version_compare(bundle_short_version, '3.1.9') < 0);" }, - "installer_url": "https://assets.dataflare.app/release/darwin/aarch64/Dataflare-3.1.8.dmg", + "installer_url": "https://assets.dataflare.app/release/darwin/aarch64/Dataflare-3.1.9.dmg", "install_script_ref": "d96ff327", "uninstall_script_ref": "bf5b4266", - "sha256": "9265f7f62fac6a85421c85c47bfad18d13d7d3c30cb7fae5c229000e72c4ffe2", + "sha256": "72c22493a426c7cfec0527f28e8e20bce05febca0cf3610ca9b1d1bcb48cf12a", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/dataflare/windows.json b/ee/maintained-apps/outputs/dataflare/windows.json index 0074652760b..c0f59fb1155 100644 --- a/ee/maintained-apps/outputs/dataflare/windows.json +++ b/ee/maintained-apps/outputs/dataflare/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.1.8", + "version": "3.1.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare' AND version_compare(version, '3.1.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Dataflare' AND publisher = 'Dataflare' AND version_compare(version, '3.1.9') < 0);" }, - "installer_url": "https://assets.dataflare.app/release/windows/x86_64/Dataflare-Setup-3.1.8.exe", + "installer_url": "https://assets.dataflare.app/release/windows/x86_64/Dataflare-Setup-3.1.9.exe", "install_script_ref": "a5276316", "uninstall_script_ref": "4710d9ad", - "sha256": "f66b1dc34e56eb3053feb3686d282f77fb1112b8ad9a58eb52304c8b0bb28942", + "sha256": "2bdb30be8b9aa52f30c5b43b0754d938c6bd8ece267bf4ab8799db7ac0c6b76c", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/datagrip/darwin.json b/ee/maintained-apps/outputs/datagrip/darwin.json index 0304561aa10..f194d91a804 100644 --- a/ee/maintained-apps/outputs/datagrip/darwin.json +++ b/ee/maintained-apps/outputs/datagrip/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.2.2", + "version": "2026.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip' AND version_compare(bundle_short_version, '2026.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip' AND version_compare(bundle_short_version, '2026.2.3') < 0);" }, - "installer_url": "https://download.jetbrains.com/datagrip/datagrip-2026.2.2-aarch64.dmg", + "installer_url": "https://download.jetbrains.com/datagrip/datagrip-2026.2.3-aarch64.dmg", "install_script_ref": "5f954355", "uninstall_script_ref": "ae9af028", - "sha256": "11d65cbd10fbad4ee17d1e2d619ae65020bfb4b7dd0b5797f9467fe70170aaa1", + "sha256": "26848a74d856691682a4681302d1a711246145c1563d093997535ab4df88767e", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/deezer/darwin.json b/ee/maintained-apps/outputs/deezer/darwin.json index ce331bafbba..ad3353a36fe 100644 --- a/ee/maintained-apps/outputs/deezer/darwin.json +++ b/ee/maintained-apps/outputs/deezer/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.1.290", + "version": "7.1.300", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop' AND version_compare(bundle_short_version, '7.1.290') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.deezer.deezer-desktop' AND version_compare(bundle_short_version, '7.1.300') < 0);" }, - "installer_url": "https://www.deezer.com/desktop/download/artifact-darwin-x64-7.1.290", + "installer_url": "https://www.deezer.com/desktop/download/artifact-darwin-x64-7.1.300", "install_script_ref": "40d69a44", "uninstall_script_ref": "7a7ca836", - "sha256": "baeccdbdc0807b87698fafd506bea165a683012fa8df78542b5d04a2fe64b432", + "sha256": "82075cd4b2a742b1196651c20bc36de77fc4af1e5d6cb9cdbba05bd59f195759", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/downie/darwin.json b/ee/maintained-apps/outputs/downie/darwin.json index d762e00ef0d..c47d9f16489 100644 --- a/ee/maintained-apps/outputs/downie/darwin.json +++ b/ee/maintained-apps/outputs/downie/darwin.json @@ -6,10 +6,10 @@ "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.charliemonroe.Downie-4';", "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.charliemonroe.Downie-4' AND version_compare(bundle_short_version, '4.12.12') < 0);" }, - "installer_url": "https://software.charliemonroe.net/trial/downie/v4/Downie_4_5228.dmg", + "installer_url": "https://software.charliemonroe.net/trial/downie/v4/Downie_4_5229.dmg", "install_script_ref": "4f6dd0e2", "uninstall_script_ref": "24e71e3c", - "sha256": "581d50af193fd1e8f942c724d247634b376919e148ea983fe3b824ee78e676d5", + "sha256": "86ded4981846e81b32f9eddb7658f8705b4ba74f88b3b53192db1bc2bd84f798", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/drofus/windows.json b/ee/maintained-apps/outputs/drofus/windows.json index 78ac75cbe64..9967d1a14d9 100644 --- a/ee/maintained-apps/outputs/drofus/windows.json +++ b/ee/maintained-apps/outputs/drofus/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.18.11.0", + "version": "2.18.12.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS' AND version_compare(version, '2.18.11.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'dRofus %' AND publisher = 'dRofus AS' AND version_compare(version, '2.18.12.0') < 0);" }, - "installer_url": "https://deploy.drofus.com/stable/drofus-setup-2.18.11.msi", + "installer_url": "https://deploy.drofus.com/stable/drofus-setup-2.18.12.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "72356dd1", - "sha256": "dd723ea583803fa971b2a6f0cf1fa3a3f92b0f999c39728e6b8faada1edeed22", + "sha256": "6ac683ecdb27cea0ee47a0494d3140d3a7183e2e2f1ffd49e070d2b1fd7a1f5b", "default_categories": [ "Productivity" ], diff --git a/ee/maintained-apps/outputs/elevate-uc/windows.json b/ee/maintained-apps/outputs/elevate-uc/windows.json index 71eea0cc772..255197e56c0 100644 --- a/ee/maintained-apps/outputs/elevate-uc/windows.json +++ b/ee/maintained-apps/outputs/elevate-uc/windows.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "2.31.37", + "version": "2.32.60", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.' AND version_compare(version, '2.31.37') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Elevate UC' AND publisher = 'Serverdata.net, Inc.' AND version_compare(version, '2.32.60') < 0);" }, "installer_url": "https://cp.serverdata.net/voice/pbx/softphonereleases/default/latest-win/elevate-uc-x64.msi", "install_script_ref": "22e48c46", diff --git a/ee/maintained-apps/outputs/evernote/windows.json b/ee/maintained-apps/outputs/evernote/windows.json index e78c2bb3ff4..4feee2aaf94 100644 --- a/ee/maintained-apps/outputs/evernote/windows.json +++ b/ee/maintained-apps/outputs/evernote/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "11.27.5", + "version": "11.28.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation' AND version_compare(version, '11.27.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Evernote%' AND publisher = 'Evernote Corporation' AND version_compare(version, '11.28.2') < 0);" }, - "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.27.5-win-ddl-stage-20260724150529-95d616891db3da8a048d6d178f0bc45153a8d267-setup.exe", + "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.28.2-win-ddl-stage-20260731135230-91a1a6c7bfcaabc8722ecc0ac9136436611045cf-setup.exe", "install_script_ref": "5820d576", "uninstall_script_ref": "d4142835", - "sha256": "f0431e7b6aebac787c5fd35e6cf54cfc2765f6e08caa646b61d92fd23eadac96", + "sha256": "43c3515bd4019201b96776843aafc0f8c8f613e151599c8054b71d83a5be5b74", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/fellow/windows.json b/ee/maintained-apps/outputs/fellow/windows.json index 26e02bff3cc..2f71ca8eecf 100644 --- a/ee/maintained-apps/outputs/fellow/windows.json +++ b/ee/maintained-apps/outputs/fellow/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "5.7.0", + "version": "5.7.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.' AND version_compare(version, '5.7.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Fellow' AND publisher = 'Fellow Insights Inc.' AND version_compare(version, '5.7.2') < 0);" }, - "installer_url": "https://cdn.fellow.app/desktop/5.7.0/win32/stable/x64/Fellow-5.7.0.exe", + "installer_url": "https://cdn.fellow.app/desktop/5.7.2/win32/stable/x64/Fellow-5.7.2.exe", "install_script_ref": "66645abc", "uninstall_script_ref": "7639f41e", - "sha256": "bbcdd7b415437429c0e02a69875f90d095fe4299eaf5649ebb1430573b8ddddf", + "sha256": "3c5dc9f63ccee96e101a708a705d91e78db043f673b671e2a7d012d106ccb725", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/firefox@nightly/darwin.json b/ee/maintained-apps/outputs/firefox@nightly/darwin.json index e6ae2d0cf10..73e2631d903 100644 --- a/ee/maintained-apps/outputs/firefox@nightly/darwin.json +++ b/ee/maintained-apps/outputs/firefox@nightly/darwin.json @@ -4,12 +4,12 @@ "version": "155.0a1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly' AND version_compare(bundle_version, '15526.8.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.nightly' AND version_compare(bundle_version, '15526.8.6') < 0);" }, - "installer_url": "https://ftp.mozilla.org/pub/firefox/nightly/2026/08/2026-08-05-09-21-15-mozilla-central/firefox-155.0a1.en-US.mac.dmg", + "installer_url": "https://ftp.mozilla.org/pub/firefox/nightly/2026/08/2026-08-06-21-17-40-mozilla-central/firefox-155.0a1.en-US.mac.dmg", "install_script_ref": "d9c4cf87", "uninstall_script_ref": "0661f848", - "sha256": "7c5c2d78618692314a7ead5453c7e8bd6ebfde982eb82e4c4a8ce07f8f75c6b9", + "sha256": "44e2a5fbd3980c8396882fad6b8d9cb20e52cbe1ed405bc258a8e65806cadf34", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/framer/darwin.json b/ee/maintained-apps/outputs/framer/darwin.json index b2c4fc37b12..7f55f3b7e02 100644 --- a/ee/maintained-apps/outputs/framer/darwin.json +++ b/ee/maintained-apps/outputs/framer/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.29.5", + "version": "2026.31.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron' AND version_compare(bundle_short_version, '2026.29.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.framer.electron' AND version_compare(bundle_short_version, '2026.31.2') < 0);" }, - "installer_url": "https://updates.framer.com/electron/darwin/arm64/Framer-2026.29.5.zip", + "installer_url": "https://updates.framer.com/electron/darwin/arm64/Framer-2026.31.2.zip", "install_script_ref": "76134736", "uninstall_script_ref": "12495d2a", - "sha256": "bd96ab9c1e6a2be5d30f8b180fb74667c7793e94ec1184dcbf0ec4487f7ba849", + "sha256": "79535f157aec630ec4ffdb94911abaeea3338474706de5490019719a8c3357fc", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/gitkraken/windows.json b/ee/maintained-apps/outputs/gitkraken/windows.json index 239dde5ad4e..54257ab08c7 100644 --- a/ee/maintained-apps/outputs/gitkraken/windows.json +++ b/ee/maintained-apps/outputs/gitkraken/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "12.3.1", + "version": "12.4.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken' AND version_compare(version, '12.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'GitKraken' AND publisher = 'GitKraken' AND version_compare(version, '12.4.0') < 0);" }, - "installer_url": "https://api.gitkraken.dev/releases/production/windows/x64/12.3.1/GitKrakenSetup.exe", + "installer_url": "https://api.gitkraken.dev/releases/production/windows/x64/12.4.0/GitKrakenSetup.exe", "install_script_ref": "c85d5da1", "uninstall_script_ref": "36370543", - "sha256": "9ccf04778fcd960f83d79d541b23b9b58cd4581ce0b74b6bccb0ad86d9e6d134", + "sha256": "b1efd60f6ea477e0f324d6cfe27f8aa17c30c74ba9697faebd1699f18653bb22", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/gog-galaxy/darwin.json b/ee/maintained-apps/outputs/gog-galaxy/darwin.json index 28c30a48f53..680c5fb3313 100644 --- a/ee/maintained-apps/outputs/gog-galaxy/darwin.json +++ b/ee/maintained-apps/outputs/gog-galaxy/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.1.7.22", + "version": "2.1.8.32", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer' AND version_compare(bundle_short_version, '2.1.7.22') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gog.galaxy.cef.renderer' AND version_compare(bundle_short_version, '2.1.8.32') < 0);" }, - "installer_url": "https://gog-cdn-fastly.gog.com/open/galaxy/client/galaxy_client_2.1.7.22.pkg", - "install_script_ref": "9f170824", + "installer_url": "https://gog-cdn-fastly.gog.com/open/galaxy/client/galaxy_client_2.1.8.32.pkg", + "install_script_ref": "89b9a1b7", "uninstall_script_ref": "15cc6645", - "sha256": "b672ada25d63574a2221f736c38871c2f7e46a71051c449d4695a7dffc91f8da", + "sha256": "8bdb1d0893d88508d77d4473e649fbe2a1668fd2ddeb3d041f634a164d135ade", "default_categories": [ "Productivity" ] @@ -17,6 +17,6 @@ ], "refs": { "15cc6645": "#!/bin/bash\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\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 'com.gog.galaxy.autoLauncher'\nremove_launchctl_service 'com.gog.galaxy.ClientService'\nremove_launchctl_service 'com.gog.galaxy.commservice'\nsudo rm -rf '/Applications/GOG Galaxy.app'\ntrash $LOGGED_IN_USER '/Library/LaunchDaemons/com.gog.galaxy.ClientService.plist'\ntrash $LOGGED_IN_USER '/Library/PrivilegedHelperTools/com.gog.galaxy.ClientService'\ntrash $LOGGED_IN_USER '/Users/Shared/GOG.com'\ntrash $LOGGED_IN_USER '~/Library/Application Support/GOG.com'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.gog.galaxy.cef.renderer.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.gog.galaxy.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.gog.galaxy.savedState'\n", - "9f170824": "#!/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# install pkg files\nquit_and_track_application 'com.gog.galaxy.cef.renderer'\nsudo installer -pkg \"$TMPDIR/galaxy_client_2.1.7.22.pkg\" -target / || exit $?\nrelaunch_application 'com.gog.galaxy.cef.renderer'\n" + "89b9a1b7": "#!/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# install pkg files\nquit_and_track_application 'com.gog.galaxy.cef.renderer'\nsudo installer -pkg \"$TMPDIR/galaxy_client_2.1.8.32.pkg\" -target / || exit $?\nrelaunch_application 'com.gog.galaxy.cef.renderer'\n" } } diff --git a/ee/maintained-apps/outputs/google-chrome/darwin.json b/ee/maintained-apps/outputs/google-chrome/darwin.json index 2f12bc96e5a..9fd90b2d9b3 100644 --- a/ee/maintained-apps/outputs/google-chrome/darwin.json +++ b/ee/maintained-apps/outputs/google-chrome/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "151.0.7922.76", + "version": "151.0.7922.109", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '151.0.7922.76') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '151.0.7922.109') < 0);" }, "installer_url": "https://dl.google.com/dl/chrome/mac/universal/stable/gcem/GoogleChrome.pkg", "install_script_ref": "02a1baed", diff --git a/ee/maintained-apps/outputs/granola/darwin.json b/ee/maintained-apps/outputs/granola/darwin.json index ab44c693e3d..c892c8800be 100644 --- a/ee/maintained-apps/outputs/granola/darwin.json +++ b/ee/maintained-apps/outputs/granola/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.452.4", + "version": "7.469.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.452.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.469.1') < 0);" }, - "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.452.4/Granola-7.452.4-mac-universal.dmg", + "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.469.1/Granola-7.469.1-mac-universal.dmg", "install_script_ref": "08a593fa", "uninstall_script_ref": "8135b983", - "sha256": "ffb30437fb3f491f6ba0c9ee7e7609ce06d1e95aac7f5a03bdb920ea12d6fdc8", + "sha256": "a7e26aa74da9b7d783491437624237ef01ca56735ff9e66bc68f7e60c1815d4e", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json b/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json index d6bd006b065..cf3588e6d49 100644 --- a/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json +++ b/ee/maintained-apps/outputs/ibm-semeru-jre-11/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "11.0.31.11", + "version": "11.0.32.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.31.11') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'IBM Semeru Runtime Open Edition (JRE)%' AND publisher = 'Semeru' AND version LIKE '11.%' AND version_compare(version, '11.0.32.0') < 0);" }, - "installer_url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.31.0/ibm-semeru-open-jre_x64_windows_11.0.31.0.msi", + "installer_url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.32.0/ibm-semeru-open-jre_x64_windows_11.0.32.0.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "9f57a036", - "sha256": "5eef71ba6d76a112804c7b2f36ab3b6f955b2b7d595de7e6d92afa85e81554d6", + "sha256": "f05b19ebdd0dc8810c4b37ed3d2be37cb70e215756de23a499caf74dead50c64", "default_categories": [ "Developer tools" ], diff --git a/ee/maintained-apps/outputs/imageglass/windows.json b/ee/maintained-apps/outputs/imageglass/windows.json index 272d2708253..3acc9686f5f 100644 --- a/ee/maintained-apps/outputs/imageglass/windows.json +++ b/ee/maintained-apps/outputs/imageglass/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "9.6.0.801", + "version": "9.6.1.807", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap' AND version_compare(version, '9.6.0.801') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ImageGlass' AND publisher = 'Duong Dieu Phap' AND version_compare(version, '9.6.1.807') < 0);" }, - "installer_url": "https://github.com/d2phap/ImageGlass/releases/download/9.6.0.801/ImageGlass_9.6.0.801_x64.msi", + "installer_url": "https://github.com/d2phap/ImageGlass/releases/download/9.6.1.807/ImageGlass_9.6.1.807_x64.msi", "install_script_ref": "72349997", "uninstall_script_ref": "132bf6ab", - "sha256": "cd146fcc3aaa31afb5a0ac060b3cf2a5badbccb39dac9ec49ec8d2077ef46c5c", + "sha256": "1f08209adb9456860ac2a71a74395456ccdf1bd9fc640f43d44b3b34788ddc0a", "default_categories": [ "Productivity" ], diff --git a/ee/maintained-apps/outputs/kiro-cli/darwin.json b/ee/maintained-apps/outputs/kiro-cli/darwin.json index 6c9d2900b4b..3e9fea64600 100644 --- a/ee/maintained-apps/outputs/kiro-cli/darwin.json +++ b/ee/maintained-apps/outputs/kiro-cli/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.16.1", + "version": "2.16.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.16.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.16.2') < 0);" }, - "installer_url": "https://desktop-release.q.us-east-1.amazonaws.com/2.16.1/Kiro%20CLI.dmg", + "installer_url": "https://desktop-release.q.us-east-1.amazonaws.com/2.16.2/Kiro%20CLI.dmg", "install_script_ref": "21bed962", "uninstall_script_ref": "ed98f0de", - "sha256": "5fce9cf9dca6a74f0c52915176a6421f5948e6903813af90480c6b722cb20d32", + "sha256": "b959256ac294a2a176f14a1559321c6f0821e7dac53da7739365154a6a87ddcc", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/kiro/darwin.json b/ee/maintained-apps/outputs/kiro/darwin.json index d3ea1607c63..369acbb01a7 100644 --- a/ee/maintained-apps/outputs/kiro/darwin.json +++ b/ee/maintained-apps/outputs/kiro/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.0.242", + "version": "1.0.288", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.242') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.288') < 0);" }, - "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/darwin-arm64/signed/1.0.242/kiro-ide-1.0.242-stable-darwin-arm64.dmg", + "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/darwin-arm64/signed/1.0.288/kiro-ide-1.0.288-stable-darwin-arm64.dmg", "install_script_ref": "84b6676a", "uninstall_script_ref": "4678d87f", - "sha256": "70e96dcca936a39c014aa48af433ae9e9a63a21d44d4c4804d817b2f430713d2", + "sha256": "36d60dc1ad6dac46970de9b5a863b5e573560c7dbb99cbd582597809915bc649", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/kiro/windows.json b/ee/maintained-apps/outputs/kiro/windows.json index 0affc6ac7f9..ff5980498b5 100644 --- a/ee/maintained-apps/outputs/kiro/windows.json +++ b/ee/maintained-apps/outputs/kiro/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.0.242", + "version": "1.0.288", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.0.242') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Kiro (User)' AND publisher = 'Amazon Web Services' AND version_compare(version, '1.0.288') < 0);" }, - "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/win32-x64/signed/1.0.242/kiro-ide-1.0.242-stable-win32-x64.exe", + "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/win32-x64/signed/1.0.288/kiro-ide-1.0.288-stable-win32-x64.exe", "install_script_ref": "c5bc3c21", "uninstall_script_ref": "afe8f2fa", - "sha256": "20b68942d4d4002ab49747f43abdd26ea99367811aebf5fa7a5cc4e1337a780c", + "sha256": "7386c4c58e6161e95de172f18f22ed09e27cdb94606c0912602917ac6eff0e59", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/krita/darwin.json b/ee/maintained-apps/outputs/krita/darwin.json index 66a725a1a6d..15fbb55af64 100644 --- a/ee/maintained-apps/outputs/krita/darwin.json +++ b/ee/maintained-apps/outputs/krita/darwin.json @@ -8,7 +8,7 @@ }, "installer_url": "https://download.kde.org/stable/krita/5.3.3/krita-5.3.3-signed.dmg", "install_script_ref": "cdb966e7", - "uninstall_script_ref": "7b9f27dc", + "uninstall_script_ref": "3947b0f0", "sha256": "625e37c01cfb74094ae58353dd9d343cd389a00c33cb65d6ddf1f2f1e2bc3a19", "default_categories": [ "Productivity" @@ -16,7 +16,7 @@ } ], "refs": { - "7b9f27dc": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\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\nsudo rm -rf \"$APPDIR/krita.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/krita'\ntrash $LOGGED_IN_USER '~/Library/Preferences/kritadisplayrc'\ntrash $LOGGED_IN_USER '~/Library/Preferences/kritarc'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.krita.savedState'\n", + "3947b0f0": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\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\nsudo rm -rf \"$APPDIR/Krita.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/org.krita.*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/krita*'\ntrash $LOGGED_IN_USER '~/Library/Caches/krita'\ntrash $LOGGED_IN_USER '~/Library/Containers/org.krita.*'\ntrash $LOGGED_IN_USER '~/Library/Preferences/kritadisplayrc'\ntrash $LOGGED_IN_USER '~/Library/Preferences/kritarc'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.krita.savedState'\n", "cdb966e7": "#!/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 'org.kde.krita'\nif [ -d \"$APPDIR/krita.app\" ]; then\n\tsudo mv \"$APPDIR/krita.app\" \"$TMPDIR/krita.app.bkp\" || exit $?\nfi\nif ! sudo cp -R \"$TMPDIR/krita.app\" \"$APPDIR\"; then\n\t# remove the partial copy so a failed install isn't inventoried as the new\n\t# version, then restore the previous version if there was one\n\tsudo rm -rf \"$APPDIR/krita.app\"\n\tif [ -d \"$TMPDIR/krita.app.bkp\" ]; then\n\t\tsudo mv \"$TMPDIR/krita.app.bkp\" \"$APPDIR/krita.app\"\n\tfi\n\texit 1\nfi\nrelaunch_application 'org.kde.krita'\n" } } diff --git a/ee/maintained-apps/outputs/loom/darwin.json b/ee/maintained-apps/outputs/loom/darwin.json index 85e522e3df8..75eea185a59 100644 --- a/ee/maintained-apps/outputs/loom/darwin.json +++ b/ee/maintained-apps/outputs/loom/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.366.3", + "version": "0.367.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.366.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.367.1') < 0);" }, - "installer_url": "https://packages.loom.com/desktop-packages/Loom-0.366.3-arm64.dmg", + "installer_url": "https://packages.loom.com/desktop-packages/Loom-0.367.1-arm64.dmg", "install_script_ref": "53e2b898", "uninstall_script_ref": "1a901a1f", - "sha256": "49f48a6480982e26f9dfc1afc92b4a701b964f510af48a0bc5eb95b20849901e", + "sha256": "9966959fbc67f74149426e230df078e0f7089283df5d407b7445fe25ff3a4465", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/loom/windows.json b/ee/maintained-apps/outputs/loom/windows.json index 711f35bb904..a340404cc66 100644 --- a/ee/maintained-apps/outputs/loom/windows.json +++ b/ee/maintained-apps/outputs/loom/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.366.3", + "version": "0.367.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.366.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.367.1') < 0);" }, - "installer_url": "https://cdn.loom.com/desktop-packages/Loom%20Setup%200.366.3.exe", + "installer_url": "https://cdn.loom.com/desktop-packages/Loom%20Setup%200.367.1.exe", "install_script_ref": "77327cbf", "uninstall_script_ref": "b012f1e7", - "sha256": "e98fe6b8a797278f1a23f567b0386b0c56402364b66a50b8a2bac31039f21051", + "sha256": "e284f847d8d1ec89659a0f08e1dda351472d11fc9c16d800a7c7a272b88d0727", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/marked-app/darwin.json b/ee/maintained-apps/outputs/marked-app/darwin.json index 1b5e7170ea5..fb2361545e0 100644 --- a/ee/maintained-apps/outputs/marked-app/darwin.json +++ b/ee/maintained-apps/outputs/marked-app/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.1.17", + "version": "3.1.18", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.18') < 0);" }, - "installer_url": "https://updates.markedapp.com/updates/Marked%203.1.17-1200.zip", + "installer_url": "https://updates.markedapp.com/updates/Marked%203.1.18-1201.zip", "install_script_ref": "23ea6da3", "uninstall_script_ref": "57b4bcf2", - "sha256": "5ce91f364057dc3fbd2c8989aad70919bdcba62a1c0e023dd934e03a0b5ede52", + "sha256": "51bc55df375a9a19d4686c6dfbf452191e276cc956e7744901437ab7084359c1", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/masscode/darwin.json b/ee/maintained-apps/outputs/masscode/darwin.json index b782674db47..51d99c79ade 100644 --- a/ee/maintained-apps/outputs/masscode/darwin.json +++ b/ee/maintained-apps/outputs/masscode/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "5.9.1", + "version": "5.10.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.9.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.masscode.app' AND version_compare(bundle_short_version, '5.10.0') < 0);" }, - "installer_url": "https://github.com/massCodeIO/massCode/releases/download/v5.9.1/massCode-5.9.1-arm64.dmg", + "installer_url": "https://github.com/massCodeIO/massCode/releases/download/v5.10.0/massCode-5.10.0-arm64.dmg", "install_script_ref": "d25eb03c", "uninstall_script_ref": "02f458b9", - "sha256": "c3c434d8283c76e35d35fa99752d08bf8938d8cdc88ff2a43f510fa1627c64e0", + "sha256": "533a0621491646c849268ff319907e4a6ef884a8b9c775413162fbf9b93f7d64", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/melodics/darwin.json b/ee/maintained-apps/outputs/melodics/darwin.json index 6cac861ffa6..8a7384976c9 100644 --- a/ee/maintained-apps/outputs/melodics/darwin.json +++ b/ee/maintained-apps/outputs/melodics/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "5.0.925", + "version": "5.0.993", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics' AND version_compare(bundle_short_version, '5.0.925') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.melodics.Melodics' AND version_compare(bundle_short_version, '5.0.993') < 0);" }, - "installer_url": "https://web-cdn.melodics.com/download/A499629C-EB7E-4B64-902A-0D7A0795F4BF.zip", + "installer_url": "https://web-cdn.melodics.com/download/65B6631F-18C9-47BE-8140-D8181BED5E26.zip", "install_script_ref": "fa7d6756", "uninstall_script_ref": "4abaa93b", - "sha256": "8d97e51bf2b00ecf2f9280566dcb58c508791fd6a347382a62130a14de29a4f0", + "sha256": "c4f3b4f98189167ab55f4598e46c3c6e506b471ae612dbd153d7e93b99ea271a", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/microsoft-edge/darwin.json b/ee/maintained-apps/outputs/microsoft-edge/darwin.json index 0d6b26a9841..a35e7c477fd 100644 --- a/ee/maintained-apps/outputs/microsoft-edge/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-edge/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "151.0.4129.59", + "version": "151.0.4129.72", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac' AND version_compare(bundle_short_version, '151.0.4129.59') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac' AND version_compare(bundle_short_version, '151.0.4129.72') < 0);" }, - "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/01a6b458-9d0d-4c98-88f7-1d3e21d14464/MicrosoftEdge-151.0.4129.59.dmg", + "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/9153ab01-16c7-4aef-a5ca-0a99e41c6a3e/MicrosoftEdge-151.0.4129.72.dmg", "install_script_ref": "4c051c40", "uninstall_script_ref": "afe8f338", - "sha256": "8bdfc85dea06afdfdcde206d12993b1a4537c00f9adb8885f0cc225e6912ec78", + "sha256": "fb9915a53d469a983f4fa5a37a26e98a2e32375c1d7be6ba8d71b392ebcebfc3", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/mongodb-compass/windows.json b/ee/maintained-apps/outputs/mongodb-compass/windows.json index 7a98fc59a85..b99cd66e75e 100644 --- a/ee/maintained-apps/outputs/mongodb-compass/windows.json +++ b/ee/maintained-apps/outputs/mongodb-compass/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.49.12.0", + "version": "1.49.14.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.12.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.14.0') < 0);" }, - "installer_url": "https://github.com/mongodb-js/compass/releases/download/v1.49.12/mongodb-compass-1.49.12-win32-x64.msi", + "installer_url": "https://github.com/mongodb-js/compass/releases/download/v1.49.14/mongodb-compass-1.49.14-win32-x64.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "2781c2bb", - "sha256": "2a03f58827bdab485a38b5d9f6a8ee5517d7515e7f9aad95769daa0fc30ab47f", + "sha256": "06bae68a1b91667b261a2e01a1805ab2646672b1795430f24570bc22a3154a38", "default_categories": [ "Developer tools" ], diff --git a/ee/maintained-apps/outputs/nordpass/darwin.json b/ee/maintained-apps/outputs/nordpass/darwin.json index d4567885f29..75c24cf1e1f 100644 --- a/ee/maintained-apps/outputs/nordpass/darwin.json +++ b/ee/maintained-apps/outputs/nordpass/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "7.9.3", + "version": "7.9.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass' AND version_compare(bundle_short_version, '7.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass' AND version_compare(bundle_short_version, '7.9.4') < 0);" }, "installer_url": "https://downloads.npass.app/mac/arm/NordPass.dmg", "install_script_ref": "001e7928", diff --git a/ee/maintained-apps/outputs/nordpass/windows.json b/ee/maintained-apps/outputs/nordpass/windows.json index fccd56790b0..9a4f0aff4a9 100644 --- a/ee/maintained-apps/outputs/nordpass/windows.json +++ b/ee/maintained-apps/outputs/nordpass/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.7.13", + "version": "7.9.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.7.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.9.3') < 0);" }, "installer_url": "https://downloads.npass.app/windows/NordPassSetup.exe", "install_script_ref": "17ae065a", "uninstall_script_ref": "472381ce", - "sha256": "1442b20921236be4f97f7f8ba1dbedcde9f373b4e0415700e9458487e813a514", + "sha256": "cb2392c7733236335243441caf89aaa0dfc7ce028e9fb6f27e43254ce1c94fe5", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/notesnook/windows.json b/ee/maintained-apps/outputs/notesnook/windows.json index 06c55570cf1..0ede961d556 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.4", + "version": "3.4.5", "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.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notesnook %' AND publisher = 'Streetwriters' AND version_compare(version, '3.4.5') < 0);" }, - "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.4/notesnook_win_x64.exe", + "installer_url": "https://github.com/streetwriters/notesnook/releases/download/v3.4.5/notesnook_win_x64.exe", "install_script_ref": "fae91a29", "uninstall_script_ref": "83cee2d6", - "sha256": "1fcb981f246181b682756dee4c3e72ced207f22f158b039fefc5bd6a5ecb48c6", + "sha256": "1c487eab412c101d6f82d3e1718bb3d9cf13508a664abddd8ca7247a594dc6fa", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/nova/darwin.json b/ee/maintained-apps/outputs/nova/darwin.json index 8e752d83566..6974899382d 100644 --- a/ee/maintained-apps/outputs/nova/darwin.json +++ b/ee/maintained-apps/outputs/nova/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "14", + "version": "14.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova' AND version_compare(bundle_short_version, '14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.panic.Nova' AND version_compare(bundle_short_version, '14.1') < 0);" }, - "installer_url": "https://panic.com/download/nova/Nova%2014.zip", + "installer_url": "https://panic.com/download/nova/Nova%2014.1.zip", "install_script_ref": "608eec9a", "uninstall_script_ref": "2d51ce6a", - "sha256": "9b327a9e16101ba06b46291e4905718b6062df73642ad753cbbe9f213a468104", + "sha256": "80d090495a4b43b78e8558ddc161fd30adafdac287b7a8cafdd9c7fd9cc9940f", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/onedrive/windows.json b/ee/maintained-apps/outputs/onedrive/windows.json index afab863e3c1..39e96c3baf1 100644 --- a/ee/maintained-apps/outputs/onedrive/windows.json +++ b/ee/maintained-apps/outputs/onedrive/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "26.123.0628.0001", + "version": "26.129.0706.0004", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.123.0628.0001') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.129.0706.0004') < 0);" }, - "installer_url": "https://oneclient.sfx.ms/Win/Installers/26.123.0628.0001/amd64/OneDriveSetup.exe", + "installer_url": "https://oneclient.sfx.ms/Win/Installers/26.129.0706.0004/amd64/OneDriveSetup.exe", "install_script_ref": "ab0b56ab", "uninstall_script_ref": "374be511", - "sha256": "43b9414209461265a61fd576daddf94cdffabc1f62a7ac3675aa754d655b337c", + "sha256": "8fa27c88c31666457837794c64237d5b2216ca96c8f03ca154dc8dc2d9979578", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/opencode-desktop/darwin.json b/ee/maintained-apps/outputs/opencode-desktop/darwin.json index 38725595c53..ce085dd1f16 100644 --- a/ee/maintained-apps/outputs/opencode-desktop/darwin.json +++ b/ee/maintained-apps/outputs/opencode-desktop/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.18.14", + "version": "1.18.15", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.14') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.15') < 0);" }, - "installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.18.14/opencode-desktop-mac-arm64.dmg", + "installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.18.15/opencode-desktop-mac-arm64.dmg", "install_script_ref": "d2ce7b1a", "uninstall_script_ref": "99fcb3f1", - "sha256": "0d1ae975cc5605fc665585b2424c4d820640955ecc21a4185336783a34a12305", + "sha256": "2b29de799c37ec7466ba066d291addd7fa49bb45815cad10538adcd4d79aee96", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/opera/darwin.json b/ee/maintained-apps/outputs/opera/darwin.json index af090ab95f8..2b24f6a3a56 100644 --- a/ee/maintained-apps/outputs/opera/darwin.json +++ b/ee/maintained-apps/outputs/opera/darwin.json @@ -6,10 +6,10 @@ "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera';", "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera' AND version_compare(bundle_short_version, '134.0') < 0);" }, - "installer_url": "https://get.geo.opera.com/pub/opera/desktop/134.0.5954.26/mac/Opera_134.0.5954.26_Setup.dmg", + "installer_url": "https://get.geo.opera.com/pub/opera/desktop/134.0.5954.46/mac/Opera_134.0.5954.46_Setup.dmg", "install_script_ref": "f2f3d814", "uninstall_script_ref": "566d9846", - "sha256": "f9e359e3ff60761335c5684610290a5c12a0d5783762c50ef8328e7c007f5baa", + "sha256": "741c0dfd178008f6796c50d90628ee54f6d1e58f8f823eb2067ee1cab9db1893", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/orbstack/darwin.json b/ee/maintained-apps/outputs/orbstack/darwin.json index ba7a493f289..213bcd5d0d6 100644 --- a/ee/maintained-apps/outputs/orbstack/darwin.json +++ b/ee/maintained-apps/outputs/orbstack/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.2.2", + "version": "2.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt' AND version_compare(bundle_short_version, '2.2.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt' AND version_compare(bundle_short_version, '2.2.3') < 0);" }, - "installer_url": "https://cdn-updates.orbstack.dev/arm64/OrbStack_v2.2.2_20903_arm64.dmg", + "installer_url": "https://cdn-updates.orbstack.dev/arm64/OrbStack_v2.2.3_20963_arm64.dmg", "install_script_ref": "01247e9f", "uninstall_script_ref": "a77f3f59", - "sha256": "3e2e9d746f9141fc6b999f0b36c1e9b3e9828729c677c57f5fe05ee4d8b64e91", + "sha256": "7ca77868f3a0d7d9f57b3f98615aad30cc59d23cc84bbff13f78846df0b493d4", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/p4v/darwin.json b/ee/maintained-apps/outputs/p4v/darwin.json index 159e05a2f86..097bdddccee 100644 --- a/ee/maintained-apps/outputs/p4v/darwin.json +++ b/ee/maintained-apps/outputs/p4v/darwin.json @@ -9,7 +9,7 @@ "installer_url": "https://filehost.perforce.com/perforce/r26.2/bin.macosx12u/P4V.dmg", "install_script_ref": "3604c875", "uninstall_script_ref": "f67991ce", - "sha256": "9c9367ab96f667d4f1c0fd7e283e4e3678fbed1f570c8238121914b204ad3aac", + "sha256": "9bec7eefac9fd1aa747fbee6602a1720a4ab82177a290358780e63f2edf9d1de", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/p4v/windows.json b/ee/maintained-apps/outputs/p4v/windows.json index 80da479fc95..11062faccf2 100644 --- a/ee/maintained-apps/outputs/p4v/windows.json +++ b/ee/maintained-apps/outputs/p4v/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "242.62.2", + "version": "242.62.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software' AND version_compare(version, '242.62.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'P4 Apps' AND publisher = 'Perforce Software' AND version_compare(version, '242.62.3') < 0);" }, "installer_url": "https://filehost.perforce.com/perforce/r26.2/bin.ntx64/p4vinst64.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "030745cd", - "sha256": "e6bc46b18a3b20431610c45019664b5fb9c85ff44585135ac8fc1be6fe86ce6d", + "sha256": "e68d0917656e1549cc72ea94031f897795ca4e64b0af25d3f1fd1b17f5c345ee", "default_categories": [ "Developer tools" ], diff --git a/ee/maintained-apps/outputs/pale-moon/windows.json b/ee/maintained-apps/outputs/pale-moon/windows.json index 67b6f913b34..2da5ce2efb0 100644 --- a/ee/maintained-apps/outputs/pale-moon/windows.json +++ b/ee/maintained-apps/outputs/pale-moon/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "34.3.1", + "version": "34.3.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions' AND version_compare(version, '34.3.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Pale Moon' AND publisher = 'Moonchild Productions' AND version_compare(version, '34.3.2') < 0);" }, - "installer_url": "https://rm-eu.palemoon.org/release/palemoon-34.3.1.win64.installer.exe", + "installer_url": "https://rm-eu.palemoon.org/release/palemoon-34.3.2.win64.installer.exe", "install_script_ref": "f9371692", "uninstall_script_ref": "eef8e905", - "sha256": "2040d0b1a454e57b38ed9b9020f85bc057469ef34629538bf0e02b1f17887478", + "sha256": "5141b4716abcab4789c4f425395b1f2b5a3d99c094ea75e4382daed6ec67ab25", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/parallels/darwin.json b/ee/maintained-apps/outputs/parallels/darwin.json index 0bdce5fa8a3..441f5e1156f 100644 --- a/ee/maintained-apps/outputs/parallels/darwin.json +++ b/ee/maintained-apps/outputs/parallels/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "26.4.0", + "version": "26.4.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console' AND version_compare(bundle_short_version, '26.4.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console' AND version_compare(bundle_short_version, '26.4.1') < 0);" }, - "installer_url": "https://download.parallels.com/desktop/v26/26.4.0-57513/ParallelsDesktop-26.4.0-57513.dmg", + "installer_url": "https://download.parallels.com/desktop/v26/26.4.1-57516/ParallelsDesktop-26.4.1-57516.dmg", "install_script_ref": "fda51c5d", "uninstall_script_ref": "94c626c6", - "sha256": "424ba5fa1661d09ee0f3e0fe4fb44b99faed2b68bdd3ec25b2b7e6e6d35a62e8", + "sha256": "f32a4ff2bf5d522392a9d28c133b0c768dd09b757634f33f301c7cb21d243b1f", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/postman/darwin.json b/ee/maintained-apps/outputs/postman/darwin.json index 08835d3fe21..5ad87f1e860 100644 --- a/ee/maintained-apps/outputs/postman/darwin.json +++ b/ee/maintained-apps/outputs/postman/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "12.22.3", + "version": "12.22.8", "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.22.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.22.8') < 0);" }, - "installer_url": "https://dl.pstmn.io/download/version/12.22.3/osx_arm64", + "installer_url": "https://dl.pstmn.io/download/version/12.22.8/osx_arm64", "install_script_ref": "0e85ef74", "uninstall_script_ref": "20883323", - "sha256": "3bbbce9cbfc8c6729ed60c4a29bdf67892dea86f126e1918feab80a7e0383114", + "sha256": "0d6e739925360e6482a9b557782b0ef031485d22d431c4b197fc9a03e18a48e7", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/postman/windows.json b/ee/maintained-apps/outputs/postman/windows.json index f6eec219608..f27495f44d1 100644 --- a/ee/maintained-apps/outputs/postman/windows.json +++ b/ee/maintained-apps/outputs/postman/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "12.22.3", + "version": "12.22.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.22.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.22.6') < 0);" }, - "installer_url": "https://dl.pstmn.io/download/version/12.22.3/windows_64", + "installer_url": "https://dl.pstmn.io/download/version/12.22.6/windows_64", "install_script_ref": "8594f0bc", "uninstall_script_ref": "fd59d029", - "sha256": "79289062c16bcb628408510784c52a4061dd873719bb4aa7bb7068968f956e5f", + "sha256": "376fb319813968b00de6e482ba31a689cde4d7946084578fb681eb7d679e472b", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/powerphotos/darwin.json b/ee/maintained-apps/outputs/powerphotos/darwin.json index f8876aad773..77a07a9e6a0 100644 --- a/ee/maintained-apps/outputs/powerphotos/darwin.json +++ b/ee/maintained-apps/outputs/powerphotos/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "3.4.2", + "version": "3.4.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos' AND version_compare(bundle_short_version, '3.4.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.fatcatsoftware.PowerPhotos' AND version_compare(bundle_short_version, '3.4.3') < 0);" }, "installer_url": "https://www.fatcatsoftware.com/powerphotos/PowerPhotos.zip", "install_script_ref": "51324247", diff --git a/ee/maintained-apps/outputs/prisma-browser/darwin.json b/ee/maintained-apps/outputs/prisma-browser/darwin.json index 43eefc42e92..9041cb133c3 100644 --- a/ee/maintained-apps/outputs/prisma-browser/darwin.json +++ b/ee/maintained-apps/outputs/prisma-browser/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "151.11.6.72", + "version": "151.19.2.76", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work' AND version_compare(bundle_short_version, '151.11.6.72') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.talon-sec.Work' AND version_compare(bundle_short_version, '151.19.2.76') < 0);" }, - "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/mac/packaged/universal/Prisma%20Access%20Browser-151.11.6.72-97040df1.pkg", + "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/mac/packaged/universal/Prisma%20Access%20Browser-151.19.2.76-dbaac40e.pkg", "install_script_ref": "827875fd", "uninstall_script_ref": "ff947f47", - "sha256": "c551f9862542880ce77a61e5240236ea7c85a50d1bad719879ad81f197d8f9fc", + "sha256": "c10ce77946325149654849fa2c01bb11ee0f64de3dcd8b6fe8273975a8332f71", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/prisma-browser/windows.json b/ee/maintained-apps/outputs/prisma-browser/windows.json index 47f1b0c08db..7f1c5a271f4 100644 --- a/ee/maintained-apps/outputs/prisma-browser/windows.json +++ b/ee/maintained-apps/outputs/prisma-browser/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "151.11.6.72", + "version": "151.19.2.76", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc' AND version_compare(version, '151.11.6.72') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Prisma Access Browser' AND publisher = 'Palo Alto Networks Inc' AND version_compare(version, '151.19.2.76') < 0);" }, - "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/win/packaged/x64/crx_signed_o4_stable_prisma_access_browser_installer_151_11_6_72-151.11.6.72-04445afd.msi", + "installer_url": "https://updates.talon-sec.com/releases/Prisma%20Access%20Browser/win/packaged/x64/crx_signed_o4_stable_prisma_access_browser_installer_151_19_2_76-151.19.2.76-8c93bfa9.msi", "install_script_ref": "22e48c46", "uninstall_script_ref": "84194ed8", - "sha256": "197bc3cf78aca9263a722325fb6f1da2d740e25037cf73217e4f13d62213ca06", + "sha256": "ef9ba6adef8536826173e3e2274c8d35121cd64a1a5214ba5ab5e8e318a35ece", "default_categories": [ "Browsers" ], diff --git a/ee/maintained-apps/outputs/proton-drive/darwin.json b/ee/maintained-apps/outputs/proton-drive/darwin.json index adc9b3eab70..b60de661ae4 100644 --- a/ee/maintained-apps/outputs/proton-drive/darwin.json +++ b/ee/maintained-apps/outputs/proton-drive/darwin.json @@ -1,22 +1,22 @@ { "versions": [ { - "version": "3.0.0", + "version": "3.0.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive' AND version_compare(bundle_short_version, '3.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonmail.drive' AND version_compare(bundle_short_version, '3.0.2') < 0);" }, - "installer_url": "https://proton.me/download/drive/macos/3.0.0/ProtonDrive-3.0.0.dmg", + "installer_url": "https://proton.me/download/drive/macos/3.0.2/ProtonDrive-3.0.2.dmg", "install_script_ref": "c00597c0", - "uninstall_script_ref": "fc6f5099", - "sha256": "b8c2b8b86b9c526c02c327bd27d25b279ce60ed96154f4ed304402f2e911647f", + "uninstall_script_ref": "ac89ef74", + "sha256": "c6e620053e14e492ee4041de73bf06bd48a9a5ea27d59ffeac3ca373936239c2", "default_categories": [ "Productivity" ] } ], "refs": { - "c00597c0": "#!/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 'ch.protonmail.drive'\nif [ -d \"$APPDIR/Proton Drive.app\" ]; then\n\tsudo mv \"$APPDIR/Proton Drive.app\" \"$TMPDIR/Proton Drive.app.bkp\" || exit $?\nfi\nif ! sudo cp -R \"$TMPDIR/Proton Drive.app\" \"$APPDIR\"; then\n\t# remove the partial copy so a failed install isn't inventoried as the new\n\t# version, then restore the previous version if there was one\n\tsudo rm -rf \"$APPDIR/Proton Drive.app\"\n\tif [ -d \"$TMPDIR/Proton Drive.app.bkp\" ]; then\n\t\tsudo mv \"$TMPDIR/Proton Drive.app.bkp\" \"$APPDIR/Proton Drive.app\"\n\tfi\n\texit 1\nfi\nrelaunch_application 'ch.protonmail.drive'\n", - "fc6f5099": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\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\nsudo rm -rf \"$APPDIR/Proton Drive.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/ch.protonmail.drive*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/FileProvider/ch.protonmail.drive.fileprovider'\ntrash $LOGGED_IN_USER '~/Library/Containers/ch.protonmail.drive*'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/*ch.protonmail.protondrive'\ntrash $LOGGED_IN_USER '~/Library/Preferences/ch.protonmail.drive*'\n" + "ac89ef74": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\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 'ch.protonmail.drive.agent'\nsudo rm -rf \"$APPDIR/Proton Drive.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/ch.protonmail.drive*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/FileProvider/ch.protonmail.drive.fileprovider'\ntrash $LOGGED_IN_USER '~/Library/Containers/ch.protonmail.drive*'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/*ch.protonmail.protondrive'\ntrash $LOGGED_IN_USER '~/Library/Preferences/ch.protonmail.drive*'\n", + "c00597c0": "#!/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 'ch.protonmail.drive'\nif [ -d \"$APPDIR/Proton Drive.app\" ]; then\n\tsudo mv \"$APPDIR/Proton Drive.app\" \"$TMPDIR/Proton Drive.app.bkp\" || exit $?\nfi\nif ! sudo cp -R \"$TMPDIR/Proton Drive.app\" \"$APPDIR\"; then\n\t# remove the partial copy so a failed install isn't inventoried as the new\n\t# version, then restore the previous version if there was one\n\tsudo rm -rf \"$APPDIR/Proton Drive.app\"\n\tif [ -d \"$TMPDIR/Proton Drive.app.bkp\" ]; then\n\t\tsudo mv \"$TMPDIR/Proton Drive.app.bkp\" \"$APPDIR/Proton Drive.app\"\n\tfi\n\texit 1\nfi\nrelaunch_application 'ch.protonmail.drive'\n" } } diff --git a/ee/maintained-apps/outputs/rider/windows.json b/ee/maintained-apps/outputs/rider/windows.json index ca729b28022..a8bae167852 100644 --- a/ee/maintained-apps/outputs/rider/windows.json +++ b/ee/maintained-apps/outputs/rider/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.1.4", + "version": "2026.2.0.2", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '261.26222.60') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'JetBrains Rider %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.400') < 0);" }, - "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2026.1.4.exe", + "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2026.2.0.2.exe", "install_script_ref": "d65fe1de", "uninstall_script_ref": "c5bf08c9", - "sha256": "403218ce37b7cb0f1ffbc0106d1fba016e372e9ab6bae6315095a89cd052528a", + "sha256": "102ed9151cac28e0e53fbb9faa77efaae7c69bd85d4e32015bb634f230e8817d", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/rive/darwin.json b/ee/maintained-apps/outputs/rive/darwin.json index e053a97011d..2690c5c133e 100644 --- a/ee/maintained-apps/outputs/rive/darwin.json +++ b/ee/maintained-apps/outputs/rive/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.8.5376", + "version": "0.8.5390", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor' AND version_compare(bundle_short_version, '0.8.5376') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.rive.editor' AND version_compare(bundle_short_version, '0.8.5390') < 0);" }, - "installer_url": "https://releases.rive.app/macos/0.8.5376/Rive.dmg", + "installer_url": "https://releases.rive.app/macos/0.8.5390/Rive.dmg", "install_script_ref": "9555d3e0", "uninstall_script_ref": "8f862785", - "sha256": "1ee5672e3a176accbf92dc71d8fc1bf3d7a62b5ad3d03eff0f6af03bf14b089e", + "sha256": "ab0d9851951f61794ce48c74263ce42f5bbe38d5f937338732d9551631a7725b", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/rustrover/darwin.json b/ee/maintained-apps/outputs/rustrover/darwin.json index 2ac164ccba6..ac37ede5d48 100644 --- a/ee/maintained-apps/outputs/rustrover/darwin.json +++ b/ee/maintained-apps/outputs/rustrover/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.2", + "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover' AND version_compare(bundle_short_version, '2026.2') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rustrover' AND version_compare(bundle_short_version, '2026.2.1') < 0);" }, - "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2-aarch64.dmg", + "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2.1-aarch64.dmg", "install_script_ref": "60ccf7c0", "uninstall_script_ref": "ae06496f", - "sha256": "fdc76f5dfd2a617c60222fae87d3ba23428800e57b67b410fa5579636c54372d", + "sha256": "bf3ec363e0608cb608044e4a50227b02e66d313a6912e1e671324e393f849513", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/rustrover/windows.json b/ee/maintained-apps/outputs/rustrover/windows.json index b57722179ba..d0e46c7bdf8 100644 --- a/ee/maintained-apps/outputs/rustrover/windows.json +++ b/ee/maintained-apps/outputs/rustrover/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.2", + "version": "2026.2.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.8665.323') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'RustRover %' AND publisher = 'JetBrains s.r.o.' AND version_compare(version, '262.9437.161') < 0);" }, - "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2.exe", + "installer_url": "https://download.jetbrains.com/rustrover/RustRover-2026.2.1.exe", "install_script_ref": "02283015", "uninstall_script_ref": "95b47a15", - "sha256": "6751b5216f5202bbef8a0734a86277215d68e4e66ac8b9c3479d4276a7b4f6c0", + "sha256": "98090ea876fa3168f6ebf6c6a8ada2fcf8d62c90cd1cb92f6cb2b4208be0654a", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/shapr3d/darwin.json b/ee/maintained-apps/outputs/shapr3d/darwin.json index 4d13cee050c..0c039fcb403 100644 --- a/ee/maintained-apps/outputs/shapr3d/darwin.json +++ b/ee/maintained-apps/outputs/shapr3d/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "26.140.0.11440", + "version": "26.141.0.11474", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr' AND version_compare(bundle_short_version, '26.140.0.11440') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.shapr3d.shapr' AND version_compare(bundle_short_version, '26.141.0.11474') < 0);" }, - "installer_url": "https://download.shapr3d.com/mac/Shapr3D-26.140.0.11440.dmg", + "installer_url": "https://download.shapr3d.com/mac/Shapr3D-26.141.0.11474.dmg", "install_script_ref": "aa7e3fbc", "uninstall_script_ref": "261544b8", - "sha256": "c33de6bcb131538bd988c6ffd30be66ea3fdad5916852056f516e5223e171ed4", + "sha256": "e5abdf4679812b7b2e7b94437d2a2b06346dc7ed05eb9a286f98c12bb68d9128", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/spokenly/darwin.json b/ee/maintained-apps/outputs/spokenly/darwin.json index 90ac4e79a5b..033a4448963 100644 --- a/ee/maintained-apps/outputs/spokenly/darwin.json +++ b/ee/maintained-apps/outputs/spokenly/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.27.9", + "version": "2.27.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.27.9') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.27.13') < 0);" }, - "installer_url": "https://cdn.spokenly.app/releases/macos/Spokenly-2.27.9.dmg", + "installer_url": "https://cdn.spokenly.app/releases/macos/Spokenly-2.27.13.dmg", "install_script_ref": "11a51e11", "uninstall_script_ref": "99a71452", - "sha256": "002269f56a297ff8972dae91e01b8269af3983394c93db88187c2e4438215c7d", + "sha256": "f0b2e17b243fa77d83c954695b3ba64ea0d1407cfd5402714c677ded7954e20d", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/spotify/darwin.json b/ee/maintained-apps/outputs/spotify/darwin.json index a8bca8f2662..f72f2f8297c 100644 --- a/ee/maintained-apps/outputs/spotify/darwin.json +++ b/ee/maintained-apps/outputs/spotify/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "1.2.95.452", + "version": "1.2.95.453", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client' AND version_compare(bundle_short_version, '1.2.95.452') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.spotify.client' AND version_compare(bundle_short_version, '1.2.95.453') < 0);" }, "installer_url": "https://download.scdn.co/SpotifyARM64.dmg", "install_script_ref": "b3966e25", diff --git a/ee/maintained-apps/outputs/spyder/windows.json b/ee/maintained-apps/outputs/spyder/windows.json index 6b8e021d503..9a22fc37a1e 100644 --- a/ee/maintained-apps/outputs/spyder/windows.json +++ b/ee/maintained-apps/outputs/spyder/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "6.1.5", + "version": "6.1.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE' AND version_compare(version, '6.1.5') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Spyder %' AND publisher = 'Spyder-IDE' AND version_compare(version, '6.1.6') < 0);" }, - "installer_url": "https://github.com/spyder-ide/spyder/releases/download/v6.1.5/Spyder-Windows-x86_64.exe", + "installer_url": "https://github.com/spyder-ide/spyder/releases/download/v6.1.6/Spyder-Windows-x86_64.exe", "install_script_ref": "6831586d", "uninstall_script_ref": "1fb72c38", - "sha256": "92005331137502c199fb9926501d5aeaec0e940cc54a69f1e3d0908473176472", + "sha256": "6e2f4abb7bfe4a6130fc8e053b571daad00289329af7ed135f46c82a9b325512", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/superwhisper/darwin.json b/ee/maintained-apps/outputs/superwhisper/darwin.json index 570a7568dbd..39702746ef3 100644 --- a/ee/maintained-apps/outputs/superwhisper/darwin.json +++ b/ee/maintained-apps/outputs/superwhisper/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.17.1", + "version": "2.17.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper' AND version_compare(bundle_short_version, '2.17.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.superduper.superwhisper' AND version_compare(bundle_short_version, '2.17.2') < 0);" }, - "installer_url": "https://builds.superwhisper.com/v2.17.1/superwhisper.zip", + "installer_url": "https://builds.superwhisper.com/v2.17.2/superwhisper.zip", "install_script_ref": "8f427eb4", "uninstall_script_ref": "27ca9133", - "sha256": "85a83aec8322269c7b0b18c12441e739c9795402bfa5d544e00f6037530f9597", + "sha256": "e8834889a6496c9a406ae2def050bf817e6c3566f4896f239cc35f3bd437a8cb", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/sync/darwin.json b/ee/maintained-apps/outputs/sync/darwin.json index 36351cbad47..033fb0e27f5 100644 --- a/ee/maintained-apps/outputs/sync/darwin.json +++ b/ee/maintained-apps/outputs/sync/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.2.60", + "version": "2.2.61", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop' AND version_compare(bundle_short_version, '2.2.60') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sync.desktop' AND version_compare(bundle_short_version, '2.2.61') < 0);" }, - "installer_url": "https://www10.sync.com/download/apple/Sync-2.2.60.dmg", + "installer_url": "https://www10.sync.com/download/apple/Sync-2.2.61.dmg", "install_script_ref": "6caa9cd1", "uninstall_script_ref": "0beaaab1", - "sha256": "4140c5fd9c6fb748329b43986113bafe71b6073bd844590167ab8c7d1651a1cf", + "sha256": "8e1d757e4878e8b5df15e80009e82c687c0a0b270f8f3e698a3659d2e9bb7f02", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/telegram/windows.json b/ee/maintained-apps/outputs/telegram/windows.json index 9eccf9e2414..5af7533462f 100644 --- a/ee/maintained-apps/outputs/telegram/windows.json +++ b/ee/maintained-apps/outputs/telegram/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.0.8", + "version": "7.0.9", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC' AND version_compare(version, '7.0.8') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Telegram Desktop' AND publisher = 'Telegram FZ-LLC' AND version_compare(version, '7.0.9') < 0);" }, - "installer_url": "https://github.com/telegramdesktop/tdesktop/releases/download/v7.0.8/tsetup-x64.7.0.8.exe", + "installer_url": "https://github.com/telegramdesktop/tdesktop/releases/download/v7.0.9/tsetup-x64.7.0.9.exe", "install_script_ref": "0b88a95e", "uninstall_script_ref": "42311f1b", - "sha256": "5fdd32cc29f07f578373aa7d74c0e68aa864b223cddea882394da31a60248183", + "sha256": "ad3cb06ad5444b5c599ba3b4023974e1da7630cd392b7e6fc9b6e6fed1e7e404", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/viscosity/darwin.json b/ee/maintained-apps/outputs/viscosity/darwin.json index cb02ed64b08..4e7e49d30c4 100644 --- a/ee/maintained-apps/outputs/viscosity/darwin.json +++ b/ee/maintained-apps/outputs/viscosity/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.13", + "version": "1.13.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity' AND version_compare(bundle_short_version, '1.13') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.viscosityvpn.Viscosity' AND version_compare(bundle_short_version, '1.13.1') < 0);" }, - "installer_url": "https://swupdate.sparklabs.com/download/mac/release/viscosity/Viscosity%201.13.dmg", + "installer_url": "https://swupdate.sparklabs.com/download/mac/release/viscosity/Viscosity%201.13.1.dmg", "install_script_ref": "c1aade9c", "uninstall_script_ref": "e73e99d6", - "sha256": "cf5f458ffaf0b8df9cd386d9630418171a939425985572a936ffca02a1e0cc0e", + "sha256": "362b97f2b69e1b096a146b1eb4acde6ea7e4edb32a75bf3f68ae2048c550b0ed", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/viscosity/windows.json b/ee/maintained-apps/outputs/viscosity/windows.json index a9e2009cf3f..164e2ef28a4 100644 --- a/ee/maintained-apps/outputs/viscosity/windows.json +++ b/ee/maintained-apps/outputs/viscosity/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.13.0.1877", + "version": "1.13.1.1884", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd' AND version_compare(version, '1.13.0.1877') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Viscosity %' AND publisher = 'SparkLabs Pty Ltd' AND version_compare(version, '1.13.1.1884') < 0);" }, - "installer_url": "https://swupdate.sparklabs.com/download/win/release/viscosity/Viscosity%20Installer%201.13.exe", + "installer_url": "https://swupdate.sparklabs.com/download/win/release/viscosity/Viscosity%20Installer%201.13.1.exe", "install_script_ref": "d37a65b5", "uninstall_script_ref": "175dc844", - "sha256": "b1a13a219206aefb83b3329bd69a996bc746dd79207cfbe7d77e3f2494e1a99e", + "sha256": "f90e51baa63819bec1efdfc83814adfa80d3c80c780fa25e9a47c2a806d84f44", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/webex/darwin.json b/ee/maintained-apps/outputs/webex/darwin.json index c84451027c2..8bf6c149742 100644 --- a/ee/maintained-apps/outputs/webex/darwin.json +++ b/ee/maintained-apps/outputs/webex/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "46.7.0.35472", + "version": "46.8.0.33593", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark' AND version_compare(bundle_short_version, '46.7.0.35472') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark' AND version_compare(bundle_short_version, '46.8.0.33593') < 0);" }, "installer_url": "https://binaries.webex.com/webex-macos-apple-silicon/Webex.dmg", "install_script_ref": "8ff3811b", diff --git a/ee/maintained-apps/outputs/whatsapp/darwin.json b/ee/maintained-apps/outputs/whatsapp/darwin.json index fc6794178f4..1621e2cd723 100644 --- a/ee/maintained-apps/outputs/whatsapp/darwin.json +++ b/ee/maintained-apps/outputs/whatsapp/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "26.31.19", + "version": "26.31.23", "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.31.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.31.23') < 0);" }, "installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?configuration=Release&src=whatsapp_downloads_page", "install_script_ref": "e288a4cd", diff --git a/ee/maintained-apps/outputs/windows-app/windows.json b/ee/maintained-apps/outputs/windows-app/windows.json index 01b76b5c05d..87c23199268 100644 --- a/ee/maintained-apps/outputs/windows-app/windows.json +++ b/ee/maintained-apps/outputs/windows-app/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.0.1247.0", + "version": "2.0.1314.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.' AND version_compare(version, '2.0.1247.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Windows App' AND publisher = 'Microsoft Corp.' AND version_compare(version, '2.0.1314.0') < 0);" }, - "installer_url": "https://res.cdn.office.net/remote-desktop-windows-client/42efb6cc-587d-446c-bf6a-06ab47b5c7ed/WindowsApp_x64_Release_2.0.1247.0.msix", + "installer_url": "https://res.cdn.office.net/remote-desktop-windows-client/0f85839e-d3e3-4d34-8b5a-b1265cc7e5ae/WindowsApp_x64_Release_2.0.1314.0.msix", "install_script_ref": "f3fab53b", "uninstall_script_ref": "3518ea18", - "sha256": "b83859dd5e7c729371c6af8413ad2a1421d33623b031cfb08c332d8403219125", + "sha256": "47ef7ce16de0a2a7925ac37d0fbce0e131f389737920eebfd1fdff6f696f34c4", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/wispr-flow/darwin.json b/ee/maintained-apps/outputs/wispr-flow/darwin.json index 862639d73df..181978828bf 100644 --- a/ee/maintained-apps/outputs/wispr-flow/darwin.json +++ b/ee/maintained-apps/outputs/wispr-flow/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.6.399", + "version": "1.6.447", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow' AND version_compare(bundle_short_version, '1.6.399') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.wispr-flow' AND version_compare(bundle_short_version, '1.6.447') < 0);" }, - "installer_url": "https://dl.wisprflow.com/wispr-flow/darwin/arm64/dmgs/Flow-v1.6.399.dmg", + "installer_url": "https://dl.wisprflow.com/wispr-flow/darwin/arm64/dmgs/Flow-v1.6.447.dmg", "install_script_ref": "a95fa7bb", "uninstall_script_ref": "e0cf2e96", - "sha256": "483a169acf5080a78883af8a51589033daa159f99aaf903d28ab74fbba0642d3", + "sha256": "6ed96fad603b80d731cce142a631062a62c4d7687a3e1406f79f7dd837339c47", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/workflowy/darwin.json b/ee/maintained-apps/outputs/workflowy/darwin.json index 8db37b5c79a..925445a1ac3 100644 --- a/ee/maintained-apps/outputs/workflowy/darwin.json +++ b/ee/maintained-apps/outputs/workflowy/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "4.3.2608041311", + "version": "4.3.2608061204", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2608041311') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2608061204') < 0);" }, - "installer_url": "https://github.com/workflowy/desktop/releases/download/v4.3.2608041311/WorkFlowy.zip", + "installer_url": "https://github.com/workflowy/desktop/releases/download/v4.3.2608061204/WorkFlowy.zip", "install_script_ref": "b65ecb27", "uninstall_script_ref": "71fe81c3", - "sha256": "602a8b9336b3da3ec4d496f648cca88004e5cfdf993405aa26358be606644b6a", + "sha256": "1232f4ee399ad832c843735aba2cdbe10740175dd639649b099a298605e8084a", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/xnconvert/windows.json b/ee/maintained-apps/outputs/xnconvert/windows.json index 2a5cf522394..c547b42fff5 100644 --- a/ee/maintained-apps/outputs/xnconvert/windows.json +++ b/ee/maintained-apps/outputs/xnconvert/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.114.0.0", + "version": "1.115.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.114.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'XnConvert' AND publisher = 'Pierre-e Gougelet' AND version_compare(version, '1.115.0.0') < 0);" }, - "installer_url": "https://download.xnview.com/old_versions/XnConvert/XnConvert-1.114.0-win-x64.exe", + "installer_url": "https://download.xnview.com/old_versions/XnConvert/XnConvert-1.115.0-win-x64.exe", "install_script_ref": "7eb6b47e", "uninstall_script_ref": "1714e167", - "sha256": "5d8d49122d4a2ad001a3329acd60695beb5e0e9fb5adb74a65cfc41b012ee5b8", + "sha256": "5cb74ae1ff1a0bb41159a31a2c01ba10054df3926c855cf5f318347281dd53ba", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/zen/darwin.json b/ee/maintained-apps/outputs/zen/darwin.json index 7ab4628a848..a555899d86c 100644 --- a/ee/maintained-apps/outputs/zen/darwin.json +++ b/ee/maintained-apps/outputs/zen/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.21.10b", + "version": "1.21.12b", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.10b') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.12b') < 0);" }, - "installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21.10b/zen.macos-universal.dmg", + "installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21.12b/zen.macos-universal.dmg", "install_script_ref": "67e0fe5c", "uninstall_script_ref": "6fa48a6f", - "sha256": "324e164cf9774e0463f88c523dcb95871732b37936810a7ed1fee364cfe8c236", + "sha256": "dba6a9674d3199ac9b1ea8753c5f08486fe91de36ff113f7339f34423ffe5ea0", "default_categories": [ "Browsers" ] From 3483911f1d45250c30d59bc656afad1df885316e Mon Sep 17 00:00:00 2001 From: Allen Houchins Date: Fri, 7 Aug 2026 10:20:37 -0500 Subject: [PATCH 2/4] Fix FMA validation failures Webex (darwin): the 46.8.0 cask reports 46.8.0.33593, but the DMG it points at installs 46.8.0.35593, so the version check could never match. Revert the output to the last known good 46.7.0.35472 and freeze the input so the ingester stops republishing the bad version. XnSoft XnConvert (windows): XnView republished XnConvert-1.115.0-win-x64.exe at the same URL, so winget's manifest hash is stale. Verified the served file is still 1.115.0.0 and updated the hash. NordPass (windows): downloads.npass.app serves the latest build, and NordPass has shipped 7.9.4 while winget still lists 7.9.3. A new hash alone would have traded the hash mismatch for a version mismatch, so bump the version to 7.9.4 (matching the darwin output) along with the hash of the file being served. Evernote (windows): the uninstall reported success while the app was still registered. Its electron-builder NSIS uninstaller copies itself to %TEMP% and relaunches detached when no "_?=" argument is given, so the process the script waits on exits 0 before the removal finishes. Wait for the uninstall registry entry to actually disappear before reporting success. --- ee/maintained-apps/inputs/homebrew/webex.json | 3 ++- .../winget/scripts/evernote_uninstall.ps1 | 25 +++++++++++++++++++ .../outputs/evernote/windows.json | 4 +-- .../outputs/nordpass/windows.json | 6 ++--- ee/maintained-apps/outputs/webex/darwin.json | 4 +-- .../outputs/xnconvert/windows.json | 2 +- 6 files changed, 35 insertions(+), 9 deletions(-) diff --git a/ee/maintained-apps/inputs/homebrew/webex.json b/ee/maintained-apps/inputs/homebrew/webex.json index 71825a74710..73ce699329d 100644 --- a/ee/maintained-apps/inputs/homebrew/webex.json +++ b/ee/maintained-apps/inputs/homebrew/webex.json @@ -5,5 +5,6 @@ "installer_format": "dmg", "slug": "webex/darwin", "install_script_path": "ee/maintained-apps/inputs/homebrew/scripts/webex_install.sh", - "default_categories": ["Communication"] + "default_categories": ["Communication"], + "frozen": true } diff --git a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 index 0cdc5a12499..30bf6058225 100644 --- a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 +++ b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 @@ -71,6 +71,31 @@ foreach ($key in $uninstallKeys) { # Prints the exit code Write-Host "Uninstall exit code: $exitCode" + + # Without an "_?=" argument, an NSIS uninstaller copies + # itself to %TEMP%, relaunches the copy detached, and the process we + # waited on exits 0 immediately -- so the removal is still in flight + # here. Poll the uninstall registry key until the entry disappears so + # this script only reports success once the app is really gone. + if ($exitCode -eq 0) { + $deadline = (Get-Date).AddSeconds(300) + do { + Start-Sleep -Seconds 5 + $stillInstalled = Get-ChildItem ` + -Path @($machineKey, $machineKey32on64) ` + -ErrorAction SilentlyContinue | + ForEach-Object { Get-ItemProperty $_.PSPath } | + Where-Object { $_.DisplayName -like $softwareNameLike } + } while ($stillInstalled -and (Get-Date) -lt $deadline) + + if ($stillInstalled) { + Write-Host "'$softwareName' is still registered after waiting." + $exitCode = 1 + } else { + Write-Host "'$softwareName' was removed." + } + } + # Exit the loop once the software is found and uninstalled. break } diff --git a/ee/maintained-apps/outputs/evernote/windows.json b/ee/maintained-apps/outputs/evernote/windows.json index 4feee2aaf94..d75efda191e 100644 --- a/ee/maintained-apps/outputs/evernote/windows.json +++ b/ee/maintained-apps/outputs/evernote/windows.json @@ -8,7 +8,7 @@ }, "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.28.2-win-ddl-stage-20260731135230-91a1a6c7bfcaabc8722ecc0ac9136436611045cf-setup.exe", "install_script_ref": "5820d576", - "uninstall_script_ref": "d4142835", + "uninstall_script_ref": "a97ad90f", "sha256": "43c3515bd4019201b96776843aafc0f8c8f613e151599c8054b71d83a5be5b74", "default_categories": [ "Productivity" @@ -17,6 +17,6 @@ ], "refs": { "5820d576": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", - "d4142835": "# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID\n# variable\n# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM\n# when installed with /allusers, e.g. \"Evernote 11.24.3 (All Users)\". The\n# \"(All Users)\" suffix is locale-dependent, so match on the \"Evernote\" prefix\n# only. Its QuietUninstallString runs \"Uninstall Evernote.exe\" /allusers /S,\n# which also closes the running tray app.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# electron-builder NSIS uninstaller; /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n # Get the uninstall command. Some uninstallers do not include\n # 'QuietUninstallString' and require a flag to run silently.\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n # The uninstall command may contain command and args, like:\n # \"C:\\Program Files\\Software\\uninstall.exe\" /SILENT\n # Split the command and args\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n # Start process and track exit code\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n # Prints the exit code\n Write-Host \"Uninstall exit code: $exitCode\"\n # Exit the loop once the software is found and uninstalled.\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n # Change exit code to 0 if you don't want to fail if uninstaller is not\n # found. This could happen if program was already uninstalled.\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n" + "a97ad90f": "# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID\n# variable\n# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM\n# when installed with /allusers, e.g. \"Evernote 11.24.3 (All Users)\". The\n# \"(All Users)\" suffix is locale-dependent, so match on the \"Evernote\" prefix\n# only. Its QuietUninstallString runs \"Uninstall Evernote.exe\" /allusers /S,\n# which also closes the running tray app.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# electron-builder NSIS uninstaller; /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n # Get the uninstall command. Some uninstallers do not include\n # 'QuietUninstallString' and require a flag to run silently.\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n # The uninstall command may contain command and args, like:\n # \"C:\\Program Files\\Software\\uninstall.exe\" /SILENT\n # Split the command and args\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n # Start process and track exit code\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n # Prints the exit code\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument, an NSIS uninstaller copies\n # itself to %TEMP%, relaunches the copy detached, and the process we\n # waited on exits 0 immediately -- so the removal is still in flight\n # here. Poll the uninstall registry key until the entry disappears so\n # this script only reports success once the app is really gone.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n $stillInstalled = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath } |\n Where-Object { $_.DisplayName -like $softwareNameLike }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"'$softwareName' is still registered after waiting.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n # Exit the loop once the software is found and uninstalled.\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n # Change exit code to 0 if you don't want to fail if uninstaller is not\n # found. This could happen if program was already uninstalled.\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n" } } diff --git a/ee/maintained-apps/outputs/nordpass/windows.json b/ee/maintained-apps/outputs/nordpass/windows.json index 9a4f0aff4a9..19293ce9c6e 100644 --- a/ee/maintained-apps/outputs/nordpass/windows.json +++ b/ee/maintained-apps/outputs/nordpass/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.9.3", + "version": "7.9.4", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.9.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'NordPass' AND publisher = 'NordPass Team' AND version_compare(version, '7.9.4') < 0);" }, "installer_url": "https://downloads.npass.app/windows/NordPassSetup.exe", "install_script_ref": "17ae065a", "uninstall_script_ref": "472381ce", - "sha256": "cb2392c7733236335243441caf89aaa0dfc7ce028e9fb6f27e43254ce1c94fe5", + "sha256": "e43a35020765d99a7f30e999051929bbd54729ca047a4e27001a85830f7282a1", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/webex/darwin.json b/ee/maintained-apps/outputs/webex/darwin.json index 8bf6c149742..c84451027c2 100644 --- a/ee/maintained-apps/outputs/webex/darwin.json +++ b/ee/maintained-apps/outputs/webex/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "46.8.0.33593", + "version": "46.7.0.35472", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark' AND version_compare(bundle_short_version, '46.8.0.33593') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'Cisco-Systems.Spark' AND version_compare(bundle_short_version, '46.7.0.35472') < 0);" }, "installer_url": "https://binaries.webex.com/webex-macos-apple-silicon/Webex.dmg", "install_script_ref": "8ff3811b", diff --git a/ee/maintained-apps/outputs/xnconvert/windows.json b/ee/maintained-apps/outputs/xnconvert/windows.json index c547b42fff5..91d090a430b 100644 --- a/ee/maintained-apps/outputs/xnconvert/windows.json +++ b/ee/maintained-apps/outputs/xnconvert/windows.json @@ -9,7 +9,7 @@ "installer_url": "https://download.xnview.com/old_versions/XnConvert/XnConvert-1.115.0-win-x64.exe", "install_script_ref": "7eb6b47e", "uninstall_script_ref": "1714e167", - "sha256": "5cb74ae1ff1a0bb41159a31a2c01ba10054df3926c855cf5f318347281dd53ba", + "sha256": "3432bde6b850945c93809418462bb858ec5c57602b863b7b92406a0328dded5b", "default_categories": [ "Productivity" ] From 10480c85ba4327a952d0fc3ce5795266c374db16 Mon Sep 17 00:00:00 2001 From: Allen Houchins Date: Fri, 7 Aug 2026 10:59:18 -0500 Subject: [PATCH 3/4] Make Evernote's post-uninstall registry check fail closed The poll suppressed errors with -ErrorAction SilentlyContinue and read an empty result as proof of removal, so a failed registry query looked identical to a successful uninstall. The validator re-checks afterward, but on a real host the script's exit code is the only signal, so Fleet would have recorded a successful uninstall with Evernote still installed. Only an enumeration that actually succeeds may now clear the flag. Individual keys are still read leniently, since the uninstaller deletes keys while we walk them and those transient misses resolve on the next pass. --- .../winget/scripts/evernote_uninstall.ps1 | 29 +++++++++++++++---- .../outputs/evernote/windows.json | 6 ++-- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 index 30bf6058225..ab2e239c149 100644 --- a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 +++ b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 @@ -81,15 +81,32 @@ foreach ($key in $uninstallKeys) { $deadline = (Get-Date).AddSeconds(300) do { Start-Sleep -Seconds 5 - $stillInstalled = Get-ChildItem ` - -Path @($machineKey, $machineKey32on64) ` - -ErrorAction SilentlyContinue | - ForEach-Object { Get-ItemProperty $_.PSPath } | - Where-Object { $_.DisplayName -like $softwareNameLike } + # Fail closed: only an enumeration that actually succeeds may + # be read as proof of removal. If the query itself fails, the + # empty result says nothing about whether Evernote is gone, + # so keep the previous "still installed" answer rather than + # reporting a successful uninstall. Individual keys are still + # read leniently: the uninstaller deletes keys while we walk + # them, and those transient misses resolve on the next pass. + $stillInstalled = $true + try { + $stillInstalled = [bool](Get-ChildItem ` + -Path @($machineKey, $machineKey32on64) ` + -ErrorAction Stop | + ForEach-Object { + Get-ItemProperty $_.PSPath ` + -ErrorAction SilentlyContinue + } | + Where-Object { + $_.DisplayName -like $softwareNameLike + }) + } catch { + Write-Host "Could not query the uninstall registry: $_" + } } while ($stillInstalled -and (Get-Date) -lt $deadline) if ($stillInstalled) { - Write-Host "'$softwareName' is still registered after waiting." + Write-Host "Could not confirm '$softwareName' was removed." $exitCode = 1 } else { Write-Host "'$softwareName' was removed." diff --git a/ee/maintained-apps/outputs/evernote/windows.json b/ee/maintained-apps/outputs/evernote/windows.json index d75efda191e..e813a48bbc2 100644 --- a/ee/maintained-apps/outputs/evernote/windows.json +++ b/ee/maintained-apps/outputs/evernote/windows.json @@ -8,7 +8,7 @@ }, "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.28.2-win-ddl-stage-20260731135230-91a1a6c7bfcaabc8722ecc0ac9136436611045cf-setup.exe", "install_script_ref": "5820d576", - "uninstall_script_ref": "a97ad90f", + "uninstall_script_ref": "0f7cfea8", "sha256": "43c3515bd4019201b96776843aafc0f8c8f613e151599c8054b71d83a5be5b74", "default_categories": [ "Productivity" @@ -16,7 +16,7 @@ } ], "refs": { - "5820d576": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", - "a97ad90f": "# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID\n# variable\n# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM\n# when installed with /allusers, e.g. \"Evernote 11.24.3 (All Users)\". The\n# \"(All Users)\" suffix is locale-dependent, so match on the \"Evernote\" prefix\n# only. Its QuietUninstallString runs \"Uninstall Evernote.exe\" /allusers /S,\n# which also closes the running tray app.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# electron-builder NSIS uninstaller; /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n # Get the uninstall command. Some uninstallers do not include\n # 'QuietUninstallString' and require a flag to run silently.\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n # The uninstall command may contain command and args, like:\n # \"C:\\Program Files\\Software\\uninstall.exe\" /SILENT\n # Split the command and args\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n # Start process and track exit code\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n # Prints the exit code\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument, an NSIS uninstaller copies\n # itself to %TEMP%, relaunches the copy detached, and the process we\n # waited on exits 0 immediately -- so the removal is still in flight\n # here. Poll the uninstall registry key until the entry disappears so\n # this script only reports success once the app is really gone.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n $stillInstalled = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath } |\n Where-Object { $_.DisplayName -like $softwareNameLike }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"'$softwareName' is still registered after waiting.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n # Exit the loop once the software is found and uninstalled.\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n # Change exit code to 0 if you don't want to fail if uninstaller is not\n # found. This could happen if program was already uninstalled.\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n" + "0f7cfea8": "# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID\n# variable\n# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM\n# when installed with /allusers, e.g. \"Evernote 11.24.3 (All Users)\". The\n# \"(All Users)\" suffix is locale-dependent, so match on the \"Evernote\" prefix\n# only. Its QuietUninstallString runs \"Uninstall Evernote.exe\" /allusers /S,\n# which also closes the running tray app.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# electron-builder NSIS uninstaller; /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n # Get the uninstall command. Some uninstallers do not include\n # 'QuietUninstallString' and require a flag to run silently.\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n # The uninstall command may contain command and args, like:\n # \"C:\\Program Files\\Software\\uninstall.exe\" /SILENT\n # Split the command and args\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n # Start process and track exit code\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n # Prints the exit code\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument, an NSIS uninstaller copies\n # itself to %TEMP%, relaunches the copy detached, and the process we\n # waited on exits 0 immediately -- so the removal is still in flight\n # here. Poll the uninstall registry key until the entry disappears so\n # this script only reports success once the app is really gone.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n # Fail closed: only an enumeration that actually succeeds may\n # be read as proof of removal. If the query itself fails, the\n # empty result says nothing about whether Evernote is gone,\n # so keep the previous \"still installed\" answer rather than\n # reporting a successful uninstall. Individual keys are still\n # read leniently: the uninstaller deletes keys while we walk\n # them, and those transient misses resolve on the next pass.\n $stillInstalled = $true\n try {\n $stillInstalled = [bool](Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction Stop |\n ForEach-Object {\n Get-ItemProperty $_.PSPath `\n -ErrorAction SilentlyContinue\n } |\n Where-Object {\n $_.DisplayName -like $softwareNameLike\n })\n } catch {\n Write-Host \"Could not query the uninstall registry: $_\"\n }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"Could not confirm '$softwareName' was removed.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n # Exit the loop once the software is found and uninstalled.\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n # Change exit code to 0 if you don't want to fail if uninstaller is not\n # found. This could happen if program was already uninstalled.\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n", + "5820d576": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" } } From 3b051b067603183c7f3d344092ee76a0b007355f Mon Sep 17 00:00:00 2001 From: Allen Houchins Date: Fri, 7 Aug 2026 11:30:42 -0500 Subject: [PATCH 4/4] Trim comments in Evernote uninstall script --- .../winget/scripts/evernote_uninstall.ps1 | 38 ++++--------------- .../outputs/evernote/windows.json | 4 +- 2 files changed, 10 insertions(+), 32 deletions(-) diff --git a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 index ab2e239c149..31c8b2f7a24 100644 --- a/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 +++ b/ee/maintained-apps/inputs/winget/scripts/evernote_uninstall.ps1 @@ -1,15 +1,10 @@ -# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID -# variable -# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM -# when installed with /allusers, e.g. "Evernote 11.24.3 (All Users)". The -# "(All Users)" suffix is locale-dependent, so match on the "Evernote" prefix -# only. Its QuietUninstallString runs "Uninstall Evernote.exe" /allusers /S, -# which also closes the running tray app. +# The "(All Users)" suffix in Evernote's DisplayName is locale-dependent, so +# match on the "Evernote" prefix only. $softwareName = "Evernote" $softwareNameLike = "Evernote*" -# electron-builder NSIS uninstaller; /allusers matches the machine-wide install +# /allusers matches the machine-wide install $uninstallArgs = "/allusers /S" $machineKey = ` @@ -30,17 +25,12 @@ $foundUninstaller = $false foreach ($key in $uninstallKeys) { if ($key.DisplayName -like $softwareNameLike) { $foundUninstaller = $true - # Get the uninstall command. Some uninstallers do not include - # 'QuietUninstallString' and require a flag to run silently. $uninstallCommand = if ($key.QuietUninstallString) { $key.QuietUninstallString } else { $key.UninstallString } - # The uninstall command may contain command and args, like: - # "C:\Program Files\Software\uninstall.exe" /SILENT - # Split the command and args $splitArgs = $uninstallCommand.Split('"') if ($splitArgs.Length -gt 1) { if ($splitArgs.Length -eq 3) { @@ -65,29 +55,20 @@ foreach ($key in $uninstallKeys) { $processOptions.ArgumentList = "$uninstallArgs" } - # Start process and track exit code $process = Start-Process @processOptions $exitCode = $process.ExitCode - # Prints the exit code Write-Host "Uninstall exit code: $exitCode" - # Without an "_?=" argument, an NSIS uninstaller copies - # itself to %TEMP%, relaunches the copy detached, and the process we - # waited on exits 0 immediately -- so the removal is still in flight - # here. Poll the uninstall registry key until the entry disappears so - # this script only reports success once the app is really gone. + # Without an "_?=" argument an NSIS uninstaller relaunches + # itself from %TEMP% and exits 0 before the removal finishes, so wait + # for the registry entry to clear. if ($exitCode -eq 0) { $deadline = (Get-Date).AddSeconds(300) do { Start-Sleep -Seconds 5 - # Fail closed: only an enumeration that actually succeeds may - # be read as proof of removal. If the query itself fails, the - # empty result says nothing about whether Evernote is gone, - # so keep the previous "still installed" answer rather than - # reporting a successful uninstall. Individual keys are still - # read leniently: the uninstaller deletes keys while we walk - # them, and those transient misses resolve on the next pass. + # Fail closed: a failed query is not proof of removal. Keys are + # read leniently since the uninstaller deletes them as we walk. $stillInstalled = $true try { $stillInstalled = [bool](Get-ChildItem ` @@ -113,15 +94,12 @@ foreach ($key in $uninstallKeys) { } } - # Exit the loop once the software is found and uninstalled. break } } if (-not $foundUninstaller) { Write-Host "Uninstaller for '$softwareName' not found." - # Change exit code to 0 if you don't want to fail if uninstaller is not - # found. This could happen if program was already uninstalled. $exitCode = 1 } diff --git a/ee/maintained-apps/outputs/evernote/windows.json b/ee/maintained-apps/outputs/evernote/windows.json index e813a48bbc2..b77bf8f7dfa 100644 --- a/ee/maintained-apps/outputs/evernote/windows.json +++ b/ee/maintained-apps/outputs/evernote/windows.json @@ -8,7 +8,7 @@ }, "installer_url": "https://win.desktop.evernote.com/builds/Evernote-11.28.2-win-ddl-stage-20260731135230-91a1a6c7bfcaabc8722ecc0ac9136436611045cf-setup.exe", "install_script_ref": "5820d576", - "uninstall_script_ref": "0f7cfea8", + "uninstall_script_ref": "0c86d350", "sha256": "43c3515bd4019201b96776843aafc0f8c8f613e151599c8054b71d83a5be5b74", "default_categories": [ "Productivity" @@ -16,7 +16,7 @@ } ], "refs": { - "0f7cfea8": "# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID\n# variable\n# Evernote (electron-builder NSIS) registers a versioned DisplayName in HKLM\n# when installed with /allusers, e.g. \"Evernote 11.24.3 (All Users)\". The\n# \"(All Users)\" suffix is locale-dependent, so match on the \"Evernote\" prefix\n# only. Its QuietUninstallString runs \"Uninstall Evernote.exe\" /allusers /S,\n# which also closes the running tray app.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# electron-builder NSIS uninstaller; /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n # Get the uninstall command. Some uninstallers do not include\n # 'QuietUninstallString' and require a flag to run silently.\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n # The uninstall command may contain command and args, like:\n # \"C:\\Program Files\\Software\\uninstall.exe\" /SILENT\n # Split the command and args\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n # Start process and track exit code\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n # Prints the exit code\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument, an NSIS uninstaller copies\n # itself to %TEMP%, relaunches the copy detached, and the process we\n # waited on exits 0 immediately -- so the removal is still in flight\n # here. Poll the uninstall registry key until the entry disappears so\n # this script only reports success once the app is really gone.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n # Fail closed: only an enumeration that actually succeeds may\n # be read as proof of removal. If the query itself fails, the\n # empty result says nothing about whether Evernote is gone,\n # so keep the previous \"still installed\" answer rather than\n # reporting a successful uninstall. Individual keys are still\n # read leniently: the uninstaller deletes keys while we walk\n # them, and those transient misses resolve on the next pass.\n $stillInstalled = $true\n try {\n $stillInstalled = [bool](Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction Stop |\n ForEach-Object {\n Get-ItemProperty $_.PSPath `\n -ErrorAction SilentlyContinue\n } |\n Where-Object {\n $_.DisplayName -like $softwareNameLike\n })\n } catch {\n Write-Host \"Could not query the uninstall registry: $_\"\n }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"Could not confirm '$softwareName' was removed.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n # Exit the loop once the software is found and uninstalled.\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n # Change exit code to 0 if you don't want to fail if uninstaller is not\n # found. This could happen if program was already uninstalled.\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n", + "0c86d350": "# The \"(All Users)\" suffix in Evernote's DisplayName is locale-dependent, so\n# match on the \"Evernote\" prefix only.\n$softwareName = \"Evernote\"\n\n$softwareNameLike = \"Evernote*\"\n\n# /allusers matches the machine-wide install\n$uninstallArgs = \"/allusers /S\"\n\n$machineKey = `\n 'HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n$machineKey32on64 = `\n 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\*'\n\n$exitCode = 0\n\ntry {\n\n[array]$uninstallKeys = Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction SilentlyContinue |\n ForEach-Object { Get-ItemProperty $_.PSPath }\n\n$foundUninstaller = $false\nforeach ($key in $uninstallKeys) {\n if ($key.DisplayName -like $softwareNameLike) {\n $foundUninstaller = $true\n $uninstallCommand = if ($key.QuietUninstallString) {\n $key.QuietUninstallString\n } else {\n $key.UninstallString\n }\n\n $splitArgs = $uninstallCommand.Split('\"')\n if ($splitArgs.Length -gt 1) {\n if ($splitArgs.Length -eq 3) {\n $uninstallArgs = \"$( $splitArgs[2] ) $uninstallArgs\".Trim()\n } elseif ($splitArgs.Length -gt 3) {\n Throw `\n \"Uninstall command contains multiple quoted strings. \" +\n \"Please update the uninstall script.`n\" +\n \"Uninstall command: $uninstallCommand\"\n }\n $uninstallCommand = $splitArgs[1]\n }\n Write-Host \"Uninstall command: $uninstallCommand\"\n Write-Host \"Uninstall args: $uninstallArgs\"\n\n $processOptions = @{\n FilePath = $uninstallCommand\n PassThru = $true\n Wait = $true\n }\n if ($uninstallArgs -ne '') {\n $processOptions.ArgumentList = \"$uninstallArgs\"\n }\n\n $process = Start-Process @processOptions\n $exitCode = $process.ExitCode\n\n Write-Host \"Uninstall exit code: $exitCode\"\n\n # Without an \"_?=\" argument an NSIS uninstaller relaunches\n # itself from %TEMP% and exits 0 before the removal finishes, so wait\n # for the registry entry to clear.\n if ($exitCode -eq 0) {\n $deadline = (Get-Date).AddSeconds(300)\n do {\n Start-Sleep -Seconds 5\n # Fail closed: a failed query is not proof of removal. Keys are\n # read leniently since the uninstaller deletes them as we walk.\n $stillInstalled = $true\n try {\n $stillInstalled = [bool](Get-ChildItem `\n -Path @($machineKey, $machineKey32on64) `\n -ErrorAction Stop |\n ForEach-Object {\n Get-ItemProperty $_.PSPath `\n -ErrorAction SilentlyContinue\n } |\n Where-Object {\n $_.DisplayName -like $softwareNameLike\n })\n } catch {\n Write-Host \"Could not query the uninstall registry: $_\"\n }\n } while ($stillInstalled -and (Get-Date) -lt $deadline)\n\n if ($stillInstalled) {\n Write-Host \"Could not confirm '$softwareName' was removed.\"\n $exitCode = 1\n } else {\n Write-Host \"'$softwareName' was removed.\"\n }\n }\n\n break\n }\n}\n\nif (-not $foundUninstaller) {\n Write-Host \"Uninstaller for '$softwareName' not found.\"\n $exitCode = 1\n}\n\n} catch {\n Write-Host \"Error: $_\"\n $exitCode = 1\n}\n\nExit $exitCode\n", "5820d576": "# Learn more about .exe install scripts:\n# http://fleetdm.com/learn-more-about/exe-install-scripts\n\n$exeFilePath = \"${env:INSTALLER_PATH}\"\n\ntry {\n\n# Evernote uses an electron-builder NSIS installer. It defaults to a per-user\n# install, so /allusers is required for a machine-wide install alongside the\n# NSIS /S silent flag.\n$processOptions = @{\n FilePath = \"$exeFilePath\"\n ArgumentList = \"/allusers /S\"\n PassThru = $true\n Wait = $true\n}\n\n# Start process and track exit code\n$process = Start-Process @processOptions\n$exitCode = $process.ExitCode\n\n# Prints the exit code\nWrite-Host \"Install exit code: $exitCode\"\nExit $exitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n" } }