From c4ad8f45f33f138da3fc2b0dd80d1917e3af2660 Mon Sep 17 00:00:00 2001 From: allenhouchins <32207388+allenhouchins@users.noreply.github.com> Date: Mon, 20 Jul 2026 20:31:04 +0000 Subject: [PATCH] Update Fleet-maintained apps. Generated automatically with cmd/maintained-apps. --- ee/maintained-apps/outputs/dbgate/darwin.json | 8 ++++---- ee/maintained-apps/outputs/fontbase/darwin.json | 8 ++++---- ee/maintained-apps/outputs/jami/darwin.json | 8 ++++---- ee/maintained-apps/outputs/kiro/darwin.json | 8 ++++---- ee/maintained-apps/outputs/macpacker/darwin.json | 8 ++++---- ee/maintained-apps/outputs/notepadexe/darwin.json | 8 ++++---- .../outputs/opencode-desktop/darwin.json | 8 ++++---- .../outputs/origami-studio/darwin.json | 4 ++-- ee/maintained-apps/outputs/reqable/windows.json | 8 ++++---- ee/maintained-apps/outputs/spokenly/darwin.json | 8 ++++---- .../outputs/teleport-connect/darwin.json | 8 ++++---- .../outputs/teleport-connect/windows.json | 8 ++++---- .../outputs/teleport-suite/darwin.json | 14 +++++++------- ee/maintained-apps/outputs/typora/windows.json | 8 ++++---- 14 files changed, 57 insertions(+), 57 deletions(-) diff --git a/ee/maintained-apps/outputs/dbgate/darwin.json b/ee/maintained-apps/outputs/dbgate/darwin.json index 20324bd5621..477ce86866f 100644 --- a/ee/maintained-apps/outputs/dbgate/darwin.json +++ b/ee/maintained-apps/outputs/dbgate/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "7.2.1", + "version": "7.2.3", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate' AND version_compare(bundle_short_version, '7.2.1') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.dbgate' AND version_compare(bundle_short_version, '7.2.3') < 0);" }, - "installer_url": "https://github.com/dbgate/dbgate/releases/download/v7.2.1/dbgate-7.2.1-mac_universal.dmg", + "installer_url": "https://github.com/dbgate/dbgate/releases/download/v7.2.3/dbgate-7.2.3-mac_universal.dmg", "install_script_ref": "d351047a", "uninstall_script_ref": "64b18c76", - "sha256": "96e934bd645ce31dd031800faae4d68925bd16a4ded48b019bda8ea0e7873a9b", + "sha256": "0e3d02d0cd4065de551eab2751de862c341c3afb70db5a802fe0d06b1131f222", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/fontbase/darwin.json b/ee/maintained-apps/outputs/fontbase/darwin.json index a902f6533f9..6e69d8c18a7 100644 --- a/ee/maintained-apps/outputs/fontbase/darwin.json +++ b/ee/maintained-apps/outputs/fontbase/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2026.5.17", + "version": "2026.5.23", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase' AND version_compare(bundle_short_version, '2026.5.17') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dominiklevitsky.fontbase' AND version_compare(bundle_short_version, '2026.5.23') < 0);" }, - "installer_url": "https://releases.fontba.se/mac/FontBase-2026.5.17.dmg", + "installer_url": "https://releases.fontba.se/mac/FontBase-2026.5.23.dmg", "install_script_ref": "c8308243", "uninstall_script_ref": "0ba275cf", - "sha256": "2ec577474fe8ea04e7b494893031df2a78923bd3690e34a29f0b2796bb2a2979", + "sha256": "a83df8f6babc9243618dce027865590c11f108d236e29a636f1d310cb8c05e8a", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/jami/darwin.json b/ee/maintained-apps/outputs/jami/darwin.json index dc285c63ed5..1628d99fe8d 100644 --- a/ee/maintained-apps/outputs/jami/darwin.json +++ b/ee/maintained-apps/outputs/jami/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.40", + "version": "2.41", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring' AND version_compare(bundle_short_version, '2.40') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cx.ring' AND version_compare(bundle_short_version, '2.41') < 0);" }, - "installer_url": "https://dl.jami.net/mac_osx/jami2026070716.dmg", + "installer_url": "https://dl.jami.net/mac_osx/jami2026072011.dmg", "install_script_ref": "50f205f2", "uninstall_script_ref": "aff7c461", - "sha256": "1c13910477756aa53b000bfc27856491090b2b5a497e0abdab39a0a30488a84a", + "sha256": "5ecb4257d78b6a955df972624871563e9a78486a4be12989184dcbc9f0796b6a", "default_categories": [ "Communication" ] diff --git a/ee/maintained-apps/outputs/kiro/darwin.json b/ee/maintained-apps/outputs/kiro/darwin.json index e695d04d4ee..2de82d9062a 100644 --- a/ee/maintained-apps/outputs/kiro/darwin.json +++ b/ee/maintained-apps/outputs/kiro/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.0.165", + "version": "1.0.182", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.165') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.desktop' AND version_compare(bundle_short_version, '1.0.182') < 0);" }, - "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/darwin-arm64/signed/1.0.165/kiro-ide-1.0.165-stable-darwin-arm64.dmg", + "installer_url": "https://prod.download.desktop.kiro.dev/releases/stable/darwin-arm64/signed/1.0.182/kiro-ide-1.0.182-stable-darwin-arm64.dmg", "install_script_ref": "28c3d1eb", "uninstall_script_ref": "b5d79db0", - "sha256": "24136734ca1a3fdc5505f2892edc955184563ec4f8bcf1174df25788d757cc7f", + "sha256": "afe063cafd94622daf9844b37572826948a096cb46754a3ce3cd4bc131bd0dea", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/macpacker/darwin.json b/ee/maintained-apps/outputs/macpacker/darwin.json index dd10cb96d20..ebf258eee74 100644 --- a/ee/maintained-apps/outputs/macpacker/darwin.json +++ b/ee/maintained-apps/outputs/macpacker/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "0.17.0", + "version": "0.18.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker' AND version_compare(bundle_short_version, '0.17.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sarensx.MacPacker' AND version_compare(bundle_short_version, '0.18.0') < 0);" }, - "installer_url": "https://macpacker-releases.s3.amazonaws.com/MacPacker_v0.17.0.zip", + "installer_url": "https://macpacker-releases.s3.amazonaws.com/MacPacker_v0.18.0.zip", "install_script_ref": "a8350ac7", "uninstall_script_ref": "fd696a74", - "sha256": "87c5658a759d408adc6f0897ce67604795ddf7ab189fc0e988c299ca3d52f1f4", + "sha256": "605b83851793a5670005e2eea61e09013a0bba5d7cac22bf2830030212f679eb", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/notepadexe/darwin.json b/ee/maintained-apps/outputs/notepadexe/darwin.json index f66727e328c..3f7e8228f5f 100644 --- a/ee/maintained-apps/outputs/notepadexe/darwin.json +++ b/ee/maintained-apps/outputs/notepadexe/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.5.4", + "version": "1.5.5", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.5.4') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.5.5') < 0);" }, - "installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.5.4/Notepad.zip", + "installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.5.5/Notepad.zip", "install_script_ref": "17716d6a", "uninstall_script_ref": "abe56690", - "sha256": "d067ad28fe3db4272ec561835183d3a64d494906c5a5e364faae165a480e4698", + "sha256": "032899fc54c9858ad672c0a184981a145e97b918d14fce942b0a30ae97b5503e", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/opencode-desktop/darwin.json b/ee/maintained-apps/outputs/opencode-desktop/darwin.json index 6d9a70bc115..0fbd49be37a 100644 --- a/ee/maintained-apps/outputs/opencode-desktop/darwin.json +++ b/ee/maintained-apps/outputs/opencode-desktop/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.18.3", + "version": "1.18.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.18.4') < 0);" }, - "installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.18.3/opencode-desktop-mac-arm64.dmg", + "installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.18.4/opencode-desktop-mac-arm64.dmg", "install_script_ref": "727dc41e", "uninstall_script_ref": "ad62b190", - "sha256": "3ebbf9a2143f3f1419b5eac27ae2011eb4fe3a8051075328a5bdbb65dc9ce25f", + "sha256": "101308fd3247c9757e49cf0c64339057366f5dad4b155e5d641e3ee31905885f", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/origami-studio/darwin.json b/ee/maintained-apps/outputs/origami-studio/darwin.json index 212386cb91f..bd13c0b58cd 100644 --- a/ee/maintained-apps/outputs/origami-studio/darwin.json +++ b/ee/maintained-apps/outputs/origami-studio/darwin.json @@ -1,10 +1,10 @@ { "versions": [ { - "version": "223.0.0.0.0", + "version": "224.0.0.0.0", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio' AND version_compare(bundle_short_version, '223.0.0.0.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.facebook.Origami-Studio' AND version_compare(bundle_short_version, '224.0.0.0.0') < 0);" }, "installer_url": "https://facebook.com/designtools/origami/", "install_script_ref": "9c7a031b", diff --git a/ee/maintained-apps/outputs/reqable/windows.json b/ee/maintained-apps/outputs/reqable/windows.json index debdded9785..1f3b6082ef9 100644 --- a/ee/maintained-apps/outputs/reqable/windows.json +++ b/ee/maintained-apps/outputs/reqable/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "3.2.10", + "version": "3.2.11", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.' AND version_compare(version, '3.2.10') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.' AND version_compare(version, '3.2.11') < 0);" }, - "installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.10/reqable-app-windows-x86_64.exe", + "installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.11/reqable-app-windows-x86_64.exe", "install_script_ref": "d2ffec58", "uninstall_script_ref": "b33fc442", - "sha256": "ab23e162bb05bfd599595c44e1e2a144df5ea130ad569e62f9d9cf3bbb093b30", + "sha256": "f8a1a030af80f088316a38dc9db638c4e8873c6a1db8b83c21d2f93a7f4ec4f0", "default_categories": [ "Developer tools" ] diff --git a/ee/maintained-apps/outputs/spokenly/darwin.json b/ee/maintained-apps/outputs/spokenly/darwin.json index 353970ee04e..23c59af4bb1 100644 --- a/ee/maintained-apps/outputs/spokenly/darwin.json +++ b/ee/maintained-apps/outputs/spokenly/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "2.25.3", + "version": "2.25.4", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.25.3') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.spokenly' AND version_compare(bundle_short_version, '2.25.4') < 0);" }, - "installer_url": "https://cdn.spokenly.app/releases/macos/Spokenly-2.25.3.dmg", + "installer_url": "https://cdn.spokenly.app/releases/macos/Spokenly-2.25.4.dmg", "install_script_ref": "5f8295ce", "uninstall_script_ref": "a5d6883d", - "sha256": "facc919c9f0c316a186f155c1608ccf157e333bf84c15ac644e9f94b4fd3c3cc", + "sha256": "5e4987dfde3abdd0844329c2afc9e6d08ec7177090596a78dff56c566a3431ee", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/teleport-connect/darwin.json b/ee/maintained-apps/outputs/teleport-connect/darwin.json index ef8fa71975f..e9c822bc844 100644 --- a/ee/maintained-apps/outputs/teleport-connect/darwin.json +++ b/ee/maintained-apps/outputs/teleport-connect/darwin.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "18.10.0", + "version": "18.10.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect' AND version_compare(bundle_short_version, '18.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'gravitational.teleport.connect' AND version_compare(bundle_short_version, '18.10.1') < 0);" }, - "installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.10.0.dmg", + "installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.10.1.dmg", "install_script_ref": "671bf444", "uninstall_script_ref": "e96ff37d", - "sha256": "9b93e5ba6cf6d2ad23ecb86fb3791cb73472735a48deedb3e49e8673e2b7dba0", + "sha256": "6c64a6f8a7eb51b7a88169ff8e8ca0f2bb8376f1edece763f950b9c0121c15e6", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/teleport-connect/windows.json b/ee/maintained-apps/outputs/teleport-connect/windows.json index e9451d0692b..eaacd7aec34 100644 --- a/ee/maintained-apps/outputs/teleport-connect/windows.json +++ b/ee/maintained-apps/outputs/teleport-connect/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "18.10.0", + "version": "18.10.1", "queries": { "exists": "SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.' AND version_compare(version, '18.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Teleport Connect %' AND publisher = 'Gravitational, Inc.' AND version_compare(version, '18.10.1') < 0);" }, - "installer_url": "https://cdn.teleport.dev/Teleport%20Connect%20Setup-18.10.0.exe", + "installer_url": "https://cdn.teleport.dev/Teleport%20Connect%20Setup-18.10.1.exe", "install_script_ref": "5203db2b", "uninstall_script_ref": "df260b5b", - "sha256": "3aacaa6fdba9aecb6a5be0e7e9ca8efb8caa9bebd9eb90a0f9683ac2d58aeefb", + "sha256": "1f448ed6823944ba276bdfa50efd75af9d8165efc62b19bbd65e285c8c63015c", "default_categories": [ "Productivity" ] diff --git a/ee/maintained-apps/outputs/teleport-suite/darwin.json b/ee/maintained-apps/outputs/teleport-suite/darwin.json index a01acde1988..871da461721 100644 --- a/ee/maintained-apps/outputs/teleport-suite/darwin.json +++ b/ee/maintained-apps/outputs/teleport-suite/darwin.json @@ -1,22 +1,22 @@ { "versions": [ { - "version": "18.10.0", + "version": "18.10.1", "queries": { "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh' AND version_compare(bundle_short_version, '18.10.0') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.gravitational.teleport.tsh' AND version_compare(bundle_short_version, '18.10.1') < 0);" }, - "installer_url": "https://cdn.teleport.dev/teleport-18.10.0.pkg", - "install_script_ref": "310925c0", + "installer_url": "https://cdn.teleport.dev/teleport-18.10.1.pkg", + "install_script_ref": "ebebc96f", "uninstall_script_ref": "343cb8f4", - "sha256": "740d86e9a1ebad8841882b3b5ef5e34400fd7aca0a7d38ac7bc9a19d21a7201f", + "sha256": "95e8a462fc51ceb148a27c8dd04db3dc367509dff5b394aca372e2cba99405a2", "default_categories": [ "Developer tools" ] } ], "refs": { - "310925c0": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# install pkg files\nquit_and_track_application 'com.gravitational.teleport.tsh'\nsudo installer -pkg \"$TMPDIR/teleport-18.10.0.pkg\" -target /\nrelaunch_application 'com.gravitational.teleport.tsh'\n", - "343cb8f4": "#!/bin/bash\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 # Convert (.*) to .* for regex matching to handle patterns like (.*).com.example.app\n local regex_pattern=$(echo \"$prefix\" | sed 's/(\\.\\*)/.*/g')\n echo \"Expanding wildcard for PKGID: $PKGID (pattern: ^${regex_pattern})\"\n for receipt in $(pkgutil --pkgs | grep -E \"^${regex_pattern}\"); 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_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|^|${FULL_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\n# Remove teleport-suite packages (handles wildcard patterns with (.*))\nremove_pkg_files '(.*).com.gravitational.teleport.tctl'\nforget_pkg '(.*).com.gravitational.teleport.tctl'\nremove_pkg_files '(.*).com.gravitational.teleport.tsh'\nforget_pkg '(.*).com.gravitational.teleport.tsh'\nremove_pkg_files 'com.gravitational.teleport'\nforget_pkg 'com.gravitational.teleport'\n\n# Explicitly remove apps from /Applications (in case pkgutil removal didn't catch them)\nsudo rm -rf '/Applications/tctl.app'\nsudo rm -rf '/Applications/tsh.app'\n\n# Remove binaries\nsudo rm -rf '/usr/local/bin/fdpass-teleport'\nsudo rm -rf '/usr/local/bin/tbot'\nsudo rm -rf '/usr/local/bin/tctl'\nsudo rm -rf '/usr/local/bin/teleport'\nsudo rm -rf '/usr/local/bin/tsh'\n\n# Remove user data\ntrash $LOGGED_IN_USER '~/.tsh'\n\n" + "343cb8f4": "#!/bin/bash\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 # Convert (.*) to .* for regex matching to handle patterns like (.*).com.example.app\n local regex_pattern=$(echo \"$prefix\" | sed 's/(\\.\\*)/.*/g')\n echo \"Expanding wildcard for PKGID: $PKGID (pattern: ^${regex_pattern})\"\n for receipt in $(pkgutil --pkgs | grep -E \"^${regex_pattern}\"); 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_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|^|${FULL_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\n# Remove teleport-suite packages (handles wildcard patterns with (.*))\nremove_pkg_files '(.*).com.gravitational.teleport.tctl'\nforget_pkg '(.*).com.gravitational.teleport.tctl'\nremove_pkg_files '(.*).com.gravitational.teleport.tsh'\nforget_pkg '(.*).com.gravitational.teleport.tsh'\nremove_pkg_files 'com.gravitational.teleport'\nforget_pkg 'com.gravitational.teleport'\n\n# Explicitly remove apps from /Applications (in case pkgutil removal didn't catch them)\nsudo rm -rf '/Applications/tctl.app'\nsudo rm -rf '/Applications/tsh.app'\n\n# Remove binaries\nsudo rm -rf '/usr/local/bin/fdpass-teleport'\nsudo rm -rf '/usr/local/bin/tbot'\nsudo rm -rf '/usr/local/bin/tctl'\nsudo rm -rf '/usr/local/bin/teleport'\nsudo rm -rf '/usr/local/bin/tsh'\n\n# Remove user data\ntrash $LOGGED_IN_USER '~/.tsh'\n\n", + "ebebc96f": "#!/bin/bash\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath \"$INSTALLER_PATH\")\")\n# functions\n\nquit_and_track_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local timeout_duration=10\n\n # check if the application is running\n local app_running\n app_running=$(osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null)\n if [[ \"$app_running\" != \"true\" ]]; then\n eval \"export $var_name=0\"\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n eval \"export $var_name=0\"\n return\n fi\n\n # App was running, mark it for relaunch\n eval \"export $var_name=1\"\n echo \"Application '$bundle_id' was running; will relaunch after installation.\"\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nrelaunch_application() {\n local bundle_id=\"$1\"\n local var_name=\"APP_WAS_RUNNING_$(echo \"$bundle_id\" | tr '.-' '__')\"\n local was_running\n\n # Check if the app was running before installation\n eval \"was_running=\\$$var_name\"\n if [[ \"$was_running\" != \"1\" ]]; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ -z \"$console_user\" || \"$console_user\" == \"root\" || \"$console_user\" == \"loginwindow\" ]]; then\n echo \"Not logged into a non-root GUI; skipping relaunching application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Relaunching application '$bundle_id'...\"\n\n # Launch the app in the logged-in user's GUI session. Apps launched by root\n # won't register with the user's Dock/GUI, so run 'open' as the console user.\n # Use 'launchctl asuser' to bootstrap into the console user's Mach namespace\n # and GUI session — 'sudo -u' alone doesn't do this, which can cause\n # LSOpenURLsWithRole() failures even when 'open' exits 0.\n local open_status=0\n if [[ $EUID -eq 0 ]]; then\n local console_uid\n console_uid=$(id -u \"$console_user\")\n /bin/launchctl asuser \"$console_uid\" sudo -u \"$console_user\" open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n else\n open -b \"$bundle_id\" >/dev/null 2>&1 || open_status=$?\n fi\n\n if [[ $open_status -eq 0 ]]; then\n echo \"Application '$bundle_id' relaunched successfully.\"\n else\n echo \"Failed to relaunch application '$bundle_id'.\"\n fi\n}\n\n\n# install pkg files\nquit_and_track_application 'com.gravitational.teleport.tsh'\nsudo installer -pkg \"$TMPDIR/teleport-18.10.1.pkg\" -target /\nrelaunch_application 'com.gravitational.teleport.tsh'\n" } } diff --git a/ee/maintained-apps/outputs/typora/windows.json b/ee/maintained-apps/outputs/typora/windows.json index c32af4a8be0..ef220e163d5 100644 --- a/ee/maintained-apps/outputs/typora/windows.json +++ b/ee/maintained-apps/outputs/typora/windows.json @@ -1,15 +1,15 @@ { "versions": [ { - "version": "1.13.7", + "version": "1.14.6", "queries": { "exists": "SELECT 1 FROM programs WHERE name = 'Typora' AND publisher = 'typora.io';", - "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Typora' AND publisher = 'typora.io' AND version_compare(version, '1.13.7') < 0);" + "patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Typora' AND publisher = 'typora.io' AND version_compare(version, '1.14.6') < 0);" }, - "installer_url": "https://downloads.typora.io/windows/typora-setup-x64-1.13.7.exe", + "installer_url": "https://downloads.typora.io/windows/typora-setup-x64-1.14.6.exe", "install_script_ref": "cf428c2f", "uninstall_script_ref": "56e4e60f", - "sha256": "04dc5d0ec1ddae9ab1d405be578c2d486e48cca9295029f79d532db80032ab40", + "sha256": "8ba0106792bee94003c619a0e19152381904f5b35757838a9bac9c5a596d1c8e", "default_categories": [ "Productivity" ]