# pipedreamhq/pipedream-sdk-typescript architecture

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

- Interactive diagram: https://gitdiagram.com/pipedreamhq/pipedream-sdk-typescript
- Repository: https://github.com/pipedreamhq/pipedream-sdk-typescript

## Overview

This repository is the Pipedream TypeScript SDK: callers configure a client, authenticate, and invoke typed API resources whose requests are serialized and sent to Pipedream; responses may be typed, paginated, binary, or errors. The README documents action execution, OAuth or bearer-token authentication, environment selection, pagination, and file downloads. It also documents browser account connection, implemented in the browser entry point. Resource endpoints beyond the sampled clients are represented at their existing resource-directory paths; their exact wiring was not inspected.

Main entry points: [`src/Client.ts`](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/Client.ts) (Pipedream client), [`src/core/fetcher`](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/fetcher) (HTTP fetcher), [`src/api/resources/projects`](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/projects) (Projects), [`src/api/resources/actions`](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/actions) (Actions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Client setup"]
  node_client["Pipedream client<br/>[Client.ts]"]
  node_base["Client options<br/>[BaseClient.ts]"]
end

subgraph group_resources["API capabilities"]
  node_actions["Actions"]
  node_workflows["Workflows"]
  node_accounts["Accounts"]
  node_apps["App catalog"]
  node_triggers["Triggers"]
  node_deployed["Deployed triggers"]
  node_projects["Projects"]
  node_proxy["Connected proxy"]
  node_file["File stash"]
  node_other["Other API resources"]
  node_oauthresource["OAuth tokens"]
end

subgraph group_transport["Request runtime"]
  node_serializer["Type serialization"]
  node_fetcher["HTTP fetcher"]
  node_pagination["Pagination"]
  node_errors["Error handling"]
  node_binary["Binary response<br/>[BinaryResponse.ts]"]
end

subgraph group_auth["Authentication"]
  node_authprovider["Auth providers"]
  node_oauth["OAuth provider"]
end

subgraph group_browser["Browser Connect"]
  node_browserclient["Frontend client<br/>[index.ts]"]
  node_connecttoken["Connect token"]
end

node_caller(("SDK caller"))
node_api{{"Pipedream API"}}
node_browseruser(("Browser user"))

node_caller -->|"configures"| node_client
node_client -->|"normalizes options"| node_base
node_client -->|"provides resource"| node_actions
node_client -->|"provides resource"| node_workflows
node_client -->|"provides resource"| node_accounts
node_client -->|"provides resource"| node_apps
node_client -->|"provides resource"| node_triggers
node_client -->|"provides resource"| node_deployed
node_client -->|"provides resource"| node_projects
node_client -->|"provides resource"| node_proxy
node_client -->|"provides resource"| node_file
node_client -->|"provides resources"| node_other
node_caller -->|"invokes action"| node_actions
node_actions -->|"serializes request"| node_serializer
node_accounts -->|"serializes request"| node_serializer
node_projects -->|"serializes request"| node_serializer
node_serializer -->|"encodes request"| node_fetcher
node_actions -->|"sends request"| node_fetcher
node_accounts -->|"sends request"| node_fetcher
node_projects -->|"sends request"| node_fetcher
node_triggers -->|"sends request"| node_fetcher
node_deployed -->|"sends request"| node_fetcher
node_proxy -->|"sends request"| node_fetcher
node_file -->|"sends request"| node_fetcher
node_fetcher -->|"HTTP request"| node_api
node_api -->|"HTTP response"| node_fetcher
node_fetcher -->|"handles failures"| node_errors
node_fetcher -->|"returns binary"| node_binary
node_projects -->|"pages results"| node_pagination
node_caller -->|"supplies credentials"| node_authprovider
node_client -->|"uses provider"| node_authprovider
node_client -->|"creates OAuth provider"| node_oauth
node_oauth -->|"requests token"| node_oauthresource
node_browseruser -->|"connects account"| node_browserclient
node_browserclient -->|"uses token provider"| node_connecttoken
node_browserclient -->|"creates client"| node_client

click node_client "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/Client.ts"
click node_base "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/BaseClient.ts"
click node_actions "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/actions"
click node_workflows "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/workflows"
click node_accounts "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/accounts"
click node_apps "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/apps"
click node_triggers "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/triggers"
click node_deployed "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/deployedTriggers"
click node_projects "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/projects"
click node_proxy "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/proxy"
click node_file "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/fileStash"
click node_other "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources"
click node_serializer "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/serialization"
click node_fetcher "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/fetcher"
click node_pagination "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/pagination"
click node_errors "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/errors"
click node_binary "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/core/fetcher/BinaryResponse.ts"
click node_authprovider "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/auth"
click node_oauth "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/auth/OAuthAuthProvider.ts"
click node_oauthresource "https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/oauthTokens"
click node_browserclient "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/browser/index.ts"
click node_connecttoken "https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/core/auth/ConnectTokenProvider.ts"

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_client,node_base,node_browseruser toneBlue
class node_actions,node_workflows,node_accounts,node_apps,node_triggers,node_deployed,node_projects,node_proxy,node_file,node_other,node_oauthresource toneAmber
class node_serializer,node_fetcher,node_pagination,node_errors,node_binary,node_api toneMint
class node_authprovider,node_oauth toneRose
class node_browserclient,node_connecttoken,node_caller toneIndigo
```

## Components

### Client setup

- [Pipedream client](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/Client.ts): `src/Client.ts`
- [Client options](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/BaseClient.ts): `src/BaseClient.ts`

### API capabilities

- [Actions](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/actions): `src/api/resources/actions`
- [Workflows](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/workflows): `src/api/resources/workflows`
- [Accounts](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/accounts): `src/api/resources/accounts`
- [App catalog](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/apps): `src/api/resources/apps`
- [Triggers](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/triggers): `src/api/resources/triggers`
- [Deployed triggers](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/deployedTriggers): `src/api/resources/deployedTriggers`
- [Projects](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/projects): `src/api/resources/projects`
- [Connected proxy](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/proxy): `src/api/resources/proxy`
- [File stash](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/fileStash): `src/api/resources/fileStash`
- [Other API resources](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources): `src/api/resources`
- [OAuth tokens](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/api/resources/oauthTokens): `src/api/resources/oauthTokens`

### Request runtime

- [Type serialization](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/serialization): `src/serialization`
- [HTTP fetcher](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/fetcher): `src/core/fetcher`
- [Pagination](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/pagination): `src/core/pagination`
- [Error handling](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/errors): `src/errors`
- [Binary response](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/core/fetcher/BinaryResponse.ts): `src/core/fetcher/BinaryResponse.ts`

### Authentication

- [Auth providers](https://github.com/pipedreamhq/pipedream-sdk-typescript/tree/main/src/core/auth): `src/core/auth`
- [OAuth provider](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/auth/OAuthAuthProvider.ts): `src/auth/OAuthAuthProvider.ts`

### Browser Connect

- [Frontend client](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/browser/index.ts): `src/browser/index.ts`
- [Connect token](https://github.com/pipedreamhq/pipedream-sdk-typescript/blob/main/src/core/auth/ConnectTokenProvider.ts): `src/core/auth/ConnectTokenProvider.ts`

### Other components

- **SDK caller**
- **Pipedream API**
- **Browser user**

## Connections

- SDK caller → Pipedream client: configures
- Pipedream client → Client options: normalizes options
- Pipedream client → Actions: provides resource
- Pipedream client → Workflows: provides resource
- Pipedream client → Accounts: provides resource
- Pipedream client → App catalog: provides resource
- Pipedream client → Triggers: provides resource
- Pipedream client → Deployed triggers: provides resource
- Pipedream client → Projects: provides resource
- Pipedream client → Connected proxy: provides resource
- Pipedream client → File stash: provides resource
- Pipedream client → Other API resources: provides resources
- SDK caller → Actions: invokes action
- Actions → Type serialization: serializes request
- Accounts → Type serialization: serializes request
- Projects → Type serialization: serializes request
- Type serialization → HTTP fetcher: encodes request
- Actions → HTTP fetcher: sends request
- Accounts → HTTP fetcher: sends request
- Projects → HTTP fetcher: sends request
- Triggers → HTTP fetcher: sends request
- Deployed triggers → HTTP fetcher: sends request
- Connected proxy → HTTP fetcher: sends request
- File stash → HTTP fetcher: sends request
- HTTP fetcher → Pipedream API: HTTP request
- Pipedream API → HTTP fetcher: HTTP response
- HTTP fetcher → Error handling: handles failures
- HTTP fetcher → Binary response: returns binary
- Projects → Pagination: pages results
- SDK caller → Auth providers: supplies credentials
- Pipedream client → Auth providers: uses provider
- Pipedream client → OAuth provider: creates OAuth provider
- OAuth provider → OAuth tokens: requests token
- Browser user → Frontend client: connects account
- Frontend client → Connect token: uses token provider
- Frontend client → Pipedream client: creates client
