# x1a0he/adobe-downloader architecture

> Architecture diagram of the GitHub repository x1a0he/adobe-downloader, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/x1a0he/adobe-downloader
- Repository: https://github.com/x1a0he/adobe-downloader

## Overview

Adobe Downloader is a macOS app for finding official Adobe products, downloading their packages, installing or uninstalling them, and cleaning Adobe-related files and settings. The principal workflow runs from the app UI through catalog and download-task handling to package transfer, validation, and installation. Separate subsystems cover persistent task and preference state, cleanup, and the privileged helper used for elevated operations. Several domain links are documented by the README; unsampled implementation details are not inferred.

Main entry points: [`Adobe Downloader/Views/MainContentView.swift`](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/MainContentView.swift) (Main UI), [`Adobe Downloader/Utils/NetworkManager.swift`](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/NetworkManager.swift) (Task Orchestration), [`Adobe Downloader/Views/DownloadManagerView.swift`](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/DownloadManagerView.swift) (Download Manager UI), [`Adobe Downloader/Views/Download/TaskCard.swift`](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/Download/TaskCard.swift) (Task Card)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App and UI"]
  node_appentry["App Entry"]
  node_mainui["Main UI"]
  node_downloadui["Download Manager UI"]
  node_taskcard["Task Card<br/>[TaskCard.swift]"]
end

subgraph group_catalog["Catalog and Tasks"]
  node_catalogpipe["Catalog Pipeline"]
  node_networkservice["Catalog Network"]
  node_parity["Product and Dependency Selection"]
  node_task["Download Task"]
  node_networkmanager["Task Orchestration"]
end

subgraph group_transfer["Download and Storage"]
  node_workflow["Download Workflow"]
  node_engine["Transfer Engine"]
  node_communicator["HTTP Transport"]
  node_artifact["Artifact Verification"]
  node_storage[("Preferences and Task State<br/>[StorageData.swift]")]
end

subgraph group_install["Install and Cleanup"]
  node_installmanager["Install Manager"]
  node_installpipeline["HDPIM Install Pipeline"]
  node_installstate[("Installer State")]
  node_cleanup["Adobe Cleanup<br/>[CleanupView.swift]"]
end

subgraph group_helper["Privileged Helper"]
  node_helpermanager["Helper Manager"]
  node_helpertool["Helper Service"]
end

node_user(("User"))

node_user -.->|"uses"| node_mainui
node_appentry -->|"launches"| node_mainui
node_mainui -.->|"requests catalog"| node_catalogpipe
node_catalogpipe -.->|"fetches catalog"| node_networkservice
node_parity -->|"requests product info"| node_networkservice
node_mainui -.->|"opens downloads"| node_downloadui
node_downloadui -->|"renders tasks"| node_taskcard
node_taskcard -->|"displays status"| node_task
node_task -->|"delegates execution"| node_networkmanager
node_networkmanager -->|"orchestrates transfers"| node_workflow
node_workflow -->|"starts downloads"| node_engine
node_engine -->|"transfers data"| node_communicator
node_workflow -->|"verifies artifacts"| node_artifact
node_downloadui -->|"reads task state"| node_storage
node_networkmanager -->|"reads configuration"| node_storage
node_networkmanager -->|"starts installation"| node_installmanager
node_installmanager -.->|"delegates HDPIM install"| node_installpipeline
node_installpipeline -->|"updates installer state"| node_installstate
node_mainui -.->|"opens cleanup"| node_cleanup
node_taskcard -->|"requests privileged work"| node_helpermanager
node_helpermanager -.->|"connects to service"| node_helpertool

