atproxy 0.0.0-experimental-26a68cb → 0.0.0-experimental-ce20d48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +10 -159
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,168 +1,19 @@
1
- # Atproxy
1
+ <h1>How it workds</h1>
2
2
 
3
- > Local XRPC Proxy for atproto and Bluesky-like Applications
3
+ ⬆️ H1 HTML heading
4
4
 
5
- Atproxy is a privacy-first browser extension and local proxy server that gives you complete control over XRPC requests from atproto applications. Intercept, filter, and manage all XRPC traffic through your own local server, keeping session data and sensitive information entirely under your control.
5
+ ## Some feature
6
6
 
7
- [Read docs](./docs/README.md)
7
+ ⬆️ H2 MD heading
8
8
 
9
- ## Usage
9
+ <h3>Missed in ToC</h3>
10
10
 
11
- 1. Run local server
11
+ ⬆️ H3 HTML heading
12
12
 
13
- ```bash
14
- npx atproxy
15
- ```
13
+ ### How it workds
16
14
 
17
- 2. In the questions, enter handle, password and permissions
15
+ ⬆️ H3 MD heading
18
16
 
19
- 3. If the service does not have additional support, enable the extension
17
+ <h4>**How it workds**</h4>
20
18
 
21
- 4. Own your data and experience even more
22
-
23
-
24
- ## Overview
25
-
26
- Atproxy consists of two components working together:
27
-
28
- - **Browser Extension** (Manifest V3): Intercepts XRPC requests from web pages and forwards them to your local proxy server
29
- - **Proxy Server** (Node.js CLI): A local HTTP server that authenticates with Bluesky, validates permissions, and proxies requests to the atproto network
30
-
31
- This architecture ensures that all session management, authentication tokens, and request filtering happens on your machine—never in the browser or on external servers.
32
-
33
- ## Privacy & Security
34
- - **Local-first architecture**: All session data and credentials stored exclusively on your server
35
- - **Permission-based access control**: Whitelist specific XRPC methods (queries and procedures)
36
- - **No data collection**: Zero telemetry, tracking, or external data transmission
37
- - **Transparent proxying**: Requests flow through your server with full visibility
38
-
39
- ### Request Flow
40
-
41
- 1. **Interception**: Injected script overrides `window.fetch()` and matches requests against configured regex pattern (default: `^.*/xrpc/`)
42
- 2. **Extension Bridge**: Content script forwards serialized request to background service worker
43
- 3. **Proxy Forwarding**: Background worker sends HTTP request to local proxy server (default: `http://localhost:9523`)
44
- 4. **Permission Check**: Proxy validates request path against whitelisted permissions
45
- 5. **Authentication**: Proxy uses stored Bluesky credentials to authenticate with atproto network
46
- 6. **XRPC Call**: Proxy makes authenticated call using `@atproto/api` Agent
47
- 7. **Response**: Response flows back through the chain to the original web application
48
-
49
- ## API Reference
50
-
51
- ### Proxy Server CLI
52
-
53
- ```bash
54
- atproxy [options]
55
-
56
- Options:
57
- --handle <string> Bluesky handle (e.g., handle.bsky.social)
58
- --permissions <...> Permission IDs (can specify multiple times)
59
- --port <number> Server port (default: 9523)
60
- ```
61
-
62
- ### Proxy Server Endpoints
63
-
64
- - `GET /xrpc/<method>` - Proxy GET requests (queries)
65
- - `POST /xrpc/<method>` - Proxy POST requests (procedures)
66
- - `GET /` - Health check endpoint
67
-
68
- ### Extension Configuration
69
-
70
- Extension settings are stored in Chrome's sync storage and accessible via the popup:
71
-
72
- - **Enabled**: Toggle to enable/disable request proxying
73
- - **Proxyfying rule**: Regex pattern to match URLs (default: `^.*/xrpc/`)
74
-
75
- ## Use Cases
76
-
77
- ### For Developers
78
-
79
- - **Testing & Development**: Test Bluesky integrations without affecting production accounts
80
- - **API Experimentation**: Explore atproto APIs with full request/response visibility
81
- - **Custom Clients**: Build or use Bluesky clients with custom authentication or filtering logic
82
- - **Debugging**: Inspect XRPC traffic and understand application behavior
83
-
84
- ### For Privacy-Conscious Users
85
-
86
- - **Session Control**: Keep authentication tokens on your machine, not in browser storage
87
- - **Request Filtering**: Block or modify specific API calls before they reach Bluesky
88
- - **Traffic Analysis**: Monitor and log all XRPC requests for security auditing
89
-
90
- ## Troubleshooting
91
-
92
- ### Extension shows "Not started"
93
-
94
- - Verify the proxy server is running: `curl http://localhost:9523/`
95
- - Check the port matches in extension configuration
96
- - Ensure no firewall is blocking `localhost:9523`
97
-
98
- ### Requests not being intercepted
99
-
100
- - Verify the regex pattern matches your application's XRPC URLs
101
- - Check browser console for injection errors
102
- - Ensure extension is enabled in the popup
103
-
104
- ## Local Usage
105
-
106
- ### Installation
107
-
108
- **Prerequisites**
109
-
110
- - Node.js >= 18.0.0
111
- - pnpm (recommended) or npm
112
- - Chrome, Edge, or other Chromium-based browser
113
-
114
- ```bash
115
- git clone <repository-url>
116
- cd atproxy
117
- pnpm install
118
- pnpm build
119
- ```
120
-
121
- ### Starting the Proxy Server
122
-
123
- The proxy server requires Bluesky credentials and permission configuration:
124
-
125
- ```bash
126
- pnpm start:proxy
127
- pnpm start:proxy --handle yourhandle.bsky.social \
128
- --permissions app.bsky.feed.getTimeline \
129
- --permissions app.bsky.actor.getProfile \
130
- --port 9523
131
- ```
132
-
133
- **Server setup:**
134
- 1. Enter your Bluesky handle (e.g., `yourhandle.bsky.social`)
135
- 2. Enter your account or app password
136
- 3. Select permissions from the interactive list (use arrow keys, space to select)
137
- 4. Configuration (excluding password) is saved to `~/.atproxy.json` for future runs
138
-
139
- ### Installing the Extension
140
-
141
- 1. Build the extension:
142
- ```bash
143
- pnpm build:extension
144
- ```
145
- 2. Load in Chrome/Edge:
146
- - Open `chrome://extensions/` (or `edge://extensions/`)
147
- - Enable "Developer mode"
148
- - Click "Load unpacked"
149
- - Select `packages/extension/dist`
150
- 3. Configure the extension:
151
- - Click the extension icon in your toolbar
152
- - Toggle the switch to enable proxying
153
- - Adjust the regex pattern if needed (default: `^.*/xrpc/`)
154
- - Verify the status indicator shows "Connected"
155
-
156
- ## Resources
157
-
158
- - [AT Protocol Documentation](https://atproto.com)
159
- - [XRPC Specification](https://atproto.com/specs/xrpc)
160
- - [Bluesky Developer Resources](https://docs.bsky.app)
161
-
162
- ---
163
-
164
- **Note**: This extension does not collect, store, or transmit any data outside of your local machine. All request handling, session management, and data processing occurs entirely under your control.
165
-
166
- ## License
167
-
168
- MIT License
19
+ ⬆️ H4 HTML heading
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atproxy",
3
- "version": "0.0.0-experimental-26a68cb",
3
+ "version": "0.0.0-experimental-ce20d48",
4
4
  "description": "XRPC proxy CLI Server",
5
5
  "main": "dist/index.js",
6
6
  "bin": {