diff --git a/ee/maintained-apps/outputs/arc/darwin.json b/ee/maintained-apps/outputs/arc/darwin.json index 1a2e97c681..c40054ed79 100644 --- a/ee/maintained-apps/outputs/arc/darwin.json +++ b/ee/maintained-apps/outputs/arc/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.131.0", + "version": "1.132.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';" }, - "installer_url": "https://releases.arc.net/release/Arc-1.131.0-73882.zip", + "installer_url": "https://releases.arc.net/release/Arc-1.132.0-74204.zip", "install_script_ref": "da46c3be", "uninstall_script_ref": "0b3739b1", - "sha256": "65f05d08f0b59ad0340c75a3be36770be85da1b4c9d9c168dbac7eb8b1de1e2e", + "sha256": "21dd98b6d5e120b121b354711e3c5cca0d0a2e837a4d7aac274788d45e7854f8", "default_categories": [ "Browsers" ] diff --git a/ee/maintained-apps/outputs/chatgpt/darwin.json b/ee/maintained-apps/outputs/chatgpt/darwin.json index d6b28d5e36..5b77e0c07b 100644 --- a/ee/maintained-apps/outputs/chatgpt/darwin.json +++ b/ee/maintained-apps/outputs/chatgpt/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "1.2026.013", + "version": "1.2026.014", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat';" }, - "installer_url": "https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2026.013_1768606532.dmg", + "installer_url": "https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2026.014_1769698892.dmg", "install_script_ref": "8383182d", "uninstall_script_ref": "1ba164ed", - "sha256": "9e070d183c2e43a5ae339122a3338e93fe928d6573b82465bdc6c6ede3ff1a1c", + "sha256": "daf10ef5d262f43d84537030abf24918669f87a11916715ac8d225921a500539", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/granola/darwin.json b/ee/maintained-apps/outputs/granola/darwin.json index b666e96f05..14b7c20c76 100644 --- a/ee/maintained-apps/outputs/granola/darwin.json +++ b/ee/maintained-apps/outputs/granola/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "6.518.1", + "version": "6.529.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app';" }, - "installer_url": "https://dr2v7l5emb758.cloudfront.net/6.518.1/Granola-6.518.1-mac-universal.dmg", + "installer_url": "https://dr2v7l5emb758.cloudfront.net/6.529.0/Granola-6.529.0-mac-universal.dmg", "install_script_ref": "289285bb", "uninstall_script_ref": "9f1ed248", - "sha256": "6da3e8380c75adfea1c3ebb605c4af2bf1aff40fe07b1fa716a9b48753875535", + "sha256": "b2849793e30e5cf7a7ffc27c7c03f3aa2cc9492c2d4e251a13a6b421955d9fe8", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/p4v/darwin.json b/ee/maintained-apps/outputs/p4v/darwin.json index 009adc2803..51f141fa9b 100644 --- a/ee/maintained-apps/outputs/p4v/darwin.json +++ b/ee/maintained-apps/outputs/p4v/darwin.json @@ -8,7 +8,7 @@ "installer_url": "https://filehost.perforce.com/perforce/r25.4/bin.macosx12u/P4V.dmg", "install_script_ref": "804d7fe0", "uninstall_script_ref": "6f04fef2", - "sha256": "539ad5f2fe36d9a164507fbe4d98dfa1c20118d58487a99440ce48dd849c2fea", + "sha256": "b430fa71f8c07afb381d72253bc6e1ddfb28524175b4cb86c5f4a7e53fa92202", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/protonvpn/darwin.json b/ee/maintained-apps/outputs/protonvpn/darwin.json index d05d0487bf..35fba21786 100644 --- a/ee/maintained-apps/outputs/protonvpn/darwin.json +++ b/ee/maintained-apps/outputs/protonvpn/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "6.2.0", + "version": "6.3.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.protonvpn.mac';" }, - "installer_url": "https://vpn.protondownload.com/download/macos/6.2.0/ProtonVPN_mac_v6.2.0.dmg", + "installer_url": "https://vpn.protondownload.com/download/macos/6.3.0/ProtonVPN_mac_v6.3.0.dmg", "install_script_ref": "de9bb4fb", "uninstall_script_ref": "967af45b", - "sha256": "3bc7447ffba3d1d8007b50ff1081be842be0d2ed9a3c95dde8e2aa2a6d14a001", + "sha256": "dcfafa310161b750de91eb7641663b181c7e7740ee65392359d68ddc6cb7493b", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/rider/darwin.json b/ee/maintained-apps/outputs/rider/darwin.json index ea3695d33e..7916c675c3 100644 --- a/ee/maintained-apps/outputs/rider/darwin.json +++ b/ee/maintained-apps/outputs/rider/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "2025.3.1", + "version": "2025.3.2", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.rider';" }, - "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.1-aarch64.dmg", + "installer_url": "https://download.jetbrains.com/rider/JetBrains.Rider-2025.3.2-aarch64.dmg", "install_script_ref": "dcde12f6", "uninstall_script_ref": "c52923fe", - "sha256": "d7080323412900f5d37270233e5a4c773011c6853d6031ce1f5e635c77511426", + "sha256": "996c0799d68f67b79088602c1168e1c5f20e8271a303fc529150f48b1301d9e6", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/santa/darwin.json b/ee/maintained-apps/outputs/santa/darwin.json index 1d6c5d10f3..e8e38a4b55 100644 --- a/ee/maintained-apps/outputs/santa/darwin.json +++ b/ee/maintained-apps/outputs/santa/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "2025.12", + "version": "2026.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.northpolesec.santa';" }, - "installer_url": "https://github.com/northpolesec/santa/releases/download/2025.12/santa-2025.12.dmg", - "install_script_ref": "5db69e8d", + "installer_url": "https://github.com/northpolesec/santa/releases/download/2026.1/santa-2026.1.dmg", + "install_script_ref": "58098a90", "uninstall_script_ref": "54119b6a", - "sha256": "c0021e430b124abe8632adc001b9568420851205fb65f03107e77f0f5d0fc7b2", + "sha256": "724f4cec68b2210e59333ff279544ecc39200d6277707eeea94cee600a774a5c", "default_categories": [ "Productivity" ] @@ -16,6 +16,6 @@ ], "refs": { "54119b6a": "#!/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.northpolesec.santa'\nremove_launchctl_service 'com.northpolesec.santa.bundleservice'\nremove_launchctl_service 'com.northpolesec.santa.metricservice'\nremove_launchctl_service 'com.northpolesec.santa.syncservice'\nremove_launchctl_service 'com.northpolesec.santad'\nremove_pkg_files 'com.northpolesec.santa'\nforget_pkg 'com.northpolesec.santa'\nsudo rm -rf '/Applications/Santa.app'\nsudo rm -rf '/usr/local/bin/santactl'\nsudo rm -rf '/var/db/santa'\nsudo rm -rf '/var/log/santa*'\ntrash $LOGGED_IN_USER '/private/etc/asl/com.northpolesec.santa.asl.conf'\ntrash $LOGGED_IN_USER '/private/etc/newsyslog.d/com.northpolesec.santa.newsyslog.conf'\n", - "5db69e8d": "#!/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\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nquit_and_track_application 'com.northpolesec.santa'\nsudo installer -pkg \"$TMPDIR/santa-2025.12.pkg\" -target /\nrelaunch_application 'com.northpolesec.santa'\n" + "58098a90": "#!/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\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nquit_and_track_application 'com.northpolesec.santa'\nsudo installer -pkg \"$TMPDIR/santa-2026.1.pkg\" -target /\nrelaunch_application 'com.northpolesec.santa'\n" } } diff --git a/ee/maintained-apps/outputs/teleport-connect/darwin.json b/ee/maintained-apps/outputs/teleport-connect/darwin.json index c8b34795f1..99cc59cbf3 100644 --- a/ee/maintained-apps/outputs/teleport-connect/darwin.json +++ b/ee/maintained-apps/outputs/teleport-connect/darwin.json @@ -1,14 +1,14 @@ { "versions": [ { - "version": "18.6.4", + "version": "18.6.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect';" }, - "installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.6.4.dmg", + "installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.6.5.dmg", "install_script_ref": "c4abf467", "uninstall_script_ref": "b6540188", - "sha256": "90763cc999a2e416340120f425e43162c862d478995b74cda91c0eb7e14dcee9", + "sha256": "c41a0da37160a9973e7a1bd5597af9ab729eb130533e46fed1a5fe48a7c086ee", "default_categories": [ "Productivity" ]