click node_appentry "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Adobe%20DownloaderApp.swift"
click node_mainui "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/MainContentView.swift"
click node_downloadui "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/DownloadManagerView.swift"
click node_taskcard "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/Download/TaskCard.swift"
click node_catalogpipe "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Services/CatalogPipeline.swift"
click node_networkservice "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Services/NewNetworkService.swift"
click node_parity "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMParityDecisionEngine.swift"
click node_task "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Models/NewDownloadTask.swift"
click node_networkmanager "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/NetworkManager.swift"
click node_workflow "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDMWorkflowManager.swift"
click node_engine "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDM/PDMDownloadEngine.swift"
click node_communicator "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDM/PDMHttpCommunicator.swift"
click node_artifact "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/DownloadArtifactStore.swift"
click node_storage "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Storages/StorageData.swift"
click node_installmanager "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/InstallManager.swift"
click node_installpipeline "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMInstallPipeline.swift"
click node_installstate "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMDatabase.swift"
click node_cleanup "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/CleanupView.swift"
click node_helpermanager "https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/HelperManager/HelperManager.swift"
click node_helpertool "https://github.com/x1a0he/adobe-downloader/blob/main/AdobeDownloaderHelperTool/HelperService.swift"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_appentry,node_mainui,node_downloadui,node_taskcard,node_user toneBlue
class node_catalogpipe,node_networkservice,node_parity,node_task,node_networkmanager toneAmber
class node_workflow,node_engine,node_communicator,node_artifact,node_storage toneMint
class node_installmanager,node_installpipeline,node_installstate,node_cleanup toneRose
class node_helpermanager,node_helpertool toneIndigo
```

## Components

### App and UI

- [App Entry](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Adobe%20DownloaderApp.swift): `Adobe Downloader/Adobe DownloaderApp.swift`
- [Main UI](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/MainContentView.swift): `Adobe Downloader/Views/MainContentView.swift`
- [Download Manager UI](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/DownloadManagerView.swift): `Adobe Downloader/Views/DownloadManagerView.swift`
- [Task Card](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/Download/TaskCard.swift): `Adobe Downloader/Views/Download/TaskCard.swift`

### Catalog and Tasks

- [Catalog Pipeline](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Services/CatalogPipeline.swift): `Adobe Downloader/Services/CatalogPipeline.swift`
- [Catalog Network](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Services/NewNetworkService.swift): `Adobe Downloader/Services/NewNetworkService.swift`
- [Product and Dependency Selection](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMParityDecisionEngine.swift): `Adobe Downloader/Utils/HDPIM/HDPIMParityDecisionEngine.swift`
- [Download Task](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Models/NewDownloadTask.swift): `Adobe Downloader/Models/NewDownloadTask.swift`
- [Task Orchestration](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/NetworkManager.swift): `Adobe Downloader/Utils/NetworkManager.swift`

### Download and Storage

- [Download Workflow](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDMWorkflowManager.swift): `Adobe Downloader/Utils/PDMWorkflowManager.swift`
- [Transfer Engine](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDM/PDMDownloadEngine.swift): `Adobe Downloader/Utils/PDM/PDMDownloadEngine.swift`
- [HTTP Transport](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/PDM/PDMHttpCommunicator.swift): `Adobe Downloader/Utils/PDM/PDMHttpCommunicator.swift`
- [Artifact Verification](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/DownloadArtifactStore.swift): `Adobe Downloader/Utils/DownloadArtifactStore.swift`
- [Preferences and Task State](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Storages/StorageData.swift): `Adobe Downloader/Storages/StorageData.swift`

### Install and Cleanup

- [Install Manager](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/InstallManager.swift): `Adobe Downloader/Utils/InstallManager.swift`
- [HDPIM Install Pipeline](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMInstallPipeline.swift): `Adobe Downloader/Utils/HDPIM/HDPIMInstallPipeline.swift`
- [Installer State](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Utils/HDPIM/HDPIMDatabase.swift): `Adobe Downloader/Utils/HDPIM/HDPIMDatabase.swift`
- [Adobe Cleanup](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/Views/CleanupView.swift): `Adobe Downloader/Views/CleanupView.swift`

### Privileged Helper

- [Helper Manager](https://github.com/x1a0he/adobe-downloader/blob/main/Adobe%20Downloader/HelperManager/HelperManager.swift): `Adobe Downloader/HelperManager/HelperManager.swift`
- [Helper Service](https://github.com/x1a0he/adobe-downloader/blob/main/AdobeDownloaderHelperTool/HelperService.swift): `AdobeDownloaderHelperTool/HelperService.swift`

### Other components

- **User**

## Connections

- User → Main UI: uses
- App Entry → Main UI: launches (evidence: `Adobe Downloader/Adobe DownloaderApp.swift`)
- Main UI → Catalog Pipeline: requests catalog
- Catalog Pipeline → Catalog Network: fetches catalog
- Product and Dependency Selection → Catalog Network: requests product info (evidence: `Adobe Downloader/Utils/HDPIM/HDPIMParityDecisionEngine.swift`)
- Main UI → Download Manager UI: opens downloads
- Download Manager UI → Task Card: renders tasks (evidence: `Adobe Downloader/Views/DownloadManagerView.swift`)
- Task Card → Download Task: displays status (evidence: `Adobe Downloader/Views/Download/TaskCard.swift`)
- Download Task → Task Orchestration: delegates execution (evidence: `Adobe Downloader/Models/NewDownloadTask.swift`)
- Task Orchestration → Download Workflow: orchestrates transfers (evidence: `Adobe Downloader/Utils/NetworkManager.swift`)
- Download Workflow → Transfer Engine: starts downloads (evidence: `Adobe Downloader/Utils/PDMWorkflowManager.swift`)
- Transfer Engine → HTTP Transport: transfers data (evidence: `Adobe Downloader/Utils/PDM/PDMDownloadEngine.swift`)
- Download Workflow → Artifact Verification: verifies artifacts (evidence: `Adobe Downloader/Utils/PDMWorkflowManager.swift`)
- Download Manager UI → Preferences and Task State: reads task state (evidence: `Adobe Downloader/Views/DownloadManagerView.swift`)
- Task Orchestration → Preferences and Task State: reads configuration (evidence: `Adobe Downloader/Utils/NetworkManager.swift`)
- Task Orchestration → Install Manager: starts installation (evidence: `Adobe Downloader/Utils/NetworkManager.swift`)
- Install Manager → HDPIM Install Pipeline: delegates HDPIM install
- HDPIM Install Pipeline → Installer State: updates installer state (evidence: `Adobe Downloader/Utils/HDPIM/HDPIMInstallPipeline.swift`)
- Main UI → Adobe Cleanup: opens cleanup
- Task Card → Helper Manager: requests privileged work (evidence: `Adobe Downloader/Views/Download/TaskCard.swift`)
- Helper Manager → Helper Service: connects to service
