forked from pdsls.dev/pdsls
atproto explorer

sort imports

+2 -1
.prettierrc
··· 1 1 { 2 2 "printWidth": 100, 3 3 "experimentalTernaries": true, 4 - "plugins": ["prettier-plugin-tailwindcss"] 4 + "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss"], 5 + "pluginSearchDirs": false 5 6 }
+1
package.json
··· 13 13 "@iconify/tailwind4": "^1.0.6", 14 14 "@tailwindcss/vite": "^4.1.12", 15 15 "prettier": "^3.6.2", 16 + "prettier-plugin-organize-imports": "^4.2.0", 16 17 "prettier-plugin-tailwindcss": "^0.6.14", 17 18 "tailwindcss": "^4.1.12", 18 19 "typescript": "^5.9.2",
+22 -2
pnpm-lock.yaml
··· 111 111 prettier: 112 112 specifier: ^3.6.2 113 113 version: 3.6.2 114 + prettier-plugin-organize-imports: 115 + specifier: ^4.2.0 116 + version: 4.2.0(prettier@3.6.2)(typescript@5.9.2) 114 117 prettier-plugin-tailwindcss: 115 118 specifier: ^0.6.14 116 - version: 0.6.14(prettier@3.6.2) 119 + version: 0.6.14(prettier-plugin-organize-imports@4.2.0(prettier@3.6.2)(typescript@5.9.2))(prettier@3.6.2) 117 120 tailwindcss: 118 121 specifier: ^4.1.12 119 122 version: 4.1.12 ··· 1194 1197 postcss@8.5.6: 1195 1198 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1196 1199 engines: {node: ^10 || ^12 || >=14} 1200 + 1201 + prettier-plugin-organize-imports@4.2.0: 1202 + resolution: {integrity: sha512-Zdy27UhlmyvATZi67BTnLcKTo8fm6Oik59Sz6H64PgZJVs6NJpPD1mT240mmJn62c98/QaL+r3kx9Q3gRpDajg==} 1203 + peerDependencies: 1204 + prettier: '>=2.0' 1205 + typescript: '>=2.9' 1206 + vue-tsc: ^2.1.0 || 3 1207 + peerDependenciesMeta: 1208 + vue-tsc: 1209 + optional: true 1197 1210 1198 1211 prettier-plugin-tailwindcss@0.6.14: 1199 1212 resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} ··· 2384 2397 picocolors: 1.1.1 2385 2398 source-map-js: 1.2.1 2386 2399 2387 - prettier-plugin-tailwindcss@0.6.14(prettier@3.6.2): 2400 + prettier-plugin-organize-imports@4.2.0(prettier@3.6.2)(typescript@5.9.2): 2401 + dependencies: 2402 + prettier: 3.6.2 2403 + typescript: 5.9.2 2404 + 2405 + prettier-plugin-tailwindcss@0.6.14(prettier-plugin-organize-imports@4.2.0(prettier@3.6.2)(typescript@5.9.2))(prettier@3.6.2): 2388 2406 dependencies: 2389 2407 prettier: 3.6.2 2408 + optionalDependencies: 2409 + prettier-plugin-organize-imports: 4.2.0(prettier@3.6.2)(typescript@5.9.2) 2390 2410 2391 2411 prettier@3.6.2: {} 2392 2412
+6 -6
src/components/account.tsx
··· 1 - import { createSignal, onMount, For, Show } from "solid-js"; 2 - import { deleteStoredSession, getSession, OAuthUserAgent } from "@atcute/oauth-browser-client"; 3 - import { agent, Login, retrieveSession, setAgent } from "./login.jsx"; 1 + import { Client, CredentialManager } from "@atcute/client"; 4 2 import { Did } from "@atcute/lexicons"; 5 - import { resolveDidDoc } from "../utils/api.js"; 3 + import { deleteStoredSession, getSession, OAuthUserAgent } from "@atcute/oauth-browser-client"; 4 + import { A } from "@solidjs/router"; 5 + import { createSignal, For, onMount, Show } from "solid-js"; 6 6 import { createStore } from "solid-js/store"; 7 - import { Client, CredentialManager } from "@atcute/client"; 7 + import { resolveDidDoc } from "../utils/api.js"; 8 + import { agent, Login, retrieveSession, setAgent } from "./login.jsx"; 8 9 import { Modal } from "./modal.jsx"; 9 - import { A } from "@solidjs/router"; 10 10 11 11 const AccountManager = () => { 12 12 const [openManager, setOpenManager] = createSignal(false);
+2 -2
src/components/backlinks.tsx
··· 1 - import { createSignal, onMount, Show, For, createResource } from "solid-js"; 2 - import { getRecordBacklinks, getDidBacklinks, getAllBacklinks } from "../utils/api.js"; 3 1 import * as TID from "@atcute/tid"; 2 + import { createResource, createSignal, For, onMount, Show } from "solid-js"; 3 + import { getAllBacklinks, getDidBacklinks, getRecordBacklinks } from "../utils/api.js"; 4 4 import { localDateFromTimestamp } from "../utils/date.js"; 5 5 import { Button } from "./button.jsx"; 6 6
+8 -8
src/components/create.tsx
··· 1 - import { createSignal, Show } from "solid-js"; 2 1 import { Client } from "@atcute/client"; 3 - import { agent } from "../components/login.jsx"; 4 - import { Editor, editorView } from "../components/editor.jsx"; 5 - import Tooltip from "./tooltip.jsx"; 6 - import { useNavigate, useParams } from "@solidjs/router"; 7 2 import { remove } from "@mary/exif-rm"; 8 - import { TextInput } from "./text-input.jsx"; 9 - import { Modal } from "./modal.jsx"; 10 - import { Button } from "./button.jsx"; 3 + import { useNavigate, useParams } from "@solidjs/router"; 4 + import { createSignal, Show } from "solid-js"; 5 + import { Editor, editorView } from "../components/editor.jsx"; 6 + import { agent } from "../components/login.jsx"; 11 7 import { setNotif } from "../layout.jsx"; 8 + import { Button } from "./button.jsx"; 9 + import { Modal } from "./modal.jsx"; 10 + import { TextInput } from "./text-input.jsx"; 11 + import Tooltip from "./tooltip.jsx"; 12 12 13 13 export const RecordEditor = (props: { create: boolean; record?: any; refetch?: any }) => { 14 14 const navigate = useNavigate();
+5 -5
src/components/editor.tsx
··· 1 - import { onCleanup, onMount } from "solid-js"; 2 - import { basicSetup, EditorView } from "codemirror"; 1 + import { indentWithTab } from "@codemirror/commands"; 3 2 import { json, jsonParseLinter } from "@codemirror/lang-json"; 4 3 import { linter } from "@codemirror/lint"; 5 - import { basicLight } from "@fsegurai/codemirror-theme-basic-light"; 6 - import { basicDark } from "@fsegurai/codemirror-theme-basic-dark"; 7 4 import { Compartment } from "@codemirror/state"; 8 - import { indentWithTab } from "@codemirror/commands"; 9 5 import { keymap } from "@codemirror/view"; 6 + import { basicDark } from "@fsegurai/codemirror-theme-basic-dark"; 7 + import { basicLight } from "@fsegurai/codemirror-theme-basic-light"; 8 + import { basicSetup, EditorView } from "codemirror"; 9 + import { onCleanup, onMount } from "solid-js"; 10 10 11 11 export let editorView: EditorView; 12 12
+3 -3
src/components/json.tsx
··· 1 - import VideoPlayer from "./video-player"; 1 + import { A } from "@solidjs/router"; 2 2 import { createEffect, createSignal, For, Show } from "solid-js"; 3 - import { A } from "@solidjs/router"; 3 + import { hideMedia } from "../views/settings"; 4 4 import { pds } from "./navbar"; 5 5 import Tooltip from "./tooltip"; 6 - import { hideMedia } from "../views/settings"; 6 + import VideoPlayer from "./video-player"; 7 7 8 8 interface AtBlob { 9 9 $type: string;
+3 -3
src/components/login.tsx
··· 1 - import { createSignal } from "solid-js"; 1 + import { Did } from "@atcute/lexicons"; 2 + import { isHandle } from "@atcute/lexicons/syntax"; 2 3 import { 3 4 configureOAuth, 4 5 createAuthorizationUrl, ··· 10 11 resolveFromService, 11 12 type Session, 12 13 } from "@atcute/oauth-browser-client"; 13 - import { Did } from "@atcute/lexicons"; 14 - import { isHandle } from "@atcute/lexicons/syntax"; 14 + import { createSignal } from "solid-js"; 15 15 import { TextInput } from "./text-input"; 16 16 17 17 configureOAuth({
+2 -2
src/components/navbar.tsx
··· 1 + import { Did, Handle } from "@atcute/lexicons"; 1 2 import { A, Params, useLocation } from "@solidjs/router"; 2 - import Tooltip from "./tooltip"; 3 3 import { createEffect, createSignal, onMount, Show } from "solid-js"; 4 4 import { didDocCache, labelerCache, validateHandle } from "../utils/api"; 5 - import { Did, Handle } from "@atcute/lexicons"; 6 5 import { addToClipboard } from "../utils/copy"; 6 + import Tooltip from "./tooltip"; 7 7 8 8 export const [pds, setPDS] = createSignal<string>(); 9 9 export const [cid, setCID] = createSignal<string>();
+2 -2
src/components/search.tsx
··· 1 - import { resolveHandle } from "../utils/api.js"; 1 + import { Handle } from "@atcute/lexicons"; 2 2 import { useNavigate } from "@solidjs/router"; 3 3 import { createSignal, Show } from "solid-js"; 4 - import { Handle } from "@atcute/lexicons"; 4 + import { resolveHandle } from "../utils/api.js"; 5 5 6 6 const Search = () => { 7 7 const navigate = useNavigate();
+6 -6
src/index.tsx
··· 1 1 /* @refresh reload */ 2 + import { Route, Router } from "@solidjs/router"; 2 3 import { render } from "solid-js/web"; 3 - import "./styles/index.css"; 4 - import { Route, Router } from "@solidjs/router"; 5 4 import { Layout } from "./layout.tsx"; 6 - import { Home } from "./views/home.tsx"; 7 - import { PdsView } from "./views/pds.tsx"; 8 - import { RepoView } from "./views/repo.tsx"; 5 + import "./styles/index.css"; 9 6 import { CollectionView } from "./views/collection.tsx"; 7 + import { Home } from "./views/home.tsx"; 10 8 import { LabelView } from "./views/labels.tsx"; 11 - import { StreamView } from "./views/stream.tsx"; 9 + import { PdsView } from "./views/pds.tsx"; 12 10 import { RecordView } from "./views/record.tsx"; 11 + import { RepoView } from "./views/repo.tsx"; 13 12 import { Settings } from "./views/settings.tsx"; 13 + import { StreamView } from "./views/stream.tsx"; 14 14 15 15 render( 16 16 () => (
+6 -6
src/layout.tsx
··· 1 - import { createEffect, createSignal, ErrorBoundary, onMount, Show, Suspense } from "solid-js"; 1 + import { Handle } from "@atcute/lexicons"; 2 + import { Meta, MetaProvider } from "@solidjs/meta"; 2 3 import { A, RouteSectionProps, useLocation, useNavigate } from "@solidjs/router"; 3 - import { agent } from "./components/login.jsx"; 4 + import { createEffect, createSignal, ErrorBoundary, onMount, Show, Suspense } from "solid-js"; 5 + import { AccountManager } from "./components/account.jsx"; 4 6 import { RecordEditor } from "./components/create.jsx"; 7 + import { agent } from "./components/login.jsx"; 5 8 import { NavBar } from "./components/navbar.jsx"; 6 9 import { Search } from "./components/search.jsx"; 7 - import { AccountManager } from "./components/account.jsx"; 8 - import { resolveHandle } from "./utils/api.js"; 9 - import { Meta, MetaProvider } from "@solidjs/meta"; 10 - import { Handle } from "@atcute/lexicons"; 11 10 import { themeEvent, ThemeSelection } from "./components/theme.jsx"; 11 + import { resolveHandle } from "./utils/api.js"; 12 12 13 13 export const [notif, setNotif] = createSignal<{ 14 14 show: boolean;
+3 -5
src/utils/api.ts
··· 1 - import { createStore } from "solid-js/store"; 2 - 3 1 import "@atcute/atproto"; 4 2 import { 5 3 type DidDocument, ··· 18 16 } from "@atcute/identity-resolver"; 19 17 import { Did, Handle } from "@atcute/lexicons"; 20 18 import { isHandle } from "@atcute/lexicons/syntax"; 21 - 19 + import { createStore } from "solid-js/store"; 22 20 import { setPDS } from "../components/navbar"; 23 21 24 22 const didDocumentResolver = new CompositeDidDocumentResolver({ ··· 167 165 getPDS, 168 166 getRecordBacklinks, 169 167 labelerCache, 170 - resolveHandle, 171 168 resolveDidDoc, 172 - validateHandle, 169 + resolveHandle, 173 170 resolvePDS, 171 + validateHandle, 174 172 type LinkData, 175 173 };
-1
src/utils/types/lexicons.ts
··· 17 17 AppBskyLabelerService, 18 18 ChatBskyActorDeclaration, 19 19 } from "@atcute/bluesky"; 20 - 21 20 import { 22 21 ShTangledActorProfile, 23 22 ShTangledFeedStar,
+1 -2
src/utils/verify.ts
··· 1 - import { Client } from "@atcute/client"; 2 - 3 1 import * as CAR from "@atcute/car"; 4 2 import { CarReader } from "@atcute/car/v4"; 5 3 import * as CBOR from "@atcute/cbor"; 6 4 import * as CID from "@atcute/cid"; 5 + import { Client } from "@atcute/client"; 7 6 import { type FoundPublicKey, getPublicKeyFromDidController, verifySig } from "@atcute/crypto"; 8 7 import { type DidDocument, getAtprotoVerificationMaterial } from "@atcute/identity"; 9 8 import { Did } from "@atcute/lexicons";
+1 -1
src/views/blob.tsx
··· 1 - import { createResource, createSignal, For, Show } from "solid-js"; 2 1 import { Client, CredentialManager } from "@atcute/client"; 2 + import { createResource, createSignal, For, Show } from "solid-js"; 3 3 import { Button } from "../components/button"; 4 4 5 5 const LIMIT = 1000;
+10 -10
src/views/collection.tsx
··· 1 - import { createEffect, createResource, createSignal, For, Show, untrack } from "solid-js"; 2 - import { CredentialManager, Client } from "@atcute/client"; 3 - import { A, useParams } from "@solidjs/router"; 4 - import { resolvePDS } from "../utils/api.js"; 1 + import { ComAtprotoRepoApplyWrites, ComAtprotoRepoGetRecord } from "@atcute/atproto"; 2 + import { Client, CredentialManager } from "@atcute/client"; 3 + import { $type, ActorIdentifier, InferXRPCBodyOutput } from "@atcute/lexicons"; 5 4 import * as TID from "@atcute/tid"; 5 + import { A, useParams } from "@solidjs/router"; 6 + import { createEffect, createResource, createSignal, For, Show, untrack } from "solid-js"; 7 + import { createStore } from "solid-js/store"; 8 + import { Button } from "../components/button.jsx"; 6 9 import { JSONType, JSONValue } from "../components/json.jsx"; 7 10 import { agent } from "../components/login.jsx"; 8 - import { createStore } from "solid-js/store"; 9 - import Tooltip from "../components/tooltip.jsx"; 10 - import { localDateFromTimestamp } from "../utils/date.js"; 11 - import { $type, ActorIdentifier, InferXRPCBodyOutput } from "@atcute/lexicons"; 12 - import { ComAtprotoRepoApplyWrites, ComAtprotoRepoGetRecord } from "@atcute/atproto"; 13 11 import { TextInput } from "../components/text-input.jsx"; 14 - import { Button } from "../components/button.jsx"; 12 + import Tooltip from "../components/tooltip.jsx"; 15 13 import { setNotif } from "../layout.jsx"; 14 + import { resolvePDS } from "../utils/api.js"; 15 + import { localDateFromTimestamp } from "../utils/date.js"; 16 16 17 17 interface AtprotoRecord { 18 18 rkey: string;
+4 -4
src/views/labels.tsx
··· 1 - import { createResource, createSignal, For, onMount, Show } from "solid-js"; 1 + import { ComAtprotoLabelDefs } from "@atcute/atproto"; 2 2 import { Client, CredentialManager } from "@atcute/client"; 3 3 import { A, useParams, useSearchParams } from "@solidjs/router"; 4 + import { createResource, createSignal, For, onMount, Show } from "solid-js"; 5 + import { Button } from "../components/button.jsx"; 6 + import { TextInput } from "../components/text-input.jsx"; 4 7 import { labelerCache, resolvePDS } from "../utils/api.js"; 5 8 import { localDateFromTimestamp } from "../utils/date.js"; 6 - import { ComAtprotoLabelDefs } from "@atcute/atproto"; 7 - import { TextInput } from "../components/text-input.jsx"; 8 - import { Button } from "../components/button.jsx"; 9 9 10 10 const LabelView = () => { 11 11 const params = useParams();
+5 -5
src/views/pds.tsx
··· 1 - import { createSignal, For, Show, createResource } from "solid-js"; 1 + import { ComAtprotoServerDescribeServer, ComAtprotoSyncListRepos } from "@atcute/atproto"; 2 2 import { Client, CredentialManager } from "@atcute/client"; 3 + import { InferXRPCBodyOutput } from "@atcute/lexicons"; 4 + import * as TID from "@atcute/tid"; 3 5 import { A, useParams } from "@solidjs/router"; 6 + import { createResource, createSignal, For, Show } from "solid-js"; 7 + import { Button } from "../components/button"; 4 8 import { setPDS } from "../components/navbar"; 5 9 import Tooltip from "../components/tooltip"; 6 - import { InferXRPCBodyOutput } from "@atcute/lexicons"; 7 - import { ComAtprotoServerDescribeServer, ComAtprotoSyncListRepos } from "@atcute/atproto"; 8 - import * as TID from "@atcute/tid"; 9 10 import { localDateFromTimestamp } from "../utils/date"; 10 - import { Button } from "../components/button"; 11 11 12 12 const LIMIT = 1000; 13 13
+10 -13
src/views/record.tsx
··· 1 - import { CredentialManager, Client } from "@atcute/client"; 2 - 1 + import { Client, CredentialManager } from "@atcute/client"; 2 + import { lexiconDoc } from "@atcute/lexicon-doc"; 3 + import { ActorIdentifier, is } from "@atcute/lexicons"; 3 4 import { A, useLocation, useNavigate, useParams } from "@solidjs/router"; 4 5 import { createResource, createSignal, ErrorBoundary, Show, Suspense } from "solid-js"; 5 - 6 6 import { Backlinks } from "../components/backlinks.jsx"; 7 + import { Button } from "../components/button.jsx"; 8 + import { RecordEditor } from "../components/create.jsx"; 7 9 import { JSONValue } from "../components/json.jsx"; 8 10 import { agent } from "../components/login.jsx"; 11 + import { Modal } from "../components/modal.jsx"; 9 12 import { pds, setCID, setValidRecord, setValidSchema, validRecord } from "../components/navbar.jsx"; 10 - 13 + import Tooltip from "../components/tooltip.jsx"; 14 + import { setNotif } from "../layout.jsx"; 11 15 import { didDocCache, resolvePDS } from "../utils/api.js"; 16 + import { addToClipboard } from "../utils/copy.js"; 12 17 import { AtUri, uriTemplates } from "../utils/templates.js"; 13 - import { verifyRecord } from "../utils/verify.js"; 14 - import { ActorIdentifier, is } from "@atcute/lexicons"; 15 - import { lexiconDoc } from "@atcute/lexicon-doc"; 16 18 import { lexicons } from "../utils/types/lexicons.js"; 17 - import { RecordEditor } from "../components/create.jsx"; 18 - import { addToClipboard } from "../utils/copy.js"; 19 - import Tooltip from "../components/tooltip.jsx"; 20 - import { Modal } from "../components/modal.jsx"; 21 - import { Button } from "../components/button.jsx"; 22 - import { setNotif } from "../layout.jsx"; 19 + import { verifyRecord } from "../utils/verify.js"; 23 20 24 21 export const RecordView = () => { 25 22 const location = useLocation();
+12 -12
src/views/repo.tsx
··· 1 - import { createSignal, For, Show, createResource, Suspense, ErrorBoundary } from "solid-js"; 2 1 import { Client, CredentialManager } from "@atcute/client"; 3 - import { A, useLocation, useNavigate, useParams } from "@solidjs/router"; 4 - import { didDocCache, resolvePDS } from "../utils/api.js"; 5 - import { Backlinks } from "../components/backlinks.jsx"; 6 - import { ActorIdentifier } from "@atcute/lexicons"; 7 - import { DidDocument } from "@atcute/identity"; 8 - import { BlobView } from "./blob.jsx"; 9 - import { TextInput } from "../components/text-input.jsx"; 10 - import Tooltip from "../components/tooltip.jsx"; 2 + import { parsePublicMultikey } from "@atcute/crypto"; 11 3 import { 12 4 CompatibleOperationOrTombstone, 13 5 defs, 14 6 IndexedEntry, 15 7 processIndexedEntryLog, 16 8 } from "@atcute/did-plc"; 17 - import { createOperationHistory, DiffEntry, groupBy } from "../utils/plc-logs.js"; 18 - import { localDateFromTimestamp } from "../utils/date.js"; 9 + import { DidDocument } from "@atcute/identity"; 10 + import { ActorIdentifier } from "@atcute/lexicons"; 11 + import { A, useLocation, useNavigate, useParams } from "@solidjs/router"; 12 + import { createResource, createSignal, ErrorBoundary, For, Show, Suspense } from "solid-js"; 13 + import { Backlinks } from "../components/backlinks.jsx"; 19 14 import { Button } from "../components/button.jsx"; 20 - import { parsePublicMultikey } from "@atcute/crypto"; 15 + import { TextInput } from "../components/text-input.jsx"; 16 + import Tooltip from "../components/tooltip.jsx"; 17 + import { didDocCache, resolvePDS } from "../utils/api.js"; 18 + import { localDateFromTimestamp } from "../utils/date.js"; 19 + import { createOperationHistory, DiffEntry, groupBy } from "../utils/plc-logs.js"; 20 + import { BlobView } from "./blob.jsx"; 21 21 22 22 type Tab = "collections" | "backlinks" | "identity" | "blobs"; 23 23 type PlcEvent = "handle" | "rotation_key" | "service" | "verification_method";
+4 -4
src/views/stream.tsx
··· 1 - import { createSignal, For, Show, onCleanup, onMount } from "solid-js"; 2 - import { JSONValue } from "../components/json"; 3 - import { A, useLocation, useSearchParams } from "@solidjs/router"; 4 1 import { Firehose } from "@skyware/firehose"; 5 - import { TextInput } from "../components/text-input"; 2 + import { A, useLocation, useSearchParams } from "@solidjs/router"; 3 + import { createSignal, For, onCleanup, onMount, Show } from "solid-js"; 6 4 import { Button } from "../components/button"; 5 + import { JSONValue } from "../components/json"; 6 + import { TextInput } from "../components/text-input"; 7 7 8 8 const LIMIT = 25; 9 9 type Parameter = { name: string; param: string | string[] | undefined };
+1 -1
vite.config.ts
··· 1 + import tailwindcss from "@tailwindcss/vite"; 1 2 import { defineConfig } from "vite"; 2 3 import solidPlugin from "vite-plugin-solid"; 3 4 import metadata from "./public/oauth-client-metadata.json"; 4 - import tailwindcss from "@tailwindcss/vite"; 5 5 6 6 const SERVER_HOST = "127.0.0.1"; 7 7 const SERVER_PORT = 13213;