Shows how to get repo export and walk it in TypeScript walktherepo.wisp.place

Only@atcuties

+3 -3
package.json
··· 24 24 "@atcute/car": "^5.0.0", 25 25 "@atcute/cbor": "^2.2.8", 26 26 "@atcute/client": "^4.2.1", 27 - "@atproto-labs/handle-resolver": "^0.3.5", 28 - "@atproto/identity": "^0.4.10", 29 - "@atproto/lex": "^0.0.10", 27 + "@atcute/identity": "^1.1.3", 28 + "@atcute/identity-resolver": "^1.2.2", 29 + "@atcute/lexicons": "^1.2.6", 30 30 "@eslint/compat": "^2.0.0", 31 31 "@eslint/js": "^9.39.2", 32 32 "eslint": "^9.39.2",
+31 -633
pnpm-lock.yaml
··· 20 20 '@atcute/client': 21 21 specifier: ^4.2.1 22 22 version: 4.2.1 23 - '@atproto-labs/handle-resolver': 24 - specifier: ^0.3.5 25 - version: 0.3.5 26 - '@atproto/identity': 27 - specifier: ^0.4.10 28 - version: 0.4.10 29 - '@atproto/lex': 30 - specifier: ^0.0.10 31 - version: 0.0.10 23 + '@atcute/identity': 24 + specifier: ^1.1.3 25 + version: 1.1.3 26 + '@atcute/identity-resolver': 27 + specifier: ^1.2.2 28 + version: 1.2.2(@atcute/identity@1.1.3) 29 + '@atcute/lexicons': 30 + specifier: ^1.2.6 31 + version: 1.2.6 32 32 '@eslint/compat': 33 33 specifier: ^2.0.0 34 34 version: 2.0.0(eslint@9.39.2) ··· 44 44 globals: 45 45 specifier: ^17.0.0 46 46 version: 17.0.0 47 + typescript-eslint: 48 + specifier: ^8.52.0 49 + version: 8.52.0(eslint@9.39.2)(typescript@5.9.3) 47 50 devDependencies: 48 51 '@sveltejs/vite-plugin-svelte': 49 52 specifier: ^6.2.1 ··· 63 66 typescript: 64 67 specifier: ~5.9.3 65 68 version: 5.9.3 66 - typescript-eslint: 67 - specifier: ^8.52.0 68 - version: 8.52.0(eslint@9.39.2)(typescript@5.9.3) 69 69 vite: 70 70 specifier: ^7.2.4 71 71 version: 7.3.1(@types/node@24.10.4) ··· 87 87 '@atcute/client@4.2.1': 88 88 resolution: {integrity: sha512-ZBFM2pW075JtgGFu5g7HHZBecrClhlcNH8GVP9Zz1aViWR+cjjBsTpeE63rJs+FCOHFYlirUyo5L8SGZ4kMINw==} 89 89 90 + '@atcute/identity-resolver@1.2.2': 91 + resolution: {integrity: sha512-eUh/UH4bFvuXS0X7epYCeJC/kj4rbBXfSRumLEH4smMVwNOgTo7cL/0Srty+P/qVPoZEyXdfEbS0PHJyzoXmHw==} 92 + peerDependencies: 93 + '@atcute/identity': ^1.0.0 94 + 90 95 '@atcute/identity@1.1.3': 91 96 resolution: {integrity: sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==} 92 97 ··· 98 103 99 104 '@atcute/uint8array@1.0.6': 100 105 resolution: {integrity: sha512-ucfRBQc7BFT8n9eCyGOzDHEMKF/nZwhS2pPao4Xtab1ML3HdFYcX2DM1tadCzas85QTGxHe5urnUAAcNKGRi9A==} 106 + 107 + '@atcute/util-fetch@1.0.5': 108 + resolution: {integrity: sha512-qjHj01BGxjSjIFdPiAjSARnodJIIyKxnCMMEcXMESo9TAyND6XZQqrie5fia+LlYWVXdpsTds8uFQwc9jdKTig==} 101 109 102 110 '@atcute/util-text@0.0.1': 103 111 resolution: {integrity: sha512-t1KZqvn0AYy+h2KcJyHnKF9aEqfRfMUmyY8j1ELtAEIgqN9CxINAjxnoRCJIFUlvWzb+oY3uElQL/Vyk3yss0g==} ··· 105 113 '@atcute/varint@1.0.3': 106 114 resolution: {integrity: sha512-fdvMPyBB+McDT+Ai5e9RwEbwYV4yjZ60S2Dn5PTjGqUyxvoCH1z42viuheDZRUDkmfQehXJTZ5az7dSozVNtog==} 107 115 108 - '@atproto-labs/did-resolver@0.2.5': 109 - resolution: {integrity: sha512-he7EC6OMSifNs01a4RT9mta/yYitoKDzlK9ty2TFV5Uj/+HpB4vYMRdIDFrRW0Hcsehy90E2t/dw0t7361MEKQ==} 110 - 111 - '@atproto-labs/fetch@0.2.3': 112 - resolution: {integrity: sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw==} 113 - 114 - '@atproto-labs/handle-resolver@0.3.5': 115 - resolution: {integrity: sha512-r3b+plCh/0arN535Aool9gL6yTSbAPDOyReURbA2TWAaeW4vrSJPwR6yYUx0k0vmVPjkZPIdUVd63bG/+VG5MA==} 116 - 117 - '@atproto-labs/pipe@0.1.1': 118 - resolution: {integrity: sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg==} 119 - 120 - '@atproto-labs/simple-store-memory@0.1.4': 121 - resolution: {integrity: sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw==} 122 - 123 - '@atproto-labs/simple-store@0.3.0': 124 - resolution: {integrity: sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==} 125 - 126 - '@atproto/common-web@0.4.11': 127 - resolution: {integrity: sha512-VHejNmSABU8/03VrQ3e36AmT5U3UIeio+qSUqCrO1oNgrJcWfGy1rpj0FVtUugWF8Un29+yzkukzWGZfXL70rQ==} 128 - 129 - '@atproto/common@0.5.7': 130 - resolution: {integrity: sha512-SSdXo8s1PtyeJyZd/AOocwlMloNQn+6WMwF4DzYihn/dT3Dx+6+WSOx8/Q/xCK4bIG15OTTEyLV+RxpOHmmUnQ==} 131 - engines: {node: '>=18.7.0'} 132 - 133 - '@atproto/crypto@0.4.5': 134 - resolution: {integrity: sha512-n40aKkMoCatP0u9Yvhrdk6fXyOHFDDbkdm4h4HCyWW+KlKl8iXfD5iV+ECq+w5BM+QH25aIpt3/j6EUNerhLxw==} 135 - engines: {node: '>=18.7.0'} 136 - 137 - '@atproto/did@0.2.4': 138 - resolution: {integrity: sha512-nxNiCgXeo7pfjojq9fpfZxCO0X0xUipNVKW+AHNZwQKiUDt6zYL0VXEfm8HBUwQOCmKvj2pRRSM1Cur+tUWk3g==} 139 - 140 - '@atproto/identity@0.4.10': 141 - resolution: {integrity: sha512-nQbzDLXOhM8p/wo0cTh5DfMSOSHzj6jizpodX37LJ4S1TZzumSxAjHEZa5Rev3JaoD5uSWMVE0MmKEGWkPPvfQ==} 142 - engines: {node: '>=18.7.0'} 143 - 144 - '@atproto/lex-builder@0.0.10': 145 - resolution: {integrity: sha512-vQ7l9yWdqBxFclNllxWhR38/PNLaPHuLaKcb/qpt5Xh7fw1+dMQwYNG8TYUjdXd1DbAWhWzmG4iejbZcoWP05g==} 146 - 147 - '@atproto/lex-cbor@0.0.7': 148 - resolution: {integrity: sha512-thpjx0anzMi4J+o8JuKtyVQNFE+XStFhmYR4qf6mPWFC16MGbvoWnzONwJPTTP2kl6MiFVlQMnsUX7k9XGvxQg==} 149 - 150 - '@atproto/lex-client@0.0.8': 151 - resolution: {integrity: sha512-KnqpEzJl8WUQ8u7tTp38FXzYl5namHhB1Ez9rWGq1RqqLQE5dGDtWjSt5Eksx1Pcvi/TEGdZR6BoKakF6Z9P5Q==} 152 - 153 - '@atproto/lex-data@0.0.7': 154 - resolution: {integrity: sha512-W/Q5o9o7n2Sv3UywckChu01X5lwQUtaiiOkGJLnRsdkQTyC6813nPgY+p2sG7NwwM+82lu+FUV9fE/Ul3VqaJw==} 155 - 156 - '@atproto/lex-document@0.0.9': 157 - resolution: {integrity: sha512-f6vcLvBS3tn/aJf3gv/c2a/FVIulpIZWrXQkNjb6jo2jg2DOJkKBel+6nm4ygaBDUQjSDngZGFMe1eq4e6JJmg==} 158 - 159 - '@atproto/lex-installer@0.0.10': 160 - resolution: {integrity: sha512-JpP+Jcf/gXlV+ClkBC972sJmdXsxi3W65PA3A8DQJCtC95kqm/PLoEwGW/YsQEuBcIlWjx3Dc8NVpgiAfp4qTQ==} 161 - 162 - '@atproto/lex-json@0.0.7': 163 - resolution: {integrity: sha512-bjNPD5M/MhLfjNM7tcxuls80UgXpHqxdOxDXEUouAtZQV/nIDhGjmNUvKxOmOgnDsiZRnT2g5y3onrnjH3a44g==} 164 - 165 - '@atproto/lex-resolver@0.0.9': 166 - resolution: {integrity: sha512-vysKmRCQOdEmys1WUQWNYdwKCmckbFGsIAbyKKCk4oBNz6TkksZKd8ifsW+OIh0a+68lMZZIDiGxeXFgZSdFrA==} 167 - 168 - '@atproto/lex-schema@0.0.8': 169 - resolution: {integrity: sha512-Dfx+n0bFJsFofN7sDhftOXXrJ+YRN8q/JXlGFuS9p72ZdrwahNU5Yp1X7yga3vyeEftffxlw0gw8NXIpNbDQmg==} 170 - 171 - '@atproto/lex@0.0.10': 172 - resolution: {integrity: sha512-ajmMw4uks1BNO2nS4yMeox08dB7lTPXFTZhGY13OMWSBYetsU42iM0Cm0bw3DJ7gSrS6sRcHgTvSJAKNNpLNqg==} 173 - hasBin: true 174 - 175 - '@atproto/lexicon@0.6.0': 176 - resolution: {integrity: sha512-5veb8aD+J5M0qszLJ+73KSFsFrJBgAY/nM1TSAJvGY7fNc9ZAT+PSUlmIyrdye9YznAZ07yktalls/TwNV7cHQ==} 177 - 178 - '@atproto/repo@0.8.12': 179 - resolution: {integrity: sha512-QpVTVulgfz5PUiCTELlDBiRvnsnwrFWi+6CfY88VwXzrRHd9NE8GItK7sfxQ6U65vD/idH8ddCgFrlrsn1REPQ==} 180 - engines: {node: '>=18.7.0'} 181 - 182 - '@atproto/syntax@0.4.2': 183 - resolution: {integrity: sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==} 184 - 185 116 '@badrap/valita@0.4.6': 186 117 resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} 187 118 engines: {node: '>= 18'} ··· 409 340 resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 410 341 engines: {node: '>=18.18'} 411 342 412 - '@ipld/dag-cbor@7.0.3': 413 - resolution: {integrity: sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==} 414 - 415 - '@isaacs/balanced-match@4.0.1': 416 - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} 417 - engines: {node: 20 || >=22} 418 - 419 - '@isaacs/brace-expansion@5.0.0': 420 - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} 421 - engines: {node: 20 || >=22} 422 - 423 343 '@jridgewell/gen-mapping@0.3.13': 424 344 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 425 345 ··· 436 356 '@jridgewell/trace-mapping@0.3.31': 437 357 resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 438 358 439 - '@noble/curves@1.9.7': 440 - resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} 441 - engines: {node: ^14.21.3 || >=16} 442 - 443 - '@noble/hashes@1.8.0': 444 - resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} 445 - engines: {node: ^14.21.3 || >=16} 446 - 447 359 '@rollup/rollup-android-arm-eabi@4.55.1': 448 360 resolution: {integrity: sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==} 449 361 cpu: [arm] ··· 592 504 svelte: ^5.0.0 593 505 vite: ^6.3.0 || ^7.0.0 594 506 595 - '@ts-morph/common@0.28.1': 596 - resolution: {integrity: sha512-W74iWf7ILp1ZKNYXY5qbddNaml7e9Sedv5lvU1V8lftlitkc9Pq1A+jlH23ltDgWYeZFFEqGCD1Ies9hqu3O+g==} 597 - 598 507 '@tsconfig/svelte@5.0.6': 599 508 resolution: {integrity: sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==} 600 509 ··· 666 575 resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} 667 576 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 668 577 669 - abort-controller@3.0.0: 670 - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 671 - engines: {node: '>=6.5'} 672 - 673 578 acorn-jsx@5.3.2: 674 579 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 675 580 peerDependencies: ··· 682 587 683 588 ajv@6.12.6: 684 589 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 685 - 686 - ansi-regex@5.0.1: 687 - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 688 - engines: {node: '>=8'} 689 590 690 591 ansi-styles@4.3.0: 691 592 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} ··· 698 599 resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 699 600 engines: {node: '>= 0.4'} 700 601 701 - atomic-sleep@1.0.0: 702 - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 703 - engines: {node: '>=8.0.0'} 704 - 705 602 axobject-query@4.1.0: 706 603 resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} 707 604 engines: {node: '>= 0.4'} 708 605 709 606 balanced-match@1.0.2: 710 607 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 711 - 712 - base64-js@1.5.1: 713 - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 714 608 715 609 brace-expansion@1.1.12: 716 610 resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} ··· 718 612 brace-expansion@2.0.2: 719 613 resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 720 614 721 - buffer@6.0.3: 722 - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 723 - 724 615 callsites@3.1.0: 725 616 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 726 617 engines: {node: '>=6'} 727 618 728 - cborg@1.10.2: 729 - resolution: {integrity: sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==} 730 - hasBin: true 731 - 732 619 chalk@4.1.2: 733 620 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 734 621 engines: {node: '>=10'} ··· 737 624 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 738 625 engines: {node: '>= 14.16.0'} 739 626 740 - cliui@8.0.1: 741 - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 742 - engines: {node: '>=12'} 743 - 744 627 clsx@2.1.1: 745 628 resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 746 629 engines: {node: '>=6'} 747 - 748 - code-block-writer@13.0.3: 749 - resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} 750 630 751 631 color-convert@2.0.1: 752 632 resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} ··· 757 637 758 638 concat-map@0.0.1: 759 639 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 760 - 761 - core-js@3.47.0: 762 - resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} 763 640 764 641 cross-spawn@7.0.6: 765 642 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} ··· 788 665 789 666 devalue@5.6.1: 790 667 resolution: {integrity: sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==} 791 - 792 - emoji-regex@8.0.0: 793 - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 794 668 795 669 esbuild@0.27.2: 796 670 resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} 797 671 engines: {node: '>=18'} 798 672 hasBin: true 799 673 800 - escalade@3.2.0: 801 - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 802 - engines: {node: '>=6'} 803 - 804 674 escape-string-regexp@4.0.0: 805 675 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 806 676 engines: {node: '>=10'} ··· 863 733 resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 864 734 engines: {node: '>=0.10.0'} 865 735 866 - event-target-shim@5.0.1: 867 - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 868 - engines: {node: '>=6'} 869 - 870 - events@3.3.0: 871 - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 872 - engines: {node: '>=0.8.x'} 873 - 874 736 fast-deep-equal@3.1.3: 875 737 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 876 738 ··· 879 741 880 742 fast-levenshtein@2.0.6: 881 743 resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 882 - 883 - fast-redact@3.5.0: 884 - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 885 - engines: {node: '>=6'} 886 744 887 745 fdir@6.5.0: 888 746 resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} ··· 913 771 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 914 772 os: [darwin] 915 773 916 - get-caller-file@2.0.5: 917 - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 918 - engines: {node: 6.* || 8.* || >= 10.*} 919 - 920 774 glob-parent@6.0.2: 921 775 resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 922 776 engines: {node: '>=10.13.0'} ··· 937 791 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 938 792 engines: {node: '>=8'} 939 793 940 - ieee754@1.2.1: 941 - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 942 - 943 794 ignore@5.3.2: 944 795 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 945 796 engines: {node: '>= 4'} ··· 959 810 is-extglob@2.1.1: 960 811 resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 961 812 engines: {node: '>=0.10.0'} 962 - 963 - is-fullwidth-code-point@3.0.0: 964 - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 965 - engines: {node: '>=8'} 966 813 967 814 is-glob@4.0.3: 968 815 resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} ··· 974 821 isexe@2.0.0: 975 822 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 976 823 977 - iso-datestring-validator@2.2.2: 978 - resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} 979 - 980 824 js-yaml@4.1.1: 981 825 resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 982 826 hasBin: true ··· 1014 858 lodash.merge@4.6.2: 1015 859 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1016 860 1017 - lru-cache@10.4.3: 1018 - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1019 - 1020 861 magic-string@0.30.21: 1021 862 resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 1022 - 1023 - minimatch@10.1.1: 1024 - resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} 1025 - engines: {node: 20 || >=22} 1026 863 1027 864 minimatch@3.1.2: 1028 865 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} ··· 1038 875 ms@2.1.3: 1039 876 resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1040 877 1041 - multiformats@9.9.0: 1042 - resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 1043 - 1044 878 nanoid@3.3.11: 1045 879 resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1046 880 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} ··· 1052 886 obug@2.1.1: 1053 887 resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} 1054 888 1055 - on-exit-leak-free@2.1.2: 1056 - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 1057 - engines: {node: '>=14.0.0'} 1058 - 1059 889 optionator@0.9.4: 1060 890 resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1061 891 engines: {node: '>= 0.8.0'} ··· 1072 902 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1073 903 engines: {node: '>=6'} 1074 904 1075 - path-browserify@1.0.1: 1076 - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 1077 - 1078 905 path-exists@4.0.0: 1079 906 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1080 907 engines: {node: '>=8'} ··· 1090 917 resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1091 918 engines: {node: '>=12'} 1092 919 1093 - pino-abstract-transport@1.2.0: 1094 - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 1095 - 1096 - pino-std-serializers@6.2.2: 1097 - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 1098 - 1099 - pino@8.21.0: 1100 - resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} 1101 - hasBin: true 1102 - 1103 920 postcss-load-config@3.1.4: 1104 921 resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1105 922 engines: {node: '>= 10'} ··· 1136 953 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1137 954 engines: {node: '>= 0.8.0'} 1138 955 1139 - prettier@3.7.4: 1140 - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} 1141 - engines: {node: '>=14'} 1142 - hasBin: true 1143 - 1144 - process-warning@3.0.0: 1145 - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 1146 - 1147 - process@0.11.10: 1148 - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 1149 - engines: {node: '>= 0.6.0'} 1150 - 1151 956 punycode@2.3.1: 1152 957 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1153 958 engines: {node: '>=6'} 1154 959 1155 - quick-format-unescaped@4.0.4: 1156 - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1157 - 1158 - readable-stream@4.7.0: 1159 - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 1160 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1161 - 1162 960 readdirp@4.1.2: 1163 961 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1164 962 engines: {node: '>= 14.18.0'} 1165 963 1166 - real-require@0.2.0: 1167 - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1168 - engines: {node: '>= 12.13.0'} 1169 - 1170 - require-directory@2.1.1: 1171 - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1172 - engines: {node: '>=0.10.0'} 1173 - 1174 964 resolve-from@4.0.0: 1175 965 resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1176 966 engines: {node: '>=4'} ··· 1184 974 resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1185 975 engines: {node: '>=6'} 1186 976 1187 - safe-buffer@5.2.1: 1188 - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1189 - 1190 - safe-stable-stringify@2.5.0: 1191 - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 1192 - engines: {node: '>=10'} 1193 - 1194 977 semver@7.7.3: 1195 978 resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1196 979 engines: {node: '>=10'} ··· 1203 986 shebang-regex@3.0.0: 1204 987 resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1205 988 engines: {node: '>=8'} 1206 - 1207 - sonic-boom@3.8.1: 1208 - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} 1209 989 1210 990 source-map-js@1.2.1: 1211 991 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1212 992 engines: {node: '>=0.10.0'} 1213 993 1214 - split2@4.2.0: 1215 - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1216 - engines: {node: '>= 10.x'} 1217 - 1218 - string-width@4.2.3: 1219 - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1220 - engines: {node: '>=8'} 1221 - 1222 - string_decoder@1.3.0: 1223 - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1224 - 1225 - strip-ansi@6.0.1: 1226 - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1227 - engines: {node: '>=8'} 1228 - 1229 994 strip-json-comments@3.1.1: 1230 995 resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1231 996 engines: {node: '>=8'} ··· 1255 1020 resolution: {integrity: sha512-ynjfCHD3nP2el70kN5Pmg37sSi0EjOm9FgHYQdC4giWG/hzO3AatzXXJJgP305uIhGQxSufJLuYWtkY8uK/8RA==} 1256 1021 engines: {node: '>=18'} 1257 1022 1258 - thread-stream@2.7.0: 1259 - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 1260 - 1261 1023 tinyglobby@0.2.15: 1262 1024 resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1263 1025 engines: {node: '>=12.0.0'} ··· 1268 1030 peerDependencies: 1269 1031 typescript: '>=4.8.4' 1270 1032 1271 - ts-morph@27.0.2: 1272 - resolution: {integrity: sha512-fhUhgeljcrdZ+9DZND1De1029PrE+cMkIP7ooqkLRTrRLTqcki2AstsyJm0vRNbTbVCNJ0idGlbBrfqc7/nA8w==} 1273 - 1274 - tslib@2.8.1: 1275 - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1276 - 1277 1033 type-check@0.4.0: 1278 1034 resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1279 1035 engines: {node: '>= 0.8.0'} ··· 1290 1046 engines: {node: '>=14.17'} 1291 1047 hasBin: true 1292 1048 1293 - uint8arrays@3.0.0: 1294 - resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==} 1295 - 1296 1049 undici-types@7.16.0: 1297 1050 resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} 1298 1051 ··· 1304 1057 1305 1058 util-deprecate@1.0.2: 1306 1059 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1307 - 1308 - varint@6.0.0: 1309 - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} 1310 1060 1311 1061 vite@7.3.1: 1312 1062 resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} ··· 1365 1115 resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1366 1116 engines: {node: '>=0.10.0'} 1367 1117 1368 - wrap-ansi@7.0.0: 1369 - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1370 - engines: {node: '>=10'} 1371 - 1372 - y18n@5.0.8: 1373 - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1374 - engines: {node: '>=10'} 1375 - 1376 1118 yaml@1.10.2: 1377 1119 resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1378 1120 engines: {node: '>= 6'} 1379 1121 1380 - yargs-parser@21.1.1: 1381 - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1382 - engines: {node: '>=12'} 1383 - 1384 - yargs@17.7.2: 1385 - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1386 - engines: {node: '>=12'} 1387 - 1388 1122 yocto-queue@0.1.0: 1389 1123 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1390 1124 engines: {node: '>=10'} 1391 1125 1392 1126 zimmerframe@1.1.4: 1393 1127 resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} 1394 - 1395 - zod@3.25.76: 1396 - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} 1397 1128 1398 1129 snapshots: 1399 1130 ··· 1424 1155 '@atcute/identity': 1.1.3 1425 1156 '@atcute/lexicons': 1.2.6 1426 1157 1158 + '@atcute/identity-resolver@1.2.2(@atcute/identity@1.1.3)': 1159 + dependencies: 1160 + '@atcute/identity': 1.1.3 1161 + '@atcute/lexicons': 1.2.6 1162 + '@atcute/util-fetch': 1.0.5 1163 + '@badrap/valita': 0.4.6 1164 + 1427 1165 '@atcute/identity@1.1.3': 1428 1166 dependencies: 1429 1167 '@atcute/lexicons': 1.2.6 ··· 1442 1180 1443 1181 '@atcute/uint8array@1.0.6': {} 1444 1182 1445 - '@atcute/util-text@0.0.1': 1446 - dependencies: 1447 - unicode-segmenter: 0.14.5 1448 - 1449 - '@atcute/varint@1.0.3': {} 1450 - 1451 - '@atproto-labs/did-resolver@0.2.5': 1452 - dependencies: 1453 - '@atproto-labs/fetch': 0.2.3 1454 - '@atproto-labs/pipe': 0.1.1 1455 - '@atproto-labs/simple-store': 0.3.0 1456 - '@atproto-labs/simple-store-memory': 0.1.4 1457 - '@atproto/did': 0.2.4 1458 - zod: 3.25.76 1459 - 1460 - '@atproto-labs/fetch@0.2.3': 1461 - dependencies: 1462 - '@atproto-labs/pipe': 0.1.1 1463 - 1464 - '@atproto-labs/handle-resolver@0.3.5': 1465 - dependencies: 1466 - '@atproto-labs/simple-store': 0.3.0 1467 - '@atproto-labs/simple-store-memory': 0.1.4 1468 - '@atproto/did': 0.2.4 1469 - zod: 3.25.76 1470 - 1471 - '@atproto-labs/pipe@0.1.1': {} 1472 - 1473 - '@atproto-labs/simple-store-memory@0.1.4': 1474 - dependencies: 1475 - '@atproto-labs/simple-store': 0.3.0 1476 - lru-cache: 10.4.3 1477 - 1478 - '@atproto-labs/simple-store@0.3.0': {} 1479 - 1480 - '@atproto/common-web@0.4.11': 1481 - dependencies: 1482 - '@atproto/lex-data': 0.0.7 1483 - '@atproto/lex-json': 0.0.7 1484 - zod: 3.25.76 1485 - 1486 - '@atproto/common@0.5.7': 1183 + '@atcute/util-fetch@1.0.5': 1487 1184 dependencies: 1488 - '@atproto/common-web': 0.4.11 1489 - '@atproto/lex-cbor': 0.0.7 1490 - '@atproto/lex-data': 0.0.7 1491 - iso-datestring-validator: 2.2.2 1492 - multiformats: 9.9.0 1493 - pino: 8.21.0 1185 + '@badrap/valita': 0.4.6 1494 1186 1495 - '@atproto/crypto@0.4.5': 1496 - dependencies: 1497 - '@noble/curves': 1.9.7 1498 - '@noble/hashes': 1.8.0 1499 - uint8arrays: 3.0.0 1500 - 1501 - '@atproto/did@0.2.4': 1187 + '@atcute/util-text@0.0.1': 1502 1188 dependencies: 1503 - zod: 3.25.76 1504 - 1505 - '@atproto/identity@0.4.10': 1506 - dependencies: 1507 - '@atproto/common-web': 0.4.11 1508 - '@atproto/crypto': 0.4.5 1509 - 1510 - '@atproto/lex-builder@0.0.10': 1511 - dependencies: 1512 - '@atproto/lex-document': 0.0.9 1513 - '@atproto/lex-schema': 0.0.8 1514 - prettier: 3.7.4 1515 - ts-morph: 27.0.2 1516 - tslib: 2.8.1 1517 - 1518 - '@atproto/lex-cbor@0.0.7': 1519 - dependencies: 1520 - '@atproto/lex-data': 0.0.7 1521 - tslib: 2.8.1 1522 - 1523 - '@atproto/lex-client@0.0.8': 1524 - dependencies: 1525 - '@atproto/lex-data': 0.0.7 1526 - '@atproto/lex-json': 0.0.7 1527 - '@atproto/lex-schema': 0.0.8 1528 - tslib: 2.8.1 1529 - 1530 - '@atproto/lex-data@0.0.7': 1531 - dependencies: 1532 - '@atproto/syntax': 0.4.2 1533 - multiformats: 9.9.0 1534 - tslib: 2.8.1 1535 - uint8arrays: 3.0.0 1536 1189 unicode-segmenter: 0.14.5 1537 1190 1538 - '@atproto/lex-document@0.0.9': 1539 - dependencies: 1540 - '@atproto/lex-schema': 0.0.8 1541 - core-js: 3.47.0 1542 - tslib: 2.8.1 1543 - 1544 - '@atproto/lex-installer@0.0.10': 1545 - dependencies: 1546 - '@atproto/lex-builder': 0.0.10 1547 - '@atproto/lex-cbor': 0.0.7 1548 - '@atproto/lex-data': 0.0.7 1549 - '@atproto/lex-document': 0.0.9 1550 - '@atproto/lex-resolver': 0.0.9 1551 - '@atproto/lex-schema': 0.0.8 1552 - '@atproto/syntax': 0.4.2 1553 - tslib: 2.8.1 1554 - 1555 - '@atproto/lex-json@0.0.7': 1556 - dependencies: 1557 - '@atproto/lex-data': 0.0.7 1558 - tslib: 2.8.1 1559 - 1560 - '@atproto/lex-resolver@0.0.9': 1561 - dependencies: 1562 - '@atproto-labs/did-resolver': 0.2.5 1563 - '@atproto/crypto': 0.4.5 1564 - '@atproto/lex-client': 0.0.8 1565 - '@atproto/lex-data': 0.0.7 1566 - '@atproto/lex-document': 0.0.9 1567 - '@atproto/lex-schema': 0.0.8 1568 - '@atproto/repo': 0.8.12 1569 - '@atproto/syntax': 0.4.2 1570 - tslib: 2.8.1 1571 - 1572 - '@atproto/lex-schema@0.0.8': 1573 - dependencies: 1574 - '@atproto/lex-data': 0.0.7 1575 - '@atproto/syntax': 0.4.2 1576 - tslib: 2.8.1 1577 - 1578 - '@atproto/lex@0.0.10': 1579 - dependencies: 1580 - '@atproto/lex-builder': 0.0.10 1581 - '@atproto/lex-client': 0.0.8 1582 - '@atproto/lex-data': 0.0.7 1583 - '@atproto/lex-installer': 0.0.10 1584 - '@atproto/lex-json': 0.0.7 1585 - '@atproto/lex-schema': 0.0.8 1586 - tslib: 2.8.1 1587 - yargs: 17.7.2 1588 - 1589 - '@atproto/lexicon@0.6.0': 1590 - dependencies: 1591 - '@atproto/common-web': 0.4.11 1592 - '@atproto/syntax': 0.4.2 1593 - iso-datestring-validator: 2.2.2 1594 - multiformats: 9.9.0 1595 - zod: 3.25.76 1596 - 1597 - '@atproto/repo@0.8.12': 1598 - dependencies: 1599 - '@atproto/common': 0.5.7 1600 - '@atproto/common-web': 0.4.11 1601 - '@atproto/crypto': 0.4.5 1602 - '@atproto/lexicon': 0.6.0 1603 - '@ipld/dag-cbor': 7.0.3 1604 - multiformats: 9.9.0 1605 - uint8arrays: 3.0.0 1606 - varint: 6.0.0 1607 - zod: 3.25.76 1608 - 1609 - '@atproto/syntax@0.4.2': {} 1191 + '@atcute/varint@1.0.3': {} 1610 1192 1611 1193 '@badrap/valita@0.4.6': {} 1612 1194 ··· 1755 1337 1756 1338 '@humanwhocodes/retry@0.4.3': {} 1757 1339 1758 - '@ipld/dag-cbor@7.0.3': 1759 - dependencies: 1760 - cborg: 1.10.2 1761 - multiformats: 9.9.0 1762 - 1763 - '@isaacs/balanced-match@4.0.1': {} 1764 - 1765 - '@isaacs/brace-expansion@5.0.0': 1766 - dependencies: 1767 - '@isaacs/balanced-match': 4.0.1 1768 - 1769 1340 '@jridgewell/gen-mapping@0.3.13': 1770 1341 dependencies: 1771 1342 '@jridgewell/sourcemap-codec': 1.5.5 ··· 1784 1355 dependencies: 1785 1356 '@jridgewell/resolve-uri': 3.1.2 1786 1357 '@jridgewell/sourcemap-codec': 1.5.5 1787 - 1788 - '@noble/curves@1.9.7': 1789 - dependencies: 1790 - '@noble/hashes': 1.8.0 1791 - 1792 - '@noble/hashes@1.8.0': {} 1793 1358 1794 1359 '@rollup/rollup-android-arm-eabi@4.55.1': 1795 1360 optional: true ··· 1889 1454 vite: 7.3.1(@types/node@24.10.4) 1890 1455 vitefu: 1.1.1(vite@7.3.1(@types/node@24.10.4)) 1891 1456 1892 - '@ts-morph/common@0.28.1': 1893 - dependencies: 1894 - minimatch: 10.1.1 1895 - path-browserify: 1.0.1 1896 - tinyglobby: 0.2.15 1897 - 1898 1457 '@tsconfig/svelte@5.0.6': {} 1899 1458 1900 1459 '@types/estree@1.0.8': {} ··· 1996 1555 '@typescript-eslint/types': 8.52.0 1997 1556 eslint-visitor-keys: 4.2.1 1998 1557 1999 - abort-controller@3.0.0: 2000 - dependencies: 2001 - event-target-shim: 5.0.1 2002 - 2003 1558 acorn-jsx@5.3.2(acorn@8.15.0): 2004 1559 dependencies: 2005 1560 acorn: 8.15.0 ··· 2013 1568 json-schema-traverse: 0.4.1 2014 1569 uri-js: 4.4.1 2015 1570 2016 - ansi-regex@5.0.1: {} 2017 - 2018 1571 ansi-styles@4.3.0: 2019 1572 dependencies: 2020 1573 color-convert: 2.0.1 ··· 2022 1575 argparse@2.0.1: {} 2023 1576 2024 1577 aria-query@5.3.2: {} 2025 - 2026 - atomic-sleep@1.0.0: {} 2027 1578 2028 1579 axobject-query@4.1.0: {} 2029 1580 2030 1581 balanced-match@1.0.2: {} 2031 1582 2032 - base64-js@1.5.1: {} 2033 - 2034 1583 brace-expansion@1.1.12: 2035 1584 dependencies: 2036 1585 balanced-match: 1.0.2 ··· 2040 1589 dependencies: 2041 1590 balanced-match: 1.0.2 2042 1591 2043 - buffer@6.0.3: 2044 - dependencies: 2045 - base64-js: 1.5.1 2046 - ieee754: 1.2.1 2047 - 2048 1592 callsites@3.1.0: {} 2049 1593 2050 - cborg@1.10.2: {} 2051 - 2052 1594 chalk@4.1.2: 2053 1595 dependencies: 2054 1596 ansi-styles: 4.3.0 ··· 2058 1600 dependencies: 2059 1601 readdirp: 4.1.2 2060 1602 2061 - cliui@8.0.1: 2062 - dependencies: 2063 - string-width: 4.2.3 2064 - strip-ansi: 6.0.1 2065 - wrap-ansi: 7.0.0 2066 - 2067 1603 clsx@2.1.1: {} 2068 1604 2069 - code-block-writer@13.0.3: {} 2070 - 2071 1605 color-convert@2.0.1: 2072 1606 dependencies: 2073 1607 color-name: 1.1.4 ··· 2075 1609 color-name@1.1.4: {} 2076 1610 2077 1611 concat-map@0.0.1: {} 2078 - 2079 - core-js@3.47.0: {} 2080 1612 2081 1613 cross-spawn@7.0.6: 2082 1614 dependencies: ··· 2096 1628 2097 1629 devalue@5.6.1: {} 2098 1630 2099 - emoji-regex@8.0.0: {} 2100 - 2101 1631 esbuild@0.27.2: 2102 1632 optionalDependencies: 2103 1633 '@esbuild/aix-ppc64': 0.27.2 ··· 2126 1656 '@esbuild/win32-arm64': 0.27.2 2127 1657 '@esbuild/win32-ia32': 0.27.2 2128 1658 '@esbuild/win32-x64': 0.27.2 2129 - 2130 - escalade@3.2.0: {} 2131 1659 2132 1660 escape-string-regexp@4.0.0: {} 2133 1661 ··· 2221 1749 2222 1750 esutils@2.0.3: {} 2223 1751 2224 - event-target-shim@5.0.1: {} 2225 - 2226 - events@3.3.0: {} 2227 - 2228 1752 fast-deep-equal@3.1.3: {} 2229 1753 2230 1754 fast-json-stable-stringify@2.1.0: {} 2231 1755 2232 1756 fast-levenshtein@2.0.6: {} 2233 - 2234 - fast-redact@3.5.0: {} 2235 1757 2236 1758 fdir@6.5.0(picomatch@4.0.3): 2237 1759 optionalDependencies: ··· 2256 1778 fsevents@2.3.3: 2257 1779 optional: true 2258 1780 2259 - get-caller-file@2.0.5: {} 2260 - 2261 1781 glob-parent@6.0.2: 2262 1782 dependencies: 2263 1783 is-glob: 4.0.3 ··· 2270 1790 2271 1791 has-flag@4.0.0: {} 2272 1792 2273 - ieee754@1.2.1: {} 2274 - 2275 1793 ignore@5.3.2: {} 2276 1794 2277 1795 ignore@7.0.5: {} ··· 2284 1802 imurmurhash@0.1.4: {} 2285 1803 2286 1804 is-extglob@2.1.1: {} 2287 - 2288 - is-fullwidth-code-point@3.0.0: {} 2289 1805 2290 1806 is-glob@4.0.3: 2291 1807 dependencies: ··· 2297 1813 2298 1814 isexe@2.0.0: {} 2299 1815 2300 - iso-datestring-validator@2.2.2: {} 2301 - 2302 1816 js-yaml@4.1.1: 2303 1817 dependencies: 2304 1818 argparse: 2.0.1 ··· 2330 1844 2331 1845 lodash.merge@4.6.2: {} 2332 1846 2333 - lru-cache@10.4.3: {} 2334 - 2335 1847 magic-string@0.30.21: 2336 1848 dependencies: 2337 1849 '@jridgewell/sourcemap-codec': 1.5.5 2338 1850 2339 - minimatch@10.1.1: 2340 - dependencies: 2341 - '@isaacs/brace-expansion': 5.0.0 2342 - 2343 1851 minimatch@3.1.2: 2344 1852 dependencies: 2345 1853 brace-expansion: 1.1.12 ··· 2351 1859 mri@1.2.0: {} 2352 1860 2353 1861 ms@2.1.3: {} 2354 - 2355 - multiformats@9.9.0: {} 2356 1862 2357 1863 nanoid@3.3.11: {} 2358 1864 ··· 2360 1866 2361 1867 obug@2.1.1: {} 2362 1868 2363 - on-exit-leak-free@2.1.2: {} 2364 - 2365 1869 optionator@0.9.4: 2366 1870 dependencies: 2367 1871 deep-is: 0.1.4 ··· 2383 1887 dependencies: 2384 1888 callsites: 3.1.0 2385 1889 2386 - path-browserify@1.0.1: {} 2387 - 2388 1890 path-exists@4.0.0: {} 2389 1891 2390 1892 path-key@3.1.1: {} ··· 2392 1894 picocolors@1.1.1: {} 2393 1895 2394 1896 picomatch@4.0.3: {} 2395 - 2396 - pino-abstract-transport@1.2.0: 2397 - dependencies: 2398 - readable-stream: 4.7.0 2399 - split2: 4.2.0 2400 - 2401 - pino-std-serializers@6.2.2: {} 2402 - 2403 - pino@8.21.0: 2404 - dependencies: 2405 - atomic-sleep: 1.0.0 2406 - fast-redact: 3.5.0 2407 - on-exit-leak-free: 2.1.2 2408 - pino-abstract-transport: 1.2.0 2409 - pino-std-serializers: 6.2.2 2410 - process-warning: 3.0.0 2411 - quick-format-unescaped: 4.0.4 2412 - real-require: 0.2.0 2413 - safe-stable-stringify: 2.5.0 2414 - sonic-boom: 3.8.1 2415 - thread-stream: 2.7.0 2416 1897 2417 1898 postcss-load-config@3.1.4(postcss@8.5.6): 2418 1899 dependencies: ··· 2442 1923 2443 1924 prelude-ls@1.2.1: {} 2444 1925 2445 - prettier@3.7.4: {} 2446 - 2447 - process-warning@3.0.0: {} 2448 - 2449 - process@0.11.10: {} 2450 - 2451 1926 punycode@2.3.1: {} 2452 1927 2453 - quick-format-unescaped@4.0.4: {} 2454 - 2455 - readable-stream@4.7.0: 2456 - dependencies: 2457 - abort-controller: 3.0.0 2458 - buffer: 6.0.3 2459 - events: 3.3.0 2460 - process: 0.11.10 2461 - string_decoder: 1.3.0 2462 - 2463 1928 readdirp@4.1.2: {} 2464 - 2465 - real-require@0.2.0: {} 2466 - 2467 - require-directory@2.1.1: {} 2468 1929 2469 1930 resolve-from@4.0.0: {} 2470 1931 ··· 2503 1964 dependencies: 2504 1965 mri: 1.2.0 2505 1966 2506 - safe-buffer@5.2.1: {} 2507 - 2508 - safe-stable-stringify@2.5.0: {} 2509 - 2510 1967 semver@7.7.3: {} 2511 1968 2512 1969 shebang-command@2.0.0: ··· 2515 1972 2516 1973 shebang-regex@3.0.0: {} 2517 1974 2518 - sonic-boom@3.8.1: 2519 - dependencies: 2520 - atomic-sleep: 1.0.0 2521 - 2522 1975 source-map-js@1.2.1: {} 2523 1976 2524 - split2@4.2.0: {} 2525 - 2526 - string-width@4.2.3: 2527 - dependencies: 2528 - emoji-regex: 8.0.0 2529 - is-fullwidth-code-point: 3.0.0 2530 - strip-ansi: 6.0.1 2531 - 2532 - string_decoder@1.3.0: 2533 - dependencies: 2534 - safe-buffer: 5.2.1 2535 - 2536 - strip-ansi@6.0.1: 2537 - dependencies: 2538 - ansi-regex: 5.0.1 2539 - 2540 1977 strip-json-comments@3.1.1: {} 2541 1978 2542 1979 supports-color@7.2.0: ··· 2584 2021 magic-string: 0.30.21 2585 2022 zimmerframe: 1.1.4 2586 2023 2587 - thread-stream@2.7.0: 2588 - dependencies: 2589 - real-require: 0.2.0 2590 - 2591 2024 tinyglobby@0.2.15: 2592 2025 dependencies: 2593 2026 fdir: 6.5.0(picomatch@4.0.3) ··· 2597 2030 dependencies: 2598 2031 typescript: 5.9.3 2599 2032 2600 - ts-morph@27.0.2: 2601 - dependencies: 2602 - '@ts-morph/common': 0.28.1 2603 - code-block-writer: 13.0.3 2604 - 2605 - tslib@2.8.1: {} 2606 - 2607 2033 type-check@0.4.0: 2608 2034 dependencies: 2609 2035 prelude-ls: 1.2.1 ··· 2621 2047 2622 2048 typescript@5.9.3: {} 2623 2049 2624 - uint8arrays@3.0.0: 2625 - dependencies: 2626 - multiformats: 9.9.0 2627 - 2628 2050 undici-types@7.16.0: {} 2629 2051 2630 2052 unicode-segmenter@0.14.5: {} ··· 2634 2056 punycode: 2.3.1 2635 2057 2636 2058 util-deprecate@1.0.2: {} 2637 - 2638 - varint@6.0.0: {} 2639 2059 2640 2060 vite@7.3.1(@types/node@24.10.4): 2641 2061 dependencies: ··· 2659 2079 2660 2080 word-wrap@1.2.5: {} 2661 2081 2662 - wrap-ansi@7.0.0: 2663 - dependencies: 2664 - ansi-styles: 4.3.0 2665 - string-width: 4.2.3 2666 - strip-ansi: 6.0.1 2667 - 2668 - y18n@5.0.8: {} 2669 - 2670 2082 yaml@1.10.2: {} 2671 2083 2672 - yargs-parser@21.1.1: {} 2673 - 2674 - yargs@17.7.2: 2675 - dependencies: 2676 - cliui: 8.0.1 2677 - escalade: 3.2.0 2678 - get-caller-file: 2.0.5 2679 - require-directory: 2.1.1 2680 - string-width: 4.2.3 2681 - y18n: 5.0.8 2682 - yargs-parser: 21.1.1 2683 - 2684 2084 yocto-queue@0.1.0: {} 2685 2085 2686 2086 zimmerframe@1.1.4: {} 2687 - 2688 - zod@3.25.76: {}
+18 -18
src/App.svelte
··· 1 1 <script lang="ts"> 2 2 3 - import SearchForm from './lib/SearchForm.svelte'; 4 - import RepoStats from './lib/RepoStats.svelte'; 3 + import SearchForm from './lib/SearchForm.svelte'; 4 + import RepoStats from './lib/RepoStats.svelte'; 5 5 6 - let showRepoStats = $state(false); 7 - let did = $state(''); 8 - let pdsUrl = $state(''); 6 + let showRepoStats = $state(false); 7 + let did = $state(''); 8 + let pdsUrl = $state(''); 9 9 10 - const resolvedResult = (didResult: string, pdsUrlResult: string) => { 11 - did = didResult; 12 - pdsUrl = pdsUrlResult; 13 - showRepoStats = true; 14 - }; 10 + const resolvedResult = (didResult: string, pdsUrlResult: string) => { 11 + did = didResult; 12 + pdsUrl = pdsUrlResult; 13 + showRepoStats = true; 14 + }; 15 15 16 16 17 17 </script> 18 18 19 19 <main> 20 - <h1>Repo Walk Example</h1> 20 + <h1>Repo Walk Example</h1> 21 21 22 - <div class="card"> 23 - {#if showRepoStats} 24 - <RepoStats did={did} pdsUrl={pdsUrl}/> 25 - {:else} 26 - <SearchForm resolvedResult={resolvedResult} /> 27 - {/if} 28 - </div> 22 + <div class="card"> 23 + {#if showRepoStats} 24 + <RepoStats did={did} pdsUrl={pdsUrl}/> 25 + {:else} 26 + <SearchForm resolvedResult={resolvedResult}/> 27 + {/if} 28 + </div> 29 29 30 30 </main> 31 31
+31 -30
src/lib/RepoStats.svelte
··· 8 8 const { did, pdsUrl } = $props(); 9 9 10 10 interface CountedCollection { 11 - collection: string; 12 - count: number; 11 + collection: string; 12 + count: number; 13 13 } 14 14 15 15 let loading = $state(true); ··· 28 28 const calculateElapsedTime = () => { 29 29 if (!startTime) return '0.00'; 30 30 const end = endTime ?? Date.now(); 31 - elapsedTime = ((end - startTime) / 1000).toFixed(2); 31 + elapsedTime = ((end - startTime) / 1000).toFixed(2); 32 32 }; 33 33 34 34 const startTimer = () => { ··· 37 37 }, 250); 38 38 }; 39 39 40 - const getRepoStats = async () => { 40 + // Calls the getRepo endpoint to get a .car export to walk the repo 41 + const getRepoStatsViaExport = async () => { 41 42 const rpc = new Client({ handler: simpleFetchHandler({ service: pdsUrl }) }); 42 43 43 44 startTime = Date.now(); ··· 49 50 as: 'stream', 50 51 }); 51 52 52 - if (!result.ok ){ 53 + if (!result.ok) { 53 54 throw new Error(`HTTP error! status: ${result.status}`); 54 55 } 55 56 ··· 58 59 59 60 const car = fromStream(stream); 60 61 61 - try { 62 - for await (const entry of car) { 63 - const data = CBOR.decode(entry.bytes); 64 - if (!data.$type) { 65 - continue; 66 - } 62 + try { 63 + for await (const entry of car) { 64 + const data = CBOR.decode(entry.bytes); 65 + if (!data.$type) { 66 + continue; 67 + } 67 68 68 - let checkForCollection = collections.find(c => c.collection === data.$type); 69 - if (!checkForCollection) { 70 - collections.push({ collection: data.$type, count: 1 }); 71 - }else{ 72 - checkForCollection.count++; 73 - } 74 - downloadedBytes = entry.entryEnd; 75 - totalRecords++; 69 + let checkForCollection = collections.find(c => c.collection === data.$type); 70 + if (!checkForCollection) { 71 + collections.push({ collection: data.$type, count: 1 }); 72 + } else { 73 + checkForCollection.count++; 74 + } 75 + downloadedBytes = entry.entryEnd; 76 + totalRecords++; 77 + } 78 + } finally { 79 + if (interval) { 80 + clearInterval(interval); 81 + interval = null; 82 + calculateElapsedTime(); 83 + } 84 + await car.dispose(); 76 85 } 77 - }finally{ 78 - if (interval){ 79 - clearInterval(interval); 80 - interval = null; 81 - calculateElapsedTime(); 82 - } 83 - await car.dispose(); 84 - } 85 86 86 87 endTime = Date.now(); 87 88 loading = false; 88 89 } catch (err) { 89 90 endTime = Date.now(); 90 91 console.error('Error fetching repo stats:', err); 91 - if (err instanceof Error){ 92 + if (err instanceof Error) { 92 93 error = err.message; 93 - }else{ 94 + } else { 94 95 error = 'Unknown error: can check the console for more details'; 95 96 } 96 97 loading = false; ··· 98 99 }; 99 100 100 101 onMount(() => { 101 - getRepoStats(); 102 + getRepoStatsViaExport(); 102 103 }); 103 104 104 105 </script>
+50 -32
src/lib/SearchForm.svelte
··· 1 1 <script lang="ts"> 2 - import { AtprotoDohHandleResolver } from '@atproto-labs/handle-resolver'; 3 - import { DidResolver } from '@atproto/identity'; 2 + import { 3 + CompositeHandleResolver, 4 + DohJsonHandleResolver, 5 + WellKnownHandleResolver, 6 + CompositeDidDocumentResolver, 7 + PlcDidDocumentResolver, 8 + WebDidDocumentResolver, 9 + } from '@atcute/identity-resolver'; 10 + import { isHandle } from '@atcute/lexicons/syntax'; 11 + import { getPdsEndpoint } from '@atcute/identity'; 4 12 5 - const didResolver = new DidResolver({}); 6 - const handleResolver = new AtprotoDohHandleResolver({ dohEndpoint: 'https://cloudflare-dns.com/dns-query' }); 7 13 8 - let handleToLookUp = $state(''); 9 - let error: string | null = $state(null); 14 + const handleResolver = new CompositeHandleResolver({ 15 + methods: { 16 + dns: new DohJsonHandleResolver({ dohUrl: 'https://cloudflare-dns.com/dns-query' }), 17 + http: new WellKnownHandleResolver(), 18 + }, 19 + }); 10 20 11 - let { resolvedResult } = $props(); 12 21 22 + const didResolver = new CompositeDidDocumentResolver({ 23 + methods: { 24 + plc: new PlcDidDocumentResolver(), 25 + web: new WebDidDocumentResolver(), 26 + }, 27 + }); 13 28 14 - const searchForUser = async (event: Event) => { 15 - event.preventDefault(); 16 - error = null; 29 + let handleToLookUp = $state(''); 30 + let error: string | null = $state(null); 17 31 18 - let did = await handleResolver.resolve(handleToLookUp); 19 - if (did === null) { 20 - error = 'No result found'; 21 - return; 22 - } 32 + let { resolvedResult } = $props(); 23 33 24 - const didDoc = await didResolver.resolve(did); 25 - if (!didDoc){ 26 - error = 'No did doc found'; 27 - return; 28 - } 29 - if (!didDoc.service){ 30 - error = 'No services?'; 31 - return; 32 - } 33 - const pds = didDoc?.service?.find(s => s.id === '#atproto_pds'); 34 - if (!pds){ 35 - error = 'No pds service found????'; 36 - return; 37 - } 38 - const pdsUrl = pds.serviceEndpoint; 39 - resolvedResult(did, pdsUrl); 40 - }; 34 + 35 + const searchForUser = async (event: Event) => { 36 + event.preventDefault(); 37 + error = null; 38 + try { 39 + if (!isHandle(handleToLookUp)) { 40 + error = 'Not a valid handle'; 41 + return; 42 + } 43 + 44 + let did = await handleResolver.resolve(handleToLookUp); 41 45 46 + const didDoc = await didResolver.resolve(did); 47 + const pdsUrl = getPdsEndpoint(didDoc); 48 + 49 + resolvedResult(did, pdsUrl); 50 + }catch(e){ 51 + if (e instanceof Error) { 52 + error = e.message; 53 + } 54 + } 55 + }; 42 56 43 57 44 58 </script> ··· 48 62 <input bind:value={handleToLookUp} id="search" type="text" placeholder="alice.bsky.social"/> 49 63 <button>Lookup</button> 50 64 <br> 65 + <label> 66 + slowpoke (uses web calls to walk the repository to show you the speed difference) 67 + <input type="checkbox"/> 68 + </label> 51 69 {#if error} 52 70 <p style="color: red;">Error: {error}</p> 53 71 {/if}