From eeef20a0c641b3e8ea999620a6d2c70cd7929430 Mon Sep 17 00:00:00 2001 From: fleet-release <80479975+fleet-release@users.noreply.github.com> Date: Sat, 21 Mar 2026 11:31:43 -0700 Subject: [PATCH] Update Fleet-maintained apps (#42209) Automated ingestion of latest Fleet-maintained app data. Co-authored-by: mostlikelee <16102903+mostlikelee@users.noreply.github.com> --- ee/maintained-apps/outputs/1password/windows.json | 10 +++++----- ee/maintained-apps/outputs/arc/darwin.json | 6 +++--- ee/maintained-apps/outputs/brave-browser/darwin.json | 6 +++--- .../outputs/brave-browser/windows.json | 6 +++--- ee/maintained-apps/outputs/bruno/darwin.json | 6 +++--- ee/maintained-apps/outputs/claude/darwin.json | 6 +++--- ee/maintained-apps/outputs/claude/windows.json | 8 ++++---- ee/maintained-apps/outputs/connect-fonts/darwin.json | 6 +++--- ee/maintained-apps/outputs/cursor/darwin.json | 6 +++--- ee/maintained-apps/outputs/dialpad/darwin.json | 6 +++--- ee/maintained-apps/outputs/firefox@esr/darwin.json | 6 +++--- ee/maintained-apps/outputs/firefox@esr/windows.json | 6 +++--- ee/maintained-apps/outputs/front/darwin.json | 6 +++--- ee/maintained-apps/outputs/gimp/windows.json | 6 +++--- ee/maintained-apps/outputs/goland/darwin.json | 6 +++--- ee/maintained-apps/outputs/google-chrome/darwin.json | 2 +- .../outputs/google-chrome/windows.json | 2 +- ee/maintained-apps/outputs/granola/darwin.json | 6 +++--- ee/maintained-apps/outputs/linear-linear/darwin.json | 6 +++--- ee/maintained-apps/outputs/loom/darwin.json | 6 +++--- .../outputs/microsoft-edge/darwin.json | 6 +++--- .../outputs/microsoft-edge/windows.json | 6 +++--- .../outputs/microsoft-excel/darwin.json | 2 +- .../outputs/microsoft-teams/darwin.json | 6 +++--- .../outputs/microsoft-word/darwin.json | 2 +- ee/maintained-apps/outputs/nextcloud/darwin.json | 12 ++++++------ ee/maintained-apps/outputs/nova/darwin.json | 6 +++--- ee/maintained-apps/outputs/obs/windows.json | 6 +++--- ee/maintained-apps/outputs/okta-verify/darwin.json | 10 +++++----- ee/maintained-apps/outputs/ollama/darwin.json | 6 +++--- ee/maintained-apps/outputs/postman/darwin.json | 6 +++--- ee/maintained-apps/outputs/postman/windows.json | 6 +++--- ee/maintained-apps/outputs/royal-tsx/darwin.json | 6 +++--- ee/maintained-apps/outputs/signal/darwin.json | 6 +++--- ee/maintained-apps/outputs/spotify/windows.json | 6 +++--- ee/maintained-apps/outputs/surfshark/darwin.json | 6 +++--- ee/maintained-apps/outputs/tailscale-app/darwin.json | 10 +++++----- ee/maintained-apps/outputs/tailscale/windows.json | 6 +++--- .../outputs/visual-studio-code/darwin.json | 6 +++--- .../outputs/visual-studio-code/windows.json | 6 +++--- ee/maintained-apps/outputs/warp/darwin.json | 4 ++-- ee/maintained-apps/outputs/windsurf/darwin.json | 6 +++--- ee/maintained-apps/outputs/zed/darwin.json | 6 +++--- 43 files changed, 130 insertions(+), 130 deletions(-) diff --git a/ee/maintained-apps/outputs/1password/windows.json b/ee/maintained-apps/outputs/1password/windows.json index d3b10b9f80..0839cbdff0 100644 --- a/ee/maintained-apps/outputs/1password/windows.json +++ b/ee/maintained-apps/outputs/1password/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "8.12.5", + "version": "8.12.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.';" }, - "installer_url": "https://c.1password.com/dist/1P/win8/1PasswordSetup-8.12.5.msi", + "installer_url": "https://c.1password.com/dist/1P/win8/1PasswordSetup-8.12.6.msi", "install_script_ref": "8959087b", - "uninstall_script_ref": "93dedc52", - "sha256": "1eb888171aae6442eb839c6a9f650ae2e8c1cea7fc4eccb9335b53fd58e50872", + "uninstall_script_ref": "d7f2d7c4", + "sha256": "58baff62e614098bdcc2a3a3b544d40842579dd39c2627067d910202fd174820", "default_categories": [ "Productivity" ] @@ -16,6 +16,6 @@ ], "refs": { "8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n", - "93dedc52": "# 1Password Uninstall Script\n# Closes running processes before uninstalling to prevent hangs\n\n$product_code = '{32535A6E-C51F-4F00-889D-E823A3A47C27}'\n$timeoutSeconds = 300 # 5 minute timeout\n\n# Close any running 1Password processes\nGet-Process -Name \"1Password*\" -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue\nStart-Sleep -Seconds 2\n\n# Fleet uninstalls app using product code that's extracted on upload\n$process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n# Wait for process with timeout\n$completed = $process.WaitForExit($timeoutSeconds * 1000)\n\nif (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_INSTALL_FAILURE\n}\n\n# Check exit code and output result\nif ($process.ExitCode -eq 0) {\n Write-Output \"Exit 0\"\n Exit 0\n} else {\n Write-Output \"Exit $($process.ExitCode)\"\n Exit $process.ExitCode\n}\n\n" + "d7f2d7c4": "# 1Password Uninstall Script\n# Closes running processes before uninstalling to prevent hangs\n\n$product_code = '{C8506B8B-A3F8-49A5-AA32-D2F12489D53D}'\n$timeoutSeconds = 300 # 5 minute timeout\n\n# Close any running 1Password processes\nGet-Process -Name \"1Password*\" -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue\nStart-Sleep -Seconds 2\n\n# Fleet uninstalls app using product code that's extracted on upload\n$process = Start-Process msiexec -ArgumentList @(\"/quiet\", \"/x\", $product_code, \"/norestart\") -PassThru\n\n# Wait for process with timeout\n$completed = $process.WaitForExit($timeoutSeconds * 1000)\n\nif (-not $completed) {\n Stop-Process -Id $process.Id -Force -ErrorAction SilentlyContinue\n Exit 1603 # ERROR_INSTALL_FAILURE\n}\n\n# Check exit code and output result\nif ($process.ExitCode -eq 0) {\n Write-Output \"Exit 0\"\n Exit 0\n} else {\n Write-Output \"Exit $($process.ExitCode)\"\n Exit $process.ExitCode\n}\n\n" } } diff --git a/ee/maintained-apps/outputs/arc/darwin.json b/ee/maintained-apps/outputs/arc/darwin.json index 92db159ef0..e6cdad780b 100644 --- a/ee/maintained-apps/outputs/arc/darwin.json +++ b/ee/maintained-apps/outputs/arc/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.138.3", + "version": "1.139.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';" }, - "installer_url": "https://releases.arc.net/release/Arc-1.138.3-77277.zip", + "installer_url": "https://releases.arc.net/release/Arc-1.139.0-77482.zip", "install_script_ref": "da46c3be", "uninstall_script_ref": "0b3739b1", - "sha256": "a1d99bc24ec4508a333871849021f4966439440d37a46fe6cdca633e3040b136", + "sha256": "5c3bc5f288c383b365f307112577ba8b05efc21c42ac0f0d2e4b5efb1985b437", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/brave-browser/darwin.json b/ee/maintained-apps/outputs/brave-browser/darwin.json index c81b13c3c1..88d51467a9 100644 --- a/ee/maintained-apps/outputs/brave-browser/darwin.json +++ b/ee/maintained-apps/outputs/brave-browser/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "146.1.88.132", + "version": "146.1.88.134", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser';" }, - "installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/188.132/Brave-Browser-arm64.dmg", + "installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/188.134/Brave-Browser-arm64.dmg", "install_script_ref": "f1d4713c", "uninstall_script_ref": "e860eed9", - "sha256": "04dba24bdb34a93476eb15dbdfb37280725eb187fdc943f6ad7cdb6f1f184f76", + "sha256": "3b4a8dfae7af774df8705c26e04ab94ceb15bd865fc66cadff7fe7d0fd46ff18", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/brave-browser/windows.json b/ee/maintained-apps/outputs/brave-browser/windows.json index 2ca3e272b8..20efb2b240 100644 --- a/ee/maintained-apps/outputs/brave-browser/windows.json +++ b/ee/maintained-apps/outputs/brave-browser/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "146.1.88.127", + "version": "146.1.88.134", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc';" }, - "installer_url": "https://github.com/brave/brave-browser/releases/download/v1.88.127/BraveBrowserStandaloneSilentSetup.exe", + "installer_url": "https://github.com/brave/brave-browser/releases/download/v1.88.134/BraveBrowserStandaloneSilentSetup.exe", "install_script_ref": "9a0c2b15", "uninstall_script_ref": "30c77f69", - "sha256": "41d3e40b30edf94fb8dd8b08737b79d26f17d8a0ee881aa00bdd5a69a8012c91", + "sha256": "cfc5aacc652d85138d51572a7914253b17cea055da26ab51b844255cd38f2d68", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/bruno/darwin.json b/ee/maintained-apps/outputs/bruno/darwin.json index dba0eee612..de5ef02304 100644 --- a/ee/maintained-apps/outputs/bruno/darwin.json +++ b/ee/maintained-apps/outputs/bruno/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "3.1.4", + "version": "3.2.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app';" }, - "installer_url": "https://github.com/usebruno/bruno/releases/download/v3.1.4/bruno_3.1.4_arm64_mac.dmg", + "installer_url": "https://github.com/usebruno/bruno/releases/download/v3.2.0/bruno_3.2.0_arm64_mac.dmg", "install_script_ref": "5d2adbb6", "uninstall_script_ref": "28a81327", - "sha256": "99599391b6e1d24ef0e1915a5b6abcfe3f81ffe7119d522412e799a2c7655cd8", + "sha256": "246470d4d569380c2b58e58d59522b4e7f425ba009190d6975e8795dcdea116e", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/claude/darwin.json b/ee/maintained-apps/outputs/claude/darwin.json index 714ca1fda4..9ed4df1eda 100644 --- a/ee/maintained-apps/outputs/claude/darwin.json +++ b/ee/maintained-apps/outputs/claude/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.1.7203", + "version": "1.1.7714", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop';" }, - "installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.1.7203/Claude-034f0796e916559a4e40673b6ee944c25a8478b2.zip", + "installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.1.7714/Claude-3bd6f69326a0abac98bb269c29140e2a543cad64.zip", "install_script_ref": "eef78d20", "uninstall_script_ref": "4cfbec7d", - "sha256": "af99a8511aa50c9c48abc11a056b9459857e63f62687106720edc7725c42d48f", + "sha256": "25e4f43581ad78fd1e534ffb01868df69c78769bb83e242479c8385b1378444e", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/claude/windows.json b/ee/maintained-apps/outputs/claude/windows.json index cf438639e2..2621506980 100644 --- a/ee/maintained-apps/outputs/claude/windows.json +++ b/ee/maintained-apps/outputs/claude/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.1.7053", + "version": "1.1.7714", "queries": { - "exists": "SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic PBC';" + "exists": "SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC';" }, - "installer_url": "https://downloads.claude.ai/releases/win32/x64/1.1.7053/Claude-cc19495f49dd8394e4fbb0c98c2ec923cc457c6b.exe", + "installer_url": "https://downloads.claude.ai/releases/win32/x64/1.1.7714/Claude-3bd6f69326a0abac98bb269c29140e2a543cad64.exe", "install_script_ref": "0abea82b", "uninstall_script_ref": "d123575a", - "sha256": "a7c7a9b2fe0c79ff48003d6504992b571a3bd181084737821b46be654a6804de", + "sha256": "3d371552d26d10d880c5aabee618f3ab695bd7b146d7e67b4fea5d98cca87bc4", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/connect-fonts/darwin.json b/ee/maintained-apps/outputs/connect-fonts/darwin.json index b09f10852c..1590e6124b 100644 --- a/ee/maintained-apps/outputs/connect-fonts/darwin.json +++ b/ee/maintained-apps/outputs/connect-fonts/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "28.0.2", + "version": "28.0.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion';" }, - "installer_url": "https://bin.extensis.com/ConnectFonts-M-28-0-2.dmg", + "installer_url": "https://bin.extensis.com/ConnectFonts-M-28-0-4.dmg", "install_script_ref": "11864e81", "uninstall_script_ref": "879ff30b", - "sha256": "2fe863f20332f250dce810cce4895feea37690ab909b90f6859de7bda6618a6e", + "sha256": "95261f31179279d3c583de6f92d7acc43ed1fa078f8db86f99bb173539aace63", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/cursor/darwin.json b/ee/maintained-apps/outputs/cursor/darwin.json index 4c1bbc73f7..5fc19d089e 100644 --- a/ee/maintained-apps/outputs/cursor/darwin.json +++ b/ee/maintained-apps/outputs/cursor/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "2.6.19", + "version": "2.6.20", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92';" }, - "installer_url": "https://downloads.cursor.com/production/224838f96445be37e3db643a163a817c15b3606c/darwin/arm64/Cursor-darwin-arm64.zip", + "installer_url": "https://downloads.cursor.com/production/b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad76f/darwin/arm64/Cursor-darwin-arm64.zip", "install_script_ref": "2db624c4", "uninstall_script_ref": "f7561d44", - "sha256": "27c10a2ae006108b39bd969f8ca3d4f5a2f6d27ea925e3ce3b6eae3474eaad6e", + "sha256": "68a4a6cfc15bbd2f0f084423bef1702f1f53fe709f37365bb1194e1985009827", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/dialpad/darwin.json b/ee/maintained-apps/outputs/dialpad/darwin.json index b18092f78a..61a51a1990 100644 --- a/ee/maintained-apps/outputs/dialpad/darwin.json +++ b/ee/maintained-apps/outputs/dialpad/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "2602.4.1", + "version": "2603.2.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad';" }, - "installer_url": "https://storage.googleapis.com/dialpad_native/osx/arm64/Dialpad.2602.4.1.zip", + "installer_url": "https://storage.googleapis.com/dialpad_native/osx/arm64/Dialpad.2603.2.1.zip", "install_script_ref": "20aa37b1", "uninstall_script_ref": "baa2497a", - "sha256": "90e1e2855f6164570a4e78eb937d52d08cb815e9d2082283af5ca9b284351d5d", + "sha256": "58e17af17140a843abfbad7ac5f7ae975e814a612cb308837f990d9944d0cbb4", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/firefox@esr/darwin.json b/ee/maintained-apps/outputs/firefox@esr/darwin.json index 323f1bcc0f..b5e0c14cd5 100644 --- a/ee/maintained-apps/outputs/firefox@esr/darwin.json +++ b/ee/maintained-apps/outputs/firefox@esr/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "140.7.1", + "version": "140.8.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox';" }, - "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/140.7.1esr/mac/en-US/Firefox%20140.7.1esr.dmg", + "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/140.8.0esr/mac/en-US/Firefox%20140.8.0esr.dmg", "install_script_ref": "a1338ebc", "uninstall_script_ref": "64890c61", - "sha256": "7ba2fd895f5d3ffdfedf94ad9275b0390efe5800fc46ed82e46f205552157279", + "sha256": "74b4b71fb52ac01e81157f5714d6d03d07cd990a1a708e933c4538aab49a0a0e", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/firefox@esr/windows.json b/ee/maintained-apps/outputs/firefox@esr/windows.json index 908fa74262..690c8c4e23 100644 --- a/ee/maintained-apps/outputs/firefox@esr/windows.json +++ b/ee/maintained-apps/outputs/firefox@esr/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "140.7.1", + "version": "140.8.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Mozilla Firefox 140.7.1 ESR (x64 en-US)' AND publisher = 'Mozilla';" }, - "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/140.7.1esr/win64/en-US/Firefox%20Setup%20140.7.1esr.exe", + "installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/140.8.0esr/win64/en-US/Firefox%20Setup%20140.8.0esr.exe", "install_script_ref": "36995f4f", "uninstall_script_ref": "5dc712f7", - "sha256": "f086d443a16053d97ae2a75f9a300afbcbe41b6dc213b99c57a76fdb5b692258", + "sha256": "c3769c9ac495052ac642c0fa9ac6f9cdbc58f306423b139f6dfd04b661f546b6", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/front/darwin.json b/ee/maintained-apps/outputs/front/darwin.json index 042b311c4e..23f0a8645c 100644 --- a/ee/maintained-apps/outputs/front/darwin.json +++ b/ee/maintained-apps/outputs/front/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "3.69.1", + "version": "3.71.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.frontapp.Front';" }, - "installer_url": "https://dl.frontapp.com/desktop/builds/3.69.1/Front-3.69.1-arm64.zip", + "installer_url": "https://dl.frontapp.com/desktop/builds/3.71.1/Front-3.71.1-arm64.zip", "install_script_ref": "5247fb8d", "uninstall_script_ref": "b3154f7f", - "sha256": "156a33aa8935c94fccc0850c18ac29f13d994731ce3c4e5e13fcdbf2230c8be1", + "sha256": "2663f99cd60788900959bccd2167d05af940c8ec293cb9e850102a6be6814f84", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/gimp/windows.json b/ee/maintained-apps/outputs/gimp/windows.json index c9ed2b278e..0033e9c5f4 100644 --- a/ee/maintained-apps/outputs/gimp/windows.json +++ b/ee/maintained-apps/outputs/gimp/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "3.0.8.2", + "version": "3.2.0.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'GIMP 3.0.8-2' AND publisher = 'The GIMP Team';" }, - "installer_url": "https://download.gimp.org/gimp/v3.0/windows/gimp-3.0.8-setup-2.exe", + "installer_url": "https://download.gimp.org/gimp/v3.2/windows/gimp-3.2.0-setup.exe", "install_script_ref": "7e5269bc", "uninstall_script_ref": "79fb181d", - "sha256": "3e4ff5845126a026e22302ab0aeecb0a79caff495f7675e254e1da4878cd3d72", + "sha256": "6332ab8fdf9d1f229abd7aab18874d476ae31405e2fe75bf786b8fdc90b891a8", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/goland/darwin.json b/ee/maintained-apps/outputs/goland/darwin.json index f52b28d2c3..8ec8766cf4 100644 --- a/ee/maintained-apps/outputs/goland/darwin.json +++ b/ee/maintained-apps/outputs/goland/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "2025.3.3", + "version": "2025.3.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.goland';" }, - "installer_url": "https://download.jetbrains.com/go/goland-2025.3.3-aarch64.dmg", + "installer_url": "https://download.jetbrains.com/go/goland-2025.3.4-aarch64.dmg", "install_script_ref": "8af38bfd", "uninstall_script_ref": "483ece2b", - "sha256": "bfdf242676b1c80be8e5a3609a0538b51d81491d1eb59831c4ff5a6c9eaf05be", + "sha256": "f575bdd3d3ab04b856b8c5ff768145c7272153deef3f9b800b76e04ecd8568b8", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/google-chrome/darwin.json b/ee/maintained-apps/outputs/google-chrome/darwin.json index d0df549888..a7e2c9ab17 100644 --- a/ee/maintained-apps/outputs/google-chrome/darwin.json +++ b/ee/maintained-apps/outputs/google-chrome/darwin.json @@ -1,7 +1,7 @@ { "versions": [ { - "version": "146.0.7680.80", + "version": "146.0.7680.154", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome';" }, diff --git a/ee/maintained-apps/outputs/google-chrome/windows.json b/ee/maintained-apps/outputs/google-chrome/windows.json index 1df0f2ea8f..4b858ecda4 100644 --- a/ee/maintained-apps/outputs/google-chrome/windows.json +++ b/ee/maintained-apps/outputs/google-chrome/windows.json @@ -1,7 +1,7 @@ { "versions": [ { - "version": "146.0.7680.80", + "version": "146.0.7680.154", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC';" }, diff --git a/ee/maintained-apps/outputs/granola/darwin.json b/ee/maintained-apps/outputs/granola/darwin.json index 984948cada..c0b487da77 100644 --- a/ee/maintained-apps/outputs/granola/darwin.json +++ b/ee/maintained-apps/outputs/granola/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "7.71.1", + "version": "7.80.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app';" }, - "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.71.1/Granola-7.71.1-mac-universal.dmg", + "installer_url": "https://dr2v7l5emb758.cloudfront.net/7.80.1/Granola-7.80.1-mac-universal.dmg", "install_script_ref": "289285bb", "uninstall_script_ref": "9f1ed248", - "sha256": "3ec04863bfe339ce3bd87412134b1c9ec19ea2182e1e4e557a63170341bb6238", + "sha256": "5d01b894e228b89eac6103f63fc7d65626da8afebf37dc0f3ac101bd3e3f94ba", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/linear-linear/darwin.json b/ee/maintained-apps/outputs/linear-linear/darwin.json index 9611005727..40a0b7ed1f 100644 --- a/ee/maintained-apps/outputs/linear-linear/darwin.json +++ b/ee/maintained-apps/outputs/linear-linear/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.28.12", + "version": "1.28.13", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.linear';" }, - "installer_url": "https://download.todesktop.com/200315glz2793v6/Linear%201.28.12%20-%20Build%20260226pqw0vmhth-arm64-mac.zip", + "installer_url": "https://download.todesktop.com/200315glz2793v6/Linear%201.28.13%20-%20Build%20260318pho1bttxr-arm64-mac.zip", "install_script_ref": "5d675a4d", "uninstall_script_ref": "dfec844c", - "sha256": "90fb7a35d79eeb3b4f09ee94151792ee94a65b9537c00f2757e7774719d01f99", + "sha256": "acaf0297625baab0e0edaf664556056dc30818a70d0a36b3580f0fde28747ec6", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/loom/darwin.json b/ee/maintained-apps/outputs/loom/darwin.json index de4be96b15..3e589578b2 100644 --- a/ee/maintained-apps/outputs/loom/darwin.json +++ b/ee/maintained-apps/outputs/loom/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "0.337.5", + "version": "0.338.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop';" }, - "installer_url": "https://packages.loom.com/desktop-packages/Loom-0.337.5-arm64.dmg", + "installer_url": "https://packages.loom.com/desktop-packages/Loom-0.338.4-arm64.dmg", "install_script_ref": "1311e557", "uninstall_script_ref": "393b959f", - "sha256": "2f84080f542fd160c857cdf0339a4a100fc833b35138a824209b6e0a14dad361", + "sha256": "5effdee6d0bde9f74226205b582fd038b79094d1c0661783f1a7301646ded6be", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/microsoft-edge/darwin.json b/ee/maintained-apps/outputs/microsoft-edge/darwin.json index 915400e5db..ac6bd36e75 100644 --- a/ee/maintained-apps/outputs/microsoft-edge/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-edge/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "146.0.3856.62", + "version": "146.0.3856.72", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac';" }, - "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/b42fb089-5f48-4a1f-b50e-6ceb74ab9772/MicrosoftEdge-146.0.3856.62.dmg", + "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/efa8e7a7-9101-457f-a0b2-da924575e033/MicrosoftEdge-146.0.3856.72.dmg", "install_script_ref": "b9ba259a", "uninstall_script_ref": "6ee9d9a4", - "sha256": "cfc16b791afbae10307036a47295946487aa462b23ab5099dcf0c86147c68db5", + "sha256": "683166aaaf3d90496d85a2f1fcb4d8e41d74439b943e5e14b02a63a612ed83e1", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/microsoft-edge/windows.json b/ee/maintained-apps/outputs/microsoft-edge/windows.json index f81cdc79b9..646084a5c8 100644 --- a/ee/maintained-apps/outputs/microsoft-edge/windows.json +++ b/ee/maintained-apps/outputs/microsoft-edge/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "146.0.3856.62", + "version": "146.0.3856.72", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Edge' AND publisher = 'Microsoft Corporation';" }, - "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/e7ea1256-d70a-4019-872f-c65dea9da3a2/MicrosoftEdgeEnterpriseX64.msi", + "installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/f692d627-f064-4dd3-94b4-7ac7ce0ac3c8/MicrosoftEdgeEnterpriseX64.msi", "install_script_ref": "8959087b", "uninstall_script_ref": "a173cfc1", - "sha256": "4b04b87ece29a9476d92c12b110e16bce5ba07c78d160b871c77568ec2e4bd4e", + "sha256": "3359725bc57dfb5adc038b4c22b71105266689a2245c9f2cad9048bafd77693c", "default_categories": [ "Browsers" ], diff --git a/ee/maintained-apps/outputs/microsoft-excel/darwin.json b/ee/maintained-apps/outputs/microsoft-excel/darwin.json index a2f33237f8..32fcaeafad 100644 --- a/ee/maintained-apps/outputs/microsoft-excel/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-excel/darwin.json @@ -1,7 +1,7 @@ { "versions": [ { - "version": "16.107.26031524", + "version": "16.107.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Excel';" }, diff --git a/ee/maintained-apps/outputs/microsoft-teams/darwin.json b/ee/maintained-apps/outputs/microsoft-teams/darwin.json index 5e5e51e388..fa65100baf 100644 --- a/ee/maintained-apps/outputs/microsoft-teams/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-teams/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "26032.605.4378.6183", + "version": "26043.2109.4484.3337", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.teams2';" }, - "installer_url": "https://statics.teams.cdn.office.net/production-osx/26032.605.4378.6183/MicrosoftTeams.pkg", + "installer_url": "https://statics.teams.cdn.office.net/production-osx/26043.2109.4484.3337/MicrosoftTeams.pkg", "install_script_ref": "a8789851", "uninstall_script_ref": "61872d1e", - "sha256": "d3630d90af4445a22949354e7a4a160b6dc45e90ca77a7a0b276134b936dc9a7", + "sha256": "4f1910e1d24530be6a6fa31cbd23d6416653277c6b432ca97325a59d2d5884d1", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/microsoft-word/darwin.json b/ee/maintained-apps/outputs/microsoft-word/darwin.json index f2fe6dc07f..2a8cbb8d35 100644 --- a/ee/maintained-apps/outputs/microsoft-word/darwin.json +++ b/ee/maintained-apps/outputs/microsoft-word/darwin.json @@ -1,7 +1,7 @@ { "versions": [ { - "version": "16.107.26031524", + "version": "16.107.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.Word';" }, diff --git a/ee/maintained-apps/outputs/nextcloud/darwin.json b/ee/maintained-apps/outputs/nextcloud/darwin.json index 0f9bdc5aa9..72db2bf24c 100644 --- a/ee/maintained-apps/outputs/nextcloud/darwin.json +++ b/ee/maintained-apps/outputs/nextcloud/darwin.json @@ -1,21 +1,21 @@ { "versions": [ { - "version": "4.0.7", + "version": "4.0.8", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nextcloud.desktopclient';" }, - "installer_url": "https://github.com/nextcloud-releases/desktop/releases/download/v4.0.7/Nextcloud-4.0.7.pkg", - "install_script_ref": "a6d3e301", + "installer_url": "https://github.com/nextcloud-releases/desktop/releases/download/v4.0.8/Nextcloud-4.0.8.pkg", + "install_script_ref": "136dcdaa", "uninstall_script_ref": "3b1b8e75", - "sha256": "6805b4cc1a5af0209ef57b071f6ac6c265ed42af4b60df1c297b796bdf60bd1e", + "sha256": "3bdc71ab5ecb180a24854c6a735b3014f018520135352478ae5722df080a30fc", "default_categories": [ "Productivity" ] } ], "refs": { - "3b1b8e75": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.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}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\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 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.nextcloud.desktopclient'\nquit_application 'com.nextcloud.desktopclient'\nremove_pkg_files 'com.nextcloud.desktopclient'\nforget_pkg 'com.nextcloud.desktopclient'\nsudo rm -rf '/Applications/Nextcloud.app'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.nextcloud.desktopclient.FinderSyncExt'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Nextcloud'\ntrash $LOGGED_IN_USER '~/Library/Caches/Nextcloud'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.nextcloud.desktopclient.FinderSyncExt'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/com.nextcloud.desktopclient'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.nextcloud.desktopclient.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/Nextcloud'\n", - "a6d3e301": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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.nextcloud.desktopclient'\nsudo installer -pkg \"$TMPDIR/Nextcloud-4.0.7.pkg\" -target /\nrelaunch_application 'com.nextcloud.desktopclient'\n" + "136dcdaa": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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.nextcloud.desktopclient'\nsudo installer -pkg \"$TMPDIR/Nextcloud-4.0.8.pkg\" -target /\nrelaunch_application 'com.nextcloud.desktopclient'\n", + "3b1b8e75": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.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}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\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 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.nextcloud.desktopclient'\nquit_application 'com.nextcloud.desktopclient'\nremove_pkg_files 'com.nextcloud.desktopclient'\nforget_pkg 'com.nextcloud.desktopclient'\nsudo rm -rf '/Applications/Nextcloud.app'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.nextcloud.desktopclient.FinderSyncExt'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Nextcloud'\ntrash $LOGGED_IN_USER '~/Library/Caches/Nextcloud'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.nextcloud.desktopclient.FinderSyncExt'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/com.nextcloud.desktopclient'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.nextcloud.desktopclient.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/Nextcloud'\n" } } diff --git a/ee/maintained-apps/outputs/nova/darwin.json b/ee/maintained-apps/outputs/nova/darwin.json index 3eaa4b7653..fb04dab17e 100644 --- a/ee/maintained-apps/outputs/nova/darwin.json +++ b/ee/maintained-apps/outputs/nova/darwin.json @@ -7,7 +7,7 @@ }, "installer_url": "https://panic.com/download/nova/Nova%2013.4.zip", "install_script_ref": "7ba9cafd", - "uninstall_script_ref": "62c03a11", + "uninstall_script_ref": "9bc8780e", "sha256": "728e933f0f64f7547c2bd057f6bda74d056953a9272c9f9382a71af5e50e25b3", "default_categories": [ "Developer tools" @@ -15,7 +15,7 @@ } ], "refs": { - "62c03a11": "#!/bin/sh\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 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 '/Library/LaunchDaemons/com.panic.NovaPrivilegedHelper.plist'\nsudo rm -rf '/Library/PrivilegedHelperTools/com.panic.NovaPrivilegedHelper'\nsudo rm -rf \"$APPDIR/Nova.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.panic.Nova.NovaQuickLookPreview'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.panic.Nova.NovaQuickLookThumbnail'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.panic.nova.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.panic.Nova'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.panic.Nova.NovaQuickLookPreview'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.panic.Nova.NovaQuickLookThumbnail'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.panic.Nova.plist'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.panic.Nova'\n", - "7ba9cafd": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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\nunzip \"$INSTALLER_PATH\" -d \"$TMPDIR\"\n# copy to the applications folder\nquit_and_track_application 'com.panic.Nova'\nif [ -d \"$APPDIR/Nova.app\" ]; then\n\tsudo mv \"$APPDIR/Nova.app\" \"$TMPDIR/Nova.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Nova.app\" \"$APPDIR\"\nrelaunch_application 'com.panic.Nova'\n" + "7ba9cafd": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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\nunzip \"$INSTALLER_PATH\" -d \"$TMPDIR\"\n# copy to the applications folder\nquit_and_track_application 'com.panic.Nova'\nif [ -d \"$APPDIR/Nova.app\" ]; then\n\tsudo mv \"$APPDIR/Nova.app\" \"$TMPDIR/Nova.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Nova.app\" \"$APPDIR\"\nrelaunch_application 'com.panic.Nova'\n", + "9bc8780e": "#!/bin/sh\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 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/Nova.app\"\nsudo rm -rf '/Library/LaunchDaemons/com.panic.NovaPrivilegedHelper.plist'\nsudo rm -rf '/Library/PrivilegedHelperTools/com.panic.NovaPrivilegedHelper'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.panic.Nova.NovaQuickLookPreview'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.panic.Nova.NovaQuickLookThumbnail'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.panic.nova.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.panic.Nova'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.panic.Nova.NovaQuickLookPreview'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.panic.Nova.NovaQuickLookThumbnail'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.panic.Nova.plist'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.panic.Nova'\n" } } diff --git a/ee/maintained-apps/outputs/obs/windows.json b/ee/maintained-apps/outputs/obs/windows.json index 88817609db..ceb67b79e3 100644 --- a/ee/maintained-apps/outputs/obs/windows.json +++ b/ee/maintained-apps/outputs/obs/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "32.0.4", + "version": "32.1.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'OBS Studio' AND publisher = 'OBS Project';" }, - "installer_url": "https://github.com/obsproject/obs-studio/releases/download/32.0.4/OBS-Studio-32.0.4-Windows-x64-Installer.exe", + "installer_url": "https://github.com/obsproject/obs-studio/releases/download/32.1.0/OBS-Studio-32.1.0-Windows-x64-Installer.exe", "install_script_ref": "8a919fae", "uninstall_script_ref": "145a6b76", - "sha256": "46a18bce8e2ff662b700c91d340a519376e712fe0af0d335536e4f9fd253f10a", + "sha256": "0e3d75eb83951d3fe100cdc7a97fd870f16781bbdcf544fbe101d9b89f9c6231", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/okta-verify/darwin.json b/ee/maintained-apps/outputs/okta-verify/darwin.json index 392a0518cb..ad4803c714 100644 --- a/ee/maintained-apps/outputs/okta-verify/darwin.json +++ b/ee/maintained-apps/outputs/okta-verify/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "9.57.3", + "version": "9.59.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.okta.mobile';" }, - "installer_url": "https://okta.okta.com/artifacts/OKTA_VERIFY_MACOS/9.57.3/OktaVerify-9.57.3-5981-85d4901.pkg", - "install_script_ref": "5290bb57", + "installer_url": "https://okta.okta.com/artifacts/OKTA_VERIFY_MACOS/9.59.0/OktaVerify-9.59.0-6053-5038b2d.pkg", + "install_script_ref": "af62676c", "uninstall_script_ref": "4f15adbe", - "sha256": "69e53d9bcfc66481b2d3134c307bef7b6205e61b00832b8eeb4bc3ca1b7b524c", + "sha256": "0f70a8a9d58d22024e32deae4cfe0a369506f89c7ab7d8db90d86a27e21d1612", "default_categories": [ "Productivity" ] @@ -16,6 +16,6 @@ ], "refs": { "4f15adbe": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.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}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\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 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.okta.authentication.service'\nremove_launchctl_service 'com.okta.autoupdate.daemon'\nremove_launchctl_service 'com.okta.deviceaccess.servicedaemon'\nremove_pkg_files 'com.okta.mobile'\nforget_pkg 'com.okta.mobile'\nsudo rm -rf '/Applications/Okta Verify.app'\nsudo rm -rf '/Library/Application Support/com.okta.deviceaccess.servicedaemon'\nsudo rm -rf '/Library/LaunchDaemons/com.okta.authentication.service.plist'\nsudo rm -rf '/Library/LaunchDaemons/com.okta.autoupdate.daemon.plist'\nsudo rm -rf '/Library/LaunchDaemons/com.okta.deviceaccess.servicedaemon.plist'\nsudo rm -rf '/Library/Security/SecurityAgentPlugins/OktaDAAuthPlugin.bundle'\nsudo rm -rf '/usr/local/bin/AutoUpdateDaemon'\nsudo rm -rf '/usr/local/bin/OktaDAServiceDaemon'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.okta.mobile'\ntrash $LOGGED_IN_USER '~/Library/Preferences/B7F62B65BN.group.okta.verify.shared.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.okta.mobile.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/group.com.okta.mobile.firebase.plist'\n", - "5290bb57": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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.okta.mobile'\nsudo installer -pkg \"$TMPDIR/OktaVerify-9.57.3-5981-85d4901.pkg\" -target /\nrelaunch_application 'com.okta.mobile'\n" + "af62676c": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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.okta.mobile'\nsudo installer -pkg \"$TMPDIR/OktaVerify-9.59.0-6053-5038b2d.pkg\" -target /\nrelaunch_application 'com.okta.mobile'\n" } } diff --git a/ee/maintained-apps/outputs/ollama/darwin.json b/ee/maintained-apps/outputs/ollama/darwin.json index f72d4edcf6..7f7595b9f2 100644 --- a/ee/maintained-apps/outputs/ollama/darwin.json +++ b/ee/maintained-apps/outputs/ollama/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "0.18.1", + "version": "0.18.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama';" }, - "installer_url": "https://github.com/ollama/ollama/releases/download/v0.18.1/Ollama-darwin.zip", + "installer_url": "https://github.com/ollama/ollama/releases/download/v0.18.2/Ollama-darwin.zip", "install_script_ref": "059e8d76", "uninstall_script_ref": "f60ddfee", - "sha256": "39dd5304e83f35f0d1694408ccc6ea36bee0b22f7e403be4171a499186b335a9", + "sha256": "916b3d557b97fe7821af636e71c2c29000d07a91b145efa766463ca276197d37", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/postman/darwin.json b/ee/maintained-apps/outputs/postman/darwin.json index cb6f2ce94d..6133852edb 100644 --- a/ee/maintained-apps/outputs/postman/darwin.json +++ b/ee/maintained-apps/outputs/postman/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "12.2.2", + "version": "12.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';" }, - "installer_url": "https://dl.pstmn.io/download/version/12.2.2/osx_arm64", + "installer_url": "https://dl.pstmn.io/download/version/12.2.3/osx_arm64", "install_script_ref": "3e5dcf18", "uninstall_script_ref": "15e9f11c", - "sha256": "c6ac17f5d59b7aaaf945331e6657453bb49de5db42da5d1eccb780b12411a3f3", + "sha256": "9b9505c453d53357e06f1a343ac98d2ae3e72d5e8ce8cc2d803f3cf96e253c0b", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/postman/windows.json b/ee/maintained-apps/outputs/postman/windows.json index 351830e8c5..46633d2878 100644 --- a/ee/maintained-apps/outputs/postman/windows.json +++ b/ee/maintained-apps/outputs/postman/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "12.1.4", + "version": "12.2.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Postman x64 11.75.4' AND publisher = 'Postman';" }, - "installer_url": "https://dl.pstmn.io/download/version/12.1.4/windows_64", + "installer_url": "https://dl.pstmn.io/download/version/12.2.3/windows_64", "install_script_ref": "538f63bf", "uninstall_script_ref": "cd01b68f", - "sha256": "a0945d3c63461c634fcf58542582d232a55c013c9df76bd3acb924a1fbda5d76", + "sha256": "eaec250982965a35c7d421994ee42b2cf8afd86448c97a7dee4c7cd6a316e0d0", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/royal-tsx/darwin.json b/ee/maintained-apps/outputs/royal-tsx/darwin.json index 64ab7151e2..629edc66d6 100644 --- a/ee/maintained-apps/outputs/royal-tsx/darwin.json +++ b/ee/maintained-apps/outputs/royal-tsx/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "6.3.0.1000", + "version": "6.4.1.1000", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemonmojo.RoyalTSX.App';" }, - "installer_url": "https://royaltsx-v6.royalapps.com/updates/royaltsx_6.3.0.1000.dmg", + "installer_url": "https://royaltsx-v6.royalapps.com/updates/royaltsx_6.4.1.1000.dmg", "install_script_ref": "0f402271", "uninstall_script_ref": "3f764c08", - "sha256": "934ce7ef770b4fc876c08a50f22b0814ccd66d8c0d2542685ddef61609263bcf", + "sha256": "5bcf53703969a3abc1397d0e05b4b15f2332e9d4400659470e8fda90694bdfd5", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/signal/darwin.json b/ee/maintained-apps/outputs/signal/darwin.json index 0d311b3269..9f95109354 100644 --- a/ee/maintained-apps/outputs/signal/darwin.json +++ b/ee/maintained-apps/outputs/signal/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "8.2.1", + "version": "8.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.whispersystems.signal-desktop';" }, - "installer_url": "https://updates.signal.org/desktop/signal-desktop-mac-arm64-8.2.1.zip", + "installer_url": "https://updates.signal.org/desktop/signal-desktop-mac-arm64-8.3.0.zip", "install_script_ref": "a7976be0", "uninstall_script_ref": "3902de16", - "sha256": "613e5e7bdf40583fc8e48e7fa96081426918662f2ce4eb35bf7e985b9bd984af", + "sha256": "ffcc8b4d61dab659133e8141f0d9fa52d4d3007e665d73aaebe188f46fc61506", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/spotify/windows.json b/ee/maintained-apps/outputs/spotify/windows.json index 2e837c4107..f7d42374c1 100644 --- a/ee/maintained-apps/outputs/spotify/windows.json +++ b/ee/maintained-apps/outputs/spotify/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.2.85.513.g45f09625", + "version": "1.2.85.519.g549a528b", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Spotify' AND publisher = 'Spotify AB';" }, - "installer_url": "https://upgrade.scdn.co/upgrade/client/win32-x86_64/spotify_installer-1.2.85.513.g45f09625-3679.exe", + "installer_url": "https://download.scdn.co/SpotifyFullSetupX64.exe", "install_script_ref": "7e4727ac", "uninstall_script_ref": "48d55e3d", - "sha256": "98bfc9f0f39b26e5c76a02c7e3ba9560811d4a8d3d505ad279548d7e77468e56", + "sha256": "3546bf93d3bf0f2996f85adc69ede39b767c1effe187d488cbf377ba5662417a", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/surfshark/darwin.json b/ee/maintained-apps/outputs/surfshark/darwin.json index 798a477464..ffb7b7308b 100644 --- a/ee/maintained-apps/outputs/surfshark/darwin.json +++ b/ee/maintained-apps/outputs/surfshark/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "4.26.1", + "version": "4.26.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.surfshark.vpnclient.macos.direct';" }, - "installer_url": "https://downloads.surfshark.com/macOS/stable/4.26.1/4253/Surfshark.dmg", + "installer_url": "https://downloads.surfshark.com/macOS/stable/4.26.2/4284/Surfshark.dmg", "install_script_ref": "70309c13", "uninstall_script_ref": "a2b88fd6", - "sha256": "15e06d17f1c9167802e2a3b2a450cc37eb381fc7019b49b476fb33e87fc4a57f", + "sha256": "eefc220835eb594090b4fb7b41911158277a42680bbec4595c2e3d4f53cf75db", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/tailscale-app/darwin.json b/ee/maintained-apps/outputs/tailscale-app/darwin.json index 800a0fe6b7..39679f21ad 100644 --- a/ee/maintained-apps/outputs/tailscale-app/darwin.json +++ b/ee/maintained-apps/outputs/tailscale-app/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.94.2", + "version": "1.96.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.tailscale.ipn.macsys';" }, - "installer_url": "https://pkgs.tailscale.com/stable/Tailscale-1.94.2-macos.pkg", - "install_script_ref": "d81132bd", + "installer_url": "https://pkgs.tailscale.com/stable/Tailscale-1.96.2-macos.pkg", + "install_script_ref": "ccc9b628", "uninstall_script_ref": "3f853b30", - "sha256": "ef90a84be44a296daf8b05a8a586b3665a50281f07bb784155780cd11adbb995", + "sha256": "be867bdd50f8a53a1b25f8c0888b28122499f0f710e43b97594628894eff22b8", "default_categories": [ "Productivity" ] @@ -16,6 +16,6 @@ ], "refs": { "3f853b30": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\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 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\nquit_application 'io.tailscale.ipn.macsys'\nremove_pkg_files 'com.tailscale.ipn.macsys'\nforget_pkg 'com.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '/Library/Tailscale'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/*.io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/io.tailscale.ipn.macsys.login-item-helper'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/io.tailscale.ipn.macsys.share-extension'\ntrash $LOGGED_IN_USER '~/Library/Caches/io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/Containers/io.tailscale.ipn.macos.network-extension'\ntrash $LOGGED_IN_USER '~/Library/Containers/io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/Containers/io.tailscale.ipn.macsys.login-item-helper'\ntrash $LOGGED_IN_USER '~/Library/Containers/io.tailscale.ipn.macsys.share-extension'\ntrash $LOGGED_IN_USER '~/Library/Containers/Tailscale'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/*.io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/io.tailscale.ipn.macsys'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/io.tailscale.ipn.macsys.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/Preferences/io.tailscale.ipn.macsys.plist'\n", - "d81132bd": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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 'io.tailscale.ipn.macsys'\nsudo installer -pkg \"$TMPDIR/Tailscale-1.94.2-macos.pkg\" -target /\nrelaunch_application 'io.tailscale.ipn.macsys'\n" + "ccc9b628": "#!/bin/sh\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 if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; 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 # Try to launch the application\n if osascript -e \"tell application id \\\"$bundle_id\\\" to activate\" >/dev/null 2>&1; 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 'io.tailscale.ipn.macsys'\nsudo installer -pkg \"$TMPDIR/Tailscale-1.96.2-macos.pkg\" -target /\nrelaunch_application 'io.tailscale.ipn.macsys'\n" } } diff --git a/ee/maintained-apps/outputs/tailscale/windows.json b/ee/maintained-apps/outputs/tailscale/windows.json index 6385a2c42e..7ff046929b 100644 --- a/ee/maintained-apps/outputs/tailscale/windows.json +++ b/ee/maintained-apps/outputs/tailscale/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.94.2", + "version": "1.96.3", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Tailscale' AND publisher = 'Tailscale Inc.';" }, - "installer_url": "https://pkgs.tailscale.com/stable/tailscale-setup-1.94.2-amd64.msi", + "installer_url": "https://pkgs.tailscale.com/stable/tailscale-setup-1.96.3-amd64.msi", "install_script_ref": "8959087b", "uninstall_script_ref": "c9d1de3f", - "sha256": "120a350a1123268fc4f7b4f80864f61121bec4bf48461a5089394ed42adf7018", + "sha256": "b501e3eef74dab81ab1731e759f82c600e77ba227750f9cf26357e0a59e26ed5", "default_categories": [ "Productivity" ], diff --git a/ee/maintained-apps/outputs/visual-studio-code/darwin.json b/ee/maintained-apps/outputs/visual-studio-code/darwin.json index 23d2700fec..dacdbf3819 100644 --- a/ee/maintained-apps/outputs/visual-studio-code/darwin.json +++ b/ee/maintained-apps/outputs/visual-studio-code/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.111.0", + "version": "1.112.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.VSCode';" }, - "installer_url": "https://update.code.visualstudio.com/1.111.0/darwin-arm64/stable", + "installer_url": "https://update.code.visualstudio.com/1.112.0/darwin-arm64/stable", "install_script_ref": "23f1cef9", "uninstall_script_ref": "391941e2", - "sha256": "0d48d3fafaa372df1632245e725b4f70bf899fbf037e7bb219331685a1957116", + "sha256": "d2c38a5acc2feccdd50ab6a516dd41000e3926b432017e05affe6298d99c6870", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/visual-studio-code/windows.json b/ee/maintained-apps/outputs/visual-studio-code/windows.json index 1cce52f0e6..f33165d29a 100644 --- a/ee/maintained-apps/outputs/visual-studio-code/windows.json +++ b/ee/maintained-apps/outputs/visual-studio-code/windows.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.111.0", + "version": "1.112.0", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Microsoft Visual Studio Code' AND publisher = 'Microsoft Corporation';" }, - "installer_url": "https://vscode.download.prss.microsoft.com/dbazure/download/stable/ce099c1ed25d9eb3076c11e4a280f3eb52b4fbeb/VSCodeSetup-x64-1.111.0.exe", + "installer_url": "https://vscode.download.prss.microsoft.com/dbazure/download/stable/07ff9d6178ede9a1bd12ad3399074d726ebe6e43/VSCodeSetup-x64-1.112.0.exe", "install_script_ref": "49122823", "uninstall_script_ref": "e09509e2", - "sha256": "e1354aa58fc9c76eeb81e04e1ded932c9955d62cb9f074a4b4d56af8b4a7049d", + "sha256": "b88ad9edc96c3376e379ca4bb4693313817c1ae1b52f86646b4415b98191b610", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/warp/darwin.json b/ee/maintained-apps/outputs/warp/darwin.json index 5ec63eae6e..3381ee05f6 100644 --- a/ee/maintained-apps/outputs/warp/darwin.json +++ b/ee/maintained-apps/outputs/warp/darwin.json @@ -1,11 +1,11 @@ { "versions": [ { - "version": "0.2026.03.04.08.20.03", + "version": "0.2026.03.18.08.24.01", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.warp.Warp-Stable';" }, - "installer_url": "https://releases.warp.dev/stable/v0.2026.03.04.08.20.stable_03/Warp.dmg", + "installer_url": "https://releases.warp.dev/stable/v0.2026.03.18.08.24.stable_01/Warp.dmg", "install_script_ref": "df0fd0b3", "uninstall_script_ref": "54d05203", "sha256": "no_check", diff --git a/ee/maintained-apps/outputs/windsurf/darwin.json b/ee/maintained-apps/outputs/windsurf/darwin.json index 383a30305d..839a0d37ec 100644 --- a/ee/maintained-apps/outputs/windsurf/darwin.json +++ b/ee/maintained-apps/outputs/windsurf/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.9577.27", + "version": "1.9577.43", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.exafunction.windsurf';" }, - "installer_url": "https://windsurf-stable.codeiumdata.com/darwin-arm64-dmg/stable/d8f5ffde018f40c5787712b4ce2bcadcfffcf7a2/Windsurf-darwin-arm64-1.9577.27.dmg", + "installer_url": "https://windsurf-stable.codeiumdata.com/darwin-arm64-dmg/stable/745a6c1ac471cc11f782a05d2c3ceacbc1de308f/Windsurf-darwin-arm64-1.9577.43.dmg", "install_script_ref": "82803996", "uninstall_script_ref": "d403e841", - "sha256": "7f43348eb2f0ea410700144079b1ed39dbf3e829bfed2895b66325398fda8202", + "sha256": "cff6be4081e00a90b08da3c79835d675281e9c8188ef1b944fe21da53ea763a2", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/zed/darwin.json b/ee/maintained-apps/outputs/zed/darwin.json index 87970ce4be..2bf2bb8143 100644 --- a/ee/maintained-apps/outputs/zed/darwin.json +++ b/ee/maintained-apps/outputs/zed/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "0.227.1", + "version": "0.228.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed';" }, - "installer_url": "https://zed.dev/api/releases/stable/0.227.1/Zed-aarch64.dmg", + "installer_url": "https://zed.dev/api/releases/stable/0.228.0/Zed-aarch64.dmg", "install_script_ref": "5782c47f", "uninstall_script_ref": "a96df5e9", - "sha256": "7de6fa2fb292eaf1e7b99dec13dedf4a97ceea786ffebfb1c9b2c07abeefbb5b", + "sha256": "4b84841967568efbbb0d85863c5f1e1dce91388d428bc970ec9f5a29c7ed89e3", "default_categories": [ "Developer tools" ]