atproto explorer pdsls.dev
atproto tool

sort imports

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