typarr.routers

typarr.routers.buckets

REST endpoints for bucket CRUD operations.

async typarr.routers.buckets.create_bucket(body: BucketCreate, user=Depends(dependency=<function require_global_admin>, use_cache=True, scope=None), svc: BucketService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Create a new bucket (initializes a git repo with .meta.yml).

async typarr.routers.buckets.delete_bucket(slug: str, _user=Depends(dependency=<function require_global_admin>, use_cache=True, scope=None), svc: BucketService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Delete a bucket and its git repo from disk.

async typarr.routers.buckets.get_bucket(slug: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: BucketService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Get metadata for a single bucket.

async typarr.routers.buckets.list_buckets(user=Depends(dependency=<function get_current_user>, use_cache=True, scope=None), svc: BucketService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

List buckets the user has access to, with their resolved role.

async typarr.routers.buckets.update_bucket(slug: str, body: BucketUpdate, user=Depends(dependency=<function require_global_admin>, use_cache=True, scope=None), svc: BucketService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Update a bucket’s description or access rules.

typarr.routers.collab

WebSocket endpoint for real-time collaborative editing via Yjs CRDT.

async typarr.routers.collab.collab_websocket(websocket: WebSocket, slug: str, path: str)

Yjs WebSocket endpoint for real-time collaborative editing of a file.

typarr.routers.compile

REST endpoints for compiling Typst files to SVG or PDF.

async typarr.routers.compile.compile_pdf(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: CompilerService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Compile a .typ file and return the PDF.

async typarr.routers.compile.compile_svg(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: CompilerService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Compile a .typ file and return a list of SVG strings (one per page).

async typarr.routers.compile.compile_svg_live(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: CompilerService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Compile live editor content from the Yjs room, falling back to disk.

typarr.routers.events

WebSocket endpoint for bucket-level file change notifications.

async typarr.routers.events.bucket_events(websocket: WebSocket, slug: str)

Subscribe to file-change events for a bucket.

typarr.routers.files

REST endpoints for file CRUD within a bucket’s working tree.

async typarr.routers.files.create_file(slug: str, body: FileCreate, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Create a new file in the bucket. Fails if the file already exists.

async typarr.routers.files.delete_dir(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Delete a directory and all its contents.

async typarr.routers.files.delete_file(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Delete a file from the bucket’s working tree.

async typarr.routers.files.list_files(slug: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

List all files and directories in a bucket (excludes .git and .meta.yml).

async typarr.routers.files.raw_file(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Serve a file’s raw content (for images, binary previews, etc.).

async typarr.routers.files.read_file(slug: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Read a single file’s content by path.

async typarr.routers.files.rename_dir(slug: str, body: dict, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Rename/move a directory and all its contents.

async typarr.routers.files.rename_file(slug: str, body: dict, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Rename/move a single file.

async typarr.routers.files.save_file(slug: str, path: str, body: FileSave, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Overwrite a file’s content (used by manual save and auto-save).

async typarr.routers.files.upload_files(slug: str, files: list[UploadFile] = File(PydanticUndefined), prefix: str = '', _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: FileService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Upload one or more binary/text files via multipart form data. ZIP files are extracted.

typarr.routers.git

REST endpoints for git operations on a bucket’s repository.

async typarr.routers.git.git_commit(slug: str, body: CommitRequest, user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Stage the selected files and create a new commit.

async typarr.routers.git.git_diff(slug: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), path: str | None = Query(None))

Return unified diffs for modified files in the working tree.

async typarr.routers.git.git_log(slug: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), path: str | None = Query(None), max_count: int = Query(50))

Return commit history, optionally filtered to a single file path.

async typarr.routers.git.git_restore(slug: str, body: RestoreRequest, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None), collab: CollabManager = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Restore file(s) from a specific commit into the working tree.

async typarr.routers.git.git_show(slug: str, ref: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Retrieve a file’s content at a specific commit ref.

async typarr.routers.git.git_show_raw(slug: str, ref: str, path: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Serve a file’s raw bytes at a specific commit ref (for images).

async typarr.routers.git.git_status(slug: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Return per-file working tree status (modified, untracked, deleted, staged).

async typarr.routers.git.git_tree(slug: str, ref: str, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: GitService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

List all files at a specific commit ref.

typarr.routers.templates

REST endpoints for browsing and initializing Typst templates.

async typarr.routers.templates.init_template(slug: str, body: TemplateInit, _user=Depends(dependency=<function _require_role.<locals>.dependency>, use_cache=True, scope=None), svc: TemplateService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Initialize a bucket from a Typst template via typst init.

async typarr.routers.templates.list_local_templates(_user=Depends(dependency=<function get_current_user>, use_cache=True, scope=None), svc: TemplateService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Return templates from the local package directory.

async typarr.routers.templates.list_templates(_user=Depends(dependency=<function get_current_user>, use_cache=True, scope=None), svc: TemplateService = Depends(dependency=<functools._lru_cache_wrapper object>, use_cache=True, scope=None))

Return all available Typst templates from the package index.