Wrap FMA exists query in parens to fix OR precedence in patched policy (#45647)
## Summary - `pkg/patch_policy/GenerateQueryForManifest` now wraps the caller-supplied exists query in an inner set of parentheses before appending the trailing `AND version_compare(...) < 0` clause. Without the wrap, any `OR` in the exists body binds *after* the appended `AND` (SQL precedence: `AND` > `OR`), producing an incorrect `patched` query. The bug is currently only observable on `codex-cli` (uses `path = ... OR path LIKE ...`) but would silently break any future FMA whose exists query contains `OR`. - All FMA outputs regenerated via `cmd/maintained-apps`. For AND-only exists queries (the vast majority of existing FMAs), the new patched SQL is semantically identical to the previous form — just with extra parens around the WHERE body. `codex-cli/windows.json`'s OR clause is now correctly grouped. - `docker-desktop` is unchanged: its patched SQL is constructed inline in the homebrew ingester at [ingester.go:198-201](https://github.com/fleetdm/fleet/blob/claude/compassionate-merkle-afbd8a/ee/maintained-apps/ingesters/homebrew/ingester.go#L198-L201) and bypasses the generator. ### Heads-up: upstream version drift bundled in The regeneration also pulled in a handful of upstream version bumps that landed since the last FMA run. These are real upstream changes, not generator artifacts: | App | Platform | Old → New | |---|---|---| | Figma | windows | 126.3.12 → 126.4.9 | | GoLand | darwin | 2026.1.1 → 2026.1.2 | | IntelliJ IDEA | darwin | 2026.1.1 → 2026.1.2 | | RubyMine | darwin | 2026.1.1 → 2026.1.2 | | Zed | darwin | 1.2.5 → 1.2.6 | If you'd prefer these isolated from the paren-only change, let me know and I'll split the PR. ### Code changes - [pkg/patch_policy/patch_policy.go](pkg/patch_policy/patch_policy.go): added `(` to `templateStart` and `)` to `templateEnd{Darwin,Windows}` so `GenerateQueryForManifest` emits `... NOT EXISTS ((<before>) AND version_compare(...) < 0);`. - [pkg/patch_policy/patch_policy_test.go](pkg/patch_policy/patch_policy_test.go): updated existing expectations and added an OR-precedence case mirroring codex-cli's exists query. - [ee/maintained-apps/ingesters/homebrew/ingester_test.go](ee/maintained-apps/ingesters/homebrew/ingester_test.go): updated the generic `Patched` assertion (docker-desktop's hardcoded expectation is unchanged — it bypasses the generator). - 282 regenerated files under `ee/maintained-apps/outputs/**/*.json`. ## Test plan - [x] `go test ./pkg/patch_policy/...` passes (incl. new OR case). - [x] `go test ./ee/maintained-apps/...` passes. - [x] `go vet ./pkg/patch_policy/... ./ee/maintained-apps/...` clean. - [x] `cmd/maintained-apps` runs end-to-end with no errors against the live Homebrew/winget APIs (with `NETWORK_TEST_GITHUB_TOKEN` set). - [x] `git diff` audited: every diffed `patched` line on `outputs/**/*.json` is a paren-only delta; non-`patched` deltas confined to the 5 upstream version bumps listed above. - [x] `docker-desktop/darwin.json` unchanged after regeneration. - [ ] CI green.
This commit is contained in:
@@ -158,7 +158,7 @@ func TestIngestValidations(t *testing.T) {
|
||||
)
|
||||
} else {
|
||||
require.Equal(t,
|
||||
fmt.Sprintf("SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = '%s' AND version_compare(bundle_short_version, '%s') < 0);", c.inputApp.UniqueIdentifier, out.Version),
|
||||
fmt.Sprintf("SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = '%s') AND version_compare(bundle_short_version, '%s') < 0);", c.inputApp.UniqueIdentifier, out.Version),
|
||||
out.Queries.Patched,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "16.0.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor' AND version_compare(bundle_short_version, '16.0.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.SweetScape.010Editor') AND version_compare(bundle_short_version, '16.0.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.sweetscape.com/010EditorMacARM64Installer16.0.4.dmg",
|
||||
"install_script_ref": "2fdd9af7",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "16.0.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software' AND version_compare(version, '16.0.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name LIKE '010 Editor %' AND publisher = 'SweetScape Software') AND version_compare(version, '16.0.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.sweetscape.com/010EditorWin64Installer16.0.4.exe",
|
||||
"install_script_ref": "5764f801",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "8.12.12",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password' AND version_compare(bundle_short_version, '8.12.12') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.1password.1password') AND version_compare(bundle_short_version, '8.12.12') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.1password.com/mac/1Password.pkg",
|
||||
"install_script_ref": "ef2a17ff",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "8.12.12",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.' AND version_compare(version, '8.12.12') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = '1Password' AND publisher = 'Agilebits Inc.') AND version_compare(version, '8.12.12') < 0);"
|
||||
},
|
||||
"installer_url": "https://c.1password.com/dist/1P/win8/1PasswordSetup-8.12.12.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.01",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov' AND version_compare(version, '26.01') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name LIKE '7-Zip %' AND publisher = 'Igor Pavlov') AND version_compare(version, '26.01') < 0);"
|
||||
},
|
||||
"installer_url": "https://7-zip.org/a/7z2601-x64.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "8.33.2",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office' AND version_compare(bundle_short_version, '8.33.2') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.8x8---virtual-office') AND version_compare(bundle_short_version, '8.33.2') < 0);"
|
||||
},
|
||||
"installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-arm64-dmg-v8.33.2-2.dmg",
|
||||
"install_script_ref": "4fae7a5b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "8.33.2",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.' AND version_compare(version, '8.33.2') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = '8x8 Work' AND publisher = '8x8 Inc.') AND version_compare(version, '8.33.2') < 0);"
|
||||
},
|
||||
"installer_url": "https://work-desktop-assets.8x8.com/prod-publish/ga/work-64-msi-v8.33.2-2.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "98.6.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elasticprojects.abstract-desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elasticprojects.abstract-desktop' AND version_compare(bundle_short_version, '98.6.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.elasticprojects.abstract-desktop') AND version_compare(bundle_short_version, '98.6.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.goabstract.com/mac/Abstract-98.6.3.zip",
|
||||
"install_script_ref": "ca022a22",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.001.21529",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader' AND version_compare(bundle_short_version, '26.001.21529') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader') AND version_compare(bundle_short_version, '26.001.21529') < 0);"
|
||||
},
|
||||
"installer_url": "https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2600121529/AcroRdrDC_2600121529_MUI.dmg",
|
||||
"install_script_ref": "94edcf98",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.001.21529",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe' AND version_compare(version, '26.001.21529') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Adobe Acrobat (64-bit)' AND publisher = 'Adobe') AND version_compare(version, '26.001.21529') < 0);"
|
||||
},
|
||||
"installer_url": "https://ardownload3.adobe.com/pub/adobe/acrobat/win/AcrobatDC/2600121529/AcroRdrDCx642600121529_MUI.exe",
|
||||
"install_script_ref": "7dc0b065",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "6.9.1.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud' AND version_compare(bundle_short_version, '6.9.1.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.acc.AdobeCreativeCloud') AND version_compare(bundle_short_version, '6.9.1.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://ccmdls.adobe.com/AdobeProducts/StandaloneBuilds/ACCC/ESD/6.9.1/1/macarm64/ACCCx6_9_1_1.dmg",
|
||||
"install_script_ref": "a331ea84",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.5.12",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app' AND version_compare(bundle_short_version, '4.5.12') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.adobedigitaleditions.app') AND version_compare(bundle_short_version, '4.5.12') < 0);"
|
||||
},
|
||||
"installer_url": "https://adedownload.adobe.com/pub/adobe/digitaleditions/ADE_4.5_Installer.dmg",
|
||||
"install_script_ref": "da201b49",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "18.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter' AND version_compare(bundle_short_version, '18.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.DNGConverter') AND version_compare(bundle_short_version, '18.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.adobe.com/pub/adobe/dng/mac/DNGConverter_18_3.dmg",
|
||||
"install_script_ref": "f3bdbd2a",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.1.66",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone' AND version_compare(bundle_short_version, '3.1.66') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'io.aircall.phone') AND version_compare(bundle_short_version, '3.1.66') < 0);"
|
||||
},
|
||||
"installer_url": "https://download-electron.aircall.io/Aircall-3.1.66.dmg",
|
||||
"install_script_ref": "8fc42b5e",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.1.66",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall' AND version_compare(version, '3.1.66') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Aircall' AND publisher = 'Aircall') AND version_compare(version, '3.1.66') < 0);"
|
||||
},
|
||||
"installer_url": "https://download-electron.aircall.io/Aircall-3.1.66.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.15.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application' AND version_compare(bundle_short_version, '4.15.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.airtame.airtame-application') AND version_compare(bundle_short_version, '4.15.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads-cdn.airtame.com/app/latest/mac/Airtame-4.15.0.dmg",
|
||||
"install_script_ref": "f0367273",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.15.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame' AND version_compare(version, '4.15.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name LIKE 'Airtame %' AND publisher = 'Airtame') AND version_compare(version, '4.15.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.airtame.com/app/latest/win/Airtame-4.15.0-setup.exe",
|
||||
"install_script_ref": "8a919fae",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.23.22522",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime' AND version_compare(bundle_short_version, '5.23.22522') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazon.Amazon-Chime') AND version_compare(bundle_short_version, '5.23.22522') < 0);"
|
||||
},
|
||||
"installer_url": "https://clients.chime.aws/mac-nme/AmazonChime-5.23.22522.dmg",
|
||||
"install_script_ref": "6ac4810f",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2025.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio' AND version_compare(bundle_short_version, '2025.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.android.studio') AND version_compare(bundle_short_version, '2025.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://edgedl.me.gvt1.com/android/studio/install/2025.3.4.7/android-studio-panda4-patch1-mac_arm.dmg",
|
||||
"install_script_ref": "c737fe39",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.9.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka' AND version_compare(bundle_short_version, '3.9.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.veertu.anka') AND version_compare(bundle_short_version, '3.9.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.veertu.com/anka/Anka-3.9.0.215.pkg",
|
||||
"install_script_ref": "82c7a931",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "9.7.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk' AND version_compare(bundle_short_version, '9.7.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.philandro.anydesk') AND version_compare(bundle_short_version, '9.7.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.anydesk.com/anydesk.dmg",
|
||||
"install_script_ref": "a3e522af",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.2",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency' AND version_compare(bundle_short_version, '3.2') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Apparency') AND version_compare(bundle_short_version, '3.2') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.mothersruin.com/software/archives/Apparency-3.2.dmg",
|
||||
"install_script_ref": "8b90bbdb",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.6.8",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner' AND version_compare(bundle_short_version, '3.6.8') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'net.freemacsoft.AppCleaner') AND version_compare(bundle_short_version, '3.6.8') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.freemacsoft.net/downloads/AppCleaner_3.6.8.zip",
|
||||
"install_script_ref": "1593491b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.147.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser' AND version_compare(bundle_short_version, '1.147.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'company.thebrowser.Browser') AND version_compare(bundle_short_version, '1.147.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://releases.arc.net/release/Arc-1.147.0-80797.zip",
|
||||
"install_script_ref": "bb0dd542",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.5",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology' AND version_compare(bundle_short_version, '1.5') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.Archaeology') AND version_compare(bundle_short_version, '1.5') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.mothersruin.com/software/downloads/Archaeology.dmg",
|
||||
"install_script_ref": "673cc2cb",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.3.8",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2' AND version_compare(bundle_short_version, '2.3.8') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'cc.arduino.IDE2') AND version_compare(bundle_short_version, '2.3.8') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/arduino/arduino-ide/releases/download/2.3.8/arduino-ide_2.3.8_macOS_ARM64.dmg",
|
||||
"install_script_ref": "b8e694ce",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.7.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana' AND version_compare(bundle_short_version, '2.7.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.asana') AND version_compare(bundle_short_version, '2.7.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop-downloads.asana.com/darwin_arm64/prod/v2.7.1/Asana-darwin-arm64-2.7.1.zip",
|
||||
"install_script_ref": "d3c589b5",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.7.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.' AND version_compare(version, '2.7.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Asana' AND publisher = 'Asana, Inc.') AND version_compare(version, '2.7.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop-downloads.asana.com/win32_x64/prod/v2.7.1/AsanaSetup.exe",
|
||||
"install_script_ref": "7d7fdd9d",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.7.7",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity' AND version_compare(bundle_short_version, '3.7.7') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'org.audacityteam.audacity') AND version_compare(bundle_short_version, '3.7.7') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/audacity/audacity/releases/download/Audacity-3.7.7/audacity-macOS-3.7.7-arm64.dmg",
|
||||
"install_script_ref": "ca3e7e55",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "139.0.6697.68",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.avast.AvastSecureBrowser';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.avast.AvastSecureBrowser' AND version_compare(bundle_short_version, '139.0.6697.68') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.avast.AvastSecureBrowser') AND version_compare(bundle_short_version, '139.0.6697.68') < 0);"
|
||||
},
|
||||
"installer_url": "https://cdn-update.avast.securebrowser.com/browser/mac/arm/139.0.6697.68/AvastSecureBrowser.dmg",
|
||||
"install_script_ref": "a5cd4886",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.3.5",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx' AND version_compare(bundle_short_version, '5.3.5') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.amazonaws.acvc.osx') AND version_compare(bundle_short_version, '5.3.5') < 0);"
|
||||
},
|
||||
"installer_url": "https://d20adtppz83p9s.cloudfront.net/OSX_ARM64/5.3.5/AWS_VPN_Client_ARM64.pkg",
|
||||
"install_script_ref": "53e8589e",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.1.6",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher' AND version_compare(bundle_short_version, '2.1.6') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'io.balena.etcher') AND version_compare(bundle_short_version, '2.1.6') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/balena-io/etcher/releases/download/v2.1.6/balenaEtcher-2.1.6-arm64.dmg",
|
||||
"install_script_ref": "2e2f21f8",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "15.5.5",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit' AND version_compare(bundle_short_version, '15.5.5') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.barebones.bbedit') AND version_compare(bundle_short_version, '15.5.5') < 0);"
|
||||
},
|
||||
"installer_url": "https://s3.amazonaws.com/BBSW-download/BBEdit_15.5.5.dmg",
|
||||
"install_script_ref": "c4ab4266",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.3.3",
|
||||
"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.3') < 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.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/waydabber/BetterDisplay/releases/download/v4.3.3/BetterDisplay-v4.3.3.dmg",
|
||||
"install_script_ref": "d892af0a",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.2.1.32035",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare' AND version_compare(bundle_short_version, '5.2.1.32035') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.ScooterSoftware.BeyondCompare') AND version_compare(bundle_short_version, '5.2.1.32035') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.scootersoftware.com/files/BCompareOSX-5.2.1.32035.zip",
|
||||
"install_script_ref": "5fca1cb5",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2026.3.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop' AND version_compare(bundle_short_version, '2026.3.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.bitwarden.desktop') AND version_compare(bundle_short_version, '2026.3.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/bitwarden/clients/releases/download/desktop-v2026.3.1/Bitwarden-2026.3.1-universal.dmg",
|
||||
"install_script_ref": "1bffc483",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.1.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender' AND version_compare(bundle_short_version, '5.1.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'org.blenderfoundation.blender') AND version_compare(bundle_short_version, '5.1.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.blender.org/release/Blender5.1/blender-5.1.1-macos-arm64.dmg",
|
||||
"install_script_ref": "6c68d444",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.1.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation' AND version_compare(version, '5.1.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Blender' AND publisher = 'Blender Foundation') AND version_compare(version, '5.1.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.blender.org/release/Blender5.1/blender-5.1.1-windows-x64.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.51.233",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop' AND version_compare(bundle_short_version, '2.51.233') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.box.desktop') AND version_compare(bundle_short_version, '2.51.233') < 0);"
|
||||
},
|
||||
"installer_url": "https://e3.boxcdn.net/desktop/releases/mac/BoxDrive-2.51.233.pkg",
|
||||
"install_script_ref": "5b80f593",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.51.234",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.' AND version_compare(version, '2.51.234') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Box' AND publisher = 'Box, Inc.') AND version_compare(version, '2.51.234') < 0);"
|
||||
},
|
||||
"installer_url": "https://e3.boxcdn.net/desktop/releases/win/BoxDrive-2.51.234.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "148.1.90.122",
|
||||
"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, '148.1.90.122') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser') AND version_compare(bundle_short_version, '148.1.90.122') < 0);"
|
||||
},
|
||||
"installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/190.122/Brave-Browser-arm64.dmg",
|
||||
"install_script_ref": "51f78f89",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "148.1.90.122",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc' AND version_compare(version, '148.1.90.122') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Brave' AND publisher = 'Brave Software Inc') AND version_compare(version, '148.1.90.122') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/brave/brave-browser/releases/download/v1.90.122/BraveBrowserStandaloneSilentSetup.exe",
|
||||
"install_script_ref": "9a0c2b15",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.3.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app' AND version_compare(bundle_short_version, '3.3.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.usebruno.app') AND version_compare(bundle_short_version, '3.3.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/usebruno/bruno/releases/download/v3.3.0/bruno_3.3.0_arm64_mac.dmg",
|
||||
"install_script_ref": "162ba575",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "9.8.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre' AND version_compare(bundle_short_version, '9.8.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'net.kovidgoyal.calibre') AND version_compare(bundle_short_version, '9.8.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.calibre-ebook.com/9.8.0/calibre-9.8.0.dmg",
|
||||
"install_script_ref": "6ee1f446",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2026.1.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia' AND version_compare(bundle_short_version, '2026.1.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.techsmith.camtasia') AND version_compare(bundle_short_version, '2026.1.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.techsmith.com/camtasiamac/releases/2026.1.0/Camtasia.dmg",
|
||||
"install_script_ref": "2fda011f",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.1.1.16676",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation' AND version_compare(version, '26.1.1.16676') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Camtasia' AND publisher = 'TechSmith Corporation') AND version_compare(version, '26.1.1.16676') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.techsmith.com/camtasiastudio/releases/2611/camtasia.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.122.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop' AND version_compare(bundle_short_version, '1.122.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.canva.CanvaDesktop') AND version_compare(bundle_short_version, '1.122.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop-release.canva.com/Canva-1.122.0-universal.dmg",
|
||||
"install_script_ref": "a8898c91",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.7.2",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry' AND version_compare(bundle_short_version, '2.7.2') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.scenegroup.cavalry') AND version_compare(bundle_short_version, '2.7.2') < 0);"
|
||||
},
|
||||
"installer_url": "https://cavalry.studio/downloads/latest/Cavalry.dmg",
|
||||
"install_script_ref": "ac471589",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles' AND version_compare(bundle_short_version, '5.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.xk72.Charles') AND version_compare(bundle_short_version, '5.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.charlesproxy.com/assets/release/5.1/charles-proxy-5.1.dmg",
|
||||
"install_script_ref": "51e3611c",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.2026.119.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas' AND version_compare(bundle_short_version, '1.2026.119.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.atlas') AND version_compare(bundle_short_version, '1.2026.119.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://persistent.oaistatic.com/atlas/public/ChatGPT_Atlas_Desktop_public_1.2026.119.1_20260504231115000.dmg",
|
||||
"install_script_ref": "a5fd4e54",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.2026.118",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat' AND version_compare(bundle_short_version, '1.2026.118') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.openai.chat') AND version_compare(bundle_short_version, '1.2026.118') < 0);"
|
||||
},
|
||||
"installer_url": "https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2026.118_1777682760.dmg",
|
||||
"install_script_ref": "c2132138",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "15.2.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber' AND version_compare(bundle_short_version, '15.2.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.cisco.jabber') AND version_compare(bundle_short_version, '15.2.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://binaries.webex.com/jabberclientmac/20260122074039/Install_Cisco-Jabber-Mac.pkg",
|
||||
"install_script_ref": "2756548e",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "15.2.2.60904",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc' AND version_compare(version, '15.2.2.60904') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Cisco Jabber' AND publisher = 'Cisco Systems, Inc') AND version_compare(version, '15.2.2.60904') < 0);"
|
||||
},
|
||||
"installer_url": "https://binaries.webex.com/jabberclientwindows/20260429083041/CiscoJabberSetup.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.03.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas' AND version_compare(bundle_short_version, '26.03.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.citrix.receiver.nomas') AND version_compare(bundle_short_version, '26.03.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloadplugins.citrix.com/ReceiverUpdates/Prod/Receiver/Mac/CitrixWorkspaceAppUniversal26.03.0.49.pkg",
|
||||
"install_script_ref": "fe7ba180",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.7196.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop' AND version_compare(bundle_short_version, '1.7196.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.anthropic.claudefordesktop') AND version_compare(bundle_short_version, '1.7196.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.claude.ai/releases/darwin/universal/1.7196.0/Claude-2dbd7802ab037cbb97d77be1a063241009b5e598.zip",
|
||||
"install_script_ref": "8b957973",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.7196.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.7196.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Claude' AND publisher = 'Anthropic, PBC') AND version_compare(version, '1.7196.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.claude.ai/releases/win32/x64/1.7196.0/Claude-2dbd7802ab037cbb97d77be1a063241009b5e598.msix",
|
||||
"install_script_ref": "31a0b698",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "5.3.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5' AND version_compare(bundle_short_version, '5.3.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.macpaw.CleanMyMac5') AND version_compare(bundle_short_version, '5.3.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://dl.devmate.com/com.macpaw.CleanMyMac5/50301.0.2601271414/1769524551/CleanMyMac5-50301.0.2601271414.zip",
|
||||
"install_script_ref": "fff893a1",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.8.8",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app' AND version_compare(bundle_short_version, '4.8.8') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.getcleanshot.app') AND version_compare(bundle_short_version, '4.8.8') < 0);"
|
||||
},
|
||||
"installer_url": "https://updates.getcleanshot.com/v3/CleanShot-X-4.8.8.dmg",
|
||||
"install_script_ref": "ad9395c4",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.5.208",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app' AND version_compare(bundle_short_version, '3.5.208') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.clickup.desktop-app') AND version_compare(bundle_short_version, '3.5.208') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.todesktop.com/221003ra4tebclw/ClickUp%203.5.208%20-%20Build%20260505zrf6t7imk-arm64.dmg",
|
||||
"install_script_ref": "4b21205a",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.5.208",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp' AND version_compare(version, '3.5.208') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'ClickUp' AND publisher = 'ClickUp') AND version_compare(version, '3.5.208') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.todesktop.com/221003ra4tebclw/ClickUp-3.5.208-build-260505zrf6t7imk-x64.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2026.1.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion' AND version_compare(bundle_short_version, '2026.1.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.CLion') AND version_compare(bundle_short_version, '2026.1.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.jetbrains.com/cpp/CLion-2026.1.1-aarch64.dmg",
|
||||
"install_script_ref": "19fdf393",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2.12.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop' AND version_compare(bundle_short_version, '2.12.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'coing.ClockifyDesktop') AND version_compare(bundle_short_version, '2.12.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://clockify.me/downloads/ClockifyDesktop.zip",
|
||||
"install_script_ref": "de01ae28",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2026.4.1350.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos' AND version_compare(bundle_short_version, '2026.4.1350.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.cloudflare.1dot1dot1dot1.macos') AND version_compare(bundle_short_version, '2026.4.1350.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.cloudflareclient.com/v1/download/macos/version/2026.4.1350.0",
|
||||
"install_script_ref": "e97d4551",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "0.116.0",
|
||||
"version": "0.130.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM file WHERE path = 'C:\\Program Files\\Codex CLI\\codex.exe' OR path LIKE '%\\AppData\\Local\\Programs\\Codex CLI\\codex.exe';",
|
||||
"patch": ""
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM file WHERE path = 'C:\\Program Files\\Codex CLI\\codex.exe' OR path LIKE '%\\AppData\\Local\\Programs\\Codex CLI\\codex.exe') AND version_compare(version, '0.130.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/openai/codex/releases/download/rust-v0.116.0/codex-x86_64-pc-windows-msvc.exe.zip",
|
||||
"installer_url": "https://github.com/openai/codex/releases/download/rust-v0.130.0/codex-x86_64-pc-windows-msvc.exe.zip",
|
||||
"install_script_ref": "8bb4b68b",
|
||||
"uninstall_script_ref": "7e1fe544",
|
||||
"sha256": "f3a64ca3d389224404c1eb654015a868247e4f59bd300e3cdc05f8933f667f8a",
|
||||
"sha256": "1aa3b56bcc825c0425185c5a7c17166cd9d56de673def0b93d48815c867d6356",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "28.1.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion' AND version_compare(bundle_short_version, '28.1.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.extensis.SuitcaseFusion') AND version_compare(bundle_short_version, '28.1.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://bin.extensis.com/ConnectFonts-M-28-1-4.dmg",
|
||||
"install_script_ref": "b7069397",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "7.0.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor' AND version_compare(bundle_short_version, '7.0.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.coteditor.CotEditor') AND version_compare(bundle_short_version, '7.0.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/coteditor/CotEditor/releases/download/7.0.3/CotEditor_7.0.3.dmg",
|
||||
"install_script_ref": "25436bc3",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "11.9.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop' AND version_compare(bundle_short_version, '11.9.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.crashplan.desktop') AND version_compare(bundle_short_version, '11.9.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.crashplan.com/installs/agent/cloud/11.9.1/19/install/CrashPlan_11.9.1_19_Mac.dmg",
|
||||
"install_script_ref": "0a300cc3",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "11.9.1.19",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC' AND version_compare(version, '11.9.1.19') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'CrashPlan' AND publisher = 'CrashPlan Group LLC') AND version_compare(version, '11.9.1.19') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.crashplan.com/installs/agent/cloud/11.9.1/19/install/CrashPlan_11.9.1_19_Win64.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "3.4.17",
|
||||
"version": "3.4.20",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92' AND version_compare(bundle_short_version, '3.4.17') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.todesktop.230313mzl4w4u92') AND version_compare(bundle_short_version, '3.4.20') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.cursor.com/production/93e603f703cd553a6bb3644711a3379bbbb3118f/darwin/arm64/Cursor-darwin-arm64.zip",
|
||||
"installer_url": "https://downloads.cursor.com/production/0cf8b06883f54e26bb4f0fb8647c9500ccb4331f/darwin/arm64/Cursor-darwin-arm64.zip",
|
||||
"install_script_ref": "5147ff0b",
|
||||
"uninstall_script_ref": "a4458d81",
|
||||
"sha256": "00a3f53183e1964b938b4abfc722d735613a15aa39546e1c072685e066ada30c",
|
||||
"sha256": "c2f4d692edb29063f925ad81cd66084a1760ac470d71560ef775c4f05414851c",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "3.4.16",
|
||||
"version": "3.4.20",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere' AND version_compare(version, '3.4.16') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Cursor' AND publisher = 'Anysphere') AND version_compare(version, '3.4.20') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.cursor.com/production/f736016b0aa20ba1f99b7eec1dda48579fa4c295/win32/x64/system-setup/CursorSetup-x64-3.4.16.exe",
|
||||
"installer_url": "https://downloads.cursor.com/production/0cf8b06883f54e26bb4f0fb8647c9500ccb4331f/win32/x64/system-setup/CursorSetup-x64-3.4.20.exe",
|
||||
"install_script_ref": "03589b5e",
|
||||
"uninstall_script_ref": "6c8096c5",
|
||||
"sha256": "f752c0465c2dbc226c6a674d9eb7831f6bf2988519f8678dfcb68017b7f6a1de",
|
||||
"sha256": "e5219dba8d8c6bf7e4d95562875f0ba682a839771cb1ca048c54352fe08dca6d",
|
||||
"default_categories": [
|
||||
"Developer tools"
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "9.4.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck' AND version_compare(bundle_short_version, '9.4.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'ch.sudo.cyberduck') AND version_compare(bundle_short_version, '9.4.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://update.cyberduck.io/Cyberduck-9.4.1.44384.zip",
|
||||
"install_script_ref": "3390ca0f",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "9.4.1.44384",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH' AND version_compare(version, '9.4.1.44384') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Cyberduck' AND publisher = 'iterate GmbH') AND version_compare(version, '9.4.1.44384') < 0);"
|
||||
},
|
||||
"installer_url": "https://update.cyberduck.io//Cyberduck-Installer-9.4.1.44384.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "8.1.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc' AND version_compare(bundle_short_version, '8.1.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.kapeli.dashdoc') AND version_compare(bundle_short_version, '8.1.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://kapeli.com/downloads/v8/Dash.zip",
|
||||
"install_script_ref": "a498324c",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2026.1.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip' AND version_compare(bundle_short_version, '2026.1.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.jetbrains.datagrip') AND version_compare(bundle_short_version, '2026.1.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.jetbrains.com/datagrip/datagrip-2026.1.3-aarch64.dmg",
|
||||
"install_script_ref": "f3cdf82b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "3.13.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser' AND version_compare(bundle_short_version, '3.13.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.sqlitebrowser.sqlitebrowser') AND version_compare(bundle_short_version, '3.13.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/sqlitebrowser/sqlitebrowser/releases/download/v3.13.1/DB.Browser.for.SQLite-v3.13.1.dmg",
|
||||
"install_script_ref": "34ab4ccf",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.0.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product' AND version_compare(bundle_short_version, '26.0.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'org.jkiss.dbeaver.core.product') AND version_compare(bundle_short_version, '26.0.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://dbeaver.io/files/26.0.4/dbeaver-ce-26.0.4-macos-aarch64.dmg",
|
||||
"install_script_ref": "abe5b0d5",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.0.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.enterprise';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.enterprise' AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.enterprise') AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.dbeaver.net/enterprise/26.0.0/dbeaver-ee-26.0.0-macos-aarch64.dmg",
|
||||
"install_script_ref": "a96abe07",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.0.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.lite';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.lite' AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.lite') AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.dbeaver.net/lite/26.0.0/dbeaver-le-26.0.0-macos-aarch64.dmg",
|
||||
"install_script_ref": "c1cba05a",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.0.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.ultimate';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.ultimate' AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.dbeaver.product.ultimate') AND version_compare(bundle_short_version, '26.0.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.dbeaver.net/ultimate/26.0.0/dbeaver-ue-26.0.0-macos-aarch64.dmg",
|
||||
"install_script_ref": "0a44a77f",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2025.0.8846",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer' AND version_compare(bundle_short_version, '2025.0.8846') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.nicesoftware.dcvviewer') AND version_compare(bundle_short_version, '2025.0.8846') < 0);"
|
||||
},
|
||||
"installer_url": "https://d1uj6qtbmh3dt5.cloudfront.net/2025.0/Clients/nice-dcv-viewer-2025.0.8846.arm64.dmg",
|
||||
"install_script_ref": "6586b7bb",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "26.4.24484530",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator' AND version_compare(bundle_short_version, '26.4.24484530') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.linguee.DeepLCopyTranslator') AND version_compare(bundle_short_version, '26.4.24484530') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.deepl.com/macos/download/26.4/24484530/DeepL.dmg",
|
||||
"install_script_ref": "acdd1ea2",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "2605.0.4",
|
||||
"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, '2605.0.4') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.electron.dialpad') AND version_compare(bundle_short_version, '2605.0.4') < 0);"
|
||||
},
|
||||
"installer_url": "https://download.dialpad.com/osx/arm64/dialpad.pkg",
|
||||
"install_script_ref": "49548b01",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "0.0.390",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord' AND version_compare(bundle_short_version, '0.0.390') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.hnc.Discord') AND version_compare(bundle_short_version, '0.0.390') < 0);"
|
||||
},
|
||||
"installer_url": "https://dl.discordapp.net/apps/osx/0.0.390/Discord.dmg",
|
||||
"install_script_ref": "57ec7b28",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.0.9237",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.' AND version_compare(version, '1.0.9237') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Discord' AND publisher = 'Discord Inc.') AND version_compare(version, '1.0.9237') < 0);"
|
||||
},
|
||||
"installer_url": "https://stable.dl2.discordapp.net/distro/app/stable/win/x64/1.0.9237/DiscordSetup.exe",
|
||||
"install_script_ref": "fd04e860",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "16.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent' AND version_compare(bundle_short_version, '16.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.displaylink.DisplayLinkUserAgent') AND version_compare(bundle_short_version, '16.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.synaptics.com/sites/default/files/exe_files/2026-04/DisplayLink%20Manager%20Graphics%20Connectivity16.0-EXE.pkg",
|
||||
"install_script_ref": "a740a9c9",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.73.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.' AND version_compare(version, '4.73.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Docker Desktop' AND publisher = 'Docker Inc.') AND version_compare(version, '4.73.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop.docker.com/win/main/amd64/226246/Docker%20Desktop%20Installer.exe",
|
||||
"install_script_ref": "b06042dd",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "30.0.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop' AND version_compare(bundle_short_version, '30.0.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.jgraph.drawio.desktop') AND version_compare(bundle_short_version, '30.0.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://github.com/jgraph/drawio-desktop/releases/download/v30.0.1/draw.io-arm64-30.0.1.dmg",
|
||||
"install_script_ref": "c5526876",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "252.4.3485",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox' AND version_compare(bundle_short_version, '252.4.3485') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.getdropbox.dropbox') AND version_compare(bundle_short_version, '252.4.3485') < 0);"
|
||||
},
|
||||
"installer_url": "https://edge.dropboxstatic.com/dbx-releng/client/Dropbox%20252.4.3485.arm64.dmg",
|
||||
"install_script_ref": "59c04bcb",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "7.6.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient' AND version_compare(bundle_short_version, '7.6.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.druva.inSyncClient') AND version_compare(bundle_short_version, '7.6.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.druva.com/downloads/inSync/MAC/7.6.1/inSync-7.6.1-r110931.dmg",
|
||||
"install_script_ref": "72f0f8fe",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "7.5.7",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.' AND version_compare(version, '7.5.7') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name LIKE 'Druva inSync %' AND publisher = 'Druva Technologies Pte. Ltd.') AND version_compare(version, '7.5.7') < 0);"
|
||||
},
|
||||
"installer_url": "https://downloads.druva.com/downloads/inSync/Windows/7.5.7/inSync7.5.7r110923.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "4.39",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers' AND version_compare(bundle_short_version, '4.39') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'epp.package.committers') AND version_compare(bundle_short_version, '4.39') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2026-03/R/eclipse-committers-2026-03-R-macosx-cocoa-aarch64.dmg&r=1",
|
||||
"install_script_ref": "99517b0e",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.17.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp' AND version_compare(bundle_short_version, '1.17.0') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.egnyte.DesktopApp') AND version_compare(bundle_short_version, '1.17.0') < 0);"
|
||||
},
|
||||
"installer_url": "https://egnyte-cdn.egnyte.com/desktopapp/mac/en-us/1.17.0/Egnyte_1.17.0_2340.dmg",
|
||||
"install_script_ref": "22bcf81a",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "1.8.2",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter' AND version_compare(bundle_short_version, '1.8.2') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.corsair.ControlCenter') AND version_compare(bundle_short_version, '1.8.2') < 0);"
|
||||
},
|
||||
"installer_url": "https://edge.elgato.com/egc/macos/eccm/1.8.2/ElgatoControlCenter-1.8.2.20643.zip",
|
||||
"install_script_ref": "b4374aef",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "7.4.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck' AND version_compare(bundle_short_version, '7.4.1') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.elgato.StreamDeck') AND version_compare(bundle_short_version, '7.4.1') < 0);"
|
||||
},
|
||||
"installer_url": "https://edge.elgato.com/egc/macos/sd/Stream_Deck_7.4.1.22720.pkg",
|
||||
"install_script_ref": "fa45f519",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "14.1.0.13058",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN' AND version_compare(bundle_short_version, '14.1.0.13058') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.expressvpn.ExpressVPN') AND version_compare(bundle_short_version, '14.1.0.13058') < 0);"
|
||||
},
|
||||
"installer_url": "https://www.expressvpn.works/clients/mac/expressvpn-macos-universal-14.1.0.13058_release.zip",
|
||||
"install_script_ref": "c5afbbfa",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "126.3.12",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop' AND version_compare(bundle_short_version, '126.3.12') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop') AND version_compare(bundle_short_version, '126.3.12') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop.figma.com/mac-arm/Figma-126.3.12.zip",
|
||||
"install_script_ref": "f0952230",
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "126.3.12",
|
||||
"version": "126.4.9",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.' AND version_compare(version, '126.3.12') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Figma' AND publisher = 'Figma, Inc.') AND version_compare(version, '126.4.9') < 0);"
|
||||
},
|
||||
"installer_url": "https://desktop.figma.com/win/build/Figma-126.3.12.exe",
|
||||
"installer_url": "https://desktop.figma.com/win/build/Figma-126.4.9.exe",
|
||||
"install_script_ref": "442d71b3",
|
||||
"uninstall_script_ref": "e33afd6b",
|
||||
"sha256": "171f090862ce8cc97316fa8341850df1a3ef05e0145f3364ec7af98447533f97",
|
||||
"sha256": "cdf6627ee7105aa310cc5d575a767615050b7f000b816b7850cf77ccc1924ce7",
|
||||
"default_categories": [
|
||||
"Productivity"
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "150.0.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox' AND version_compare(bundle_short_version, '150.0.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM apps WHERE bundle_identifier = 'org.mozilla.firefox') AND version_compare(bundle_short_version, '150.0.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/150.0.3/mac/en-US/Firefox%20150.0.3.dmg",
|
||||
"install_script_ref": "f659d0e6",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"version": "150.0.3",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla';",
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS (SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla' AND version_compare(version, '150.0.3') < 0);"
|
||||
"patched": "SELECT 1 WHERE NOT EXISTS ((SELECT 1 FROM programs WHERE name = 'Mozilla Firefox (x64 en-US)' AND publisher = 'Mozilla') AND version_compare(version, '150.0.3') < 0);"
|
||||
},
|
||||
"installer_url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/150.0.3/win64/en-US/Firefox%20Setup%20150.0.3.exe",
|
||||
"install_script_ref": "80fb9175",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user