Mirror from bluesky-social/pds

Compare changes

Choose any two refs to compare.

Changed files
+99 -94
.github
service
+1 -1
.github/workflows/build-and-push-ghcr.yaml
··· 3 3 push: 4 4 branches: 5 5 - main 6 - - pdsv2 6 + - next 7 7 tags: 8 8 - v* 9 9 env:
-8
README.md
··· 228 228 229 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 230 231 - #### Common SMTP issues 232 - 233 - If you find that your test messages using cURL or other sources go out correctly, but you are not receiving emails from your PDS, you may need to URL encode your username and password on `/pds/pds.env` and restart the PDS service. 234 - 235 - If the username and/or password contain special characters, the special characters will need to be [percent encoded](https://en.wikipedia.org/wiki/Percent-encoding). For some email services, the username will contain an extra `@` symbol that will also need to be percent encoded. For example, the URL `user&name@oci:p@ssword@smtphost:465` after percent encoding for the username and password fields would become `user%26name%40oci:p%40ssword@smtphost:465`. 236 - 237 - If you are migrating an account, Bluesky's UI will ask you to confirm your email address. The confirmation code email is meant to come from your PDS. If you are encountering issues with SMTP and want to confirm the address before solving it, you can find the confirmation code on the `email_token` table on `accounts.sqlite`. 238 - 239 231 ### Logging 240 232 241 233 By default, logs from the PDS are printed to `stdout` and end up in Docker's log. You can browse them by running:
+7 -1
installer.sh
··· 31 31 openssl 32 32 sqlite3 33 33 xxd 34 - jq 35 34 " 36 35 # Docker packages. 37 36 REQUIRED_DOCKER_PACKAGES=" ··· 215 214 fi 216 215 217 216 # Admin email 217 + if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 218 + read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL 219 + fi 220 + if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 221 + usage "No admin email specified" 222 + fi 223 + 218 224 if [[ -z "${PDS_ADMIN_EMAIL}" ]]; then 219 225 read -p "Enter an admin email address (e.g. you@example.com): " PDS_ADMIN_EMAIL 220 226 fi
+1 -1
service/package.json
··· 7 7 "main": "index.js", 8 8 "license": "MIT", 9 9 "dependencies": { 10 - "@atproto/pds": "0.4.136" 10 + "@atproto/pds": "0.4.166" 11 11 } 12 12 }
+90 -83
service/pnpm-lock.yaml
··· 6 6 7 7 dependencies: 8 8 '@atproto/pds': 9 - specifier: 0.4.136 10 - version: 0.4.136 9 + specifier: 0.4.166 10 + version: 0.4.166 11 11 12 12 packages: 13 13 14 - /@atproto-labs/fetch-node@0.1.8: 15 - resolution: {integrity: sha512-OOTIhZNPEDDm7kaYU8iYRgzM+D5n3mP2iiBSyKuLakKTaZBL5WwYlUsJVsqX26SnUXtGEroOJEVJ6f66OcG80w==} 14 + /@atproto-labs/fetch-node@0.1.9: 15 + resolution: {integrity: sha512-8sHDDXZEzQptLu8ddUU/8U+THS6dumgPynVX0/1PjUYd4S/FWyPcz6yMIiVChTfzKnZvYRRz47+qvOKhydrHQw==} 16 16 engines: {node: '>=18.7.0'} 17 17 dependencies: 18 - '@atproto-labs/fetch': 0.2.2 19 - '@atproto-labs/pipe': 0.1.0 18 + '@atproto-labs/fetch': 0.2.3 19 + '@atproto-labs/pipe': 0.1.1 20 20 ipaddr.js: 2.2.0 21 - psl: 1.9.0 22 21 undici: 6.20.1 23 22 dev: false 24 23 25 - /@atproto-labs/fetch@0.2.2: 26 - resolution: {integrity: sha512-QyafkedbFeVaN20DYUpnY2hcArYxjdThPXbYMqOSoZhcvkrUqaw4xDND4wZB5TBD9cq2yqe9V6mcw9P4XQKQuQ==} 24 + /@atproto-labs/fetch@0.2.3: 25 + resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==} 27 26 dependencies: 28 - '@atproto-labs/pipe': 0.1.0 27 + '@atproto-labs/pipe': 0.1.1 29 28 dev: false 30 29 31 - /@atproto-labs/pipe@0.1.0: 32 - resolution: {integrity: sha512-ghOqHFyJlQVFPESzlVHjKroP0tPzbmG5Jms0dNI9yLDEfL8xp4OFPWLX4f6T8mRq69wWs4nIDM3sSsFbFqLa1w==} 30 + /@atproto-labs/pipe@0.1.1: 31 + resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==} 33 32 dev: false 34 33 35 34 /@atproto-labs/simple-store-memory@0.1.3: ··· 43 42 resolution: {integrity: sha512-0bRbAlI8Ayh03wRwncAMEAyUKtZ+AuTS1jgPrfym1WVOAOiottI/ZmgccqLl6w5MbxVcClNQF7WYGKvGwGoIhA==} 44 43 dev: false 45 44 46 - /@atproto-labs/xrpc-utils@0.0.14: 47 - resolution: {integrity: sha512-/f0Dhzi08w3Oqv38wdwQ5bw238GbxhYIcxg08kVReEMTlkyRDC6H5RuqHf8Ff9J3FKqjKHGdxaOdrPNM1hCgeQ==} 45 + /@atproto-labs/xrpc-utils@0.0.18: 46 + resolution: {integrity: sha512-Cwrlx2JcLe0jxCK8b3GCT3HRGaH3yPhyyt+3n4JykJapCaGBKqa6FHGs9hK2Fx6lOyPF7TnV5qUPUsJ1qGEUVA==} 48 47 dependencies: 49 - '@atproto/xrpc': 0.7.0 50 - '@atproto/xrpc-server': 0.7.18 48 + '@atproto/xrpc': 0.7.1 49 + '@atproto/xrpc-server': 0.9.1 51 50 transitivePeerDependencies: 52 51 - bufferutil 53 52 - supports-color 54 53 - utf-8-validate 55 54 dev: false 56 55 57 - /@atproto/api@0.15.6: 58 - resolution: {integrity: sha512-hKwrBf60LcI4BqArWyrhWJWIpjwAWUJpW3PVvNzUB1q2W/ByC0JAuwq/F8tZpCEiiVBzHjHVRx4QNA2TA1cG3g==} 56 + /@atproto/api@0.16.2: 57 + resolution: {integrity: sha512-sSTg31J8ws8DNaoiizp+/uJideRxRaJsq+Nyl8rnSxGw0w3oCvoeRU19iRWh2t0jZEmiRJAGkveGu23NKmPYEQ==} 59 58 dependencies: 60 59 '@atproto/common-web': 0.4.2 61 - '@atproto/lexicon': 0.4.11 60 + '@atproto/lexicon': 0.4.12 62 61 '@atproto/syntax': 0.4.0 63 - '@atproto/xrpc': 0.7.0 62 + '@atproto/xrpc': 0.7.1 64 63 await-lock: 2.2.2 65 64 multiformats: 9.9.0 66 65 tlds: 1.250.0 67 66 zod: 3.23.8 68 67 dev: false 69 68 70 - /@atproto/aws@0.2.21: 71 - resolution: {integrity: sha512-bosExZ3YdFjOehNBcNWsC2mZBrAVLO8Ut/JquypXSahFeeXZP/9rd9F1VGf+vAmjFEKagHXQCb6CRFfJyN+I7A==} 69 + /@atproto/aws@0.2.25: 70 + resolution: {integrity: sha512-LT4uuda2mjXz2WT4xo7g2aWmWKl+JWusGzscqQpOlD/RFGFXKDmUcVWLVPKY+9Pys2F7X6tyDlm2aUx+/dYdYA==} 72 71 engines: {node: '>=18.7.0'} 73 72 dependencies: 74 73 '@atproto/common': 0.4.11 75 74 '@atproto/crypto': 0.4.4 76 - '@atproto/repo': 0.8.1 75 + '@atproto/repo': 0.8.5 77 76 '@aws-sdk/client-cloudfront': 3.515.0 78 77 '@aws-sdk/client-kms': 3.515.0 79 78 '@aws-sdk/client-s3': 3.515.0 ··· 135 134 uint8arrays: 3.0.0 136 135 dev: false 137 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 + 138 143 /@atproto/identity@0.4.8: 139 144 resolution: {integrity: sha512-Z0sLnJ87SeNdAifT+rqpgE1Rc3layMMW25gfWNo4u40RGuRODbdfAZlTwBSU2r+Vk45hU+iE+xeQspfednCEnA==} 140 145 engines: {node: '>=18.7.0'} ··· 143 148 '@atproto/crypto': 0.4.4 144 149 dev: false 145 150 146 - /@atproto/jwk-jose@0.1.6: 147 - resolution: {integrity: sha512-r4DGMvvmazy6CxqAcnplpUxvp6Vd8UwKxQBZRpmm1aNsVonf5qj1yeDkECTiwoe/FPbvtdamlzClB3UZc7Yb5w==} 151 + /@atproto/jwk-jose@0.1.9: 152 + resolution: {integrity: sha512-HT9GcUe6htDxI5OSYXWdeS6QZ9lpuDDvJk508ppi8a48E/1f8eumoM0QhgbFRF9IKAnnFrtnZDOAvljQzFKwwQ==} 148 153 dependencies: 149 - '@atproto/jwk': 0.1.5 154 + '@atproto/jwk': 0.4.0 150 155 jose: 5.2.2 151 156 dev: false 152 157 153 - /@atproto/jwk@0.1.5: 154 - resolution: {integrity: sha512-OzZFLhX41TOcMeanP3aZlL5bLeaUIZT15MI4aU5cwflNq/rwpGOpz3uwDjZc8ytgUjuTQ8LabSz5jMmwoTSWFg==} 158 + /@atproto/jwk@0.4.0: 159 + resolution: {integrity: sha512-tvp4iZrzqEzKCeTOKz50/o6WdsZzOuWmWjF6On5QAp04fLwLpsFu2Hixgx/lA1KBO0O4sns7YSGcAqSSX6Rdog==} 155 160 dependencies: 156 161 multiformats: 9.9.0 157 162 zod: 3.23.8 158 163 dev: false 159 164 160 - /@atproto/lexicon@0.4.11: 161 - resolution: {integrity: sha512-btefdnvNz2Ao2I+qbmj0F06HC8IlrM/IBz6qOBS50r0S6uDf5tOO+Mv2tSVdimFkdzyDdLtBI1sV36ONxz2cOw==} 165 + /@atproto/lexicon@0.4.12: 166 + resolution: {integrity: sha512-fcEvEQ1GpQYF5igZ4IZjPWEoWVpsEF22L9RexxLS3ptfySXLflEyH384e7HITzO/73McDeaJx3lqHIuqn9ulnw==} 162 167 dependencies: 163 168 '@atproto/common-web': 0.4.2 164 169 '@atproto/syntax': 0.4.0 ··· 167 172 zod: 3.23.8 168 173 dev: false 169 174 170 - /@atproto/oauth-provider-api@0.1.2: 171 - resolution: {integrity: sha512-tNAuMrE6D3696euavxo1+Jh7Re0PPwJstbyY8SrdVPXgKJh/LrbpKUKiPNW/p5KyVfRs2tWeAxy+ReESu6SmXA==} 175 + /@atproto/oauth-provider-api@0.2.0: 176 + resolution: {integrity: sha512-u18VRCDuz5BloUQKbvTISjQk7CgpDI1hf3leoJ7ADOAo8oW71QZD0tsWDX81R2uB66mKZHptjGSSVxxqpZFipQ==} 172 177 dependencies: 173 - '@atproto/jwk': 0.1.5 174 - '@atproto/oauth-types': 0.2.7 178 + '@atproto/jwk': 0.4.0 179 + '@atproto/oauth-types': 0.4.0 175 180 dev: false 176 181 177 - /@atproto/oauth-provider-frontend@0.1.4: 178 - resolution: {integrity: sha512-TLKL5lTmSieHx7+3RVIx7rIxRPP1SNCwzzdTvYB46yd1XrGHdPU//M6CP5OZ1BvcxF6H4JXIkOSWvFseol+gOw==} 182 + /@atproto/oauth-provider-frontend@0.1.11: 183 + resolution: {integrity: sha512-MvPUI+vh8a8UWmpAV8VS2qrdJ/B6l75qDQX1z6vF1YkPR1d9SLEdOYx/O26g5ZyuN+Mk00OBdOSfjvON/UOxQA==} 179 184 engines: {node: '>=18.7.0'} 180 185 optionalDependencies: 181 - '@atproto/oauth-provider-api': 0.1.2 186 + '@atproto/oauth-provider-api': 0.2.0 182 187 dev: false 183 188 184 - /@atproto/oauth-provider-ui@0.1.4: 185 - resolution: {integrity: sha512-GTQnB7OUBFSeXcdRseAGYzKe9UUFB/kGjRcIA8+pO5pCMD7JdXI+WliUhsbdmQ2I+OK78aAlCrmygNWpLtpZgg==} 189 + /@atproto/oauth-provider-ui@0.2.0: 190 + resolution: {integrity: sha512-v4rzz3C8i2NBqxycWWDTeosHtv6B9+EW4ZCq9Il6thmHdtT2CmB07R5Ia7zQ1n7lylxI6mC9JqA9CLis0uLz+Q==} 186 191 engines: {node: '>=18.7.0'} 187 192 optionalDependencies: 188 - '@atproto/oauth-provider-api': 0.1.2 193 + '@atproto/oauth-provider-api': 0.2.0 189 194 dev: false 190 195 191 - /@atproto/oauth-provider@0.7.6: 192 - resolution: {integrity: sha512-4YcnddACznmpuRmHlt9G+kccdv2Gct5qQOF9Yyjse8cl2Td+Rg1gkchpRdWUnyr9fgZzmCsSBYzEfVXge3eUiQ==} 196 + /@atproto/oauth-provider@0.10.0: 197 + resolution: {integrity: sha512-WbDaMC/9Zd4oslA4pPvf7ozum0YAQRxNspYpEauXtJ/bjVxqViKgV158jnPhDbYfo62NkxSuSaUkTV116U/VBg==} 193 198 engines: {node: '>=18.7.0'} 194 199 dependencies: 195 - '@atproto-labs/fetch': 0.2.2 196 - '@atproto-labs/fetch-node': 0.1.8 197 - '@atproto-labs/pipe': 0.1.0 200 + '@atproto-labs/fetch': 0.2.3 201 + '@atproto-labs/fetch-node': 0.1.9 202 + '@atproto-labs/pipe': 0.1.1 198 203 '@atproto-labs/simple-store': 0.2.0 199 204 '@atproto-labs/simple-store-memory': 0.1.3 200 205 '@atproto/common': 0.4.11 201 - '@atproto/jwk': 0.1.5 202 - '@atproto/jwk-jose': 0.1.6 203 - '@atproto/oauth-provider-api': 0.1.2 204 - '@atproto/oauth-provider-frontend': 0.1.4 205 - '@atproto/oauth-provider-ui': 0.1.4 206 - '@atproto/oauth-types': 0.2.7 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 207 214 '@atproto/syntax': 0.4.0 208 215 '@hapi/accept': 6.0.3 209 216 '@hapi/address': 5.1.1 210 217 '@hapi/bourne': 3.0.0 211 218 '@hapi/content': 6.0.0 212 - cookie: 0.6.0 219 + cookie: 0.7.2 213 220 disposable-email-domains-js: 1.5.0 214 221 forwarded: 0.2.0 215 222 http-errors: 2.0.0 216 223 ioredis: 5.3.2 217 224 jose: 5.2.2 218 - psl: 1.9.0 219 225 zod: 3.23.8 220 226 transitivePeerDependencies: 221 227 - supports-color 222 228 dev: false 223 229 224 - /@atproto/oauth-types@0.2.7: 225 - resolution: {integrity: sha512-2SlDveiSI0oowC+sfuNd/npV8jw/FhokSS26qyUyldTg1g9ZlhxXUfMP4IZOPeZcVn9EszzQRHs1H9ZJqVQIew==} 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==} 226 236 dependencies: 227 - '@atproto/jwk': 0.1.5 237 + '@atproto/jwk': 0.4.0 228 238 zod: 3.23.8 229 239 dev: false 230 240 231 - /@atproto/pds@0.4.136: 232 - resolution: {integrity: sha512-sao4iq/CRWwdM0gljw7XGg/ef4OTWFc6RU2g0nNgJLvxfPO3uMG8Ze1S6tfhr9wvhIKZWVCzzPruTglrlWMEYw==} 241 + /@atproto/pds@0.4.166: 242 + resolution: {integrity: sha512-LwLiLQNOZsZ4LgD4qmtWf3W5FJEaTA3Bi3Y1x79TXrBfcvcmIoNYBUE0WOLmDFfLyp44caODqS6HCLvqc11T7g==} 233 243 engines: {node: '>=18.7.0'} 234 244 dependencies: 235 - '@atproto-labs/fetch-node': 0.1.8 236 - '@atproto-labs/xrpc-utils': 0.0.14 237 - '@atproto/api': 0.15.6 238 - '@atproto/aws': 0.2.21 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 239 249 '@atproto/common': 0.4.11 240 250 '@atproto/crypto': 0.4.4 241 251 '@atproto/identity': 0.4.8 242 - '@atproto/lexicon': 0.4.11 243 - '@atproto/oauth-provider': 0.7.6 244 - '@atproto/repo': 0.8.1 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 245 256 '@atproto/syntax': 0.4.0 246 - '@atproto/xrpc': 0.7.0 247 - '@atproto/xrpc-server': 0.7.18 257 + '@atproto/xrpc': 0.7.1 258 + '@atproto/xrpc-server': 0.9.1 248 259 '@did-plc/lib': 0.0.4 249 260 '@hapi/address': 5.1.1 250 261 better-sqlite3: 10.1.0 ··· 281 292 - utf-8-validate 282 293 dev: false 283 294 284 - /@atproto/repo@0.8.1: 285 - resolution: {integrity: sha512-d1NtHhXYJVJlFVI6mbVOUnpB0rnhqxPnZcALkJoYJjaDPVr4NNqRFAtrwb+GHzxT6DhijoXYQf24pKGfEFDd4g==} 295 + /@atproto/repo@0.8.5: 296 + resolution: {integrity: sha512-QZ4UWBWDyPMXgPhktmaRYRyCXIw7lIEAyGtaFy7UmCPpJ5TtFKw3GhGrEiNz/fY3/6lrkdDj44/Tzkud/eP/VQ==} 286 297 engines: {node: '>=18.7.0'} 287 298 dependencies: 288 299 '@atproto/common': 0.4.11 289 300 '@atproto/common-web': 0.4.2 290 301 '@atproto/crypto': 0.4.4 291 - '@atproto/lexicon': 0.4.11 302 + '@atproto/lexicon': 0.4.12 292 303 '@ipld/dag-cbor': 7.0.3 293 304 multiformats: 9.9.0 294 305 uint8arrays: 3.0.0 ··· 300 311 resolution: {integrity: sha512-b9y5ceHS8YKOfP3mdKmwAx5yVj9294UN7FG2XzP6V5aKUdFazEYRnR9m5n5ZQFKa3GNvz7de9guZCJ/sUTcOAA==} 301 312 dev: false 302 313 303 - /@atproto/xrpc-server@0.7.18: 304 - resolution: {integrity: sha512-kjlAsI+UNbbm6AK3Y5Hb4BJ7VQHNKiYYu2kX5vhZJZHO8qfO40GPYYb/2TknZV8IG6fDPBQhUpcDRolI86sgag==} 314 + /@atproto/xrpc-server@0.9.1: 315 + resolution: {integrity: sha512-AJfxsKrZgKL/5362Rc0oUEjlgpDCmY/soeyLHHjid8J6clbErAdJVCuFwW4T40aHGFY1J13a29ucwbSfOROx6w==} 305 316 engines: {node: '>=18.7.0'} 306 317 dependencies: 307 318 '@atproto/common': 0.4.11 308 319 '@atproto/crypto': 0.4.4 309 - '@atproto/lexicon': 0.4.11 310 - '@atproto/xrpc': 0.7.0 320 + '@atproto/lexicon': 0.4.12 321 + '@atproto/xrpc': 0.7.1 311 322 cbor-x: 1.5.8 312 323 express: 4.18.2 313 324 http-errors: 2.0.0 ··· 322 333 - utf-8-validate 323 334 dev: false 324 335 325 - /@atproto/xrpc@0.7.0: 326 - resolution: {integrity: sha512-SfhP9dGx2qclaScFDb58Jnrmim5nk4geZXCqg6sB0I/KZhZEkr9iIx1hLCp+sxkIfEsmEJjeWO4B0rjUIJW5cw==} 336 + /@atproto/xrpc@0.7.1: 337 + resolution: {integrity: sha512-ANHEzlskYlMEdH18m+Itp3a8d0pEJao2qoDybDoMupTnoeNkya4VKIaOgAi6ERQnqatBBZyn9asW+7rJmSt/8g==} 327 338 dependencies: 328 - '@atproto/lexicon': 0.4.11 339 + '@atproto/lexicon': 0.4.12 329 340 zod: 3.23.8 330 341 dev: false 331 342 ··· 2188 2199 engines: {node: '>= 0.6'} 2189 2200 dev: false 2190 2201 2191 - /cookie@0.6.0: 2192 - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 2202 + /cookie@0.7.2: 2203 + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 2193 2204 engines: {node: '>= 0.6'} 2194 2205 dev: false 2195 2206 ··· 3071 3082 3072 3083 /proxy-from-env@1.1.0: 3073 3084 resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 3074 - dev: false 3075 - 3076 - /psl@1.9.0: 3077 - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 3078 3085 dev: false 3079 3086 3080 3087 /pump@3.0.0: