tangled
alpha
login
or
join now
baileytownsend.dev
/
repo-walk-example
3
fork
atom
Shows how to get repo export and walk it in TypeScript
walktherepo.wisp.place
3
fork
atom
overview
issues
pulls
pipelines
More changes
baileytownsend.dev
2 months ago
105a6fa4
d99b2b90
+3
-93
3 changed files
expand all
collapse all
unified
split
index.html
lexicons
com
atproto
sync
getRepo.json
src
lib
RepoStats.svelte
+3
-1
index.html
···
4
4
<meta charset="UTF-8" />
5
5
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
-
<title>repo-walk-example</title>
7
7
+
<title>Repo Walking</title>
8
8
+
<meta name="description" content="Walk the repo, count the steps.">
9
9
+
<meta name="og:description" content="Walk the repo, count the steps.">
8
10
</head>
9
11
<body>
10
12
<div id="app"></div>
-46
lexicons/com/atproto/sync/getRepo.json
···
1
1
-
{
2
2
-
"id": "com.atproto.sync.getRepo",
3
3
-
"defs": {
4
4
-
"main": {
5
5
-
"type": "query",
6
6
-
"errors": [
7
7
-
{
8
8
-
"name": "RepoNotFound"
9
9
-
},
10
10
-
{
11
11
-
"name": "RepoTakendown"
12
12
-
},
13
13
-
{
14
14
-
"name": "RepoSuspended"
15
15
-
},
16
16
-
{
17
17
-
"name": "RepoDeactivated"
18
18
-
}
19
19
-
],
20
20
-
"output": {
21
21
-
"encoding": "application/vnd.ipld.car"
22
22
-
},
23
23
-
"parameters": {
24
24
-
"type": "params",
25
25
-
"required": [
26
26
-
"did"
27
27
-
],
28
28
-
"properties": {
29
29
-
"did": {
30
30
-
"type": "string",
31
31
-
"format": "did",
32
32
-
"description": "The DID of the repo."
33
33
-
},
34
34
-
"since": {
35
35
-
"type": "string",
36
36
-
"format": "tid",
37
37
-
"description": "The revision ('rev') of the repo to create a diff from."
38
38
-
}
39
39
-
}
40
40
-
},
41
41
-
"description": "Download a repository export as CAR file. Optionally only a 'diff' since a previous revision. Does not require auth; implemented by PDS."
42
42
-
}
43
43
-
},
44
44
-
"$type": "com.atproto.lexicon.schema",
45
45
-
"lexicon": 1
46
46
-
}
-46
src/lib/RepoStats.svelte
···
126
126
</ol>
127
127
{/if}
128
128
</div>
129
129
-
130
130
-
<style>
131
131
-
div::after {
132
132
-
font: 800 40px system-ui;
133
133
-
content: counter(count);
134
134
-
animation: counter 5s linear infinite alternate;
135
135
-
counter-reset: count 0;
136
136
-
}
137
137
-
138
138
-
@keyframes counter {
139
139
-
0% {
140
140
-
counter-increment: count 0;
141
141
-
}
142
142
-
10% {
143
143
-
counter-increment: count 1;
144
144
-
}
145
145
-
20% {
146
146
-
counter-increment: count 2;
147
147
-
}
148
148
-
30% {
149
149
-
counter-increment: count 3;
150
150
-
}
151
151
-
40% {
152
152
-
counter-increment: count 4;
153
153
-
}
154
154
-
50% {
155
155
-
counter-increment: count 5;
156
156
-
}
157
157
-
60% {
158
158
-
counter-increment: count 6;
159
159
-
}
160
160
-
70% {
161
161
-
counter-increment: count 7;
162
162
-
}
163
163
-
80% {
164
164
-
counter-increment: count 8;
165
165
-
}
166
166
-
90% {
167
167
-
counter-increment: count 9;
168
168
-
}
169
169
-
100% {
170
170
-
counter-increment: count 10;
171
171
-
}
172
172
-
}
173
173
-
174
174
-
</style>