SYMBOL INDEX (165 symbols across 45 files) FILE: docat/docat/app.py function lifespan (line 47) | async def lifespan(_: FastAPI): function get_db (line 53) | def get_db() -> TinyDB: function get_stats (line 71) | def get_stats(): function get_projects (line 78) | def get_projects(include_hidden: bool = False): function get_project (line 90) | def get_project(project, include_hidden: bool = False): function upload_icon (line 100) | def upload_icon( function hide_version (line 144) | def hide_version( function show_version (line 179) | def show_version( function upload (line 213) | def upload( function tag (line 272) | def tag(project: str, version: str, new_tag: str, response: Response): function claim (line 293) | def claim(project: str, db: TinyDB = Depends(get_db)): function rename (line 309) | def rename( function delete (line 348) | def delete( function check_token_for_project (line 372) | def check_token_for_project(db, token, project) -> TokenStatus: FILE: docat/docat/models.py class TokenStatus (line 8) | class TokenStatus: class ApiResponse (line 13) | class ApiResponse(BaseModel): class ClaimResponse (line 17) | class ClaimResponse(ApiResponse): class ProjectVersion (line 21) | class ProjectVersion(BaseModel): class Project (line 28) | class Project(BaseModel): class Projects (line 35) | class Projects(BaseModel): class Stats (line 39) | class Stats(BaseModel): class ProjectDetail (line 45) | class ProjectDetail(BaseModel): FILE: docat/docat/utils.py function is_dir (line 20) | def is_dir(self): function create_symlink (line 39) | def create_symlink(source, destination): function extract_archive (line 57) | def extract_archive(target_file, destination): function remove_docs (line 75) | def remove_docs(project: str, version: str, upload_folder_path: Path): function calculate_token (line 110) | def calculate_token(password, salt): function is_forbidden_project_name (line 122) | def is_forbidden_project_name(name: str) -> bool: function readable_size (line 142) | def readable_size(bytes: int) -> str: function get_dir_size (line 166) | def get_dir_size(path: Path) -> int: function get_system_stats (line 186) | def get_system_stats(upload_folder_path: Path) -> Stats: function get_all_projects (line 214) | def get_all_projects(upload_folder_path: Path, include_hidden: bool) -> ... function get_version_timestamp (line 246) | def get_version_timestamp(version_folder: Path) -> datetime: function get_project_details (line 253) | def get_project_details(upload_folder_path: Path, project_name: str, inc... FILE: docat/tests/conftest.py function setup_docat_paths (line 13) | def setup_docat_paths(): function client (line 29) | def client(): function client_with_claimed_project (line 38) | def client_with_claimed_project(client): function temp_project_version (line 46) | def temp_project_version(): FILE: docat/tests/test_claim.py function test_successfully_claim_token (line 1) | def test_successfully_claim_token(client): function test_already_claimed (line 9) | def test_already_claimed(client): FILE: docat/tests/test_delete.py function test_successfully_delete (line 4) | def test_successfully_delete(client_with_claimed_project): function test_no_valid_token_delete (line 10) | def test_no_valid_token_delete(client_with_claimed_project): function test_no_token_delete (line 19) | def test_no_token_delete(client_with_claimed_project): FILE: docat/tests/test_hide_show.py function test_hide (line 9) | def test_hide(_, client_with_claimed_project): function test_hide_only_version_not_listed_in_projects (line 44) | def test_hide_only_version_not_listed_in_projects(_, client_with_claimed... function test_hide_creates_hidden_file (line 86) | def test_hide_creates_hidden_file(client_with_claimed_project): function test_hide_fails_project_does_not_exist (line 108) | def test_hide_fails_project_does_not_exist(client_with_claimed_project): function test_hide_fails_version_does_not_exist (line 120) | def test_hide_fails_version_does_not_exist(client_with_claimed_project): function test_hide_fails_already_hidden (line 139) | def test_hide_fails_already_hidden(client_with_claimed_project): function test_hide_fails_no_token (line 163) | def test_hide_fails_no_token(client_with_claimed_project): function test_hide_fails_invalid_token (line 182) | def test_hide_fails_invalid_token(client_with_claimed_project): function test_show (line 202) | def test_show(_, client_with_claimed_project): function test_show_deletes_hidden_file (line 241) | def test_show_deletes_hidden_file(client_with_claimed_project): function test_show_fails_project_does_not_exist (line 268) | def test_show_fails_project_does_not_exist(client_with_claimed_project): function test_show_fails_version_does_not_exist (line 280) | def test_show_fails_version_does_not_exist(client_with_claimed_project): function test_show_fails_already_shown (line 304) | def test_show_fails_already_shown(client_with_claimed_project): function test_show_fails_no_token (line 323) | def test_show_fails_no_token(client_with_claimed_project): function test_show_fails_invalid_token (line 347) | def test_show_fails_invalid_token(client_with_claimed_project): function test_hide_and_show_with_tag (line 372) | def test_hide_and_show_with_tag(_, client_with_claimed_project): FILE: docat/tests/test_project.py function test_project_api (line 16) | def test_project_api(_, temp_project_version): function test_project_api_without_any_projects (line 46) | def test_project_api_without_any_projects(): function test_project_details_api (line 54) | def test_project_details_api(_, temp_project_version): function test_project_details_api_with_a_project_that_does_not_exist (line 71) | def test_project_details_api_with_a_project_that_does_not_exist(): function test_get_project_details_with_hidden_versions (line 79) | def test_get_project_details_with_hidden_versions(_, client_with_claimed... function test_project_details_without_hidden_versions (line 112) | def test_project_details_without_hidden_versions(_, client_with_claimed_... function test_include_hidden_parameter_for_get_projects (line 141) | def test_include_hidden_parameter_for_get_projects(_, client_with_claime... function test_include_hidden_parameter_for_get_project_details (line 205) | def test_include_hidden_parameter_for_get_project_details(_, client_with... FILE: docat/tests/test_rename.py function test_rename_fail_project_does_not_exist (line 10) | def test_rename_fail_project_does_not_exist(client_with_claimed_project): function test_rename_fail_new_project_name_already_used (line 19) | def test_rename_fail_new_project_name_already_used(client_with_claimed_p... function test_rename_not_authenticated (line 38) | def test_rename_not_authenticated(client_with_claimed_project): function test_rename_success (line 53) | def test_rename_success(client_with_claimed_project): function test_rename_rejects_forbidden_project_name (line 77) | def test_rename_rejects_forbidden_project_name(client_with_claimed_proje... FILE: docat/tests/test_stats.py function test_get_stats (line 18) | def test_get_stats(_, project_config, n_projects, n_versions, storage, c... FILE: docat/tests/test_upload.py function test_successfully_upload (line 8) | def test_successfully_upload(client): function test_successfully_override (line 18) | def test_successfully_override(client_with_claimed_project): function test_tags_are_not_overwritten_without_api_key (line 37) | def test_tags_are_not_overwritten_without_api_key(client_with_claimed_pr... function test_successful_tag_creation (line 57) | def test_successful_tag_creation(client_with_claimed_project): function test_create_tag_fails_when_version_does_not_exist (line 73) | def test_create_tag_fails_when_version_does_not_exist(client_with_claime... function test_create_tag_fails_on_overwrite_of_version (line 89) | def test_create_tag_fails_on_overwrite_of_version(client_with_claimed_pr... function test_create_fails_on_overwrite_of_tag (line 112) | def test_create_fails_on_overwrite_of_tag(client_with_claimed_project): function test_fails_with_invalid_token (line 136) | def test_fails_with_invalid_token(client_with_claimed_project): function test_upload_rejects_forbidden_project_name (line 156) | def test_upload_rejects_forbidden_project_name(client_with_claimed_proje... function test_upload_issues_warning_missing_index_file (line 173) | def test_upload_issues_warning_missing_index_file(client_with_claimed_pr... FILE: docat/tests/test_upload_icon.py function test_successful_icon_upload (line 13) | def test_successful_icon_upload(client_with_claimed_project): function test_icon_upload_fails_with_no_project (line 31) | def test_icon_upload_fails_with_no_project(client_with_claimed_project): function test_icon_upload_fails_no_token_and_existing_icon (line 44) | def test_icon_upload_fails_no_token_and_existing_icon(client): function test_icon_upload_successful_replacement_with_token (line 76) | def test_icon_upload_successful_replacement_with_token(client_with_claim... function test_icon_upload_successful_no_token_no_existing_icon (line 111) | def test_icon_upload_successful_no_token_no_existing_icon(client): function test_icon_upload_fails_no_image (line 129) | def test_icon_upload_fails_no_image(client_with_claimed_project): function test_get_project_recongizes_icon (line 148) | def test_get_project_recongizes_icon(_, client_with_claimed_project): FILE: docat/tests/test_utils.py function test_symlink_creation (line 8) | def test_symlink_creation(): function test_symlink_creation_overwrite_destination (line 22) | def test_symlink_creation_overwrite_destination(): function test_symlink_creation_do_not_overwrite_destination (line 40) | def test_symlink_creation_do_not_overwrite_destination(): function test_archive_artifact (line 58) | def test_archive_artifact(): function test_remove_version (line 72) | def test_remove_version(temp_project_version): function test_remove_symlink_version (line 80) | def test_remove_symlink_version(temp_project_version): function test_broken_symlinks_in_projects (line 91) | def test_broken_symlinks_in_projects(temp_project_version): FILE: web/src/App.tsx function App (line 16) | function App(): React.JSX.Element { FILE: web/src/components/DataSelect.tsx type Props (line 4) | interface Props { function DataSelect (line 13) | function DataSelect(props: Props): React.JSX.Element { FILE: web/src/components/DocumentControlButtons.tsx type Props (line 18) | interface Props { function DocumentControlButtons (line 25) | function DocumentControlButtons(props: Props): React.JSX.Element { FILE: web/src/components/FavoriteStar.tsx type Props (line 5) | interface Props { function FavoriteStar (line 10) | function FavoriteStar(props: Props): React.JSX.Element { FILE: web/src/components/FileInput.tsx type Props (line 6) | interface Props { function FileInput (line 14) | function FileInput(props: Props): React.JSX.Element { FILE: web/src/components/Footer.tsx function Footer (line 7) | function Footer(): JSX.Element { FILE: web/src/components/Header.tsx function Header (line 10) | function Header(): JSX.Element { FILE: web/src/components/IFrame.tsx type Props (line 5) | interface Props { function IFrame (line 14) | function IFrame(props: Props): React.JSX.Element { FILE: web/src/components/InfoBanner.tsx type Props (line 6) | interface Props { function Banner (line 10) | function Banner(props: Props): React.JSX.Element { FILE: web/src/components/NavigationTitle.tsx type Props (line 7) | interface Props { function NavigationTitle (line 13) | function NavigationTitle(props: Props): React.JSX.Element { FILE: web/src/components/PageLayout.tsx type Props (line 7) | interface Props { function PageLayout (line 14) | function PageLayout(props: Props): JSX.Element { FILE: web/src/components/Project.tsx type Props (line 10) | interface Props { function timeSince (line 15) | function timeSince(date: Date) { function Project (line 41) | function Project(props: Props): React.JSX.Element { FILE: web/src/components/ProjectList.tsx type Props (line 7) | interface Props { function ProjectList (line 12) | function ProjectList(props: Props): React.JSX.Element { FILE: web/src/components/SearchBar.tsx type Props (line 10) | interface Props { function SearchBar (line 15) | function SearchBar(props: Props): React.JSX.Element { FILE: web/src/components/StyledForm.tsx type Props (line 4) | interface Props { function StyledForm (line 8) | function StyledForm(props: Props): React.JSX.Element { FILE: web/src/data-providers/ConfigDataProvider.tsx type Config (line 8) | interface Config { FILE: web/src/data-providers/MessageBannerProvider.tsx type Message (line 9) | interface Message { type MessageBannerState (line 15) | interface MessageBannerState { function MessageBannerProvider (line 29) | function MessageBannerProvider({ children }: any): JSX.Element { FILE: web/src/data-providers/ProjectDataProvider.tsx type ProjectState (line 11) | interface ProjectState { function ProjectDataProvider (line 32) | function ProjectDataProvider({ children }: any): JSX.Element { FILE: web/src/data-providers/SearchProvider.tsx type SearchState (line 11) | interface SearchState { function SearchProvider (line 25) | function SearchProvider({ children }: any): JSX.Element { FILE: web/src/data-providers/StatsDataProvider.tsx type Stats (line 10) | type Stats = { type StatsState (line 16) | interface StatsState { function StatsDataProvider (line 34) | function StatsDataProvider({ children }: any): JSX.Element { FILE: web/src/models/ProjectDetails.ts class ProjectDetails (line 1) | class ProjectDetails { method constructor (line 7) | constructor(name: string, tags: string[], hidden: boolean, timestamp: ... FILE: web/src/models/ProjectsResponse.ts type Project (line 3) | interface Project { type ProjectsResponse (line 10) | interface ProjectsResponse { FILE: web/src/pages/Claim.tsx function Claim (line 10) | function Claim(): JSX.Element { FILE: web/src/pages/Delete.tsx type Validation (line 11) | interface Validation { function Delete (line 17) | function Delete(): JSX.Element { FILE: web/src/pages/Docs.tsx function Docs (line 11) | function Docs(): JSX.Element { FILE: web/src/pages/Help.tsx function Help (line 13) | function Help(): JSX.Element { FILE: web/src/pages/Home.tsx function Home (line 22) | function Home(): JSX.Element { FILE: web/src/pages/LoadingPage.tsx function LoadingPage (line 5) | function LoadingPage(): React.JSX.Element { FILE: web/src/pages/NotFound.tsx function NotFound (line 7) | function NotFound(): React.JSX.Element { FILE: web/src/pages/Upload.tsx type Validation (line 14) | interface Validation { function Upload (line 28) | function Upload(): JSX.Element { FILE: web/src/repositories/ProjectRepository.ts constant RESOURCE (line 5) | const RESOURCE = 'doc' function dateTimeReviver (line 7) | function dateTimeReviver(key: string, value: unknown) { function filterHiddenVersions (line 14) | function filterHiddenVersions(allProjects: Project[]): Project[] { function getVersions (line 29) | async function getVersions(projectName: string): Promise { function deleteDoc (line 166) | async function deleteDoc( function compareVersions (line 203) | function compareVersions( function isFavorite (line 230) | function isFavorite(projectName: string): boolean { function setFavorite (line 239) | function setFavorite(projectName: string, shouldBeFavorite: boolean): vo... FILE: web/vite-env.d.ts type ImportMetaEnv (line 3) | interface ImportMetaEnv { type ImportMeta (line 7) | interface ImportMeta {