atproto explorer

update deps

+35 -26
+3 -3
package.json
··· 20 20 }, 21 21 "dependencies": { 22 22 "@atcute/atproto": "^3.0.2", 23 - "@atcute/car": "^3.0.5", 23 + "@atcute/car": "^3.1.0", 24 24 "@atcute/cbor": "^2.2.4", 25 25 "@atcute/cid": "^2.2.3", 26 26 "@atcute/client": "^4.0.2", 27 27 "@atcute/crypto": "^2.2.2", 28 28 "@atcute/identity": "^1.0.2", 29 - "@atcute/identity-resolver": "^1.0.2", 29 + "@atcute/identity-resolver": "^1.1.0", 30 30 "@atcute/lexicons": "^1.0.3", 31 - "@atcute/oauth-browser-client": "^1.0.21", 31 + "@atcute/oauth-browser-client": "^1.0.22", 32 32 "@atcute/tid": "^1.0.2", 33 33 "@atcute/uint8array": "^1.0.2", 34 34 "@skyware/firehose": "^0.5.1",
+28 -20
pnpm-lock.yaml
··· 12 12 specifier: ^3.0.2 13 13 version: 3.0.2 14 14 '@atcute/car': 15 - specifier: ^3.0.5 16 - version: 3.0.5 15 + specifier: ^3.1.0 16 + version: 3.1.0 17 17 '@atcute/cbor': 18 18 specifier: ^2.2.4 19 19 version: 2.2.4 ··· 30 30 specifier: ^1.0.2 31 31 version: 1.0.2 32 32 '@atcute/identity-resolver': 33 - specifier: ^1.0.2 34 - version: 1.0.2(@atcute/identity@1.0.2) 33 + specifier: ^1.1.0 34 + version: 1.1.0(@atcute/identity@1.0.2) 35 35 '@atcute/lexicons': 36 36 specifier: ^1.0.3 37 37 version: 1.0.3 38 38 '@atcute/oauth-browser-client': 39 - specifier: ^1.0.21 40 - version: 1.0.21 39 + specifier: ^1.0.22 40 + version: 1.0.22 41 41 '@atcute/tid': 42 42 specifier: ^1.0.2 43 43 version: 1.0.2 ··· 106 106 '@atcute/atproto@3.0.2': 107 107 resolution: {integrity: sha512-p37GqTmrxc1XaxtX8JsePEuomL+PtDeGdy0lcBm+HisD03ZZTia7MouxUpnYezX0l926fFaDc9tllIBtX9iSsQ==} 108 108 109 - '@atcute/car@3.0.5': 110 - resolution: {integrity: sha512-dEoUPRZezQKo+Q3DbNq8QDEojqzC2M05+elzgHBN0Z2BLrnKa2W6q5ETFnArESPn5kvQ2TUDOUslWo3Xr4JcWg==} 109 + '@atcute/car@3.1.0': 110 + resolution: {integrity: sha512-k7TGqNOFGa2Mqp0qoUPIs+ex62bDbU0/qDygZt6E474cZybnxir+yLGJxshd1n/2t3WfdL2gsju6TS9zCXgqeg==} 111 111 112 112 '@atcute/cbor@2.2.4': 113 113 resolution: {integrity: sha512-8Y/OTM8zs5VInOCjfx4f9Idiiz7ygM/FkfWv/HW3/ZUsXczn1xk7GzTBbm4P5crn4C5luwDGpO7FwClMOERrow==} ··· 121 121 '@atcute/crypto@2.2.2': 122 122 resolution: {integrity: sha512-zpJjB6m0+Wy4YrgBJTSps4wbi3Xv1z/yZO/m/3sUYl1bIqUdHhH3vmDJtiXkRONgKNhiaQdukyt0omd9n4vDUA==} 123 123 124 - '@atcute/identity-resolver@1.0.2': 125 - resolution: {integrity: sha512-ZN+AqKuFfqWNR81LarJp0Sby8DxzeZJepdXFGeeleWgnncblaUR57RAVDr+quHM97cNPYZIwIN7YJodjLGr4sw==} 124 + '@atcute/identity-resolver@1.1.0': 125 + resolution: {integrity: sha512-Ak41aYsQwW1xPan7BXM6TfQ18AkQg8RVH2s7Ppcg3b7YJUo8v24KJXaYoha3t+Tcr0T1xx56j/vZPIfwUG+b4g==} 126 126 peerDependencies: 127 127 '@atcute/identity': ^1.0.0 128 128 ··· 135 135 '@atcute/multibase@1.1.4': 136 136 resolution: {integrity: sha512-NUf5AeeSOmuZHGU+4GAaMtISJoG+ZHtW/vUVA4lK/YDt/7LODAW0Fd0NNIIUPVUoW0xJS6zSEIWvwLLuxmEHhA==} 137 137 138 - '@atcute/oauth-browser-client@1.0.21': 139 - resolution: {integrity: sha512-QQoQQe63pKLNI3qKjD/YDRJFA4RwIAXM9Jlq73bgpDNwVhhQZJyuqSmj2sdbYKBbWnK1o9UVzsBkkUm3LvusaQ==} 138 + '@atcute/oauth-browser-client@1.0.22': 139 + resolution: {integrity: sha512-GccFWUoLpz6mSyiFC38hHXHaDvXAy0iqzvTMdzxgaobu9w71KzBiLpbHMUl3GQT1zG46squ1WkIOJDS7c6O6ww==} 140 140 141 141 '@atcute/tid@1.0.2': 142 142 resolution: {integrity: sha512-ahmjroNyeDPJhtuf3+HTJropaH04HmJ8fhntDu73Gpz/RkAF7+nkz6kcP2QTgfvMCgMPAJUdskAAP82GPDTY9w==} ··· 895 895 duplexer@0.1.2: 896 896 resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} 897 897 898 - electron-to-chromium@1.5.155: 899 - resolution: {integrity: sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==} 898 + electron-to-chromium@1.5.157: 899 + resolution: {integrity: sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w==} 900 900 901 901 entities@4.5.0: 902 902 resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} ··· 1338 1338 yallist@3.1.1: 1339 1339 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1340 1340 1341 + yocto-queue@1.2.1: 1342 + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} 1343 + engines: {node: '>=12.20'} 1344 + 1341 1345 snapshots: 1342 1346 1343 1347 '@ampproject/remapping@2.3.0': ··· 1356 1360 dependencies: 1357 1361 '@atcute/lexicons': 1.0.3 1358 1362 1359 - '@atcute/car@3.0.5': 1363 + '@atcute/car@3.1.0': 1360 1364 dependencies: 1361 1365 '@atcute/cbor': 2.2.4 1362 1366 '@atcute/cid': 2.2.3 1367 + '@atcute/uint8array': 1.0.2 1363 1368 '@atcute/varint': 1.0.2 1369 + yocto-queue: 1.2.1 1364 1370 1365 1371 '@atcute/cbor@2.2.4': 1366 1372 dependencies: ··· 1384 1390 '@atcute/uint8array': 1.0.2 1385 1391 '@noble/secp256k1': 2.2.3 1386 1392 1387 - '@atcute/identity-resolver@1.0.2(@atcute/identity@1.0.2)': 1393 + '@atcute/identity-resolver@1.1.0(@atcute/identity@1.0.2)': 1388 1394 dependencies: 1389 1395 '@atcute/identity': 1.0.2 1390 1396 '@atcute/lexicons': 1.0.3 ··· 1404 1410 dependencies: 1405 1411 '@atcute/uint8array': 1.0.2 1406 1412 1407 - '@atcute/oauth-browser-client@1.0.21': 1413 + '@atcute/oauth-browser-client@1.0.22': 1408 1414 dependencies: 1409 1415 '@atcute/client': 4.0.2 1410 1416 '@atcute/identity': 1.0.2 ··· 1790 1796 1791 1797 '@skyware/firehose@0.5.1': 1792 1798 dependencies: 1793 - '@atcute/car': 3.0.5 1799 + '@atcute/car': 3.1.0 1794 1800 '@atcute/cbor': 2.2.4 1795 1801 nanoevents: 9.1.0 1796 1802 ··· 2067 2073 browserslist@4.24.5: 2068 2074 dependencies: 2069 2075 caniuse-lite: 1.0.30001718 2070 - electron-to-chromium: 1.5.155 2076 + electron-to-chromium: 1.5.157 2071 2077 node-releases: 2.0.19 2072 2078 update-browserslist-db: 1.1.3(browserslist@4.24.5) 2073 2079 ··· 2114 2120 2115 2121 duplexer@0.1.2: {} 2116 2122 2117 - electron-to-chromium@1.5.155: {} 2123 + electron-to-chromium@1.5.157: {} 2118 2124 2119 2125 entities@4.5.0: {} 2120 2126 ··· 2519 2525 typescript: 5.8.3 2520 2526 2521 2527 yallist@3.1.1: {} 2528 + 2529 + yocto-queue@1.2.1: {}
+1 -1
src/components/backlinks.tsx
··· 43 43 </p> 44 44 <For each={filteredLinks().links}> 45 45 {({ collection, path, matchesFilter, counts }) => ( 46 - <div class="mt-2 font-mono text-xs sm:text-sm"> 46 + <div class="mt-2 font-mono text-sm"> 47 47 <p classList={{ "text-stone-400": matchesFilter }}> 48 48 <span title="Collection containing linking records">{collection}</span> 49 49 <span class="text-cyan-500">@</span>
+3 -2
src/utils/verify.ts
··· 1 1 import { Client } from "@atcute/client"; 2 2 3 3 import * as CAR from "@atcute/car"; 4 + import { CarReader } from "@atcute/car/v4"; 4 5 import * as CBOR from "@atcute/cbor"; 5 6 import * as CID from "@atcute/cid"; 6 7 import { type FoundPublicKey, getPublicKeyFromDidController, verifySig } from "@atcute/crypto"; ··· 105 106 let commit: CAR.Commit; 106 107 107 108 try { 108 - const reader = CAR.readCar(car); 109 + const reader = CarReader.fromUint8Array(car); 109 110 if (reader.header.data.roots.length !== 1) { 110 111 errors.push({ message: `car must have exactly one root` }); 111 112 return { errors }; 112 113 } 113 114 114 115 blockmap = new Map(); 115 - for (const entry of reader.iterate()) { 116 + for (const entry of reader) { 116 117 const cidString = CID.toString(entry.cid); 117 118 118 119 // Verify that `bytes` matches its associated CID