Mirror from bluesky-social/pds

Compare changes

Choose any two refs to compare.

+1 -1
.github/workflows/build-and-push-ghcr.yaml
··· 3 push: 4 branches: 5 - main 6 - - pdsv2 7 tags: 8 - v* 9 env:
··· 3 push: 4 branches: 5 - main 6 + - next 7 tags: 8 - v* 9 env:
+1
ACCOUNT_MIGRATION.md
··· 107 108 const serviceJwtRes = await oldAgent.com.atproto.server.getServiceAuth({ 109 aud: newServerDid, 110 }) 111 const serviceJwt = serviceJwtRes.data.token 112
··· 107 108 const serviceJwtRes = await oldAgent.com.atproto.server.getServiceAuth({ 109 aud: newServerDid, 110 + lxm: 'com.atproto.server.createAccount', 111 }) 112 const serviceJwt = serviceJwtRes.data.token 113
+2 -1
Dockerfile
··· 1 FROM node:20.11-alpine3.18 as build 2 3 - RUN npm install -g pnpm 4 5 # Move files into the image and install 6 WORKDIR /app 7 COPY ./service ./ 8 RUN pnpm install --production --frozen-lockfile > /dev/null 9 10 # Uses assets from build stage to reduce build size
··· 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
+50
README.md
··· 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 * [Updating your PDS](#updating-your-pds) 29 30 <!-- tocstop --> ··· 199 1. Enter the URL of your PDS (e.g. `https://example.com/`) 200 201 _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._ 202 203 ### Updating your PDS 204
··· 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 --> ··· 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
+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}
+1 -1
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 reset-password <DID> 31 Reset a password for an account specified by DID.
··· 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.
+2 -1
service/package.json
··· 3 "private": true, 4 "version": "0.0.0", 5 "description": "Service entrypoint for atproto personal data server", 6 "main": "index.js", 7 "license": "MIT", 8 "dependencies": { 9 - "@atproto/pds": "0.4.52" 10 } 11 }
··· 3 "private": true, 4 "version": "0.0.0", 5 "description": "Service entrypoint for atproto personal data server", 6 + "packageManager": "pnpm@8.15.9", 7 "main": "index.js", 8 "license": "MIT", 9 "dependencies": { 10 + "@atproto/pds": "0.4.166" 11 } 12 }
+406 -269
service/pnpm-lock.yaml
··· 6 7 dependencies: 8 '@atproto/pds': 9 - specifier: 0.4.52 10 - version: 0.4.52 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.1: 37 - resolution: {integrity: sha512-PCRqhnZ8NBNBvLku53O56T0lsVOtclfIrQU/rwLCc4+p45/SBPrRYNBi6YFq5rxZbK6Njos9MCmILV/KLQxrWA==} 38 dependencies: 39 - '@atproto-labs/simple-store': 0.1.1 40 lru-cache: 10.2.0 41 dev: false 42 43 - /@atproto-labs/simple-store@0.1.1: 44 - resolution: {integrity: sha512-WKILW2b3QbAYKh+w5U2x6p5FqqLl0nAeLwGeDY+KjX01K4Dq3vQTR9b/qNp0jZm48CabPQVrqCv0PPU9LgRRRg==} 45 dev: false 46 47 - /@atproto/api@0.13.2: 48 - resolution: {integrity: sha512-AkCr+GbSJu+TSJzML/Ggh7CC61TKi4cQEOGmFHeI/0x9sa110UAAWHHRKom2vV09+cW5p/FMAtWvA05YR+v4jw==} 49 dependencies: 50 - '@atproto/common-web': 0.3.0 51 - '@atproto/lexicon': 0.4.1 52 - '@atproto/syntax': 0.3.0 53 - '@atproto/xrpc': 0.6.0 54 await-lock: 2.2.2 55 multiformats: 9.9.0 56 tlds: 1.250.0 57 dev: false 58 59 - /@atproto/aws@0.2.2: 60 - resolution: {integrity: sha512-j7eR7+sQumFsc66/5xyCDez9JtR6dlZc+fOdwdh85nCJD4zmQyU4r1CKrA48wQ3tkzze+ASEb1SgODuIQmIugA==} 61 dependencies: 62 - '@atproto/common': 0.4.1 63 - '@atproto/crypto': 0.4.0 64 - '@atproto/repo': 0.4.2 65 '@aws-sdk/client-cloudfront': 3.515.0 66 '@aws-sdk/client-kms': 3.515.0 67 '@aws-sdk/client-s3': 3.515.0 68 '@aws-sdk/lib-storage': 3.515.0(@aws-sdk/client-s3@3.515.0) 69 - '@noble/curves': 1.3.0 70 key-encoder: 2.0.3 71 multiformats: 9.9.0 72 uint8arrays: 3.0.0 ··· 74 - aws-crt 75 dev: false 76 77 - /@atproto/common-web@0.3.0: 78 - resolution: {integrity: sha512-67VnV6JJyX+ZWyjV7xFQMypAgDmjVaR9ZCuU/QW+mqlqI7fex2uL4Fv+7/jHadgzhuJHVd6OHOvNn0wR5WZYtA==} 79 dependencies: 80 graphemer: 1.4.0 81 multiformats: 9.9.0 ··· 92 zod: 3.23.8 93 dev: false 94 95 - /@atproto/common@0.4.1: 96 - resolution: {integrity: sha512-uL7kQIcBTbvkBDNfxMXL6lBH4fO2DQpHd2BryJxMtbw/4iEPKe9xBYApwECHhEIk9+zhhpTRZ15FJ3gxTXN82Q==} 97 dependencies: 98 - '@atproto/common-web': 0.3.0 99 '@ipld/dag-cbor': 7.0.3 100 cbor-x: 1.5.8 101 iso-datestring-validator: 2.2.2 ··· 113 uint8arrays: 3.0.0 114 dev: false 115 116 - /@atproto/crypto@0.4.0: 117 - resolution: {integrity: sha512-Kj/4VgJ7hzzXvE42L0rjzP6lM0tai+OfPnP1rxJ+UZg/YUDtuewL4uapnVoWXvlNceKgaLZH98g5n9gXBVTe5Q==} 118 dependencies: 119 - '@noble/curves': 1.3.0 120 - '@noble/hashes': 1.3.3 121 uint8arrays: 3.0.0 122 dev: false 123 124 - /@atproto/identity@0.4.0: 125 - resolution: {integrity: sha512-KKdVlqBgkFuTUx3KFiiQe0LuK9kopej1bhKm6SHRPEYbSEPFmRZQMY9TAjWJQrvQt8DpQzz6kVGjASFEjd3teQ==} 126 dependencies: 127 - '@atproto/common-web': 0.3.0 128 - '@atproto/crypto': 0.4.0 129 - axios: 0.27.2 130 - transitivePeerDependencies: 131 - - debug 132 dev: false 133 134 - /@atproto/jwk-jose@0.1.2: 135 - resolution: {integrity: sha512-lDwc/6lLn2aZ/JpyyggyjLFsJPMntrVzryyGUx5aNpuTS8SIuc4Ky0REhxqfLopQXJJZCuRRjagHG3uP05/moQ==} 136 dependencies: 137 - '@atproto/jwk': 0.1.1 138 jose: 5.2.2 139 dev: false 140 141 - /@atproto/jwk@0.1.1: 142 - resolution: {integrity: sha512-6h/bj1APUk7QcV9t/oA6+9DB5NZx9SZru9x+/pV5oHFI9Xz4ZuM5+dq1PfsJV54pZyqdnZ6W6M717cxoC7q7og==} 143 dependencies: 144 multiformats: 9.9.0 145 zod: 3.23.8 146 dev: false 147 148 - /@atproto/lexicon@0.4.1: 149 - resolution: {integrity: sha512-bzyr+/VHXLQWbumViX5L7h1NKQObfs8Z+XZJl43OUK8nYFUI4e/sW1IZKRNfw7Wvi5YVNK+J+yP3DWIBZhkCYA==} 150 dependencies: 151 - '@atproto/common-web': 0.3.0 152 - '@atproto/syntax': 0.3.0 153 iso-datestring-validator: 2.2.2 154 multiformats: 9.9.0 155 zod: 3.23.8 156 dev: false 157 158 - /@atproto/oauth-provider@0.1.3: 159 - resolution: {integrity: sha512-h/SfExZMaSJh8tYMK++8wApajKp2WmLzmJu62YvYBKLI/vv/2KmVDjnE/VpaufPaS8rS5V2gdo4ux109W7kAcw==} 160 dependencies: 161 - '@atproto-labs/fetch': 0.1.0 162 - '@atproto-labs/fetch-node': 0.1.0 163 - '@atproto-labs/pipe': 0.1.0 164 - '@atproto-labs/simple-store': 0.1.1 165 - '@atproto-labs/simple-store-memory': 0.1.1 166 - '@atproto/jwk': 0.1.1 167 - '@atproto/jwk-jose': 0.1.2 168 - '@atproto/oauth-types': 0.1.3 169 '@hapi/accept': 6.0.3 170 '@hapi/bourne': 3.0.0 171 '@hapi/content': 6.0.0 172 - cookie: 0.6.0 173 http-errors: 2.0.0 174 jose: 5.2.2 175 - oidc-token-hash: 5.0.3 176 - psl: 1.9.0 177 zod: 3.23.8 178 - optionalDependencies: 179 - ioredis: 5.3.2 180 - keygrip: 1.1.0 181 transitivePeerDependencies: 182 - supports-color 183 dev: false 184 185 - /@atproto/oauth-types@0.1.3: 186 - resolution: {integrity: sha512-TmlYQSXo6RIrUMi9ZhKGhyXp4D0yu0ciU5NObO8GeEXvUXH5tSa8fK/riQyihDDU+Q5PlzLv2m3f7qnsY/ll3w==} 187 dependencies: 188 - '@atproto/jwk': 0.1.1 189 zod: 3.23.8 190 dev: false 191 192 - /@atproto/pds@0.4.52: 193 - resolution: {integrity: sha512-kSS2Qtm6BopvL5Wkz+4jP7H9F17562hfcnlHYvAyq46TpyRvY0hQKouTbVd97WTafZiZSx7eeTDON0lCITyzzg==} 194 - hasBin: true 195 dependencies: 196 - '@atproto-labs/fetch-node': 0.1.0 197 - '@atproto/api': 0.13.2 198 - '@atproto/aws': 0.2.2 199 - '@atproto/common': 0.4.1 200 - '@atproto/crypto': 0.4.0 201 - '@atproto/identity': 0.4.0 202 - '@atproto/lexicon': 0.4.1 203 - '@atproto/oauth-provider': 0.1.3 204 - '@atproto/repo': 0.4.2 205 - '@atproto/syntax': 0.3.0 206 - '@atproto/xrpc': 0.6.0 207 - '@atproto/xrpc-server': 0.6.2 208 '@did-plc/lib': 0.0.4 209 better-sqlite3: 10.1.0 210 bytes: 3.1.2 211 compression: 1.7.4 212 cors: 2.8.5 213 - disposable-email: 0.2.3 214 express: 4.18.2 215 express-async-errors: 3.1.1(express@4.18.2) 216 file-type: 16.5.4 ··· 227 p-queue: 6.6.2 228 pino: 8.21.0 229 pino-http: 8.6.1 230 - sharp: 0.32.6 231 typed-emitter: 2.1.0 232 uint8arrays: 3.0.0 233 zod: 3.23.8 234 transitivePeerDependencies: 235 - aws-crt ··· 239 - utf-8-validate 240 dev: false 241 242 - /@atproto/repo@0.4.2: 243 - resolution: {integrity: sha512-6hEGA3BmasPCoBGaIN/jKAjKJidCf+z8exkx/77V3WB7TboucSLHn/8gg+Xf03U7bJd6mn3F0YmPaRfJwqIT8w==} 244 dependencies: 245 - '@atproto/common': 0.4.1 246 - '@atproto/common-web': 0.3.0 247 - '@atproto/crypto': 0.4.0 248 - '@atproto/lexicon': 0.4.1 249 - '@ipld/car': 3.2.4 250 '@ipld/dag-cbor': 7.0.3 251 multiformats: 9.9.0 252 uint8arrays: 3.0.0 253 zod: 3.23.8 254 dev: false 255 256 - /@atproto/syntax@0.3.0: 257 - resolution: {integrity: sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA==} 258 dev: false 259 260 - /@atproto/xrpc-server@0.6.2: 261 - resolution: {integrity: sha512-WuY0fCU/GHp1Obeikh+G4a39HnvhoxFndhQgA4Nb2hh1YOnPN48RHsGOctwA63N11mqk0pGX24vP56ozz0DbFw==} 262 dependencies: 263 - '@atproto/common': 0.4.1 264 - '@atproto/crypto': 0.4.0 265 - '@atproto/lexicon': 0.4.1 266 - '@atproto/xrpc': 0.6.0 267 cbor-x: 1.5.8 268 express: 4.18.2 269 http-errors: 2.0.0 ··· 278 - utf-8-validate 279 dev: false 280 281 - /@atproto/xrpc@0.6.0: 282 - resolution: {integrity: sha512-5BbhBTv5j6MC3iIQ4+vYxQE7nLy2dDGQ+LYJrH8PptOCUdq0Pwg6aRccQ3y52kUZlhE/mzOTZ8Ngiy9pSAyfVQ==} 283 dependencies: 284 - '@atproto/lexicon': 0.4.1 285 zod: 3.23.8 286 dev: false 287 ··· 1094 - debug 1095 dev: false 1096 1097 /@hapi/accept@6.0.3: 1098 resolution: {integrity: sha512-p72f9k56EuF0n3MwlBNThyVE5PXX40g+aQh+C/xbKrfzahM2Oispv3AXmOIU51t3j77zay1qrX7IIziZXspMlw==} 1099 dependencies: 1100 '@hapi/boom': 10.0.1 1101 '@hapi/hoek': 11.0.4 1102 dev: false 1103 ··· 1121 resolution: {integrity: sha512-PnsP5d4q7289pS2T2EgGz147BFJ2Jpb4yrEdkpz2IhgEUzos1S7HTl7ezWh1yfYzYlj89KzLdCRkqsP6SIryeQ==} 1122 dev: false 1123 1124 - /@ioredis/commands@1.2.0: 1125 - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} 1126 dev: false 1127 1128 - /@ipld/car@3.2.4: 1129 - resolution: {integrity: sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==} 1130 dependencies: 1131 - '@ipld/dag-cbor': 7.0.3 1132 - multiformats: 9.9.0 1133 - varint: 6.0.0 1134 dev: false 1135 1136 /@ipld/dag-cbor@7.0.3: ··· 1152 wrap-ansi-cjs: /wrap-ansi@7.0.0 1153 dev: false 1154 1155 - /@noble/curves@1.3.0: 1156 - resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} 1157 dependencies: 1158 - '@noble/hashes': 1.3.3 1159 dev: false 1160 1161 - /@noble/hashes@1.3.3: 1162 - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} 1163 - engines: {node: '>= 16'} 1164 dev: false 1165 1166 /@noble/secp256k1@1.7.1: ··· 1714 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 1715 dev: false 1716 1717 - /axios@0.27.2: 1718 - resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} 1719 - dependencies: 1720 - follow-redirects: 1.15.5 1721 - form-data: 4.0.0 1722 - transitivePeerDependencies: 1723 - - debug 1724 - dev: false 1725 - 1726 /axios@1.6.7: 1727 resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} 1728 dependencies: ··· 1733 - debug 1734 dev: false 1735 1736 - /b4a@1.6.6: 1737 - resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} 1738 - dev: false 1739 - 1740 /balanced-match@1.0.2: 1741 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1742 dev: false 1743 1744 - /bare-events@2.2.0: 1745 - resolution: {integrity: sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==} 1746 - requiresBuild: true 1747 - dev: false 1748 - optional: true 1749 - 1750 - /bare-fs@2.1.5: 1751 - resolution: {integrity: sha512-5t0nlecX+N2uJqdxe9d18A98cp2u9BETelbjKpiVgQqzzmVNFYWEAjQHqS+2Khgto1vcwhik9cXucaj5ve2WWA==} 1752 - requiresBuild: true 1753 - dependencies: 1754 - bare-events: 2.2.0 1755 - bare-os: 2.2.0 1756 - bare-path: 2.1.0 1757 - streamx: 2.16.1 1758 - dev: false 1759 - optional: true 1760 - 1761 - /bare-os@2.2.0: 1762 - resolution: {integrity: sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==} 1763 - requiresBuild: true 1764 - dev: false 1765 - optional: true 1766 - 1767 - /bare-path@2.1.0: 1768 - resolution: {integrity: sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==} 1769 - requiresBuild: true 1770 - dependencies: 1771 - bare-os: 2.2.0 1772 - dev: false 1773 - optional: true 1774 - 1775 /base64-js@1.5.1: 1776 resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 1777 dev: false ··· 1829 1830 /boolean@3.2.0: 1831 resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} 1832 dev: false 1833 1834 /bowser@2.11.0: ··· 1999 engines: {node: '>= 0.6'} 2000 dev: false 2001 2002 - /cookie@0.6.0: 2003 - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 2004 engines: {node: '>= 0.6'} 2005 dev: false 2006 ··· 2095 engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 2096 dev: false 2097 2098 - /detect-libc@2.0.2: 2099 - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} 2100 engines: {node: '>=8'} 2101 dev: false 2102 2103 - /disposable-email@0.2.3: 2104 - resolution: {integrity: sha512-gkBQQ5Res431ZXqLlAafrXHizG7/1FWmi8U2RTtriD78Vc10HhBUvdJun3R4eSF0KRIQQJs+wHlxjkED/Hr1EQ==} 2105 dev: false 2106 2107 /dom-serializer@1.4.1: ··· 2261 - supports-color 2262 dev: false 2263 2264 - /fast-fifo@1.3.2: 2265 - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 2266 - dev: false 2267 - 2268 /fast-printf@1.6.9: 2269 resolution: {integrity: sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==} 2270 engines: {node: '>=10.0'} ··· 2581 elliptic: 6.5.4 2582 dev: false 2583 2584 - /keygrip@1.1.0: 2585 - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} 2586 - engines: {node: '>= 0.6'} 2587 - requiresBuild: true 2588 - dependencies: 2589 - tsscmp: 1.0.6 2590 - dev: false 2591 - optional: true 2592 - 2593 /kysely@0.22.0: 2594 resolution: {integrity: sha512-ZE3qWtnqLOalodzfK5QUEcm7AEulhxsPNuKaGFsC3XiqO92vMLm+mAHk/NnbSIOtC4RmGm0nsv700i8KDp1gfQ==} 2595 engines: {node: '>=14.0.0'} ··· 2606 /lru-cache@10.2.0: 2607 resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2608 engines: {node: 14 || >=16.14} 2609 - dev: false 2610 - 2611 - /lru-cache@6.0.0: 2612 - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2613 - engines: {node: '>=10'} 2614 - dependencies: 2615 - yallist: 4.0.0 2616 dev: false 2617 2618 /media-typer@0.3.0: ··· 2713 resolution: {integrity: sha512-uPEjtyh2tFEvWYt4Jw7McOD5FPcHkcxm/tHZc5PWaDB3JYq0rGFUbgaAK+CT5pYpQddBfsZVWI08OwoRfdfbcQ==} 2714 engines: {node: '>=10'} 2715 dependencies: 2716 - semver: 7.6.0 2717 - dev: false 2718 - 2719 - /node-addon-api@6.1.0: 2720 - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} 2721 dev: false 2722 2723 /node-gyp-build-optional-packages@5.1.1: ··· 2725 hasBin: true 2726 requiresBuild: true 2727 dependencies: 2728 - detect-libc: 2.0.2 2729 dev: false 2730 optional: true 2731 ··· 2748 2749 /object-inspect@1.13.1: 2750 resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 2751 - dev: false 2752 - 2753 - /oidc-token-hash@5.0.3: 2754 - resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} 2755 - engines: {node: ^10.13.0 || >=12.0.0} 2756 dev: false 2757 2758 /on-exit-leak-free@2.1.2: ··· 2878 engines: {node: '>=10'} 2879 hasBin: true 2880 dependencies: 2881 - detect-libc: 2.0.2 2882 expand-template: 2.0.3 2883 github-from-package: 0.0.0 2884 minimist: 1.2.8 ··· 2913 resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 2914 dev: false 2915 2916 - /psl@1.9.0: 2917 - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 2918 - dev: false 2919 - 2920 /pump@3.0.0: 2921 resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 2922 dependencies: ··· 2931 side-channel: 1.0.5 2932 dev: false 2933 2934 - /queue-tick@1.0.1: 2935 - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} 2936 - requiresBuild: true 2937 - dev: false 2938 - 2939 /quick-format-unescaped@4.0.4: 2940 resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 2941 dev: false ··· 3051 resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} 3052 dev: false 3053 3054 - /semver@7.6.0: 3055 - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 3056 engines: {node: '>=10'} 3057 hasBin: true 3058 - dependencies: 3059 - lru-cache: 6.0.0 3060 dev: false 3061 3062 /send@0.18.0: ··· 3108 resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 3109 dev: false 3110 3111 - /sharp@0.32.6: 3112 - resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} 3113 - engines: {node: '>=14.15.0'} 3114 requiresBuild: true 3115 dependencies: 3116 color: 4.2.3 3117 - detect-libc: 2.0.2 3118 - node-addon-api: 6.1.0 3119 - prebuild-install: 7.1.1 3120 - semver: 7.6.0 3121 - simple-get: 4.0.1 3122 - tar-fs: 3.0.5 3123 - tunnel-agent: 0.6.0 3124 dev: false 3125 3126 /shebang-command@2.0.0: ··· 3200 readable-stream: 3.6.2 3201 dev: false 3202 3203 - /streamx@2.16.1: 3204 - resolution: {integrity: sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==} 3205 - dependencies: 3206 - fast-fifo: 1.3.2 3207 - queue-tick: 1.0.1 3208 - optionalDependencies: 3209 - bare-events: 2.2.0 3210 - dev: false 3211 - 3212 /string-width@4.2.3: 3213 resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3214 engines: {node: '>=8'} ··· 3273 tar-stream: 2.2.0 3274 dev: false 3275 3276 - /tar-fs@3.0.5: 3277 - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} 3278 - dependencies: 3279 - pump: 3.0.0 3280 - tar-stream: 3.1.7 3281 - optionalDependencies: 3282 - bare-fs: 2.1.5 3283 - bare-path: 2.1.0 3284 - dev: false 3285 - 3286 /tar-stream@2.2.0: 3287 resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 3288 engines: {node: '>=6'} ··· 3294 readable-stream: 3.6.2 3295 dev: false 3296 3297 - /tar-stream@3.1.7: 3298 - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 3299 - dependencies: 3300 - b4a: 1.6.6 3301 - fast-fifo: 1.3.2 3302 - streamx: 2.16.1 3303 - dev: false 3304 - 3305 /thread-stream@2.7.0: 3306 resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 3307 dependencies: ··· 3334 resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3335 dev: false 3336 3337 - /tsscmp@1.0.6: 3338 - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} 3339 - engines: {node: '>=0.6.x'} 3340 - requiresBuild: true 3341 - dev: false 3342 - optional: true 3343 - 3344 /tunnel-agent@0.6.0: 3345 resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 3346 dependencies: ··· 3384 resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3385 dev: false 3386 3387 - /undici@6.19.2: 3388 - resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==} 3389 engines: {node: '>=18.17'} 3390 dev: false 3391 ··· 3462 optional: true 3463 utf-8-validate: 3464 optional: true 3465 - dev: false 3466 - 3467 - /yallist@4.0.0: 3468 - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3469 dev: false 3470 3471 /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: 1163 '@hapi/boom': 10.0.1 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 ··· 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: ··· 1957 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 1958 dev: false 1959 1960 /axios@1.6.7: 1961 resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} 1962 dependencies: ··· 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: