refactor: remove dead code across server, templ pages, and client modules

Deadcode-verified removals (RTA reachability from main, cross-checked
with -test and textual xrefs):

Go server:
- whole files: middleware/transaction.go, middleware/error_handler.go,
  middleware/password_validator.go (live registration machinery kept),
  handlers/sync.go, sync/offline.go
- unrouted endpoints: auth UpdateUsername/UpdateEmail, timezone
  settings handler, OPDS RegisterOPDS, Kobo LibrarySync handler,
  ReaderHandler.ShowReader, JSON-data twins on collections/library
- duplicate book-matching handlers (book_matching.go Handler twins,
  matching.go MatchingHandler twins), superseded helpers
  (router.parseUUID, handlers.ValidateDeviceToken, normalizePath,
  userExists, generateLockID)

Templ/client:
- never-routed pages: api_explorer.templ, queue.templ and their
  client modules api-explorer.ts, api-explorer-docs.ts, queue.ts
- fully orphaned wrapper modules events.ts, dom.ts
- broken clearSyncQueue (called a nonexistent endpoint) and the
  hidden, never-populated sync-queue section on the devices page
- 166+ unused exports demoted to private (knip-verified); ~85 truly
  dead declarations removed via tsc noUnusedLocals fixpoint
- stale 'interactive API Explorer' claims dropped from docs

The docs drift-gate package (internal/docs), templ-bound modules
(dashboard, stats, header, index, login, profile*, bookshelf,
collections, toast-error), sqlc-generated code, and web/static are
intentionally untouched.
This commit is contained in:
John O'Keefe committed 2026-10-25 11:06:08 -04:00
1 parent 8733e83f1f
commit 8631aa00bf
107 files changed
+689 -3443

No files matched your search

-49
View File
@@ -533,29 +533,6 @@ async function rejectDevice(registrationId: string): Promise<void> {
}
}
async function clearSyncQueue(): Promise<void> {
if (!confirm("Are you sure you want to clear all sync queue items?")) return;
const token = getToken();
if (!token) return;
try {
const response = await fetch("/api/queue/clear", {
method: "DELETE",
headers: { Authorization: `Bearer ${token}` },
});
if (response.ok) {
showToast("Sync queue cleared", "success");
} else {
showToast("Failed to clear queue", "error");
}
} catch (error) {
console.error("Failed to clear queue", error);
showToast("Failed to clear queue", "error");
}
}
function setupEventDelegation(): void {
document.addEventListener("click", (e) => {
const target = e.target as HTMLElement;
@@ -578,34 +555,8 @@ function setupEventDelegation(): void {
});
}
export {
approveDevice,
clearSyncQueue,
copyToClipboard,
deleteMapping,
editMapping,
getDeviceIcon,
handleAddDevice,
handleRevokeDevice,
handleSaveDeviceSettings,
handleSaveMapping,
hideAddDeviceModal,
hideAddMappingModal,
hideDeviceSettingsModal,
hideShelfMappingsModal,
loadCollections,
loadShelfMappings,
rejectDevice,
setupEventDelegation,
showAddDeviceModal,
showAddMappingModal,
showDeviceSettings,
showShelfMappings,
};
Alpine.data("devices", () => ({
approveDevice,
clearSyncQueue,
copyToClipboard,
deleteMapping,
editMapping,