+1
-1
.github/workflows/build-and-push-ghcr.yaml
+1
-1
.github/workflows/build-and-push-ghcr.yaml
+1
ACCOUNT_MIGRATION.md
+1
ACCOUNT_MIGRATION.md
+2
-1
Dockerfile
+2
-1
Dockerfile
···
1
FROM node:20.11-alpine3.18 as build
2
3
+
RUN corepack enable
4
5
# Move files into the image and install
6
WORKDIR /app
7
COPY ./service ./
8
+
RUN corepack prepare --activate
9
RUN pnpm install --production --frozen-lockfile > /dev/null
10
11
# Uses assets from build stage to reduce build size
+51
-10
README.md
+51
-10
README.md
···
15
* [What is AT Protocol?](#what-is-at-protocol)
16
* [Where is the code?](#where-is-the-code)
17
* [What is the current status of federation?](#what-is-the-current-status-of-federation)
18
-
* [What should I know about running a PDS in the developer sandbox?](#what-should-i-know-about-running-a-pds-in-the-developer-sandbox)
19
- [Self-hosting PDS](#self-hosting-pds)
20
* [Preparation for self-hosting PDS](#preparation-for-self-hosting-pds)
21
* [Open your cloud firewall for HTTP and HTTPS](#open-your-cloud-firewall-for-http-and-https)
···
26
* [Creating an account using pdsadmin](#creating-an-account-using-pdsadmin)
27
* [Creating an account using an invite code](#creating-an-account-using-an-invite-code)
28
* [Using the Bluesky app with your PDS](#using-the-bluesky-app-with-your-pds)
29
* [Updating your PDS](#updating-your-pds)
30
31
<!-- tocstop -->
···
46
47
### Where is the code?
48
49
-
* [TypeScript code](https://github.com/bluesky-social/atproto)
50
* [Go code](https://github.com/bluesky-social/indigo)
51
52
### What is the current status of federation?
···
64
โ
Federated data (PDS hosting)
65
66
โ
Federated moderation (labeling)
67
-
68
-
### What should I know about running a PDS in the developer sandbox?
69
-
70
-
Developers may now run self-hosted PDS hosts on the production network!
71
-
72
-
Though it is still recommended to run experiments in the developer sandbox network.
73
-
74
-
Read the [SANDBOX.md](https://github.com/bluesky-social/pds/blob/main/SANDBOX.md) for an overview of the sandbox network.
75
76
## Self-hosting PDS
77
···
208
1. Enter the URL of your PDS (e.g. `https://example.com/`)
209
210
_Note: because the subdomain TLS certificate is created on-demand, it may take 10-30s for your handle to be accessible. If you aren't seeing your first post/profile, wait 30s and try to make another post._
211
212
### Updating your PDS
213
···
15
* [What is AT Protocol?](#what-is-at-protocol)
16
* [Where is the code?](#where-is-the-code)
17
* [What is the current status of federation?](#what-is-the-current-status-of-federation)
18
- [Self-hosting PDS](#self-hosting-pds)
19
* [Preparation for self-hosting PDS](#preparation-for-self-hosting-pds)
20
* [Open your cloud firewall for HTTP and HTTPS](#open-your-cloud-firewall-for-http-and-https)
···
25
* [Creating an account using pdsadmin](#creating-an-account-using-pdsadmin)
26
* [Creating an account using an invite code](#creating-an-account-using-an-invite-code)
27
* [Using the Bluesky app with your PDS](#using-the-bluesky-app-with-your-pds)
28
+
* [Setting up SMTP](#setting-up-smtp)
29
* [Updating your PDS](#updating-your-pds)
30
31
<!-- tocstop -->
···
46
47
### Where is the code?
48
49
+
* [TypeScript code](https://github.com/bluesky-social/atproto/tree/main/packages/pds)
50
* [Go code](https://github.com/bluesky-social/indigo)
51
52
### What is the current status of federation?
···
64
โ
Federated data (PDS hosting)
65
66
โ
Federated moderation (labeling)
67
68
## Self-hosting PDS
69
···
200
1. Enter the URL of your PDS (e.g. `https://example.com/`)
201
202
_Note: because the subdomain TLS certificate is created on-demand, it may take 10-30s for your handle to be accessible. If you aren't seeing your first post/profile, wait 30s and try to make another post._
203
+
204
+
### Setting up SMTP
205
+
206
+
To be able to verify users' email addresses and send other emails, you need to set up an SMTP server.
207
+
208
+
One way to do this is to use an email service. [Resend](https://resend.com/) and [SendGrid](https://sendgrid.com/) are two popular choices.
209
+
210
+
Create an account and API key on an email service, ensure your server allows access on the required ports, and set these variables in `/pds/pds.env` (example with Resend):
211
+
212
+
```
213
+
PDS_EMAIL_SMTP_URL=smtps://resend:<your api key here>@smtp.resend.com:465/
214
+
PDS_EMAIL_FROM_ADDRESS=admin@your.domain
215
+
```
216
+
217
+
If you prefer to use a standard SMTP server (a local one or from your email provider), put your account's username and password in the URL:
218
+
219
+
```
220
+
PDS_EMAIL_SMTP_URL=smtps://username:password@smtp.example.com/
221
+
```
222
+
223
+
Alternatively, if you're running a local sendmail-compatible mail service like Postfix or Exim on the same host, you can configure the PDS to use the sendmail transport by using such URL:
224
+
225
+
```
226
+
PDS_EMAIL_SMTP_URL=smtp:///?sendmail=true
227
+
```
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:
234
+
235
+
```
236
+
[sudo] docker logs pds
237
+
```
238
+
239
+
Note: these logs are not persisted, so they will be lost after server reboot.
240
+
241
+
Alternatively, you can configure the logs to be printed to a file by setting `LOG_DESTINATION`:
242
+
243
+
```
244
+
LOG_DESTINATION=/pds/pds.log
245
+
```
246
+
247
+
You can also change the minimum level of logs to be printed (default: `info`):
248
+
249
+
```
250
+
LOG_LEVEL=debug
251
+
```
252
253
### Updating your PDS
254
-168
SANDBOX.md
-168
SANDBOX.md
···
1
-
# Bluesky Developer Sandbox Guide
2
-
3
-
Welcome to the atproto federation developer sandbox!
4
-
5
-
This is a completely separate network from our production services that allows us to test out the federation architecture and wire protocol.
6
-
7
-
The federation sandbox environment is an area set up for exploration and testing of the technical components of the AT Protocol distributed social network. It is intended for developers and self-hosters to test out data availability in a federated environment.
8
-
9
-
To maintain a positive and productive developer experience, we've established this Code of Conduct that outlines our expectations and guidelines. This sandbox environment is initially meant to test the technical components of federation.
10
-
11
-
Given that this is a testing environment, we will be defederating from any instances that do not abide by these guidelines, or that cause unnecessary trouble, and will not be providing specific justifications for these decisions.
12
-
13
-
<!-- markdown-toc -i SANDBOX.md -->
14
-
15
-
<!-- toc -->
16
-
17
-
- [Guidelines that must be followed](#guidelines-that-must-be-followed)
18
-
* [Post responsibly](#post-responsibly)
19
-
* [Keep the emphasis on testing](#keep-the-emphasis-on-testing)
20
-
* [Do limit account creation](#do-limit-account-creation)
21
-
* [Donโt expect persistence or uptime](#dont-expect-persistence-or-uptime)
22
-
* [Don't advertise your service as being "Bluesky"](#dont-advertise-your-service-as-being-bluesky)
23
-
* [Do not mirror sandbox did:plcs to production](#do-not-mirror-sandbox-didplcs-to-production)
24
-
* [Status and Wipes](#status-and-wipes)
25
-
+ [๐ Beware of dragons!](#%F0%9F%90%89-beware-of-dragons)
26
-
+ [Routine wipes](#routine-wipes)
27
-
- [Getting started](#getting-started)
28
-
* [Auto-updates](#auto-updates)
29
-
* [Odds & Ends & Warnings & Reminders](#odds--ends--warnings--reminders)
30
-
- [Learn more about atproto federation](#learn-more-about-atproto-federation)
31
-
* [Network Services](#network-services)
32
-
+ [PLC](#plc)
33
-
+ [BGS](#bgs)
34
-
+ [Bluesky App View](#bluesky-app-view)
35
-
- [The PDS](#the-pds)
36
-
37
-
<!-- tocstop -->
38
-
39
-
# Guidelines that must be followed
40
-
41
-
Using the sandbox environment means you agree to adhere to our Guidelines. Please read the following carefully:
42
-
43
-
## Post responsibly
44
-
45
-
The sandbox environment is intended to test infrastructure, but user content may be created as part of this testing process. Content generation can be automated or manual.
46
-
47
-
Do not post content that requires active moderation or violates the [Bluesky Community Guidelines](https://bsky.social/about/support/community-guidelines).
48
-
49
-
## Keep the emphasis on testing
50
-
51
-
Weโre striving to maintain a sandbox environment that fosters learning and technical growth. We will defederate with instances that recruit users without making it clear that this is a test environment.
52
-
53
-
## Do limit account creation
54
-
55
-
We don't want any one server using a majority of the resources in the sandbox. To keep things balanced, to start, weโre only federating with Personal Data Servers (PDS) with up to 1000 accounts. However, we may change this if needed.
56
-
57
-
## Donโt expect persistence or uptime
58
-
59
-
We will routinely be wiping the data on our infrastructure. This is intended to reset the network state and to test sync protocols. Accounts and content should not be mirrored or migrated between the sandbox and real-world environments.
60
-
61
-
## Don't advertise your service as being "Bluesky"
62
-
63
-
This is a developer sandbox and is meant for technical users. Do not promote your service as being a way for non-technical users to use Bluesky.
64
-
65
-
## Do not mirror sandbox did:plcs to production
66
-
67
-
68
-
## Status and Wipes
69
-
70
-
### ๐ย Beware of dragons!
71
-
72
-
This hasnโt been production tested yet. It seems to work pretty well, but who knows whatโs lurking under the surface โ that's what this sandbox is for! Have patience with us as we prep for federation.
73
-
74
-
On that note, please give us feedback either in [Issues](https://github.com/bluesky-social/atproto/issues) (actual bugs) or [Discussions](https://github.com/bluesky-social/atproto/discussions) (higher-level questions/discussions) on the [atproto repo](https://github.com/bluesky-social/atproto).
75
-
76
-
### Routine wipes
77
-
78
-
As part of the sandbox, we will be doing routine wipes of all network data.
79
-
80
-
We expect to perform wipes on a weekly or bi-weekly basis, though we reserve the right to do a wipe at any point.
81
-
82
-
When we wipe data, we will be wiping it on all services (BGS, App View, PLC). We will also mark any existing DIDs as โinvalidโ & will refuse to index those accounts in the next epoch of the network to discourage users from attempting to โrolloverโ their accounts across wipes.
83
-
84
-
# Getting started
85
-
86
-
For complete instructions on getting your PDS set up, check out the [README](./README.md).
87
-
88
-
To access your account, youโll log in with the client of your choice in the exact same way that you log into production Bluesky, for instance the [Bluesky web client](https://app.bsky-sandbox.dev/). When you do so, please provide the url of *your PDS* as the service that you wish to log in to.
89
-
90
-
## Auto-updates
91
-
92
-
Weโve included Watchtower in the PDS distribution. Every day at midnight PST, this will check our GitHub container registry to see if there is a new version of the PDS container & update it on your service.
93
-
94
-
This will allow us to rapidly iterate on protocol changes, as weโll be able to push them out to the network on a daily basis.
95
-
96
-
When we do routine network wipes, we will be pushing out a database migration to participating PDS that wipes content and accounts.
97
-
98
-
You are within your rights to disable Watchtower auto-updates, but we strongly encourage their use and will not be providing support if you decide not to run the most up-to-date PDS distribution.
99
-
100
-
## Odds & Ends & Warnings & Reminders
101
-
102
-
๐งช Experiment & have fun!
103
-
104
-
๐คย Run [feed generators](https://github.com/bluesky-social/feed-generator). They should work the exact same way as production - be sure to adjust your env to listen to Sandbox BGS!
105
-
106
-
๐ Feel free to run your own AppView or BGS - although itโs a bit more involved & weโll be providing limited support for this.
107
-
108
-
โ๏ธ Because the atproto network is a distributed system, your PDS can no longer definitively read-after-write. Updates are generally processed pretty quickly, however this discrepancy may show in certain circumstances, such as updating a profile or replying to a thread. We're working on utilities to make this easier to handle.
109
-
110
-
โฑ๏ธ As a specific case of the above, because we use on-demand TLS with Caddy, your profile may not load at first - please be patient & it should load within 5-10s after account creation. Again, we'll be working to smooth over this.
111
-
112
-
๐คย Your PDS will provide your handle by default. Custom domain handles should work exactly the same in sandbox as they do on production Bluesky. Although you will not be able to re-use your handle from production Bluesky as you can only have one DID set per handle.
113
-
114
-
โ ๏ธ If you follow the self-hosted PDS setup instructions, youโll have private key material in your env file - be careful about sharing that!
115
-
116
-
๐ฃย This is a sandbox version of a **public broadcast protocol** - please do not share sensitive information.
117
-
118
-
๐คย Help each other out! Respond to issues & discussions, chat in the community-run [Discord](https://discord.gg/3srmDsHSZJ), etc.
119
-
120
-
# Learn more about atproto federation
121
-
122
-
Check out the [high-level view of federation](https://bsky.social/about/blog/5-5-2023-federation-architecture).
123
-
124
-
Dive deeper with the [atproto docs](https://atproto.com/docs).
125
-
126
-
## Network Services
127
-
128
-
We are running three services: PLC, BGS, Bluesky "App View"
129
-
130
-
### PLC
131
-
132
-
**Hostname:** `plc.bsky-sandbox.dev`
133
-
134
-
**Code:** https://github.com/bluesky-social/did-method-plc
135
-
136
-
PLC is the default DID provider for the network. DIDs are the root of your identity in the network. Sandbox PLC functions exactly the same as production PLC, but it is run as a separate service with a separate dataset. The DID resolution client in the self-hosted PDS package is set up to talk the correct PLC service.
137
-
138
-
### BGS
139
-
140
-
**Hostname:** `bgs.bsky-sandbox.dev`
141
-
142
-
**Code:** https://github.com/bluesky-social/indigo/tree/main/bgs
143
-
144
-
BGS (Big Graph Service) is the firehose for the entire network. It collates data from PDSs & rebroadcasts them out on one giant websocket.
145
-
146
-
BGS has to find out about your server somehow, so when we do any sort of write, we ping BGS with `com.atproto.sync.requestCrawl` to notify it of new data. This is done automatically in the self-hosted PDS package.
147
-
148
-
If youโre familiar with the Bluesky production firehose, you can subscribe to the BGS firehose in the exact same manner, the interface & data should be identical
149
-
150
-
### Bluesky App View
151
-
152
-
**Hostname:** `api.bsky-sandbox.dev`
153
-
154
-
**Code:** https://github.com/bluesky-social/atproto/tree/main/packages/bsky
155
-
156
-
The Bluesky App View aggregates data from across the network to service the Bluesky microblogging application. It consumes the firehose from the BGS, processing it into serviceable views of the network such as feeds, post threads, and user profiles. It functions as a fairly traditional web service.
157
-
158
-
When you request a Bluesky-related view from your PDS (`getProfile` for instance), your PDS will actually proxy the request up to App View.
159
-
160
-
Feel free to experiment with running your own App View if you like!
161
-
162
-
# The PDS
163
-
164
-
The PDS (Personal Data Server) is where users host their social data such as posts, profiles, likes, and follows. The goal of the sandbox is to federate many PDS together, so we hope youโll run your own.
165
-
166
-
Weโre not actually running a Bluesky PDS in sandbox. You might see Bluesky team members' accounts in the sandbox environment, but those are self-hosted too.
167
-
168
-
The PDS that youโll be running is much of the same code that is running on the Bluesky production PDS. Notably, all of the in-pds-appview code has been torn out. You can see the actual PDS code that youโre running on the [atproto/simplify-pds](https://github.com/bluesky-social/atproto/pull/1198) branch.
···
+1
installer.sh
+1
installer.sh
···
333
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=$(eval "${GENERATE_K256_PRIVATE_KEY_CMD}")
334
PDS_DATA_DIRECTORY=${PDS_DATADIR}
335
PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATADIR}/blocks
336
PDS_DID_PLC_URL=${PDS_DID_PLC_URL}
337
PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL}
338
PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID}
···
333
PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=$(eval "${GENERATE_K256_PRIVATE_KEY_CMD}")
334
PDS_DATA_DIRECTORY=${PDS_DATADIR}
335
PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATADIR}/blocks
336
+
PDS_BLOB_UPLOAD_LIMIT=52428800
337
PDS_DID_PLC_URL=${PDS_DID_PLC_URL}
338
PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL}
339
PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID}
+2
-2
pdsadmin/help.sh
+2
-2
pdsadmin/help.sh
···
25
Takedown an account specified by DID.
26
e.g. pdsadmin account takedown did:plc:xyz123abc456
27
untakedown <DID>
28
-
Remove a takedown an account specified by DID.
29
e.g. pdsadmin account untakedown did:plc:xyz123abc456
30
-
password-reset <DID>
31
Reset a password for an account specified by DID.
32
e.g. pdsadmin account reset-password did:plc:xyz123abc456
33
···
25
Takedown an account specified by DID.
26
e.g. pdsadmin account takedown did:plc:xyz123abc456
27
untakedown <DID>
28
+
Remove a takedown from an account specified by DID.
29
e.g. pdsadmin account untakedown did:plc:xyz123abc456
30
+
reset-password <DID>
31
Reset a password for an account specified by DID.
32
e.g. pdsadmin account reset-password did:plc:xyz123abc456
33
+2
-1
service/package.json
+2
-1
service/package.json
+416
-267
service/pnpm-lock.yaml
+416
-267
service/pnpm-lock.yaml
···
6
7
dependencies:
8
'@atproto/pds':
9
-
specifier: 0.4.38
10
-
version: 0.4.38
11
12
packages:
13
14
-
/@atproto-labs/fetch-node@0.1.0:
15
-
resolution: {integrity: sha512-DUHgaGw8LBqiGg51pUDuWK/alMcmNbpcK7ALzlF2Gw//TNLTsgrj0qY9aEtK+np9rEC+x/o3bN4SGnuQEpgqIg==}
16
dependencies:
17
-
'@atproto-labs/fetch': 0.1.0
18
-
'@atproto-labs/pipe': 0.1.0
19
ipaddr.js: 2.2.0
20
-
psl: 1.9.0
21
-
undici: 6.19.2
22
dev: false
23
24
-
/@atproto-labs/fetch@0.1.0:
25
-
resolution: {integrity: sha512-uirja+uA/C4HNk7vayM+AJqsccxQn2wVziUHxbsjJGt/K6Q8ZOKDaEX2+GrcXvpUVcqUKh+94JFjuzH+CAEUlg==}
26
dependencies:
27
-
'@atproto-labs/pipe': 0.1.0
28
-
optionalDependencies:
29
-
zod: 3.23.8
30
dev: false
31
32
-
/@atproto-labs/pipe@0.1.0:
33
-
resolution: {integrity: sha512-ghOqHFyJlQVFPESzlVHjKroP0tPzbmG5Jms0dNI9yLDEfL8xp4OFPWLX4f6T8mRq69wWs4nIDM3sSsFbFqLa1w==}
34
dev: false
35
36
-
/@atproto-labs/simple-store-memory@0.1.0:
37
-
resolution: {integrity: sha512-a32ojJsGfZucthw1ecGk3Vd0UATOlUTVEOEL+M7OHdvzGbwZ+KPtQ/jgCtCMmcwhdBS0mAVqc6e1fyk4MVhzsA==}
38
dependencies:
39
-
'@atproto-labs/simple-store': 0.1.0
40
lru-cache: 10.2.0
41
dev: false
42
43
-
/@atproto-labs/simple-store@0.1.0:
44
-
resolution: {integrity: sha512-h/3ZRTyzXAxyw63rY01zwqDXR486CauubiQdo3b8OTJtZqw/i4qQi72GuhvQDvRrm4IzbNwEOhGgLL5bWX1JPw==}
45
dev: false
46
47
-
/@atproto/api@0.12.22:
48
-
resolution: {integrity: sha512-TIXSnf3qqyX40Ei/FkK4H24w+7s5rOc63TPwrGakRBOqIgSNBKOggei8I600fJ/AXB7HO6Vp9tBmDVOt2+021A==}
49
dependencies:
50
-
'@atproto/common-web': 0.3.0
51
-
'@atproto/lexicon': 0.4.0
52
-
'@atproto/syntax': 0.3.0
53
-
'@atproto/xrpc': 0.5.0
54
multiformats: 9.9.0
55
tlds: 1.250.0
56
dev: false
57
58
-
/@atproto/aws@0.2.0:
59
-
resolution: {integrity: sha512-F09SHiC9CX3ydfrvYZbkpfES48UGCQNnznNVgJ3QyKSN8ON+BoWmGCpAFtn3AWeEoU0w9h0hypNvUm5nORv+5g==}
60
dependencies:
61
-
'@atproto/common': 0.4.0
62
-
'@atproto/crypto': 0.4.0
63
-
'@atproto/repo': 0.4.0
64
'@aws-sdk/client-cloudfront': 3.515.0
65
'@aws-sdk/client-kms': 3.515.0
66
'@aws-sdk/client-s3': 3.515.0
67
'@aws-sdk/lib-storage': 3.515.0(@aws-sdk/client-s3@3.515.0)
68
-
'@noble/curves': 1.3.0
69
key-encoder: 2.0.3
70
multiformats: 9.9.0
71
uint8arrays: 3.0.0
···
73
- aws-crt
74
dev: false
75
76
-
/@atproto/common-web@0.3.0:
77
-
resolution: {integrity: sha512-67VnV6JJyX+ZWyjV7xFQMypAgDmjVaR9ZCuU/QW+mqlqI7fex2uL4Fv+7/jHadgzhuJHVd6OHOvNn0wR5WZYtA==}
78
dependencies:
79
graphemer: 1.4.0
80
multiformats: 9.9.0
···
91
zod: 3.23.8
92
dev: false
93
94
-
/@atproto/common@0.4.0:
95
-
resolution: {integrity: sha512-yOXuPlCjT/OK9j+neIGYn9wkxx/AlxQSucysAF0xgwu0Ji8jAtKBf9Jv6R5ObYAjAD/kVUvEYumle+Yq/R9/7g==}
96
dependencies:
97
-
'@atproto/common-web': 0.3.0
98
'@ipld/dag-cbor': 7.0.3
99
cbor-x: 1.5.8
100
iso-datestring-validator: 2.2.2
···
112
uint8arrays: 3.0.0
113
dev: false
114
115
-
/@atproto/crypto@0.4.0:
116
-
resolution: {integrity: sha512-Kj/4VgJ7hzzXvE42L0rjzP6lM0tai+OfPnP1rxJ+UZg/YUDtuewL4uapnVoWXvlNceKgaLZH98g5n9gXBVTe5Q==}
117
dependencies:
118
-
'@noble/curves': 1.3.0
119
-
'@noble/hashes': 1.3.3
120
uint8arrays: 3.0.0
121
dev: false
122
123
-
/@atproto/identity@0.4.0:
124
-
resolution: {integrity: sha512-KKdVlqBgkFuTUx3KFiiQe0LuK9kopej1bhKm6SHRPEYbSEPFmRZQMY9TAjWJQrvQt8DpQzz6kVGjASFEjd3teQ==}
125
dependencies:
126
-
'@atproto/common-web': 0.3.0
127
-
'@atproto/crypto': 0.4.0
128
-
axios: 0.27.2
129
-
transitivePeerDependencies:
130
-
- debug
131
dev: false
132
133
-
/@atproto/jwk-jose@0.1.0:
134
-
resolution: {integrity: sha512-sfucq97haLJ9e04tVUIUkNtBOzait/6IsmsKHx29OP6gT3bW6iyDBPJeJjnOtP814Ij7Ve6cucb3WDk9mNXzBg==}
135
dependencies:
136
-
'@atproto/jwk': 0.1.0
137
jose: 5.2.2
138
dev: false
139
140
-
/@atproto/jwk@0.1.0:
141
-
resolution: {integrity: sha512-MP36DvOpj/GGIWdKAwOj5rI4qVwc08PWNlcxaqZf8IlgocSUSCEgFWJlVb/OwvmrQkTH0enpqRkcLcD2123SZw==}
142
dependencies:
143
multiformats: 9.9.0
144
zod: 3.23.8
145
dev: false
146
147
-
/@atproto/lexicon@0.4.0:
148
-
resolution: {integrity: sha512-RvCBKdSI4M8qWm5uTNz1z3R2yIvIhmOsMuleOj8YR6BwRD+QbtUBy3l+xQ7iXf4M5fdfJFxaUNa6Ty0iRwdKqQ==}
149
dependencies:
150
-
'@atproto/common-web': 0.3.0
151
-
'@atproto/syntax': 0.3.0
152
iso-datestring-validator: 2.2.2
153
multiformats: 9.9.0
154
zod: 3.23.8
155
dev: false
156
157
-
/@atproto/oauth-provider@0.1.0:
158
-
resolution: {integrity: sha512-AXE5XvUKke94uhNHv9rwAB9ZAaIkjdZXg/h09oj1xkhsYzkyYbkRrEC8zH1pnyJl3w1sIDmS6+/ldo0umH+meA==}
159
dependencies:
160
-
'@atproto-labs/fetch': 0.1.0
161
-
'@atproto-labs/fetch-node': 0.1.0
162
-
'@atproto-labs/pipe': 0.1.0
163
-
'@atproto-labs/simple-store': 0.1.0
164
-
'@atproto-labs/simple-store-memory': 0.1.0
165
-
'@atproto/jwk': 0.1.0
166
-
'@atproto/jwk-jose': 0.1.0
167
-
'@atproto/oauth-types': 0.1.0
168
'@hapi/accept': 6.0.3
169
'@hapi/bourne': 3.0.0
170
-
cookie: 0.6.0
171
http-errors: 2.0.0
172
jose: 5.2.2
173
-
oidc-token-hash: 5.0.3
174
-
psl: 1.9.0
175
zod: 3.23.8
176
-
optionalDependencies:
177
-
ioredis: 5.3.2
178
-
keygrip: 1.1.0
179
transitivePeerDependencies:
180
- supports-color
181
dev: false
182
183
-
/@atproto/oauth-types@0.1.0:
184
-
resolution: {integrity: sha512-lPRofK8woZi38DAXvhgPbsYSKWooWczOVt9xrDE7hVbM83BH8GBI+uugcAB2oDeoA8JbKlOW9P0q1Hb3dgx/bA==}
185
dependencies:
186
-
'@atproto/jwk': 0.1.0
187
zod: 3.23.8
188
dev: false
189
190
-
/@atproto/pds@0.4.38:
191
-
resolution: {integrity: sha512-sjs7BO8NQVwjI4eVa5MAGDXzAG37rxMKsqByqR8/mKaE7OVXenTQcNKTgbUMD5bZ9O9DYW1q4m8O94RpAL24Rw==}
192
-
hasBin: true
193
dependencies:
194
-
'@atproto-labs/fetch-node': 0.1.0
195
-
'@atproto/api': 0.12.22
196
-
'@atproto/aws': 0.2.0
197
-
'@atproto/common': 0.4.0
198
-
'@atproto/crypto': 0.4.0
199
-
'@atproto/identity': 0.4.0
200
-
'@atproto/lexicon': 0.4.0
201
-
'@atproto/oauth-provider': 0.1.0
202
-
'@atproto/repo': 0.4.0
203
-
'@atproto/syntax': 0.3.0
204
-
'@atproto/xrpc': 0.5.0
205
-
'@atproto/xrpc-server': 0.5.2
206
'@did-plc/lib': 0.0.4
207
better-sqlite3: 10.1.0
208
bytes: 3.1.2
209
compression: 1.7.4
210
cors: 2.8.5
211
-
disposable-email: 0.2.3
212
express: 4.18.2
213
express-async-errors: 3.1.1(express@4.18.2)
214
file-type: 16.5.4
···
225
p-queue: 6.6.2
226
pino: 8.21.0
227
pino-http: 8.6.1
228
-
sharp: 0.32.6
229
typed-emitter: 2.1.0
230
uint8arrays: 3.0.0
231
zod: 3.23.8
232
transitivePeerDependencies:
233
- aws-crt
···
237
- utf-8-validate
238
dev: false
239
240
-
/@atproto/repo@0.4.0:
241
-
resolution: {integrity: sha512-LB0DF/D8r8hB+qiGB0sWZuq7TSJYbWel+t572aCrLeCOmbRgnLkGPLUTOOUvLFYv8xz1BPZTbI8hy/vcUV79VA==}
242
dependencies:
243
-
'@atproto/common': 0.4.0
244
-
'@atproto/common-web': 0.3.0
245
-
'@atproto/crypto': 0.4.0
246
-
'@atproto/lexicon': 0.4.0
247
-
'@ipld/car': 3.2.4
248
'@ipld/dag-cbor': 7.0.3
249
multiformats: 9.9.0
250
uint8arrays: 3.0.0
251
zod: 3.23.8
252
dev: false
253
254
-
/@atproto/syntax@0.3.0:
255
-
resolution: {integrity: sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA==}
256
dev: false
257
258
-
/@atproto/xrpc-server@0.5.2:
259
-
resolution: {integrity: sha512-mBCKZO6ckT7E8cosREDGr5Q8ZQzeSHlAcNrM+KtIpHPf13qW7s1xOzaexVcSP46IBawlV36MYPkCKlWRyHdecg==}
260
dependencies:
261
-
'@atproto/common': 0.4.0
262
-
'@atproto/crypto': 0.4.0
263
-
'@atproto/lexicon': 0.4.0
264
-
'@atproto/xrpc': 0.5.0
265
cbor-x: 1.5.8
266
express: 4.18.2
267
http-errors: 2.0.0
···
276
- utf-8-validate
277
dev: false
278
279
-
/@atproto/xrpc@0.5.0:
280
-
resolution: {integrity: sha512-swu+wyOLvYW4l3n+VAuJbHcPcES+tin2Lsrp8Bw5aIXIICiuFn1YMFlwK9JwVUzTH21Py1s1nHEjr4CJeElJog==}
281
dependencies:
282
-
'@atproto/lexicon': 0.4.0
283
zod: 3.23.8
284
dev: false
285
···
1092
- debug
1093
dev: false
1094
1095
/@hapi/accept@6.0.3:
1096
resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==}
1097
dependencies:
···
1099
'@hapi/hoek': 11.0.4
1100
dev: false
1101
1102
/@hapi/boom@10.0.1:
1103
resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==}
1104
dependencies:
···
1109
resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==}
1110
dev: false
1111
1112
/@hapi/hoek@11.0.4:
1113
resolution: {integrity: sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==}
1114
dev: false
1115
1116
-
/@ioredis/commands@1.2.0:
1117
-
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
1118
dev: false
1119
1120
-
/@ipld/car@3.2.4:
1121
-
resolution: {integrity: sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==}
1122
dependencies:
1123
-
'@ipld/dag-cbor': 7.0.3
1124
-
multiformats: 9.9.0
1125
-
varint: 6.0.0
1126
dev: false
1127
1128
/@ipld/dag-cbor@7.0.3:
···
1144
wrap-ansi-cjs: /wrap-ansi@7.0.0
1145
dev: false
1146
1147
-
/@noble/curves@1.3.0:
1148
-
resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==}
1149
dependencies:
1150
-
'@noble/hashes': 1.3.3
1151
dev: false
1152
1153
-
/@noble/hashes@1.3.3:
1154
-
resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==}
1155
-
engines: {node: '>= 16'}
1156
dev: false
1157
1158
/@noble/secp256k1@1.7.1:
···
1702
engines: {node: '>=8.0.0'}
1703
dev: false
1704
1705
-
/axios@0.27.2:
1706
-
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==}
1707
-
dependencies:
1708
-
follow-redirects: 1.15.5
1709
-
form-data: 4.0.0
1710
-
transitivePeerDependencies:
1711
-
- debug
1712
dev: false
1713
1714
/axios@1.6.7:
···
1721
- debug
1722
dev: false
1723
1724
-
/b4a@1.6.6:
1725
-
resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
1726
-
dev: false
1727
-
1728
/balanced-match@1.0.2:
1729
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1730
dev: false
1731
1732
-
/bare-events@2.2.0:
1733
-
resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==}
1734
-
requiresBuild: true
1735
-
dev: false
1736
-
optional: true
1737
-
1738
-
/bare-fs@2.1.5:
1739
-
resolution: {integrity: sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==}
1740
-
requiresBuild: true
1741
-
dependencies:
1742
-
bare-events: 2.2.0
1743
-
bare-os: 2.2.0
1744
-
bare-path: 2.1.0
1745
-
streamx: 2.16.1
1746
-
dev: false
1747
-
optional: true
1748
-
1749
-
/bare-os@2.2.0:
1750
-
resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==}
1751
-
requiresBuild: true
1752
-
dev: false
1753
-
optional: true
1754
-
1755
-
/bare-path@2.1.0:
1756
-
resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==}
1757
-
requiresBuild: true
1758
-
dependencies:
1759
-
bare-os: 2.2.0
1760
-
dev: false
1761
-
optional: true
1762
-
1763
/base64-js@1.5.1:
1764
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
1765
dev: false
···
1817
1818
/boolean@3.2.0:
1819
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
1820
dev: false
1821
1822
/bowser@2.11.0:
···
1987
engines: {node: '>= 0.6'}
1988
dev: false
1989
1990
-
/cookie@0.6.0:
1991
-
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
1992
engines: {node: '>= 0.6'}
1993
dev: false
1994
···
2083
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
2084
dev: false
2085
2086
-
/detect-libc@2.0.2:
2087
-
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
2088
engines: {node: '>=8'}
2089
dev: false
2090
2091
-
/disposable-email@0.2.3:
2092
-
resolution: {integrity: sha512-gkBQQ5Res431ZXqLlAafrXHizG7/1FWmi8U2RTtriD78Vc10HhBUvdJun3R4eSF0KRIQQJs+wHlxjkED/Hr1EQ==}
2093
dev: false
2094
2095
/dom-serializer@1.4.1:
···
2249
- supports-color
2250
dev: false
2251
2252
-
/fast-fifo@1.3.2:
2253
-
resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
2254
-
dev: false
2255
-
2256
/fast-printf@1.6.9:
2257
resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==}
2258
engines: {node: '>=10.0'}
···
2569
elliptic: 6.5.4
2570
dev: false
2571
2572
-
/keygrip@1.1.0:
2573
-
resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
2574
-
engines: {node: '>= 0.6'}
2575
-
requiresBuild: true
2576
-
dependencies:
2577
-
tsscmp: 1.0.6
2578
-
dev: false
2579
-
optional: true
2580
-
2581
/kysely@0.22.0:
2582
resolution: {integrity: sha512-ZE3qWtnqLOalodzfK5QUEcm7AEulhxsPNuKaGFsC3XiqO92vMLm+mAHk/NnbSIOtC4RmGm0nsv700i8KDp1gfQ==}
2583
engines: {node: '>=14.0.0'}
···
2594
/lru-cache@10.2.0:
2595
resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
2596
engines: {node: 14 || >=16.14}
2597
-
dev: false
2598
-
2599
-
/lru-cache@6.0.0:
2600
-
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
2601
-
engines: {node: '>=10'}
2602
-
dependencies:
2603
-
yallist: 4.0.0
2604
dev: false
2605
2606
/media-typer@0.3.0:
···
2701
resolution: {integrity: sha512-uPEjtyh2tFEvWYt4Jw7McOD5FPcHkcxm/tHZc5PWaDB3JYq0rGFUbgaAK+CT5pYpQddBfsZVWI08OwoRfdfbcQ==}
2702
engines: {node: '>=10'}
2703
dependencies:
2704
-
semver: 7.6.0
2705
-
dev: false
2706
-
2707
-
/node-addon-api@6.1.0:
2708
-
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
2709
dev: false
2710
2711
/node-gyp-build-optional-packages@5.1.1:
···
2713
hasBin: true
2714
requiresBuild: true
2715
dependencies:
2716
-
detect-libc: 2.0.2
2717
dev: false
2718
optional: true
2719
···
2736
2737
/object-inspect@1.13.1:
2738
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
2739
-
dev: false
2740
-
2741
-
/oidc-token-hash@5.0.3:
2742
-
resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==}
2743
-
engines: {node: ^10.13.0 || >=12.0.0}
2744
dev: false
2745
2746
/on-exit-leak-free@2.1.2:
···
2866
engines: {node: '>=10'}
2867
hasBin: true
2868
dependencies:
2869
-
detect-libc: 2.0.2
2870
expand-template: 2.0.3
2871
github-from-package: 0.0.0
2872
minimist: 1.2.8
···
2901
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
2902
dev: false
2903
2904
-
/psl@1.9.0:
2905
-
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
2906
-
dev: false
2907
-
2908
/pump@3.0.0:
2909
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
2910
dependencies:
···
2919
side-channel: 1.0.5
2920
dev: false
2921
2922
-
/queue-tick@1.0.1:
2923
-
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
2924
-
requiresBuild: true
2925
-
dev: false
2926
-
2927
/quick-format-unescaped@4.0.4:
2928
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
2929
dev: false
···
3039
resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
3040
dev: false
3041
3042
-
/semver@7.6.0:
3043
-
resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
3044
engines: {node: '>=10'}
3045
hasBin: true
3046
-
dependencies:
3047
-
lru-cache: 6.0.0
3048
dev: false
3049
3050
/send@0.18.0:
···
3096
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
3097
dev: false
3098
3099
-
/sharp@0.32.6:
3100
-
resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==}
3101
-
engines: {node: '>=14.15.0'}
3102
requiresBuild: true
3103
dependencies:
3104
color: 4.2.3
3105
-
detect-libc: 2.0.2
3106
-
node-addon-api: 6.1.0
3107
-
prebuild-install: 7.1.1
3108
-
semver: 7.6.0
3109
-
simple-get: 4.0.1
3110
-
tar-fs: 3.0.5
3111
-
tunnel-agent: 0.6.0
3112
dev: false
3113
3114
/shebang-command@2.0.0:
···
3188
readable-stream: 3.6.2
3189
dev: false
3190
3191
-
/streamx@2.16.1:
3192
-
resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==}
3193
-
dependencies:
3194
-
fast-fifo: 1.3.2
3195
-
queue-tick: 1.0.1
3196
-
optionalDependencies:
3197
-
bare-events: 2.2.0
3198
-
dev: false
3199
-
3200
/string-width@4.2.3:
3201
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3202
engines: {node: '>=8'}
···
3261
tar-stream: 2.2.0
3262
dev: false
3263
3264
-
/tar-fs@3.0.5:
3265
-
resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==}
3266
-
dependencies:
3267
-
pump: 3.0.0
3268
-
tar-stream: 3.1.7
3269
-
optionalDependencies:
3270
-
bare-fs: 2.1.5
3271
-
bare-path: 2.1.0
3272
-
dev: false
3273
-
3274
/tar-stream@2.2.0:
3275
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
3276
engines: {node: '>=6'}
···
3282
readable-stream: 3.6.2
3283
dev: false
3284
3285
-
/tar-stream@3.1.7:
3286
-
resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==}
3287
-
dependencies:
3288
-
b4a: 1.6.6
3289
-
fast-fifo: 1.3.2
3290
-
streamx: 2.16.1
3291
-
dev: false
3292
-
3293
/thread-stream@2.7.0:
3294
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
3295
dependencies:
···
3322
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
3323
dev: false
3324
3325
-
/tsscmp@1.0.6:
3326
-
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
3327
-
engines: {node: '>=0.6.x'}
3328
-
requiresBuild: true
3329
-
dev: false
3330
-
optional: true
3331
-
3332
/tunnel-agent@0.6.0:
3333
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
3334
dependencies:
···
3372
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
3373
dev: false
3374
3375
-
/undici@6.19.2:
3376
-
resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==}
3377
engines: {node: '>=18.17'}
3378
dev: false
3379
···
3450
optional: true
3451
utf-8-validate:
3452
optional: true
3453
-
dev: false
3454
-
3455
-
/yallist@4.0.0:
3456
-
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
3457
dev: false
3458
3459
/zod@3.23.8:
···
6
7
dependencies:
8
'@atproto/pds':
9
+
specifier: 0.4.166
10
+
version: 0.4.166
11
12
packages:
13
14
+
/@atproto-labs/fetch-node@0.1.9:
15
+
resolution: {integrity: sha512-8sHDDXZEzQptLu8ddUU/8U+THS6dumgPynVX0/1PjUYd4S/FWyPcz6yMIiVChTfzKnZvYRRz47+qvOKhydrHQw==}
16
+
engines: {node: '>=18.7.0'}
17
dependencies:
18
+
'@atproto-labs/fetch': 0.2.3
19
+
'@atproto-labs/pipe': 0.1.1
20
ipaddr.js: 2.2.0
21
+
undici: 6.20.1
22
dev: false
23
24
+
/@atproto-labs/fetch@0.2.3:
25
+
resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==}
26
dependencies:
27
+
'@atproto-labs/pipe': 0.1.1
28
dev: false
29
30
+
/@atproto-labs/pipe@0.1.1:
31
+
resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==}
32
dev: false
33
34
+
/@atproto-labs/simple-store-memory@0.1.3:
35
+
resolution: {integrity: sha512-jkitT9+AtU+0b28DoN92iURLaCt/q/q4yX8q6V+9LSwYlUTqKoj/5NFKvF7x6EBuG+gpUdlcycbH7e60gjOhRQ==}
36
dependencies:
37
+
'@atproto-labs/simple-store': 0.2.0
38
lru-cache: 10.2.0
39
dev: false
40
41
+
/@atproto-labs/simple-store@0.2.0:
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
79
'@aws-sdk/lib-storage': 3.515.0(@aws-sdk/client-s3@3.515.0)
80
+
'@noble/curves': 1.8.1
81
key-encoder: 2.0.3
82
multiformats: 9.9.0
83
uint8arrays: 3.0.0
···
85
- aws-crt
86
dev: false
87
88
+
/@atproto/common-web@0.4.2:
89
+
resolution: {integrity: sha512-vrXwGNoFGogodjQvJDxAeP3QbGtawgZute2ed1XdRO0wMixLk3qewtikZm06H259QDJVu6voKC5mubml+WgQUw==}
90
dependencies:
91
graphemer: 1.4.0
92
multiformats: 9.9.0
···
103
zod: 3.23.8
104
dev: false
105
106
+
/@atproto/common@0.4.11:
107
+
resolution: {integrity: sha512-Knv0viYXNMfCdIE7jLUiWJKnnMfEwg+vz2epJQi8WOjqtqCFb3W/3Jn72ZiuovIfpdm13MaOiny6w2NErUQC6g==}
108
+
engines: {node: '>=18.7.0'}
109
dependencies:
110
+
'@atproto/common-web': 0.4.2
111
'@ipld/dag-cbor': 7.0.3
112
cbor-x: 1.5.8
113
iso-datestring-validator: 2.2.2
···
125
uint8arrays: 3.0.0
126
dev: false
127
128
+
/@atproto/crypto@0.4.4:
129
+
resolution: {integrity: sha512-Yq9+crJ7WQl7sxStVpHgie5Z51R05etaK9DLWYG/7bR5T4bhdcIgF6IfklLShtZwLYdVVj+K15s0BqW9a8PSDA==}
130
+
engines: {node: '>=18.7.0'}
131
dependencies:
132
+
'@noble/curves': 1.8.1
133
+
'@noble/hashes': 1.7.1
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'}
146
dependencies:
147
+
'@atproto/common-web': 0.4.2
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
170
iso-datestring-validator: 2.2.2
171
multiformats: 9.9.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
201
+
'@atproto-labs/fetch-node': 0.1.9
202
+
'@atproto-labs/pipe': 0.1.1
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
223
+
ioredis: 5.3.2
224
jose: 5.2.2
225
zod: 3.23.8
226
transitivePeerDependencies:
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
262
bytes: 3.1.2
263
compression: 1.7.4
264
cors: 2.8.5
265
+
disposable-email-domains-js: 1.5.0
266
express: 4.18.2
267
express-async-errors: 3.1.1(express@4.18.2)
268
file-type: 16.5.4
···
279
p-queue: 6.6.2
280
pino: 8.21.0
281
pino-http: 8.6.1
282
+
sharp: 0.33.5
283
typed-emitter: 2.1.0
284
uint8arrays: 3.0.0
285
+
undici: 6.20.1
286
zod: 3.23.8
287
transitivePeerDependencies:
288
- aws-crt
···
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
306
+
varint: 6.0.0
307
zod: 3.23.8
308
dev: false
309
310
+
/@atproto/syntax@0.4.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
···
1149
- debug
1150
dev: false
1151
1152
+
/@emnapi/runtime@1.3.1:
1153
+
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
1154
+
requiresBuild: true
1155
+
dependencies:
1156
+
tslib: 2.6.2
1157
+
dev: false
1158
+
optional: true
1159
+
1160
/@hapi/accept@6.0.3:
1161
resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==}
1162
dependencies:
···
1164
'@hapi/hoek': 11.0.4
1165
dev: false
1166
1167
+
/@hapi/address@5.1.1:
1168
+
resolution: {integrity: sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==}
1169
+
engines: {node: '>=14.0.0'}
1170
+
dependencies:
1171
+
'@hapi/hoek': 11.0.4
1172
+
dev: false
1173
+
1174
/@hapi/boom@10.0.1:
1175
resolution: {integrity: sha512-ERcCZaEjdH3OgSJlyjVk8pHIFeus91CjKP3v+MpgBNp5IvGzP2l/bRiD78nqYcKPaZdbKkK5vDBVPd2ohHBlsA==}
1176
dependencies:
···
1181
resolution: {integrity: sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==}
1182
dev: false
1183
1184
+
/@hapi/content@6.0.0:
1185
+
resolution: {integrity: sha512-CEhs7j+H0iQffKfe5Htdak5LBOz/Qc8TRh51cF+BFv0qnuph3Em4pjGVzJMkI2gfTDdlJKWJISGWS1rK34POGA==}
1186
+
dependencies:
1187
+
'@hapi/boom': 10.0.1
1188
+
dev: false
1189
+
1190
/@hapi/hoek@11.0.4:
1191
resolution: {integrity: sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==}
1192
dev: false
1193
1194
+
/@img/sharp-darwin-arm64@0.33.5:
1195
+
resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
1196
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1197
+
cpu: [arm64]
1198
+
os: [darwin]
1199
+
requiresBuild: true
1200
+
optionalDependencies:
1201
+
'@img/sharp-libvips-darwin-arm64': 1.0.4
1202
+
dev: false
1203
+
optional: true
1204
+
1205
+
/@img/sharp-darwin-x64@0.33.5:
1206
+
resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
1207
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1208
+
cpu: [x64]
1209
+
os: [darwin]
1210
+
requiresBuild: true
1211
+
optionalDependencies:
1212
+
'@img/sharp-libvips-darwin-x64': 1.0.4
1213
+
dev: false
1214
+
optional: true
1215
+
1216
+
/@img/sharp-libvips-darwin-arm64@1.0.4:
1217
+
resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
1218
+
cpu: [arm64]
1219
+
os: [darwin]
1220
+
requiresBuild: true
1221
+
dev: false
1222
+
optional: true
1223
+
1224
+
/@img/sharp-libvips-darwin-x64@1.0.4:
1225
+
resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
1226
+
cpu: [x64]
1227
+
os: [darwin]
1228
+
requiresBuild: true
1229
+
dev: false
1230
+
optional: true
1231
+
1232
+
/@img/sharp-libvips-linux-arm64@1.0.4:
1233
+
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
1234
+
cpu: [arm64]
1235
+
os: [linux]
1236
+
requiresBuild: true
1237
+
dev: false
1238
+
optional: true
1239
+
1240
+
/@img/sharp-libvips-linux-arm@1.0.5:
1241
+
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
1242
+
cpu: [arm]
1243
+
os: [linux]
1244
+
requiresBuild: true
1245
+
dev: false
1246
+
optional: true
1247
+
1248
+
/@img/sharp-libvips-linux-s390x@1.0.4:
1249
+
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
1250
+
cpu: [s390x]
1251
+
os: [linux]
1252
+
requiresBuild: true
1253
+
dev: false
1254
+
optional: true
1255
+
1256
+
/@img/sharp-libvips-linux-x64@1.0.4:
1257
+
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
1258
+
cpu: [x64]
1259
+
os: [linux]
1260
+
requiresBuild: true
1261
+
dev: false
1262
+
optional: true
1263
+
1264
+
/@img/sharp-libvips-linuxmusl-arm64@1.0.4:
1265
+
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
1266
+
cpu: [arm64]
1267
+
os: [linux]
1268
+
requiresBuild: true
1269
+
dev: false
1270
+
optional: true
1271
+
1272
+
/@img/sharp-libvips-linuxmusl-x64@1.0.4:
1273
+
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
1274
+
cpu: [x64]
1275
+
os: [linux]
1276
+
requiresBuild: true
1277
+
dev: false
1278
+
optional: true
1279
+
1280
+
/@img/sharp-linux-arm64@0.33.5:
1281
+
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
1282
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1283
+
cpu: [arm64]
1284
+
os: [linux]
1285
+
requiresBuild: true
1286
+
optionalDependencies:
1287
+
'@img/sharp-libvips-linux-arm64': 1.0.4
1288
+
dev: false
1289
+
optional: true
1290
+
1291
+
/@img/sharp-linux-arm@0.33.5:
1292
+
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
1293
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1294
+
cpu: [arm]
1295
+
os: [linux]
1296
+
requiresBuild: true
1297
+
optionalDependencies:
1298
+
'@img/sharp-libvips-linux-arm': 1.0.5
1299
+
dev: false
1300
+
optional: true
1301
+
1302
+
/@img/sharp-linux-s390x@0.33.5:
1303
+
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
1304
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1305
+
cpu: [s390x]
1306
+
os: [linux]
1307
+
requiresBuild: true
1308
+
optionalDependencies:
1309
+
'@img/sharp-libvips-linux-s390x': 1.0.4
1310
+
dev: false
1311
+
optional: true
1312
+
1313
+
/@img/sharp-linux-x64@0.33.5:
1314
+
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
1315
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1316
+
cpu: [x64]
1317
+
os: [linux]
1318
+
requiresBuild: true
1319
+
optionalDependencies:
1320
+
'@img/sharp-libvips-linux-x64': 1.0.4
1321
+
dev: false
1322
+
optional: true
1323
+
1324
+
/@img/sharp-linuxmusl-arm64@0.33.5:
1325
+
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
1326
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1327
+
cpu: [arm64]
1328
+
os: [linux]
1329
+
requiresBuild: true
1330
+
optionalDependencies:
1331
+
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
1332
+
dev: false
1333
+
optional: true
1334
+
1335
+
/@img/sharp-linuxmusl-x64@0.33.5:
1336
+
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
1337
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1338
+
cpu: [x64]
1339
+
os: [linux]
1340
+
requiresBuild: true
1341
+
optionalDependencies:
1342
+
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
1343
dev: false
1344
+
optional: true
1345
1346
+
/@img/sharp-wasm32@0.33.5:
1347
+
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
1348
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1349
+
cpu: [wasm32]
1350
+
requiresBuild: true
1351
dependencies:
1352
+
'@emnapi/runtime': 1.3.1
1353
+
dev: false
1354
+
optional: true
1355
+
1356
+
/@img/sharp-win32-ia32@0.33.5:
1357
+
resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
1358
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1359
+
cpu: [ia32]
1360
+
os: [win32]
1361
+
requiresBuild: true
1362
+
dev: false
1363
+
optional: true
1364
+
1365
+
/@img/sharp-win32-x64@0.33.5:
1366
+
resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
1367
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1368
+
cpu: [x64]
1369
+
os: [win32]
1370
+
requiresBuild: true
1371
+
dev: false
1372
+
optional: true
1373
+
1374
+
/@ioredis/commands@1.2.0:
1375
+
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
1376
dev: false
1377
1378
/@ipld/dag-cbor@7.0.3:
···
1394
wrap-ansi-cjs: /wrap-ansi@7.0.0
1395
dev: false
1396
1397
+
/@noble/curves@1.8.1:
1398
+
resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==}
1399
+
engines: {node: ^14.21.3 || >=16}
1400
dependencies:
1401
+
'@noble/hashes': 1.7.1
1402
dev: false
1403
1404
+
/@noble/hashes@1.7.1:
1405
+
resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
1406
+
engines: {node: ^14.21.3 || >=16}
1407
dev: false
1408
1409
/@noble/secp256k1@1.7.1:
···
1953
engines: {node: '>=8.0.0'}
1954
dev: false
1955
1956
+
/await-lock@2.2.2:
1957
+
resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==}
1958
dev: false
1959
1960
/axios@1.6.7:
···
1967
- debug
1968
dev: false
1969
1970
/balanced-match@1.0.2:
1971
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
1972
dev: false
1973
1974
/base64-js@1.5.1:
1975
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
1976
dev: false
···
2028
2029
/boolean@3.2.0:
2030
resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
2031
+
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
2032
dev: false
2033
2034
/bowser@2.11.0:
···
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
···
2295
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
2296
dev: false
2297
2298
+
/detect-libc@2.0.3:
2299
+
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
2300
engines: {node: '>=8'}
2301
dev: false
2302
2303
+
/disposable-email-domains-js@1.5.0:
2304
+
resolution: {integrity: sha512-L1cn+cZhKmxUwixH8n+n0HG+WbCz+LF4coyT6yMh930tpkD90ZWFx3A9dHIdFMVM745saaeNGYScIEstm3Y3yg==}
2305
dev: false
2306
2307
/dom-serializer@1.4.1:
···
2461
- supports-color
2462
dev: false
2463
2464
/fast-printf@1.6.9:
2465
resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==}
2466
engines: {node: '>=10.0'}
···
2777
elliptic: 6.5.4
2778
dev: false
2779
2780
/kysely@0.22.0:
2781
resolution: {integrity: sha512-ZE3qWtnqLOalodzfK5QUEcm7AEulhxsPNuKaGFsC3XiqO92vMLm+mAHk/NnbSIOtC4RmGm0nsv700i8KDp1gfQ==}
2782
engines: {node: '>=14.0.0'}
···
2793
/lru-cache@10.2.0:
2794
resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
2795
engines: {node: 14 || >=16.14}
2796
dev: false
2797
2798
/media-typer@0.3.0:
···
2893
resolution: {integrity: sha512-uPEjtyh2tFEvWYt4Jw7McOD5FPcHkcxm/tHZc5PWaDB3JYq0rGFUbgaAK+CT5pYpQddBfsZVWI08OwoRfdfbcQ==}
2894
engines: {node: '>=10'}
2895
dependencies:
2896
+
semver: 7.6.3
2897
dev: false
2898
2899
/node-gyp-build-optional-packages@5.1.1:
···
2901
hasBin: true
2902
requiresBuild: true
2903
dependencies:
2904
+
detect-libc: 2.0.3
2905
dev: false
2906
optional: true
2907
···
2924
2925
/object-inspect@1.13.1:
2926
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
2927
dev: false
2928
2929
/on-exit-leak-free@2.1.2:
···
3049
engines: {node: '>=10'}
3050
hasBin: true
3051
dependencies:
3052
+
detect-libc: 2.0.3
3053
expand-template: 2.0.3
3054
github-from-package: 0.0.0
3055
minimist: 1.2.8
···
3084
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
3085
dev: false
3086
3087
/pump@3.0.0:
3088
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
3089
dependencies:
···
3098
side-channel: 1.0.5
3099
dev: false
3100
3101
/quick-format-unescaped@4.0.4:
3102
resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==}
3103
dev: false
···
3213
resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
3214
dev: false
3215
3216
+
/semver@7.6.3:
3217
+
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
3218
engines: {node: '>=10'}
3219
hasBin: true
3220
dev: false
3221
3222
/send@0.18.0:
···
3268
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
3269
dev: false
3270
3271
+
/sharp@0.33.5:
3272
+
resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
3273
+
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
3274
requiresBuild: true
3275
dependencies:
3276
color: 4.2.3
3277
+
detect-libc: 2.0.3
3278
+
semver: 7.6.3
3279
+
optionalDependencies:
3280
+
'@img/sharp-darwin-arm64': 0.33.5
3281
+
'@img/sharp-darwin-x64': 0.33.5
3282
+
'@img/sharp-libvips-darwin-arm64': 1.0.4
3283
+
'@img/sharp-libvips-darwin-x64': 1.0.4
3284
+
'@img/sharp-libvips-linux-arm': 1.0.5
3285
+
'@img/sharp-libvips-linux-arm64': 1.0.4
3286
+
'@img/sharp-libvips-linux-s390x': 1.0.4
3287
+
'@img/sharp-libvips-linux-x64': 1.0.4
3288
+
'@img/sharp-libvips-linuxmusl-arm64': 1.0.4
3289
+
'@img/sharp-libvips-linuxmusl-x64': 1.0.4
3290
+
'@img/sharp-linux-arm': 0.33.5
3291
+
'@img/sharp-linux-arm64': 0.33.5
3292
+
'@img/sharp-linux-s390x': 0.33.5
3293
+
'@img/sharp-linux-x64': 0.33.5
3294
+
'@img/sharp-linuxmusl-arm64': 0.33.5
3295
+
'@img/sharp-linuxmusl-x64': 0.33.5
3296
+
'@img/sharp-wasm32': 0.33.5
3297
+
'@img/sharp-win32-ia32': 0.33.5
3298
+
'@img/sharp-win32-x64': 0.33.5
3299
dev: false
3300
3301
/shebang-command@2.0.0:
···
3375
readable-stream: 3.6.2
3376
dev: false
3377
3378
/string-width@4.2.3:
3379
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
3380
engines: {node: '>=8'}
···
3439
tar-stream: 2.2.0
3440
dev: false
3441
3442
/tar-stream@2.2.0:
3443
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
3444
engines: {node: '>=6'}
···
3450
readable-stream: 3.6.2
3451
dev: false
3452
3453
/thread-stream@2.7.0:
3454
resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==}
3455
dependencies:
···
3482
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
3483
dev: false
3484
3485
/tunnel-agent@0.6.0:
3486
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
3487
dependencies:
···
3525
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
3526
dev: false
3527
3528
+
/undici@6.20.1:
3529
+
resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==}
3530
engines: {node: '>=18.17'}
3531
dev: false
3532
···
3603
optional: true
3604
utf-8-validate:
3605
optional: true
3606
dev: false
3607
3608
/zod@3.23.8: