+11
README.md
+11
README.md
···
2
2
3
3
Navigate and manage [atproto](https://atproto.com/) repositories and the records they contain, as well as watching the relay in real time (firehose + jetstream support).
4
4
5
+
### Hacking
6
+
7
+
You will need `node` and `pnpm` to get started:
8
+
9
+
```
10
+
pnpm i # install deps
11
+
pnpm dev # or pnpm run start, runs vite
12
+
pnpm build # runs vite build
13
+
pnpm serve # runs vite preview
14
+
```
15
+
5
16
### Credits
6
17
7
18
[atcute](https://github.com/mary-ext/atcute) - atproto SDK\
+1
-1
package.json
+1
-1
package.json
+5
-5
pnpm-lock.yaml
+5
-5
pnpm-lock.yaml
···
76
76
version: 1.9.8
77
77
devDependencies:
78
78
'@iconify-json/lucide':
79
-
specifier: ^1.2.61
80
-
version: 1.2.61
79
+
specifier: ^1.2.62
80
+
version: 1.2.62
81
81
'@iconify-json/lucide-lab':
82
82
specifier: ^1.2.3
83
83
version: 1.2.3
···
556
556
'@iconify-json/lucide-lab@1.2.3':
557
557
resolution: {integrity: sha512-N+8vnVt4IY/6FZi81f6nh5VhJSMYrs5KTVsT2Z/E0Wn7Lu4jJKO5fOfiTVX1YWVI4FFwQ1zVXPFb8kLAwskrjA==}
558
558
559
-
'@iconify-json/lucide@1.2.61':
560
-
resolution: {integrity: sha512-0sLmi3vyEsJ6XL/uhl0a+uphdYIW1viYkUmiuT4SK3e2R3o3GIWY9k8N+SZL++GVBbMKy9oatx8KrzyoPZ6WqQ==}
559
+
'@iconify-json/lucide@1.2.62':
560
+
resolution: {integrity: sha512-K0KfhvP5YQZ2KraOgCm6jJbwwzQCVocvXcdMpDou5uLa48QnLBRW/dQ8VDGmxHTGpwF9EqLlvnUSinH2i6xs3Q==}
561
561
562
562
'@iconify/types@2.0.0':
563
563
resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
···
1706
1706
dependencies:
1707
1707
'@iconify/types': 2.0.0
1708
1708
1709
-
'@iconify-json/lucide@1.2.61':
1709
+
'@iconify-json/lucide@1.2.62':
1710
1710
dependencies:
1711
1711
'@iconify/types': 2.0.0
1712
1712
-9
src/styles/index.css
-9
src/styles/index.css
···
12
12
width: 1em;
13
13
height: 1em;
14
14
}
15
-
16
-
.i-lucide-line-squiggle {
17
-
background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpbmUtc3F1aWdnbGUtaWNvbiBsdWNpZGUtbGluZS1zcXVpZ2dsZSI+PHBhdGggZD0iTTcgMy41YzUtMiA3IDIuNSAzIDRDMS41IDEwIDIgMTUgNSAxNmM1IDIgOS0xMCAxNC03cy41IDEzLjUtNCAxMmMtNS0yLjUuNS0xMSA2LTIiLz48L3N2Zz4=")
18
-
no-repeat;
19
-
background-size: 100% 100%;
20
-
background-color: transparent;
21
-
width: 1em;
22
-
height: 1em;
23
-
}
+1
-1
src/views/record.tsx
+1
-1
src/views/record.tsx
···
131
131
<Show when={record()}>
132
132
<div class="dark:shadow-dark-900/80 dark:bg-dark-300 my-3 flex gap-3 rounded-full bg-white px-2.5 py-2 shadow-sm">
133
133
<Tooltip text="Copy record">
134
-
<button onclick={() => addToClipboard(JSON.stringify(record()?.value))}>
134
+
<button onclick={() => addToClipboard(JSON.stringify(record()?.value, null, 2))}>
135
135
<div class="i-lucide-copy text-xl" />
136
136
</button>
137
137
</Tooltip>