+1
-1
.github/workflows/build-and-push-ghcr.yaml
+1
-1
.github/workflows/build-and-push-ghcr.yaml
-2
ACCOUNT_MIGRATION.md
-2
ACCOUNT_MIGRATION.md
···
1
# Account Migration
2
3
-
**Update May 2025:** An updated guide to account migration is now [part of the atproto specifications](https://atproto.com/guides/account-migration). There is also [a blog post available](https://whtwnd.com/bnewbold.net/3l5ii332pf32u) which describes how to do an account migration using a command-line tool (`goat`).
4
-
5
### ⚠️ Warning ⚠️ ️
6
Account migration is a potentially destructive operation. Part of the operation involves signing away your old PDS's ability to make updates to your DID. If something goes wrong, you could be permanently locked out of your account, and Bluesky will not be able to help you recover it.
7
···
1
# Account Migration
2
3
### ⚠️ Warning ⚠️ ️
4
Account migration is a potentially destructive operation. Part of the operation involves signing away your old PDS's ability to make updates to your DID. If something goes wrong, you could be permanently locked out of your account, and Bluesky will not be able to help you recover it.
5
-8
README.md
-8
README.md
···
228
229
_Note: Your PDS will need to be restarted with those variables. This varies depending on your setup. If you followed this installation guide, run `systemctl restart pds`. You might need to restart the server or recreate the container, depending on what you are using._
230
231
-
#### Common SMTP issues
232
-
233
-
If you find that your test messages using cURL or other sources go out correctly, but you are not receiving emails from your PDS, you may need to URL encode your username and password on `/pds/pds.env` and restart the PDS service.
234
-
235
-
If the username and/or password contain special characters, the special characters will need to be [percent encoded](https://en.wikipedia.org/wiki/Percent-encoding). For some email services, the username will contain an extra `@` symbol that will also need to be percent encoded. For example, the URL `user&name@oci:p@ssword@smtphost:465` after percent encoding for the username and password fields would become `user%26name%40oci:p%40ssword@smtphost:465`.
236
-
237
-
If you are migrating an account, Bluesky's UI will ask you to confirm your email address. The confirmation code email is meant to come from your PDS. If you are encountering issues with SMTP and want to confirm the address before solving it, you can find the confirmation code on the `email_token` table on `accounts.sqlite`.
238
-
239
### Logging
240
241
By default, logs from the PDS are printed to `stdout` and end up in Docker's log. You can browse them by running:
···
228
229
_Note: Your PDS will need to be restarted with those variables. This varies depending on your setup. If you followed this installation guide, run `systemctl restart pds`. You might need to restart the server or recreate the container, depending on what you are using._
230
231
### Logging
232
233
By default, logs from the PDS are printed to `stdout` and end up in Docker's log. You can browse them by running:
+7
-1
installer.sh
+7
-1
installer.sh
···
31
openssl
32
sqlite3
33
xxd
34
"
35
# Docker packages.
36
REQUIRED_DOCKER_PACKAGES="
···
214
fi
215
216
# Admin email
217
+
if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then
218
+
read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL
219
+
fi
220
+
if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then
221
+
usage "No admin email specified"
222
+
fi
223
+
224
if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then
225
read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL
226
fi
+1
-1
service/package.json
+1
-1
service/package.json
+77
-64
service/pnpm-lock.yaml
+77
-64
service/pnpm-lock.yaml
···
6
7
dependencies:
8
'@atproto/pds':
9
-
specifier: 0.4.138
10
-
version: 0.4.138
11
12
packages:
13
···
42
resolution: {integrity: sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA==}
43
dev: false
44
45
-
/@atproto-labs/xrpc-utils@0.0.14:
46
-
resolution: {integrity: sha512-/f0Dhzi08w3Oqv38wdwQ5bw238GbxhYIcxg08kVReEMTlkyRDC6H5RuqHf8Ff9J3FKqjKHGdxaOdrPNM1hCgeQ==}
47
dependencies:
48
-
'@atproto/xrpc': 0.7.0
49
-
'@atproto/xrpc-server': 0.7.18
50
transitivePeerDependencies:
51
- bufferutil
52
- supports-color
53
- utf-8-validate
54
dev: false
55
56
-
/@atproto/api@0.15.8:
57
-
resolution: {integrity: sha512-PsCgmV4zPjN8VuJMruxqauhn88PuS0b8t2Xsjl4617+bCPpY513jVlxgNH/XExxO7TSVvJM7EzdLY4o3fqh/xQ==}
58
dependencies:
59
'@atproto/common-web': 0.4.2
60
-
'@atproto/lexicon': 0.4.11
61
'@atproto/syntax': 0.4.0
62
-
'@atproto/xrpc': 0.7.0
63
await-lock: 2.2.2
64
multiformats: 9.9.0
65
tlds: 1.250.0
66
zod: 3.23.8
67
dev: false
68
69
-
/@atproto/aws@0.2.21:
70
-
resolution: {integrity: sha512-bosExZ3YdFjOehNBcNWsC2mZBrAVLO8Ut/JquypXSahFeeXZP/9rd9F1VGf+vAmjFEKagHXQCb6CRFfJyN+I7A==}
71
engines: {node: '>=18.7.0'}
72
dependencies:
73
'@atproto/common': 0.4.11
74
'@atproto/crypto': 0.4.4
75
-
'@atproto/repo': 0.8.1
76
'@aws-sdk/client-cloudfront': 3.515.0
77
'@aws-sdk/client-kms': 3.515.0
78
'@aws-sdk/client-s3': 3.515.0
···
134
uint8arrays: 3.0.0
135
dev: false
136
137
/@atproto/identity@0.4.8:
138
resolution: {integrity: sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA==}
139
engines: {node: '>=18.7.0'}
···
142
'@atproto/crypto': 0.4.4
143
dev: false
144
145
-
/@atproto/jwk-jose@0.1.6:
146
-
resolution: {integrity: sha512-r4DGMvvmazy6CxqAcnplpUxvp6Vd8UwKxQBZRpmm1aNsVonf5qj1yeDkECTiwoe/FPbvtdamlzClB3UZc7Yb5w==}
147
dependencies:
148
-
'@atproto/jwk': 0.1.5
149
jose: 5.2.2
150
dev: false
151
152
-
/@atproto/jwk@0.1.5:
153
-
resolution: {integrity: sha512-OzZFLhX41TOcMeanP3aZlL5bLeaUIZT15MI4aU5cwflNq/rwpGOpz3uwDjZc8ytgUjuTQ8LabSz5jMmwoTSWFg==}
154
dependencies:
155
multiformats: 9.9.0
156
zod: 3.23.8
157
dev: false
158
159
-
/@atproto/lexicon@0.4.11:
160
-
resolution: {integrity: sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw==}
161
dependencies:
162
'@atproto/common-web': 0.4.2
163
'@atproto/syntax': 0.4.0
···
166
zod: 3.23.8
167
dev: false
168
169
-
/@atproto/oauth-provider-api@0.1.2:
170
-
resolution: {integrity: sha512-tNAuMrE6D3696euavxo1+Jh7Re0PPwJstbyY8SrdVPXgKJh/LrbpKUKiPNW/p5KyVfRs2tWeAxy+ReESu6SmXA==}
171
dependencies:
172
-
'@atproto/jwk': 0.1.5
173
-
'@atproto/oauth-types': 0.2.7
174
dev: false
175
176
-
/@atproto/oauth-provider-frontend@0.1.4:
177
-
resolution: {integrity: sha512-TLKL5lTmSieHx7+3RVIx7rIxRPP1SNCwzzdTvYB46yd1XrGHdPU//M6CP5OZ1BvcxF6H4JXIkOSWvFseol+gOw==}
178
engines: {node: '>=18.7.0'}
179
optionalDependencies:
180
-
'@atproto/oauth-provider-api': 0.1.2
181
dev: false
182
183
-
/@atproto/oauth-provider-ui@0.1.5:
184
-
resolution: {integrity: sha512-pW0Vx3kvIWH1Mu3SOImNHP9JbmhSj2e3ChDvtfXCWI1oC03fiaMlJfdxrx9Plq5Z+DajnCzPzrf1Lvbopjf94Q==}
185
engines: {node: '>=18.7.0'}
186
optionalDependencies:
187
-
'@atproto/oauth-provider-api': 0.1.2
188
dev: false
189
190
-
/@atproto/oauth-provider@0.7.7:
191
-
resolution: {integrity: sha512-ElphzmOjw1hr42HN4dD6sMAQFtpTkaJ8bBDAsbL9YBVJDEGhmHsF3Ye8mDUO4nhEdg7PUTWiCzXyqnaorAjiTA==}
192
engines: {node: '>=18.7.0'}
193
dependencies:
194
'@atproto-labs/fetch': 0.2.3
···
197
'@atproto-labs/simple-store': 0.2.0
198
'@atproto-labs/simple-store-memory': 0.1.3
199
'@atproto/common': 0.4.11
200
-
'@atproto/jwk': 0.1.5
201
-
'@atproto/jwk-jose': 0.1.6
202
-
'@atproto/oauth-provider-api': 0.1.2
203
-
'@atproto/oauth-provider-frontend': 0.1.4
204
-
'@atproto/oauth-provider-ui': 0.1.5
205
-
'@atproto/oauth-types': 0.2.7
206
'@atproto/syntax': 0.4.0
207
'@hapi/accept': 6.0.3
208
'@hapi/address': 5.1.1
209
'@hapi/bourne': 3.0.0
210
'@hapi/content': 6.0.0
211
-
cookie: 0.6.0
212
disposable-email-domains-js: 1.5.0
213
forwarded: 0.2.0
214
http-errors: 2.0.0
···
219
- supports-color
220
dev: false
221
222
-
/@atproto/oauth-types@0.2.7:
223
-
resolution: {integrity: sha512-2SlDveiSI0oowC+sfuNd/npV8jw/FhokSS26qyUyldTg1g9ZlhxXUfMP4IZOPeZcVn9EszzQRHs1H9ZJqVQIew==}
224
dependencies:
225
-
'@atproto/jwk': 0.1.5
226
zod: 3.23.8
227
dev: false
228
229
-
/@atproto/pds@0.4.138:
230
-
resolution: {integrity: sha512-WLzDhmguTgs2wQNKoGxCbpKNegDnRiemSslenMbPrB7kSiXYj+XZobLyoIXHv1EnAd2pbThwNEL8z8EfkM0mDg==}
231
engines: {node: '>=18.7.0'}
232
dependencies:
233
'@atproto-labs/fetch-node': 0.1.9
234
-
'@atproto-labs/xrpc-utils': 0.0.14
235
-
'@atproto/api': 0.15.8
236
-
'@atproto/aws': 0.2.21
237
'@atproto/common': 0.4.11
238
'@atproto/crypto': 0.4.4
239
'@atproto/identity': 0.4.8
240
-
'@atproto/lexicon': 0.4.11
241
-
'@atproto/oauth-provider': 0.7.7
242
-
'@atproto/repo': 0.8.1
243
'@atproto/syntax': 0.4.0
244
-
'@atproto/xrpc': 0.7.0
245
-
'@atproto/xrpc-server': 0.7.18
246
'@did-plc/lib': 0.0.4
247
'@hapi/address': 5.1.1
248
better-sqlite3: 10.1.0
···
279
- utf-8-validate
280
dev: false
281
282
-
/@atproto/repo@0.8.1:
283
-
resolution: {integrity: sha512-d1NtHhXYJVJlFVI6mbVOUnpB0rnhqxPnZcALkJoYJjaDPVr4NNqRFAtrwb+GHzxT6DhijoXYQf24pKGfEFDd4g==}
284
engines: {node: '>=18.7.0'}
285
dependencies:
286
'@atproto/common': 0.4.11
287
'@atproto/common-web': 0.4.2
288
'@atproto/crypto': 0.4.4
289
-
'@atproto/lexicon': 0.4.11
290
'@ipld/dag-cbor': 7.0.3
291
multiformats: 9.9.0
292
uint8arrays: 3.0.0
···
298
resolution: {integrity: sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==}
299
dev: false
300
301
-
/@atproto/xrpc-server@0.7.18:
302
-
resolution: {integrity: sha512-kjlAsI+UNbbm6AK3Y5Hb4BJ7VQHNKiYYu2kX5vhZJZHO8qfO40GPYYb/2TknZV8IG6fDPBQhUpcDRolI86sgag==}
303
engines: {node: '>=18.7.0'}
304
dependencies:
305
'@atproto/common': 0.4.11
306
'@atproto/crypto': 0.4.4
307
-
'@atproto/lexicon': 0.4.11
308
-
'@atproto/xrpc': 0.7.0
309
cbor-x: 1.5.8
310
express: 4.18.2
311
http-errors: 2.0.0
···
320
- utf-8-validate
321
dev: false
322
323
-
/@atproto/xrpc@0.7.0:
324
-
resolution: {integrity: sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw==}
325
dependencies:
326
-
'@atproto/lexicon': 0.4.11
327
zod: 3.23.8
328
dev: false
329
···
2186
engines: {node: '>= 0.6'}
2187
dev: false
2188
2189
-
/cookie@0.6.0:
2190
-
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
2191
engines: {node: '>= 0.6'}
2192
dev: false
2193
···
6
7
dependencies:
8
'@atproto/pds':
9
+
specifier: 0.4.166
10
+
version: 0.4.166
11
12
packages:
13
···
42
resolution: {integrity: sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA==}
43
dev: false
44
45
+
/@atproto-labs/xrpc-utils@0.0.18:
46
+
resolution: {integrity: sha512-Cwrlx2JcLe0jxCK8b3GCT3HRGaH3yPhyyt+3n4JykJapCaGBKqa6FHGs9hK2Fx6lOyPF7TnV5qUPUsJ1qGEUVA==}
47
dependencies:
48
+
'@atproto/xrpc': 0.7.1
49
+
'@atproto/xrpc-server': 0.9.1
50
transitivePeerDependencies:
51
- bufferutil
52
- supports-color
53
- utf-8-validate
54
dev: false
55
56
+
/@atproto/api@0.16.2:
57
+
resolution: {integrity: sha512-sSTg31J8ws8DNaoiizp+/uJideRxRaJsq+Nyl8rnSxGw0w3oCvoeRU19iRWh2t0jZEmiRJAGkveGu23NKmPYEQ==}
58
dependencies:
59
'@atproto/common-web': 0.4.2
60
+
'@atproto/lexicon': 0.4.12
61
'@atproto/syntax': 0.4.0
62
+
'@atproto/xrpc': 0.7.1
63
await-lock: 2.2.2
64
multiformats: 9.9.0
65
tlds: 1.250.0
66
zod: 3.23.8
67
dev: false
68
69
+
/@atproto/aws@0.2.25:
70
+
resolution: {integrity: sha512-LT4uuda2mjXz2WT4xo7g2aWmWKl+JWusGzscqQpOlD/RFGFXKDmUcVWLVPKY+9Pys2F7X6tyDlm2aUx+/dYdYA==}
71
engines: {node: '>=18.7.0'}
72
dependencies:
73
'@atproto/common': 0.4.11
74
'@atproto/crypto': 0.4.4
75
+
'@atproto/repo': 0.8.5
76
'@aws-sdk/client-cloudfront': 3.515.0
77
'@aws-sdk/client-kms': 3.515.0
78
'@aws-sdk/client-s3': 3.515.0
···
134
uint8arrays: 3.0.0
135
dev: false
136
137
+
/@atproto/did@0.1.5:
138
+
resolution: {integrity: sha512-8+1D08QdGE5TF0bB0vV8HLVrVZJeLNITpRTUVEoABNMRaUS7CoYSVb0+JNQDeJIVmqMjOL8dOjvCUDkp3gEaGQ==}
139
+
dependencies:
140
+
zod: 3.23.8
141
+
dev: false
142
+
143
/@atproto/identity@0.4.8:
144
resolution: {integrity: sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA==}
145
engines: {node: '>=18.7.0'}
···
148
'@atproto/crypto': 0.4.4
149
dev: false
150
151
+
/@atproto/jwk-jose@0.1.9:
152
+
resolution: {integrity: sha512-HT9GcUe6htDxI5OSYXWdeS6QZ9lpuDDvJk508ppi8a48E/1f8eumoM0QhgbFRF9IKAnnFrtnZDOAvljQzFKwwQ==}
153
dependencies:
154
+
'@atproto/jwk': 0.4.0
155
jose: 5.2.2
156
dev: false
157
158
+
/@atproto/jwk@0.4.0:
159
+
resolution: {integrity: sha512-tvp4iZrzqEzKCeTOKz50/o6WdsZzOuWmWjF6On5QAp04fLwLpsFu2Hixgx/lA1KBO0O4sns7YSGcAqSSX6Rdog==}
160
dependencies:
161
multiformats: 9.9.0
162
zod: 3.23.8
163
dev: false
164
165
+
/@atproto/lexicon@0.4.12:
166
+
resolution: {integrity: sha512-fcEvEQ1GpQYF5igZ4IZjPWEoWVpsEF22L9RexxLS3ptfySXLflEyH384e7HITzO/73McDeaJx3lqHIuqn9ulnw==}
167
dependencies:
168
'@atproto/common-web': 0.4.2
169
'@atproto/syntax': 0.4.0
···
172
zod: 3.23.8
173
dev: false
174
175
+
/@atproto/oauth-provider-api@0.2.0:
176
+
resolution: {integrity: sha512-u18VRCDuz5BloUQKbvTISjQk7CgpDI1hf3leoJ7ADOAo8oW71QZD0tsWDX81R2uB66mKZHptjGSSVxxqpZFipQ==}
177
dependencies:
178
+
'@atproto/jwk': 0.4.0
179
+
'@atproto/oauth-types': 0.4.0
180
dev: false
181
182
+
/@atproto/oauth-provider-frontend@0.1.11:
183
+
resolution: {integrity: sha512-MvPUI+vh8a8UWmpAV8VS2qrdJ/B6l75qDQX1z6vF1YkPR1d9SLEdOYx/O26g5ZyuN+Mk00OBdOSfjvON/UOxQA==}
184
engines: {node: '>=18.7.0'}
185
optionalDependencies:
186
+
'@atproto/oauth-provider-api': 0.2.0
187
dev: false
188
189
+
/@atproto/oauth-provider-ui@0.2.0:
190
+
resolution: {integrity: sha512-v4rzz3C8i2NBqxycWWDTeosHtv6B9+EW4ZCq9Il6thmHdtT2CmB07R5Ia7zQ1n7lylxI6mC9JqA9CLis0uLz+Q==}
191
engines: {node: '>=18.7.0'}
192
optionalDependencies:
193
+
'@atproto/oauth-provider-api': 0.2.0
194
dev: false
195
196
+
/@atproto/oauth-provider@0.10.0:
197
+
resolution: {integrity: sha512-WbDaMC/9Zd4oslA4pPvf7ozum0YAQRxNspYpEauXtJ/bjVxqViKgV158jnPhDbYfo62NkxSuSaUkTV116U/VBg==}
198
engines: {node: '>=18.7.0'}
199
dependencies:
200
'@atproto-labs/fetch': 0.2.3
···
203
'@atproto-labs/simple-store': 0.2.0
204
'@atproto-labs/simple-store-memory': 0.1.3
205
'@atproto/common': 0.4.11
206
+
'@atproto/did': 0.1.5
207
+
'@atproto/jwk': 0.4.0
208
+
'@atproto/jwk-jose': 0.1.9
209
+
'@atproto/oauth-provider-api': 0.2.0
210
+
'@atproto/oauth-provider-frontend': 0.1.11
211
+
'@atproto/oauth-provider-ui': 0.2.0
212
+
'@atproto/oauth-scopes': 0.0.1
213
+
'@atproto/oauth-types': 0.4.0
214
'@atproto/syntax': 0.4.0
215
'@hapi/accept': 6.0.3
216
'@hapi/address': 5.1.1
217
'@hapi/bourne': 3.0.0
218
'@hapi/content': 6.0.0
219
+
cookie: 0.7.2
220
disposable-email-domains-js: 1.5.0
221
forwarded: 0.2.0
222
http-errors: 2.0.0
···
227
- supports-color
228
dev: false
229
230
+
/@atproto/oauth-scopes@0.0.1:
231
+
resolution: {integrity: sha512-9IGgwM0KrWUwRTg02o4GKZaoKJLOkFwtkq2i39pYQxqJm18jvEvadxW/sR1A5f9f2vbTZtECgIziU5hdd01U5Q==}
232
+
dev: false
233
+
234
+
/@atproto/oauth-types@0.4.0:
235
+
resolution: {integrity: sha512-FrRH9JsPw9H4JxfPDrbrI+pB102tbHTygajfHay7xwz78HPOjSbWPRgWW2hYS4w8vDYdB3PYbBj1jPoKetW7LA==}
236
dependencies:
237
+
'@atproto/jwk': 0.4.0
238
zod: 3.23.8
239
dev: false
240
241
+
/@atproto/pds@0.4.166:
242
+
resolution: {integrity: sha512-LwLiLQNOZsZ4LgD4qmtWf3W5FJEaTA3Bi3Y1x79TXrBfcvcmIoNYBUE0WOLmDFfLyp44caODqS6HCLvqc11T7g==}
243
engines: {node: '>=18.7.0'}
244
dependencies:
245
'@atproto-labs/fetch-node': 0.1.9
246
+
'@atproto-labs/xrpc-utils': 0.0.18
247
+
'@atproto/api': 0.16.2
248
+
'@atproto/aws': 0.2.25
249
'@atproto/common': 0.4.11
250
'@atproto/crypto': 0.4.4
251
'@atproto/identity': 0.4.8
252
+
'@atproto/lexicon': 0.4.12
253
+
'@atproto/oauth-provider': 0.10.0
254
+
'@atproto/oauth-scopes': 0.0.1
255
+
'@atproto/repo': 0.8.5
256
'@atproto/syntax': 0.4.0
257
+
'@atproto/xrpc': 0.7.1
258
+
'@atproto/xrpc-server': 0.9.1
259
'@did-plc/lib': 0.0.4
260
'@hapi/address': 5.1.1
261
better-sqlite3: 10.1.0
···
292
- utf-8-validate
293
dev: false
294
295
+
/@atproto/repo@0.8.5:
296
+
resolution: {integrity: sha512-QZ4UWBWDyPMXgPhktmaRYRyCXIw7lIEAyGtaFy7UmCPpJ5TtFKw3GhGrEiNz/fY3/6lrkdDj44/Tzkud/eP/VQ==}
297
engines: {node: '>=18.7.0'}
298
dependencies:
299
'@atproto/common': 0.4.11
300
'@atproto/common-web': 0.4.2
301
'@atproto/crypto': 0.4.4
302
+
'@atproto/lexicon': 0.4.12
303
'@ipld/dag-cbor': 7.0.3
304
multiformats: 9.9.0
305
uint8arrays: 3.0.0
···
311
resolution: {integrity: sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==}
312
dev: false
313
314
+
/@atproto/xrpc-server@0.9.1:
315
+
resolution: {integrity: sha512-AJfxsKrZgKL/5362Rc0oUEjlgpDCmY/soeyLHHjid8J6clbErAdJVCuFwW4T40aHGFY1J13a29ucwbSfOROx6w==}
316
engines: {node: '>=18.7.0'}
317
dependencies:
318
'@atproto/common': 0.4.11
319
'@atproto/crypto': 0.4.4
320
+
'@atproto/lexicon': 0.4.12
321
+
'@atproto/xrpc': 0.7.1
322
cbor-x: 1.5.8
323
express: 4.18.2
324
http-errors: 2.0.0
···
333
- utf-8-validate
334
dev: false
335
336
+
/@atproto/xrpc@0.7.1:
337
+
resolution: {integrity: sha512-ANHEzlskYlMEdH18m+Itp3a8d0pEJao2qoDybDoMupTnoeNkya4VKIaOgAi6ERQnqatBBZyn9asW+7rJmSt/8g==}
338
dependencies:
339
+
'@atproto/lexicon': 0.4.12
340
zod: 3.23.8
341
dev: false
342
···
2199
engines: {node: '>= 0.6'}
2200
dev: false
2201
2202
+
/cookie@0.7.2:
2203
+
resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
2204
engines: {node: '>= 0.6'}
2205
dev: false
2206