personal web client for Bluesky
typescript solidjs bluesky atcute

chore: upgrade dependencies

mary.my.id da7cf2f5 57405759

verified
+388 -614
+13 -12
package.json
··· 10 "dependencies": { 11 "@atcute/atproto": "^3.1.10", 12 "@atcute/bluemoji": "^3.1.3", 13 - "@atcute/bluesky": "^3.2.15", 14 "@atcute/bluesky-richtext-parser": "^1.0.7", 15 "@atcute/bluesky-richtext-segmenter": "^3.0.0", 16 "@atcute/bluesky-search-parser": "^0.1.1", ··· 19 "@atcute/client": "^4.2.1", 20 "@atcute/identity": "^1.1.3", 21 "@atcute/identity-resolver": "^1.2.2", 22 - "@atcute/lexicons": "^1.2.6", 23 - "@atcute/multibase": "^1.1.6", 24 - "@atcute/oauth-browser-client": "2.0.3", 25 "@atcute/tid": "^1.1.1", 26 - "@atcute/uint8array": "^1.0.6", 27 - "@atcute/xrpc-server": "^0.1.8", 28 "@atlaskit/pragmatic-drag-and-drop": "1.6.0", 29 "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3", 30 - "@floating-ui/dom": "^1.7.4", 31 "@floating-ui/utils": "^0.2.10", 32 "@kelinci/basa-lexicons": "^1.0.0", 33 "@mary/array-fns": "jsr:^0.1.5", ··· 40 "@mary/solid-query": "npm:@externdefs/solid-query@^0.1.5", 41 "comlink": "^4.4.2", 42 "hls.js": "^1.6.15", 43 - "mediabunny": "^1.29.0", 44 "nanoid": "^5.1.6", 45 "solid-floating-ui": "~0.2.1", 46 - "solid-js": "^1.9.10" 47 }, 48 "devDependencies": { 49 "@badrap/valita": "^0.4.6", 50 - "@cloudflare/vite-plugin": "^1.21.0", 51 "@types/dom-close-watcher": "^1.0.0", 52 "@types/dom-webcodecs": "^0.1.18", 53 "@types/node": "^24.10.9", 54 "autoprefixer": "^10.4.23", 55 "babel-plugin-transform-typescript-const-enums": "^0.1.0", 56 "oxfmt": "^0.26.0", 57 - "prettier": "^3.8.0", 58 "tailwindcss": "^3.4.19", 59 "terser": "^5.46.0", 60 "typescript": "~5.9.3", 61 "vite": "^7.3.1", 62 "vite-plugin-pwa": "1.1.0", 63 "vite-plugin-solid": "^2.11.10", 64 - "wrangler": "^4.59.2" 65 }, 66 "pnpm": { 67 "patchedDependencies": {
··· 10 "dependencies": { 11 "@atcute/atproto": "^3.1.10", 12 "@atcute/bluemoji": "^3.1.3", 13 + "@atcute/bluesky": "^3.2.16", 14 "@atcute/bluesky-richtext-parser": "^1.0.7", 15 "@atcute/bluesky-richtext-segmenter": "^3.0.0", 16 "@atcute/bluesky-search-parser": "^0.1.1", ··· 19 "@atcute/client": "^4.2.1", 20 "@atcute/identity": "^1.1.3", 21 "@atcute/identity-resolver": "^1.2.2", 22 + "@atcute/lexicons": "^1.2.7", 23 + "@atcute/multibase": "^1.1.7", 24 + "@atcute/oauth-browser-client": "^3.0.0", 25 + "@atcute/oauth-crypto": "^0.1.0", 26 "@atcute/tid": "^1.1.1", 27 + "@atcute/uint8array": "^1.1.0", 28 + "@atcute/xrpc-server": "^0.1.9", 29 "@atlaskit/pragmatic-drag-and-drop": "1.6.0", 30 "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3", 31 + "@floating-ui/dom": "^1.7.5", 32 "@floating-ui/utils": "^0.2.10", 33 "@kelinci/basa-lexicons": "^1.0.0", 34 "@mary/array-fns": "jsr:^0.1.5", ··· 41 "@mary/solid-query": "npm:@externdefs/solid-query@^0.1.5", 42 "comlink": "^4.4.2", 43 "hls.js": "^1.6.15", 44 + "mediabunny": "^1.31.0", 45 "nanoid": "^5.1.6", 46 "solid-floating-ui": "~0.2.1", 47 + "solid-js": "^1.9.11" 48 }, 49 "devDependencies": { 50 "@badrap/valita": "^0.4.6", 51 + "@cloudflare/vite-plugin": "^1.22.1", 52 "@types/dom-close-watcher": "^1.0.0", 53 "@types/dom-webcodecs": "^0.1.18", 54 "@types/node": "^24.10.9", 55 "autoprefixer": "^10.4.23", 56 "babel-plugin-transform-typescript-const-enums": "^0.1.0", 57 "oxfmt": "^0.26.0", 58 + "prettier": "^3.8.1", 59 "tailwindcss": "^3.4.19", 60 "terser": "^5.46.0", 61 "typescript": "~5.9.3", 62 "vite": "^7.3.1", 63 "vite-plugin-pwa": "1.1.0", 64 "vite-plugin-solid": "^2.11.10", 65 + "wrangler": "^4.61.1" 66 }, 67 "pnpm": { 68 "patchedDependencies": {
+345 -320
pnpm-lock.yaml
··· 37 specifier: ^3.1.3 38 version: 3.1.3 39 '@atcute/bluesky': 40 - specifier: ^3.2.15 41 - version: 3.2.15 42 '@atcute/bluesky-richtext-parser': 43 specifier: ^1.0.7 44 version: 1.0.7 ··· 64 specifier: ^1.2.2 65 version: 1.2.2(@atcute/identity@1.1.3) 66 '@atcute/lexicons': 67 - specifier: ^1.2.6 68 - version: 1.2.6 69 '@atcute/multibase': 70 - specifier: ^1.1.6 71 - version: 1.1.6 72 '@atcute/oauth-browser-client': 73 - specifier: 2.0.3 74 - version: 2.0.3(@atcute/identity@1.1.3) 75 '@atcute/tid': 76 specifier: ^1.1.1 77 version: 1.1.1 78 '@atcute/uint8array': 79 - specifier: ^1.0.6 80 - version: 1.0.6 81 '@atcute/xrpc-server': 82 - specifier: ^0.1.8 83 - version: 0.1.8 84 '@atlaskit/pragmatic-drag-and-drop': 85 specifier: 1.6.0 86 version: 1.6.0 ··· 88 specifier: 1.0.3 89 version: 1.0.3 90 '@floating-ui/dom': 91 - specifier: ^1.7.4 92 - version: 1.7.4 93 '@floating-ui/utils': 94 specifier: ^0.2.10 95 version: 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) ··· 116 version: '@jsr/mary__exif-rm@0.2.2' 117 '@mary/solid-freeze': 118 specifier: npm:@externdefs/solid-freeze@^0.1.1 119 - version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))' 120 '@mary/solid-query': 121 specifier: npm:@externdefs/solid-query@^0.1.5 122 - version: '@externdefs/solid-query@0.1.5(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))' 123 comlink: 124 specifier: ^4.4.2 125 version: 4.4.2 ··· 127 specifier: ^1.6.15 128 version: 1.6.15 129 mediabunny: 130 - specifier: ^1.29.0 131 - version: 1.29.0 132 nanoid: 133 specifier: ^5.1.6 134 version: 5.1.6 135 solid-floating-ui: 136 specifier: ~0.2.1 137 - version: 0.2.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 138 solid-js: 139 - specifier: ^1.9.10 140 - version: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 141 devDependencies: 142 '@badrap/valita': 143 specifier: ^0.4.6 144 version: 0.4.6 145 '@cloudflare/vite-plugin': 146 - specifier: ^1.21.0 147 - version: 1.21.0(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260114.0)(wrangler@4.59.2) 148 '@types/dom-close-watcher': 149 specifier: ^1.0.0 150 version: 1.0.0 ··· 164 specifier: ^0.26.0 165 version: 0.26.0 166 prettier: 167 - specifier: ^3.8.0 168 - version: 3.8.0 169 tailwindcss: 170 specifier: ^3.4.19 171 version: 3.4.19 ··· 183 version: 1.1.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 184 vite-plugin-solid: 185 specifier: ^2.11.10 186 - version: 2.11.10(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 187 wrangler: 188 - specifier: ^4.59.2 189 - version: 4.59.2 190 191 packages: 192 ··· 215 '@atcute/bluesky-search-parser@0.1.1': 216 resolution: {integrity: sha512-jX01yzA4CWXfnpAmOL5P9kjpWEhVvIq2xEyYLZdFVpYe1v6xclUem1ir+Q8+aWoAcYwqQq6pM16XxkGw0yi5nA==} 217 218 - '@atcute/bluesky@3.2.15': 219 - resolution: {integrity: sha512-H4RW3WffjfdKvOZ9issEUQnuSR4KfuAwwJnYu0fclA9VDa99JTJ+pa8tTl9lFeBV9DINtWJAx7rdIbICoVCstQ==} 220 221 '@atcute/cbor@2.3.0': 222 resolution: {integrity: sha512-7G2AndkfYzIXMBOBqUPUWP6oIJJm77KY5nYzS4Mr5NNxnmnrBrXEQqp+seCE3X5TV8FUSWQK5YRTU87uPjafMQ==} ··· 238 '@atcute/identity@1.1.3': 239 resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==} 240 241 - '@atcute/lexicons@1.2.6': 242 - resolution: {integrity: sha512-s76UQd8D+XmHIzrjD9CJ9SOOeeLPHc+sMmcj7UFakAW/dDFXc579fcRdRfuUKvXBL5v1Gs2VgDdlh/IvvQZAwA==} 243 244 - '@atcute/multibase@1.1.6': 245 - resolution: {integrity: sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==} 246 247 - '@atcute/oauth-browser-client@2.0.3': 248 - resolution: {integrity: sha512-rzUjwhjE4LRRKdQnCFQag/zXRZMEAB1hhBoLfnoQuHwWbmDUCL7fzwC3jRhDPp3om8XaYNDj8a/iqRip0wRqoQ==} 249 250 '@atcute/tid@1.1.1': 251 resolution: {integrity: sha512-djJ8UGhLkTU5V51yCnBEruMg35qETjWzWy5sJG/2gEOl2Gd7rQWHSaf+yrO6vMS5EFA38U2xOWE3EDUPzvc2ZQ==} ··· 253 '@atcute/time-ms@1.2.0': 254 resolution: {integrity: sha512-dtNKebVIbr1+yu3a6vgtL4sfkNgxkL3aA+ohHsjtW83WWMjjGvX8GVTVmYCJ2dYSxIoxK0q1yWs11PmlqzmQ/A==} 255 256 - '@atcute/uint8array@1.0.6': 257 - resolution: {integrity: sha512-ucfRBQc7BFT8n9eCyGOzDHEMKF/nZwhS2pPao4Xtab1ML3HdFYcX2DM1tadCzas85QTGxHe5urnUAAcNKGRi9A==} 258 259 '@atcute/util-fetch@1.0.5': 260 resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==} 261 262 - '@atcute/util-text@0.0.1': 263 - resolution: {integrity: sha512-t1KZqvn0AYy+h2KcJyHnKF9aEqfRfMUmyY8j1ELtAEIgqN9CxINAjxnoRCJIFUlvWzb+oY3uElQL/Vyk3yss0g==} 264 265 - '@atcute/xrpc-server@0.1.8': 266 - resolution: {integrity: sha512-GFdPtaXQXfsqejx88CaJ6zU0Yexrh3n94/rotGk1xwNJLa1iQ5kuWQqzttcybXoYEOp5Z2CGGw7bx9WuCLarlw==} 267 268 '@atlaskit/pragmatic-drag-and-drop-hitbox@1.0.3': 269 resolution: {integrity: sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==} ··· 307 peerDependencies: 308 '@babel/core': ^7.0.0 309 310 - '@babel/helper-define-polyfill-provider@0.6.5': 311 - resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} 312 peerDependencies: 313 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 314 ··· 784 resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} 785 engines: {node: '>=18.0.0'} 786 787 - '@cloudflare/unenv-preset@2.10.0': 788 - resolution: {integrity: sha512-/uII4vLQXhzCAZzEVeYAjFLBNg2nqTJ1JGzd2lRF6ItYe6U2zVoYGfeKpGx/EkBF6euiU+cyBXgMdtJih+nQ6g==} 789 peerDependencies: 790 unenv: 2.0.0-rc.24 791 - workerd: ^1.20251221.0 792 peerDependenciesMeta: 793 workerd: 794 optional: true 795 796 - '@cloudflare/vite-plugin@1.21.0': 797 - resolution: {integrity: sha512-3VXtkfjOQL+k3Plj+t0BHRyw8iIIRBQ8RJU6KJHJQKdYHA6rJE/WlSa/lRd0A8MMhvP8e8QiMLuDqveEN8gCZg==} 798 peerDependencies: 799 vite: ^6.1.0 || ^7.0.0 800 - wrangler: ^4.59.2 801 802 - '@cloudflare/workerd-darwin-64@1.20260114.0': 803 - resolution: {integrity: sha512-HNlsRkfNgardCig2P/5bp/dqDECsZ4+NU5XewqArWxMseqt3C5daSuptI620s4pn7Wr0ZKg7jVLH0PDEBkA+aA==} 804 engines: {node: '>=16'} 805 cpu: [x64] 806 os: [darwin] 807 808 - '@cloudflare/workerd-darwin-arm64@1.20260114.0': 809 - resolution: {integrity: sha512-qyE1UdFnAlxzb+uCfN/d9c8icch7XRiH49/DjoqEa+bCDihTuRS7GL1RmhVIqHJhb3pX3DzxmKgQZBDBL83Inw==} 810 engines: {node: '>=16'} 811 cpu: [arm64] 812 os: [darwin] 813 814 - '@cloudflare/workerd-linux-64@1.20260114.0': 815 - resolution: {integrity: sha512-Z0BLvAj/JPOabzads2ddDEfgExWTlD22pnwsuNbPwZAGTSZeQa3Y47eGUWyHk+rSGngknk++S7zHTGbKuG7RRg==} 816 engines: {node: '>=16'} 817 cpu: [x64] 818 os: [linux] 819 820 - '@cloudflare/workerd-linux-arm64@1.20260114.0': 821 - resolution: {integrity: sha512-kPUmEtUxUWlr9PQ64kuhdK0qyo8idPe5IIXUgi7xCD7mDd6EOe5J7ugDpbfvfbYKEjx4DpLvN2t45izyI/Sodw==} 822 engines: {node: '>=16'} 823 cpu: [arm64] 824 os: [linux] 825 826 - '@cloudflare/workerd-windows-64@1.20260114.0': 827 - resolution: {integrity: sha512-MJnKgm6i1jZGyt2ZHQYCnRlpFTEZcK2rv9y7asS3KdVEXaDgGF8kOns5u6YL6/+eMogfZuHRjfDS+UqRTUYIFA==} 828 engines: {node: '>=16'} 829 cpu: [x64] 830 os: [win32] ··· 1158 peerDependencies: 1159 solid-js: ^1.8.5 1160 1161 - '@floating-ui/core@1.7.3': 1162 - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} 1163 1164 - '@floating-ui/dom@1.7.4': 1165 - resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} 1166 1167 '@floating-ui/utils@0.2.10': 1168 resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} ··· 1487 rollup: 1488 optional: true 1489 1490 - '@rollup/rollup-android-arm-eabi@4.55.2': 1491 - resolution: {integrity: sha512-21J6xzayjy3O6NdnlO6aXi/urvSRjm6nCI6+nF6ra2YofKruGixN9kfT+dt55HVNwfDmpDHJcaS3JuP/boNnlA==} 1492 cpu: [arm] 1493 os: [android] 1494 1495 - '@rollup/rollup-android-arm64@4.55.2': 1496 - resolution: {integrity: sha512-eXBg7ibkNUZ+sTwbFiDKou0BAckeV6kIigK7y5Ko4mB/5A1KLhuzEKovsmfvsL8mQorkoincMFGnQuIT92SKqA==} 1497 cpu: [arm64] 1498 os: [android] 1499 1500 - '@rollup/rollup-darwin-arm64@4.55.2': 1501 - resolution: {integrity: sha512-UCbaTklREjrc5U47ypLulAgg4njaqfOVLU18VrCrI+6E5MQjuG0lSWaqLlAJwsD7NpFV249XgB0Bi37Zh5Sz4g==} 1502 cpu: [arm64] 1503 os: [darwin] 1504 1505 - '@rollup/rollup-darwin-x64@4.55.2': 1506 - resolution: {integrity: sha512-dP67MA0cCMHFT2g5XyjtpVOtp7y4UyUxN3dhLdt11at5cPKnSm4lY+EhwNvDXIMzAMIo2KU+mc9wxaAQJTn7sQ==} 1507 cpu: [x64] 1508 os: [darwin] 1509 1510 - '@rollup/rollup-freebsd-arm64@4.55.2': 1511 - resolution: {integrity: sha512-WDUPLUwfYV9G1yxNRJdXcvISW15mpvod1Wv3ok+Ws93w1HjIVmCIFxsG2DquO+3usMNCpJQ0wqO+3GhFdl6Fow==} 1512 cpu: [arm64] 1513 os: [freebsd] 1514 1515 - '@rollup/rollup-freebsd-x64@4.55.2': 1516 - resolution: {integrity: sha512-Ng95wtHVEulRwn7R0tMrlUuiLVL/HXA8Lt/MYVpy88+s5ikpntzZba1qEulTuPnPIZuOPcW9wNEiqvZxZmgmqQ==} 1517 cpu: [x64] 1518 os: [freebsd] 1519 1520 - '@rollup/rollup-linux-arm-gnueabihf@4.55.2': 1521 - resolution: {integrity: sha512-AEXMESUDWWGqD6LwO/HkqCZgUE1VCJ1OhbvYGsfqX2Y6w5quSXuyoy/Fg3nRqiwro+cJYFxiw5v4kB2ZDLhxrw==} 1522 cpu: [arm] 1523 os: [linux] 1524 1525 - '@rollup/rollup-linux-arm-musleabihf@4.55.2': 1526 - resolution: {integrity: sha512-ZV7EljjBDwBBBSv570VWj0hiNTdHt9uGznDtznBB4Caj3ch5rgD4I2K1GQrtbvJ/QiB+663lLgOdcADMNVC29Q==} 1527 cpu: [arm] 1528 os: [linux] 1529 1530 - '@rollup/rollup-linux-arm64-gnu@4.55.2': 1531 - resolution: {integrity: sha512-uvjwc8NtQVPAJtq4Tt7Q49FOodjfbf6NpqXyW/rjXoV+iZ3EJAHLNAnKT5UJBc6ffQVgmXTUL2ifYiLABlGFqA==} 1532 cpu: [arm64] 1533 os: [linux] 1534 1535 - '@rollup/rollup-linux-arm64-musl@4.55.2': 1536 - resolution: {integrity: sha512-s3KoWVNnye9mm/2WpOZ3JeUiediUVw6AvY/H7jNA6qgKA2V2aM25lMkVarTDfiicn/DLq3O0a81jncXszoyCFA==} 1537 cpu: [arm64] 1538 os: [linux] 1539 1540 - '@rollup/rollup-linux-loong64-gnu@4.55.2': 1541 - resolution: {integrity: sha512-gi21faacK+J8aVSyAUptML9VQN26JRxe484IbF+h3hpG+sNVoMXPduhREz2CcYr5my0NE3MjVvQ5bMKX71pfVA==} 1542 cpu: [loong64] 1543 os: [linux] 1544 1545 - '@rollup/rollup-linux-loong64-musl@4.55.2': 1546 - resolution: {integrity: sha512-qSlWiXnVaS/ceqXNfnoFZh4IiCA0EwvCivivTGbEu1qv2o+WTHpn1zNmCTAoOG5QaVr2/yhCoLScQtc/7RxshA==} 1547 cpu: [loong64] 1548 os: [linux] 1549 1550 - '@rollup/rollup-linux-ppc64-gnu@4.55.2': 1551 - resolution: {integrity: sha512-rPyuLFNoF1B0+wolH277E780NUKf+KoEDb3OyoLbAO18BbeKi++YN6gC/zuJoPPDlQRL3fIxHxCxVEWiem2yXw==} 1552 cpu: [ppc64] 1553 os: [linux] 1554 1555 - '@rollup/rollup-linux-ppc64-musl@4.55.2': 1556 - resolution: {integrity: sha512-g+0ZLMook31iWV4PvqKU0i9E78gaZgYpSrYPed/4Bu+nGTgfOPtfs1h11tSSRPXSjC5EzLTjV/1A7L2Vr8pJoQ==} 1557 cpu: [ppc64] 1558 os: [linux] 1559 1560 - '@rollup/rollup-linux-riscv64-gnu@4.55.2': 1561 - resolution: {integrity: sha512-i+sGeRGsjKZcQRh3BRfpLsM3LX3bi4AoEVqmGDyc50L6KfYsN45wVCSz70iQMwPWr3E5opSiLOwsC9WB4/1pqg==} 1562 cpu: [riscv64] 1563 os: [linux] 1564 1565 - '@rollup/rollup-linux-riscv64-musl@4.55.2': 1566 - resolution: {integrity: sha512-C1vLcKc4MfFV6I0aWsC7B2Y9QcsiEcvKkfxprwkPfLaN8hQf0/fKHwSF2lcYzA9g4imqnhic729VB9Fo70HO3Q==} 1567 cpu: [riscv64] 1568 os: [linux] 1569 1570 - '@rollup/rollup-linux-s390x-gnu@4.55.2': 1571 - resolution: {integrity: sha512-68gHUK/howpQjh7g7hlD9DvTTt4sNLp1Bb+Yzw2Ki0xvscm2cOdCLZNJNhd2jW8lsTPrHAHuF751BygifW4bkQ==} 1572 cpu: [s390x] 1573 os: [linux] 1574 1575 - '@rollup/rollup-linux-x64-gnu@4.55.2': 1576 - resolution: {integrity: sha512-1e30XAuaBP1MAizaOBApsgeGZge2/Byd6wV4a8oa6jPdHELbRHBiw7wvo4dp7Ie2PE8TZT4pj9RLGZv9N4qwlw==} 1577 cpu: [x64] 1578 os: [linux] 1579 1580 - '@rollup/rollup-linux-x64-musl@4.55.2': 1581 - resolution: {integrity: sha512-4BJucJBGbuGnH6q7kpPqGJGzZnYrpAzRd60HQSt3OpX/6/YVgSsJnNzR8Ot74io50SeVT4CtCWe/RYIAymFPwA==} 1582 cpu: [x64] 1583 os: [linux] 1584 1585 - '@rollup/rollup-openbsd-x64@4.55.2': 1586 - resolution: {integrity: sha512-cT2MmXySMo58ENv8p6/O6wI/h/gLnD3D6JoajwXFZH6X9jz4hARqUhWpGuQhOgLNXscfZYRQMJvZDtWNzMAIDw==} 1587 cpu: [x64] 1588 os: [openbsd] 1589 1590 - '@rollup/rollup-openharmony-arm64@4.55.2': 1591 - resolution: {integrity: sha512-sZnyUgGkuzIXaK3jNMPmUIyJrxu/PjmATQrocpGA1WbCPX8H5tfGgRSuYtqBYAvLuIGp8SPRb1O4d1Fkb5fXaQ==} 1592 cpu: [arm64] 1593 os: [openharmony] 1594 1595 - '@rollup/rollup-win32-arm64-msvc@4.55.2': 1596 - resolution: {integrity: sha512-sDpFbenhmWjNcEbBcoTV0PWvW5rPJFvu+P7XoTY0YLGRupgLbFY0XPfwIbJOObzO7QgkRDANh65RjhPmgSaAjQ==} 1597 cpu: [arm64] 1598 os: [win32] 1599 1600 - '@rollup/rollup-win32-ia32-msvc@4.55.2': 1601 - resolution: {integrity: sha512-GvJ03TqqaweWCigtKQVBErw2bEhu1tyfNQbarwr94wCGnczA9HF8wqEe3U/Lfu6EdeNP0p6R+APeHVwEqVxpUQ==} 1602 cpu: [ia32] 1603 os: [win32] 1604 1605 - '@rollup/rollup-win32-x64-gnu@4.55.2': 1606 - resolution: {integrity: sha512-KvXsBvp13oZz9JGe5NYS7FNizLe99Ny+W8ETsuCyjXiKdiGrcz2/J/N8qxZ/RSwivqjQguug07NLHqrIHrqfYw==} 1607 cpu: [x64] 1608 os: [win32] 1609 1610 - '@rollup/rollup-win32-x64-msvc@4.55.2': 1611 - resolution: {integrity: sha512-xNO+fksQhsAckRtDSPWaMeT1uIM+JrDRXlerpnWNXhn1TdB3YZ6uKBMBTKP0eX9XtYEP978hHk1f8332i2AW8Q==} 1612 cpu: [x64] 1613 os: [win32] 1614 ··· 1640 '@types/babel__traverse@7.28.0': 1641 resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 1642 1643 - '@types/bun@1.3.6': 1644 - resolution: {integrity: sha512-uWCv6FO/8LcpREhenN1d1b6fcspAB+cefwD7uti8C8VffIv0Um08TKMn98FynpTiU38+y2dUO55T11NgDt8VAA==} 1645 1646 '@types/dom-close-watcher@1.0.0': 1647 resolution: {integrity: sha512-7pL0By56sVVGMSJ3HdSY+u08Id0ljStCaf1VnGFxwfpuNdA0HMz0sl2J24eSi9M6ptl9ySkVK35jF75Fn8trUg==} ··· 1723 peerDependencies: 1724 '@babel/core': ^7.20.12 1725 1726 - babel-plugin-polyfill-corejs2@0.4.14: 1727 - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} 1728 peerDependencies: 1729 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1730 ··· 1733 peerDependencies: 1734 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1735 1736 - babel-plugin-polyfill-regenerator@0.6.5: 1737 - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} 1738 peerDependencies: 1739 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1740 ··· 1755 balanced-match@1.0.2: 1756 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1757 1758 - baseline-browser-mapping@2.9.16: 1759 - resolution: {integrity: sha512-KeUZdBuxngy825i8xvzaK1Ncnkx0tBmb3k8DkEuqjKRkmtvNTjey2ZsNeh8Dw4lfKvbCOu9oeNx2TKm2vHqcRw==} 1760 hasBin: true 1761 1762 binary-extensions@2.3.0: ··· 1784 buffer-from@1.1.2: 1785 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1786 1787 - bun-types@1.3.6: 1788 - resolution: {integrity: sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==} 1789 1790 camelcase-css@2.0.1: 1791 resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1792 engines: {node: '>= 6'} 1793 1794 - caniuse-lite@1.0.30001765: 1795 - resolution: {integrity: sha512-LWcNtSyZrakjECqmpP4qdg0MMGdN368D7X8XvvAqOcqMv0RxnlqVKZl2V6/mBR68oYMxOZPLw/gO7DuisMHUvQ==} 1796 1797 chokidar@3.6.0: 1798 resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} ··· 1826 resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 1827 engines: {node: '>=18'} 1828 1829 - core-js-compat@3.47.0: 1830 - resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} 1831 1832 cross-spawn@7.0.6: 1833 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} ··· 1876 engines: {node: '>=0.10.0'} 1877 hasBin: true 1878 1879 - electron-to-chromium@1.5.267: 1880 - resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} 1881 1882 emoji-regex@8.0.0: 1883 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} ··· 2101 lodash.sortby@4.7.0: 2102 resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2103 2104 - lodash@4.17.21: 2105 - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 2106 2107 - lru-cache@11.2.4: 2108 - resolution: {integrity: sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==} 2109 engines: {node: 20 || >=22} 2110 2111 lru-cache@5.1.1: ··· 2114 magic-string@0.25.9: 2115 resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2116 2117 - mediabunny@1.29.0: 2118 - resolution: {integrity: sha512-18B8w/rhO/ph/AFsIXvzZg8RaSQZ+ZYfJ99MZlTjDmlgCT58jV3azrnWQ/OSquYDi8q0xmn64mnfTEHgww3+zw==} 2119 2120 merge-anything@5.1.7: 2121 resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} ··· 2129 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 2130 engines: {node: '>=8.6'} 2131 2132 - miniflare@4.20260114.0: 2133 - resolution: {integrity: sha512-QwHT7S6XqGdQxIvql1uirH/7/i3zDEt0B/YBXTYzMfJtVCR4+ue3KPkU+Bl0zMxvpgkvjh9+eCHhJbKEqya70A==} 2134 engines: {node: '>=18.0.0'} 2135 hasBin: true 2136 ··· 2275 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 2276 engines: {node: ^10 || ^12 || >=14} 2277 2278 - prettier@3.8.0: 2279 - resolution: {integrity: sha512-yEPsovQfpxYfgWNhCfECjG5AQaO+K3dp6XERmOepyPDVqcJm+bjyCVO3pmU+nAPe0N5dDvekfGezt/EIiRe1TA==} 2280 engines: {node: '>=14'} 2281 hasBin: true 2282 ··· 2344 engines: {node: '>=10.0.0'} 2345 hasBin: true 2346 2347 - rollup@4.55.2: 2348 - resolution: {integrity: sha512-PggGy4dhwx5qaW+CKBilA/98Ql9keyfnb7lh4SR6shQ91QQQi1ORJ1v4UinkdP2i87OBs9AQFooQylcrrRfIcg==} 2349 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2350 hasBin: true 2351 ··· 2364 serialize-javascript@6.0.2: 2365 resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 2366 2367 - seroval-plugins@1.3.3: 2368 - resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==} 2369 engines: {node: '>=10'} 2370 peerDependencies: 2371 seroval: ^1.0 2372 2373 - seroval@1.3.2: 2374 - resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 2375 engines: {node: '>=10'} 2376 2377 sharp@0.34.5: ··· 2400 '@floating-ui/dom': ^1.0 2401 solid-js: ^1.3 2402 2403 - solid-js@1.9.10: 2404 - resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==} 2405 2406 solid-refresh@0.6.3: 2407 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 2523 undici-types@7.16.0: 2524 resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 2525 2526 - undici@7.14.0: 2527 - resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==} 2528 engines: {node: '>=20.18.1'} 2529 2530 unenv@2.0.0-rc.24: ··· 2698 workbox-window@7.4.0: 2699 resolution: {integrity: sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==} 2700 2701 - workerd@1.20260114.0: 2702 - resolution: {integrity: sha512-kTJ+jNdIllOzWuVA3NRQRvywP0T135zdCjAE2dAUY1BFbxM6fmMZV8BbskEoQ4hAODVQUfZQmyGctcwvVCKxFA==} 2703 engines: {node: '>=16'} 2704 hasBin: true 2705 2706 - wrangler@4.59.2: 2707 - resolution: {integrity: sha512-Z4xn6jFZTaugcOKz42xvRAYKgkVUERHVbuCJ5+f+gK+R6k12L02unakPGOA0L0ejhUl16dqDjKe4tmL9sedHcw==} 2708 engines: {node: '>=20.0.0'} 2709 hasBin: true 2710 peerDependencies: 2711 - '@cloudflare/workers-types': ^4.20260114.0 2712 peerDependenciesMeta: 2713 '@cloudflare/workers-types': 2714 optional: true ··· 2742 youch@4.1.0-beta.10: 2743 resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} 2744 2745 - zod@3.25.76: 2746 - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 2747 - 2748 snapshots: 2749 2750 '@alloc/quick-lru@5.2.0': {} ··· 2758 2759 '@atcute/atproto@3.1.10': 2760 dependencies: 2761 - '@atcute/lexicons': 1.2.6 2762 2763 '@atcute/bluemoji@3.1.3': 2764 dependencies: 2765 '@atcute/atproto': 3.1.10 2766 - '@atcute/bluesky': 3.2.15 2767 - '@atcute/lexicons': 1.2.6 2768 2769 '@atcute/bluesky-richtext-parser@1.0.7': {} 2770 ··· 2772 2773 '@atcute/bluesky-search-parser@0.1.1': {} 2774 2775 - '@atcute/bluesky@3.2.15': 2776 dependencies: 2777 '@atcute/atproto': 3.1.10 2778 - '@atcute/lexicons': 1.2.6 2779 2780 '@atcute/cbor@2.3.0': 2781 dependencies: 2782 '@atcute/cid': 2.4.0 2783 - '@atcute/multibase': 1.1.6 2784 - '@atcute/uint8array': 1.0.6 2785 2786 '@atcute/cid@2.4.0': 2787 dependencies: 2788 - '@atcute/multibase': 1.1.6 2789 - '@atcute/uint8array': 1.0.6 2790 2791 '@atcute/client@4.2.1': 2792 dependencies: 2793 '@atcute/identity': 1.1.3 2794 - '@atcute/lexicons': 1.2.6 2795 2796 '@atcute/crypto@2.3.0': 2797 dependencies: 2798 - '@atcute/multibase': 1.1.6 2799 - '@atcute/uint8array': 1.0.6 2800 '@noble/secp256k1': 3.0.0 2801 2802 '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)': 2803 dependencies: 2804 '@atcute/identity': 1.1.3 2805 - '@atcute/lexicons': 1.2.6 2806 '@atcute/util-fetch': 1.0.5 2807 '@badrap/valita': 0.4.6 2808 2809 '@atcute/identity@1.1.3': 2810 dependencies: 2811 - '@atcute/lexicons': 1.2.6 2812 '@badrap/valita': 0.4.6 2813 2814 - '@atcute/lexicons@1.2.6': 2815 dependencies: 2816 - '@atcute/uint8array': 1.0.6 2817 - '@atcute/util-text': 0.0.1 2818 '@standard-schema/spec': 1.1.0 2819 esm-env: 1.2.2 2820 2821 - '@atcute/multibase@1.1.6': 2822 dependencies: 2823 - '@atcute/uint8array': 1.0.6 2824 2825 - '@atcute/oauth-browser-client@2.0.3(@atcute/identity@1.1.3)': 2826 dependencies: 2827 '@atcute/client': 4.2.1 2828 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3) 2829 - '@atcute/lexicons': 1.2.6 2830 - '@atcute/multibase': 1.1.6 2831 - '@atcute/uint8array': 1.0.6 2832 nanoid: 5.1.6 2833 transitivePeerDependencies: 2834 - '@atcute/identity' 2835 2836 '@atcute/tid@1.1.1': 2837 dependencies: 2838 '@atcute/time-ms': 1.2.0 2839 2840 '@atcute/time-ms@1.2.0': 2841 dependencies: 2842 - '@types/bun': 1.3.6 2843 node-gyp-build: 4.8.4 2844 2845 - '@atcute/uint8array@1.0.6': {} 2846 2847 '@atcute/util-fetch@1.0.5': 2848 dependencies: 2849 '@badrap/valita': 0.4.6 2850 2851 - '@atcute/util-text@0.0.1': 2852 dependencies: 2853 unicode-segmenter: 0.14.5 2854 2855 - '@atcute/xrpc-server@0.1.8': 2856 dependencies: 2857 '@atcute/cbor': 2.3.0 2858 '@atcute/crypto': 2.3.0 2859 '@atcute/identity': 1.1.3 2860 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3) 2861 - '@atcute/lexicons': 1.2.6 2862 - '@atcute/multibase': 1.1.6 2863 - '@atcute/uint8array': 1.0.6 2864 '@badrap/valita': 0.4.6 2865 nanoid: 5.1.6 2866 ··· 2943 regexpu-core: 6.4.0 2944 semver: 6.3.1 2945 2946 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.6)': 2947 dependencies: 2948 '@babel/core': 7.28.6 2949 '@babel/helper-compilation-targets': 7.28.6 ··· 3498 '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6) 3499 '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.28.6) 3500 '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.6) 3501 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.6) 3502 babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.6) 3503 - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.6) 3504 - core-js-compat: 3.47.0 3505 semver: 6.3.1 3506 transitivePeerDependencies: 3507 - supports-color ··· 3542 3543 '@cloudflare/kv-asset-handler@0.4.2': {} 3544 3545 - '@cloudflare/unenv-preset@2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0)': 3546 dependencies: 3547 unenv: 2.0.0-rc.24 3548 optionalDependencies: 3549 - workerd: 1.20260114.0 3550 3551 - '@cloudflare/vite-plugin@1.21.0(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260114.0)(wrangler@4.59.2)': 3552 dependencies: 3553 - '@cloudflare/unenv-preset': 2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0) 3554 - miniflare: 4.20260114.0 3555 unenv: 2.0.0-rc.24 3556 vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0) 3557 - wrangler: 4.59.2 3558 ws: 8.18.0 3559 transitivePeerDependencies: 3560 - bufferutil 3561 - utf-8-validate 3562 - workerd 3563 3564 - '@cloudflare/workerd-darwin-64@1.20260114.0': 3565 optional: true 3566 3567 - '@cloudflare/workerd-darwin-arm64@1.20260114.0': 3568 optional: true 3569 3570 - '@cloudflare/workerd-linux-64@1.20260114.0': 3571 optional: true 3572 3573 - '@cloudflare/workerd-linux-arm64@1.20260114.0': 3574 optional: true 3575 3576 - '@cloudflare/workerd-windows-64@1.20260114.0': 3577 optional: true 3578 3579 '@cspotcode/source-map-support@0.8.1': ··· 3741 '@esbuild/win32-x64@0.27.2': 3742 optional: true 3743 3744 - '@externdefs/solid-freeze@0.1.1(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))': 3745 dependencies: 3746 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 3747 3748 - '@externdefs/solid-query@0.1.5(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))': 3749 dependencies: 3750 '@tanstack/query-core': 5.17.19(patch_hash=0b06407b66b7af88765fb6e01e112677a8c09ce518cb4f547cee8a0044471acd) 3751 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 3752 3753 - '@floating-ui/core@1.7.3': 3754 dependencies: 3755 '@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) 3756 3757 - '@floating-ui/dom@1.7.4': 3758 dependencies: 3759 - '@floating-ui/core': 1.7.3 3760 '@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) 3761 3762 '@floating-ui/utils@0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)': {} ··· 3915 3916 '@kelinci/basa-lexicons@1.0.0': 3917 dependencies: 3918 - '@atcute/lexicons': 1.2.6 3919 3920 '@noble/secp256k1@3.0.0': {} 3921 ··· 4027 optionalDependencies: 4028 rollup: 2.79.2 4029 4030 - '@rollup/rollup-android-arm-eabi@4.55.2': 4031 optional: true 4032 4033 - '@rollup/rollup-android-arm64@4.55.2': 4034 optional: true 4035 4036 - '@rollup/rollup-darwin-arm64@4.55.2': 4037 optional: true 4038 4039 - '@rollup/rollup-darwin-x64@4.55.2': 4040 optional: true 4041 4042 - '@rollup/rollup-freebsd-arm64@4.55.2': 4043 optional: true 4044 4045 - '@rollup/rollup-freebsd-x64@4.55.2': 4046 optional: true 4047 4048 - '@rollup/rollup-linux-arm-gnueabihf@4.55.2': 4049 optional: true 4050 4051 - '@rollup/rollup-linux-arm-musleabihf@4.55.2': 4052 optional: true 4053 4054 - '@rollup/rollup-linux-arm64-gnu@4.55.2': 4055 optional: true 4056 4057 - '@rollup/rollup-linux-arm64-musl@4.55.2': 4058 optional: true 4059 4060 - '@rollup/rollup-linux-loong64-gnu@4.55.2': 4061 optional: true 4062 4063 - '@rollup/rollup-linux-loong64-musl@4.55.2': 4064 optional: true 4065 4066 - '@rollup/rollup-linux-ppc64-gnu@4.55.2': 4067 optional: true 4068 4069 - '@rollup/rollup-linux-ppc64-musl@4.55.2': 4070 optional: true 4071 4072 - '@rollup/rollup-linux-riscv64-gnu@4.55.2': 4073 optional: true 4074 4075 - '@rollup/rollup-linux-riscv64-musl@4.55.2': 4076 optional: true 4077 4078 - '@rollup/rollup-linux-s390x-gnu@4.55.2': 4079 optional: true 4080 4081 - '@rollup/rollup-linux-x64-gnu@4.55.2': 4082 optional: true 4083 4084 - '@rollup/rollup-linux-x64-musl@4.55.2': 4085 optional: true 4086 4087 - '@rollup/rollup-openbsd-x64@4.55.2': 4088 optional: true 4089 4090 - '@rollup/rollup-openharmony-arm64@4.55.2': 4091 optional: true 4092 4093 - '@rollup/rollup-win32-arm64-msvc@4.55.2': 4094 optional: true 4095 4096 - '@rollup/rollup-win32-ia32-msvc@4.55.2': 4097 optional: true 4098 4099 - '@rollup/rollup-win32-x64-gnu@4.55.2': 4100 optional: true 4101 4102 - '@rollup/rollup-win32-x64-msvc@4.55.2': 4103 optional: true 4104 4105 '@sindresorhus/is@7.2.0': {} ··· 4138 dependencies: 4139 '@babel/types': 7.28.6 4140 4141 - '@types/bun@1.3.6': 4142 dependencies: 4143 - bun-types: 1.3.6 4144 4145 '@types/dom-close-watcher@1.0.0': {} 4146 ··· 4199 autoprefixer@10.4.23(postcss@8.5.6): 4200 dependencies: 4201 browserslist: 4.28.1 4202 - caniuse-lite: 1.0.30001765 4203 fraction.js: 5.3.4 4204 picocolors: 1.1.1 4205 postcss: 8.5.6 ··· 4214 html-entities: 2.3.3 4215 parse5: 7.3.0 4216 4217 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.6): 4218 dependencies: 4219 '@babel/compat-data': 7.28.6 4220 '@babel/core': 7.28.6 4221 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) 4222 semver: 6.3.1 4223 transitivePeerDependencies: 4224 - supports-color ··· 4226 babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.6): 4227 dependencies: 4228 '@babel/core': 7.28.6 4229 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) 4230 - core-js-compat: 3.47.0 4231 transitivePeerDependencies: 4232 - supports-color 4233 4234 - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.6): 4235 dependencies: 4236 '@babel/core': 7.28.6 4237 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) 4238 transitivePeerDependencies: 4239 - supports-color 4240 ··· 4244 '@babel/helper-plugin-utils': 7.28.6 4245 '@babel/types': 7.28.6 4246 4247 - babel-preset-solid@1.9.10(@babel/core@7.28.6)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4248 dependencies: 4249 '@babel/core': 7.28.6 4250 babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.6) 4251 optionalDependencies: 4252 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4253 4254 balanced-match@1.0.2: {} 4255 4256 - baseline-browser-mapping@2.9.16: {} 4257 4258 binary-extensions@2.3.0: {} 4259 ··· 4271 4272 browserslist@4.28.1: 4273 dependencies: 4274 - baseline-browser-mapping: 2.9.16 4275 - caniuse-lite: 1.0.30001765 4276 - electron-to-chromium: 1.5.267 4277 node-releases: 2.0.27 4278 update-browserslist-db: 1.2.3(browserslist@4.28.1) 4279 4280 buffer-from@1.1.2: {} 4281 4282 - bun-types@1.3.6: 4283 dependencies: 4284 '@types/node': 24.10.9 4285 4286 camelcase-css@2.0.1: {} 4287 4288 - caniuse-lite@1.0.30001765: {} 4289 4290 chokidar@3.6.0: 4291 dependencies: ··· 4317 4318 cookie@1.1.1: {} 4319 4320 - core-js-compat@3.47.0: 4321 dependencies: 4322 browserslist: 4.28.1 4323 ··· 4351 dependencies: 4352 jake: 10.9.4 4353 4354 - electron-to-chromium@1.5.267: {} 4355 4356 emoji-regex@8.0.0: {} 4357 ··· 4573 4574 lodash.sortby@4.7.0: {} 4575 4576 - lodash@4.17.21: {} 4577 4578 - lru-cache@11.2.4: {} 4579 4580 lru-cache@5.1.1: 4581 dependencies: ··· 4585 dependencies: 4586 sourcemap-codec: 1.4.8 4587 4588 - mediabunny@1.29.0: 4589 dependencies: 4590 '@types/dom-mediacapture-transform': 0.1.11 4591 '@types/dom-webcodecs': 0.1.13 ··· 4601 braces: 3.0.3 4602 picomatch: 2.3.1 4603 4604 - miniflare@4.20260114.0: 4605 dependencies: 4606 '@cspotcode/source-map-support': 0.8.1 4607 sharp: 0.34.5 4608 - undici: 7.14.0 4609 - workerd: 1.20260114.0 4610 ws: 8.18.0 4611 youch: 4.1.0-beta.10 4612 - zod: 3.25.76 4613 transitivePeerDependencies: 4614 - bufferutil 4615 - utf-8-validate ··· 4671 4672 path-scurry@2.0.1: 4673 dependencies: 4674 - lru-cache: 11.2.4 4675 minipass: 7.1.2 4676 4677 path-to-regexp@6.3.0: {} ··· 4725 picocolors: 1.1.1 4726 source-map-js: 1.2.1 4727 4728 - prettier@3.8.0: {} 4729 4730 pretty-bytes@5.6.0: {} 4731 ··· 4784 optionalDependencies: 4785 fsevents: 2.3.3 4786 4787 - rollup@4.55.2: 4788 dependencies: 4789 '@types/estree': 1.0.8 4790 optionalDependencies: 4791 - '@rollup/rollup-android-arm-eabi': 4.55.2 4792 - '@rollup/rollup-android-arm64': 4.55.2 4793 - '@rollup/rollup-darwin-arm64': 4.55.2 4794 - '@rollup/rollup-darwin-x64': 4.55.2 4795 - '@rollup/rollup-freebsd-arm64': 4.55.2 4796 - '@rollup/rollup-freebsd-x64': 4.55.2 4797 - '@rollup/rollup-linux-arm-gnueabihf': 4.55.2 4798 - '@rollup/rollup-linux-arm-musleabihf': 4.55.2 4799 - '@rollup/rollup-linux-arm64-gnu': 4.55.2 4800 - '@rollup/rollup-linux-arm64-musl': 4.55.2 4801 - '@rollup/rollup-linux-loong64-gnu': 4.55.2 4802 - '@rollup/rollup-linux-loong64-musl': 4.55.2 4803 - '@rollup/rollup-linux-ppc64-gnu': 4.55.2 4804 - '@rollup/rollup-linux-ppc64-musl': 4.55.2 4805 - '@rollup/rollup-linux-riscv64-gnu': 4.55.2 4806 - '@rollup/rollup-linux-riscv64-musl': 4.55.2 4807 - '@rollup/rollup-linux-s390x-gnu': 4.55.2 4808 - '@rollup/rollup-linux-x64-gnu': 4.55.2 4809 - '@rollup/rollup-linux-x64-musl': 4.55.2 4810 - '@rollup/rollup-openbsd-x64': 4.55.2 4811 - '@rollup/rollup-openharmony-arm64': 4.55.2 4812 - '@rollup/rollup-win32-arm64-msvc': 4.55.2 4813 - '@rollup/rollup-win32-ia32-msvc': 4.55.2 4814 - '@rollup/rollup-win32-x64-gnu': 4.55.2 4815 - '@rollup/rollup-win32-x64-msvc': 4.55.2 4816 fsevents: 2.3.3 4817 4818 run-parallel@1.2.0: ··· 4827 dependencies: 4828 randombytes: 2.1.0 4829 4830 - seroval-plugins@1.3.3(seroval@1.3.2): 4831 dependencies: 4832 - seroval: 1.3.2 4833 4834 - seroval@1.3.2: {} 4835 4836 sharp@0.34.5: 4837 dependencies: ··· 4874 4875 smob@1.5.0: {} 4876 4877 - solid-floating-ui@0.2.1(@floating-ui/dom@1.7.4)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4878 dependencies: 4879 - '@floating-ui/dom': 1.7.4 4880 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4881 4882 - solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7): 4883 dependencies: 4884 csstype: 3.2.3 4885 - seroval: 1.3.2 4886 - seroval-plugins: 1.3.3(seroval@1.3.2) 4887 4888 - solid-refresh@0.6.3(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4889 dependencies: 4890 '@babel/generator': 7.28.6 4891 '@babel/helper-module-imports': 7.28.6 4892 '@babel/types': 7.28.6 4893 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4894 transitivePeerDependencies: 4895 - supports-color 4896 ··· 5029 5030 undici-types@7.16.0: {} 5031 5032 - undici@7.14.0: {} 5033 5034 unenv@2.0.0-rc.24: 5035 dependencies: ··· 5076 - '@types/babel__core' 5077 - supports-color 5078 5079 - vite-plugin-solid@2.11.10(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)): 5080 dependencies: 5081 '@babel/core': 7.28.6 5082 '@types/babel__core': 7.20.5 5083 - babel-preset-solid: 1.9.10(@babel/core@7.28.6)(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5084 merge-anything: 5.1.7 5085 - solid-js: 1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 5086 - solid-refresh: 0.6.3(solid-js@1.9.10(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5087 vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0) 5088 vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 5089 transitivePeerDependencies: ··· 5095 fdir: 6.5.0(picomatch@4.0.3) 5096 picomatch: 4.0.3 5097 postcss: 8.5.6 5098 - rollup: 4.55.2 5099 tinyglobby: 0.2.15 5100 optionalDependencies: 5101 '@types/node': 24.10.9 ··· 5144 fast-json-stable-stringify: 2.1.0 5145 fs-extra: 9.1.0 5146 glob: 11.1.0 5147 - lodash: 4.17.21 5148 pretty-bytes: 5.6.0 5149 rollup: 2.79.2 5150 source-map: 0.8.0-beta.0 ··· 5232 '@types/trusted-types': 2.0.7 5233 workbox-core: 7.4.0 5234 5235 - workerd@1.20260114.0: 5236 optionalDependencies: 5237 - '@cloudflare/workerd-darwin-64': 1.20260114.0 5238 - '@cloudflare/workerd-darwin-arm64': 1.20260114.0 5239 - '@cloudflare/workerd-linux-64': 1.20260114.0 5240 - '@cloudflare/workerd-linux-arm64': 1.20260114.0 5241 - '@cloudflare/workerd-windows-64': 1.20260114.0 5242 5243 - wrangler@4.59.2: 5244 dependencies: 5245 '@cloudflare/kv-asset-handler': 0.4.2 5246 - '@cloudflare/unenv-preset': 2.10.0(unenv@2.0.0-rc.24)(workerd@1.20260114.0) 5247 blake3-wasm: 2.1.5 5248 esbuild: 0.27.0 5249 - miniflare: 4.20260114.0 5250 path-to-regexp: 6.3.0 5251 unenv: 2.0.0-rc.24 5252 - workerd: 1.20260114.0 5253 optionalDependencies: 5254 fsevents: 2.3.3 5255 transitivePeerDependencies: ··· 5284 '@speed-highlight/core': 1.2.14 5285 cookie: 1.1.1 5286 youch-core: 0.3.3 5287 - 5288 - zod@3.25.76: {}
··· 37 specifier: ^3.1.3 38 version: 3.1.3 39 '@atcute/bluesky': 40 + specifier: ^3.2.16 41 + version: 3.2.16 42 '@atcute/bluesky-richtext-parser': 43 specifier: ^1.0.7 44 version: 1.0.7 ··· 64 specifier: ^1.2.2 65 version: 1.2.2(@atcute/identity@1.1.3) 66 '@atcute/lexicons': 67 + specifier: ^1.2.7 68 + version: 1.2.7 69 '@atcute/multibase': 70 + specifier: ^1.1.7 71 + version: 1.1.7 72 '@atcute/oauth-browser-client': 73 + specifier: ^3.0.0 74 + version: 3.0.0(@atcute/identity@1.1.3) 75 + '@atcute/oauth-crypto': 76 + specifier: ^0.1.0 77 + version: 0.1.0 78 '@atcute/tid': 79 specifier: ^1.1.1 80 version: 1.1.1 81 '@atcute/uint8array': 82 + specifier: ^1.1.0 83 + version: 1.1.0 84 '@atcute/xrpc-server': 85 + specifier: ^0.1.9 86 + version: 0.1.9 87 '@atlaskit/pragmatic-drag-and-drop': 88 specifier: 1.6.0 89 version: 1.6.0 ··· 91 specifier: 1.0.3 92 version: 1.0.3 93 '@floating-ui/dom': 94 + specifier: ^1.7.5 95 + version: 1.7.5 96 '@floating-ui/utils': 97 specifier: ^0.2.10 98 version: 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) ··· 119 version: '@jsr/mary__exif-rm@0.2.2' 120 '@mary/solid-freeze': 121 specifier: npm:@externdefs/solid-freeze@^0.1.1 122 + version: '@externdefs/solid-freeze@0.1.1(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))' 123 '@mary/solid-query': 124 specifier: npm:@externdefs/solid-query@^0.1.5 125 + version: '@externdefs/solid-query@0.1.5(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))' 126 comlink: 127 specifier: ^4.4.2 128 version: 4.4.2 ··· 130 specifier: ^1.6.15 131 version: 1.6.15 132 mediabunny: 133 + specifier: ^1.31.0 134 + version: 1.31.0 135 nanoid: 136 specifier: ^5.1.6 137 version: 5.1.6 138 solid-floating-ui: 139 specifier: ~0.2.1 140 + version: 0.2.1(@floating-ui/dom@1.7.5)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 141 solid-js: 142 + specifier: ^1.9.11 143 + version: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 144 devDependencies: 145 '@badrap/valita': 146 specifier: ^0.4.6 147 version: 0.4.6 148 '@cloudflare/vite-plugin': 149 + specifier: ^1.22.1 150 + version: 1.22.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260128.0)(wrangler@4.61.1) 151 '@types/dom-close-watcher': 152 specifier: ^1.0.0 153 version: 1.0.0 ··· 167 specifier: ^0.26.0 168 version: 0.26.0 169 prettier: 170 + specifier: ^3.8.1 171 + version: 3.8.1 172 tailwindcss: 173 specifier: ^3.4.19 174 version: 3.4.19 ··· 186 version: 1.1.0(patch_hash=003379ded749ad87080f87b428b17f04c4c88b6b64544df4d928aab76fbf6325)(@types/babel__core@7.20.5)(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 187 vite-plugin-solid: 188 specifier: ^2.11.10 189 + version: 2.11.10(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 190 wrangler: 191 + specifier: ^4.61.1 192 + version: 4.61.1 193 194 packages: 195 ··· 218 '@atcute/bluesky-search-parser@0.1.1': 219 resolution: {integrity: sha512-jX01yzA4CWXfnpAmOL5P9kjpWEhVvIq2xEyYLZdFVpYe1v6xclUem1ir+Q8+aWoAcYwqQq6pM16XxkGw0yi5nA==} 220 221 + '@atcute/bluesky@3.2.16': 222 + resolution: {integrity: sha512-phFAJNE+SCkIbCcgzjFxntS2KpGvzkLw0JA9qKIXlueF4wNreEt/D5HjnB5eRR9pV1/kcD94II9f7ZAwarf0lQ==} 223 224 '@atcute/cbor@2.3.0': 225 resolution: {integrity: sha512-7G2AndkfYzIXMBOBqUPUWP6oIJJm77KY5nYzS4Mr5NNxnmnrBrXEQqp+seCE3X5TV8FUSWQK5YRTU87uPjafMQ==} ··· 241 '@atcute/identity@1.1.3': 242 resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==} 243 244 + '@atcute/lexicons@1.2.7': 245 + resolution: {integrity: sha512-gCvkSMI1F1zx7xXa59iPiSKMH3L5Hga6iurGqQjaQbE2V/np/2QuDqQzt96TNbWfaFAXE9f9oY+0z3ljf/bweA==} 246 + 247 + '@atcute/multibase@1.1.7': 248 + resolution: {integrity: sha512-YmWds7U52b7Qri0xNfGeqSOvgyNfHR8Yy/NNDQx4d5TkCX2fHJIo0pXquEhCyMNAwKt53uH5yQDswy4TNP1Zhw==} 249 + 250 + '@atcute/oauth-browser-client@3.0.0': 251 + resolution: {integrity: sha512-7AbKV8tTe7aRJNJV7gCcWHSVEADb2nr58O1p7dQsf73HSe9pvlBkj/Vk1yjjtH691uAVYkwhHSh0bC7D8XdwJw==} 252 + 253 + '@atcute/oauth-crypto@0.1.0': 254 + resolution: {integrity: sha512-qZYDCNLF/4B6AndYT1rsQelN8621AC5u/sL5PHvlr/qqAbmmUwCBGjEgRSyZtHE1AqD60VNiSMlOgAuEQTSl3w==} 255 256 + '@atcute/oauth-keyset@0.1.0': 257 + resolution: {integrity: sha512-+wqT/+I5Lg9VzKnKY3g88+N45xbq+wsdT6bHDGqCVa2u57gRvolFF4dY+weMfc/OX641BIZO6/o+zFtKBsMQnQ==} 258 259 + '@atcute/oauth-types@0.1.0': 260 + resolution: {integrity: sha512-bAuhgizREKSZghI1Re8Nw/GI6troJ/nwTsDlEwr4HnRKnk0hTc61Igl4y09MG3znOoHOtWIdEnO4zR7pN11BaA==} 261 262 '@atcute/tid@1.1.1': 263 resolution: {integrity: sha512-djJ8UGhLkTU5V51yCnBEruMg35qETjWzWy5sJG/2gEOl2Gd7rQWHSaf+yrO6vMS5EFA38U2xOWE3EDUPzvc2ZQ==} ··· 265 '@atcute/time-ms@1.2.0': 266 resolution: {integrity: sha512-dtNKebVIbr1+yu3a6vgtL4sfkNgxkL3aA+ohHsjtW83WWMjjGvX8GVTVmYCJ2dYSxIoxK0q1yWs11PmlqzmQ/A==} 267 268 + '@atcute/uint8array@1.1.0': 269 + resolution: {integrity: sha512-JtHXIVW6LPU9FMWp7SgE4HbUs3uV2WdfkK/2RWdEGjr4EgMV50P3FdU6fPeGlTfDNBJVYMIsuD2wwaKRPV/Aqg==} 270 271 '@atcute/util-fetch@1.0.5': 272 resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==} 273 274 + '@atcute/util-text@1.1.0': 275 + resolution: {integrity: sha512-34G9KD5Z9f7oEdFpZOmqrMnU86p8ne6LlxJowfZzKNszRcl1GH+FtEPh3N1woelJT2SkPXMK2anwT8DESTluwA==} 276 277 + '@atcute/xrpc-server@0.1.9': 278 + resolution: {integrity: sha512-sIgHeLIezIiaDT3eCwHpUfMOHoU2MP3izwmItqvXalMBGrR3qF35m2+3YDXOAxLqyTI1RSuQOk3SD3zLZx53gA==} 279 280 '@atlaskit/pragmatic-drag-and-drop-hitbox@1.0.3': 281 resolution: {integrity: sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==} ··· 319 peerDependencies: 320 '@babel/core': ^7.0.0 321 322 + '@babel/helper-define-polyfill-provider@0.6.6': 323 + resolution: {integrity: sha512-mOAsxeeKkUKayvZR3HeTYD/fICpCPLJrU5ZjelT/PA6WHtNDBOE436YiaEUvHN454bRM3CebhDsIpieCc4texA==} 324 peerDependencies: 325 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 326 ··· 796 resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} 797 engines: {node: '>=18.0.0'} 798 799 + '@cloudflare/unenv-preset@2.12.0': 800 + resolution: {integrity: sha512-NK4vN+2Z/GbfGS4BamtbbVk1rcu5RmqaYGiyHJQrA09AoxdZPHDF3W/EhgI0YSK8p3vRo/VNCtbSJFPON7FWMQ==} 801 peerDependencies: 802 unenv: 2.0.0-rc.24 803 + workerd: ^1.20260115.0 804 peerDependenciesMeta: 805 workerd: 806 optional: true 807 808 + '@cloudflare/vite-plugin@1.22.1': 809 + resolution: {integrity: sha512-RDWc6WtrdjVDfpBeO3MYcgJIbq+Phg9qBXq1Ixl00qPqM8bgKp9oPLhg8oayynQs8udNnqkV0CjfojvIhhfZWg==} 810 peerDependencies: 811 vite: ^6.1.0 || ^7.0.0 812 + wrangler: ^4.61.1 813 814 + '@cloudflare/workerd-darwin-64@1.20260128.0': 815 + resolution: {integrity: sha512-XJN8zWWNG3JwAUqqwMLNKJ9fZfdlQkx/zTTHW/BB8wHat9LjKD6AzxqCu432YmfjR+NxEKCzUOxMu1YOxlVxmg==} 816 engines: {node: '>=16'} 817 cpu: [x64] 818 os: [darwin] 819 820 + '@cloudflare/workerd-darwin-arm64@1.20260128.0': 821 + resolution: {integrity: sha512-vKnRcmnm402GQ5DOdfT5H34qeR2m07nhnTtky8mTkNWP+7xmkz32AMdclwMmfO/iX9ncyKwSqmml2wPG32eq/w==} 822 engines: {node: '>=16'} 823 cpu: [arm64] 824 os: [darwin] 825 826 + '@cloudflare/workerd-linux-64@1.20260128.0': 827 + resolution: {integrity: sha512-RiaR+Qugof/c6oI5SagD2J5wJmIfI8wQWaV2Y9905Raj6sAYOFaEKfzkKnoLLLNYb4NlXicBrffJi1j7R/ypUA==} 828 engines: {node: '>=16'} 829 cpu: [x64] 830 os: [linux] 831 832 + '@cloudflare/workerd-linux-arm64@1.20260128.0': 833 + resolution: {integrity: sha512-U39U9vcXLXYDbrJ112Q7D0LDUUnM54oXfAxPgrL2goBwio7Z6RnsM25TRvm+Q06F4+FeDOC4D51JXlFHb9t1OA==} 834 engines: {node: '>=16'} 835 cpu: [arm64] 836 os: [linux] 837 838 + '@cloudflare/workerd-windows-64@1.20260128.0': 839 + resolution: {integrity: sha512-fdJwSqRkJsAJFJ7+jy0th2uMO6fwaDA8Ny6+iFCssfzlNkc4dP/twXo+3F66FMLMe/6NIqjzVts0cpiv7ERYbQ==} 840 engines: {node: '>=16'} 841 cpu: [x64] 842 os: [win32] ··· 1170 peerDependencies: 1171 solid-js: ^1.8.5 1172 1173 + '@floating-ui/core@1.7.4': 1174 + resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} 1175 1176 + '@floating-ui/dom@1.7.5': 1177 + resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} 1178 1179 '@floating-ui/utils@0.2.10': 1180 resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} ··· 1499 rollup: 1500 optional: true 1501 1502 + '@rollup/rollup-android-arm-eabi@4.57.0': 1503 + resolution: {integrity: sha512-tPgXB6cDTndIe1ah7u6amCI1T0SsnlOuKgg10Xh3uizJk4e5M1JGaUMk7J4ciuAUcFpbOiNhm2XIjP9ON0dUqA==} 1504 cpu: [arm] 1505 os: [android] 1506 1507 + '@rollup/rollup-android-arm64@4.57.0': 1508 + resolution: {integrity: sha512-sa4LyseLLXr1onr97StkU1Nb7fWcg6niokTwEVNOO7awaKaoRObQ54+V/hrF/BP1noMEaaAW6Fg2d/CfLiq3Mg==} 1509 cpu: [arm64] 1510 os: [android] 1511 1512 + '@rollup/rollup-darwin-arm64@4.57.0': 1513 + resolution: {integrity: sha512-/NNIj9A7yLjKdmkx5dC2XQ9DmjIECpGpwHoGmA5E1AhU0fuICSqSWScPhN1yLCkEdkCwJIDu2xIeLPs60MNIVg==} 1514 cpu: [arm64] 1515 os: [darwin] 1516 1517 + '@rollup/rollup-darwin-x64@4.57.0': 1518 + resolution: {integrity: sha512-xoh8abqgPrPYPr7pTYipqnUi1V3em56JzE/HgDgitTqZBZ3yKCWI+7KUkceM6tNweyUKYru1UMi7FC060RyKwA==} 1519 cpu: [x64] 1520 os: [darwin] 1521 1522 + '@rollup/rollup-freebsd-arm64@4.57.0': 1523 + resolution: {integrity: sha512-PCkMh7fNahWSbA0OTUQ2OpYHpjZZr0hPr8lId8twD7a7SeWrvT3xJVyza+dQwXSSq4yEQTMoXgNOfMCsn8584g==} 1524 cpu: [arm64] 1525 os: [freebsd] 1526 1527 + '@rollup/rollup-freebsd-x64@4.57.0': 1528 + resolution: {integrity: sha512-1j3stGx+qbhXql4OCDZhnK7b01s6rBKNybfsX+TNrEe9JNq4DLi1yGiR1xW+nL+FNVvI4D02PUnl6gJ/2y6WJA==} 1529 cpu: [x64] 1530 os: [freebsd] 1531 1532 + '@rollup/rollup-linux-arm-gnueabihf@4.57.0': 1533 + resolution: {integrity: sha512-eyrr5W08Ms9uM0mLcKfM/Uzx7hjhz2bcjv8P2uynfj0yU8GGPdz8iYrBPhiLOZqahoAMB8ZiolRZPbbU2MAi6Q==} 1534 cpu: [arm] 1535 os: [linux] 1536 1537 + '@rollup/rollup-linux-arm-musleabihf@4.57.0': 1538 + resolution: {integrity: sha512-Xds90ITXJCNyX9pDhqf85MKWUI4lqjiPAipJ8OLp8xqI2Ehk+TCVhF9rvOoN8xTbcafow3QOThkNnrM33uCFQA==} 1539 cpu: [arm] 1540 os: [linux] 1541 1542 + '@rollup/rollup-linux-arm64-gnu@4.57.0': 1543 + resolution: {integrity: sha512-Xws2KA4CLvZmXjy46SQaXSejuKPhwVdaNinldoYfqruZBaJHqVo6hnRa8SDo9z7PBW5x84SH64+izmldCgbezw==} 1544 cpu: [arm64] 1545 os: [linux] 1546 1547 + '@rollup/rollup-linux-arm64-musl@4.57.0': 1548 + resolution: {integrity: sha512-hrKXKbX5FdaRJj7lTMusmvKbhMJSGWJ+w++4KmjiDhpTgNlhYobMvKfDoIWecy4O60K6yA4SnztGuNTQF+Lplw==} 1549 cpu: [arm64] 1550 os: [linux] 1551 1552 + '@rollup/rollup-linux-loong64-gnu@4.57.0': 1553 + resolution: {integrity: sha512-6A+nccfSDGKsPm00d3xKcrsBcbqzCTAukjwWK6rbuAnB2bHaL3r9720HBVZ/no7+FhZLz/U3GwwZZEh6tOSI8Q==} 1554 cpu: [loong64] 1555 os: [linux] 1556 1557 + '@rollup/rollup-linux-loong64-musl@4.57.0': 1558 + resolution: {integrity: sha512-4P1VyYUe6XAJtQH1Hh99THxr0GKMMwIXsRNOceLrJnaHTDgk1FTcTimDgneRJPvB3LqDQxUmroBclQ1S0cIJwQ==} 1559 cpu: [loong64] 1560 os: [linux] 1561 1562 + '@rollup/rollup-linux-ppc64-gnu@4.57.0': 1563 + resolution: {integrity: sha512-8Vv6pLuIZCMcgXre6c3nOPhE0gjz1+nZP6T+hwWjr7sVH8k0jRkH+XnfjjOTglyMBdSKBPPz54/y1gToSKwrSQ==} 1564 cpu: [ppc64] 1565 os: [linux] 1566 1567 + '@rollup/rollup-linux-ppc64-musl@4.57.0': 1568 + resolution: {integrity: sha512-r1te1M0Sm2TBVD/RxBPC6RZVwNqUTwJTA7w+C/IW5v9Ssu6xmxWEi+iJQlpBhtUiT1raJ5b48pI8tBvEjEFnFA==} 1569 cpu: [ppc64] 1570 os: [linux] 1571 1572 + '@rollup/rollup-linux-riscv64-gnu@4.57.0': 1573 + resolution: {integrity: sha512-say0uMU/RaPm3CDQLxUUTF2oNWL8ysvHkAjcCzV2znxBr23kFfaxocS9qJm+NdkRhF8wtdEEAJuYcLPhSPbjuQ==} 1574 cpu: [riscv64] 1575 os: [linux] 1576 1577 + '@rollup/rollup-linux-riscv64-musl@4.57.0': 1578 + resolution: {integrity: sha512-/MU7/HizQGsnBREtRpcSbSV1zfkoxSTR7wLsRmBPQ8FwUj5sykrP1MyJTvsxP5KBq9SyE6kH8UQQQwa0ASeoQQ==} 1579 cpu: [riscv64] 1580 os: [linux] 1581 1582 + '@rollup/rollup-linux-s390x-gnu@4.57.0': 1583 + resolution: {integrity: sha512-Q9eh+gUGILIHEaJf66aF6a414jQbDnn29zeu0eX3dHMuysnhTvsUvZTCAyZ6tJhUjnvzBKE4FtuaYxutxRZpOg==} 1584 cpu: [s390x] 1585 os: [linux] 1586 1587 + '@rollup/rollup-linux-x64-gnu@4.57.0': 1588 + resolution: {integrity: sha512-OR5p5yG5OKSxHReWmwvM0P+VTPMwoBS45PXTMYaskKQqybkS3Kmugq1W+YbNWArF8/s7jQScgzXUhArzEQ7x0A==} 1589 cpu: [x64] 1590 os: [linux] 1591 1592 + '@rollup/rollup-linux-x64-musl@4.57.0': 1593 + resolution: {integrity: sha512-XeatKzo4lHDsVEbm1XDHZlhYZZSQYym6dg2X/Ko0kSFgio+KXLsxwJQprnR48GvdIKDOpqWqssC3iBCjoMcMpw==} 1594 cpu: [x64] 1595 os: [linux] 1596 1597 + '@rollup/rollup-openbsd-x64@4.57.0': 1598 + resolution: {integrity: sha512-Lu71y78F5qOfYmubYLHPcJm74GZLU6UJ4THkf/a1K7Tz2ycwC2VUbsqbJAXaR6Bx70SRdlVrt2+n5l7F0agTUw==} 1599 cpu: [x64] 1600 os: [openbsd] 1601 1602 + '@rollup/rollup-openharmony-arm64@4.57.0': 1603 + resolution: {integrity: sha512-v5xwKDWcu7qhAEcsUubiav7r+48Uk/ENWdr82MBZZRIm7zThSxCIVDfb3ZeRRq9yqk+oIzMdDo6fCcA5DHfMyA==} 1604 cpu: [arm64] 1605 os: [openharmony] 1606 1607 + '@rollup/rollup-win32-arm64-msvc@4.57.0': 1608 + resolution: {integrity: sha512-XnaaaSMGSI6Wk8F4KK3QP7GfuuhjGchElsVerCplUuxRIzdvZ7hRBpLR0omCmw+kI2RFJB80nenhOoGXlJ5TfQ==} 1609 cpu: [arm64] 1610 os: [win32] 1611 1612 + '@rollup/rollup-win32-ia32-msvc@4.57.0': 1613 + resolution: {integrity: sha512-3K1lP+3BXY4t4VihLw5MEg6IZD3ojSYzqzBG571W3kNQe4G4CcFpSUQVgurYgib5d+YaCjeFow8QivWp8vuSvA==} 1614 cpu: [ia32] 1615 os: [win32] 1616 1617 + '@rollup/rollup-win32-x64-gnu@4.57.0': 1618 + resolution: {integrity: sha512-MDk610P/vJGc5L5ImE4k5s+GZT3en0KoK1MKPXCRgzmksAMk79j4h3k1IerxTNqwDLxsGxStEZVBqG0gIqZqoA==} 1619 cpu: [x64] 1620 os: [win32] 1621 1622 + '@rollup/rollup-win32-x64-msvc@4.57.0': 1623 + resolution: {integrity: sha512-Zv7v6q6aV+VslnpwzqKAmrk5JdVkLUzok2208ZXGipjb+msxBr/fJPZyeEXiFgH7k62Ak0SLIfxQRZQvTuf7rQ==} 1624 cpu: [x64] 1625 os: [win32] 1626 ··· 1652 '@types/babel__traverse@7.28.0': 1653 resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 1654 1655 + '@types/bun@1.3.8': 1656 + resolution: {integrity: sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA==} 1657 1658 '@types/dom-close-watcher@1.0.0': 1659 resolution: {integrity: sha512-7pL0By56sVVGMSJ3HdSY+u08Id0ljStCaf1VnGFxwfpuNdA0HMz0sl2J24eSi9M6ptl9ySkVK35jF75Fn8trUg==} ··· 1735 peerDependencies: 1736 '@babel/core': ^7.20.12 1737 1738 + babel-plugin-polyfill-corejs2@0.4.15: 1739 + resolution: {integrity: sha512-hR3GwrRwHUfYwGfrisXPIDP3JcYfBrW7wKE7+Au6wDYl7fm/ka1NEII6kORzxNU556JjfidZeBsO10kYvtV1aw==} 1740 peerDependencies: 1741 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1742 ··· 1745 peerDependencies: 1746 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1747 1748 + babel-plugin-polyfill-regenerator@0.6.6: 1749 + resolution: {integrity: sha512-hYm+XLYRMvupxiQzrvXUj7YyvFFVfv5gI0R71AJzudg1g2AI2vyCPPIFEBjk162/wFzti3inBHo7isWFuEVS/A==} 1750 peerDependencies: 1751 '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1752 ··· 1767 balanced-match@1.0.2: 1768 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1769 1770 + baseline-browser-mapping@2.9.19: 1771 + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} 1772 hasBin: true 1773 1774 binary-extensions@2.3.0: ··· 1796 buffer-from@1.1.2: 1797 resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1798 1799 + bun-types@1.3.8: 1800 + resolution: {integrity: sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q==} 1801 1802 camelcase-css@2.0.1: 1803 resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1804 engines: {node: '>= 6'} 1805 1806 + caniuse-lite@1.0.30001766: 1807 + resolution: {integrity: sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==} 1808 1809 chokidar@3.6.0: 1810 resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} ··· 1838 resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} 1839 engines: {node: '>=18'} 1840 1841 + core-js-compat@3.48.0: 1842 + resolution: {integrity: sha512-OM4cAF3D6VtH/WkLtWvyNC56EZVXsZdU3iqaMG2B4WvYrlqU831pc4UtG5yp0sE9z8Y02wVN7PjW5Zf9Gt0f1Q==} 1843 1844 cross-spawn@7.0.6: 1845 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} ··· 1888 engines: {node: '>=0.10.0'} 1889 hasBin: true 1890 1891 + electron-to-chromium@1.5.282: 1892 + resolution: {integrity: sha512-FCPkJtpst28UmFzd903iU7PdeVTfY0KAeJy+Lk0GLZRwgwYHn/irRcaCbQQOmr5Vytc/7rcavsYLvTM8RiHYhQ==} 1893 1894 emoji-regex@8.0.0: 1895 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} ··· 2113 lodash.sortby@4.7.0: 2114 resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 2115 2116 + lodash@4.17.23: 2117 + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} 2118 2119 + lru-cache@11.2.5: 2120 + resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} 2121 engines: {node: 20 || >=22} 2122 2123 lru-cache@5.1.1: ··· 2126 magic-string@0.25.9: 2127 resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 2128 2129 + mediabunny@1.31.0: 2130 + resolution: {integrity: sha512-nqM+6cOpNC/aDxCAZKnZe7oXnGaCn4rlgprzAmiH6C8GRdOHFnB6bZC0+WXGTT6mtAxXQd+BXuZ2q2zkma7dWg==} 2131 2132 merge-anything@5.1.7: 2133 resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==} ··· 2141 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 2142 engines: {node: '>=8.6'} 2143 2144 + miniflare@4.20260128.0: 2145 + resolution: {integrity: sha512-AVCn3vDRY+YXu1sP4mRn81ssno6VUqxo29uY2QVfgxXU2TMLvhRIoGwm7RglJ3Gzfuidit5R86CMQ6AvdFTGAw==} 2146 engines: {node: '>=18.0.0'} 2147 hasBin: true 2148 ··· 2287 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 2288 engines: {node: ^10 || ^12 || >=14} 2289 2290 + prettier@3.8.1: 2291 + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} 2292 engines: {node: '>=14'} 2293 hasBin: true 2294 ··· 2356 engines: {node: '>=10.0.0'} 2357 hasBin: true 2358 2359 + rollup@4.57.0: 2360 + resolution: {integrity: sha512-e5lPJi/aui4TO1LpAXIRLySmwXSE8k3b9zoGfd42p67wzxog4WHjiZF3M2uheQih4DGyc25QEV4yRBbpueNiUA==} 2361 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2362 hasBin: true 2363 ··· 2376 serialize-javascript@6.0.2: 2377 resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 2378 2379 + seroval-plugins@1.5.0: 2380 + resolution: {integrity: sha512-EAHqADIQondwRZIdeW2I636zgsODzoBDwb3PT/+7TLDWyw1Dy/Xv7iGUIEXXav7usHDE9HVhOU61irI3EnyyHA==} 2381 engines: {node: '>=10'} 2382 peerDependencies: 2383 seroval: ^1.0 2384 2385 + seroval@1.5.0: 2386 + resolution: {integrity: sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw==} 2387 engines: {node: '>=10'} 2388 2389 sharp@0.34.5: ··· 2412 '@floating-ui/dom': ^1.0 2413 solid-js: ^1.3 2414 2415 + solid-js@1.9.11: 2416 + resolution: {integrity: sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==} 2417 2418 solid-refresh@0.6.3: 2419 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 2535 undici-types@7.16.0: 2536 resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 2537 2538 + undici@7.18.2: 2539 + resolution: {integrity: sha512-y+8YjDFzWdQlSE9N5nzKMT3g4a5UBX1HKowfdXh0uvAnTaqqwqB92Jt4UXBAeKekDs5IaDKyJFR4X1gYVCgXcw==} 2540 engines: {node: '>=20.18.1'} 2541 2542 unenv@2.0.0-rc.24: ··· 2710 workbox-window@7.4.0: 2711 resolution: {integrity: sha512-/bIYdBLAVsNR3v7gYGaV4pQW3M3kEPx5E8vDxGvxo6khTrGtSSCS7QiFKv9ogzBgZiy0OXLP9zO28U/1nF1mfw==} 2712 2713 + workerd@1.20260128.0: 2714 + resolution: {integrity: sha512-EhLJGptSGFi8AEErLiamO3PoGpbRqL+v4Ve36H2B38VxmDgFOSmDhfepBnA14sCQzGf1AEaoZX2DCwZsmO74yQ==} 2715 engines: {node: '>=16'} 2716 hasBin: true 2717 2718 + wrangler@4.61.1: 2719 + resolution: {integrity: sha512-hfYQ16VLPkNi8xE1/V3052S2stM5e+vq3Idpt83sXoDC3R7R1CLgMkK6M6+Qp3G+9GVDNyHCkvohMPdfFTaD4Q==} 2720 engines: {node: '>=20.0.0'} 2721 hasBin: true 2722 peerDependencies: 2723 + '@cloudflare/workers-types': ^4.20260128.0 2724 peerDependenciesMeta: 2725 '@cloudflare/workers-types': 2726 optional: true ··· 2754 youch@4.1.0-beta.10: 2755 resolution: {integrity: sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==} 2756 2757 snapshots: 2758 2759 '@alloc/quick-lru@5.2.0': {} ··· 2767 2768 '@atcute/atproto@3.1.10': 2769 dependencies: 2770 + '@atcute/lexicons': 1.2.7 2771 2772 '@atcute/bluemoji@3.1.3': 2773 dependencies: 2774 '@atcute/atproto': 3.1.10 2775 + '@atcute/bluesky': 3.2.16 2776 + '@atcute/lexicons': 1.2.7 2777 2778 '@atcute/bluesky-richtext-parser@1.0.7': {} 2779 ··· 2781 2782 '@atcute/bluesky-search-parser@0.1.1': {} 2783 2784 + '@atcute/bluesky@3.2.16': 2785 dependencies: 2786 '@atcute/atproto': 3.1.10 2787 + '@atcute/lexicons': 1.2.7 2788 2789 '@atcute/cbor@2.3.0': 2790 dependencies: 2791 '@atcute/cid': 2.4.0 2792 + '@atcute/multibase': 1.1.7 2793 + '@atcute/uint8array': 1.1.0 2794 2795 '@atcute/cid@2.4.0': 2796 dependencies: 2797 + '@atcute/multibase': 1.1.7 2798 + '@atcute/uint8array': 1.1.0 2799 2800 '@atcute/client@4.2.1': 2801 dependencies: 2802 '@atcute/identity': 1.1.3 2803 + '@atcute/lexicons': 1.2.7 2804 2805 '@atcute/crypto@2.3.0': 2806 dependencies: 2807 + '@atcute/multibase': 1.1.7 2808 + '@atcute/uint8array': 1.1.0 2809 '@noble/secp256k1': 3.0.0 2810 2811 '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)': 2812 dependencies: 2813 '@atcute/identity': 1.1.3 2814 + '@atcute/lexicons': 1.2.7 2815 '@atcute/util-fetch': 1.0.5 2816 '@badrap/valita': 0.4.6 2817 2818 '@atcute/identity@1.1.3': 2819 dependencies: 2820 + '@atcute/lexicons': 1.2.7 2821 '@badrap/valita': 0.4.6 2822 2823 + '@atcute/lexicons@1.2.7': 2824 dependencies: 2825 + '@atcute/uint8array': 1.1.0 2826 + '@atcute/util-text': 1.1.0 2827 '@standard-schema/spec': 1.1.0 2828 esm-env: 1.2.2 2829 2830 + '@atcute/multibase@1.1.7': 2831 dependencies: 2832 + '@atcute/uint8array': 1.1.0 2833 2834 + '@atcute/oauth-browser-client@3.0.0(@atcute/identity@1.1.3)': 2835 dependencies: 2836 '@atcute/client': 4.2.1 2837 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3) 2838 + '@atcute/lexicons': 1.2.7 2839 + '@atcute/multibase': 1.1.7 2840 + '@atcute/oauth-crypto': 0.1.0 2841 + '@atcute/oauth-types': 0.1.0 2842 nanoid: 5.1.6 2843 transitivePeerDependencies: 2844 - '@atcute/identity' 2845 2846 + '@atcute/oauth-crypto@0.1.0': 2847 + dependencies: 2848 + '@atcute/multibase': 1.1.7 2849 + '@atcute/uint8array': 1.1.0 2850 + '@badrap/valita': 0.4.6 2851 + nanoid: 5.1.6 2852 + 2853 + '@atcute/oauth-keyset@0.1.0': 2854 + dependencies: 2855 + '@atcute/oauth-crypto': 0.1.0 2856 + 2857 + '@atcute/oauth-types@0.1.0': 2858 + dependencies: 2859 + '@atcute/identity': 1.1.3 2860 + '@atcute/lexicons': 1.2.7 2861 + '@atcute/oauth-keyset': 0.1.0 2862 + '@badrap/valita': 0.4.6 2863 + 2864 '@atcute/tid@1.1.1': 2865 dependencies: 2866 '@atcute/time-ms': 1.2.0 2867 2868 '@atcute/time-ms@1.2.0': 2869 dependencies: 2870 + '@types/bun': 1.3.8 2871 node-gyp-build: 4.8.4 2872 2873 + '@atcute/uint8array@1.1.0': {} 2874 2875 '@atcute/util-fetch@1.0.5': 2876 dependencies: 2877 '@badrap/valita': 0.4.6 2878 2879 + '@atcute/util-text@1.1.0': 2880 dependencies: 2881 unicode-segmenter: 0.14.5 2882 2883 + '@atcute/xrpc-server@0.1.9': 2884 dependencies: 2885 '@atcute/cbor': 2.3.0 2886 '@atcute/crypto': 2.3.0 2887 '@atcute/identity': 1.1.3 2888 '@atcute/identity-resolver': 1.2.2(@atcute/identity@1.1.3) 2889 + '@atcute/lexicons': 1.2.7 2890 + '@atcute/multibase': 1.1.7 2891 + '@atcute/uint8array': 1.1.0 2892 '@badrap/valita': 0.4.6 2893 nanoid: 5.1.6 2894 ··· 2971 regexpu-core: 6.4.0 2972 semver: 6.3.1 2973 2974 + '@babel/helper-define-polyfill-provider@0.6.6(@babel/core@7.28.6)': 2975 dependencies: 2976 '@babel/core': 7.28.6 2977 '@babel/helper-compilation-targets': 7.28.6 ··· 3526 '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.6) 3527 '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.28.6) 3528 '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.6) 3529 + babel-plugin-polyfill-corejs2: 0.4.15(@babel/core@7.28.6) 3530 babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.6) 3531 + babel-plugin-polyfill-regenerator: 0.6.6(@babel/core@7.28.6) 3532 + core-js-compat: 3.48.0 3533 semver: 6.3.1 3534 transitivePeerDependencies: 3535 - supports-color ··· 3570 3571 '@cloudflare/kv-asset-handler@0.4.2': {} 3572 3573 + '@cloudflare/unenv-preset@2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0)': 3574 dependencies: 3575 unenv: 2.0.0-rc.24 3576 optionalDependencies: 3577 + workerd: 1.20260128.0 3578 3579 + '@cloudflare/vite-plugin@1.22.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0))(workerd@1.20260128.0)(wrangler@4.61.1)': 3580 dependencies: 3581 + '@cloudflare/unenv-preset': 2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0) 3582 + miniflare: 4.20260128.0 3583 unenv: 2.0.0-rc.24 3584 vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0) 3585 + wrangler: 4.61.1 3586 ws: 8.18.0 3587 transitivePeerDependencies: 3588 - bufferutil 3589 - utf-8-validate 3590 - workerd 3591 3592 + '@cloudflare/workerd-darwin-64@1.20260128.0': 3593 optional: true 3594 3595 + '@cloudflare/workerd-darwin-arm64@1.20260128.0': 3596 optional: true 3597 3598 + '@cloudflare/workerd-linux-64@1.20260128.0': 3599 optional: true 3600 3601 + '@cloudflare/workerd-linux-arm64@1.20260128.0': 3602 optional: true 3603 3604 + '@cloudflare/workerd-windows-64@1.20260128.0': 3605 optional: true 3606 3607 '@cspotcode/source-map-support@0.8.1': ··· 3769 '@esbuild/win32-x64@0.27.2': 3770 optional: true 3771 3772 + '@externdefs/solid-freeze@0.1.1(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))': 3773 dependencies: 3774 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 3775 3776 + '@externdefs/solid-query@0.1.5(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))': 3777 dependencies: 3778 '@tanstack/query-core': 5.17.19(patch_hash=0b06407b66b7af88765fb6e01e112677a8c09ce518cb4f547cee8a0044471acd) 3779 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 3780 3781 + '@floating-ui/core@1.7.4': 3782 dependencies: 3783 '@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) 3784 3785 + '@floating-ui/dom@1.7.5': 3786 dependencies: 3787 + '@floating-ui/core': 1.7.4 3788 '@floating-ui/utils': 0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea) 3789 3790 '@floating-ui/utils@0.2.10(patch_hash=1cf283fbaa686f96f7b3029bbc0955bff698af6f4a75ba6c276ad1a7a7c40aea)': {} ··· 3943 3944 '@kelinci/basa-lexicons@1.0.0': 3945 dependencies: 3946 + '@atcute/lexicons': 1.2.7 3947 3948 '@noble/secp256k1@3.0.0': {} 3949 ··· 4055 optionalDependencies: 4056 rollup: 2.79.2 4057 4058 + '@rollup/rollup-android-arm-eabi@4.57.0': 4059 optional: true 4060 4061 + '@rollup/rollup-android-arm64@4.57.0': 4062 optional: true 4063 4064 + '@rollup/rollup-darwin-arm64@4.57.0': 4065 optional: true 4066 4067 + '@rollup/rollup-darwin-x64@4.57.0': 4068 optional: true 4069 4070 + '@rollup/rollup-freebsd-arm64@4.57.0': 4071 optional: true 4072 4073 + '@rollup/rollup-freebsd-x64@4.57.0': 4074 optional: true 4075 4076 + '@rollup/rollup-linux-arm-gnueabihf@4.57.0': 4077 optional: true 4078 4079 + '@rollup/rollup-linux-arm-musleabihf@4.57.0': 4080 optional: true 4081 4082 + '@rollup/rollup-linux-arm64-gnu@4.57.0': 4083 optional: true 4084 4085 + '@rollup/rollup-linux-arm64-musl@4.57.0': 4086 optional: true 4087 4088 + '@rollup/rollup-linux-loong64-gnu@4.57.0': 4089 optional: true 4090 4091 + '@rollup/rollup-linux-loong64-musl@4.57.0': 4092 optional: true 4093 4094 + '@rollup/rollup-linux-ppc64-gnu@4.57.0': 4095 optional: true 4096 4097 + '@rollup/rollup-linux-ppc64-musl@4.57.0': 4098 optional: true 4099 4100 + '@rollup/rollup-linux-riscv64-gnu@4.57.0': 4101 optional: true 4102 4103 + '@rollup/rollup-linux-riscv64-musl@4.57.0': 4104 optional: true 4105 4106 + '@rollup/rollup-linux-s390x-gnu@4.57.0': 4107 optional: true 4108 4109 + '@rollup/rollup-linux-x64-gnu@4.57.0': 4110 optional: true 4111 4112 + '@rollup/rollup-linux-x64-musl@4.57.0': 4113 optional: true 4114 4115 + '@rollup/rollup-openbsd-x64@4.57.0': 4116 optional: true 4117 4118 + '@rollup/rollup-openharmony-arm64@4.57.0': 4119 optional: true 4120 4121 + '@rollup/rollup-win32-arm64-msvc@4.57.0': 4122 optional: true 4123 4124 + '@rollup/rollup-win32-ia32-msvc@4.57.0': 4125 optional: true 4126 4127 + '@rollup/rollup-win32-x64-gnu@4.57.0': 4128 optional: true 4129 4130 + '@rollup/rollup-win32-x64-msvc@4.57.0': 4131 optional: true 4132 4133 '@sindresorhus/is@7.2.0': {} ··· 4166 dependencies: 4167 '@babel/types': 7.28.6 4168 4169 + '@types/bun@1.3.8': 4170 dependencies: 4171 + bun-types: 1.3.8 4172 4173 '@types/dom-close-watcher@1.0.0': {} 4174 ··· 4227 autoprefixer@10.4.23(postcss@8.5.6): 4228 dependencies: 4229 browserslist: 4.28.1 4230 + caniuse-lite: 1.0.30001766 4231 fraction.js: 5.3.4 4232 picocolors: 1.1.1 4233 postcss: 8.5.6 ··· 4242 html-entities: 2.3.3 4243 parse5: 7.3.0 4244 4245 + babel-plugin-polyfill-corejs2@0.4.15(@babel/core@7.28.6): 4246 dependencies: 4247 '@babel/compat-data': 7.28.6 4248 '@babel/core': 7.28.6 4249 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6) 4250 semver: 6.3.1 4251 transitivePeerDependencies: 4252 - supports-color ··· 4254 babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.6): 4255 dependencies: 4256 '@babel/core': 7.28.6 4257 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6) 4258 + core-js-compat: 3.48.0 4259 transitivePeerDependencies: 4260 - supports-color 4261 4262 + babel-plugin-polyfill-regenerator@0.6.6(@babel/core@7.28.6): 4263 dependencies: 4264 '@babel/core': 7.28.6 4265 + '@babel/helper-define-polyfill-provider': 0.6.6(@babel/core@7.28.6) 4266 transitivePeerDependencies: 4267 - supports-color 4268 ··· 4272 '@babel/helper-plugin-utils': 7.28.6 4273 '@babel/types': 7.28.6 4274 4275 + babel-preset-solid@1.9.10(@babel/core@7.28.6)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4276 dependencies: 4277 '@babel/core': 7.28.6 4278 babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.6) 4279 optionalDependencies: 4280 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4281 4282 balanced-match@1.0.2: {} 4283 4284 + baseline-browser-mapping@2.9.19: {} 4285 4286 binary-extensions@2.3.0: {} 4287 ··· 4299 4300 browserslist@4.28.1: 4301 dependencies: 4302 + baseline-browser-mapping: 2.9.19 4303 + caniuse-lite: 1.0.30001766 4304 + electron-to-chromium: 1.5.282 4305 node-releases: 2.0.27 4306 update-browserslist-db: 1.2.3(browserslist@4.28.1) 4307 4308 buffer-from@1.1.2: {} 4309 4310 + bun-types@1.3.8: 4311 dependencies: 4312 '@types/node': 24.10.9 4313 4314 camelcase-css@2.0.1: {} 4315 4316 + caniuse-lite@1.0.30001766: {} 4317 4318 chokidar@3.6.0: 4319 dependencies: ··· 4345 4346 cookie@1.1.1: {} 4347 4348 + core-js-compat@3.48.0: 4349 dependencies: 4350 browserslist: 4.28.1 4351 ··· 4379 dependencies: 4380 jake: 10.9.4 4381 4382 + electron-to-chromium@1.5.282: {} 4383 4384 emoji-regex@8.0.0: {} 4385 ··· 4601 4602 lodash.sortby@4.7.0: {} 4603 4604 + lodash@4.17.23: {} 4605 4606 + lru-cache@11.2.5: {} 4607 4608 lru-cache@5.1.1: 4609 dependencies: ··· 4613 dependencies: 4614 sourcemap-codec: 1.4.8 4615 4616 + mediabunny@1.31.0: 4617 dependencies: 4618 '@types/dom-mediacapture-transform': 0.1.11 4619 '@types/dom-webcodecs': 0.1.13 ··· 4629 braces: 3.0.3 4630 picomatch: 2.3.1 4631 4632 + miniflare@4.20260128.0: 4633 dependencies: 4634 '@cspotcode/source-map-support': 0.8.1 4635 sharp: 0.34.5 4636 + undici: 7.18.2 4637 + workerd: 1.20260128.0 4638 ws: 8.18.0 4639 youch: 4.1.0-beta.10 4640 transitivePeerDependencies: 4641 - bufferutil 4642 - utf-8-validate ··· 4698 4699 path-scurry@2.0.1: 4700 dependencies: 4701 + lru-cache: 11.2.5 4702 minipass: 7.1.2 4703 4704 path-to-regexp@6.3.0: {} ··· 4752 picocolors: 1.1.1 4753 source-map-js: 1.2.1 4754 4755 + prettier@3.8.1: {} 4756 4757 pretty-bytes@5.6.0: {} 4758 ··· 4811 optionalDependencies: 4812 fsevents: 2.3.3 4813 4814 + rollup@4.57.0: 4815 dependencies: 4816 '@types/estree': 1.0.8 4817 optionalDependencies: 4818 + '@rollup/rollup-android-arm-eabi': 4.57.0 4819 + '@rollup/rollup-android-arm64': 4.57.0 4820 + '@rollup/rollup-darwin-arm64': 4.57.0 4821 + '@rollup/rollup-darwin-x64': 4.57.0 4822 + '@rollup/rollup-freebsd-arm64': 4.57.0 4823 + '@rollup/rollup-freebsd-x64': 4.57.0 4824 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.0 4825 + '@rollup/rollup-linux-arm-musleabihf': 4.57.0 4826 + '@rollup/rollup-linux-arm64-gnu': 4.57.0 4827 + '@rollup/rollup-linux-arm64-musl': 4.57.0 4828 + '@rollup/rollup-linux-loong64-gnu': 4.57.0 4829 + '@rollup/rollup-linux-loong64-musl': 4.57.0 4830 + '@rollup/rollup-linux-ppc64-gnu': 4.57.0 4831 + '@rollup/rollup-linux-ppc64-musl': 4.57.0 4832 + '@rollup/rollup-linux-riscv64-gnu': 4.57.0 4833 + '@rollup/rollup-linux-riscv64-musl': 4.57.0 4834 + '@rollup/rollup-linux-s390x-gnu': 4.57.0 4835 + '@rollup/rollup-linux-x64-gnu': 4.57.0 4836 + '@rollup/rollup-linux-x64-musl': 4.57.0 4837 + '@rollup/rollup-openbsd-x64': 4.57.0 4838 + '@rollup/rollup-openharmony-arm64': 4.57.0 4839 + '@rollup/rollup-win32-arm64-msvc': 4.57.0 4840 + '@rollup/rollup-win32-ia32-msvc': 4.57.0 4841 + '@rollup/rollup-win32-x64-gnu': 4.57.0 4842 + '@rollup/rollup-win32-x64-msvc': 4.57.0 4843 fsevents: 2.3.3 4844 4845 run-parallel@1.2.0: ··· 4854 dependencies: 4855 randombytes: 2.1.0 4856 4857 + seroval-plugins@1.5.0(seroval@1.5.0): 4858 dependencies: 4859 + seroval: 1.5.0 4860 4861 + seroval@1.5.0: {} 4862 4863 sharp@0.34.5: 4864 dependencies: ··· 4901 4902 smob@1.5.0: {} 4903 4904 + solid-floating-ui@0.2.1(@floating-ui/dom@1.7.5)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4905 dependencies: 4906 + '@floating-ui/dom': 1.7.5 4907 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4908 4909 + solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7): 4910 dependencies: 4911 csstype: 3.2.3 4912 + seroval: 1.5.0 4913 + seroval-plugins: 1.5.0(seroval@1.5.0) 4914 4915 + solid-refresh@0.6.3(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)): 4916 dependencies: 4917 '@babel/generator': 7.28.6 4918 '@babel/helper-module-imports': 7.28.6 4919 '@babel/types': 7.28.6 4920 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 4921 transitivePeerDependencies: 4922 - supports-color 4923 ··· 5056 5057 undici-types@7.16.0: {} 5058 5059 + undici@7.18.2: {} 5060 5061 unenv@2.0.0-rc.24: 5062 dependencies: ··· 5103 - '@types/babel__core' 5104 - supports-color 5105 5106 + vite-plugin-solid@2.11.10(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7))(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)): 5107 dependencies: 5108 '@babel/core': 7.28.6 5109 '@types/babel__core': 7.20.5 5110 + babel-preset-solid: 1.9.10(@babel/core@7.28.6)(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5111 merge-anything: 5.1.7 5112 + solid-js: 1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7) 5113 + solid-refresh: 0.6.3(solid-js@1.9.11(patch_hash=9cf3f9930aa2f8d4e60502a75153adf9468eb53b42f69e86cac05dfaea3f82e7)) 5114 vite: 7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0) 5115 vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.9)(jiti@1.21.7)(terser@5.46.0)) 5116 transitivePeerDependencies: ··· 5122 fdir: 6.5.0(picomatch@4.0.3) 5123 picomatch: 4.0.3 5124 postcss: 8.5.6 5125 + rollup: 4.57.0 5126 tinyglobby: 0.2.15 5127 optionalDependencies: 5128 '@types/node': 24.10.9 ··· 5171 fast-json-stable-stringify: 2.1.0 5172 fs-extra: 9.1.0 5173 glob: 11.1.0 5174 + lodash: 4.17.23 5175 pretty-bytes: 5.6.0 5176 rollup: 2.79.2 5177 source-map: 0.8.0-beta.0 ··· 5259 '@types/trusted-types': 2.0.7 5260 workbox-core: 7.4.0 5261 5262 + workerd@1.20260128.0: 5263 optionalDependencies: 5264 + '@cloudflare/workerd-darwin-64': 1.20260128.0 5265 + '@cloudflare/workerd-darwin-arm64': 1.20260128.0 5266 + '@cloudflare/workerd-linux-64': 1.20260128.0 5267 + '@cloudflare/workerd-linux-arm64': 1.20260128.0 5268 + '@cloudflare/workerd-windows-64': 1.20260128.0 5269 5270 + wrangler@4.61.1: 5271 dependencies: 5272 '@cloudflare/kv-asset-handler': 0.4.2 5273 + '@cloudflare/unenv-preset': 2.12.0(unenv@2.0.0-rc.24)(workerd@1.20260128.0) 5274 blake3-wasm: 2.1.5 5275 esbuild: 0.27.0 5276 + miniflare: 4.20260128.0 5277 path-to-regexp: 6.3.0 5278 unenv: 2.0.0-rc.24 5279 + workerd: 1.20260128.0 5280 optionalDependencies: 5281 fsevents: 2.3.3 5282 transitivePeerDependencies: ··· 5311 '@speed-highlight/core': 1.2.14 5312 cookie: 1.1.1 5313 youch-core: 0.3.3
+8 -51
scripts/generate-oauth-keys.js
··· 1 import * as fs from 'node:fs/promises'; 2 3 - import * as v from '@badrap/valita'; 4 - 5 import * as TID from '@atcute/tid'; 6 7 - const jwksSchema = v.object({ 8 - keys: v.array( 9 - v.object({ 10 - privateKey: v.unknown(), 11 - publicKey: v.unknown(), 12 - }), 13 - ), 14 - }); 15 - 16 - /** @type {v.Infer<typeof jwksSchema> | undefined} */ 17 - let jwks; 18 try { 19 const raw = await fs.readFile('./oauth-credentials.local.json', 'utf-8'); 20 - const json = JSON.parse(raw); 21 - 22 - jwks = jwksSchema.parse(json, { mode: 'passthrough' }); 23 } catch (err) { 24 if (err.code !== 'ENOENT') { 25 throw err; 26 } 27 28 - jwks = { 29 - keys: [], 30 - }; 31 } 32 33 - const { publicKey, privateKey } = await crypto.subtle.generateKey( 34 - { 35 - name: 'ECDSA', 36 - namedCurve: 'P-256', 37 - }, 38 - true, 39 - ['sign', 'verify'], 40 - ); 41 - 42 const kid = `aglais-${TID.now()}`; 43 - const privateJWK = await crypto.subtle.exportKey('jwk', privateKey); 44 - const publicJWK = await crypto.subtle.exportKey('jwk', publicKey); 45 46 - jwks = { 47 - keys: [ 48 - { 49 - privateKey: { 50 - ...privateJWK, 51 - kid: kid, 52 - }, 53 - publicKey: { 54 - kty: publicJWK.kty, 55 - crv: publicJWK.crv, 56 - x: publicJWK.x, 57 - y: publicJWK.y, 58 - use: 'sig', 59 - alg: 'ES256', 60 - kid: kid, 61 - }, 62 - }, 63 - ...jwks.keys, 64 - ], 65 - }; 66 67 - await fs.writeFile('./oauth-credentials.local.json', JSON.stringify(jwks, null, '\t') + '\n');
··· 1 import * as fs from 'node:fs/promises'; 2 3 + import { generateClientAssertionKey } from '@atcute/oauth-crypto'; 4 import * as TID from '@atcute/tid'; 5 6 + /** @type {import('@atcute/oauth-crypto').ClientAssertionPrivateJwk[]} */ 7 + let keys; 8 try { 9 const raw = await fs.readFile('./oauth-credentials.local.json', 'utf-8'); 10 + keys = JSON.parse(raw); 11 } catch (err) { 12 if (err.code !== 'ENOENT') { 13 throw err; 14 } 15 16 + keys = []; 17 } 18 19 const kid = `aglais-${TID.now()}`; 20 + const privateKey = await generateClientAssertionKey(kid, 'ES256'); 21 22 + keys = [privateKey, ...keys]; 23 24 + await fs.writeFile('./oauth-credentials.local.json', JSON.stringify(keys, null, '\t') + '\n');
+21 -20
server/index.ts
··· 14 WellKnownHandleResolver, 15 } from '@atcute/identity-resolver'; 16 import { type Did, type Handle, type ResourceUri, isDid } from '@atcute/lexicons/syntax'; 17 import { AuthRequiredError, InvalidRequestError, XRPCRouter, json } from '@atcute/xrpc-server'; 18 19 - import * as jwks from '../oauth-credentials.local.json' with { type: 'json' }; 20 21 - import { InvalidDPoPError, createClientAssertion, verifyDPoP } from './jwt'; 22 import { requestAssertionSchema, resolveIdentitySchema } from './lexicons'; 23 24 - const privateKeyId = jwks.keys[0].privateKey.kid; 25 - const privateKey = await crypto.subtle.importKey( 26 - 'jwk', 27 - jwks.keys[0].privateKey, 28 - { name: 'ECDSA', namedCurve: 'P-256' }, 29 - false, 30 - ['sign'], 31 - ); 32 33 const handleResolver = new CompositeHandleResolver({ 34 methods: { ··· 74 }); 75 76 router.addProcedure(requestAssertionSchema, { 77 - async handler({ input: { jkt, aud }, request }) { 78 if (request.headers.get('sec-fetch-site') !== 'same-origin') { 79 throw new AuthRequiredError({ description: 'invalid origin' }); 80 } 81 82 - const dpop = request.headers.get('dpop'); 83 try { 84 - await verifyDPoP(dpop, jkt); 85 } catch (err) { 86 - if (err instanceof InvalidDPoPError) { 87 throw new AuthRequiredError({ description: err.message }); 88 } 89 ··· 92 93 const url = new URL(request.url); 94 const assertion = await createClientAssertion({ 95 - privateKey: privateKey, 96 - 97 client_id: `https://${url.host}/oauth-client-metadata.json`, 98 - kid: privateKeyId, 99 aud: aud, 100 jkt: jkt, 101 }); 102 103 return json({ ··· 203 } 204 205 if (url.pathname === '/oauth-jwks.json') { 206 - return Response.json({ 207 - keys: jwks.keys.map((key) => key.publicKey), 208 - }); 209 } 210 211 contexts.set(request, ctx);
··· 14 WellKnownHandleResolver, 15 } from '@atcute/identity-resolver'; 16 import { type Did, type Handle, type ResourceUri, isDid } from '@atcute/lexicons/syntax'; 17 + import { 18 + type ClientAssertionPrivateJwk, 19 + DpopVerifyError, 20 + createClientAssertion, 21 + derivePublicJwk, 22 + verifyDpopProof, 23 + } from '@atcute/oauth-crypto'; 24 import { AuthRequiredError, InvalidRequestError, XRPCRouter, json } from '@atcute/xrpc-server'; 25 26 + import keys from '../oauth-credentials.local.json' with { type: 'json' }; 27 28 import { requestAssertionSchema, resolveIdentitySchema } from './lexicons'; 29 30 + const privateKeys = keys as ClientAssertionPrivateJwk[]; 31 + const publicKeys = privateKeys.map((key) => derivePublicJwk(key)); 32 33 const handleResolver = new CompositeHandleResolver({ 34 methods: { ··· 74 }); 75 76 router.addProcedure(requestAssertionSchema, { 77 + async handler({ input: { aud }, request }) { 78 if (request.headers.get('sec-fetch-site') !== 'same-origin') { 79 throw new AuthRequiredError({ description: 'invalid origin' }); 80 } 81 82 + let jkt: string; 83 try { 84 + const result = await verifyDpopProof(request.headers.get('dpop'), { 85 + method: request.method, 86 + url: request.url, 87 + }); 88 + 89 + jkt = result.jkt; 90 } catch (err) { 91 + if (err instanceof DpopVerifyError) { 92 throw new AuthRequiredError({ description: err.message }); 93 } 94 ··· 97 98 const url = new URL(request.url); 99 const assertion = await createClientAssertion({ 100 client_id: `https://${url.host}/oauth-client-metadata.json`, 101 aud: aud, 102 jkt: jkt, 103 + key: privateKeys[0], 104 }); 105 106 return json({ ··· 206 } 207 208 if (url.pathname === '/oauth-jwks.json') { 209 + return Response.json({ keys: publicKeys }); 210 } 211 212 contexts.set(request, ctx);
-208
server/jwt.ts
··· 1 - import * as v from '@badrap/valita'; 2 - 3 - import { fromBase64Url, toBase64Url } from '@atcute/multibase'; 4 - import { decodeUtf8From, encodeUtf8 } from '@atcute/uint8array'; 5 - 6 - export class MalformedJwtError extends Error { 7 - name = 'MalformedJwtError'; 8 - 9 - constructor(options?: ErrorOptions) { 10 - super(`malformed JWT`, options); 11 - } 12 - } 13 - 14 - export interface DecodedJwt<THeader, TPayload> { 15 - header: THeader; 16 - payload: TPayload; 17 - message: Uint8Array<ArrayBuffer>; 18 - signature: Uint8Array<ArrayBuffer>; 19 - } 20 - 21 - const decodeJwt = <THeader, TPayload>( 22 - input: string, 23 - schemas: { header: v.Type<THeader>; payload: v.Type<TPayload> }, 24 - ): DecodedJwt<THeader, TPayload> => { 25 - const parts = input.split('.'); 26 - if (parts.length !== 3) { 27 - throw new MalformedJwtError(); 28 - } 29 - 30 - const [headerString, payloadString, signatureString] = parts; 31 - 32 - const header = decodeJwtPortion(schemas.header, headerString); 33 - const payload = decodeJwtPortion(schemas.payload, payloadString); 34 - const signature = decodeJwtSignature(signatureString); 35 - 36 - return { 37 - header: header, 38 - payload: payload, 39 - message: encodeUtf8(`${headerString}.${payloadString}`), 40 - signature: signature, 41 - }; 42 - }; 43 - 44 - const decodeJwtPortion = <T>(schema: v.Type<T>, input: string): T => { 45 - try { 46 - const raw = decodeUtf8From(fromBase64Url(input)); 47 - const json = JSON.parse(raw); 48 - 49 - return schema.parse(json, { mode: 'passthrough' }); 50 - } catch (err) { 51 - throw new MalformedJwtError({ cause: err }); 52 - } 53 - }; 54 - 55 - const decodeJwtSignature = (input: string): Uint8Array<ArrayBuffer> => { 56 - try { 57 - return fromBase64Url(input); 58 - } catch (err) { 59 - throw new MalformedJwtError({ cause: err }); 60 - } 61 - }; 62 - 63 - const encodeJwtPortion = (data: unknown): string => { 64 - return toBase64Url(encodeUtf8(JSON.stringify(data))); 65 - }; 66 - 67 - const encodeJwtSignature = (data: Uint8Array): string => { 68 - return toBase64Url(data); 69 - }; 70 - 71 - // #region DPoP 72 - export class InvalidDPoPError extends Error { 73 - name = 'InvalidDPoPError'; 74 - } 75 - 76 - const dpopHeaderSchema = v.object({ 77 - typ: v.literal('dpop+jwt'), 78 - alg: v.literal('ES256'), 79 - jwk: v.object({ 80 - kty: v.literal('EC'), 81 - crv: v.literal('P-256'), 82 - x: v.string(), 83 - y: v.string(), 84 - }), 85 - }); 86 - 87 - const dpopPayloadSchema = v.object({ 88 - htm: v.string(), 89 - htu: v.string(), 90 - iat: v.number(), 91 - jti: v.string(), 92 - }); 93 - 94 - const calculateJwkThumbprint = async (jwk: JsonWebKey): Promise<string> => { 95 - // For EC keys, thumbprint is SHA-256 of canonical JSON 96 - // Members must be in lexicographic order 97 - const canonical = JSON.stringify({ 98 - crv: jwk.crv, 99 - kty: jwk.kty, 100 - x: jwk.x, 101 - y: jwk.y, 102 - }); 103 - 104 - const hash = await crypto.subtle.digest('SHA-256', encodeUtf8(canonical)); 105 - return toBase64Url(new Uint8Array(hash)); 106 - }; 107 - 108 - export const verifyDPoP = async (dpop: string | null, jkt: string): Promise<void> => { 109 - if (!dpop) { 110 - throw new InvalidDPoPError(`missing DPoP header`); 111 - } 112 - 113 - // Decode the DPoP JWT 114 - let decoded; 115 - try { 116 - decoded = decodeJwt(dpop, { 117 - header: dpopHeaderSchema, 118 - payload: dpopPayloadSchema, 119 - }); 120 - } catch (err) { 121 - throw new InvalidDPoPError(`malformed JWT`, { cause: err }); 122 - } 123 - 124 - const { header, message, signature } = decoded; 125 - 126 - // Verify JWK thumbprint matches jkt 127 - const thumbprint = await calculateJwkThumbprint(header.jwk); 128 - if (thumbprint !== jkt) { 129 - throw new InvalidDPoPError(`JWK thumbprint mismatch`); 130 - } 131 - 132 - // Import the public key for signature verification 133 - let publicKey: CryptoKey; 134 - try { 135 - publicKey = await crypto.subtle.importKey( 136 - 'jwk', 137 - header.jwk, 138 - { name: 'ECDSA', namedCurve: 'P-256' }, 139 - false, 140 - ['verify'], 141 - ); 142 - } catch (err) { 143 - throw new InvalidDPoPError(`failed to import JWK`, { cause: err }); 144 - } 145 - 146 - // Verify the signature 147 - const isValid = await crypto.subtle.verify( 148 - { name: 'ECDSA', hash: 'SHA-256' }, 149 - publicKey, 150 - signature, 151 - message, 152 - ); 153 - 154 - if (!isValid) { 155 - throw new InvalidDPoPError(`invalid DPoP signature`); 156 - } 157 - }; 158 - 159 - // #endregion 160 - 161 - // #region Client assertions 162 - 163 - export const createClientAssertion = async (options: { 164 - kid: string; 165 - client_id: string; 166 - aud: string; 167 - jkt: string; 168 - privateKey: CryptoKey; 169 - }): Promise<string> => { 170 - const { kid, client_id, aud, jkt, privateKey } = options; 171 - 172 - const now = Math.floor(Date.now() / 1000); 173 - 174 - const header = { 175 - alg: 'ES256', 176 - typ: 'JWT', 177 - kid: kid, 178 - }; 179 - 180 - const payload = { 181 - iss: client_id, 182 - sub: client_id, 183 - aud: aud, 184 - jti: crypto.randomUUID(), 185 - iat: now, 186 - exp: now + 60, 187 - cnf: { jkt }, 188 - }; 189 - 190 - const message = `${encodeJwtPortion(header)}.${encodeJwtPortion(payload)}`; 191 - 192 - const signature = encodeJwtSignature( 193 - new Uint8Array( 194 - await crypto.subtle.sign( 195 - { 196 - name: 'ECDSA', 197 - hash: 'SHA-256', 198 - }, 199 - privateKey, 200 - encodeUtf8(message), 201 - ), 202 - ), 203 - ); 204 - 205 - return `${message}.${signature}`; 206 - }; 207 - 208 - // #endregion
···
-1
server/lexicons.ts
··· 6 input: { 7 type: 'lex', 8 schema: v.object({ 9 - jkt: v.string(), 10 aud: v.string(), 11 }), 12 },
··· 6 input: { 7 type: 'lex', 8 schema: v.object({ 9 aud: v.string(), 10 }), 11 },
+1 -2
src/main.tsx
··· 44 handler: simpleFetchHandler({ service: location.origin }), 45 }); 46 47 - const fetchClientAssertion: ClientAssertionFetcher = async ({ aud, jkt, createDpopProof }) => { 48 const dpop = await createDpopProof(`${location.origin}/xrpc/x.aglais.requestAssertion`); 49 50 const data = await ok( 51 host.post('x.aglais.requestAssertion', { 52 input: { 53 aud: aud, 54 - jkt: jkt, 55 }, 56 headers: { 57 dpop: dpop,
··· 44 handler: simpleFetchHandler({ service: location.origin }), 45 }); 46 47 + const fetchClientAssertion: ClientAssertionFetcher = async ({ aud, createDpopProof }) => { 48 const dpop = await createDpopProof(`${location.origin}/xrpc/x.aglais.requestAssertion`); 49 50 const data = await ok( 51 host.post('x.aglais.requestAssertion', { 52 input: { 53 aud: aud, 54 }, 55 headers: { 56 dpop: dpop,