| 191 | }; |
| 192 | |
| 193 | export interface Implementation { |
| 194 | authComponent: () => void; |
| 195 | restoreUser: (user: User) => Promise<User>; |
| 196 | |
| 197 | authenticate: (credentials: Credentials) => Promise<User>; |
| 198 | logout: () => Promise<void> | void | null; |
| 199 | getToken: () => Promise<string | null>; |
| 200 | |
| 201 | getEntry: (path: string) => Promise<ImplementationEntry>; |
| 202 | entriesByFolder: ( |
| 203 | folder: string, |
| 204 | extension: string, |
| 205 | depth: number, |
| 206 | ) => Promise<ImplementationEntry[]>; |
| 207 | entriesByFiles: (files: ImplementationFile[]) => Promise<ImplementationEntry[]>; |
| 208 | |
| 209 | getMediaDisplayURL?: (displayURL: DisplayURL) => Promise<string>; |
| 210 | getMedia: (folder?: string) => Promise<ImplementationMediaFile[]>; |
| 211 | getMediaFile: (path: string) => Promise<ImplementationMediaFile>; |
| 212 | |
| 213 | persistEntry: (entry: Entry, opts: PersistOptions) => Promise<void>; |
| 214 | persistMedia: (file: AssetProxy, opts: PersistOptions) => Promise<ImplementationMediaFile>; |
| 215 | deleteFiles: (paths: string[], commitMessage: string) => Promise<void>; |
| 216 | |
| 217 | getNotes?: (collection: string, slug: string) => Promise<Note[]>; |
| 218 | addNote?: (collection: string, slug: string, note: Omit<Note, 'id'>) => Promise<Note>; |
| 219 | updateNote?: ( |
| 220 | collection: string, |
| 221 | slug: string, |
| 222 | noteId: string, |
| 223 | updates: Partial<Note>, |
| 224 | ) => Promise<Note>; |
| 225 | deleteNote?: (collection: string, slug: string, noteId: string) => Promise<void>; |
| 226 | toggleNoteResolution?: (collection: string, slug: string, noteId: string) => Promise<Note>; |
| 227 | syncNotes?: (collection: string, slug: string, localNotes: Note[]) => Promise<Note[]>; |
| 228 | reopenIssueForUnpublishedEntry?: (collection: string, slug: string) => Promise<void>; |
| 229 | |
| 230 | getPRMetadata?: ( |
| 231 | collection: string, |
| 232 | slug: string, |
| 233 | ) => Promise<{ |
| 234 | id: string; |
| 235 | url: string; |
| 236 | author: string; |
| 237 | createdAt: string; |
| 238 | } | null>; |
| 239 | |
| 240 | unpublishedEntries: () => Promise<string[]>; |
| 241 | unpublishedEntry: (args: { |
| 242 | id?: string; |
| 243 | collection?: string; |
| 244 | slug?: string; |
| 245 | }) => Promise<UnpublishedEntry>; |
| 246 | unpublishedEntryDataFile: ( |
| 247 | collection: string, |
| 248 | slug: string, |
| 249 | path: string, |
| 250 | id: string, |
nothing calls this directly
no outgoing calls
no test coverage detected