1export type DID = `did:plc:${string}` | `did:web:${string}`;
2
3export type RepoLog = {
4 commits: {
5 Author: { Name: string; Email: string; When: string };
6 Committer: { Name: string; Email: string; When: string };
7 Encoding: string;
8 Hash: number[];
9 MergeTag: string;
10 Message: string;
11 PGPSignature: string;
12 ParentHashes: number[][];
13 TreeHash: number[];
14 }[];
15 ref: string;
16 description: string;
17 log: boolean;
18 total: number;
19 page: number;
20 per_page: number;
21};
22
23export type DiffTextFragment = {
24 Comment: string;
25 OldPosition: number;
26 NewPosition: number;
27 NewLines: number;
28 LinesAdded: number;
29 LinesDeleted: number;
30 LeadingContext: number;
31 TrailingContext: number;
32 Lines: { Op: number; Line: string }[];
33 is_binary: boolean;
34 is_new: boolean;
35 is_delete: boolean;
36 is_copy: boolean;
37 is_rename: boolean;
38};
39
40export type Commit = {
41 ref: string;
42 diff: {
43 commit: {
44 message: string;
45 author: { Name: string; Email: string; When: string };
46 this: string;
47 parent: string;
48 pgp_signature: string;
49 committer: { Name: string; Email: string; When: string };
50 tree: string;
51 change_id: string;
52 };
53 stat: { files_changed: number; insertions: number; deletions: number };
54 diff: {
55 name: { old: string; new: string };
56 text_fragments: DiffTextFragment[];
57 }[];
58 };
59};
60
61export type Compare = {
62 rev1: string;
63 rev2: string;
64 format_patch?: {
65 Files?: {
66 OldName: string;
67 NewName: string;
68 IsNew: boolean;
69 IsDelete: boolean;
70 IsCopy: boolean;
71 IsRename: boolean;
72 OldMode: number;
73 NewMode: number;
74 OldOIDPrefix: string;
75 NewOIDPrefix: string;
76 Score: number;
77 TextFragments?: DiffTextFragment[];
78 }[];
79 SHA: string;
80 Author: { Name: string; Email: string };
81 AuthorDate: string;
82 Commiter: string | null;
83 CommiterDate: string;
84 Title: string;
85 Body: string;
86 SubjectPrefix: string;
87 BodyAppendix: string;
88 }[];
89 combined_patch?: {
90 OldName: string;
91 NewName: string;
92 IsNew: boolean;
93 IsDelete: boolean;
94 IsCopy: boolean;
95 IsRename: boolean;
96 OldMode: number;
97 NewMode: number;
98 OldOIDPrefix: string;
99 NewOIDPrefix: string;
100 Score: number;
101 TextFragments?: DiffTextFragment[];
102 IsBinary: boolean;
103 BinaryFragment: string | null;
104 ReverseBinaryFragment: string | null;
105 }[];
106 combined_patch_raw: string;
107};
108
109export type Branches = {
110 branches: {
111 reference: {
112 name: string;
113 hash: string;
114 };
115 commit: {
116 Hash: number[];
117 Author: {
118 Name: string;
119 Email: string;
120 When: string;
121 };
122 Committer: {
123 Name: string;
124 Email: string;
125 When: string;
126 };
127 MergeTag: string;
128 PGPSignature: string;
129 Message: string;
130 TreeHash: number[];
131 ParentHashes: number[][];
132 Encoding: string;
133 ExtraHeaders: null;
134 };
135 is_default: boolean;
136 }[];
137};
138
139export type Tags = {
140 tags: {
141 name: string;
142 hash: string;
143 tag: {
144 Hash: number[];
145 Name: string;
146 Tagger: {
147 Name: string;
148 Email: string;
149 When: string;
150 };
151 Message: string;
152 PGPSignature: string;
153 TargetType: number;
154 Target: number[];
155 };
156 message: string;
157 }[];
158};