1import type { Nsid } from '@atcute/lexicons';
2import * as v from '@atcute/lexicons/validations';
3
4export type BacklinksSource = `${Nsid}:${string}`;
5export const BacklinkSchema = v.object({
6 did: v.didString(),
7 collection: v.nsidString(),
8 rkey: v.recordKeyString()
9});
10export const BacklinksQuery = v.query('blue.microcosm.links.getBacklinks', {
11 params: v.object({
12 subject: v.resourceUriString(),
13 source: v.string(),
14 did: v.optional(v.array(v.didString())),
15 limit: v.optional(v.integer())
16 }),
17 output: {
18 type: 'lex',
19 schema: v.object({
20 total: v.integer(),
21 records: v.array(BacklinkSchema),
22 cursor: v.nullable(v.string())
23 })
24 }
25});
26export type Backlink = v.InferOutput<typeof BacklinkSchema>;
27export type Backlinks = v.InferOutput<typeof BacklinksQuery.output.schema>;