Update Fleet-maintained apps (#49032)

Automated ingestion of latest Fleet-maintained app data.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Refreshed installer and update metadata for many maintained apps on
macOS and Windows.
* Improved version checks so upgrade detection matches the latest
releases.
* Updated download links and verification data to point to current
installers.
* Added support for newer app builds across browsers, utilities,
developer tools, and collaboration apps.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: allenhouchins <32207388+allenhouchins@users.noreply.github.com>
This commit is contained in:
fleet-release
2026-07-09 10:13:57 -05:00
committed by GitHub
co-authored by allenhouchins
parent 598f425b66
commit 232c433214
68 changed files with 260 additions and 260 deletions
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "9.27.1",
"version": "9.28.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG' AND version_compare(version, '9.27.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'alfaview msi version %' AND publisher = 'alfaview Video Conferencing Systems GmbH & Co. KG' AND version_compare(version, '9.28.1') < 0);"
},
"installer_url": "https://assets.alfaview.com/stable/win/alfaview-setup-win-production-9.27.1.msi",
"installer_url": "https://assets.alfaview.com/stable/win/alfaview-setup-win-production-9.28.1.msi",
"install_script_ref": "8959087b",
"uninstall_script_ref": "cfe9bd59",
"sha256": "db57137fd6a41021d92caaf9a64fb96862540ecd71b6da7862777938fff3f4b6",
"sha256": "a8e46533ea8bc176331c37f96a67c87fb90dcf9946854468a996558a63751cad",
"default_categories": [
"Communication"
],
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2.35.17",
"version": "2.35.19",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services' AND version_compare(version, '2.35.17') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'AWS Command Line Interface v2 %' AND publisher = 'Amazon Web Services' AND version_compare(version, '2.35.19') < 0);"
},
"installer_url": "https://awscli.amazonaws.com/AWSCLIV2-2.35.17.msi",
"installer_url": "https://awscli.amazonaws.com/AWSCLIV2-2.35.19.msi",
"install_script_ref": "8959087b",
"uninstall_script_ref": "58bcd016",
"sha256": "ed15de95b18382bf384e8ccb015278689aafe427930b5ee47f42471a98116527",
"sha256": "b92a2b24275ca6750655cc5294d369198a2b0be4ad1e8b1ceae248bc4d186ff9",
"default_categories": [
"Developer tools"
],
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "4.2.957",
"version": "4.2.972",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop' AND version_compare(bundle_short_version, '4.2.957') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.automattic.beeper.desktop' AND version_compare(bundle_short_version, '4.2.972') < 0);"
},
"installer_url": "https://beeper-desktop.download.beeper.com/builds/Beeper-4.2.957-arm64-mac.zip",
"installer_url": "https://beeper-desktop.download.beeper.com/builds/Beeper-4.2.972-arm64-mac.zip",
"install_script_ref": "a73050ea",
"uninstall_script_ref": "978d30f8",
"sha256": "8ca0aad017a425fd6ea47448bd90244df42630a90cbdf56bf30da35c3223ad5d",
"sha256": "769a51a8767418e7af199b6c133a78e03be4c993b59b43f1212c1f5118df99e6",
"default_categories": [
"Communication"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "4.3.4",
"version": "4.3.5",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay' AND version_compare(bundle_short_version, '4.3.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'pro.betterdisplay.BetterDisplay' AND version_compare(bundle_short_version, '4.3.5') < 0);"
},
"installer_url": "https://github.com/waydabber/BetterDisplay/releases/download/v4.3.4/BetterDisplay-v4.3.4.dmg",
"installer_url": "https://github.com/waydabber/BetterDisplay/releases/download/v4.3.5/BetterDisplay-v4.3.5.dmg",
"install_script_ref": "ccda2f05",
"uninstall_script_ref": "5a2c4908",
"sha256": "234122f7e4ec6e6b00ea2143d42c12720ad4ece3bd98bddf977feebc2612e092",
"sha256": "f25502e82b37b9b1d1467a2843834ce203c8537ab73c449c6e79460ae0bb5607",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "6.609",
"version": "6.626",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool' AND version_compare(bundle_short_version, '6.609') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hegenberg.BetterTouchTool' AND version_compare(bundle_short_version, '6.626') < 0);"
},
"installer_url": "https://folivora.ai/releases/btt6.609-2026062603.zip",
"installer_url": "https://folivora.ai/releases/btt6.626-2026070802.zip",
"install_script_ref": "920c563d",
"uninstall_script_ref": "b0dc7152",
"sha256": "b0770364a91d968a3f3916bd88f9e1f331d8cda8f2848ef21a9130dd9ae43477",
"sha256": "51b400365f0e69ddba0aa450f116d989ad795ec3cde0cda2e38f11876160a6cf",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "150.1.92.134",
"version": "150.1.92.138",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser' AND version_compare(bundle_short_version, '150.1.92.134') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser' AND version_compare(bundle_short_version, '150.1.92.138') < 0);"
},
"installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/192.134/Brave-Browser-arm64.dmg",
"installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/192.138/Brave-Browser-arm64.dmg",
"install_script_ref": "013e53e8",
"uninstall_script_ref": "9a376609",
"sha256": "7fa772713526d51ceb8f45c89d334d05100a1fa036b6b98dfadc2df4ba5998da",
"sha256": "2fdeecb87b03b6d77c82da1721a890d47f96cce5be3d847fe4e5d6df546942ae",
"default_categories": [
"Browsers"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.1.0",
"version": "7.1.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd' AND version_compare(version, '7.1.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Certify Certificate Manager %' AND publisher = 'Webprofusion Pty Ltd' AND version_compare(version, '7.1.1') < 0);"
},
"installer_url": "https://downloads.certifytheweb.com/release/7.1.0.0/certify-ccm-windows-x64-7.1.0.0.exe",
"installer_url": "https://downloads.certifytheweb.com/release/7.1.1.0/certify-ccm-windows-x64-7.1.1.0.exe",
"install_script_ref": "1e19d090",
"uninstall_script_ref": "16388671",
"sha256": "0b1b90cde6308f3446af04f55398c56a7fc55b82a22aeb64f3543e0cb2013bce",
"sha256": "8df363d117b27a87582d318c13d23964ba309397e2c75bc82e14df5a9f8085d0",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.7.1",
"version": "26.7.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise' AND version_compare(bundle_short_version, '26.7.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.chatwise' AND version_compare(bundle_short_version, '26.7.2') < 0);"
},
"installer_url": "https://releases.chatwise.app/26.7.1/ChatWise-26.7.1-arm64.dmg",
"installer_url": "https://releases.chatwise.app/26.7.2/ChatWise-26.7.2-arm64.dmg",
"install_script_ref": "b3b382a0",
"uninstall_script_ref": "da509fe4",
"sha256": "cfa40ef35e1c2091391321d97ea6a1401189620759ed12d14ef6c8699df5a950",
"sha256": "a859dbeb87ad17d90ebf6418dfc36bfd774a7cdc8541018ff9ed07c91ab99ab2",
"default_categories": [
"Communication"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.18286.0",
"version": "1.19367.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC' AND version_compare(version, '1.18286.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC' AND version_compare(version, '1.19367.0') < 0);"
},
"installer_url": "https://downloads.claude.ai/releases/win32/x64/1.18286.0/Claude-259c3fc2a647e4222ca15e99bba9b2649f31f051.msix",
"installer_url": "https://downloads.claude.ai/releases/win32/x64/1.19367.0/Claude-1a5be1fbf83d1832486e03a667557c18f0a0ec7a.msix",
"install_script_ref": "16c020cc",
"uninstall_script_ref": "03f72055",
"sha256": "7927bafc45478d87d3213d9b9afb27bba58bc32b4fe9aa58a106cbfc139d0d3c",
"sha256": "dd2414e9875341d931d2e2103b6d917d762efaeb5f018422f79dcfcc879da974",
"default_categories": [
"Productivity"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.2.4b3",
"version": "3.2.3",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.2.4b3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.lowtechguys.Clop' AND version_compare(bundle_short_version, '3.2.3') < 0);"
},
"installer_url": "https://files.lowtechguys.com/releases/Clop-3.2.4b3.dmg",
"installer_url": "https://files.lowtechguys.com/releases/Clop-3.2.3.dmg",
"install_script_ref": "76fb9b1b",
"uninstall_script_ref": "3712ca1f",
"sha256": "e43ab10eb0c5557ef7de399b4a423933809a99a148313fd1ee3db10ee29ae2d4",
"sha256": "df3ca2a632d629c978068b4bc0f4a6119c27f8608160610ba3e40d8db45c5bd6",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.2",
"version": "26.2.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB' AND version_compare(version, '26.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'DbVisualizer' AND publisher = 'DbVis Software AB' AND version_compare(version, '26.2.1') < 0);"
},
"installer_url": "https://www.dbvis.com/product_download/dbvis-26.2/media/dbvis_windows-x64_26_2_jre.exe",
"installer_url": "https://www.dbvis.com/product_download/dbvis-26.2.1/media/dbvis_windows-x64_26_2_1_jre.exe",
"install_script_ref": "a8ba6613",
"uninstall_script_ref": "32e47ba9",
"sha256": "d5164243f3d15d7a07f3fedb289a73c3736b28c87efa62f8fdf57fa02d9f4d9a",
"sha256": "d387267dfc380a42bf881c2d4ab15f72139e31c7f4810045c96bc22b0b307c53",
"default_categories": [
"Developer tools"
]
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "2606.1.1",
"version": "2606.1.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad' AND version_compare(bundle_short_version, '2606.1.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad' AND version_compare(bundle_short_version, '2606.1.2') < 0);"
},
"installer_url": "https://download.dialpad.com/osx/arm64/dialpad.pkg",
"install_script_ref": "49548b01",
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.2.1",
"version": "3.2.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink' AND version_compare(bundle_short_version, '3.2.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.WaveLink' AND version_compare(bundle_short_version, '3.2.2') < 0);"
},
"installer_url": "https://edge.elgato.com/egc/macos/ewlm/release/ElgatoWaveLink-3.2.1.2886.dmg",
"installer_url": "https://edge.elgato.com/egc/macos/ewlm/release/ElgatoWaveLink-3.2.2.2896.dmg",
"install_script_ref": "246335ee",
"uninstall_script_ref": "adcd3954",
"sha256": "5099fac79d618a982a90789a8a025e16af56f94f96285751c44fcfe6b9491ead",
"sha256": "a1d57ef953a418cf188ec13335a8ee4d40d55df3b28219f5da69c191ffa47636",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "4.3.0",
"version": "4.3.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dignicy.extraDock' AND version_compare(bundle_short_version, '4.3.1') < 0);"
},
"installer_url": "https://github.com/AppitStudio/extra-dock-updates/releases/download/v4.3.0/extraDock.dmg",
"installer_url": "https://github.com/AppitStudio/extra-dock-updates/releases/download/v4.3.1/extraDock.dmg",
"install_script_ref": "ea28520f",
"uninstall_script_ref": "8b3ad59b",
"sha256": "bbca35cf9879001caee8a298982566baa16927656a847bb0acff7afe7ddae9b1",
"sha256": "6f885365d2c4e8ac43d7e223b13436cd8dbad67b3e82309e21a3de7f8a32d02b",
"default_categories": [
"Productivity"
]
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "150.0.7871.101",
"version": "150.0.7871.115",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '150.0.7871.101') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome' AND version_compare(bundle_short_version, '150.0.7871.115') < 0);"
},
"installer_url": "https://dl.google.com/dl/chrome/mac/universal/stable/gcem/GoogleChrome.pkg",
"install_script_ref": "6981ff84",
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "150.0.7871.101",
"version": "150.0.7871.115",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC' AND version_compare(version, '150.0.7871.101') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC' AND version_compare(version, '150.0.7871.115') < 0);"
},
"installer_url": "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi",
"install_script_ref": "8959087b",
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.386.3",
"version": "7.394.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.386.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.granola.app' AND version_compare(bundle_short_version, '7.394.2') < 0);"
},
"installer_url": "https://dr2v7l5emb758.cloudfront.net/7.386.3/Granola-7.386.3-mac-universal.dmg",
"installer_url": "https://dr2v7l5emb758.cloudfront.net/7.394.2/Granola-7.394.2-mac-universal.dmg",
"install_script_ref": "89a55638",
"uninstall_script_ref": "7b9b9d06",
"sha256": "ec04257770ecf1195e1838f0ee2aa721ebeaea723b4735736cb5af1b20ebed0f",
"sha256": "68966d873ce9a20efbb52da7a0cfde452587add158c1185b1c4000bba19a82b7",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.386.3",
"version": "7.394.2",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola' AND version_compare(version, '7.386.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Granola %' AND publisher = 'Granola' AND version_compare(version, '7.394.2') < 0);"
},
"installer_url": "https://dr2v7l5emb758.cloudfront.net/7.386.3/Granola-7.386.3-win-x64.exe",
"installer_url": "https://dr2v7l5emb758.cloudfront.net/7.394.2/Granola-7.394.2-win-x64.exe",
"install_script_ref": "3f66ac53",
"uninstall_script_ref": "a4fab3f5",
"sha256": "81ee1e935dfb184190130ce90e2f0ab1a7843944e36598f2c91a2e23b0846051",
"sha256": "e1ea74204caf6597737b73efcf4e2ef8069c6a4b7607bd05bae41ba35c91f08a",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.2.10",
"version": "1.2.12",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app' AND version_compare(bundle_short_version, '1.2.10') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hive.app' AND version_compare(bundle_short_version, '1.2.12') < 0);"
},
"installer_url": "https://github.com/morapelker/hive/releases/download/v1.2.10/Hive-1.2.10-arm64.dmg",
"installer_url": "https://github.com/morapelker/hive/releases/download/v1.2.12/Hive-1.2.12-arm64.dmg",
"install_script_ref": "6b39e7ad",
"uninstall_script_ref": "78bb4e43",
"sha256": "088841a79e3d2e312bf6a2ea76a045dd6dbec5d68dad772e9e65939b8c916db1",
"sha256": "91960040acb7d52fc5320a21fb216565de54e092ce8f369c40e8f5a4ff13d378",
"default_categories": [
"Productivity"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.98.0.0",
"version": "0.98.1.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP' AND version_compare(bundle_short_version, '0.98.0.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jasp-stats.JASP' AND version_compare(bundle_short_version, '0.98.1.0') < 0);"
},
"installer_url": "https://github.com/jasp-stats/jasp-desktop/releases/download/v0.98.0/JASP-0.98.0.0-macOS-arm64.dmg",
"installer_url": "https://github.com/jasp-stats/jasp-desktop/releases/download/v0.98.1/JASP-0.98.1.0-macOS-arm64.dmg",
"install_script_ref": "63e24221",
"uninstall_script_ref": "c91bcdf6",
"sha256": "d1c389afb43d76f06ea4783dfaed57a827b4d551c3b627d1f2e97c767ffee72d",
"sha256": "e980236d1ec6d58571b1f120d48f6c4c8ffc71bc893250a4988e96637220f257",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2.11.1",
"version": "2.12.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.11.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kiro.cli' AND version_compare(bundle_short_version, '2.12.0') < 0);"
},
"installer_url": "https://desktop-release.q.us-east-1.amazonaws.com/2.11.1/Kiro%20CLI.dmg",
"installer_url": "https://desktop-release.q.us-east-1.amazonaws.com/2.12.0/Kiro%20CLI.dmg",
"install_script_ref": "7bf3d706",
"uninstall_script_ref": "31b59062",
"sha256": "8878bb271f0d2484ef2c8a854618d45b8ed614d1f4863f4b8a5cec3d6643ad71",
"sha256": "27da10a29c001bf501ae8d6e397d9afc74179f857a816ac01b1a0e448633af1d",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2.2.4",
"version": "2.2.5",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.2.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mysticalbits.lookaway' AND version_compare(bundle_short_version, '2.2.5') < 0);"
},
"installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.2.4/LookAway.dmg",
"installer_url": "https://github.com/mysticalbits/lookaway-releases/releases/download/2.2.5/LookAway.dmg",
"install_script_ref": "8e23d582",
"uninstall_script_ref": "edb6da69",
"sha256": "9cc973a169b6eb88e595da845d2b8c9380fef63c6caee0e06f9829fcae0d51a9",
"sha256": "ba91765eec2bf81325a39c36aee318168bca6e47d954eb8444a3abf60aa64057",
"default_categories": [
"Productivity"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.359.0",
"version": "0.360.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.359.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.loom.desktop' AND version_compare(bundle_short_version, '0.360.0') < 0);"
},
"installer_url": "https://packages.loom.com/desktop-packages/Loom-0.359.0-arm64.dmg",
"installer_url": "https://packages.loom.com/desktop-packages/Loom-0.360.0-arm64.dmg",
"install_script_ref": "bd0f7905",
"uninstall_script_ref": "f408ec47",
"sha256": "9465dc2a6041525bc2fffaeb31120ee86cb82c29137cdc1401925b20289bd839",
"sha256": "42e61b6c126745d13b5544f3e3413e8ec0c30b8d3208b43546cd0315269bd79a",
"default_categories": [
"Productivity"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.359.2",
"version": "0.360.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.359.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Loom' AND publisher = 'Loom, Inc.' AND version_compare(version, '0.360.0') < 0);"
},
"installer_url": "https://cdn.loom.com/desktop-packages/Loom%20Setup%200.359.2.exe",
"installer_url": "https://cdn.loom.com/desktop-packages/Loom%20Setup%200.360.0.exe",
"install_script_ref": "77327cbf",
"uninstall_script_ref": "b012f1e7",
"sha256": "95b09541c0c5f922a15af0aa777ce773d6129ba274b6fe8ce2d9a1a814e34f04",
"sha256": "45010484b835f4b78785581cc4629ce2a4cc99adfba81fe022afeb4c646d5324",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.1.10",
"version": "3.1.11",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.10') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.brettterpstra.marked' AND version_compare(bundle_short_version, '3.1.11') < 0);"
},
"installer_url": "https://updates.markedapp.com/updates/Marked%203.1.10.zip",
"installer_url": "https://updates.markedapp.com/updates/Marked%203.1.11.zip",
"install_script_ref": "c6782863",
"uninstall_script_ref": "9e4b9fca",
"sha256": "47a4bdda9c8f3ffb57d4f747c05376cb02df2d21bef235da9a551f1b3ec33c13",
"sha256": "92c7085a480044b7fedea6f68ed6f1bcd9eb0a676ab8f61adc533c812ab752e8",
"default_categories": [
"Productivity"
]
+2 -2
View File
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "0.11.154",
"version": "0.11.157",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.154') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.realtimeboard' AND version_compare(bundle_short_version, '0.11.157') < 0);"
},
"installer_url": "https://desktop.miro.com/platforms/darwin-arm64/Install-Miro.dmg",
"install_script_ref": "ea60f0ac",
+3 -3
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.11.154",
"version": "0.11.157",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.154') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Miro' AND publisher = 'Miro' AND version_compare(version, '0.11.157') < 0);"
},
"installer_url": "https://desktop.miro.com/platforms/win32-nsis-pu/Miro-setup.exe",
"install_script_ref": "c9d9747e",
"uninstall_script_ref": "66f6a4de",
"sha256": "0191332d9a1ed8e470552adbc752d71c7da0d21172223369ac18cb37ff9c89a1",
"sha256": "0af023a374ba1cf1cbdb55130a448e74e2e64d96f36782bad298c40f7c0b648a",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.49.10.0",
"version": "1.49.11.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.10.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'MongoDB Compass' AND publisher = 'MongoDB Inc' AND version_compare(version, '1.49.11.0') < 0);"
},
"installer_url": "https://github.com/mongodb-js/compass/releases/download/v1.49.10/mongodb-compass-1.49.10-win32-x64.msi",
"installer_url": "https://github.com/mongodb-js/compass/releases/download/v1.49.11/mongodb-compass-1.49.11-win32-x64.msi",
"install_script_ref": "8959087b",
"uninstall_script_ref": "2781c2bb",
"sha256": "bf4f43c2d962756656a13bf9885096e9da655eb4053e936083c9d5fbbd6e72f7",
"sha256": "16bf031913c6ccce5485960fda52b57e0933934e3bb3c18192e9a97c5e32b2c5",
"default_categories": [
"Developer tools"
],
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "10.5.1",
"version": "10.6.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos' AND version_compare(bundle_short_version, '10.5.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordvpn.macos' AND version_compare(bundle_short_version, '10.6.0') < 0);"
},
"installer_url": "https://downloads.nordcdn.com/apps/macos/generic/NordVPN-OpenVPN/10.5.1/NordVPN.pkg",
"installer_url": "https://downloads.nordcdn.com/apps/macos/generic/NordVPN-OpenVPN/10.6.0/NordVPN.pkg",
"install_script_ref": "60b24e24",
"uninstall_script_ref": "4f2c1a63",
"sha256": "7eaa613fa6fedc8e4df39e3d5c825389c08620e3270ec9aa64cb5c71b293f91e",
"sha256": "2921f05a0a7de917dcbde44fee6f4b33a09e2718b302001396731a75dea29ed6",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.4.1920",
"version": "1.4.1925",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.4.1920') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'best.swift.Notepad' AND version_compare(bundle_short_version, '1.4.1925') < 0);"
},
"installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.4.1920/Notepad.zip",
"installer_url": "https://github.com/notepadhq/notepadexe-public/releases/download/1.4.1925/Notepad.zip",
"install_script_ref": "17716d6a",
"uninstall_script_ref": "abe56690",
"sha256": "0ad09b0b03fba26e93e42fead5f21efbf2bd9da6fb001567f2f975a6a27b2531",
"sha256": "e835d68eb7c7ea1d8ee9d54fbae1240d268452043b7e9eaebbf693e89ff82a1d",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.25.0",
"version": "7.25.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id' AND version_compare(bundle_short_version, '7.25.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id' AND version_compare(bundle_short_version, '7.25.1') < 0);"
},
"installer_url": "https://desktop-release.notion-static.com/Notion-7.25.0-arm64.dmg",
"installer_url": "https://desktop-release.notion-static.com/Notion-7.25.1-arm64.dmg",
"install_script_ref": "20b617ec",
"uninstall_script_ref": "5400135a",
"sha256": "c3df8dcb16292a1415babcba38785b72abd887c7033cf5e5b6e6b6759d662fd3",
"sha256": "323f8ece663069150525cc7606a47f106310c1774ba3160d57a4f9c9b854b5e4",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.25.0",
"version": "7.25.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc' AND version_compare(version, '7.25.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Notion %' AND publisher = 'Notion Labs, Inc' AND version_compare(version, '7.25.1') < 0);"
},
"installer_url": "https://desktop-release.notion-static.com/Notion%20Setup%207.25.0.exe",
"installer_url": "https://desktop-release.notion-static.com/Notion%20Setup%207.25.1.exe",
"install_script_ref": "0803ad8c",
"uninstall_script_ref": "a8fdd9b7",
"sha256": "acab293a256863c6b78586f32f93774cd1edb5cd6213da1a615142628c90e975",
"sha256": "1da03f754a274faac7d90cdb3ed20aadcccc59660c1f851fa119dce5ac1fc794",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.31.1",
"version": "0.31.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama' AND version_compare(bundle_short_version, '0.31.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.ollama' AND version_compare(bundle_short_version, '0.31.2') < 0);"
},
"installer_url": "https://github.com/ollama/ollama/releases/download/v0.31.1/Ollama-darwin.zip",
"installer_url": "https://github.com/ollama/ollama/releases/download/v0.31.2/Ollama-darwin.zip",
"install_script_ref": "9f174559",
"uninstall_script_ref": "bf40e2d5",
"sha256": "38878d930cbac4ddffc3ea7f61ea28a000c9a7238975cd66560d373653d18110",
"sha256": "e8e7ad9e312b2dff11da2c1f3b18401e2096afaaa9ac8abbf01c64e67bad802d",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "0.31.1",
"version": "0.31.2",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama' AND version_compare(version, '0.31.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Ollama' AND publisher = 'Ollama' AND version_compare(version, '0.31.2') < 0);"
},
"installer_url": "https://github.com/ollama/ollama/releases/download/v0.31.1/OllamaSetup.exe",
"installer_url": "https://github.com/ollama/ollama/releases/download/v0.31.2/OllamaSetup.exe",
"install_script_ref": "e14c71ee",
"uninstall_script_ref": "3f049b5d",
"sha256": "b93ac1c6eab658f949bf5f675b40bf997b6684f88b5c230160fb131717430718",
"sha256": "ed261e7da6152c6895e8e472d1e65cb744a578d0d183547cc8b4854654aeb46a",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.098.0524.0004",
"version": "26.108.0607.0002",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.098.0524.0004') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Microsoft OneDrive' AND publisher = 'Microsoft Corporation' AND version_compare(version, '26.108.0607.0002') < 0);"
},
"installer_url": "https://oneclient.sfx.ms/Win/Installers/26.098.0524.0004/amd64/OneDriveSetup.exe",
"installer_url": "https://oneclient.sfx.ms/Win/Installers/26.108.0607.0002/amd64/OneDriveSetup.exe",
"install_script_ref": "ab0b56ab",
"uninstall_script_ref": "374be511",
"sha256": "3d04143831ba248f597791e732d37a634418d7d495d2284ecf7338f256bb141c",
"sha256": "9509d072ed5e1108e8d91d2a54840029ea1de1ee3d67f2b172f2146ef89a9b50",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.17.15",
"version": "1.17.16",
"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.17.15') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ai.opencode.desktop' AND version_compare(bundle_short_version, '1.17.16') < 0);"
},
"installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.17.15/opencode-desktop-mac-arm64.dmg",
"installer_url": "https://github.com/anomalyco/opencode/releases/download/v1.17.16/opencode-desktop-mac-arm64.dmg",
"install_script_ref": "727dc41e",
"uninstall_script_ref": "ad62b190",
"sha256": "8d37867474c7154ccc7b92d7356277c2a75842ee06384c443d11b948963bad64",
"sha256": "b67f477be00956a7bd9480281f92cb157b34467643fc2e2a875250d66f14c228",
"default_categories": [
"Productivity"
]
+2 -2
View File
@@ -6,10 +6,10 @@
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.operasoftware.Opera' AND version_compare(bundle_short_version, '133.0') < 0);"
},
"installer_url": "https://get.geo.opera.com/pub/opera/desktop/133.0.5932.24/mac/Opera_133.0.5932.24_Setup.dmg",
"installer_url": "https://get.geo.opera.com/pub/opera/desktop/133.0.5932.34/mac/Opera_133.0.5932.34_Setup.dmg",
"install_script_ref": "e9e947a7",
"uninstall_script_ref": "566d9846",
"sha256": "48d2d64725521fd6d194decdf1d931752526d4ec2f99cf44d2e0c0720aff5c24",
"sha256": "4ffeafeebb7a7dc847db09dc8ea1070c4cb3ab8c5a23ef8f10401483d686e359",
"default_categories": [
"Browsers"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "12.18.3",
"version": "12.18.4",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.18.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac' AND version_compare(bundle_short_version, '12.18.4') < 0);"
},
"installer_url": "https://dl.pstmn.io/download/version/12.18.3/osx_arm64",
"installer_url": "https://dl.pstmn.io/download/version/12.18.4/osx_arm64",
"install_script_ref": "96d73870",
"uninstall_script_ref": "966b2fa5",
"sha256": "d5b595ad61dd94c87b2ae07d8a3d58a53a7b0ac76db61c891eca8598bfaf878b",
"sha256": "34b06269e44b0a5c2b254b5e5bc43b436bd828ea3df39e6dbb156735078c0f65",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "12.18.3",
"version": "12.18.4",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.18.3') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Postman x64 %' AND publisher = 'Postman' AND version_compare(version, '12.18.4') < 0);"
},
"installer_url": "https://dl.pstmn.io/download/version/12.18.3/windows_64",
"installer_url": "https://dl.pstmn.io/download/version/12.18.4/windows_64",
"install_script_ref": "8594f0bc",
"uninstall_script_ref": "fd59d029",
"sha256": "56b7dfaedf5cbf7cc72fb312e085a9aae80eadbc3c2ac670cac1724f80fd57ed",
"sha256": "b500525301a0bdcecb810883ea4f69120b9d586176c78c7539e7af6764d3ed5c",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.38.0",
"version": "1.38.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron' AND version_compare(bundle_short_version, '1.38.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'me.proton.pass.electron' AND version_compare(bundle_short_version, '1.38.1') < 0);"
},
"installer_url": "https://proton.me/download/pass/macos/ProtonPass_1.38.0.dmg",
"installer_url": "https://proton.me/download/pass/macos/ProtonPass_1.38.1.dmg",
"install_script_ref": "bc00128f",
"uninstall_script_ref": "5f684be7",
"sha256": "0b07621c4a8a9e4f842e86afb35a7a343e3c7b6aef10506a6d742cefd8a14383",
"sha256": "94473fb4ff38414f960d3a8b6d47b974c99804b5da65983cc265d236000e9fb8",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.16.0",
"version": "3.16.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC' AND version_compare(version, '3.16.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Proxyman' AND publisher = 'Proxyman LLC' AND version_compare(version, '3.16.1') < 0);"
},
"installer_url": "https://assets.proxyman.com/windows/3.16.0/build/Proxyman%20Setup%203.16.0.exe",
"installer_url": "https://assets.proxyman.com/windows/3.16.1/build/Proxyman%20Setup%203.16.1.exe",
"install_script_ref": "46c673e8",
"uninstall_script_ref": "d1d99ad9",
"sha256": "fa25ae25eaaaf72a76c11bdc13b8de3a4a5b7dda2df268b067ee6c482ee3ca7c",
"sha256": "6807f67c1b7650e5f1f57f26a2c8b8666201ec89f54cc2df7a5fbc180f095ef2",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.104.21",
"version": "1.104.22",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos' AND version_compare(bundle_short_version, '1.104.21') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.raycast.macos' AND version_compare(bundle_short_version, '1.104.22') < 0);"
},
"installer_url": "https://releases.raycast.com/releases/1.104.21/download?build=arm",
"installer_url": "https://releases.raycast.com/releases/1.104.22/download?build=arm",
"install_script_ref": "ee3bb800",
"uninstall_script_ref": "cb893329",
"sha256": "89e3eaf7ade7c4b3bb441b2acbdceb3f3673e94dd509bb7df909854f57853837",
"sha256": "d8dcb34d5a214374c5a70e65c78b3508d2d0626d208ab8324175748d597f8662",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2026.2.12.0",
"version": "2026.2.13.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.12.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Remote Desktop Manager' AND publisher = 'Devolutions inc.' AND version_compare(version, '2026.2.13.0') < 0);"
},
"installer_url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2026.2.12.0.msi",
"installer_url": "https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.win-x64.2026.2.13.0.msi",
"install_script_ref": "8959087b",
"uninstall_script_ref": "df5e7f6c",
"sha256": "9854c941baa4ee90ab6ab6128001b8c5c51b51e9bc5a2f29d012b1cf99eb7c91",
"sha256": "1fb316ac69bb8bf61becb717d92a78eba6505fcf702f98b8d1df63d65a5e3dd0",
"default_categories": [
"Productivity"
],
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.2.4",
"version": "3.2.5",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx' AND version_compare(bundle_short_version, '3.2.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.reqable.macosx' AND version_compare(bundle_short_version, '3.2.5') < 0);"
},
"installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.4/reqable-app-macos-arm64.dmg",
"installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.5/reqable-app-macos-arm64.dmg",
"install_script_ref": "5d84816f",
"uninstall_script_ref": "3319d75e",
"sha256": "66893081800f4d22b96ef585fd57f6de807c38374722f293ea4009a7a36ffb87",
"sha256": "4bb73c2797ca6f6c4c4a5f638a6e7ee4592d05bb02adeecac3e55ce2b514ff3c",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.2.4",
"version": "3.2.5",
"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.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Reqable' AND publisher = 'Reqqable Inc.' AND version_compare(version, '3.2.5') < 0);"
},
"installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.4/reqable-app-windows-x86_64.exe",
"installer_url": "https://github.com/reqable/reqable-app/releases/download/3.2.5/reqable-app-windows-x86_64.exe",
"install_script_ref": "d2ffec58",
"uninstall_script_ref": "b33fc442",
"sha256": "e3e1cd0e67449b39ace002b979b286b08ab09774cea0209bc695496b50673a0a",
"sha256": "1fedafc09cf53377f7a26931299d646856d5e50a6cd8c316ce08a68856066589",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.6.1",
"version": "1.6.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon' AND version_compare(bundle_short_version, '1.6.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'garden.lemon.Retcon' AND version_compare(bundle_short_version, '1.6.2') < 0);"
},
"installer_url": "https://downloads.lemon.garden/retcon/retcon-1.6.1.dmg",
"installer_url": "https://downloads.lemon.garden/retcon/retcon-1.6.2.dmg",
"install_script_ref": "d1b9430b",
"uninstall_script_ref": "2a7db7ed",
"sha256": "51c9130c3fbd081da2f9e98116e8786018a870c6fc3fa52c271867b0919a48af",
"sha256": "bc662d787bbe1101428fcf4241a82c20579ef7ed778f24480609090e89842050",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "3.8.4.1",
"version": "3.8.4.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer' AND version_compare(bundle_short_version, '3.8.4.1') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer' AND version_compare(bundle_short_version, '3.8.4.2') < 0);"
},
"installer_url": "https://d17kmd0va0f0mp.cloudfront.net/mac/Splashtop_Streamer_Mac_INSTALLER_v3.8.4.1.dmg",
"installer_url": "https://d17kmd0va0f0mp.cloudfront.net/mac/Splashtop_Streamer_Mac_INSTALLER_v3.8.4.2.dmg",
"install_script_ref": "de170a2c",
"uninstall_script_ref": "4cb9c2d4",
"sha256": "b2430af88c682f831068e771214d435aaaa52a2d0813b346fa0565114b0f42f6",
"sha256": "93fca9b9f3c03bae0446b6d814a7ed0e8c0e244d71aa68c19efdc364e71b5076",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.6.0",
"version": "26.7.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus' AND version_compare(bundle_short_version, '26.6.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.tinyapp.TablePlus' AND version_compare(bundle_short_version, '26.7.2') < 0);"
},
"installer_url": "https://files.tableplus.com/macos/730/TablePlus.dmg",
"installer_url": "https://files.tableplus.com/macos/738/TablePlus.dmg",
"install_script_ref": "4c748894",
"uninstall_script_ref": "20e49d94",
"sha256": "1f4273ff0c4bb002b99c800b1aef61a6b55ba648d7a01c479028f9543874adfe",
"sha256": "77b1ee61dd2d84d3fff523024671cc406a7b7285ef1626ae44ff3f68be7a6af4",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "18.9.2",
"version": "18.10.0",
"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.9.2') < 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.0') < 0);"
},
"installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.9.2.dmg",
"installer_url": "https://cdn.teleport.dev/Teleport%20Connect-18.10.0.dmg",
"install_script_ref": "671bf444",
"uninstall_script_ref": "e96ff37d",
"sha256": "614a4a85183219de2f5a165b26dcd9ac8c373403ecc9782e5bccc215390e3fac",
"sha256": "9b93e5ba6cf6d2ad23ecb86fb3791cb73472735a48deedb3e49e8673e2b7dba0",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "18.9.2",
"version": "18.10.0",
"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.9.2') < 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.0') < 0);"
},
"installer_url": "https://cdn.teleport.dev/Teleport%20Connect%20Setup-18.9.2.exe",
"installer_url": "https://cdn.teleport.dev/Teleport%20Connect%20Setup-18.10.0.exe",
"install_script_ref": "5203db2b",
"uninstall_script_ref": "df260b5b",
"sha256": "6dc56c825f2346956f8e79d21c6cfbdce61f07b9eab7d8c4f0d3f649512057ce",
"sha256": "3aacaa6fdba9aecb6a5be0e7e9ca8efb8caa9bebd9eb90a0f9683ac2d58aeefb",
"default_categories": [
"Productivity"
]
@@ -1,22 +1,22 @@
{
"versions": [
{
"version": "18.9.2",
"version": "18.10.0",
"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.9.2') < 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.0') < 0);"
},
"installer_url": "https://cdn.teleport.dev/teleport-18.9.2.pkg",
"install_script_ref": "c7ec49da",
"installer_url": "https://cdn.teleport.dev/teleport-18.10.0.pkg",
"install_script_ref": "310925c0",
"uninstall_script_ref": "343cb8f4",
"sha256": "bef8aab877e8a38408301451153a33a7fb394071938796dc2503ac5f660a02ec",
"sha256": "740d86e9a1ebad8841882b3b5ef5e34400fd7aca0a7d38ac7bc9a19d21a7201f",
"default_categories": [
"Developer tools"
]
}
],
"refs": {
"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 '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/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",
"c7ec49da": "#!/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.9.2.pkg\" -target /\nrelaunch_application 'com.gravitational.teleport.tsh'\n"
"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 '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/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"
}
}
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "2026.155",
"version": "2026.182",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos' AND version_compare(bundle_short_version, '2026.155') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.twingate.macos' AND version_compare(bundle_short_version, '2026.182') < 0);"
},
"installer_url": "https://binaries.twingate.com/client/macos/2026.155.25395/Twingate.pkg",
"installer_url": "https://binaries.twingate.com/client/macos/2026.182.26057/Twingate.pkg",
"install_script_ref": "bc774d90",
"uninstall_script_ref": "4332cae7",
"sha256": "82b52b4a474ba8ffa026c28a5c47808bc56a0fa53b40ff10641c1289e1418846",
"sha256": "de64c52f5a7b52c81ca0cffd6e37f563d9d17cff497b88246835df6807e1126a",
"default_categories": [
"Productivity"
]
@@ -6,10 +6,10 @@
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.unity3d.unityhub' AND version_compare(bundle_short_version, '3.19.4') < 0);"
},
"installer_url": "https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup-arm64.dmg",
"installer_url": "https://public-cdn.cloud.unity3d.com/hub/prod/3.19.4/UnityHubSetup-3.19.4-arm64.dmg",
"install_script_ref": "c26804cb",
"uninstall_script_ref": "5b95ff58",
"sha256": "no_check",
"sha256": "8314a09f37a8ca1ac089c1561df20797c7dc871074a82d7cef69dbed4b42e59d",
"default_categories": [
"Productivity"
]
@@ -1,12 +1,12 @@
{
"versions": [
{
"version": "8.0.4033.57",
"version": "8.1.4087.46",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi' AND version_compare(bundle_short_version, '8.0.4033.57') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.vivaldi.Vivaldi' AND version_compare(bundle_short_version, '8.1.4087.46') < 0);"
},
"installer_url": "https://downloads.vivaldi.com/stable/Vivaldi.8.0.4033.57.universal.dmg",
"installer_url": "https://downloads.vivaldi.com/stable/Vivaldi.8.1.4087.46.universal.dmg",
"install_script_ref": "6a60dca7",
"uninstall_script_ref": "7c1876ca",
"sha256": "no_check",
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "26.4",
"version": "26.5",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365' AND version_compare(bundle_short_version, '26.4') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.equinux.VPNTracker365' AND version_compare(bundle_short_version, '26.5') < 0);"
},
"installer_url": "https://download.equinux.com/files/other/VPN%20Tracker%20365%20-%2026.4.93.zip",
"installer_url": "https://download.equinux.com/files/other/VPN%20Tracker%20365%20-%2026.5.17.zip",
"install_script_ref": "2656907f",
"uninstall_script_ref": "27f1845a",
"sha256": "8cf71f61d625a05871a1127c4998dcb497f3a92587483fdaafe64e7237c840a6",
"sha256": "9ef8eedbe32bb544d52cb2e6f49a81a1da5f1e31a25729eff5b31a7a5ed1a281",
"default_categories": [
"Security"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.121.03429",
"version": "1.126.04524",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium' AND version_compare(version, '1.121.03429') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'VSCodium' AND publisher = 'VSCodium' AND version_compare(version, '1.126.04524') < 0);"
},
"installer_url": "https://github.com/VSCodium/vscodium/releases/download/1.121.03429/VSCodiumSetup-x64-1.121.03429.exe",
"installer_url": "https://github.com/VSCodium/vscodium/releases/download/1.126.04524/VSCodiumSetup-x64-1.126.04524.exe",
"install_script_ref": "38852240",
"uninstall_script_ref": "b7b4a3ad",
"sha256": "4e67a8147e9fc4b9e7ef31d95d8b0d3cd3bab66caa59ada1b4de99f4243f9cdf",
"sha256": "7b378893e2b3b9a2504eae848f19a6544e475519fd791c32459a42bb0601f5fe",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "150.2.118.2",
"version": "150.2.121.2",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '150.2.118.2') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.wavebox.wavebox' AND version_compare(bundle_short_version, '150.2.121.2') < 0);"
},
"installer_url": "https://download.wavebox.app/stable/macarm64/Wavebox_150.2.118.2.zip",
"installer_url": "https://download.wavebox.app/stable/macarm64/Wavebox_150.2.121.2.zip",
"install_script_ref": "60a16753",
"uninstall_script_ref": "ecfbed36",
"sha256": "de39d965c63fc945b535b50f1b23ea68145f979a73c3c4c5f9b1d38f8e713dfa",
"sha256": "f2e089e4ad8769551f27cb1124e0a6bf7f9ca989f668c6b0f9fe04a3c065a002",
"default_categories": [
"Browsers"
]
@@ -1,22 +1,22 @@
{
"versions": [
{
"version": "4.7.0",
"version": "4.7.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher' AND version_compare(bundle_short_version, '4.7.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.weasis.launcher' AND version_compare(bundle_short_version, '4.7.1') < 0);"
},
"installer_url": "https://github.com/nroduit/Weasis/releases/download/v4.7.0/Weasis-4.7.0-aarch64.pkg",
"install_script_ref": "a9867728",
"installer_url": "https://github.com/nroduit/Weasis/releases/download/v4.7.1/Weasis-4.7.1-aarch64.pkg",
"install_script_ref": "0d54ce12",
"uninstall_script_ref": "4ca4d644",
"sha256": "622d02e10fbc3664dafb82f0f35ae9834cd00b547d837738d2a7ff10d6e13af5",
"sha256": "4dc9c9fc0b4a017c11d2aa1f063b54a4f6e9fefd058e96e8a145a01e6ab84888",
"default_categories": [
"Productivity"
]
}
],
"refs": {
"4ca4d644": "#!/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 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_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 '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/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\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_pkg_files 'org.weasis.launcher'\nforget_pkg 'org.weasis.launcher'\nremove_pkg_files 'org.weasis.viewer'\nforget_pkg 'org.weasis.viewer'\nsudo rm -rf '/Applications/Weasis.app'\ntrash $LOGGED_IN_USER '~/.weasis'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.weasis.launcher.savedState'\n",
"a9867728": "#!/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 'org.weasis.launcher'\nsudo installer -pkg \"$TMPDIR/Weasis-4.7.0-aarch64.pkg\" -target /\nrelaunch_application 'org.weasis.launcher'\n"
"0d54ce12": "#!/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 'org.weasis.launcher'\nsudo installer -pkg \"$TMPDIR/Weasis-4.7.1-aarch64.pkg\" -target /\nrelaunch_application 'org.weasis.launcher'\n",
"4ca4d644": "#!/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 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_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 '/<key>volume<\\/key>/ {getline; gsub(/.*<string>|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/<key>install-location<\\/key>/ {getline; gsub(/.*<string>|<\\/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\n # If the target contains glob characters, expand it and move each match.\n if [[ \"$target_file\" == *[*?[]* ]]; then\n local file file_name\n local matched=false\n local i=0\n # compgen -G expands the (quoted) pattern itself, so paths containing\n # spaces glob correctly; reading line by line keeps each match intact.\n while IFS= read -r file; do\n [[ -n \"$file\" ]] || continue\n [[ -e \"$file\" || -L \"$file\" ]] || continue\n matched=true\n i=$((i + 1))\n file_name=\"$(basename \"$file\")\"\n echo \"removing $file.\"\n # The per-match counter keeps matches that share a basename from\n # overwriting each other in the trash.\n mv -f \"$file\" \"$trash/${file_name}_${timestamp}_${rand}_${i}\"\n done < <(compgen -G \"$target_file\" 2>/dev/null)\n if [[ \"$matched\" == false ]]; then\n echo \"$target_file doesn't exist.\"\n fi\n return\n fi\n\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_pkg_files 'org.weasis.launcher'\nforget_pkg 'org.weasis.launcher'\nremove_pkg_files 'org.weasis.viewer'\nforget_pkg 'org.weasis.viewer'\nsudo rm -rf '/Applications/Weasis.app'\ntrash $LOGGED_IN_USER '~/.weasis'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.weasis.launcher.savedState'\n"
}
}
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "77.0.7",
"version": "77.1.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan' AND version_compare(bundle_short_version, '77.0.7') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.webcatalog.jordan' AND version_compare(bundle_short_version, '77.1.0') < 0);"
},
"installer_url": "https://cdn-2.webcatalog.io/webcatalog/WebCatalog-77.0.7-universal.dmg",
"installer_url": "https://cdn-2.webcatalog.io/webcatalog/WebCatalog-77.1.0-universal.dmg",
"install_script_ref": "f04928dc",
"uninstall_script_ref": "d196a4c8",
"sha256": "4c640eced4e5e9b484b1d23856771b4ce0a310b9b787cdd64a194e4e008084f4",
"sha256": "a028927cb33845963412351c1356fd4bfaa448c59ec78669457e57770a1128e9",
"default_categories": [
"Productivity"
]
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "26.27.15",
"version": "26.27.17",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.27.15') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp' AND version_compare(bundle_short_version, '26.27.17') < 0);"
},
"installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?configuration=Release&src=whatsapp_downloads_page",
"install_script_ref": "157dabb3",
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "4.6.6",
"version": "4.6.7",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark' AND version_compare(bundle_short_version, '4.6.6') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.wireshark.Wireshark' AND version_compare(bundle_short_version, '4.6.7') < 0);"
},
"installer_url": "https://www.wireshark.org/download/osx/all-versions/Wireshark%204.6.6.dmg",
"installer_url": "https://www.wireshark.org/download/osx/all-versions/Wireshark%204.6.7.dmg",
"install_script_ref": "25b386c2",
"uninstall_script_ref": "53f12e6d",
"sha256": "e4825322d64c9b7e06f5e4bc7be3094bc0d5cd9e8b593eee06b99151fbf7e005",
"sha256": "f2dc93c67f6863ccc0ba54ff82e8d9ce4a8139e6d4838212eca8b1a119020786",
"default_categories": [
"Developer tools"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "4.3.2607011039",
"version": "4.3.2607080959",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2607011039') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.workflowy.desktop' AND version_compare(bundle_short_version, '4.3.2607080959') < 0);"
},
"installer_url": "https://github.com/workflowy/desktop/releases/download/v4.3.2607011039/WorkFlowy.zip",
"installer_url": "https://github.com/workflowy/desktop/releases/download/v4.3.2607080959/WorkFlowy.zip",
"install_script_ref": "467dafec",
"uninstall_script_ref": "effe5345",
"sha256": "5f170b81ab75dec0121aa62991bbb4585e107f3024a6dfaa65b6fa83602fae34",
"sha256": "1bb7cbdbca0d3e4d30caa962e3fb3d0780fc732b8189892181c4531cf6901b69",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.4.0",
"version": "7.4.1",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath' AND version_compare(bundle_short_version, '7.4.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.yubico.yubioath' AND version_compare(bundle_short_version, '7.4.1') < 0);"
},
"installer_url": "https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-7.4.0-mac.dmg",
"installer_url": "https://developers.yubico.com/yubioath-flutter/Releases/yubico-authenticator-7.4.1-mac.dmg",
"install_script_ref": "7dc459ff",
"uninstall_script_ref": "47160642",
"sha256": "fd776bea250dfddac6f4fa1bc2f24d27c3a1a11fba2bbeeafc5b9f1446f0701b",
"sha256": "9adb0de91b139003c86903296d042053a78f3f60ead68388341bf1b1bc2e1ef3",
"default_categories": [
"Productivity"
]
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "7.4.0",
"version": "7.4.1",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB' AND version_compare(version, '7.4.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Yubico Authenticator' AND publisher = 'Yubico AB' AND version_compare(version, '7.4.1') < 0);"
},
"installer_url": "https://github.com/Yubico/yubioath-flutter/releases/download/7.4.0/yubico-authenticator-7.4.0-win64.msi",
"installer_url": "https://github.com/Yubico/yubioath-flutter/releases/download/7.4.1/yubico-authenticator-7.4.1-win64.msi",
"install_script_ref": "8959087b",
"uninstall_script_ref": "da50bb65",
"sha256": "616bec7354eb8830ced8338a50c405f4d0277d626967c45cb1bf5ca3e9d8e3b1",
"sha256": "fd3a4beee31b07ce6acb67f8b9f46b75daf15b669bd034b7582171743e0436ad",
"default_categories": [
"Productivity"
],
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.9.0",
"version": "1.10.0",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed' AND version_compare(bundle_short_version, '1.9.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'dev.zed.Zed' AND version_compare(bundle_short_version, '1.10.0') < 0);"
},
"installer_url": "https://zed.dev/api/releases/stable/1.9.0/Zed-aarch64.dmg",
"installer_url": "https://zed.dev/api/releases/stable/1.10.0/Zed-aarch64.dmg",
"install_script_ref": "ad597b79",
"uninstall_script_ref": "2a2c7eb8",
"sha256": "0dc8abf9948eaa3e3e5e76ff75bf537d93bb6f1d2a57fbda2f7cc73bf8d28055",
"sha256": "ed414ec3276f42c6272958823e1b669ce9a63f929d067a0dd3b12f0bf8bd087e",
"default_categories": [
"Developer tools"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.9.0",
"version": "1.10.0",
"queries": {
"exists": "SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries' AND version_compare(version, '1.9.0') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Zed' AND publisher = 'Zed Industries' AND version_compare(version, '1.10.0') < 0);"
},
"installer_url": "https://github.com/zed-industries/zed/releases/download/v1.9.0/Zed-x86_64.exe",
"installer_url": "https://github.com/zed-industries/zed/releases/download/v1.10.0/Zed-x86_64.exe",
"install_script_ref": "e5193bc1",
"uninstall_script_ref": "3b164442",
"sha256": "1485f50a93d451074e063b57c383d21a04a2b16cf51d19046eb4f51508366fcd",
"sha256": "3d51637a116be7c1ae480b78c1dd3b53887f8bb66a3035286cc496b3fb822235",
"default_categories": [
"Developer tools"
]
+4 -4
View File
@@ -1,15 +1,15 @@
{
"versions": [
{
"version": "1.21.5b",
"version": "1.21.6b",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.5b') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'app.zen-browser.zen' AND version_compare(bundle_short_version, '1.21.6b') < 0);"
},
"installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21.5b/zen.macos-universal.dmg",
"installer_url": "https://github.com/zen-browser/desktop/releases/download/1.21.6b/zen.macos-universal.dmg",
"install_script_ref": "fd25a9c8",
"uninstall_script_ref": "6fa48a6f",
"sha256": "e6ab356ede41d6973f2f3c165edf974dd04d94b497aad0132f80d1aa25d4a566",
"sha256": "a15523566dd1490bc46a7ff60ecc1d0560f764d6869b4e5ff2ccee32bf9562ca",
"default_categories": [
"Browsers"
]
+2 -2
View File
@@ -1,10 +1,10 @@
{
"versions": [
{
"version": "1.1.16",
"version": "1.1.17",
"queries": {
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher';",
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher' AND version_compare(bundle_short_version, '1.1.16') < 0);"
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.zwift.ZwiftLauncher' AND version_compare(bundle_short_version, '1.1.17') < 0);"
},
"installer_url": "https://cdn.zwift.com/app/ZwiftOSX.dmg",
"install_script_ref": "fe464bdd",