From 5f391ec11af207d0655bcba126ee5d0763e7d428 Mon Sep 17 00:00:00 2001 From: Allen Houchins <32207388+allenhouchins@users.noreply.github.com> Date: Wed, 10 Dec 2025 22:54:09 -0600 Subject: [PATCH] Add multiple macOS Fleet-maintained apps (#37101) This pull request adds support for several new macOS applications to the maintained apps system. It introduces metadata and installer information for each app, including their categories, installation formats, and descriptions. The changes affect both the input definitions and the generated output listings, ensuring these apps are now recognized and manageable within the platform. **New application support:** * Added metadata and installation details for the following apps in the `ee/maintained-apps/inputs/homebrew` directory: FileMaker Pro, NordPass, OBS, Obsidian, OrbStack, pgAdmin4, RapidAPI, Royal TSX, Shottr, Splashtop Business, Splashtop Streamer, Stats, Sublime Merge, Surfshark, and Suspicious Package. [[1]](diffhunk://#diff-4110aafedd820ab411c58a2d1d6aa0dd6280e5f9462784933e351ac50e707180R1-R8) [[2]](diffhunk://#diff-58c420dc373e687e3fa2c3203279266db3b53ddbf8f785bd0fe81c302b391b03R1-R8) [[3]](diffhunk://#diff-a3be001759cc20b5b2beb576815bc7bab7d4a96e633462885b549d9ae16d81d7R1-R8) [[4]](diffhunk://#diff-3719ec4aede4178b68f34f4873badcf791b475f2d96dc98cb46072d22104aa7bR1-R8) [[5]](diffhunk://#diff-ba91b6976eae0e27e6f7ab7a169c493943011be440ad98028468c826e47b1d26R1-R8) [[6]](diffhunk://#diff-8f07dada0c342e599ff8b3fe14a3db9d35af2823edf15974b1f7e944988a8b3eR1-R8) [[7]](diffhunk://#diff-3dfe9b210eaf4845c66a78bac05ce92fa1b49f6e88ed58507571efcf38100e11R1-R8) [[8]](diffhunk://#diff-cd74cef2783aac3981106bf37145df1f7dddc6764f525ba796e49a14088b8f7eR1-R8) [[9]](diffhunk://#diff-991e41b0299e0199ef9935e25962e96fb6869619f91385f42559658cb354e15cR1-R8) [[10]](diffhunk://#diff-c80d444ade7092005119d3f9a49903fb9b9f680e1c8d4d2c119f7b25db69531bR1-R8) [[11]](diffhunk://#diff-8645def0d5c629d7814deb463500b0f54422b8d25f9ff8d9ecf26e908d9e5bf5R1-R8) [[12]](diffhunk://#diff-c655bdf41c305040cf0b1694fd40a3fac6d63e9b4e0a22dbb0fa0def502c32aaR1-R8) [[13]](diffhunk://#diff-b2549d65cd0dd12e9554dc82123b5935eff0673a76c631064f4a30eb088698dbR1-R8) [[14]](diffhunk://#diff-858e6b00e0f8ae199231d5cb1fb40f23a8e554fe8e3b3f5e0d097846e98bd4f4R1-R8) [[15]](diffhunk://#diff-a1ab3a19c9c8fd3a677e28bdd41f39fdc085b39935a85b44984dd3d886870cadR1-R8) **Output listings update:** * Updated `ee/maintained-apps/outputs/apps.json` to include the new apps with their names, slugs, platforms, unique identifiers, and descriptions, making them available for discovery and management. [[1]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R564-R570) [[2]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R942-R948) [[3]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R984-R997) [[4]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1026-R1032) [[5]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1047-R1053) [[6]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1131-R1137) [[7]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1159-R1165) [[8]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1187-R1193) [[9]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1236-R1270) [[10]](diffhunk://#diff-4c1446cfc02c6bb0bda874481e333c65b84e184fcea52f656b49a6489f73c9c2R1285-R1298) **Installer and uninstaller scripts:** * Added detailed versioning and installation/uninstallation scripts for FileMaker Pro in `ee/maintained-apps/outputs/filemaker-pro/darwin.json`, including script references and SHA256 checksum for integrity verification. --- .../inputs/homebrew/filemaker-pro.json | 8 ++ .../inputs/homebrew/nordpass.json | 8 ++ ee/maintained-apps/inputs/homebrew/obs.json | 8 ++ .../inputs/homebrew/obsidian.json | 8 ++ .../inputs/homebrew/orbstack.json | 8 ++ .../inputs/homebrew/pgadmin4.json | 8 ++ .../inputs/homebrew/rapidapi.json | 8 ++ .../inputs/homebrew/royal-tsx.json | 9 ++ .../homebrew/scripts/royal-tsx-install.sh | 59 ++++++++++ .../inputs/homebrew/shottr.json | 8 ++ .../inputs/homebrew/splashtop-business.json | 8 ++ .../inputs/homebrew/splashtop-streamer.json | 8 ++ ee/maintained-apps/inputs/homebrew/stats.json | 8 ++ .../inputs/homebrew/sublime-merge.json | 8 ++ .../inputs/homebrew/surfshark.json | 8 ++ .../inputs/homebrew/suspicious-package.json | 8 ++ ee/maintained-apps/outputs/apps.json | 105 ++++++++++++++++++ .../outputs/filemaker-pro/darwin.json | 21 ++++ .../outputs/nordpass/darwin.json | 21 ++++ ee/maintained-apps/outputs/obs/darwin.json | 21 ++++ .../outputs/obsidian/darwin.json | 21 ++++ .../outputs/orbstack/darwin.json | 21 ++++ .../outputs/pgadmin4/darwin.json | 21 ++++ .../outputs/rapidapi/darwin.json | 21 ++++ .../outputs/royal-tsx/darwin.json | 21 ++++ ee/maintained-apps/outputs/shottr/darwin.json | 21 ++++ .../outputs/splashtop-business/darwin.json | 21 ++++ .../outputs/splashtop-streamer/darwin.json | 21 ++++ ee/maintained-apps/outputs/stats/darwin.json | 21 ++++ .../outputs/sublime-merge/darwin.json | 21 ++++ .../outputs/surfshark/darwin.json | 21 ++++ .../outputs/suspicious-package/darwin.json | 21 ++++ .../components/icons/FileMakerPro.tsx | 14 +++ .../components/icons/Nordpass.tsx | 14 +++ .../SoftwarePage/components/icons/Obs.tsx | 14 +++ .../components/icons/Obsidian.tsx | 14 +++ .../components/icons/OrbStack.tsx | 14 +++ .../components/icons/PgAdmin4.tsx | 14 +++ .../components/icons/RapidApi.tsx | 14 +++ .../components/icons/RoyalTsx.tsx | 14 +++ .../SoftwarePage/components/icons/Shottr.tsx | 14 +++ .../components/icons/SplashtopBusiness.tsx | 14 +++ .../components/icons/SplashtopStreamer.tsx | 14 +++ .../SoftwarePage/components/icons/Stats.tsx | 14 +++ .../components/icons/SublimeMerge.tsx | 14 +++ .../components/icons/Surfshark.tsx | 14 +++ .../components/icons/SuspiciousPackage.tsx | 14 +++ .../SoftwarePage/components/icons/index.ts | 30 +++++ .../app-icon-filemaker-pro-60x60@2x.png | Bin 0 -> 4948 bytes .../images/app-icon-nordpass-60x60@2x.png | Bin 0 -> 6503 bytes .../assets/images/app-icon-obs-60x60@2x.png | Bin 0 -> 15446 bytes .../images/app-icon-obsidian-60x60@2x.png | Bin 0 -> 11553 bytes .../images/app-icon-orbstack-60x60@2x.png | Bin 0 -> 17314 bytes .../images/app-icon-pgadmin4-60x60@2x.png | Bin 0 -> 11494 bytes .../images/app-icon-rapidapi-60x60@2x.png | Bin 0 -> 17899 bytes .../images/app-icon-royal-tsx-60x60@2x.png | Bin 0 -> 10796 bytes .../images/app-icon-shottr-60x60@2x.png | Bin 0 -> 14472 bytes .../app-icon-splashtop-business-60x60@2x.png | Bin 0 -> 9821 bytes .../app-icon-splashtop-streamer-60x60@2x.png | Bin 0 -> 26553 bytes .../assets/images/app-icon-stats-60x60@2x.png | Bin 0 -> 17025 bytes .../app-icon-sublime-merge-60x60@2x.png | Bin 0 -> 7108 bytes .../images/app-icon-surfshark-60x60@2x.png | Bin 0 -> 4023 bytes .../app-icon-suspicious-package-60x60@2x.png | Bin 0 -> 14904 bytes 63 files changed, 840 insertions(+) create mode 100644 ee/maintained-apps/inputs/homebrew/filemaker-pro.json create mode 100644 ee/maintained-apps/inputs/homebrew/nordpass.json create mode 100644 ee/maintained-apps/inputs/homebrew/obs.json create mode 100644 ee/maintained-apps/inputs/homebrew/obsidian.json create mode 100644 ee/maintained-apps/inputs/homebrew/orbstack.json create mode 100644 ee/maintained-apps/inputs/homebrew/pgadmin4.json create mode 100644 ee/maintained-apps/inputs/homebrew/rapidapi.json create mode 100644 ee/maintained-apps/inputs/homebrew/royal-tsx.json create mode 100755 ee/maintained-apps/inputs/homebrew/scripts/royal-tsx-install.sh create mode 100644 ee/maintained-apps/inputs/homebrew/shottr.json create mode 100644 ee/maintained-apps/inputs/homebrew/splashtop-business.json create mode 100644 ee/maintained-apps/inputs/homebrew/splashtop-streamer.json create mode 100644 ee/maintained-apps/inputs/homebrew/stats.json create mode 100644 ee/maintained-apps/inputs/homebrew/sublime-merge.json create mode 100644 ee/maintained-apps/inputs/homebrew/surfshark.json create mode 100644 ee/maintained-apps/inputs/homebrew/suspicious-package.json create mode 100644 ee/maintained-apps/outputs/filemaker-pro/darwin.json create mode 100644 ee/maintained-apps/outputs/nordpass/darwin.json create mode 100644 ee/maintained-apps/outputs/obs/darwin.json create mode 100644 ee/maintained-apps/outputs/obsidian/darwin.json create mode 100644 ee/maintained-apps/outputs/orbstack/darwin.json create mode 100644 ee/maintained-apps/outputs/pgadmin4/darwin.json create mode 100644 ee/maintained-apps/outputs/rapidapi/darwin.json create mode 100644 ee/maintained-apps/outputs/royal-tsx/darwin.json create mode 100644 ee/maintained-apps/outputs/shottr/darwin.json create mode 100644 ee/maintained-apps/outputs/splashtop-business/darwin.json create mode 100644 ee/maintained-apps/outputs/splashtop-streamer/darwin.json create mode 100644 ee/maintained-apps/outputs/stats/darwin.json create mode 100644 ee/maintained-apps/outputs/sublime-merge/darwin.json create mode 100644 ee/maintained-apps/outputs/surfshark/darwin.json create mode 100644 ee/maintained-apps/outputs/suspicious-package/darwin.json create mode 100644 frontend/pages/SoftwarePage/components/icons/FileMakerPro.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Nordpass.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Obs.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Obsidian.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/OrbStack.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/PgAdmin4.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/RapidApi.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/RoyalTsx.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Shottr.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/SplashtopBusiness.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/SplashtopStreamer.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Stats.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/SublimeMerge.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/Surfshark.tsx create mode 100644 frontend/pages/SoftwarePage/components/icons/SuspiciousPackage.tsx create mode 100644 website/assets/images/app-icon-filemaker-pro-60x60@2x.png create mode 100644 website/assets/images/app-icon-nordpass-60x60@2x.png create mode 100644 website/assets/images/app-icon-obs-60x60@2x.png create mode 100644 website/assets/images/app-icon-obsidian-60x60@2x.png create mode 100644 website/assets/images/app-icon-orbstack-60x60@2x.png create mode 100644 website/assets/images/app-icon-pgadmin4-60x60@2x.png create mode 100644 website/assets/images/app-icon-rapidapi-60x60@2x.png create mode 100644 website/assets/images/app-icon-royal-tsx-60x60@2x.png create mode 100644 website/assets/images/app-icon-shottr-60x60@2x.png create mode 100644 website/assets/images/app-icon-splashtop-business-60x60@2x.png create mode 100644 website/assets/images/app-icon-splashtop-streamer-60x60@2x.png create mode 100644 website/assets/images/app-icon-stats-60x60@2x.png create mode 100644 website/assets/images/app-icon-sublime-merge-60x60@2x.png create mode 100644 website/assets/images/app-icon-surfshark-60x60@2x.png create mode 100644 website/assets/images/app-icon-suspicious-package-60x60@2x.png diff --git a/ee/maintained-apps/inputs/homebrew/filemaker-pro.json b/ee/maintained-apps/inputs/homebrew/filemaker-pro.json new file mode 100644 index 0000000000..2e24f93d8b --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/filemaker-pro.json @@ -0,0 +1,8 @@ +{ + "name": "FileMaker Pro", + "unique_identifier": "com.filemaker.client.pro12", + "token": "filemaker-pro", + "installer_format": "dmg", + "slug": "filemaker-pro/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/inputs/homebrew/nordpass.json b/ee/maintained-apps/inputs/homebrew/nordpass.json new file mode 100644 index 0000000000..273a08a87d --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/nordpass.json @@ -0,0 +1,8 @@ +{ + "name": "NordPass", + "unique_identifier": "com.nordsec.nordpass", + "token": "nordpass", + "installer_format": "dmg", + "slug": "nordpass/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/obs.json b/ee/maintained-apps/inputs/homebrew/obs.json new file mode 100644 index 0000000000..4a10e636f3 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/obs.json @@ -0,0 +1,8 @@ +{ + "name": "OBS", + "unique_identifier": "com.obsproject.obs-studio", + "token": "obs", + "installer_format": "dmg", + "slug": "obs/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/obsidian.json b/ee/maintained-apps/inputs/homebrew/obsidian.json new file mode 100644 index 0000000000..42591f1ac0 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/obsidian.json @@ -0,0 +1,8 @@ +{ + "name": "Obsidian", + "unique_identifier": "md.obsidian", + "token": "obsidian", + "installer_format": "dmg", + "slug": "obsidian/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/orbstack.json b/ee/maintained-apps/inputs/homebrew/orbstack.json new file mode 100644 index 0000000000..32be7fb789 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/orbstack.json @@ -0,0 +1,8 @@ +{ + "name": "OrbStack", + "unique_identifier": "dev.kdrag0n.MacVirt", + "token": "orbstack", + "installer_format": "dmg", + "slug": "orbstack/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/inputs/homebrew/pgadmin4.json b/ee/maintained-apps/inputs/homebrew/pgadmin4.json new file mode 100644 index 0000000000..41ff81d98d --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/pgadmin4.json @@ -0,0 +1,8 @@ +{ + "name": "pgAdmin4", + "unique_identifier": "org.pgadmin.pgadmin4", + "token": "pgadmin4", + "installer_format": "dmg", + "slug": "pgadmin4/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/inputs/homebrew/rapidapi.json b/ee/maintained-apps/inputs/homebrew/rapidapi.json new file mode 100644 index 0000000000..32b9258af9 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/rapidapi.json @@ -0,0 +1,8 @@ +{ + "name": "RapidAPI", + "unique_identifier": "com.luckymarmot.Paw", + "token": "rapidapi", + "installer_format": "zip", + "slug": "rapidapi/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/inputs/homebrew/royal-tsx.json b/ee/maintained-apps/inputs/homebrew/royal-tsx.json new file mode 100644 index 0000000000..252ca065c8 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/royal-tsx.json @@ -0,0 +1,9 @@ +{ + "name": "Royal TSX", + "unique_identifier": "com.lemonmojo.RoyalTSX.App", + "token": "royal-tsx", + "installer_format": "dmg", + "slug": "royal-tsx/darwin", + "default_categories": ["Productivity"], + "install_script_path": "ee/maintained-apps/inputs/homebrew/scripts/royal-tsx-install.sh" +} diff --git a/ee/maintained-apps/inputs/homebrew/scripts/royal-tsx-install.sh b/ee/maintained-apps/inputs/homebrew/scripts/royal-tsx-install.sh new file mode 100755 index 0000000000..cb188bad16 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/scripts/royal-tsx-install.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +# variables +APPDIR="/Applications/" +TMPDIR=$(dirname "$(realpath $INSTALLER_PATH)") + +# functions + +quit_application() { + local bundle_id="$1" + local timeout_duration=10 + + # check if the application is running + if ! osascript -e "application id \"$bundle_id\" is running" 2>/dev/null; then + return + fi + + local console_user + console_user=$(stat -f "%Su" /dev/console) + if [[ $EUID -eq 0 && "$console_user" == "root" ]]; then + echo "Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'." + return + fi + + echo "Quitting application '$bundle_id'..." + + # try to quit the application within the timeout period + local quit_success=false + SECONDS=0 + while (( SECONDS < timeout_duration )); do + if osascript -e "tell application id \"$bundle_id\" to quit" >/dev/null 2>&1; then + if ! pgrep -f "$bundle_id" >/dev/null 2>&1; then + echo "Application '$bundle_id' quit successfully." + quit_success=true + break + fi + fi + sleep 1 + done + + if [[ "$quit_success" = false ]]; then + echo "Application '$bundle_id' did not quit." + fi +} + +# extract contents +# Use 'yes' to automatically accept license agreement when mounting DMG +# This replicates Homebrew's behavior for DMG files with license agreements +MOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX) +yes | hdiutil attach -plist -nobrowse -readonly -mountpoint "$MOUNT_POINT" "$INSTALLER_PATH" || exit 1 +sudo cp -R "$MOUNT_POINT"/* "$TMPDIR" +hdiutil detach "$MOUNT_POINT" || true + +# copy to the applications folder +quit_application 'com.lemonmojo.RoyalTSX.App' +if [ -d "$APPDIR/Royal TSX.app" ]; then + sudo mv "$APPDIR/Royal TSX.app" "$TMPDIR/Royal TSX.app.bkp" +fi +sudo cp -R "$TMPDIR/Royal TSX.app" "$APPDIR" diff --git a/ee/maintained-apps/inputs/homebrew/shottr.json b/ee/maintained-apps/inputs/homebrew/shottr.json new file mode 100644 index 0000000000..c019dc68e9 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/shottr.json @@ -0,0 +1,8 @@ +{ + "name": "Shottr", + "unique_identifier": "cc.ffitch.shottr", + "token": "shottr", + "installer_format": "dmg", + "slug": "shottr/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/splashtop-business.json b/ee/maintained-apps/inputs/homebrew/splashtop-business.json new file mode 100644 index 0000000000..08882296c5 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/splashtop-business.json @@ -0,0 +1,8 @@ +{ + "name": "Splashtop Business", + "unique_identifier": "com.splashtop.stb.macosx", + "token": "splashtop-business", + "installer_format": "dmg", + "slug": "splashtop-business/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/splashtop-streamer.json b/ee/maintained-apps/inputs/homebrew/splashtop-streamer.json new file mode 100644 index 0000000000..530e59d515 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/splashtop-streamer.json @@ -0,0 +1,8 @@ +{ + "name": "Splashtop Streamer", + "unique_identifier": "com.splashtop.Splashtop-Streamer", + "token": "splashtop-streamer", + "installer_format": "dmg", + "slug": "splashtop-streamer/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/stats.json b/ee/maintained-apps/inputs/homebrew/stats.json new file mode 100644 index 0000000000..ead5e0d0ab --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/stats.json @@ -0,0 +1,8 @@ +{ + "name": "Stats", + "unique_identifier": "eu.exelban.Stats", + "token": "stats", + "installer_format": "dmg", + "slug": "stats/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/sublime-merge.json b/ee/maintained-apps/inputs/homebrew/sublime-merge.json new file mode 100644 index 0000000000..0e092d5e17 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/sublime-merge.json @@ -0,0 +1,8 @@ +{ + "name": "Sublime Merge", + "unique_identifier": "com.sublimemerge", + "token": "sublime-merge", + "installer_format": "zip", + "slug": "sublime-merge/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/inputs/homebrew/surfshark.json b/ee/maintained-apps/inputs/homebrew/surfshark.json new file mode 100644 index 0000000000..119231d956 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/surfshark.json @@ -0,0 +1,8 @@ +{ + "name": "Surfshark", + "unique_identifier": "com.surfshark.vpnclient.macos.direct", + "token": "surfshark", + "installer_format": "dmg", + "slug": "surfshark/darwin", + "default_categories": ["Productivity"] +} diff --git a/ee/maintained-apps/inputs/homebrew/suspicious-package.json b/ee/maintained-apps/inputs/homebrew/suspicious-package.json new file mode 100644 index 0000000000..562264d673 --- /dev/null +++ b/ee/maintained-apps/inputs/homebrew/suspicious-package.json @@ -0,0 +1,8 @@ +{ + "name": "Suspicious Package", + "unique_identifier": "com.mothersruin.SuspiciousPackage", + "token": "suspicious-package", + "installer_format": "dmg", + "slug": "suspicious-package/darwin", + "default_categories": ["Developer tools"] +} diff --git a/ee/maintained-apps/outputs/apps.json b/ee/maintained-apps/outputs/apps.json index 333f1a7795..f90d1160c0 100644 --- a/ee/maintained-apps/outputs/apps.json +++ b/ee/maintained-apps/outputs/apps.json @@ -561,6 +561,13 @@ "unique_identifier": "Figma", "description": "Figma is a collaborative design tool for teams to create, prototype, and share designs in real time." }, + { + "name": "FileMaker Pro", + "slug": "filemaker-pro/darwin", + "platform": "darwin", + "unique_identifier": "com.filemaker.client.pro12", + "description": "FileMaker Pro is a relational database and rapid application development platform." + }, { "name": "Mozilla Firefox", "slug": "firefox/darwin", @@ -932,6 +939,13 @@ "unique_identifier": "com.oracle.workbench.MySQLWorkbench", "description": "MySQL Workbench is a visual tool to design, develop and administer MySQL servers." }, + { + "name": "NordPass", + "slug": "nordpass/darwin", + "platform": "darwin", + "unique_identifier": "com.nordsec.nordpass", + "description": "NordPass is a password manager." + }, { "name": "NordVPN", "slug": "nordvpn/darwin", @@ -967,6 +981,20 @@ "unique_identifier": "com.github.macadmins.Nudge", "description": "Nudge is an application for enforcing OS updates." }, + { + "name": "OBS", + "slug": "obs/darwin", + "platform": "darwin", + "unique_identifier": "com.obsproject.obs-studio", + "description": "OBS is open-source software for live streaming and screen recording." + }, + { + "name": "Obsidian", + "slug": "obsidian/darwin", + "platform": "darwin", + "unique_identifier": "md.obsidian", + "description": "Obsidian is a knowledge base that works on top of a local folder of plain text Markdown files." + }, { "name": "OmniGraffle", "slug": "omnigraffle/darwin", @@ -995,6 +1023,13 @@ "unique_identifier": "com.operasoftware.Opera", "description": "Opera is a web browser." }, + { + "name": "OrbStack", + "slug": "orbstack/darwin", + "platform": "darwin", + "unique_identifier": "dev.kdrag0n.MacVirt", + "description": "OrbStack is a replacement for Docker Desktop." + }, { "name": "P4V", "slug": "p4v/darwin", @@ -1009,6 +1044,13 @@ "unique_identifier": "com.parallels.desktop.console", "description": "Parallels Desktop is virtualization software." }, + { + "name": "pgAdmin4", + "slug": "pgadmin4/darwin", + "platform": "darwin", + "unique_identifier": "org.pgadmin.pgadmin4", + "description": "pgAdmin4 is an administration and development platform for PostgreSQL." + }, { "name": "PhpStorm", "slug": "phpstorm/darwin", @@ -1086,6 +1128,13 @@ "unique_identifier": "io.rancherdesktop.app", "description": "Rancher Desktop is an app for kubernetes and container management on the desktop." }, + { + "name": "RapidAPI", + "slug": "rapidapi/darwin", + "platform": "darwin", + "unique_identifier": "com.luckymarmot.Paw", + "description": "RapidAPI is an HTTP client that helps testing and describing APIs." + }, { "name": "Raycast", "slug": "raycast/darwin", @@ -1107,6 +1156,13 @@ "unique_identifier": "com.jetbrains.rider", "description": "Rider is a .NET IDE by JetBrains." }, + { + "name": "Royal TSX", + "slug": "royal-tsx/darwin", + "platform": "darwin", + "unique_identifier": "com.lemonmojo.RoyalTSX.App", + "description": "Royal TSX is a remote management solution." + }, { "name": "RubyMine", "slug": "rubymine/darwin", @@ -1128,6 +1184,13 @@ "unique_identifier": "com.northpolesec.santa", "description": "Santa is a binary authorization system for macOS." }, + { + "name": "Shottr", + "slug": "shottr/darwin", + "platform": "darwin", + "unique_identifier": "cc.ffitch.shottr", + "description": "Shottr is a screenshot measurement and annotation tool." + }, { "name": "Signal", "slug": "signal/darwin", @@ -1170,6 +1233,20 @@ "unique_identifier": "com.torusknot.SourceTreeNotMAS", "description": "SourceTree is a graphical client for Git version control." }, + { + "name": "Splashtop Business", + "slug": "splashtop-business/darwin", + "platform": "darwin", + "unique_identifier": "com.splashtop.stb.macosx", + "description": "Splashtop Business is remote access software." + }, + { + "name": "Splashtop Streamer", + "slug": "splashtop-streamer/darwin", + "platform": "darwin", + "unique_identifier": "com.splashtop.Splashtop-Streamer", + "description": "Splashtop Streamer is used to connect to and control computers." + }, { "name": "Spotify", "slug": "spotify/darwin", @@ -1177,6 +1254,20 @@ "unique_identifier": "com.spotify.client", "description": "Spotify is a music streaming app." }, + { + "name": "Stats", + "slug": "stats/darwin", + "platform": "darwin", + "unique_identifier": "eu.exelban.Stats", + "description": "Stats is a system monitor for the menu bar." + }, + { + "name": "Sublime Merge", + "slug": "sublime-merge/darwin", + "platform": "darwin", + "unique_identifier": "com.sublimemerge", + "description": "Sublime Merge is a git client." + }, { "name": "Sublime Text", "slug": "sublime-text/darwin", @@ -1191,6 +1282,20 @@ "unique_identifier": "Sublime Text", "description": "Sublime Text is a text editor for code, markup, and prose." }, + { + "name": "Surfshark", + "slug": "surfshark/darwin", + "platform": "darwin", + "unique_identifier": "com.surfshark.vpnclient.macos.direct", + "description": "Surfshark is a VPN client for secure internet access and private browsing." + }, + { + "name": "Suspicious Package", + "slug": "suspicious-package/darwin", + "platform": "darwin", + "unique_identifier": "com.mothersruin.SuspiciousPackage", + "description": "Suspicious Package is an application for inspecting installer packages." + }, { "name": "Tableau Desktop", "slug": "tableau/darwin", diff --git a/ee/maintained-apps/outputs/filemaker-pro/darwin.json b/ee/maintained-apps/outputs/filemaker-pro/darwin.json new file mode 100644 index 0000000000..4d9e2589e4 --- /dev/null +++ b/ee/maintained-apps/outputs/filemaker-pro/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "22.0.4.406", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.filemaker.client.pro12';" + }, + "installer_url": "https://downloads.claris.com/esd/fmp_22.0.4.406.dmg", + "install_script_ref": "33525d56", + "uninstall_script_ref": "f4f1edf6", + "sha256": "6ab11d3331ac8ffe203280c509a1aa7ce68f251dc2bf01d2f4910af78bd691d2", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "33525d56": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'com.filemaker.client.pro12'\nif [ -d \"$APPDIR/FileMaker Pro.app\" ]; then\n\tsudo mv \"$APPDIR/FileMaker Pro.app\" \"$TMPDIR/FileMaker Pro.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/FileMaker Pro.app\" \"$APPDIR\"\n", + "f4f1edf6": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/FileMaker Pro.app\"\ntrash $LOGGED_IN_USER '/Users/Shared/FileMaker'\ntrash $LOGGED_IN_USER '~/Library/Application Support/FileMaker'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.filemaker.client.pro12'\ntrash $LOGGED_IN_USER '~/Library/Caches/FileMaker'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.filemaker.client.pro12'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.filemaker.client.pro12.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.filemaker.client.pro12.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.filemaker.client.pro12'\n" + } +} diff --git a/ee/maintained-apps/outputs/nordpass/darwin.json b/ee/maintained-apps/outputs/nordpass/darwin.json new file mode 100644 index 0000000000..a9e0febed0 --- /dev/null +++ b/ee/maintained-apps/outputs/nordpass/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "7.2.15", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.nordsec.nordpass';" + }, + "installer_url": "https://downloads.npass.app/mac/arm/NordPass.dmg", + "install_script_ref": "d6c888b5", + "uninstall_script_ref": "eff0e667", + "sha256": "no_check", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "d6c888b5": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'com.nordsec.nordpass'\nif [ -d \"$APPDIR/NordPass.app\" ]; then\n\tsudo mv \"$APPDIR/NordPass.app\" \"$TMPDIR/NordPass.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/NordPass.app\" \"$APPDIR\"\n", + "eff0e667": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nquit_application 'com.nordsec.nordpass'\nsudo rm -rf \"$APPDIR/NordPass.app\"\ntrash $LOGGED_IN_USER '/Library/Application Support/NordPass'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.nordsec.nordpass.safari.extension'\ntrash $LOGGED_IN_USER '~/Library/Application Support/NordPass'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.nordsec.nordpass.safari.extension'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.nordsec.nordpass.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.nordsec.nordpass.savedState'\n" + } +} diff --git a/ee/maintained-apps/outputs/obs/darwin.json b/ee/maintained-apps/outputs/obs/darwin.json new file mode 100644 index 0000000000..9898b66334 --- /dev/null +++ b/ee/maintained-apps/outputs/obs/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "32.0.3", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.obsproject.obs-studio';" + }, + "installer_url": "https://cdn-fastly.obsproject.com/downloads/obs-studio-32.0.3-macos-apple.dmg", + "install_script_ref": "d435f99c", + "uninstall_script_ref": "b577d75e", + "sha256": "5efd7ec3871fa5f217644425e6777354716425dd25c0759c9373b163cc9de6e8", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "b577d75e": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf '/Library/CoreMediaIO/Plug-Ins/DAL/obs-mac-virtualcam.plugin'\nsudo rm -rf \"$APPDIR/OBS.app\"\nsudo rm -rf 'obs'\ntrash $LOGGED_IN_USER '~/Library/Application Support/obs-studio'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.obsproject.obs-studio'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.obsproject.obs-studio.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.obsproject.obs-studio.savedState'\n", + "d435f99c": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'com.obsproject.obs-studio'\nif [ -d \"$APPDIR/OBS.app\" ]; then\n\tsudo mv \"$APPDIR/OBS.app\" \"$TMPDIR/OBS.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/OBS.app\" \"$APPDIR\"\n" + } +} diff --git a/ee/maintained-apps/outputs/obsidian/darwin.json b/ee/maintained-apps/outputs/obsidian/darwin.json new file mode 100644 index 0000000000..1e14bbb7ed --- /dev/null +++ b/ee/maintained-apps/outputs/obsidian/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "1.10.6", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'md.obsidian';" + }, + "installer_url": "https://github.com/obsidianmd/obsidian-releases/releases/download/v1.10.6/Obsidian-1.10.6.dmg", + "install_script_ref": "6044324c", + "uninstall_script_ref": "b982bfc2", + "sha256": "a7fbd87353d7802933a13e3d90f55c39114c419ac48d459a356bdab73c128a8a", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "6044324c": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'md.obsidian'\nif [ -d \"$APPDIR/Obsidian.app\" ]; then\n\tsudo mv \"$APPDIR/Obsidian.app\" \"$TMPDIR/Obsidian.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Obsidian.app\" \"$APPDIR\"\n", + "b982bfc2": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Obsidian.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/md.obsidian.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/obsidian'\ntrash $LOGGED_IN_USER '~/Library/Preferences/md.obsidian.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/md.obsidian.savedState'\n" + } +} diff --git a/ee/maintained-apps/outputs/orbstack/darwin.json b/ee/maintained-apps/outputs/orbstack/darwin.json new file mode 100644 index 0000000000..f65922d610 --- /dev/null +++ b/ee/maintained-apps/outputs/orbstack/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "2.0.5", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'dev.kdrag0n.MacVirt';" + }, + "installer_url": "https://cdn-updates.orbstack.dev/arm64/OrbStack_v2.0.5_19905_arm64.dmg", + "install_script_ref": "14115520", + "uninstall_script_ref": "401d288b", + "sha256": "601889551cdfdc7feee148b7fdb0480fa0ba5c0db0be8f1c047fc840886a7571", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "14115520": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'dev.kdrag0n.MacVirt'\nif [ -d \"$APPDIR/OrbStack.app\" ]; then\n\tsudo mv \"$APPDIR/OrbStack.app\" \"$TMPDIR/OrbStack.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/OrbStack.app\" \"$APPDIR\"\n", + "401d288b": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\n(cd /Users/$LOGGED_IN_USER && '$APPDIR/OrbStack.app/Contents/MacOS/bin/orbctl' '_internal' 'brew-uninstall')\nsudo rm -rf \"$APPDIR/OrbStack.app\"\nsudo rmdir '~/OrbStack'\ntrash $LOGGED_IN_USER '~/.orbstack'\ntrash $LOGGED_IN_USER '~/Library/Caches/dev.kdrag0n.MacVirt'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/*.dev.orbstack'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/dev.kdrag0n.MacVirt'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/dev.kdrag0n.MacVirt.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/Preferences/dev.kdrag0n.MacVirt.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/dev.kdrag0n.MacVirt.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/dev.kdrag0n.MacVirt'\n" + } +} diff --git a/ee/maintained-apps/outputs/pgadmin4/darwin.json b/ee/maintained-apps/outputs/pgadmin4/darwin.json new file mode 100644 index 0000000000..b2a7480208 --- /dev/null +++ b/ee/maintained-apps/outputs/pgadmin4/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "9.10", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'org.pgadmin.pgadmin4';" + }, + "installer_url": "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v9.10/macos/pgadmin4-9.10-arm64.dmg", + "install_script_ref": "6b8f50b9", + "uninstall_script_ref": "f1163b80", + "sha256": "9d654ccb7eb5d7379c7f004d4824de251c54dc51074bcb938b530593e50fb736", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "6b8f50b9": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'org.pgadmin.pgadmin4'\nif [ -d \"$APPDIR/pgAdmin 4.app\" ]; then\n\tsudo mv \"$APPDIR/pgAdmin 4.app\" \"$TMPDIR/pgAdmin 4.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/pgAdmin 4.app\" \"$APPDIR\"\n", + "f1163b80": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/pgAdmin 4.app\"\ntrash $LOGGED_IN_USER '~/.pgadmin'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/org.pgadmin.pgadmin4.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/pgAdmin 4'\ntrash $LOGGED_IN_USER '~/Library/Caches/pgAdmin 4'\ntrash $LOGGED_IN_USER '~/Library/Preferences/org.pgadmin.pgadmin4.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/org.pgadmin.pgAdmin4.savedState'\n" + } +} diff --git a/ee/maintained-apps/outputs/rapidapi/darwin.json b/ee/maintained-apps/outputs/rapidapi/darwin.json new file mode 100644 index 0000000000..87ff524133 --- /dev/null +++ b/ee/maintained-apps/outputs/rapidapi/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "4.5.2", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.luckymarmot.Paw';" + }, + "installer_url": "https://cdn-builds.paw.cloud/paw/RapidAPI-4.5.2.zip", + "install_script_ref": "28cca0da", + "uninstall_script_ref": "eb82b992", + "sha256": "aad9446c07fe06121466aebc4cb79dccfba4dd1d0edcfeff37e9c312dbefd562", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "28cca0da": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nunzip \"$INSTALLER_PATH\" -d \"$TMPDIR\"\n# copy to the applications folder\nquit_application 'com.luckymarmot.Paw'\nif [ -d \"$APPDIR/RapidAPI.app\" ]; then\n\tsudo mv \"$APPDIR/RapidAPI.app\" \"$TMPDIR/RapidAPI.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/RapidAPI.app\" \"$APPDIR\"\n", + "eb82b992": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/RapidAPI.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.luckymarmot.Paw'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.luckymarmot.paw.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.luckymarmot.Paw'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.luckymarmot.Paw.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.luckymarmot.Paw.savedState'\n" + } +} diff --git a/ee/maintained-apps/outputs/royal-tsx/darwin.json b/ee/maintained-apps/outputs/royal-tsx/darwin.json new file mode 100644 index 0000000000..64ab7151e2 --- /dev/null +++ b/ee/maintained-apps/outputs/royal-tsx/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "6.3.0.1000", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.lemonmojo.RoyalTSX.App';" + }, + "installer_url": "https://royaltsx-v6.royalapps.com/updates/royaltsx_6.3.0.1000.dmg", + "install_script_ref": "0f402271", + "uninstall_script_ref": "3f764c08", + "sha256": "934ce7ef770b4fc876c08a50f22b0814ccd66d8c0d2542685ddef61609263bcf", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "0f402271": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n# extract contents\n# Use 'yes' to automatically accept license agreement when mounting DMG\n# This replicates Homebrew's behavior for DMG files with license agreements\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nyes | hdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\" || exit 1\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\" || true\n\n# copy to the applications folder\nquit_application 'com.lemonmojo.RoyalTSX.App'\nif [ -d \"$APPDIR/Royal TSX.app\" ]; then\n\tsudo mv \"$APPDIR/Royal TSX.app\" \"$TMPDIR/Royal TSX.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Royal TSX.app\" \"$APPDIR\"\n", + "3f764c08": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Royal TSX.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.lemonmojo.RoyalTSX.App'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Royal TSX'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.lemonmojo.RoyalTSX.App'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.lemonmojo.RoyalTSX.App.plist'\n" + } +} diff --git a/ee/maintained-apps/outputs/shottr/darwin.json b/ee/maintained-apps/outputs/shottr/darwin.json new file mode 100644 index 0000000000..075ec2f8aa --- /dev/null +++ b/ee/maintained-apps/outputs/shottr/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "1.9", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'cc.ffitch.shottr';" + }, + "installer_url": "https://shottr.cc/dl/Shottr-1.9.dmg", + "install_script_ref": "03afa124", + "uninstall_script_ref": "cc55e70b", + "sha256": "664d95023406c7fa87d88c149a0302fb8ab43bb4aadf3c7f7a9bc9a4447805b0", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "03afa124": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'cc.ffitch.shottr'\nif [ -d \"$APPDIR/Shottr.app\" ]; then\n\tsudo mv \"$APPDIR/Shottr.app\" \"$TMPDIR/Shottr.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Shottr.app\" \"$APPDIR\"\n", + "cc55e70b": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Shottr.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/cc.ffitch.shottr'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/cc.ffitch.shottr-LaunchAtLoginHelper'\ntrash $LOGGED_IN_USER '~/Library/Containers/cc.ffitch.shottr'\ntrash $LOGGED_IN_USER '~/Library/Containers/cc.ffitch.shottr-LaunchAtLoginHelper'\n" + } +} diff --git a/ee/maintained-apps/outputs/splashtop-business/darwin.json b/ee/maintained-apps/outputs/splashtop-business/darwin.json new file mode 100644 index 0000000000..3423d0549f --- /dev/null +++ b/ee/maintained-apps/outputs/splashtop-business/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "3.8.0.1", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.stb.macosx';" + }, + "installer_url": "https://d17kmd0va0f0mp.cloudfront.net/macclient/STB/Splashtop_Business_Mac_INSTALLER_v3.8.0.1.dmg", + "install_script_ref": "8fdc3286", + "uninstall_script_ref": "76f9b2e9", + "sha256": "9dc906efdbe7acbee26cf9fdcc4f239a5196e30f54064b52025c65458fe4e207", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "76f9b2e9": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.splashtop.stb.macosx.helper.autoupdate'\nquit_application 'com.splashtop.stb.macosx'\nremove_pkg_files 'com.splashtop.splashtopBusiness.*'\nforget_pkg 'com.splashtop.splashtopBusiness.*'\nremove_pkg_files 'com.splashtop.stb.*'\nforget_pkg 'com.splashtop.stb.*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Splashtop Business'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.splashtop.stb.macosx'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.splashtop.stb.macosx'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.splashtop.stb.macosx.plist'\n", + "8fdc3286": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nsudo installer -pkg \"$TMPDIR/Splashtop Business.pkg\" -target /\n" + } +} diff --git a/ee/maintained-apps/outputs/splashtop-streamer/darwin.json b/ee/maintained-apps/outputs/splashtop-streamer/darwin.json new file mode 100644 index 0000000000..40c6c560a5 --- /dev/null +++ b/ee/maintained-apps/outputs/splashtop-streamer/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "3.8.0.2", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.splashtop.Splashtop-Streamer';" + }, + "installer_url": "https://d17kmd0va0f0mp.cloudfront.net/mac/Splashtop_Streamer_Mac_INSTALLER_v3.8.0.2.dmg", + "install_script_ref": "9e1a200f", + "uninstall_script_ref": "ee983d15", + "sha256": "64690656fd7dcf59fcdc2cb20b6c96775e24fab6f7b0bff6bd500af3f579059b", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "9e1a200f": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nsudo installer -pkg \"$TMPDIR/Splashtop Streamer.pkg\" -target /\n", + "ee983d15": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nexpand_pkgid_and_map() {\n local PKGID=\"$1\"\n local FUNC=\"$2\"\n if [[ \"$PKGID\" == *\"*\" ]]; then\n local prefix=\"${PKGID%\\*}\"\n echo \"Expanding wildcard for PKGID: $PKGID\"\n for receipt in $(pkgutil --pkgs | grep \"^${prefix}\"); do\n echo \"Processing $receipt\"\n \"$FUNC\" \"$receipt\"\n done\n else\n \"$FUNC\" \"$PKGID\"\n fi\n}\n\nforget_pkg() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" forget_receipt\n}\n\nforget_receipt() {\n local PKGID=\"$1\"\n sudo pkgutil --forget \"$PKGID\"\n}\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2>/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n}\n\nremove_pkg_files() {\n local PKGID=\"$1\"\n expand_pkgid_and_map \"$PKGID\" remove_receipt_files\n}\n\nremove_receipt_files() {\n local PKGID=\"$1\"\n local PKGINFO VOLUME INSTALL_LOCATION FULL_INSTALL_LOCATION\n\n echo \"pkgutil --pkg-info-plist \\\"$PKGID\\\"\"\n PKGINFO=$(pkgutil --pkg-info-plist \"$PKGID\")\n VOLUME=$(echo \"$PKGINFO\" | awk '/volume<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n INSTALL_LOCATION=$(echo \"$PKGINFO\" | awk '/install-location<\\/key>/ {getline; gsub(/.*|<\\/string>.*/, \"\"); print}')\n\n if [ -z \"$INSTALL_LOCATION\" ] || [ \"$INSTALL_LOCATION\" = \"/\" ]; then\n FULL_INSTALL_LOCATION=\"$VOLUME\"\n else\n FULL_INSTALL_LOCATION=\"$VOLUME/$INSTALL_LOCATION\"\n FULL_INSTALL_LOCATION=$(echo \"$FULL_INSTALL_LOCATION\" | sed 's|//|/|g')\n fi\n\n echo \"sudo pkgutil --only-files --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-files --files \"$PKGID\" | sed \"s|^|/${INSTALL_LOCATION}/|\" | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n echo \"sudo pkgutil --only-dirs --files \\\"$PKGID\\\" | sed \\\"s|^|${FULL_INSTALL_LOCATION}/|\\\" | grep '\\\\.app$' | tr '\\\\\\\\n' '\\\\\\\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\"\n sudo pkgutil --only-dirs --files \"$PKGID\" | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" | grep '\\.app$' | tr '\\n' '\\0' | /usr/bin/sudo -u root -E -- /usr/bin/xargs -0 -- /bin/rm -rf\n\n root_app_dir=$(\n sudo pkgutil --only-dirs --files \"$PKGID\" \\\n | sed \"s|^|${FULL_INSTALL_LOCATION}/|\" \\\n | grep 'Applications' \\\n | awk '{ print length, $0 }' \\\n | sort -n \\\n | head -n1 \\\n | cut -d' ' -f2-\n )\n if [ -n \"$root_app_dir\" ]; then\n echo \"sudo rmdir -p \\\"$root_app_dir\\\" 2>/dev/null || :\"\n sudo rmdir -p \"$root_app_dir\" 2>/dev/null || :\n fi\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.splashtop.streamer'\nremove_launchctl_service 'com.splashtop.streamer-daemon'\nremove_launchctl_service 'com.splashtop.streamer-for-root'\nremove_launchctl_service 'com.splashtop.streamer-for-user'\nremove_launchctl_service 'com.splashtop.streamer-srioframebuffer'\nquit_application 'com.splashtop.Splashtop-Streamer'\nremove_pkg_files 'com.splashtop.Splashtop-Streamer'\nforget_pkg 'com.splashtop.Splashtop-Streamer'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Splashtop Streamer'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.splashtop.Splashtop-Streamer.plist'\n" + } +} diff --git a/ee/maintained-apps/outputs/stats/darwin.json b/ee/maintained-apps/outputs/stats/darwin.json new file mode 100644 index 0000000000..d629b1939b --- /dev/null +++ b/ee/maintained-apps/outputs/stats/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "2.11.62", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'eu.exelban.Stats';" + }, + "installer_url": "https://github.com/exelban/stats/releases/download/v2.11.62/Stats.dmg", + "install_script_ref": "512089ad", + "uninstall_script_ref": "38a63041", + "sha256": "db7c533f535b278dde5884842c052eeda66e216d9caf93bc8d5da7469a62f58c", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "38a63041": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nquit_application 'eu.exelban.Stats'\nsudo rm -rf \"$APPDIR/Stats.app\"\nsudo rm -rf '/Library/LaunchDaemons/eu.exelban.Stats.SMC.Helper.plist'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/eu.exelban.Stats.LaunchAtLogin'\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/eu.exelban.Stats.Widgets'\ntrash $LOGGED_IN_USER '~/Library/Caches/eu.exelban.Stats'\ntrash $LOGGED_IN_USER '~/Library/Containers/eu.exelban.Stats.LaunchAtLogin'\ntrash $LOGGED_IN_USER '~/Library/Containers/eu.exelban.Stats.Widgets'\ntrash $LOGGED_IN_USER '~/Library/Cookies/eu.exelban.Stats.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/eu.exelban.Stats.widgets'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/eu.exelban.Stats'\ntrash $LOGGED_IN_USER '~/Library/Preferences/eu.exelban.Stats.plist'\n", + "512089ad": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'eu.exelban.Stats'\nif [ -d \"$APPDIR/Stats.app\" ]; then\n\tsudo mv \"$APPDIR/Stats.app\" \"$TMPDIR/Stats.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Stats.app\" \"$APPDIR\"\n" + } +} diff --git a/ee/maintained-apps/outputs/sublime-merge/darwin.json b/ee/maintained-apps/outputs/sublime-merge/darwin.json new file mode 100644 index 0000000000..9c14ac833d --- /dev/null +++ b/ee/maintained-apps/outputs/sublime-merge/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "2112", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.sublimemerge';" + }, + "installer_url": "https://download.sublimetext.com/sublime_merge_build_2112_mac.zip", + "install_script_ref": "0afac373", + "uninstall_script_ref": "cd1ff75d", + "sha256": "a9a6c5cf3760b4d6a767cf32847a7fc47fdeeb8bad893e6f834dbfbfef7f33e5", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "0afac373": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nunzip \"$INSTALLER_PATH\" -d \"$TMPDIR\"\n# copy to the applications folder\nquit_application 'com.sublimemerge'\nif [ -d \"$APPDIR/Sublime Merge.app\" ]; then\n\tsudo mv \"$APPDIR/Sublime Merge.app\" \"$TMPDIR/Sublime Merge.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Sublime Merge.app\" \"$APPDIR\"\n", + "cd1ff75d": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nquit_application 'com.sublimemerge'\nsudo rm -rf \"$APPDIR/Sublime Merge.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.sublimemerge.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/Sublime Merge'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.sublimemerge'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.sublimemerge.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.sublimemerge.savedState'\n" + } +} diff --git a/ee/maintained-apps/outputs/surfshark/darwin.json b/ee/maintained-apps/outputs/surfshark/darwin.json new file mode 100644 index 0000000000..c5f747dc6f --- /dev/null +++ b/ee/maintained-apps/outputs/surfshark/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "4.24.1", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.surfshark.vpnclient.macos.direct';" + }, + "installer_url": "https://downloads.surfshark.com/macOS/stable/4.24.1/4031/Surfshark.dmg", + "install_script_ref": "b1bee585", + "uninstall_script_ref": "a2b88fd6", + "sha256": "13e662272be822a6dfd9316fa1503e9c26ad97e9cdcfae6738bcfa97e4ab34dc", + "default_categories": [ + "Productivity" + ] + } + ], + "refs": { + "a2b88fd6": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Surfshark.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.surfshark.vpnclient.macos*'\ntrash $LOGGED_IN_USER '~/Library/Application Support/CrashReporter/Surfshark.OpenVPN_*.plist'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.surfshark.vpnclient.macos*'\ntrash $LOGGED_IN_USER '~/Library/Group Containers/YHUG37CKN8.com.surfshark.vpn'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.surfshark.vpnclient.macos.savedState'\n", + "b1bee585": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'com.surfshark.vpnclient.macos.direct'\nif [ -d \"$APPDIR/Surfshark.app\" ]; then\n\tsudo mv \"$APPDIR/Surfshark.app\" \"$TMPDIR/Surfshark.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Surfshark.app\" \"$APPDIR\"\n" + } +} diff --git a/ee/maintained-apps/outputs/suspicious-package/darwin.json b/ee/maintained-apps/outputs/suspicious-package/darwin.json new file mode 100644 index 0000000000..674f9f70bc --- /dev/null +++ b/ee/maintained-apps/outputs/suspicious-package/darwin.json @@ -0,0 +1,21 @@ +{ + "versions": [ + { + "version": "4.6", + "queries": { + "exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.mothersruin.SuspiciousPackage';" + }, + "installer_url": "https://www.mothersruin.com/software/downloads/SuspiciousPackage.dmg", + "install_script_ref": "f6117813", + "uninstall_script_ref": "80330be8", + "sha256": "no_check", + "default_categories": [ + "Developer tools" + ] + } + ], + "refs": { + "80330be8": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nLOGGED_IN_USER=$(scutil <<< \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nsudo rm -rf \"$APPDIR/Suspicious Package.app\"\ntrash $LOGGED_IN_USER '~/Library/Application Scripts/com.mothersruin.SuspiciousPackageApp.QLPreview'\ntrash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.mothersruin.suspiciouspackageapp.sfl*'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.mothersruin.SuspiciousPackageApp'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.mothersruin.XPCService.UpdateChecker'\ntrash $LOGGED_IN_USER '~/Library/Containers/com.mothersruin.SuspiciousPackageApp.QLPreview'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.mothersruin.SuspiciousPackage.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.mothersruin.SuspiciousPackageApp.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.mothersruin.SuspiciousPackageApp.savedState'\ntrash $LOGGED_IN_USER '~/Library/WebKit/com.mothersruin.SuspiciousPackageApp'\n", + "f6117813": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2>/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 && \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS < timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" >/dev/null 2>&1; then\n if ! pgrep -f \"$bundle_id\" >/dev/null 2>&1; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# copy to the applications folder\nquit_application 'com.mothersruin.SuspiciousPackage'\nif [ -d \"$APPDIR/Suspicious Package.app\" ]; then\n\tsudo mv \"$APPDIR/Suspicious Package.app\" \"$TMPDIR/Suspicious Package.app.bkp\"\nfi\nsudo cp -R \"$TMPDIR/Suspicious Package.app\" \"$APPDIR\"\n" + } +} diff --git a/frontend/pages/SoftwarePage/components/icons/FileMakerPro.tsx b/frontend/pages/SoftwarePage/components/icons/FileMakerPro.tsx new file mode 100644 index 0000000000..b7eb485a50 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/FileMakerPro.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const FileMakerPro = (props: SVGProps) => ( + + + +); +export default FileMakerPro; diff --git a/frontend/pages/SoftwarePage/components/icons/Nordpass.tsx b/frontend/pages/SoftwarePage/components/icons/Nordpass.tsx new file mode 100644 index 0000000000..dcdb6b6d58 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Nordpass.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Nordpass = (props: SVGProps) => ( + + + +); +export default Nordpass; diff --git a/frontend/pages/SoftwarePage/components/icons/Obs.tsx b/frontend/pages/SoftwarePage/components/icons/Obs.tsx new file mode 100644 index 0000000000..d4a586ba03 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Obs.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Obs = (props: SVGProps) => ( + + + +); +export default Obs; diff --git a/frontend/pages/SoftwarePage/components/icons/Obsidian.tsx b/frontend/pages/SoftwarePage/components/icons/Obsidian.tsx new file mode 100644 index 0000000000..400da29c2e --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Obsidian.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Obsidian = (props: SVGProps) => ( + + + +); +export default Obsidian; diff --git a/frontend/pages/SoftwarePage/components/icons/OrbStack.tsx b/frontend/pages/SoftwarePage/components/icons/OrbStack.tsx new file mode 100644 index 0000000000..dbab108dec --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/OrbStack.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const OrbStack = (props: SVGProps) => ( + + + +); +export default OrbStack; diff --git a/frontend/pages/SoftwarePage/components/icons/PgAdmin4.tsx b/frontend/pages/SoftwarePage/components/icons/PgAdmin4.tsx new file mode 100644 index 0000000000..0bdf6a04b9 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/PgAdmin4.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const PgAdmin4 = (props: SVGProps) => ( + + + +); +export default PgAdmin4; diff --git a/frontend/pages/SoftwarePage/components/icons/RapidApi.tsx b/frontend/pages/SoftwarePage/components/icons/RapidApi.tsx new file mode 100644 index 0000000000..f89b8ecce2 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/RapidApi.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const RapidApi = (props: SVGProps) => ( + + + +); +export default RapidApi; diff --git a/frontend/pages/SoftwarePage/components/icons/RoyalTsx.tsx b/frontend/pages/SoftwarePage/components/icons/RoyalTsx.tsx new file mode 100644 index 0000000000..10b3c32a6c --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/RoyalTsx.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const RoyalTsx = (props: SVGProps) => ( + + + +); +export default RoyalTsx; diff --git a/frontend/pages/SoftwarePage/components/icons/Shottr.tsx b/frontend/pages/SoftwarePage/components/icons/Shottr.tsx new file mode 100644 index 0000000000..5b9d66639b --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Shottr.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Shottr = (props: SVGProps) => ( + + + +); +export default Shottr; diff --git a/frontend/pages/SoftwarePage/components/icons/SplashtopBusiness.tsx b/frontend/pages/SoftwarePage/components/icons/SplashtopBusiness.tsx new file mode 100644 index 0000000000..a304c94d89 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/SplashtopBusiness.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const SplashtopBusiness = (props: SVGProps) => ( + + + +); +export default SplashtopBusiness; diff --git a/frontend/pages/SoftwarePage/components/icons/SplashtopStreamer.tsx b/frontend/pages/SoftwarePage/components/icons/SplashtopStreamer.tsx new file mode 100644 index 0000000000..a0bce90ddb --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/SplashtopStreamer.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const SplashtopStreamer = (props: SVGProps) => ( + + + +); +export default SplashtopStreamer; diff --git a/frontend/pages/SoftwarePage/components/icons/Stats.tsx b/frontend/pages/SoftwarePage/components/icons/Stats.tsx new file mode 100644 index 0000000000..16a0efb5a8 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Stats.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Stats = (props: SVGProps) => ( + + + +); +export default Stats; diff --git a/frontend/pages/SoftwarePage/components/icons/SublimeMerge.tsx b/frontend/pages/SoftwarePage/components/icons/SublimeMerge.tsx new file mode 100644 index 0000000000..b7742f8326 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/SublimeMerge.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const SublimeMerge = (props: SVGProps) => ( + + + +); +export default SublimeMerge; diff --git a/frontend/pages/SoftwarePage/components/icons/Surfshark.tsx b/frontend/pages/SoftwarePage/components/icons/Surfshark.tsx new file mode 100644 index 0000000000..c279dab2f0 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/Surfshark.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const Surfshark = (props: SVGProps) => ( + + + +); +export default Surfshark; diff --git a/frontend/pages/SoftwarePage/components/icons/SuspiciousPackage.tsx b/frontend/pages/SoftwarePage/components/icons/SuspiciousPackage.tsx new file mode 100644 index 0000000000..070c316835 --- /dev/null +++ b/frontend/pages/SoftwarePage/components/icons/SuspiciousPackage.tsx @@ -0,0 +1,14 @@ +import * as React from "react"; + +import type { SVGProps } from "react"; + +const SuspiciousPackage = (props: SVGProps) => ( + + + +); +export default SuspiciousPackage; diff --git a/frontend/pages/SoftwarePage/components/icons/index.ts b/frontend/pages/SoftwarePage/components/icons/index.ts index 57e7d59b56..07da5ae769 100644 --- a/frontend/pages/SoftwarePage/components/icons/index.ts +++ b/frontend/pages/SoftwarePage/components/icons/index.ts @@ -77,6 +77,7 @@ import ExpressVpn from "./ExpressVpn"; import Extension from "./Extension"; import Falcon from "./Falcon"; import Figma from "./Figma"; +import FileMakerPro from "./FileMakerPro"; import Firefox from "./Firefox"; import Fork from "./Fork"; import Front from "./Front"; @@ -123,19 +124,24 @@ import MicrosoftPowerPoint from "./MicrosoftPowerPoint"; import Miro from "./Miro"; import MongoDbCompass from "./MongoDbCompass"; import MySqlWorkbench from "./MySqlWorkbench"; +import Nordpass from "./Nordpass"; import NordVpn from "./NordVpn"; import Notion from "./Notion"; import NotionCalendar from "./NotionCalendar"; import Nova from "./Nova"; import Nudge from "./Nudge"; +import Obs from "./Obs"; +import Obsidian from "./Obsidian"; import OmniGraffle from "./OmniGraffle"; import OmnissaHorizonClient from "./OmnissaHorizonClient"; import OneDrive from "./OneDrive"; import OnePassword from "./OnePassword"; import Opera from "./Opera"; +import OrbStack from "./OrbStack"; import P4V from "./P4V"; import Package from "./Package"; import ParallelsDesktop from "./ParallelsDesktop"; +import PgAdmin4 from "./PgAdmin4"; import PhpStorm from "./PhpStorm"; import PodmanDesktop from "./PodmanDesktop"; import Postman from "./Postman"; @@ -147,20 +153,29 @@ import PyCharm from "./PyCharm"; import PyCharmCe from "./PyCharmCe"; import Quip from "./Quip"; import RancherDesktop from "./RancherDesktop"; +import RapidApi from "./RapidApi"; import Raycast from "./Raycast"; import Rectangle from "./Rectangle"; import Rider from "./Rider"; +import RoyalTsx from "./RoyalTsx"; import RubyMine from "./RubyMine"; import RustRover from "./RustRover"; import Safari from "./Safari"; import Santa from "./Santa"; +import Shottr from "./Shottr"; import Signal from "./Signal"; import Sketch from "./Sketch"; import Slack from "./Slack"; import Snagit from "./Snagit"; import Sourcetree from "./Sourcetree"; +import SplashtopBusiness from "./SplashtopBusiness"; +import SplashtopStreamer from "./SplashtopStreamer"; import Spotify from "./Spotify"; +import Stats from "./Stats"; +import SublimeMerge from "./SublimeMerge"; import SublimeText from "./SublimeText"; +import Surfshark from "./Surfshark"; +import SuspiciousPackage from "./SuspiciousPackage"; import TableauDesktop from "./TableauDesktop"; import TablePlus from "./TablePlus"; import Tailscale from "./Tailscale"; @@ -273,6 +288,7 @@ export const SOFTWARE_NAME_TO_ICON_MAP = { expressvpn: ExpressVpn, falcon: Falcon, figma: Figma, + "filemaker pro": FileMakerPro, firefox: Firefox, fork: Fork, front: Front, @@ -322,18 +338,23 @@ export const SOFTWARE_NAME_TO_ICON_MAP = { miro: Miro, "mysql workbench": MySqlWorkbench, "nord vpn": NordVpn, + nordpass: Nordpass, nordvpn: NordVpn, "notion calendar": NotionCalendar, notion: Notion, nova: Nova, nudge: Nudge, + obs: Obs, + obsidian: Obsidian, omnigraffle: OmniGraffle, "omnissa horizon client": OmnissaHorizonClient, onedrive: OneDrive, opera: Opera, + orbstack: OrbStack, package: Package, "parallels desktop": ParallelsDesktop, p4v: P4V, + "pgadmin 4": PgAdmin4, phpstorm: PhpStorm, "podman desktop": PodmanDesktop, postman: Postman, @@ -345,21 +366,30 @@ export const SOFTWARE_NAME_TO_ICON_MAP = { pycharm: PyCharm, quip: Quip, "rancher desktop": RancherDesktop, + rapidapi: RapidApi, raycast: Raycast, rectangle: Rectangle, rider: Rider, + "royal tsx": RoyalTsx, rubymine: RubyMine, rustrover: RustRover, safari: Safari, santa: Santa, + shottr: Shottr, signal: Signal, sketch: Sketch, slack: Slack, snagit: Snagit, sourcetree: Sourcetree, + "splashtop business": SplashtopBusiness, + "splashtop streamer": SplashtopStreamer, spotify: Spotify, + stats: Stats, "stream deck": ElgatoStreamDeck, + "sublime merge": SublimeMerge, "sublime text": SublimeText, + surfshark: Surfshark, + "suspicious package": SuspiciousPackage, tableau: TableauDesktop, tableplus: TablePlus, tailscale: Tailscale, diff --git a/website/assets/images/app-icon-filemaker-pro-60x60@2x.png b/website/assets/images/app-icon-filemaker-pro-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..46379e22ca57674fb8817d2fcdb41e16642f62f3 GIT binary patch literal 4948 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 z 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 I5;qC@Kb1{%WB>pF literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-orbstack-60x60@2x.png b/website/assets/images/app-icon-orbstack-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b549f0374a7a5489939ebb593fbebe0f1f5f4201 GIT binary patch literal 17314 zcmagFRa6~J4=xOB+_l)oDemsB#ogVDyIXPHxVyVk+*@qpTHM{;;k@5}@t@0ck$Ezi zTx4aZX7v|7|2J zv}G+76d>sSzD{QneX;-Nhu zAVeT!B}CP|ATM%lYs^b#cu)ouwg+XIuV#1g}l4m4rQ&XXv?L7gqz1yvZ+2;l4FP|>ns;aWT zuKFJN+#Me5pK2dDqKmq^lrDOf4Q(%4mvwzF{2zHW+EPN?3W5PBKhmQ}i`WaQxoK(vH^C?)n=Uywao=pHf%noLY7E9=SsY1)I{LcP5>rjMC(B7D{Eq zz7>bl>Y>-QKAaogc6QNZF1%bupR1csf3z9U+1zE1yGx>U0NQ{Qx?jxYwy_4uu{y4u zq;R`?jIR(uqEp`Sqxj?I!FxhySdf-Yqpsz)dR?3r$Ekr^l9LqpL1|-NtKE+UZ!Oo; zaU%z9T^qM2ZNmRvoaVlq_ecGw=OcQXT+P>sz9ib_{nI%-(opR=9(v_?881qVQSw&# zaNrp@xBBVeH!~;d=2~Tv7OWd4xFE_@HpAO2oW$)Nugmcxc}|jd3|$U+`Z<|zPTYvd zg!Fw5%0GF?B_0hVy)2s3b^`Uy_+6+kX~uqFn9?CFOzbPB#$1av*xJR3gP5YIpK zSeKc!mD+S$WSPF_^L<=)U6oR-)59J6ZD-DcJbyfq*wAr=_g(Pdd-{G;INM3B2n4(n zc3l10N40;N99G@*6s{RtwYxLwa&_dA`wzsdC zIRB0Qi7rXkm^(ysvg)M(SNr(qdxUfumqD5hIDl@G$va8ttruq_@uya3RXfUBiT#t# zTUHwL3p%YwYb75Of8P?JTflB=Jgje2>h5IDS3PsBFq^jiGtR}YtrW9SRD!Vcf!5k1 z!7Rd=TrYDYlmUB0{y7Kgbq8Fj+x)b0l&!@Gy11e9UF=l7V^Rlz-lE_rA&K>aw}Y?$ zo^S6}_P4$!+|P}E-R`S!Ke3RTw-_Xn6tSt*5Zh!Nbzhrwo4h)uc1c36tZ(Qat(@Y% z09(4o2pNO6m&>;Gv|0m)c>uKni2I;!l6a_vVI|E>mUt!ITPcp(hyI9f@Ak1x_;!3< zO!2JkkyTIXpOJvub27o774;u38L=isP_S#mwoX}Ms#@Y)t6BX|bgii}{O8XyrMfGy zh)j87TnDWFFp6y&ngcD8NberBFTdBG@JzeBtAL4g7GqL3Jj+)pj$d^V{OMR8Z7+sa zRO~maD=Q}qH8t;YHh1T!)TC-Qf~_2h4O zJq(U-hvX_A?R;yWwIFgVuI56u7-nbeH*B!!JbAsae*AR>lP%NaY1<{t(!XVkh0oX) zKSo)JtY!K2PmYcEaq-NSx$lM9|E#jy@(2&Rr|UcAyMSxY-Ta2(Q;&KlHJ zGe^Sp>zRrZf>+wYB;jqYc&kxt2Q?hmr|*=nVAgV=??6-By8l3dWH!e|j^esfj5d~|NgY4W>+#KIz5nwN$#0(8Lw}rd z@5>nY5~Gh0dQcrP|2yRY2Onlep^yLzL8`UmGNAK~9cOtsB;EV>vExZ~6C_#)tirw- zQA7C-d$~UY+&^1bxx#P1*A`dl!wrb0D7wEo;-=JX#{ea{MPFR|OE*gM)Cz;msObh4 z8VN`O*h3kzxOu*>?!wowu@TN9s(k~7*?Xv z%$f!vJ3mQPoX9b1iomc;dsYodkF)j)As#fb(-CqHTYTJBAai?+JGrWRgu|1WjsJ5Z zVDJPRm+HO7bf$HdE?@na-C*O!r8~X%@fn8~Qp9NS3+L2l<1t5U0RQ}H9={`hD*A2D zdgnXQWY>6=_9}D|lGFV{rf20nn!8Oyb7_}LkZ12*?#AZ&HXLJaYM~-y3LUM!9;%!H zq;IRZp>vky@(VZE9UTb)%B&zkq2pUCnu8!rwzLcCgspvUp?4_Awm1$`YJ4y{h2*{O$f z=$<-FCDzfE$k4d+$i=#f%@SH3f6u?>3{cK7!HPQ^Eom*K2+@NV)01Dv*<0_2`LBPd zg;<*bE$s@O9paUDa(z$ho_&3NO)M zpzj`KG1sMG132C2wb%1=Osy}~{%!J#4hlIj z(m1bMhkH%5&+vPo@Cg_Ez!rmWw)elT+~D~>-%5R6&r*h;StNSeOlU;>`l$8D<3-5J zSJEV0?ayY`kA7TyE>-bnt!ETuLDKQ;cJ}e$CD-f&@?|R@iU$;Y=fPnV>*(N zF7tH2z3z&ScP((X@n5ylmR5Z2RJuj&mVcP@v#B+5EZJ=I8E2oQoJQjBd`o{^)HyC+ z=--e4-a(n=vPZNtrTX;x-Ugj-ige`N4!yvD3ZujH*7j|914f)x>QJAoSv|B-iK4i) zbGEak(4ga;CHB02Sj9@&)JouWT;Jze-;}`yqqwcp6V3Tl(KDTS;u_ju-_D6fBu zQGDH0YH&_aJj?A2N7WA;Ge~o8u!tgm^9JwrQrMx>x8PsD2T+L1Lh>K6?i;`NPl;gc zXneTr>K%c{PdesECg=(7_c=cJ9;t$udyFq01;<^os;|84p8`1T&u9Jg zW+sjx-UP(3K~pSv`wtUF}x4B1+8nZk9Yh_!>=b6j#F7A8XTBrO^Qo{R9@aoT55S9D-A ztDVuCJ>k1Xw6DX~HRW@JJa2^OwXglYUOrxvVvpN(j95sl;jCaSfonC;jKVw|^OBiZ zFPFJ^?H$`^>CqBcOUS9X#x53|Jl7{$tp*oB(A!6aeG~_X!a~uC^na|S6MVJ0{ZMo9ULr2}`uaBB< zkvwjx(&e|o8mf4%Ybt`vl?BE@KcGW0pct~pf>%JC80o$6CH{8oZP2Al*dmD7%qMcR z06-H=@pIsGnLyp9?R7p?b`jC^(M-y8nXgRLDc);Fl_3k?*E zkCP&giv$LxT*;I@++`nB_Z9mOma6dHWT0y;Ffr~y&mts;kiVs5P*#ovMI?-pw@6VT zwg41#f99EopXGK@M38(t{=$nI_NRP#x3jS|>xnQYlShU{9Sxen7Rya$v!9d{*VFLBvB z+Cf>88a^APzCR}>Z3W;1&b-#LLow;3`YHOxbU^Y(h;{0tdMVj&i?VCos2pFPdU&6x zogKW7xWPKx8~CQTn~9>66Z(jKe%Cp0+%C$`<}d1kka^0r zjEA6)00~EmC33-u34*_+L?^*f!z@Q9{NyD~R+?RVZaP#RHtH&h+kC^mT^>1Tl*Sz& z(;(`H&(_&OeUS(%jAQaSpm|EmWaj%bi6rX`MSTDq)b;|3{YWI+EhpK916rz*iY=dc11cEfqs3O4HN zRO!9dvps0%(gF#x8O1YK^V6n_6AU`Cub~u2RbV*9)|*ZQ0DrNOC@goyUBQAUBCfUP zQ*Q}(}Ejgw=@DNCcXAg?%kYAyTtneDJJr6Soh>-9 zT-%dNk8=sV6GB!uge&;Zq*Q7+;DGh(m%D?qD?G=o+=Hebog$~Dlaj>ETA6IbNUIy6 z#>&oWsc07ng(lx8TPIyEKe)mEySM*_LR`#MhSOo}{bH+|;^NpV&N+>o90?X#ca5*R z6T-&+T3}S|U%-n1*jEU3Xvt>w>V%kQ{_7Mg2oo;R4l$&(+6V_nA1@S`=bmJ;xjk`xuYZ3X-{DYVJqnZg{pqTlw zk(b9pw=M^@^DBg(O=2t#>lnN7>%@Wg#a_>}WQdMPr3nbVl@NxiKRz`fLIM$-nAOCJ zGEH>=VH?tT^~{<%=_$b}W@W`A^&LkKkoq`VEvTxzYAs1~g#4Gx>G zNf$pWzMVuv9&h|kEA?vT584Qrc+7doSvGS6h60C<3?W(pccnijba$%GW4N|8q%^97 zhi34ySEhUX9AJA`7pOpShJgifq=aHFf*hx3S?SHF>LfJfo6Ay-`GgYoz@3iTkBQWB zZg48IO{Lz}y;S;WSkVm8myFJ8X}t&%ayq?3Sg}>z>|?{*^B$iK64bL3x%rUY(fgJCCvQ|$d9j%`~Cdjhq=KSwb9Bl>=cZ0`>>HEk@F3E?k{molOne=Nma4yqX$x#OMd4N#36J zenBoxkoe2BG)7RbXN#Ex)h544eB<>90k~`mkx8(%usjyY;$g?WF~!x%ROXqiDRLM} zhHI-3LOGB)1*TeZM#cdvmfWIoHij(aG1t;PNHMUX9nrI!i?RT!q|5_fxf&JWm(S#q zX>SkbLYZUp`g`%kZD(?iiz<8mgS*~%w7YODa)841HWBC3d0VOlddKbyK2HL0)I=ON+c2vN8z;#Z7??4 z9GlzZY@uBz$VnHXaU)Q76j?Mx=3GYC&WE5=++V(G{pT%(dn&k}b2hz)3G!_Me~v-6 zZE_tw5#17GF8dgyl`xd+)V@XHV4qU&Z`vi`)vh-MToT6~h{$^&h>1PLzqD4S2=bA7 zQOG{UhXLYCh-b8k%dGVKX%Ij^HJS2w?S9t|-A11YafR=W=nNj<9 zb@T#Z1$~G3;jUwhFj`u`OMza$^ZOBS)HeQ5F1OM-CVRvMMJkCC*soQK6u!TORGk-!S^-Cnx4MPdyQ!m8us0z$d?lk3-?q2TgG)Q~c{(uzJARMh% zj$eL9ep!63dBIzSrN9lO+TfT7$6W`2m}q(fU@DVmRXT~sqT%t*v5 zC%$Ao+54r5>+S_U^f7|Sc>YO&*XH3qj1-%brtvEdn|3>5LXUgI;$l!!hp$7~C&ZpN zHP6cJeO*^j>#%4m*JFsVhaxfyJ+jwQft^2y7|a$xA2f9y^~+q}8Y$rxS_tz8CtQf|mUk$E3%l_q1V$ z7srl)zZTy?N-Q%;!)%Av;|0-h zN}BR&-3qgziIWRZ>O$4)5)O#rL~cEx;oz4#iN@3I%=U(Q_e2jWC`vS4qpGLYGfuG2tQqfCuNlIDfo8Yy{c0D+G9=8k=lK zz8=@dZ|2Id$dX*A&D6v+5gdJNRKIdoz)Zp}iCY$;5U{gbxe@SMx$%TOj}_6tfeEB7 z2n~L?|4}B=$F#<2RjCqhUv;;l;*%XahfyNl`3^x1xlJTIRna(#an8TkeobjY0_yz+ zWL${EV!2D)P%)|45XK1Nhpja+%Ozq7PaK{;JGD?C8s`mnjgB>hb>puITq^cj!#@UX z{yd@$fvF^k{O@1Usij6}ujQ=?Hv`{XC-{L`(>VS`V~eHdzQ&d zwA|8c1Jc}!3K(&NuxGQdGyw-oa@189=j`*xc@R zriyCHi?>H5y^ou}xi0EEeav*04a??)`r|hE8MDSM91V9r{rJ@xrG4F@(-5~uDGjGi zdcPOPl~$U<1@(MMEYVi`FpMis4%aItz)Cp_AxiN+K*6HH63?2e zQqw)74%+`R^BSM2A~a9!ynwF4AC6eo#g7~!zP3lfhqo&dm2O^YgF_C(ujEq+Di6AT zbWqHUpaX)mHT%(f-BW@;RHKOV9Bz89e|Juu_ah6sI6kS>-a2N{OQJhkvk5qf=MMp%A5raI5c3G&@XJunXm4^N}_ zf`e2Q@zlDVp%w|PoD5*?jek-=Rfv1F8$B>4F#Y@ySu(+{e{Xl%KEsXOGB&&ek(GxW z^1c7)!$W)0^i%?pj9$cRt3W=s>SpIV)nV!N+?nfJIX~1a+JW&JC!*Vda_pKQMO)FJ z@xNuvM#hm@PZad=XwDzldZf_SRZDHx=VRkmGVHuTApGxcr|hqly0xp4H0Vy4akqBZu zFS2fs^Wg$VhJINict7NI^!m;)b4&ZMP>FVEXPY+BKFwiuG^EPo^WIZlvRcXiXRTtU z!wH#Z)qM;w`8Xko1<(Gm<+uBC3*^DGcwAjD%l?1%*v>lKk5XPL6 ze%$>PqK|;YCl#g%OJrGp+ZG#-gvckY8ZUweicM_VlIZ)`j|p{$ovg_MFhQxMcWa{T zu6PMvdi>bVbW`EXv?}{ZCz@lbGs~*NQ81#CC(;a?NzHPKh73Wb5Lsj+v`yTfnW5N# z|Ib9PVy-|gn9yVh73eta9c(B&n{`!*a2NNMV*gwQhLC0_ynleToD_p%r=@vGF+XoXnO5=4Qjq zaN8Fo%#b{g*5@SclJaITVfK`dk4>E;*W%xu{sFepi$d~7Vd<)xP&tF@9+AzszTm)$?loaL z?Z*oXve!xP@O+XhoUj}l8Aiw7q3)W)(66X6e2GGX;E&EDZ7g}N6ElOGR)O?0aK*IN zV=q7*akKm>PsV|;>J&YZU51ay&fhOnAF5GVL`d1%zK_gfTVR6DMC55WPf#uu5r~gL zEwjgu7>O2*tsP!9JZNkp%c)w1hEqLnd|>IJRjkI%#CFriCmIyS>=Q_C&53Srw+=5T zkRrN_m+1)04U4P6BP|h}m=nAb%h#T2E*lJrQ*no&PpaCDaNxMp7>l6>?NCY~!Oa|% ziG@r9D8(f-p%HV&sFUMoD~wi)j$au_{!6Pe=T{hW!$UQx#^?H^L~6z{N!el}2iBzE zmL_}(+3pG_<48lAZ|1KT+;<4^_){ItsxN`SPYvpu5SmvsO#f5EE(>f(Q#nx0kM*G; zZEzFHmPV#E%hLH@?;dVrd)#j7AvVTP>ped53PkE)sJdSGx4f5a72NQn26O1Rp<*KM z-6^j%Gjy7a7FWO>fUXps*9|+tKXB?4f`Ilz*0{^yKCW@iMs@zW3eu5YPwlwAdUr9hG7ZNduOk%0ER+l1nz zY@wn1>+P`8@Ix(ep;7qN*!5(%GD}XsFJ#Er1E_O0DPx2U-&5DtYCR`+$#@;;4E`)p|6qzjz!HaB$DGkOYmI7lEbbIjcNNmj8ct(S9d(iz; zQR1GgzoCbnx?lg!aXvN$%^o1Tzz+}LMIr;SLadj705> zq~aBVw!j-zQz@S0)Ytx^>rIa~=AJ+LFC4mPM#pv7OL4jgOK)exmY@G@I5uJA!$xwb43I)^U!VaQ3(P-sG( zsc}~6ex7FtNn*RShi;~m7{MRv_Uu%!XJ$BywK0f>pB=hzkN|qW zJ|Z!H-Hs{afimJ>ZX+QiV$oCyF~<){D&n2Rv!D;YwfoP5PM(*)Fxh5V2RYq!^{nTh zBDl|+)}FrNC?Yq*9aCWB23X=vCOF1-qcn~|`Up4$1?@j|?1}LBN@%oruS1XHS$;*2 zMh3G+yMrTg)ZM?#WKve38&-x8%#Vreu}6Fw#8=8f#tbCV znbgXSnEXaYCV0$UsAJM%6|k47!@R}Azc*x#<*?~G84SNLxmGjoXjDR z7{T`%mJrt83?eWK3WlC#&g&Gugb?@!6k+o@nYDzV-mdPCM;xtN8zRErx*%Xr1oX}# zxyT45^30KPzmHaLGIUi*prJ-}W6#v>%Ld`mVTr1NVB0~66xIH^S_&}Fx%2X<*I~?l zkQcnA5r+iOEI^H+CS}&C{$!W-wnaV!0Lf9b5}t6%E~_rDX~}vtE=k1HI5Upb=U}6F zWWqY`y($~xP`KSIP1j{!shyXO!~;_9_HZ!m>>x8DdKQe82%bXt6M(>5Ic=WSPX8r6 z9d)&l4);Su@2=aOlSqVVKXux~uaCFpv-=!=Dm*a-6$cp*uDE6!usR6M9`L6mBXKlD zoCjfyM^$FLWCC9taomBAEAS?gbNZerRR#J-P4lETr)8@gO-yh5!r|4CMb99M!yDAH zyX+_cXsu1$nJG8JBxUtjy>2o-cldY=MlI&Edf?)kMu-&XSRlT91lEw0shw~>+f^1;aBK5kb)cSePdVFw&&P}k;Czf#mp0qgU-JLjp zjUB^~toJo|l(s;Y4WoU_IYkcSk3;vrVrI4sgD=NIK1w(jYMlEF;*J{rxeqbcjF5?~ z#f#gYC@6LC`XiS+X;VuCO=-v2jl5q3B*Uw%T5w;OC`8z35Q!$W7rKyCa>`%6-4jT! z-S%G%)>fG* zPz=G5XOcPp_j&?mg$3wa;*aIpj zEi*<1zn96-nR*~!=E$O0D!LoRqXYx>>Fd+5&=8NzUX(#w=8shsA)dcEk=>$gRtjcQ z-@0O#u)3LSG;Grc5F+KFXh-otY?B>wPf97cbZA-G8ZAi<~1p94%ZWz zx8U32;r9Z9bm}NWL?>iMKry4G?}V2Fi4M6oF_m1-^$uj9Bx$cg2?_3<_KNZ2GZ&() z*$r9xwfYW4Q`zQkNsg`g?;;b`*kpD!R|FXa@}C1))%+3*n2 zDJDZ97knhC`jW=1dP6h_Ez>b|L^XP3J z#PH@V9}V$bX8YMLd-$2E`WesP5|!@b?`MJ^rlZ5d;azR44A{k_lGdJ4=o$yNcWz5k z7cP8qJ^)RlI1=O%2!t$0h~V>Ul*Vm0^jw;VL}PPBIyDnbDDZJmp%Z4^3}f6Y$Yfv< z2z!~IrlBLKyW%7!bu_3hkWd))jVH)DRn3C~ouVk{2@vX!H=f}EF+uhM=$d|!bO5GwF6E>MUGYeU?5I$=V0_XlYT2o|`Fh{D_dLJteWnZrrS)%Y&>vWZPtYt41ClkS z;odI%(Z&iHWehAJRo0wz$n>Fva5HU_S;gaJIj!J&c$V^*&du><904afLLOVqtt5_&vJ&GqY&1o&YN@#ty08Df}gj!s8N)aYYq3|UqymN2j!ea z$Sg1tghg;Q&+*Un&qWWVbciPhNOa~N)WV`meKB?xLRFqnHfadURRn+L?Ujsy$$%gp z1a8<;q`xD_6mU~83|FY@sJWjZj$zw)P(f!`2V)uc1GCHu6Ib1VJEZW7WY!hRY1`T<-xMC(Z&6QsfxQwhsHBg#yg0@F5nXAAPVbpiK- zwwH<;Qil#~tYO>=o~{TsDsPSooxMJB{WbMLP^Qvv!gTztxaONY~<=rfJ(~1y6f(IZbpcKLP}mq!{v-bLjY0<2VDtDQ5xezOl1it02uBb zcrGA+W79euqZU*faas+k%WhYN-cW!PX^;{ctf6^as~mm@@)4z1tpS}ibSOmn8MScu z#u1x+=G{NZ?4d0t{BVP~`mktx`i9Ean>Bw}itm*cPT@^6v?`Izk)oUqieS9b(#M_^ zU0&DsK$zt5w{FQI{3 zD96Zuz`?8Va7BAPL6RS&!>447lBV5tQH5Jr^Y(?`Xg0Xoto(crV_M2uf~&$S>)!L2 zArUKAvu(Ctxn(i(f=c{ajz~?}D_$z{HMe*RjR3x~Xo{hB#Ul$GChR<{jfE#c_|kP! zZPh4dM|q_18s&RFv#3ligT3^7STO3hRst9jx&~Rp{6DE<4}}TSP$(yhj(%>r%&9~a zD}=fIYRf7X&e1eJ%{iFmMxDAMenzU0K-zH{VO56Kp1T4v*Pqsi5f*at_FH;tr*+Da zX{Ewij!F^>&SsvPcP3yUYu!65r3d-pg^IWtN-A5@GQ!^$c;z?gC}Y!t(zM?EpV)hv z{0--`l*bDEZi17Xqm5$*gC)DdwRifDhujb9%+?U8j}SYxy8w)j&^ec^>HahpCJ({i z=nV*n%I|t1c%-llXb2q$u$=Hy>S$fRF7<>L8RNCtzH#|aVivG%<@Ueea=d|#nUf~Y z9=#NVN!`8m`pC;X4|V8zp!cy=C3O1+~o0^8j zF(i0s@tW9a>Pn@34(5(Z4L>f09L%X3hC>;NZM@Q;fP-e$2Fhhb1k z8u9P#nHf0T0)#9zwi0;#a)d=GG$M_Qx#yY+jF5Ni{!s)817(w%X(>>r@S5NRO2S>1 zIFbR8FWOT3!{xG?Ongm2@TRrxMCk0&hjZw|t8m8}M}I}}yEVc6RuP}!30JTp&{{t{ zR4fRMQfwdym#ud=wwr~rQ3W{ae(<3PYW~*9T@XjL7RasT4&}Ddp45Om#WV(Cz#-#y zJ>i-8!RC&wRKrJn5Bfj?XV<6QoHUnTPp<~iteyvWGfigY&E7wni+Ei z*xj0%9mkbi_l#lH|HFip%inkMMa?9aC>J;28@X3eG7w)9Z`jzSoOFDsJLwWB4!@ zBXgOh{-`YGisc$+9Y8>VtQ-pexkc;NqT~kb=MR#ifyaO=Oyn#r3on2~0~%*p2!2Km z764z%0#@eG%`_kMiTC3^dnfcsN_Cn57|O2TJRRqG;wZ zijG~>ji+g?iY72cFX2_d{q2zuc?T(yz_y^71DINUne?~0^RfwpFpAWofthsk6sO+M z5QYqof(RjL&Ed@^Mu?3&vs}`*AI$JW{I*d)Trk_+Iw6sZKojVkdm4 zclxw+A_}VkJJhT|ev^s#6d7N-VQ^8Yc?mK6M*?+hQ8W>t0`Z4tVwH_k4um$3_?jpl z8aAXWj5xR*_{DdwCWU%1$y&eq?*^^4#hLeAk90Di=gM7%u7_4@!w1s&mdU3nya15@8{2%bKe( z0cD_iC3C&->pzbUpG#{UVb9(P+t(KmZ<8gGr!@QK)0OGa9O;7`WKAD(&SgeDwit%M zb0JftQ-)wIKIMo?{bq9LNJyAhsunv6G&SEsx%Ys4WULO48-|OuTy>M*V14}jd4rM4 z13!t2Iw$6w3l1}wcE{JyY7tI1olG`-zZ!7itR79<3eE6;mxoR zA_VQ-iOZ-(3chew;Z<^cLPqS}fh`KBs2MHcM`1e!1 zo>@{W(%+u^dzxER>1c1>32Ee&6yJJ_uoSndkeAg(3jRCPmc3-gSnRuO2DR_vtHd3A zI-3mX-6U>IMmM7==B*=n_k&oOaguib0vXogLV%yn?NPKNNAYe>RUd+;K?U`Eue3i~#*ZBK;hlR&EVRH(O)|5^Au!9Rbzf~f zT@PNteTWYIbm-4{l(37%2*c)6H5xUrol-|D`LD53WcwQAoP7C!xvh9RWZO+CYf@C8 zIfSgBj>Ie&K4_ygntg@=BX!WreXLYx&{ePh{*Qf?_N-e30}3#Llx;V~Qx~_!8{n16 zcl2!XF6#hvk7sJ2XmhQ3a;xUm1FPbG6f=(qCrAP?)8V^wDki6>C02KHf3a|NcL28g zrCm3|mvK8k1jTZG)&JLm1p?rI&6xJB2U->a=U4mc)&`GSAL|)W!SC-)#iaE`#Yj1E zf2<-0sonRnGXIIQlZF|;7Qzu)1>fQ z(qt}z4xm@HbG&0d=a#@v>8<6{;Gow`>M^E?%Tp2xMP$yg^e!fjfC;1;=o9+rPuY7TMP8YNSgp>mT_f$6@vRENlTkO)8PvuYd4Ts?9a-Hm)ZGzW9sN|=%scIG~Gh^!!pmZ3r*kLOMV!3COnRU#zV3*oSY9oJma+~^m$#uEpe)#u12v+@*CbLrt zS=HQ5pCHQlmT?oCE)&wY^0G%NbVAYDu9zY{*;2`XpS|KJ-Cw&65s1X36V>*sLaz@@ zE#`qfX#)D$3s8RhofC|&B;jOtI%#{z{PS=+U2Viou!i;I3aZ=5UT@fF9x}tSm#g_dtplF|3)*|Gu`~$fIGMBaIQ6Rur zAkL+lvZa722~0qV7S&Eab48PuYF3)_;hKAU{`L?)!OlF2n9Wvj*t)vg4-;~l&aGj^ zYy4=YZz+VzGFNJ}Ixn0lVUhF4zG}YCKWFuL{Z0dw#+0d5d`LKj*ztizi;@)T-|=b8 zr{6BMRKOxp`RPyU`tP=e<=*snat9@!ThR-z;)jv!7Fc&%F`X|e?iT=!{y~~eO|!!Y*h<7 zu#^=DE)z>DbxhTp+JW66!?!06b14e)7<@MuLZJ5ApH9C$kC;lS4s=toI<<9bEG$H2 zTk;PxBh)F};$_d*sRw)WAi490?(9HsUdq81A^iIH{7uFkgZ*2kL45za)e!YO(pLPy zWgo= z@4v*#B)hTR%KWL|f=+jlra1$1vjXPh7^&UM(fQQlFkzreQuag!600bbXG#Cz6fVWWfX7 zR=s(*CoQ1OXX>d!tfzC`VqB!}u`FJHVbK1Pi6`kMGHz6Q?+rhIr80KRsNh5@Qd3i{ zHg9mh!X@jABQH&XbQI>AZ1tqD#seXgLIasI#%>cb?dQjS8KX|SoIZ*B5`Epza7YKc zxJ;?DhZc-TguA8q^a09VmbQoC6z0UU5S;iUL`&uI_vGY#Cn4PoF#D$czd_UJk_)#E z`yz_O%O0&OXHQz-+ufU{&Tf58&>2W*^cfd)nQ~TbTiRCiMB+ZmK660~Czx|TkQE`w z8X#*X$l~#@Dn6((8<8s!gHF*NbSxqsVqK#Y@ES7R$ub1DF_qLW{3>^~^_*jQl4%2Z zN+S@@vhM(SwScjQL{jMn^(E}@0{oGjF^tdbcntCC33(5OyNvIZW zj;vXq*KZ*c#pukWH{+rM!wt15&M1zF)Gd11RHP;0#{50rLF>r;d2?M=Cqrx0NT@D? zFXlCw`J>5SyS}662Q}o#u+Zk=4k}uA_uA9MmhXP-ts?Bdxa5B#?2yUecd>d*bJb+zO$P;=OlL?d zqkbc+taOY+^~)ZgW?+C*oxabmJnt8+pp4H;)#q;b6iSQAp9BG4t~+p>7mVGR=>M z6)dwqqzc1=`1NutOgXx-jWG$Y(1c9ECL0SL#tYm_jsYjfv&DMp%tne_=!cYcailju)D3C5IHJGgw`zNS{oUhyKDnfE7m4Sg4^g#1k#lQtUq=Wlo#2M;osk z`90pa{0KgvP9OivOtPr<7pzNAcS^{+{2-%g)VM>h$>zrgsoH{ag;KyLJ}?@Im9XZ` zllOO}Wgz>iJ|%3xq-WH*g`tiieSnPUJZH|wSHGqFo;&ax$9${RPOGP-;7(p{Fa8oM zZ#4kyY%wn(oWf#N_ccF^hPYRfloWM(Mrdo4a`Pew$6lIAw0(avzs8&&_~=^ibDUkv z;v)y(4jCAhsp1ecHojOfUcE<~4<+cQ5S<<(zJosf1Wm=Ty|C|}zd^m_O^~cn`yCp~-J0+E-+BCMKOSlUZ)6muzQ&TCksQmn zqQUpUL6e@=F8xET`)ihx)#aDq?m*3&$t4rrn%u?oLJc8D8panOz$WjGCDqStymTufzKpXmZ{yYJ!BhaS;j zX(k({lgGFa9iEJ8x^DywRC{ELjjLN+e z)=MTo8^}~@t4I*S@{crZI9q1+*AJwZ31mLy<6p^~+u(s9s`+~F`{)w>diuJle=kUB z{*@$fpU{R_fNo2>NKU)<^EOBsIJb=5&PpnhO!ch(7hcfDR@QzM_%l%Cwmu1K5a+Zb z-P0g~>%aKVxI@}VJ!)7S_)PCc0rGnOE1w39%wXngSmgeHuQ2ZZQPK@A>X`_#mK>z3KootsNE|>~WdCxP5 zHKXTyxV*mW!TGPf`;hv#0L3ZQ{@>8Zl;QmNZoebc%x#fhJ?5w!en;#SQO$Eio0ScB zK-6o3uYIbqii_1ZXH3L1)LW8S@Ibk|B2bAw`i*Hr`DKS|oh%eKq^yC(h$)Q+9ndo@ z=3rUt`t&se#UpssLUvB4M`d59m<+-sc+RiYzefRkJ$>)>y%iNT?OeW{?mMd_Afk`L zq1-!Wftz)`tr%_6u zHDMB7OsZWqRdG#l-2-beb-|4c<}j9OtCPKK(*dKhd9qm}sCUR(uyy>O@OSICFcV2t zjQii&GJ?G-wvhsos}qs5Q^7h&<+D*bi{azUC%NwB#!0Ky_B4v(M-)%?!$JNyf zZhqhp;bwzjrLNZ-y`qh4phQ&ZTD#5b#$Qdzh)~ni zSY&Q2wQIPx?Ut3yXZ-{8R@Zy*TfF{2vGVTxDzQ0gH45J;vKAogBfeNZqh4zQrG)w1 z%IDN*tzXnW+zCH92AoR=K8b%_nAHbRg;9jeEw?UVg)nxy5;E{Tn9<*6tA zvc?}QyRnG1>U-Z;zTU4sH@8oPR()k*be3195|6p8{QAEtZZ#Sc-~9`n#UwK=VYMdt zb`chnhM4egoTbd?I(diu2KjCaDQ+!2kEPT8`?#AQ$$^KsC2LltYv~Km(RlfahL!LM zQ2(W(!`yYY2Awy)eIGGKy-uGeAR(_u6lqN~qCid`v+j$OQ~8K#KAy_amPGeODfB7E zSKHRDxuwDB-`lk0|7W6`JLrn*TfJ|BJ5wzyI$a`ycXF=jxuV&98m!s=M=k!43CsKAOeX;#ba* z&a-^;sIcwgJ<=Ju{SvdMaDtH;t5yTDqFlgCzdd9f~6 z_xTafRlG~XcZbjQ+mqg8&E~k^Rw%ir>`=xDBVKm(n_G%6s~uQU_>BE;0WduN7}x*U zcmL-H{eRE$|9rClzlLw!xz{tkKjjwJD_B3@eP-H6ubMZipS2H~SDtxkR_JPPSnVTM z6TvRmUiZQM-^=nn-!|HRT^9V^{*(GNe%acs^N#5*{}eP)&CPM`l)yt$tZ}OO{0c7{ z-zw#Y7MX2}c(1pub90P!;nt(4jRL}*FF!LKA z{Z2Cb?WBLbw*7E``LDEj-kH;q&z|xy$9^v2kn<@l-TvcZjOFq)Cw~jur`D%dGP^5& zU|g2|@;`%TM;slgVDD^Udt1O3yplZ!@{V#AGY~^_T8n_n!K4^t(r< zJpT`~H8!q&23J0}>FU+G7ZfKZCVD5%`&_eU+1rDw{{5dBASQm9^YC}es4%j|ir>*45yTStY}MD7bK=8u;`7%3I3T=V^YztjNAiE%>#INNE9ZOfQ2vig;oN+A zeXVmoetfXzKX4Pu?VF)~wks+o5OaV8{FsS5+`NC{*_qGP?q~FK1)Y!K>FVdQ&MBb@ E0AP{1Q2+n{ literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-pgadmin4-60x60@2x.png b/website/assets/images/app-icon-pgadmin4-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8060347f237c097d3a24f10f000ca31153680dcc GIT binary patch literal 11494 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 literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-rapidapi-60x60@2x.png b/website/assets/images/app-icon-rapidapi-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8122fa4af8621613982081ec89f9769aaf03db3f GIT binary patch literal 17899 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 IM6N<$g0yrnJ^%m! literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-royal-tsx-60x60@2x.png b/website/assets/images/app-icon-royal-tsx-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..067613503a0bab7eddfc31c9d8ec0d104dab6c64 GIT binary patch literal 10796 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 F{{!3gyKn#i literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-surfshark-60x60@2x.png b/website/assets/images/app-icon-surfshark-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9ceb40609224b495bc4bd328615139d877a2b9 GIT binary patch literal 4023 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 LP!z8hH4gnBSzdcB literal 0 HcmV?d00001

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 literal 0 HcmV?d00001 diff --git a/website/assets/images/app-icon-splashtop-business-60x60@2x.png b/website/assets/images/app-icon-splashtop-business-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..47fc4cb123a606420f9ebd663c73286e4e128a63 GIT binary patch literal 9821 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