forked from pdsls.dev/pdsls
atproto explorer

record info tab

juli.ee 137b1a1f dbf39798

verified
Changed files
+389 -332
src
components
utils
views
+10 -9
package.json
··· 11 "devDependencies": { 12 "@iconify-json/lucide": "^1.2.68", 13 "@iconify/tailwind4": "^1.0.6", 14 - "@tailwindcss/vite": "^4.1.13", 15 "prettier": "^3.6.2", 16 "prettier-plugin-organize-imports": "^4.3.0", 17 "prettier-plugin-tailwindcss": "^0.6.14", 18 - "tailwindcss": "^4.1.13", 19 - "typescript": "^5.9.2", 20 - "vite": "^7.1.7", 21 - "vite-plugin-solid": "^2.11.8" 22 }, 23 "dependencies": { 24 "@atcute/atproto": "^3.1.4", ··· 33 "@atcute/identity-resolver": "^1.1.3", 34 "@atcute/leaflet": "^1.0.8", 35 "@atcute/lexicon-doc": "^1.1.1", 36 "@atcute/lexicons": "^1.1.1", 37 "@atcute/oauth-browser-client": "^1.0.26", 38 "@atcute/tangled": "^1.0.6", 39 "@atcute/tid": "^1.0.2", 40 "@atcute/uint8array": "^1.0.4", 41 - "@codemirror/commands": "^6.8.1", 42 "@codemirror/lang-json": "^6.0.2", 43 - "@codemirror/lint": "^6.8.5", 44 "@codemirror/state": "^6.5.2", 45 - "@codemirror/view": "^6.38.3", 46 "@fsegurai/codemirror-theme-basic-dark": "^6.2.2", 47 "@fsegurai/codemirror-theme-basic-light": "^6.2.2", 48 "@mary/exif-rm": "jsr:^0.2.2", ··· 52 "codemirror": "^6.0.2", 53 "solid-js": "^1.9.9" 54 }, 55 - "packageManager": "pnpm@10.12.2+sha512.a32540185b964ee30bb4e979e405adc6af59226b438ee4cc19f9e8773667a66d302f5bfee60a39d3cac69e35e4b96e708a71dd002b7e9359c4112a1722ac323f" 56 }
··· 11 "devDependencies": { 12 "@iconify-json/lucide": "^1.2.68", 13 "@iconify/tailwind4": "^1.0.6", 14 + "@tailwindcss/vite": "^4.1.14", 15 "prettier": "^3.6.2", 16 "prettier-plugin-organize-imports": "^4.3.0", 17 "prettier-plugin-tailwindcss": "^0.6.14", 18 + "tailwindcss": "^4.1.14", 19 + "typescript": "^5.9.3", 20 + "vite": "^7.1.8", 21 + "vite-plugin-solid": "^2.11.9" 22 }, 23 "dependencies": { 24 "@atcute/atproto": "^3.1.4", ··· 33 "@atcute/identity-resolver": "^1.1.3", 34 "@atcute/leaflet": "^1.0.8", 35 "@atcute/lexicon-doc": "^1.1.1", 36 + "@atcute/lexicon-resolver": "^0.1.0", 37 "@atcute/lexicons": "^1.1.1", 38 "@atcute/oauth-browser-client": "^1.0.26", 39 "@atcute/tangled": "^1.0.6", 40 "@atcute/tid": "^1.0.2", 41 "@atcute/uint8array": "^1.0.4", 42 + "@codemirror/commands": "^6.9.0", 43 "@codemirror/lang-json": "^6.0.2", 44 + "@codemirror/lint": "^6.9.0", 45 "@codemirror/state": "^6.5.2", 46 + "@codemirror/view": "^6.38.4", 47 "@fsegurai/codemirror-theme-basic-dark": "^6.2.2", 48 "@fsegurai/codemirror-theme-basic-light": "^6.2.2", 49 "@mary/exif-rm": "jsr:^0.2.2", ··· 53 "codemirror": "^6.0.2", 54 "solid-js": "^1.9.9" 55 }, 56 + "packageManager": "pnpm@10.17.1+sha512.17c560fca4867ae9473a3899ad84a88334914f379be46d455cbf92e5cf4b39d34985d452d2583baf19967fa76cb5c17bc9e245529d0b98745721aa7200ecaf7a" 57 }
+273 -250
pnpm-lock.yaml
··· 44 '@atcute/lexicon-doc': 45 specifier: ^1.1.1 46 version: 1.1.1 47 '@atcute/lexicons': 48 specifier: ^1.1.1 49 version: 1.1.1 ··· 60 specifier: ^1.0.4 61 version: 1.0.4 62 '@codemirror/commands': 63 - specifier: ^6.8.1 64 - version: 6.8.1 65 '@codemirror/lang-json': 66 specifier: ^6.0.2 67 version: 6.0.2 68 '@codemirror/lint': 69 - specifier: ^6.8.5 70 - version: 6.8.5 71 '@codemirror/state': 72 specifier: ^6.5.2 73 version: 6.5.2 74 '@codemirror/view': 75 - specifier: ^6.38.3 76 - version: 6.38.3 77 '@fsegurai/codemirror-theme-basic-dark': 78 specifier: ^6.2.2 79 - version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.3)(@lezer/highlight@1.2.1) 80 '@fsegurai/codemirror-theme-basic-light': 81 specifier: ^6.2.2 82 - version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.3)(@lezer/highlight@1.2.1) 83 '@mary/exif-rm': 84 specifier: jsr:^0.2.2 85 version: '@jsr/mary__exif-rm@0.2.2' ··· 104 version: 1.2.68 105 '@iconify/tailwind4': 106 specifier: ^1.0.6 107 - version: 1.0.6(tailwindcss@4.1.13) 108 '@tailwindcss/vite': 109 - specifier: ^4.1.13 110 - version: 4.1.13(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2)) 111 prettier: 112 specifier: ^3.6.2 113 version: 3.6.2 114 prettier-plugin-organize-imports: 115 specifier: ^4.3.0 116 - version: 4.3.0(prettier@3.6.2)(typescript@5.9.2) 117 prettier-plugin-tailwindcss: 118 specifier: ^0.6.14 119 - version: 0.6.14(prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.2))(prettier@3.6.2) 120 tailwindcss: 121 - specifier: ^4.1.13 122 - version: 4.1.13 123 typescript: 124 - specifier: ^5.9.2 125 - version: 5.9.2 126 vite: 127 - specifier: ^7.1.7 128 - version: 7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2) 129 vite-plugin-solid: 130 - specifier: ^2.11.8 131 - version: 2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2)) 132 133 packages: 134 ··· 175 176 '@atcute/lexicon-doc@1.1.1': 177 resolution: {integrity: sha512-/6M4K34ICZWa9rRiM9YWSsDZs0Vjv05SFJBb03mD+x14W01gIVLPK2UXiP0yIodgzWHhPQ79LLdyMJ8LirC84w==} 178 179 '@atcute/lexicons@1.1.1': 180 resolution: {integrity: sha512-k6qy5p3j9fJJ6ekaMPfEfp3ni4TW/XNuH9ZmsuwC0fi0tOjp+Fa8ZQakHwnqOzFt/cVBfGcmYE/lKNAbeTjgUg==} ··· 285 resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} 286 engines: {node: '>= 18'} 287 288 - '@codemirror/autocomplete@6.18.7': 289 - resolution: {integrity: sha512-8EzdeIoWPJDsMBwz3zdzwXnUpCzMiCyz5/A3FIPpriaclFCGDkAzK13sMcnsu5rowqiyeQN2Vs2TsOcoDPZirQ==} 290 291 - '@codemirror/commands@6.8.1': 292 - resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} 293 294 '@codemirror/lang-json@6.0.2': 295 resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} ··· 297 '@codemirror/language@6.11.3': 298 resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} 299 300 - '@codemirror/lint@6.8.5': 301 - resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} 302 303 '@codemirror/search@6.5.11': 304 resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} ··· 306 '@codemirror/state@6.5.2': 307 resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} 308 309 - '@codemirror/view@6.38.3': 310 - resolution: {integrity: sha512-x2t87+oqwB1mduiQZ6huIghjMt4uZKFEdj66IcXw7+a5iBEvv9lh7EWDRHI7crnD4BMGpnyq/RzmCGbiEZLcvQ==} 311 312 '@esbuild/aix-ppc64@0.23.1': 313 resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} ··· 680 '@noble/secp256k1@2.3.0': 681 resolution: {integrity: sha512-0TQed2gcBbIrh7Ccyw+y/uZQvbJwm7Ao4scBUxqpBCcsOlZG0O4KGfjtNAy/li4W8n1xt3dxrwJ0beZ2h2G6Kw==} 682 683 - '@rollup/rollup-android-arm-eabi@4.52.2': 684 - resolution: {integrity: sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==} 685 cpu: [arm] 686 os: [android] 687 688 - '@rollup/rollup-android-arm64@4.52.2': 689 - resolution: {integrity: sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==} 690 cpu: [arm64] 691 os: [android] 692 693 - '@rollup/rollup-darwin-arm64@4.52.2': 694 - resolution: {integrity: sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==} 695 cpu: [arm64] 696 os: [darwin] 697 698 - '@rollup/rollup-darwin-x64@4.52.2': 699 - resolution: {integrity: sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==} 700 cpu: [x64] 701 os: [darwin] 702 703 - '@rollup/rollup-freebsd-arm64@4.52.2': 704 - resolution: {integrity: sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==} 705 cpu: [arm64] 706 os: [freebsd] 707 708 - '@rollup/rollup-freebsd-x64@4.52.2': 709 - resolution: {integrity: sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==} 710 cpu: [x64] 711 os: [freebsd] 712 713 - '@rollup/rollup-linux-arm-gnueabihf@4.52.2': 714 - resolution: {integrity: sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==} 715 cpu: [arm] 716 os: [linux] 717 718 - '@rollup/rollup-linux-arm-musleabihf@4.52.2': 719 - resolution: {integrity: sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==} 720 cpu: [arm] 721 os: [linux] 722 723 - '@rollup/rollup-linux-arm64-gnu@4.52.2': 724 - resolution: {integrity: sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==} 725 cpu: [arm64] 726 os: [linux] 727 728 - '@rollup/rollup-linux-arm64-musl@4.52.2': 729 - resolution: {integrity: sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==} 730 cpu: [arm64] 731 os: [linux] 732 733 - '@rollup/rollup-linux-loong64-gnu@4.52.2': 734 - resolution: {integrity: sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==} 735 cpu: [loong64] 736 os: [linux] 737 738 - '@rollup/rollup-linux-ppc64-gnu@4.52.2': 739 - resolution: {integrity: sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==} 740 cpu: [ppc64] 741 os: [linux] 742 743 - '@rollup/rollup-linux-riscv64-gnu@4.52.2': 744 - resolution: {integrity: sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==} 745 cpu: [riscv64] 746 os: [linux] 747 748 - '@rollup/rollup-linux-riscv64-musl@4.52.2': 749 - resolution: {integrity: sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==} 750 cpu: [riscv64] 751 os: [linux] 752 753 - '@rollup/rollup-linux-s390x-gnu@4.52.2': 754 - resolution: {integrity: sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==} 755 cpu: [s390x] 756 os: [linux] 757 758 - '@rollup/rollup-linux-x64-gnu@4.52.2': 759 - resolution: {integrity: sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==} 760 cpu: [x64] 761 os: [linux] 762 763 - '@rollup/rollup-linux-x64-musl@4.52.2': 764 - resolution: {integrity: sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==} 765 cpu: [x64] 766 os: [linux] 767 768 - '@rollup/rollup-openharmony-arm64@4.52.2': 769 - resolution: {integrity: sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==} 770 cpu: [arm64] 771 os: [openharmony] 772 773 - '@rollup/rollup-win32-arm64-msvc@4.52.2': 774 - resolution: {integrity: sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==} 775 cpu: [arm64] 776 os: [win32] 777 778 - '@rollup/rollup-win32-ia32-msvc@4.52.2': 779 - resolution: {integrity: sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==} 780 cpu: [ia32] 781 os: [win32] 782 783 - '@rollup/rollup-win32-x64-gnu@4.52.2': 784 - resolution: {integrity: sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==} 785 cpu: [x64] 786 os: [win32] 787 788 - '@rollup/rollup-win32-x64-msvc@4.52.2': 789 - resolution: {integrity: sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==} 790 cpu: [x64] 791 os: [win32] 792 ··· 803 peerDependencies: 804 solid-js: ^1.8.6 805 806 - '@tailwindcss/node@4.1.13': 807 - resolution: {integrity: sha512-eq3ouolC1oEFOAvOMOBAmfCIqZBJuvWvvYWh5h5iOYfe1HFC6+GZ6EIL0JdM3/niGRJmnrOc+8gl9/HGUaaptw==} 808 809 - '@tailwindcss/oxide-android-arm64@4.1.13': 810 - resolution: {integrity: sha512-BrpTrVYyejbgGo57yc8ieE+D6VT9GOgnNdmh5Sac6+t0m+v+sKQevpFVpwX3pBrM2qKrQwJ0c5eDbtjouY/+ew==} 811 engines: {node: '>= 10'} 812 cpu: [arm64] 813 os: [android] 814 815 - '@tailwindcss/oxide-darwin-arm64@4.1.13': 816 - resolution: {integrity: sha512-YP+Jksc4U0KHcu76UhRDHq9bx4qtBftp9ShK/7UGfq0wpaP96YVnnjFnj3ZFrUAjc5iECzODl/Ts0AN7ZPOANQ==} 817 engines: {node: '>= 10'} 818 cpu: [arm64] 819 os: [darwin] 820 821 - '@tailwindcss/oxide-darwin-x64@4.1.13': 822 - resolution: {integrity: sha512-aAJ3bbwrn/PQHDxCto9sxwQfT30PzyYJFG0u/BWZGeVXi5Hx6uuUOQEI2Fa43qvmUjTRQNZnGqe9t0Zntexeuw==} 823 engines: {node: '>= 10'} 824 cpu: [x64] 825 os: [darwin] 826 827 - '@tailwindcss/oxide-freebsd-x64@4.1.13': 828 - resolution: {integrity: sha512-Wt8KvASHwSXhKE/dJLCCWcTSVmBj3xhVhp/aF3RpAhGeZ3sVo7+NTfgiN8Vey/Fi8prRClDs6/f0KXPDTZE6nQ==} 829 engines: {node: '>= 10'} 830 cpu: [x64] 831 os: [freebsd] 832 833 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': 834 - resolution: {integrity: sha512-mbVbcAsW3Gkm2MGwA93eLtWrwajz91aXZCNSkGTx/R5eb6KpKD5q8Ueckkh9YNboU8RH7jiv+ol/I7ZyQ9H7Bw==} 835 engines: {node: '>= 10'} 836 cpu: [arm] 837 os: [linux] 838 839 - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': 840 - resolution: {integrity: sha512-wdtfkmpXiwej/yoAkrCP2DNzRXCALq9NVLgLELgLim1QpSfhQM5+ZxQQF8fkOiEpuNoKLp4nKZ6RC4kmeFH0HQ==} 841 engines: {node: '>= 10'} 842 cpu: [arm64] 843 os: [linux] 844 845 - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': 846 - resolution: {integrity: sha512-hZQrmtLdhyqzXHB7mkXfq0IYbxegaqTmfa1p9MBj72WPoDD3oNOh1Lnxf6xZLY9C3OV6qiCYkO1i/LrzEdW2mg==} 847 engines: {node: '>= 10'} 848 cpu: [arm64] 849 os: [linux] 850 851 - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': 852 - resolution: {integrity: sha512-uaZTYWxSXyMWDJZNY1Ul7XkJTCBRFZ5Fo6wtjrgBKzZLoJNrG+WderJwAjPzuNZOnmdrVg260DKwXCFtJ/hWRQ==} 853 engines: {node: '>= 10'} 854 cpu: [x64] 855 os: [linux] 856 857 - '@tailwindcss/oxide-linux-x64-musl@4.1.13': 858 - resolution: {integrity: sha512-oXiPj5mi4Hdn50v5RdnuuIms0PVPI/EG4fxAfFiIKQh5TgQgX7oSuDWntHW7WNIi/yVLAiS+CRGW4RkoGSSgVQ==} 859 engines: {node: '>= 10'} 860 cpu: [x64] 861 os: [linux] 862 863 - '@tailwindcss/oxide-wasm32-wasi@4.1.13': 864 - resolution: {integrity: sha512-+LC2nNtPovtrDwBc/nqnIKYh/W2+R69FA0hgoeOn64BdCX522u19ryLh3Vf3F8W49XBcMIxSe665kwy21FkhvA==} 865 engines: {node: '>=14.0.0'} 866 cpu: [wasm32] 867 bundledDependencies: ··· 872 - '@emnapi/wasi-threads' 873 - tslib 874 875 - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': 876 - resolution: {integrity: sha512-dziTNeQXtoQ2KBXmrjCxsuPk3F3CQ/yb7ZNZNA+UkNTeiTGgfeh+gH5Pi7mRncVgcPD2xgHvkFCh/MhZWSgyQg==} 877 engines: {node: '>= 10'} 878 cpu: [arm64] 879 os: [win32] 880 881 - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': 882 - resolution: {integrity: sha512-3+LKesjXydTkHk5zXX01b5KMzLV1xl2mcktBJkje7rhFUpUlYJy7IMOLqjIRQncLTa1WZZiFY/foAeB5nmaiTw==} 883 engines: {node: '>= 10'} 884 cpu: [x64] 885 os: [win32] 886 887 - '@tailwindcss/oxide@4.1.13': 888 - resolution: {integrity: sha512-CPgsM1IpGRa880sMbYmG1s4xhAy3xEt1QULgTJGQmZUeNgXFR7s1YxYygmJyBGtou4SyEosGAGEeYqY7R53bIA==} 889 engines: {node: '>= 10'} 890 891 - '@tailwindcss/vite@4.1.13': 892 - resolution: {integrity: sha512-0PmqLQ010N58SbMTJ7BVJ4I2xopiQn/5i6nlb4JmxzQf8zcS5+m2Cv6tqh+sfDwtIdjoEnOvwsGQ1hkUi8QEHQ==} 893 peerDependencies: 894 vite: ^5.2.0 || ^6 || ^7 895 ··· 930 solid-js: 931 optional: true 932 933 - baseline-browser-mapping@2.8.6: 934 - resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} 935 hasBin: true 936 937 - browserslist@4.26.2: 938 - resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} 939 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 940 hasBin: true 941 942 - caniuse-lite@1.0.30001745: 943 - resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} 944 945 chownr@3.0.0: 946 resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} ··· 977 resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} 978 engines: {node: '>=8'} 979 980 - electron-to-chromium@1.5.223: 981 - resolution: {integrity: sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==} 982 983 enhanced-resolve@5.18.3: 984 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} ··· 1043 resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 1044 engines: {node: '>=12.13'} 1045 1046 - jiti@2.6.0: 1047 - resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} 1048 hasBin: true 1049 1050 js-tokens@4.0.0: ··· 1280 resolve-pkg-maps@1.0.0: 1281 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1282 1283 - rollup@4.52.2: 1284 - resolution: {integrity: sha512-I25/2QgoROE1vYV+NQ1En9T9UFB9Cmfm2CJ83zZOlaDpvz29wGQSZXWKw7MiNXau7wYgB/T9fVIdIuEQ+KbiiA==} 1285 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1286 hasBin: true 1287 ··· 1314 style-mod@4.1.2: 1315 resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} 1316 1317 - tailwindcss@4.1.13: 1318 - resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} 1319 1320 - tapable@2.2.3: 1321 - resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} 1322 engines: {node: '>=6'} 1323 1324 tar@7.5.1: ··· 1337 engines: {node: '>=18.0.0'} 1338 hasBin: true 1339 1340 - typescript@5.9.2: 1341 - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} 1342 engines: {node: '>=14.17'} 1343 hasBin: true 1344 ··· 1357 validate-html-nesting@1.2.3: 1358 resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==} 1359 1360 - vite-plugin-solid@2.11.8: 1361 - resolution: {integrity: sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg==} 1362 peerDependencies: 1363 '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 1364 solid-js: ^1.7.2 ··· 1367 '@testing-library/jest-dom': 1368 optional: true 1369 1370 - vite@7.1.7: 1371 - resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==} 1372 engines: {node: ^20.19.0 || >=22.12.0} 1373 hasBin: true 1374 peerDependencies: ··· 1509 dependencies: 1510 '@badrap/valita': 0.4.6 1511 1512 '@atcute/lexicons@1.1.1': 1513 dependencies: 1514 esm-env: 1.2.2 ··· 1581 dependencies: 1582 '@babel/compat-data': 7.28.4 1583 '@babel/helper-validator-option': 7.27.1 1584 - browserslist: 4.26.2 1585 lru-cache: 5.1.1 1586 semver: 6.3.1 1587 ··· 1654 1655 '@badrap/valita@0.4.6': {} 1656 1657 - '@codemirror/autocomplete@6.18.7': 1658 dependencies: 1659 '@codemirror/language': 6.11.3 1660 '@codemirror/state': 6.5.2 1661 - '@codemirror/view': 6.38.3 1662 '@lezer/common': 1.2.3 1663 1664 - '@codemirror/commands@6.8.1': 1665 dependencies: 1666 '@codemirror/language': 6.11.3 1667 '@codemirror/state': 6.5.2 1668 - '@codemirror/view': 6.38.3 1669 '@lezer/common': 1.2.3 1670 1671 '@codemirror/lang-json@6.0.2': ··· 1676 '@codemirror/language@6.11.3': 1677 dependencies: 1678 '@codemirror/state': 6.5.2 1679 - '@codemirror/view': 6.38.3 1680 '@lezer/common': 1.2.3 1681 '@lezer/highlight': 1.2.1 1682 '@lezer/lr': 1.4.2 1683 style-mod: 4.1.2 1684 1685 - '@codemirror/lint@6.8.5': 1686 dependencies: 1687 '@codemirror/state': 6.5.2 1688 - '@codemirror/view': 6.38.3 1689 crelt: 1.0.6 1690 1691 '@codemirror/search@6.5.11': 1692 dependencies: 1693 '@codemirror/state': 6.5.2 1694 - '@codemirror/view': 6.38.3 1695 crelt: 1.0.6 1696 1697 '@codemirror/state@6.5.2': 1698 dependencies: 1699 '@marijn/find-cluster-break': 1.0.2 1700 1701 - '@codemirror/view@6.38.3': 1702 dependencies: 1703 '@codemirror/state': 6.5.2 1704 crelt: 1.0.6 ··· 1855 '@esbuild/win32-x64@0.25.10': 1856 optional: true 1857 1858 - '@fsegurai/codemirror-theme-basic-dark@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.3)(@lezer/highlight@1.2.1)': 1859 dependencies: 1860 '@codemirror/language': 6.11.3 1861 '@codemirror/state': 6.5.2 1862 - '@codemirror/view': 6.38.3 1863 '@lezer/highlight': 1.2.1 1864 1865 - '@fsegurai/codemirror-theme-basic-light@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.3)(@lezer/highlight@1.2.1)': 1866 dependencies: 1867 '@codemirror/language': 6.11.3 1868 '@codemirror/state': 6.5.2 1869 - '@codemirror/view': 6.38.3 1870 '@lezer/highlight': 1.2.1 1871 1872 '@iconify-json/lucide@1.2.68': 1873 dependencies: 1874 '@iconify/types': 2.0.0 1875 1876 - '@iconify/tailwind4@1.0.6(tailwindcss@4.1.13)': 1877 dependencies: 1878 '@iconify/types': 2.0.0 1879 '@iconify/utils': 2.3.0 1880 - tailwindcss: 4.1.13 1881 transitivePeerDependencies: 1882 - supports-color 1883 ··· 1941 1942 '@noble/secp256k1@2.3.0': {} 1943 1944 - '@rollup/rollup-android-arm-eabi@4.52.2': 1945 optional: true 1946 1947 - '@rollup/rollup-android-arm64@4.52.2': 1948 optional: true 1949 1950 - '@rollup/rollup-darwin-arm64@4.52.2': 1951 optional: true 1952 1953 - '@rollup/rollup-darwin-x64@4.52.2': 1954 optional: true 1955 1956 - '@rollup/rollup-freebsd-arm64@4.52.2': 1957 optional: true 1958 1959 - '@rollup/rollup-freebsd-x64@4.52.2': 1960 optional: true 1961 1962 - '@rollup/rollup-linux-arm-gnueabihf@4.52.2': 1963 optional: true 1964 1965 - '@rollup/rollup-linux-arm-musleabihf@4.52.2': 1966 optional: true 1967 1968 - '@rollup/rollup-linux-arm64-gnu@4.52.2': 1969 optional: true 1970 1971 - '@rollup/rollup-linux-arm64-musl@4.52.2': 1972 optional: true 1973 1974 - '@rollup/rollup-linux-loong64-gnu@4.52.2': 1975 optional: true 1976 1977 - '@rollup/rollup-linux-ppc64-gnu@4.52.2': 1978 optional: true 1979 1980 - '@rollup/rollup-linux-riscv64-gnu@4.52.2': 1981 optional: true 1982 1983 - '@rollup/rollup-linux-riscv64-musl@4.52.2': 1984 optional: true 1985 1986 - '@rollup/rollup-linux-s390x-gnu@4.52.2': 1987 optional: true 1988 1989 - '@rollup/rollup-linux-x64-gnu@4.52.2': 1990 optional: true 1991 1992 - '@rollup/rollup-linux-x64-musl@4.52.2': 1993 optional: true 1994 1995 - '@rollup/rollup-openharmony-arm64@4.52.2': 1996 optional: true 1997 1998 - '@rollup/rollup-win32-arm64-msvc@4.52.2': 1999 optional: true 2000 2001 - '@rollup/rollup-win32-ia32-msvc@4.52.2': 2002 optional: true 2003 2004 - '@rollup/rollup-win32-x64-gnu@4.52.2': 2005 optional: true 2006 2007 - '@rollup/rollup-win32-x64-msvc@4.52.2': 2008 optional: true 2009 2010 '@skyware/firehose@0.5.2': ··· 2021 dependencies: 2022 solid-js: 1.9.9 2023 2024 - '@tailwindcss/node@4.1.13': 2025 dependencies: 2026 '@jridgewell/remapping': 2.3.5 2027 enhanced-resolve: 5.18.3 2028 - jiti: 2.6.0 2029 lightningcss: 1.30.1 2030 magic-string: 0.30.19 2031 source-map-js: 1.2.1 2032 - tailwindcss: 4.1.13 2033 2034 - '@tailwindcss/oxide-android-arm64@4.1.13': 2035 optional: true 2036 2037 - '@tailwindcss/oxide-darwin-arm64@4.1.13': 2038 optional: true 2039 2040 - '@tailwindcss/oxide-darwin-x64@4.1.13': 2041 optional: true 2042 2043 - '@tailwindcss/oxide-freebsd-x64@4.1.13': 2044 optional: true 2045 2046 - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.13': 2047 optional: true 2048 2049 - '@tailwindcss/oxide-linux-arm64-gnu@4.1.13': 2050 optional: true 2051 2052 - '@tailwindcss/oxide-linux-arm64-musl@4.1.13': 2053 optional: true 2054 2055 - '@tailwindcss/oxide-linux-x64-gnu@4.1.13': 2056 optional: true 2057 2058 - '@tailwindcss/oxide-linux-x64-musl@4.1.13': 2059 optional: true 2060 2061 - '@tailwindcss/oxide-wasm32-wasi@4.1.13': 2062 optional: true 2063 2064 - '@tailwindcss/oxide-win32-arm64-msvc@4.1.13': 2065 optional: true 2066 2067 - '@tailwindcss/oxide-win32-x64-msvc@4.1.13': 2068 optional: true 2069 2070 - '@tailwindcss/oxide@4.1.13': 2071 dependencies: 2072 detect-libc: 2.1.1 2073 tar: 7.5.1 2074 optionalDependencies: 2075 - '@tailwindcss/oxide-android-arm64': 4.1.13 2076 - '@tailwindcss/oxide-darwin-arm64': 4.1.13 2077 - '@tailwindcss/oxide-darwin-x64': 4.1.13 2078 - '@tailwindcss/oxide-freebsd-x64': 4.1.13 2079 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.13 2080 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.13 2081 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.13 2082 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.13 2083 - '@tailwindcss/oxide-linux-x64-musl': 4.1.13 2084 - '@tailwindcss/oxide-wasm32-wasi': 4.1.13 2085 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.13 2086 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.13 2087 2088 - '@tailwindcss/vite@4.1.13(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2))': 2089 dependencies: 2090 - '@tailwindcss/node': 4.1.13 2091 - '@tailwindcss/oxide': 4.1.13 2092 - tailwindcss: 4.1.13 2093 - vite: 7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2) 2094 2095 '@types/babel__core@7.20.5': 2096 dependencies: ··· 2139 optionalDependencies: 2140 solid-js: 1.9.9 2141 2142 - baseline-browser-mapping@2.8.6: {} 2143 2144 - browserslist@4.26.2: 2145 dependencies: 2146 - baseline-browser-mapping: 2.8.6 2147 - caniuse-lite: 1.0.30001745 2148 - electron-to-chromium: 1.5.223 2149 node-releases: 2.0.21 2150 - update-browserslist-db: 1.1.3(browserslist@4.26.2) 2151 2152 - caniuse-lite@1.0.30001745: {} 2153 2154 chownr@3.0.0: {} 2155 2156 codemirror@6.0.2: 2157 dependencies: 2158 - '@codemirror/autocomplete': 6.18.7 2159 - '@codemirror/commands': 6.8.1 2160 '@codemirror/language': 6.11.3 2161 - '@codemirror/lint': 6.8.5 2162 '@codemirror/search': 6.5.11 2163 '@codemirror/state': 6.5.2 2164 - '@codemirror/view': 6.38.3 2165 2166 confbox@0.1.8: {} 2167 ··· 2179 2180 detect-libc@2.1.1: {} 2181 2182 - electron-to-chromium@1.5.223: {} 2183 2184 enhanced-resolve@5.18.3: 2185 dependencies: 2186 graceful-fs: 4.2.11 2187 - tapable: 2.2.3 2188 2189 entities@6.0.1: {} 2190 ··· 2273 2274 is-what@4.1.16: {} 2275 2276 - jiti@2.6.0: {} 2277 2278 js-tokens@4.0.0: {} 2279 ··· 2399 picocolors: 1.1.1 2400 source-map-js: 1.2.1 2401 2402 - prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.2): 2403 dependencies: 2404 prettier: 3.6.2 2405 - typescript: 5.9.2 2406 2407 - prettier-plugin-tailwindcss@0.6.14(prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.2))(prettier@3.6.2): 2408 dependencies: 2409 prettier: 3.6.2 2410 optionalDependencies: 2411 - prettier-plugin-organize-imports: 4.3.0(prettier@3.6.2)(typescript@5.9.2) 2412 2413 prettier@3.6.2: {} 2414 ··· 2417 resolve-pkg-maps@1.0.0: 2418 optional: true 2419 2420 - rollup@4.52.2: 2421 dependencies: 2422 '@types/estree': 1.0.8 2423 optionalDependencies: 2424 - '@rollup/rollup-android-arm-eabi': 4.52.2 2425 - '@rollup/rollup-android-arm64': 4.52.2 2426 - '@rollup/rollup-darwin-arm64': 4.52.2 2427 - '@rollup/rollup-darwin-x64': 4.52.2 2428 - '@rollup/rollup-freebsd-arm64': 4.52.2 2429 - '@rollup/rollup-freebsd-x64': 4.52.2 2430 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.2 2431 - '@rollup/rollup-linux-arm-musleabihf': 4.52.2 2432 - '@rollup/rollup-linux-arm64-gnu': 4.52.2 2433 - '@rollup/rollup-linux-arm64-musl': 4.52.2 2434 - '@rollup/rollup-linux-loong64-gnu': 4.52.2 2435 - '@rollup/rollup-linux-ppc64-gnu': 4.52.2 2436 - '@rollup/rollup-linux-riscv64-gnu': 4.52.2 2437 - '@rollup/rollup-linux-riscv64-musl': 4.52.2 2438 - '@rollup/rollup-linux-s390x-gnu': 4.52.2 2439 - '@rollup/rollup-linux-x64-gnu': 4.52.2 2440 - '@rollup/rollup-linux-x64-musl': 4.52.2 2441 - '@rollup/rollup-openharmony-arm64': 4.52.2 2442 - '@rollup/rollup-win32-arm64-msvc': 4.52.2 2443 - '@rollup/rollup-win32-ia32-msvc': 4.52.2 2444 - '@rollup/rollup-win32-x64-gnu': 4.52.2 2445 - '@rollup/rollup-win32-x64-msvc': 4.52.2 2446 fsevents: 2.3.3 2447 2448 semver@6.3.1: {} ··· 2472 2473 style-mod@4.1.2: {} 2474 2475 - tailwindcss@4.1.13: {} 2476 2477 - tapable@2.2.3: {} 2478 2479 tar@7.5.1: 2480 dependencies: ··· 2499 fsevents: 2.3.3 2500 optional: true 2501 2502 - typescript@5.9.2: {} 2503 2504 ufo@1.6.1: {} 2505 2506 undici-types@6.20.0: 2507 optional: true 2508 2509 - update-browserslist-db@1.1.3(browserslist@4.26.2): 2510 dependencies: 2511 - browserslist: 4.26.2 2512 escalade: 3.2.0 2513 picocolors: 1.1.1 2514 2515 validate-html-nesting@1.2.3: {} 2516 2517 - vite-plugin-solid@2.11.8(solid-js@1.9.9)(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2)): 2518 dependencies: 2519 '@babel/core': 7.28.4 2520 '@types/babel__core': 7.20.5 ··· 2522 merge-anything: 5.1.7 2523 solid-js: 1.9.9 2524 solid-refresh: 0.6.3(solid-js@1.9.9) 2525 - vite: 7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2) 2526 - vitefu: 1.1.1(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2)) 2527 transitivePeerDependencies: 2528 - supports-color 2529 2530 - vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2): 2531 dependencies: 2532 esbuild: 0.25.10 2533 fdir: 6.5.0(picomatch@4.0.3) 2534 picomatch: 4.0.3 2535 postcss: 8.5.6 2536 - rollup: 4.52.2 2537 tinyglobby: 0.2.15 2538 optionalDependencies: 2539 '@types/node': 22.13.1 2540 fsevents: 2.3.3 2541 - jiti: 2.6.0 2542 lightningcss: 1.30.1 2543 tsx: 4.19.2 2544 2545 - vitefu@1.1.1(vite@7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2)): 2546 optionalDependencies: 2547 - vite: 7.1.7(@types/node@22.13.1)(jiti@2.6.0)(lightningcss@1.30.1)(tsx@4.19.2) 2548 2549 w3c-keyname@2.2.8: {} 2550
··· 44 '@atcute/lexicon-doc': 45 specifier: ^1.1.1 46 version: 1.1.1 47 + '@atcute/lexicon-resolver': 48 + specifier: ^0.1.0 49 + version: 0.1.0(@atcute/identity-resolver@1.1.3(@atcute/identity@1.1.0))(@atcute/identity@1.1.0) 50 '@atcute/lexicons': 51 specifier: ^1.1.1 52 version: 1.1.1 ··· 63 specifier: ^1.0.4 64 version: 1.0.4 65 '@codemirror/commands': 66 + specifier: ^6.9.0 67 + version: 6.9.0 68 '@codemirror/lang-json': 69 specifier: ^6.0.2 70 version: 6.0.2 71 '@codemirror/lint': 72 + specifier: ^6.9.0 73 + version: 6.9.0 74 '@codemirror/state': 75 specifier: ^6.5.2 76 version: 6.5.2 77 '@codemirror/view': 78 + specifier: ^6.38.4 79 + version: 6.38.4 80 '@fsegurai/codemirror-theme-basic-dark': 81 specifier: ^6.2.2 82 + version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(@lezer/highlight@1.2.1) 83 '@fsegurai/codemirror-theme-basic-light': 84 specifier: ^6.2.2 85 + version: 6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(@lezer/highlight@1.2.1) 86 '@mary/exif-rm': 87 specifier: jsr:^0.2.2 88 version: '@jsr/mary__exif-rm@0.2.2' ··· 107 version: 1.2.68 108 '@iconify/tailwind4': 109 specifier: ^1.0.6 110 + version: 1.0.6(tailwindcss@4.1.14) 111 '@tailwindcss/vite': 112 + specifier: ^4.1.14 113 + version: 4.1.14(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)) 114 prettier: 115 specifier: ^3.6.2 116 version: 3.6.2 117 prettier-plugin-organize-imports: 118 specifier: ^4.3.0 119 + version: 4.3.0(prettier@3.6.2)(typescript@5.9.3) 120 prettier-plugin-tailwindcss: 121 specifier: ^0.6.14 122 + version: 0.6.14(prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.3))(prettier@3.6.2) 123 tailwindcss: 124 + specifier: ^4.1.14 125 + version: 4.1.14 126 typescript: 127 + specifier: ^5.9.3 128 + version: 5.9.3 129 vite: 130 + specifier: ^7.1.8 131 + version: 7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2) 132 vite-plugin-solid: 133 + specifier: ^2.11.9 134 + version: 2.11.9(solid-js@1.9.9)(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)) 135 136 packages: 137 ··· 178 179 '@atcute/lexicon-doc@1.1.1': 180 resolution: {integrity: sha512-/6M4K34ICZWa9rRiM9YWSsDZs0Vjv05SFJBb03mD+x14W01gIVLPK2UXiP0yIodgzWHhPQ79LLdyMJ8LirC84w==} 181 + 182 + '@atcute/lexicon-resolver@0.1.0': 183 + resolution: {integrity: sha512-j63pB+PcxQX+hSIOqb4Lorlavv3yjUncgElPHdq3mUeKjZNJbpRZu5uZ0kdcP76sVjoyl52LyS5E2OSGKbK2Zg==} 184 + peerDependencies: 185 + '@atcute/identity': ^1.1.0 186 + '@atcute/identity-resolver': ^1.1.3 187 188 '@atcute/lexicons@1.1.1': 189 resolution: {integrity: sha512-k6qy5p3j9fJJ6ekaMPfEfp3ni4TW/XNuH9ZmsuwC0fi0tOjp+Fa8ZQakHwnqOzFt/cVBfGcmYE/lKNAbeTjgUg==} ··· 294 resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} 295 engines: {node: '>= 18'} 296 297 + '@codemirror/autocomplete@6.19.0': 298 + resolution: {integrity: sha512-61Hfv3cF07XvUxNeC3E7jhG8XNi1Yom1G0lRC936oLnlF+jrbrv8rc/J98XlYzcsAoTVupfsf5fLej1aI8kyIg==} 299 300 + '@codemirror/commands@6.9.0': 301 + resolution: {integrity: sha512-454TVgjhO6cMufsyyGN70rGIfJxJEjcqjBG2x2Y03Y/+Fm99d3O/Kv1QDYWuG6hvxsgmjXmBuATikIIYvERX+w==} 302 303 '@codemirror/lang-json@6.0.2': 304 resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} ··· 306 '@codemirror/language@6.11.3': 307 resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} 308 309 + '@codemirror/lint@6.9.0': 310 + resolution: {integrity: sha512-wZxW+9XDytH3SKvS8cQzMyQCaaazH8XL1EMHleHe00wVzsv7NBQKVW2yzEHrRhmM7ZOhVdItPbvlRBvMp9ej7A==} 311 312 '@codemirror/search@6.5.11': 313 resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} ··· 315 '@codemirror/state@6.5.2': 316 resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} 317 318 + '@codemirror/view@6.38.4': 319 + resolution: {integrity: sha512-hduz0suCcUSC/kM8Fq3A9iLwInJDl8fD1xLpTIk+5xkNm8z/FT7UsIa9sOXrkpChh+XXc18RzswE8QqELsVl+g==} 320 321 '@esbuild/aix-ppc64@0.23.1': 322 resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} ··· 689 '@noble/secp256k1@2.3.0': 690 resolution: {integrity: sha512-0TQed2gcBbIrh7Ccyw+y/uZQvbJwm7Ao4scBUxqpBCcsOlZG0O4KGfjtNAy/li4W8n1xt3dxrwJ0beZ2h2G6Kw==} 691 692 + '@rollup/rollup-android-arm-eabi@4.52.3': 693 + resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} 694 cpu: [arm] 695 os: [android] 696 697 + '@rollup/rollup-android-arm64@4.52.3': 698 + resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} 699 cpu: [arm64] 700 os: [android] 701 702 + '@rollup/rollup-darwin-arm64@4.52.3': 703 + resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} 704 cpu: [arm64] 705 os: [darwin] 706 707 + '@rollup/rollup-darwin-x64@4.52.3': 708 + resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} 709 cpu: [x64] 710 os: [darwin] 711 712 + '@rollup/rollup-freebsd-arm64@4.52.3': 713 + resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} 714 cpu: [arm64] 715 os: [freebsd] 716 717 + '@rollup/rollup-freebsd-x64@4.52.3': 718 + resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} 719 cpu: [x64] 720 os: [freebsd] 721 722 + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': 723 + resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} 724 cpu: [arm] 725 os: [linux] 726 727 + '@rollup/rollup-linux-arm-musleabihf@4.52.3': 728 + resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} 729 cpu: [arm] 730 os: [linux] 731 732 + '@rollup/rollup-linux-arm64-gnu@4.52.3': 733 + resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} 734 cpu: [arm64] 735 os: [linux] 736 737 + '@rollup/rollup-linux-arm64-musl@4.52.3': 738 + resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} 739 cpu: [arm64] 740 os: [linux] 741 742 + '@rollup/rollup-linux-loong64-gnu@4.52.3': 743 + resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} 744 cpu: [loong64] 745 os: [linux] 746 747 + '@rollup/rollup-linux-ppc64-gnu@4.52.3': 748 + resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} 749 cpu: [ppc64] 750 os: [linux] 751 752 + '@rollup/rollup-linux-riscv64-gnu@4.52.3': 753 + resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} 754 cpu: [riscv64] 755 os: [linux] 756 757 + '@rollup/rollup-linux-riscv64-musl@4.52.3': 758 + resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} 759 cpu: [riscv64] 760 os: [linux] 761 762 + '@rollup/rollup-linux-s390x-gnu@4.52.3': 763 + resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} 764 cpu: [s390x] 765 os: [linux] 766 767 + '@rollup/rollup-linux-x64-gnu@4.52.3': 768 + resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} 769 cpu: [x64] 770 os: [linux] 771 772 + '@rollup/rollup-linux-x64-musl@4.52.3': 773 + resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} 774 cpu: [x64] 775 os: [linux] 776 777 + '@rollup/rollup-openharmony-arm64@4.52.3': 778 + resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} 779 cpu: [arm64] 780 os: [openharmony] 781 782 + '@rollup/rollup-win32-arm64-msvc@4.52.3': 783 + resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} 784 cpu: [arm64] 785 os: [win32] 786 787 + '@rollup/rollup-win32-ia32-msvc@4.52.3': 788 + resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} 789 cpu: [ia32] 790 os: [win32] 791 792 + '@rollup/rollup-win32-x64-gnu@4.52.3': 793 + resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} 794 cpu: [x64] 795 os: [win32] 796 797 + '@rollup/rollup-win32-x64-msvc@4.52.3': 798 + resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} 799 cpu: [x64] 800 os: [win32] 801 ··· 812 peerDependencies: 813 solid-js: ^1.8.6 814 815 + '@tailwindcss/node@4.1.14': 816 + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} 817 818 + '@tailwindcss/oxide-android-arm64@4.1.14': 819 + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} 820 engines: {node: '>= 10'} 821 cpu: [arm64] 822 os: [android] 823 824 + '@tailwindcss/oxide-darwin-arm64@4.1.14': 825 + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} 826 engines: {node: '>= 10'} 827 cpu: [arm64] 828 os: [darwin] 829 830 + '@tailwindcss/oxide-darwin-x64@4.1.14': 831 + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} 832 engines: {node: '>= 10'} 833 cpu: [x64] 834 os: [darwin] 835 836 + '@tailwindcss/oxide-freebsd-x64@4.1.14': 837 + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} 838 engines: {node: '>= 10'} 839 cpu: [x64] 840 os: [freebsd] 841 842 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': 843 + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} 844 engines: {node: '>= 10'} 845 cpu: [arm] 846 os: [linux] 847 848 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': 849 + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} 850 engines: {node: '>= 10'} 851 cpu: [arm64] 852 os: [linux] 853 854 + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': 855 + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} 856 engines: {node: '>= 10'} 857 cpu: [arm64] 858 os: [linux] 859 860 + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': 861 + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} 862 engines: {node: '>= 10'} 863 cpu: [x64] 864 os: [linux] 865 866 + '@tailwindcss/oxide-linux-x64-musl@4.1.14': 867 + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} 868 engines: {node: '>= 10'} 869 cpu: [x64] 870 os: [linux] 871 872 + '@tailwindcss/oxide-wasm32-wasi@4.1.14': 873 + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} 874 engines: {node: '>=14.0.0'} 875 cpu: [wasm32] 876 bundledDependencies: ··· 881 - '@emnapi/wasi-threads' 882 - tslib 883 884 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': 885 + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} 886 engines: {node: '>= 10'} 887 cpu: [arm64] 888 os: [win32] 889 890 + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': 891 + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} 892 engines: {node: '>= 10'} 893 cpu: [x64] 894 os: [win32] 895 896 + '@tailwindcss/oxide@4.1.14': 897 + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} 898 engines: {node: '>= 10'} 899 900 + '@tailwindcss/vite@4.1.14': 901 + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} 902 peerDependencies: 903 vite: ^5.2.0 || ^6 || ^7 904 ··· 939 solid-js: 940 optional: true 941 942 + baseline-browser-mapping@2.8.10: 943 + resolution: {integrity: sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==} 944 hasBin: true 945 946 + browserslist@4.26.3: 947 + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} 948 engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 949 hasBin: true 950 951 + caniuse-lite@1.0.30001746: 952 + resolution: {integrity: sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==} 953 954 chownr@3.0.0: 955 resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} ··· 986 resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} 987 engines: {node: '>=8'} 988 989 + electron-to-chromium@1.5.228: 990 + resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==} 991 992 enhanced-resolve@5.18.3: 993 resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} ··· 1052 resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 1053 engines: {node: '>=12.13'} 1054 1055 + jiti@2.6.1: 1056 + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 1057 hasBin: true 1058 1059 js-tokens@4.0.0: ··· 1289 resolve-pkg-maps@1.0.0: 1290 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1291 1292 + rollup@4.52.3: 1293 + resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} 1294 engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1295 hasBin: true 1296 ··· 1323 style-mod@4.1.2: 1324 resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} 1325 1326 + tailwindcss@4.1.14: 1327 + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} 1328 1329 + tapable@2.3.0: 1330 + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} 1331 engines: {node: '>=6'} 1332 1333 tar@7.5.1: ··· 1346 engines: {node: '>=18.0.0'} 1347 hasBin: true 1348 1349 + typescript@5.9.3: 1350 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1351 engines: {node: '>=14.17'} 1352 hasBin: true 1353 ··· 1366 validate-html-nesting@1.2.3: 1367 resolution: {integrity: sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw==} 1368 1369 + vite-plugin-solid@2.11.9: 1370 + resolution: {integrity: sha512-bTA6p+bspXZsuulSd2y6aTzegF8xGaJYcq1Uyh/mv+W4DQtzCgL9nN6n2fsTaxp/dMk+ZHHKgGndlNeooqHLKw==} 1371 peerDependencies: 1372 '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* 1373 solid-js: ^1.7.2 ··· 1376 '@testing-library/jest-dom': 1377 optional: true 1378 1379 + vite@7.1.8: 1380 + resolution: {integrity: sha512-oBXvfSHEOL8jF+R9Am7h59Up07kVVGH1NrFGFoEG6bPDZP3tGpQhvkBpy5x7U6+E6wZCu9OihsWgJqDbQIm8LQ==} 1381 engines: {node: ^20.19.0 || >=22.12.0} 1382 hasBin: true 1383 peerDependencies: ··· 1518 dependencies: 1519 '@badrap/valita': 0.4.6 1520 1521 + '@atcute/lexicon-resolver@0.1.0(@atcute/identity-resolver@1.1.3(@atcute/identity@1.1.0))(@atcute/identity@1.1.0)': 1522 + dependencies: 1523 + '@atcute/car': 3.1.1 1524 + '@atcute/cbor': 2.2.5 1525 + '@atcute/cid': 2.2.3 1526 + '@atcute/crypto': 2.2.4 1527 + '@atcute/identity': 1.1.0 1528 + '@atcute/identity-resolver': 1.1.3(@atcute/identity@1.1.0) 1529 + '@atcute/lexicon-doc': 1.1.1 1530 + '@atcute/lexicons': 1.1.1 1531 + '@atcute/uint8array': 1.0.4 1532 + '@atcute/util-fetch': 1.0.2 1533 + '@badrap/valita': 0.4.6 1534 + 1535 '@atcute/lexicons@1.1.1': 1536 dependencies: 1537 esm-env: 1.2.2 ··· 1604 dependencies: 1605 '@babel/compat-data': 7.28.4 1606 '@babel/helper-validator-option': 7.27.1 1607 + browserslist: 4.26.3 1608 lru-cache: 5.1.1 1609 semver: 6.3.1 1610 ··· 1677 1678 '@badrap/valita@0.4.6': {} 1679 1680 + '@codemirror/autocomplete@6.19.0': 1681 dependencies: 1682 '@codemirror/language': 6.11.3 1683 '@codemirror/state': 6.5.2 1684 + '@codemirror/view': 6.38.4 1685 '@lezer/common': 1.2.3 1686 1687 + '@codemirror/commands@6.9.0': 1688 dependencies: 1689 '@codemirror/language': 6.11.3 1690 '@codemirror/state': 6.5.2 1691 + '@codemirror/view': 6.38.4 1692 '@lezer/common': 1.2.3 1693 1694 '@codemirror/lang-json@6.0.2': ··· 1699 '@codemirror/language@6.11.3': 1700 dependencies: 1701 '@codemirror/state': 6.5.2 1702 + '@codemirror/view': 6.38.4 1703 '@lezer/common': 1.2.3 1704 '@lezer/highlight': 1.2.1 1705 '@lezer/lr': 1.4.2 1706 style-mod: 4.1.2 1707 1708 + '@codemirror/lint@6.9.0': 1709 dependencies: 1710 '@codemirror/state': 6.5.2 1711 + '@codemirror/view': 6.38.4 1712 crelt: 1.0.6 1713 1714 '@codemirror/search@6.5.11': 1715 dependencies: 1716 '@codemirror/state': 6.5.2 1717 + '@codemirror/view': 6.38.4 1718 crelt: 1.0.6 1719 1720 '@codemirror/state@6.5.2': 1721 dependencies: 1722 '@marijn/find-cluster-break': 1.0.2 1723 1724 + '@codemirror/view@6.38.4': 1725 dependencies: 1726 '@codemirror/state': 6.5.2 1727 crelt: 1.0.6 ··· 1878 '@esbuild/win32-x64@0.25.10': 1879 optional: true 1880 1881 + '@fsegurai/codemirror-theme-basic-dark@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(@lezer/highlight@1.2.1)': 1882 dependencies: 1883 '@codemirror/language': 6.11.3 1884 '@codemirror/state': 6.5.2 1885 + '@codemirror/view': 6.38.4 1886 '@lezer/highlight': 1.2.1 1887 1888 + '@fsegurai/codemirror-theme-basic-light@6.2.2(@codemirror/language@6.11.3)(@codemirror/state@6.5.2)(@codemirror/view@6.38.4)(@lezer/highlight@1.2.1)': 1889 dependencies: 1890 '@codemirror/language': 6.11.3 1891 '@codemirror/state': 6.5.2 1892 + '@codemirror/view': 6.38.4 1893 '@lezer/highlight': 1.2.1 1894 1895 '@iconify-json/lucide@1.2.68': 1896 dependencies: 1897 '@iconify/types': 2.0.0 1898 1899 + '@iconify/tailwind4@1.0.6(tailwindcss@4.1.14)': 1900 dependencies: 1901 '@iconify/types': 2.0.0 1902 '@iconify/utils': 2.3.0 1903 + tailwindcss: 4.1.14 1904 transitivePeerDependencies: 1905 - supports-color 1906 ··· 1964 1965 '@noble/secp256k1@2.3.0': {} 1966 1967 + '@rollup/rollup-android-arm-eabi@4.52.3': 1968 optional: true 1969 1970 + '@rollup/rollup-android-arm64@4.52.3': 1971 optional: true 1972 1973 + '@rollup/rollup-darwin-arm64@4.52.3': 1974 optional: true 1975 1976 + '@rollup/rollup-darwin-x64@4.52.3': 1977 optional: true 1978 1979 + '@rollup/rollup-freebsd-arm64@4.52.3': 1980 optional: true 1981 1982 + '@rollup/rollup-freebsd-x64@4.52.3': 1983 optional: true 1984 1985 + '@rollup/rollup-linux-arm-gnueabihf@4.52.3': 1986 optional: true 1987 1988 + '@rollup/rollup-linux-arm-musleabihf@4.52.3': 1989 optional: true 1990 1991 + '@rollup/rollup-linux-arm64-gnu@4.52.3': 1992 optional: true 1993 1994 + '@rollup/rollup-linux-arm64-musl@4.52.3': 1995 optional: true 1996 1997 + '@rollup/rollup-linux-loong64-gnu@4.52.3': 1998 optional: true 1999 2000 + '@rollup/rollup-linux-ppc64-gnu@4.52.3': 2001 optional: true 2002 2003 + '@rollup/rollup-linux-riscv64-gnu@4.52.3': 2004 optional: true 2005 2006 + '@rollup/rollup-linux-riscv64-musl@4.52.3': 2007 optional: true 2008 2009 + '@rollup/rollup-linux-s390x-gnu@4.52.3': 2010 optional: true 2011 2012 + '@rollup/rollup-linux-x64-gnu@4.52.3': 2013 optional: true 2014 2015 + '@rollup/rollup-linux-x64-musl@4.52.3': 2016 optional: true 2017 2018 + '@rollup/rollup-openharmony-arm64@4.52.3': 2019 optional: true 2020 2021 + '@rollup/rollup-win32-arm64-msvc@4.52.3': 2022 optional: true 2023 2024 + '@rollup/rollup-win32-ia32-msvc@4.52.3': 2025 optional: true 2026 2027 + '@rollup/rollup-win32-x64-gnu@4.52.3': 2028 optional: true 2029 2030 + '@rollup/rollup-win32-x64-msvc@4.52.3': 2031 optional: true 2032 2033 '@skyware/firehose@0.5.2': ··· 2044 dependencies: 2045 solid-js: 1.9.9 2046 2047 + '@tailwindcss/node@4.1.14': 2048 dependencies: 2049 '@jridgewell/remapping': 2.3.5 2050 enhanced-resolve: 5.18.3 2051 + jiti: 2.6.1 2052 lightningcss: 1.30.1 2053 magic-string: 0.30.19 2054 source-map-js: 1.2.1 2055 + tailwindcss: 4.1.14 2056 2057 + '@tailwindcss/oxide-android-arm64@4.1.14': 2058 optional: true 2059 2060 + '@tailwindcss/oxide-darwin-arm64@4.1.14': 2061 optional: true 2062 2063 + '@tailwindcss/oxide-darwin-x64@4.1.14': 2064 optional: true 2065 2066 + '@tailwindcss/oxide-freebsd-x64@4.1.14': 2067 optional: true 2068 2069 + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': 2070 optional: true 2071 2072 + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': 2073 optional: true 2074 2075 + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': 2076 optional: true 2077 2078 + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': 2079 optional: true 2080 2081 + '@tailwindcss/oxide-linux-x64-musl@4.1.14': 2082 optional: true 2083 2084 + '@tailwindcss/oxide-wasm32-wasi@4.1.14': 2085 optional: true 2086 2087 + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': 2088 optional: true 2089 2090 + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': 2091 optional: true 2092 2093 + '@tailwindcss/oxide@4.1.14': 2094 dependencies: 2095 detect-libc: 2.1.1 2096 tar: 7.5.1 2097 optionalDependencies: 2098 + '@tailwindcss/oxide-android-arm64': 4.1.14 2099 + '@tailwindcss/oxide-darwin-arm64': 4.1.14 2100 + '@tailwindcss/oxide-darwin-x64': 4.1.14 2101 + '@tailwindcss/oxide-freebsd-x64': 4.1.14 2102 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 2103 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 2104 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 2105 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 2106 + '@tailwindcss/oxide-linux-x64-musl': 4.1.14 2107 + '@tailwindcss/oxide-wasm32-wasi': 4.1.14 2108 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 2109 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 2110 2111 + '@tailwindcss/vite@4.1.14(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2))': 2112 dependencies: 2113 + '@tailwindcss/node': 4.1.14 2114 + '@tailwindcss/oxide': 4.1.14 2115 + tailwindcss: 4.1.14 2116 + vite: 7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2) 2117 2118 '@types/babel__core@7.20.5': 2119 dependencies: ··· 2162 optionalDependencies: 2163 solid-js: 1.9.9 2164 2165 + baseline-browser-mapping@2.8.10: {} 2166 2167 + browserslist@4.26.3: 2168 dependencies: 2169 + baseline-browser-mapping: 2.8.10 2170 + caniuse-lite: 1.0.30001746 2171 + electron-to-chromium: 1.5.228 2172 node-releases: 2.0.21 2173 + update-browserslist-db: 1.1.3(browserslist@4.26.3) 2174 2175 + caniuse-lite@1.0.30001746: {} 2176 2177 chownr@3.0.0: {} 2178 2179 codemirror@6.0.2: 2180 dependencies: 2181 + '@codemirror/autocomplete': 6.19.0 2182 + '@codemirror/commands': 6.9.0 2183 '@codemirror/language': 6.11.3 2184 + '@codemirror/lint': 6.9.0 2185 '@codemirror/search': 6.5.11 2186 '@codemirror/state': 6.5.2 2187 + '@codemirror/view': 6.38.4 2188 2189 confbox@0.1.8: {} 2190 ··· 2202 2203 detect-libc@2.1.1: {} 2204 2205 + electron-to-chromium@1.5.228: {} 2206 2207 enhanced-resolve@5.18.3: 2208 dependencies: 2209 graceful-fs: 4.2.11 2210 + tapable: 2.3.0 2211 2212 entities@6.0.1: {} 2213 ··· 2296 2297 is-what@4.1.16: {} 2298 2299 + jiti@2.6.1: {} 2300 2301 js-tokens@4.0.0: {} 2302 ··· 2422 picocolors: 1.1.1 2423 source-map-js: 1.2.1 2424 2425 + prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.3): 2426 dependencies: 2427 prettier: 3.6.2 2428 + typescript: 5.9.3 2429 2430 + prettier-plugin-tailwindcss@0.6.14(prettier-plugin-organize-imports@4.3.0(prettier@3.6.2)(typescript@5.9.3))(prettier@3.6.2): 2431 dependencies: 2432 prettier: 3.6.2 2433 optionalDependencies: 2434 + prettier-plugin-organize-imports: 4.3.0(prettier@3.6.2)(typescript@5.9.3) 2435 2436 prettier@3.6.2: {} 2437 ··· 2440 resolve-pkg-maps@1.0.0: 2441 optional: true 2442 2443 + rollup@4.52.3: 2444 dependencies: 2445 '@types/estree': 1.0.8 2446 optionalDependencies: 2447 + '@rollup/rollup-android-arm-eabi': 4.52.3 2448 + '@rollup/rollup-android-arm64': 4.52.3 2449 + '@rollup/rollup-darwin-arm64': 4.52.3 2450 + '@rollup/rollup-darwin-x64': 4.52.3 2451 + '@rollup/rollup-freebsd-arm64': 4.52.3 2452 + '@rollup/rollup-freebsd-x64': 4.52.3 2453 + '@rollup/rollup-linux-arm-gnueabihf': 4.52.3 2454 + '@rollup/rollup-linux-arm-musleabihf': 4.52.3 2455 + '@rollup/rollup-linux-arm64-gnu': 4.52.3 2456 + '@rollup/rollup-linux-arm64-musl': 4.52.3 2457 + '@rollup/rollup-linux-loong64-gnu': 4.52.3 2458 + '@rollup/rollup-linux-ppc64-gnu': 4.52.3 2459 + '@rollup/rollup-linux-riscv64-gnu': 4.52.3 2460 + '@rollup/rollup-linux-riscv64-musl': 4.52.3 2461 + '@rollup/rollup-linux-s390x-gnu': 4.52.3 2462 + '@rollup/rollup-linux-x64-gnu': 4.52.3 2463 + '@rollup/rollup-linux-x64-musl': 4.52.3 2464 + '@rollup/rollup-openharmony-arm64': 4.52.3 2465 + '@rollup/rollup-win32-arm64-msvc': 4.52.3 2466 + '@rollup/rollup-win32-ia32-msvc': 4.52.3 2467 + '@rollup/rollup-win32-x64-gnu': 4.52.3 2468 + '@rollup/rollup-win32-x64-msvc': 4.52.3 2469 fsevents: 2.3.3 2470 2471 semver@6.3.1: {} ··· 2495 2496 style-mod@4.1.2: {} 2497 2498 + tailwindcss@4.1.14: {} 2499 2500 + tapable@2.3.0: {} 2501 2502 tar@7.5.1: 2503 dependencies: ··· 2522 fsevents: 2.3.3 2523 optional: true 2524 2525 + typescript@5.9.3: {} 2526 2527 ufo@1.6.1: {} 2528 2529 undici-types@6.20.0: 2530 optional: true 2531 2532 + update-browserslist-db@1.1.3(browserslist@4.26.3): 2533 dependencies: 2534 + browserslist: 4.26.3 2535 escalade: 3.2.0 2536 picocolors: 1.1.1 2537 2538 validate-html-nesting@1.2.3: {} 2539 2540 + vite-plugin-solid@2.11.9(solid-js@1.9.9)(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)): 2541 dependencies: 2542 '@babel/core': 7.28.4 2543 '@types/babel__core': 7.20.5 ··· 2545 merge-anything: 5.1.7 2546 solid-js: 1.9.9 2547 solid-refresh: 0.6.3(solid-js@1.9.9) 2548 + vite: 7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2) 2549 + vitefu: 1.1.1(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)) 2550 transitivePeerDependencies: 2551 - supports-color 2552 2553 + vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2): 2554 dependencies: 2555 esbuild: 0.25.10 2556 fdir: 6.5.0(picomatch@4.0.3) 2557 picomatch: 4.0.3 2558 postcss: 8.5.6 2559 + rollup: 4.52.3 2560 tinyglobby: 0.2.15 2561 optionalDependencies: 2562 '@types/node': 22.13.1 2563 fsevents: 2.3.3 2564 + jiti: 2.6.1 2565 lightningcss: 1.30.1 2566 tsx: 4.19.2 2567 2568 + vitefu@1.1.1(vite@7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)): 2569 optionalDependencies: 2570 + vite: 7.1.8(@types/node@22.13.1)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2) 2571 2572 w3c-keyname@2.2.8: {} 2573
-21
src/components/navbar.tsx
··· 11 const NavBar = (props: { params: Params }) => { 12 const location = useLocation(); 13 const [handle, setHandle] = createSignal(props.params.repo); 14 - const [fullCid, setFullCid] = createSignal(false); 15 const [showHandle, setShowHandle] = createSignal(localStorage.showHandle === "true"); 16 - 17 - createEffect(() => { 18 - if (cid() !== undefined) setFullCid(false); 19 - }); 20 21 createEffect(async () => { 22 if (pds() !== undefined && props.params.repo) { ··· 149 </div> 150 </Show> 151 </div> 152 - <Show when={props.params.rkey && cid()}> 153 - {(cid) => ( 154 - <div class="mt-1 flex gap-2"> 155 - <Tooltip text="CID"> 156 - <span class="iconify lucide--box text-base"></span> 157 - </Tooltip> 158 - <button 159 - dir="rtl" 160 - classList={{ "bg-transparent text-left": true, truncate: !fullCid() }} 161 - onclick={() => setFullCid(!fullCid())} 162 - > 163 - {cid()} 164 - </button> 165 - </div> 166 - )} 167 - </Show> 168 </nav> 169 ); 170 };
··· 11 const NavBar = (props: { params: Params }) => { 12 const location = useLocation(); 13 const [handle, setHandle] = createSignal(props.params.repo); 14 const [showHandle, setShowHandle] = createSignal(localStorage.showHandle === "true"); 15 16 createEffect(async () => { 17 if (pds() !== undefined && props.params.repo) { ··· 144 </div> 145 </Show> 146 </div> 147 </nav> 148 ); 149 };
+11 -1
src/utils/api.ts
··· 13 PlcDidDocumentResolver, 14 WellKnownHandleResolver, 15 } from "@atcute/identity-resolver"; 16 import { Did, Handle } from "@atcute/lexicons"; 17 - import { isHandle } from "@atcute/lexicons/syntax"; 18 import { createStore } from "solid-js/store"; 19 import { setPDS } from "../components/navbar"; 20 ··· 35 }, 36 }); 37 38 const didPDSCache: Record<string, string> = {}; 39 const [labelerCache, setLabelerCache] = createStore<Record<string, string>>({}); 40 const didDocCache: Record<string, DidDocument> = {}; ··· 99 return pds; 100 }; 101 102 interface LinkData { 103 links: { 104 [key: string]: { ··· 162 labelerCache, 163 resolveDidDoc, 164 resolveHandle, 165 resolvePDS, 166 validateHandle, 167 type LinkData,
··· 13 PlcDidDocumentResolver, 14 WellKnownHandleResolver, 15 } from "@atcute/identity-resolver"; 16 + import { DohJsonLexiconAuthorityResolver } from "@atcute/lexicon-resolver"; 17 import { Did, Handle } from "@atcute/lexicons"; 18 + import { isHandle, Nsid } from "@atcute/lexicons/syntax"; 19 import { createStore } from "solid-js/store"; 20 import { setPDS } from "../components/navbar"; 21 ··· 36 }, 37 }); 38 39 + const authorityResolver = new DohJsonLexiconAuthorityResolver({ 40 + dohUrl: "https://mozilla.cloudflare-dns.com/dns-query", 41 + }); 42 + 43 const didPDSCache: Record<string, string> = {}; 44 const [labelerCache, setLabelerCache] = createStore<Record<string, string>>({}); 45 const didDocCache: Record<string, DidDocument> = {}; ··· 104 return pds; 105 }; 106 107 + const resolveLexiconAuthority = async (nsid: Nsid) => { 108 + return await authorityResolver.resolve(nsid); 109 + }; 110 + 111 interface LinkData { 112 links: { 113 [key: string]: { ··· 171 labelerCache, 172 resolveDidDoc, 173 resolveHandle, 174 + resolveLexiconAuthority, 175 resolvePDS, 176 validateHandle, 177 type LinkData,
+95 -51
src/views/record.tsx
··· 1 import { Client, CredentialManager } from "@atcute/client"; 2 import { lexiconDoc } from "@atcute/lexicon-doc"; 3 - import { ActorIdentifier, is, ResourceUri } from "@atcute/lexicons"; 4 import { A, useLocation, useNavigate, useParams } from "@solidjs/router"; 5 import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js"; 6 import { Backlinks } from "../components/backlinks.jsx"; ··· 13 import { pds, setCID } from "../components/navbar.jsx"; 14 import Tooltip from "../components/tooltip.jsx"; 15 import { setNotif } from "../layout.jsx"; 16 - import { didDocCache, resolvePDS } from "../utils/api.js"; 17 import { AtUri, uriTemplates } from "../utils/templates.js"; 18 import { lexicons } from "../utils/types/lexicons.js"; 19 import { verifyRecord } from "../utils/verify.js"; ··· 27 const [externalLink, setExternalLink] = createSignal< 28 { label: string; link: string; icon?: string } | undefined 29 >(); 30 const [validRecord, setValidRecord] = createSignal<boolean | undefined>(undefined); 31 const [validSchema, setValidSchema] = createSignal<boolean | undefined>(undefined); 32 const did = params.repo; ··· 52 } 53 setCID(res.data.cid); 54 setExternalLink(checkUri(res.data.uri, res.data.value)); 55 verify(res.data); 56 57 return res.data; ··· 94 } 95 }; 96 97 const [record, { refetch }] = createResource(fetchRecord); 98 99 const deleteRecord = async () => { ··· 119 return template(parsedUri, record); 120 }; 121 122 return ( 123 <Show when={record()} keyed> 124 <div class="flex w-full flex-col items-center"> 125 <div class="dark:shadow-dark-800 dark:bg-dark-300 mb-3 flex w-full justify-between rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 px-2 py-1.5 text-sm shadow-xs dark:border-neutral-700"> 126 <div class="flex gap-3"> 127 - <A 128 - classList={{ 129 - "flex items-center gap-1 border-b-2": true, 130 - "border-transparent hover:border-neutral-400 dark:hover:border-neutral-600": 131 - !!location.hash && location.hash !== "#record", 132 - }} 133 - href={`/at://${did}/${params.collection}/${params.rkey}#record`} 134 - > 135 - Record 136 - </A> 137 - <A 138 - classList={{ 139 - "flex items-center gap-1 border-b-2": true, 140 - "border-transparent hover:border-neutral-400 dark:hover:border-neutral-600": 141 - location.hash !== "#backlinks", 142 - }} 143 - href={`/at://${did}/${params.collection}/${params.rkey}#backlinks`} 144 - > 145 - Backlinks 146 - </A> 147 </div> 148 <div class="flex gap-1"> 149 - <div class="mr-1 flex gap-3"> 150 - <Tooltip 151 - text={ 152 - validRecord() === undefined ? "Validating" 153 - : validRecord() === false ? 154 - "Invalid record" 155 - : "Valid record" 156 - } 157 - > 158 - <span 159 - classList={{ 160 - "iconify lucide--lock-keyhole": validRecord() === true, 161 - "iconify lucide--lock-keyhole-open text-red-500 dark:text-red-400": 162 - validRecord() === false, 163 - "iconify lucide--loader-circle animate-spin": validRecord() === undefined, 164 - }} 165 - ></span> 166 - </Tooltip> 167 - <Show when={validSchema() !== undefined}> 168 - <Tooltip text={validSchema() ? "Valid schema" : "Invalid schema"}> 169 - <span 170 - class={`iconify ${validSchema() ? "lucide--file-check" : "lucide--file-x text-red-500 dark:text-red-400"}`} 171 - ></span> 172 - </Tooltip> 173 - </Show> 174 - </div> 175 <Show when={agent() && agent()?.sub === record()?.uri.split("/")[2]}> 176 <RecordEditor create={false} record={record()?.value} refetch={refetch} /> 177 <Tooltip text="Delete"> ··· 229 </div> 230 </div> 231 <Show when={!location.hash || location.hash === "#record"}> 232 - <Show when={validRecord() === false}> 233 - <div class="mb-2 break-words text-red-500 dark:text-red-400">{notice()}</div> 234 - </Show> 235 <div class="w-max max-w-screen min-w-full px-4 font-mono text-xs wrap-anywhere whitespace-pre-wrap sm:px-2 sm:text-sm md:max-w-[48rem]"> 236 <JSONValue data={record()?.value as any} repo={record()!.uri.split("/")[2]} /> 237 </div> ··· 248 </div> 249 </Suspense> 250 </ErrorBoundary> 251 </Show> 252 </div> 253 </Show>
··· 1 import { Client, CredentialManager } from "@atcute/client"; 2 import { lexiconDoc } from "@atcute/lexicon-doc"; 3 + import { ActorIdentifier, is, Nsid, ResourceUri } from "@atcute/lexicons"; 4 import { A, useLocation, useNavigate, useParams } from "@solidjs/router"; 5 import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js"; 6 import { Backlinks } from "../components/backlinks.jsx"; ··· 13 import { pds, setCID } from "../components/navbar.jsx"; 14 import Tooltip from "../components/tooltip.jsx"; 15 import { setNotif } from "../layout.jsx"; 16 + import { didDocCache, resolveLexiconAuthority, resolvePDS } from "../utils/api.js"; 17 import { AtUri, uriTemplates } from "../utils/templates.js"; 18 import { lexicons } from "../utils/types/lexicons.js"; 19 import { verifyRecord } from "../utils/verify.js"; ··· 27 const [externalLink, setExternalLink] = createSignal< 28 { label: string; link: string; icon?: string } | undefined 29 >(); 30 + const [lexiconUri, setLexiconUri] = createSignal<string>(); 31 const [validRecord, setValidRecord] = createSignal<boolean | undefined>(undefined); 32 const [validSchema, setValidSchema] = createSignal<boolean | undefined>(undefined); 33 const did = params.repo; ··· 53 } 54 setCID(res.data.cid); 55 setExternalLink(checkUri(res.data.uri, res.data.value)); 56 + resolveLexicon(params.collection as Nsid); 57 verify(res.data); 58 59 return res.data; ··· 96 } 97 }; 98 99 + const resolveLexicon = async (nsid: Nsid) => { 100 + try { 101 + const res = await resolveLexiconAuthority(nsid); 102 + setLexiconUri(`at://${res}/com.atproto.lexicon.schema/${nsid}`); 103 + console.log(res); 104 + } catch (e) { 105 + console.error(e); 106 + } 107 + }; 108 + 109 const [record, { refetch }] = createResource(fetchRecord); 110 111 const deleteRecord = async () => { ··· 131 return template(parsedUri, record); 132 }; 133 134 + const RecordTab = (props: { tab: "record" | "backlinks" | "info"; label: string }) => ( 135 + <A 136 + classList={{ 137 + "flex items-center gap-1 border-b-2": true, 138 + "border-transparent hover:border-neutral-400 dark:hover:border-neutral-600": 139 + (!!location.hash && location.hash !== `#${props.tab}`) || 140 + (!location.hash && props.tab !== "record"), 141 + }} 142 + href={`/at://${did}/${params.collection}/${params.rkey}#${props.tab}`} 143 + > 144 + {props.label} 145 + </A> 146 + ); 147 + 148 return ( 149 <Show when={record()} keyed> 150 <div class="flex w-full flex-col items-center"> 151 <div class="dark:shadow-dark-800 dark:bg-dark-300 mb-3 flex w-full justify-between rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 px-2 py-1.5 text-sm shadow-xs dark:border-neutral-700"> 152 <div class="flex gap-3"> 153 + <RecordTab tab="record" label="Record" /> 154 + <RecordTab tab="backlinks" label="Backlinks" /> 155 + <RecordTab tab="info" label="Info" /> 156 </div> 157 <div class="flex gap-1"> 158 <Show when={agent() && agent()?.sub === record()?.uri.split("/")[2]}> 159 <RecordEditor create={false} record={record()?.value} refetch={refetch} /> 160 <Tooltip text="Delete"> ··· 212 </div> 213 </div> 214 <Show when={!location.hash || location.hash === "#record"}> 215 <div class="w-max max-w-screen min-w-full px-4 font-mono text-xs wrap-anywhere whitespace-pre-wrap sm:px-2 sm:text-sm md:max-w-[48rem]"> 216 <JSONValue data={record()?.value as any} repo={record()!.uri.split("/")[2]} /> 217 </div> ··· 228 </div> 229 </Suspense> 230 </ErrorBoundary> 231 + </Show> 232 + <Show when={location.hash === "#info"}> 233 + <div class="flex w-full flex-col gap-2 px-2 text-sm"> 234 + <div> 235 + <div class="flex items-center gap-1"> 236 + <span class="iconify lucide--at-sign"></span> 237 + <p class="font-semibold">AT URI</p> 238 + </div> 239 + <div class="truncate text-xs">{record()?.uri}</div> 240 + </div> 241 + <Show when={record()?.cid}> 242 + <div> 243 + <div class="flex items-center gap-1"> 244 + <span class="iconify lucide--box"></span> 245 + <p class="font-semibold">CID</p> 246 + </div> 247 + <div class="truncate text-left text-xs" dir="rtl"> 248 + {record()?.cid} 249 + </div> 250 + </div> 251 + </Show> 252 + <div> 253 + <div class="flex items-center gap-1"> 254 + <span class="iconify lucide--lock-keyhole"></span> 255 + <p class="font-semibold">Record verification</p> 256 + <span 257 + classList={{ 258 + "iconify lucide--check text-green-500 dark:text-green-400": 259 + validRecord() === true, 260 + "iconify lucide--x text-red-500 dark:text-red-400": validRecord() === false, 261 + "iconify lucide--loader-circle animate-spin": validRecord() === undefined, 262 + }} 263 + ></span> 264 + </div> 265 + <Show when={validRecord() === false}> 266 + <div class="break-words">{notice()}</div> 267 + </Show> 268 + </div> 269 + <Show when={validSchema() !== undefined}> 270 + <div class="flex items-center gap-1"> 271 + <span class="iconify lucide--file-check"></span> 272 + <p class="font-semibold">Schema validation</p> 273 + <span 274 + class={`iconify ${validSchema() ? "lucide--check text-green-500 dark:text-green-400" : "lucide--x text-red-500 dark:text-red-400"}`} 275 + ></span> 276 + </div> 277 + </Show> 278 + <Show when={lexiconUri()}> 279 + <div> 280 + <div class="flex items-center gap-1"> 281 + <span class="iconify lucide--scroll-text"></span> 282 + <p class="font-semibold">Lexicon document</p> 283 + </div> 284 + <div class="truncate text-xs"> 285 + <A 286 + href={`/${lexiconUri()}`} 287 + class="text-blue-400 hover:underline active:underline" 288 + > 289 + {lexiconUri()} 290 + </A> 291 + </div> 292 + </div> 293 + </Show> 294 + </div> 295 </Show> 296 </div> 297 </Show>