forked from pdsls.dev/pdsls
this repo has no description

update new oauth flow

juli.ee ffcfbace 709ca73d

verified
Changed files
+88 -97
src
components
utils
+4 -4
package.json
··· 9 "serve": "vite preview" 10 }, 11 "devDependencies": { 12 - "@iconify-json/lucide": "^1.2.70", 13 "@iconify/tailwind4": "^1.0.6", 14 "@tailwindcss/vite": "^4.1.16", 15 "prettier": "^3.6.2", ··· 29 "@atcute/identity": "^1.1.1", 30 "@atcute/identity-resolver": "^1.1.4", 31 "@atcute/leaflet": "^1.0.11", 32 - "@atcute/lexicon-doc": "^1.1.3", 33 "@atcute/lexicon-resolver": "^0.1.3", 34 "@atcute/lexicons": "^1.2.2", 35 - "@atcute/oauth-browser-client": "^1.0.27", 36 "@atcute/repo": "^0.1.0", 37 "@atcute/tangled": "^1.0.10", 38 "@atcute/tid": "^1.0.3", ··· 48 "@solidjs/meta": "^0.29.4", 49 "@solidjs/router": "^0.15.3", 50 "codemirror": "^6.0.2", 51 - "solid-js": "^1.9.9" 52 }, 53 "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" 54 }
··· 9 "serve": "vite preview" 10 }, 11 "devDependencies": { 12 + "@iconify-json/lucide": "^1.2.71", 13 "@iconify/tailwind4": "^1.0.6", 14 "@tailwindcss/vite": "^4.1.16", 15 "prettier": "^3.6.2", ··· 29 "@atcute/identity": "^1.1.1", 30 "@atcute/identity-resolver": "^1.1.4", 31 "@atcute/leaflet": "^1.0.11", 32 + "@atcute/lexicon-doc": "^1.1.4", 33 "@atcute/lexicon-resolver": "^0.1.3", 34 "@atcute/lexicons": "^1.2.2", 35 + "@atcute/oauth-browser-client": "^2.0.1", 36 "@atcute/repo": "^0.1.0", 37 "@atcute/tangled": "^1.0.10", 38 "@atcute/tid": "^1.0.3", ··· 48 "@solidjs/meta": "^0.29.4", 49 "@solidjs/router": "^0.15.3", 50 "codemirror": "^6.0.2", 51 + "solid-js": "^1.9.10" 52 }, 53 "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" 54 }
+67 -72
pnpm-lock.yaml
··· 33 specifier: ^1.0.11 34 version: 1.0.11 35 '@atcute/lexicon-doc': 36 - specifier: ^1.1.3 37 - version: 1.1.3 38 '@atcute/lexicon-resolver': 39 specifier: ^0.1.3 40 version: 0.1.3(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.1))(@atcute/identity@1.1.1) ··· 42 specifier: ^1.2.2 43 version: 1.2.2 44 '@atcute/oauth-browser-client': 45 - specifier: ^1.0.27 46 - version: 1.0.27 47 '@atcute/repo': 48 specifier: ^0.1.0 49 version: 0.1.0 ··· 70 version: 6.38.6 71 '@fsegurai/codemirror-theme-basic-dark': 72 specifier: ^6.2.2 73 - version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.2) 74 '@fsegurai/codemirror-theme-basic-light': 75 specifier: ^6.2.2 76 - version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.2) 77 '@mary/exif-rm': 78 specifier: jsr:^0.2.2 79 version: '@jsr/mary__exif-rm@0.2.2' ··· 82 version: 0.5.2 83 '@solidjs/meta': 84 specifier: ^0.29.4 85 - version: 0.29.4(solid-js@1.9.9) 86 '@solidjs/router': 87 specifier: ^0.15.3 88 - version: 0.15.3(solid-js@1.9.9) 89 codemirror: 90 specifier: ^6.0.2 91 version: 6.0.2 92 solid-js: 93 - specifier: ^1.9.9 94 - version: 1.9.9 95 devDependencies: 96 '@iconify-json/lucide': 97 - specifier: ^1.2.70 98 - version: 1.2.70 99 '@iconify/tailwind4': 100 specifier: ^1.0.6 101 version: 1.0.6(tailwindcss@4.1.16) ··· 122 version: 7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2) 123 vite-plugin-solid: 124 specifier: ^2.11.10 125 - version: 2.11.10(solid-js@1.9.9)(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)) 126 127 packages: 128 ··· 170 '@atcute/leaflet@1.0.11': 171 resolution: {integrity: sha512-PmhBIltPD4DqR737J412ePwtfyBeC/Xr9R+s/d55Aq0kLPo4aBWt+JDb40Mh4JCGGxiz6gu9HFCCZeaVLrL4Dw==} 172 173 - '@atcute/lexicon-doc@1.1.3': 174 - resolution: {integrity: sha512-HlQBmB4NCZPzREyVzr7lzjRxSiRHook2xfa7DgA3dk3oYZ+KnnPEtS6M1sAmAAddtUdrOrJ+0xJPQHkfElZmpQ==} 175 176 '@atcute/lexicon-resolver@0.1.3': 177 resolution: {integrity: sha512-4AOS3KKm60GtBfl7ue/35xwZlylAuX5V2xmXnAmNoiN3vIauNkYawwRqgtni5q+EIV9R7p4D8tzkv58NaZ8fEQ==} ··· 188 '@atcute/multibase@1.1.6': 189 resolution: {integrity: sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==} 190 191 - '@atcute/oauth-browser-client@1.0.27': 192 - resolution: {integrity: sha512-Ng1tCOTMLgFHHoIHXTtCZR1/ND62an1qxPX2kBoUzkxxd7iCP7IBYYqOiKyJYT5n1R4zS+s29hFS4t9mxXa5kQ==} 193 194 '@atcute/repo@0.1.0': 195 resolution: {integrity: sha512-INiYAuma8dydBu7cqd2WVpcXh3mzhIepYBUqFWAK5MqMulPRLTRCc/9GW3G9pxYrOdlvLCVamG2Jf8XK0nuFEw==} ··· 634 '@codemirror/view': ^6.0.0 635 '@lezer/highlight': ^1.0.0 636 637 - '@iconify-json/lucide@1.2.70': 638 - resolution: {integrity: sha512-56s9NdBKgshywVY1e4gOcxzAbU1J649e/jLHBJU1tyNqRs7mFLVEGwj2mmzHJ5YAZB5Tsngi4f/ocTBPlG06ZA==} 639 640 '@iconify/tailwind4@1.0.6': 641 resolution: {integrity: sha512-43ZXe+bC7CuE2LCgROdqbQeFYJi/J7L/k1UpSy8KDQlWVsWxPzLSWbWhlJx4uRYLOh1NRyw02YlDOgzBOFNd+A==} ··· 670 '@lezer/common@1.3.0': 671 resolution: {integrity: sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==} 672 673 - '@lezer/highlight@1.2.2': 674 - resolution: {integrity: sha512-z8TQwaBXXQIvG6i2g3e9cgMwUUXu9Ib7jo2qRRggdhwKpM56Dw3PM3wmexn+EGaaOZ7az0K7sjc3/gcGW7sz7A==} 675 676 '@lezer/json@1.0.3': 677 resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} ··· 924 engines: {node: '>=0.4.0'} 925 hasBin: true 926 927 - babel-plugin-jsx-dom-expressions@0.40.1: 928 - resolution: {integrity: sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA==} 929 peerDependencies: 930 '@babel/core': ^7.20.12 931 932 - babel-preset-solid@1.9.9: 933 - resolution: {integrity: sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw==} 934 peerDependencies: 935 '@babel/core': ^7.0.0 936 - solid-js: ^1.9.8 937 peerDependenciesMeta: 938 solid-js: 939 optional: true 940 941 - baseline-browser-mapping@2.8.20: 942 - resolution: {integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==} 943 hasBin: true 944 945 browserslist@4.27.0: ··· 981 resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 982 engines: {node: '>=8'} 983 984 - electron-to-chromium@1.5.240: 985 - resolution: {integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==} 986 987 enhanced-resolve@5.18.3: 988 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} ··· 1171 engines: {node: ^18 || >=20} 1172 hasBin: true 1173 1174 - node-releases@2.0.26: 1175 - resolution: {integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==} 1176 1177 package-manager-detector@1.5.0: 1178 resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} ··· 1295 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 1296 engines: {node: '>=10'} 1297 1298 - solid-js@1.9.9: 1299 - resolution: {integrity: sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA==} 1300 1301 solid-refresh@0.6.3: 1302 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 1346 peerDependencies: 1347 browserslist: '>= 4.21.0' 1348 1349 - validate-html-nesting@1.2.3: 1350 - resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==} 1351 - 1352 vite-plugin-solid@2.11.10: 1353 resolution: {integrity: sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw==} 1354 peerDependencies: ··· 1500 '@atcute/atproto': 3.1.8 1501 '@atcute/lexicons': 1.2.2 1502 1503 - '@atcute/lexicon-doc@1.1.3': 1504 dependencies: 1505 '@badrap/valita': 0.4.6 1506 ··· 1512 '@atcute/crypto': 2.2.5 1513 '@atcute/identity': 1.1.1 1514 '@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.1) 1515 - '@atcute/lexicon-doc': 1.1.3 1516 '@atcute/lexicons': 1.2.2 1517 '@atcute/repo': 0.1.0 1518 '@atcute/uint8array': 1.0.5 ··· 1534 dependencies: 1535 '@atcute/uint8array': 1.0.5 1536 1537 - '@atcute/oauth-browser-client@1.0.27': 1538 dependencies: 1539 '@atcute/client': 4.0.5 1540 '@atcute/identity': 1.1.1 1541 '@atcute/lexicons': 1.2.2 1542 '@atcute/multibase': 1.1.6 1543 '@atcute/uint8array': 1.0.5 ··· 1705 '@codemirror/state': 6.5.2 1706 '@codemirror/view': 6.38.6 1707 '@lezer/common': 1.3.0 1708 - '@lezer/highlight': 1.2.2 1709 '@lezer/lr': 1.4.2 1710 style-mod: 4.1.3 1711 ··· 1882 '@esbuild/win32-x64@0.25.11': 1883 optional: true 1884 1885 - '@fsegurai/codemirror-theme-basic-dark@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.2)': 1886 dependencies: 1887 '@codemirror/language': 6.11.3 1888 '@codemirror/state': 6.5.2 1889 '@codemirror/view': 6.38.6 1890 - '@lezer/highlight': 1.2.2 1891 1892 - '@fsegurai/codemirror-theme-basic-light@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.2)': 1893 dependencies: 1894 '@codemirror/language': 6.11.3 1895 '@codemirror/state': 6.5.2 1896 '@codemirror/view': 6.38.6 1897 - '@lezer/highlight': 1.2.2 1898 1899 - '@iconify-json/lucide@1.2.70': 1900 dependencies: 1901 '@iconify/types': 2.0.0 1902 ··· 1946 1947 '@lezer/common@1.3.0': {} 1948 1949 - '@lezer/highlight@1.2.2': 1950 dependencies: 1951 '@lezer/common': 1.3.0 1952 1953 '@lezer/json@1.0.3': 1954 dependencies: 1955 '@lezer/common': 1.3.0 1956 - '@lezer/highlight': 1.2.2 1957 '@lezer/lr': 1.4.2 1958 1959 '@lezer/lr@1.4.2': ··· 2036 '@atcute/cbor': 2.2.7 2037 nanoevents: 9.1.0 2038 2039 - '@solidjs/meta@0.29.4(solid-js@1.9.9)': 2040 dependencies: 2041 - solid-js: 1.9.9 2042 2043 - '@solidjs/router@0.15.3(solid-js@1.9.9)': 2044 dependencies: 2045 - solid-js: 1.9.9 2046 2047 '@standard-schema/spec@1.0.0': {} 2048 ··· 2144 2145 acorn@8.15.0: {} 2146 2147 - babel-plugin-jsx-dom-expressions@0.40.1(@babel/core@7.28.5): 2148 dependencies: 2149 '@babel/core': 7.28.5 2150 '@babel/helper-module-imports': 7.18.6 ··· 2152 '@babel/types': 7.28.5 2153 html-entities: 2.3.3 2154 parse5: 7.3.0 2155 - validate-html-nesting: 1.2.3 2156 2157 - babel-preset-solid@1.9.9(@babel/core@7.28.5)(solid-js@1.9.9): 2158 dependencies: 2159 '@babel/core': 7.28.5 2160 - babel-plugin-jsx-dom-expressions: 0.40.1(@babel/core@7.28.5) 2161 optionalDependencies: 2162 - solid-js: 1.9.9 2163 2164 - baseline-browser-mapping@2.8.20: {} 2165 2166 browserslist@4.27.0: 2167 dependencies: 2168 - baseline-browser-mapping: 2.8.20 2169 caniuse-lite: 1.0.30001751 2170 - electron-to-chromium: 1.5.240 2171 - node-releases: 2.0.26 2172 update-browserslist-db: 1.1.4(browserslist@4.27.0) 2173 2174 caniuse-lite@1.0.30001751: {} ··· 2199 2200 detect-libc@2.1.2: {} 2201 2202 - electron-to-chromium@1.5.240: {} 2203 2204 enhanced-resolve@5.18.3: 2205 dependencies: ··· 2385 2386 nanoid@5.1.6: {} 2387 2388 - node-releases@2.0.26: {} 2389 2390 package-manager-detector@1.5.0: {} 2391 ··· 2471 2472 seroval@1.3.2: {} 2473 2474 - solid-js@1.9.9: 2475 dependencies: 2476 csstype: 3.1.3 2477 seroval: 1.3.2 2478 seroval-plugins: 1.3.3(seroval@1.3.2) 2479 2480 - solid-refresh@0.6.3(solid-js@1.9.9): 2481 dependencies: 2482 '@babel/generator': 7.28.5 2483 '@babel/helper-module-imports': 7.27.1 2484 '@babel/types': 7.28.5 2485 - solid-js: 1.9.9 2486 transitivePeerDependencies: 2487 - supports-color 2488 ··· 2522 escalade: 3.2.0 2523 picocolors: 1.1.1 2524 2525 - validate-html-nesting@1.2.3: {} 2526 - 2527 - vite-plugin-solid@2.11.10(solid-js@1.9.9)(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)): 2528 dependencies: 2529 '@babel/core': 7.28.5 2530 '@types/babel__core': 7.20.5 2531 - babel-preset-solid: 1.9.9(@babel/core@7.28.5)(solid-js@1.9.9) 2532 merge-anything: 5.1.7 2533 - solid-js: 1.9.9 2534 - solid-refresh: 0.6.3(solid-js@1.9.9) 2535 vite: 7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2) 2536 vitefu: 1.1.1(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)) 2537 transitivePeerDependencies:
··· 33 specifier: ^1.0.11 34 version: 1.0.11 35 '@atcute/lexicon-doc': 36 + specifier: ^1.1.4 37 + version: 1.1.4 38 '@atcute/lexicon-resolver': 39 specifier: ^0.1.3 40 version: 0.1.3(@atcute/identity-resolver@1.1.4(@atcute/identity@1.1.1))(@atcute/identity@1.1.1) ··· 42 specifier: ^1.2.2 43 version: 1.2.2 44 '@atcute/oauth-browser-client': 45 + specifier: ^2.0.1 46 + version: 2.0.1 47 '@atcute/repo': 48 specifier: ^0.1.0 49 version: 0.1.0 ··· 70 version: 6.38.6 71 '@fsegurai/codemirror-theme-basic-dark': 72 specifier: ^6.2.2 73 + version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3) 74 '@fsegurai/codemirror-theme-basic-light': 75 specifier: ^6.2.2 76 + version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3) 77 '@mary/exif-rm': 78 specifier: jsr:^0.2.2 79 version: '@jsr/mary__exif-rm@0.2.2' ··· 82 version: 0.5.2 83 '@solidjs/meta': 84 specifier: ^0.29.4 85 + version: 0.29.4(solid-js@1.9.10) 86 '@solidjs/router': 87 specifier: ^0.15.3 88 + version: 0.15.3(solid-js@1.9.10) 89 codemirror: 90 specifier: ^6.0.2 91 version: 6.0.2 92 solid-js: 93 + specifier: ^1.9.10 94 + version: 1.9.10 95 devDependencies: 96 '@iconify-json/lucide': 97 + specifier: ^1.2.71 98 + version: 1.2.71 99 '@iconify/tailwind4': 100 specifier: ^1.0.6 101 version: 1.0.6(tailwindcss@4.1.16) ··· 122 version: 7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2) 123 vite-plugin-solid: 124 specifier: ^2.11.10 125 + version: 2.11.10(solid-js@1.9.10)(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)) 126 127 packages: 128 ··· 170 '@atcute/leaflet@1.0.11': 171 resolution: {integrity: sha512-PmhBIltPD4DqR737J412ePwtfyBeC/Xr9R+s/d55Aq0kLPo4aBWt+JDb40Mh4JCGGxiz6gu9HFCCZeaVLrL4Dw==} 172 173 + '@atcute/lexicon-doc@1.1.4': 174 + resolution: {integrity: sha512-OL0fsXtbnN/KwCq/L3nWGvOCdSHV0NWTatgLUIPt+T9AhcziFNaXAbbjvVHdflr3ZaLh3ksleHK0J789UBhlWQ==} 175 176 '@atcute/lexicon-resolver@0.1.3': 177 resolution: {integrity: sha512-4AOS3KKm60GtBfl7ue/35xwZlylAuX5V2xmXnAmNoiN3vIauNkYawwRqgtni5q+EIV9R7p4D8tzkv58NaZ8fEQ==} ··· 188 '@atcute/multibase@1.1.6': 189 resolution: {integrity: sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==} 190 191 + '@atcute/oauth-browser-client@2.0.1': 192 + resolution: {integrity: sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg==} 193 194 '@atcute/repo@0.1.0': 195 resolution: {integrity: sha512-INiYAuma8dydBu7cqd2WVpcXh3mzhIepYBUqFWAK5MqMulPRLTRCc/9GW3G9pxYrOdlvLCVamG2Jf8XK0nuFEw==} ··· 634 '@codemirror/view': ^6.0.0 635 '@lezer/highlight': ^1.0.0 636 637 + '@iconify-json/lucide@1.2.71': 638 + resolution: {integrity: sha512-KL+3JHW+wN8QqT3CN+7e1SzTe+gIunFBuUICtVmdCmdVRx+MdGNkX4xJhXoYHfhYO2azrEhoGPG+It9k30aZkw==} 639 640 '@iconify/tailwind4@1.0.6': 641 resolution: {integrity: sha512-43ZXe+bC7CuE2LCgROdqbQeFYJi/J7L/k1UpSy8KDQlWVsWxPzLSWbWhlJx4uRYLOh1NRyw02YlDOgzBOFNd+A==} ··· 670 '@lezer/common@1.3.0': 671 resolution: {integrity: sha512-L9X8uHCYU310o99L3/MpJKYxPzXPOS7S0NmBaM7UO/x2Kb2WbmMLSkfvdr1KxRIFYOpbY0Jhn7CfLSUDzL8arQ==} 672 673 + '@lezer/highlight@1.2.3': 674 + resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} 675 676 '@lezer/json@1.0.3': 677 resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} ··· 924 engines: {node: '>=0.4.0'} 925 hasBin: true 926 927 + babel-plugin-jsx-dom-expressions@0.40.3: 928 + resolution: {integrity: sha512-5HOwwt0BYiv/zxl7j8Pf2bGL6rDXfV6nUhLs8ygBX+EFJXzBPHM/euj9j/6deMZ6wa52Wb2PBaAV5U/jKwIY1w==} 929 peerDependencies: 930 '@babel/core': ^7.20.12 931 932 + babel-preset-solid@1.9.10: 933 + resolution: {integrity: sha512-HCelrgua/Y+kqO8RyL04JBWS/cVdrtUv/h45GntgQY+cJl4eBcKkCDV3TdMjtKx1nXwRaR9QXslM/Npm1dxdZQ==} 934 peerDependencies: 935 '@babel/core': ^7.0.0 936 + solid-js: ^1.9.10 937 peerDependenciesMeta: 938 solid-js: 939 optional: true 940 941 + baseline-browser-mapping@2.8.21: 942 + resolution: {integrity: sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==} 943 hasBin: true 944 945 browserslist@4.27.0: ··· 981 resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 982 engines: {node: '>=8'} 983 984 + electron-to-chromium@1.5.243: 985 + resolution: {integrity: sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==} 986 987 enhanced-resolve@5.18.3: 988 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} ··· 1171 engines: {node: ^18 || >=20} 1172 hasBin: true 1173 1174 + node-releases@2.0.27: 1175 + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} 1176 1177 package-manager-detector@1.5.0: 1178 resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} ··· 1295 resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} 1296 engines: {node: '>=10'} 1297 1298 + solid-js@1.9.10: 1299 + resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==} 1300 1301 solid-refresh@0.6.3: 1302 resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} ··· 1346 peerDependencies: 1347 browserslist: '>= 4.21.0' 1348 1349 vite-plugin-solid@2.11.10: 1350 resolution: {integrity: sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw==} 1351 peerDependencies: ··· 1497 '@atcute/atproto': 3.1.8 1498 '@atcute/lexicons': 1.2.2 1499 1500 + '@atcute/lexicon-doc@1.1.4': 1501 dependencies: 1502 '@badrap/valita': 0.4.6 1503 ··· 1509 '@atcute/crypto': 2.2.5 1510 '@atcute/identity': 1.1.1 1511 '@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.1) 1512 + '@atcute/lexicon-doc': 1.1.4 1513 '@atcute/lexicons': 1.2.2 1514 '@atcute/repo': 0.1.0 1515 '@atcute/uint8array': 1.0.5 ··· 1531 dependencies: 1532 '@atcute/uint8array': 1.0.5 1533 1534 + '@atcute/oauth-browser-client@2.0.1': 1535 dependencies: 1536 '@atcute/client': 4.0.5 1537 '@atcute/identity': 1.1.1 1538 + '@atcute/identity-resolver': 1.1.4(@atcute/identity@1.1.1) 1539 '@atcute/lexicons': 1.2.2 1540 '@atcute/multibase': 1.1.6 1541 '@atcute/uint8array': 1.0.5 ··· 1703 '@codemirror/state': 6.5.2 1704 '@codemirror/view': 6.38.6 1705 '@lezer/common': 1.3.0 1706 + '@lezer/highlight': 1.2.3 1707 '@lezer/lr': 1.4.2 1708 style-mod: 4.1.3 1709 ··· 1880 '@esbuild/win32-x64@0.25.11': 1881 optional: true 1882 1883 + '@fsegurai/codemirror-theme-basic-dark@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3)': 1884 dependencies: 1885 '@codemirror/language': 6.11.3 1886 '@codemirror/state': 6.5.2 1887 '@codemirror/view': 6.38.6 1888 + '@lezer/highlight': 1.2.3 1889 1890 + '@fsegurai/codemirror-theme-basic-light@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.6)(@lezer/highlight@1.2.3)': 1891 dependencies: 1892 '@codemirror/language': 6.11.3 1893 '@codemirror/state': 6.5.2 1894 '@codemirror/view': 6.38.6 1895 + '@lezer/highlight': 1.2.3 1896 1897 + '@iconify-json/lucide@1.2.71': 1898 dependencies: 1899 '@iconify/types': 2.0.0 1900 ··· 1944 1945 '@lezer/common@1.3.0': {} 1946 1947 + '@lezer/highlight@1.2.3': 1948 dependencies: 1949 '@lezer/common': 1.3.0 1950 1951 '@lezer/json@1.0.3': 1952 dependencies: 1953 '@lezer/common': 1.3.0 1954 + '@lezer/highlight': 1.2.3 1955 '@lezer/lr': 1.4.2 1956 1957 '@lezer/lr@1.4.2': ··· 2034 '@atcute/cbor': 2.2.7 2035 nanoevents: 9.1.0 2036 2037 + '@solidjs/meta@0.29.4(solid-js@1.9.10)': 2038 dependencies: 2039 + solid-js: 1.9.10 2040 2041 + '@solidjs/router@0.15.3(solid-js@1.9.10)': 2042 dependencies: 2043 + solid-js: 1.9.10 2044 2045 '@standard-schema/spec@1.0.0': {} 2046 ··· 2142 2143 acorn@8.15.0: {} 2144 2145 + babel-plugin-jsx-dom-expressions@0.40.3(@babel/core@7.28.5): 2146 dependencies: 2147 '@babel/core': 7.28.5 2148 '@babel/helper-module-imports': 7.18.6 ··· 2150 '@babel/types': 7.28.5 2151 html-entities: 2.3.3 2152 parse5: 7.3.0 2153 2154 + babel-preset-solid@1.9.10(@babel/core@7.28.5)(solid-js@1.9.10): 2155 dependencies: 2156 '@babel/core': 7.28.5 2157 + babel-plugin-jsx-dom-expressions: 0.40.3(@babel/core@7.28.5) 2158 optionalDependencies: 2159 + solid-js: 1.9.10 2160 2161 + baseline-browser-mapping@2.8.21: {} 2162 2163 browserslist@4.27.0: 2164 dependencies: 2165 + baseline-browser-mapping: 2.8.21 2166 caniuse-lite: 1.0.30001751 2167 + electron-to-chromium: 1.5.243 2168 + node-releases: 2.0.27 2169 update-browserslist-db: 1.1.4(browserslist@4.27.0) 2170 2171 caniuse-lite@1.0.30001751: {} ··· 2196 2197 detect-libc@2.1.2: {} 2198 2199 + electron-to-chromium@1.5.243: {} 2200 2201 enhanced-resolve@5.18.3: 2202 dependencies: ··· 2382 2383 nanoid@5.1.6: {} 2384 2385 + node-releases@2.0.27: {} 2386 2387 package-manager-detector@1.5.0: {} 2388 ··· 2468 2469 seroval@1.3.2: {} 2470 2471 + solid-js@1.9.10: 2472 dependencies: 2473 csstype: 3.1.3 2474 seroval: 1.3.2 2475 seroval-plugins: 1.3.3(seroval@1.3.2) 2476 2477 + solid-refresh@0.6.3(solid-js@1.9.10): 2478 dependencies: 2479 '@babel/generator': 7.28.5 2480 '@babel/helper-module-imports': 7.27.1 2481 '@babel/types': 7.28.5 2482 + solid-js: 1.9.10 2483 transitivePeerDependencies: 2484 - supports-color 2485 ··· 2519 escalade: 3.2.0 2520 picocolors: 1.1.1 2521 2522 + vite-plugin-solid@2.11.10(solid-js@1.9.10)(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)): 2523 dependencies: 2524 '@babel/core': 7.28.5 2525 '@types/babel__core': 7.20.5 2526 + babel-preset-solid: 1.9.10(@babel/core@7.28.5)(solid-js@1.9.10) 2527 merge-anything: 5.1.7 2528 + solid-js: 1.9.10 2529 + solid-refresh: 0.6.3(solid-js@1.9.10) 2530 vite: 7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2) 2531 vitefu: 1.1.1(vite@7.1.12(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.19.2)) 2532 transitivePeerDependencies:
+1 -3
src/components/account.tsx
··· 5 deleteStoredSession, 6 getSession, 7 OAuthUserAgent, 8 - resolveFromIdentity, 9 } from "@atcute/oauth-browser-client"; 10 import { A } from "@solidjs/router"; 11 import { createSignal, For, onMount, Show } from "solid-js"; ··· 53 localStorage.setItem("lastSignedIn", did); 54 await retrieveSession(); 55 } catch { 56 - const resolved = await resolveFromIdentity(did); 57 const authUrl = await createAuthorizationUrl({ 58 scope: import.meta.env.VITE_OAUTH_SCOPE, 59 - ...resolved, 60 }); 61 62 await new Promise((resolve) => setTimeout(resolve, 250));
··· 5 deleteStoredSession, 6 getSession, 7 OAuthUserAgent, 8 } from "@atcute/oauth-browser-client"; 9 import { A } from "@solidjs/router"; 10 import { createSignal, For, onMount, Show } from "solid-js"; ··· 52 localStorage.setItem("lastSignedIn", did); 53 await retrieveSession(); 54 } catch { 55 const authUrl = await createAuthorizationUrl({ 56 scope: import.meta.env.VITE_OAUTH_SCOPE, 57 + target: { type: "account", identifier: did }, 58 }); 59 60 await new Promise((resolve) => setTimeout(resolve, 250));
+14 -16
src/components/login.tsx
··· 1 import { Client } from "@atcute/client"; 2 import { Did } from "@atcute/lexicons"; 3 - import { isHandle } from "@atcute/lexicons/syntax"; 4 import { 5 configureOAuth, 6 createAuthorizationUrl, 7 finalizeAuthorization, 8 getSession, 9 OAuthUserAgent, 10 - resolveFromIdentity, 11 - resolveFromService, 12 type Session, 13 } from "@atcute/oauth-browser-client"; 14 import { createSignal, Show } from "solid-js"; 15 16 configureOAuth({ 17 metadata: { 18 client_id: import.meta.env.VITE_OAUTH_CLIENT_ID, 19 redirect_uri: import.meta.env.VITE_OAUTH_REDIRECT_URL, 20 }, 21 }); 22 23 export const [agent, setAgent] = createSignal<OAuthUserAgent | undefined>(); ··· 37 try { 38 setNotice(""); 39 if (!handle) return; 40 - let resolved; 41 - if (!isHandle(handle)) { 42 - setNotice(`Resolving your service...`); 43 - resolved = await resolveFromService(handle); 44 - } else { 45 - setNotice(`Resolving your identity...`); 46 - resolved = await resolveFromIdentity(handle); 47 - } 48 - 49 setNotice(`Contacting your data server...`); 50 const authUrl = await createAuthorizationUrl({ 51 scope: import.meta.env.VITE_OAUTH_SCOPE, 52 - ...resolved, 53 }); 54 55 setNotice(`Redirecting...`); ··· 101 if (params.has("state") && (params.has("code") || params.has("error"))) { 102 history.replaceState(null, "", location.pathname + location.search); 103 104 - const session = await finalizeAuthorization(params); 105 - const did = session.info.sub; 106 107 localStorage.setItem("lastSignedIn", did); 108 ··· 110 const newSessions: Sessions = sessions ? JSON.parse(sessions) : { [did]: {} }; 111 newSessions[did] = { signedIn: true }; 112 localStorage.setItem("sessions", JSON.stringify(newSessions)); 113 - return session; 114 } else { 115 const lastSignedIn = localStorage.getItem("lastSignedIn"); 116
··· 1 import { Client } from "@atcute/client"; 2 import { Did } from "@atcute/lexicons"; 3 + import { isDid, isHandle } from "@atcute/lexicons/syntax"; 4 import { 5 configureOAuth, 6 createAuthorizationUrl, 7 + defaultIdentityResolver, 8 finalizeAuthorization, 9 getSession, 10 OAuthUserAgent, 11 type Session, 12 } from "@atcute/oauth-browser-client"; 13 import { createSignal, Show } from "solid-js"; 14 + import { didDocumentResolver, handleResolver } from "../utils/api"; 15 16 configureOAuth({ 17 metadata: { 18 client_id: import.meta.env.VITE_OAUTH_CLIENT_ID, 19 redirect_uri: import.meta.env.VITE_OAUTH_REDIRECT_URL, 20 }, 21 + identityResolver: defaultIdentityResolver({ 22 + handleResolver: handleResolver, 23 + didDocumentResolver: didDocumentResolver, 24 + }), 25 }); 26 27 export const [agent, setAgent] = createSignal<OAuthUserAgent | undefined>(); ··· 41 try { 42 setNotice(""); 43 if (!handle) return; 44 setNotice(`Contacting your data server...`); 45 const authUrl = await createAuthorizationUrl({ 46 scope: import.meta.env.VITE_OAUTH_SCOPE, 47 + target: 48 + isHandle(handle) || isDid(handle) ? 49 + { type: "account", identifier: handle } 50 + : { type: "pds", serviceUrl: handle }, 51 }); 52 53 setNotice(`Redirecting...`); ··· 99 if (params.has("state") && (params.has("code") || params.has("error"))) { 100 history.replaceState(null, "", location.pathname + location.search); 101 102 + const auth = await finalizeAuthorization(params); 103 + const did = auth.session.info.sub; 104 105 localStorage.setItem("lastSignedIn", did); 106 ··· 108 const newSessions: Sessions = sessions ? JSON.parse(sessions) : { [did]: {} }; 109 newSessions[did] = { signedIn: true }; 110 localStorage.setItem("sessions", JSON.stringify(newSessions)); 111 + return auth.session; 112 } else { 113 const lastSignedIn = localStorage.getItem("lastSignedIn"); 114
+2 -2
src/utils/api.ts
··· 19 import { createStore } from "solid-js/store"; 20 import { setPDS } from "../components/navbar"; 21 22 - const didDocumentResolver = new CompositeDidDocumentResolver({ 23 methods: { 24 plc: new PlcDidDocumentResolver({ 25 apiUrl: localStorage.getItem("plcDirectory") ?? "https://plc.directory", ··· 28 }, 29 }); 30 31 - const handleResolver = new CompositeHandleResolver({ 32 strategy: "dns-first", 33 methods: { 34 dns: new DohJsonHandleResolver({ dohUrl: "https://dns.google/resolve?" }),
··· 19 import { createStore } from "solid-js/store"; 20 import { setPDS } from "../components/navbar"; 21 22 + export const didDocumentResolver = new CompositeDidDocumentResolver({ 23 methods: { 24 plc: new PlcDidDocumentResolver({ 25 apiUrl: localStorage.getItem("plcDirectory") ?? "https://plc.directory", ··· 28 }, 29 }); 30 31 + export const handleResolver = new CompositeHandleResolver({ 32 strategy: "dns-first", 33 methods: { 34 dns: new DohJsonHandleResolver({ dohUrl: "https://dns.google/resolve?" }),