mirror of
https://github.com/Jguer/yay.git
synced 2026-07-22 02:07:27 -04:00
* add render hooks * re-render hook per event * add example with single_line and simplify built rendering * update docs availability * remove comments
272 lines
9.5 KiB
Lua
272 lines
9.5 KiB
Lua
-- yay Lua API type definitions for lua-language-server.
|
|
--
|
|
-- This is a meta file: lua-language-server loads it for type information only
|
|
-- and never executes it. Add this directory to your `workspace.library` so the
|
|
-- `yay` global, its options, and autocmd event payloads are recognised and
|
|
-- type-checked in your init.lua. See doc/lua.md "Editor support" for setup.
|
|
--
|
|
-- API reference: https://github.com/Jguer/yay/blob/next/doc/lua.md
|
|
|
|
---@meta
|
|
|
|
-- Aliases
|
|
|
|
---@alias yay.menuAnswer "" | "All" | "None" | "Installed" | "NotInstalled" | "abort"
|
|
|
|
---@alias yay.Event "AURPreInstall" | "AURPostDownload" | "UpgradeSelect" | "PostInstall" | "SearchFilter" | "RenderAUR" | "RenderSync"
|
|
|
|
-- Options: yay.opt
|
|
|
|
---@class yay.opt
|
|
---@field aururl string Base AUR URL
|
|
---@field aurrpcurl string AUR RPC endpoint URL; empty uses default endpoint.
|
|
---@field build_dir string Build/cache directory for AUR packages.
|
|
---@field editor string Editor command used for PKGBUILD edits; empty uses VISUAL/EDITOR.
|
|
---@field editor_flags string Extra flags passed to the editor command.
|
|
---@field makepkg_bin string makepkg executable (name in PATH or absolute path).
|
|
---@field makepkg_conf string makepkg.conf path; empty uses default makepkg config.
|
|
---@field pacman_bin string pacman executable.
|
|
---@field pacman_conf string pacman.conf file path.
|
|
---@field redownload "no" | "yes" | "all" PKGBUILD download mode.
|
|
---@field git_bin string git executable.
|
|
---@field gpg_bin string gpg executable.
|
|
---@field gpg_flags string Extra flags passed to gpg.
|
|
---@field mflags string Extra flags passed to makepkg.
|
|
---@field sort_by "votes" | "popularity" | "name" | "base" | "submitted" | "modified" | "" AUR search sort field.
|
|
---@field search_by "name" | "name-desc" | "maintainer" | "submitter" | "depends" | "makedepends" | "optdepends" | "checkdepends" | "provides" | "conflicts" | "replaces" | "groups" | "keywords" | "comaintainers" AUR search field.
|
|
---@field git_flags string Extra flags passed to git.
|
|
---@field remove_make "no" | "yes" | "ask" | "askyes" Remove makedepends mode.
|
|
---@field sudo_bin string Privilege elevation command.
|
|
---@field sudo_flags string Extra flags passed to the sudo command.
|
|
---@field rebuild "no" | "yes" | "tree" | "all" Build mode.
|
|
---@field answer_clean yay.menuAnswer yay v13.0.1+ Pre-select clean menu answer (also accepts menu syntax: ranges, ^n).
|
|
---@field answer_diff yay.menuAnswer yay v13.0.1+ Pre-select diff menu answer (also accepts menu syntax: ranges, ^n).
|
|
---@field answer_edit yay.menuAnswer yay v13.0.1+ Pre-select edit menu answer (also accepts menu syntax: ranges, ^n).
|
|
---@field request_split_n integer Max packages per AUR RPC request (use values > 0).
|
|
---@field completion_refresh_time integer Completion cache refresh days: -1 (never), 0 (always), >0 (every N days).
|
|
---@field max_concurrent_downloads integer Parallel PKGBUILD source downloads; 0 uses CPU count.
|
|
---@field bottom_up boolean Show AUR packages before repo packages in mixed results.
|
|
---@field sudo_loop boolean Keep sudo session alive in the background during long builds.
|
|
---@field devel boolean Check development/VCS packages on sysupgrade.
|
|
---@field clean_after boolean Remove untracked files after install.
|
|
---@field keep_src boolean Keep pkg/ and src/ after successful builds.
|
|
---@field provides boolean Resolve matching providers when dependencies are ambiguous.
|
|
---@field pgp_fetch boolean Prompt to import unknown PGP keys from validpgpkeys.
|
|
---@field clean_menu boolean Show pre-build clean menu.
|
|
---@field diff_menu boolean Show diff menu before building.
|
|
---@field edit_menu boolean Show PKGBUILD edit menu before building.
|
|
---@field combined_upgrade boolean Use combined repo+AUR upgrade flow on sysupgrade.
|
|
---@field use_ask boolean Use pacman's --ask to auto-confirm known conflicts.
|
|
---@field batch_install boolean Queue AUR package installs instead of installing each package immediately.
|
|
---@field single_line_results boolean Use single-line search result format.
|
|
---@field separate_sources boolean Separate query results by source (repo vs AUR).
|
|
---@field debug boolean Enable debug logging and local init.lua lookup convenience.
|
|
---@field rpc boolean Use AUR RPC for dependency/query operations.
|
|
---@field double_confirm boolean Ask for confirmation before and after builds during upgrades.
|
|
|
|
-- Logging: yay.log
|
|
|
|
---@class yay.log
|
|
---@field debug fun(...: any)
|
|
---@field info fun(...: any)
|
|
---@field warn fun(...: any)
|
|
---@field error fun(...: any)
|
|
|
|
-- Event payloads: AURPreInstall / AURPostDownload
|
|
-- Both events share the same data shape; only the `event` string differs.
|
|
|
|
---@class yay.AURPreInstallPackage
|
|
---@field name string
|
|
---@field version string
|
|
---@field local_version string
|
|
---@field reason string
|
|
---@field upgrade boolean
|
|
---@field devel boolean
|
|
|
|
---@class yay.AURPreInstallSRCINFO
|
|
---@field pkgbase string
|
|
---@field pkgver string
|
|
---@field pkgrel string
|
|
---@field epoch string
|
|
---@field version string
|
|
---@field pkgdesc string
|
|
---@field url string
|
|
---@field arch string[]
|
|
---@field license string[]
|
|
---@field depends string[]
|
|
---@field makedepends string[]
|
|
---@field checkdepends string[]
|
|
---@field optdepends string[]
|
|
---@field provides string[]
|
|
---@field conflicts string[]
|
|
---@field replaces string[]
|
|
|
|
---@class yay.AURInstallData
|
|
---@field base string
|
|
---@field dir string
|
|
---@field pkgbuild_path string
|
|
---@field srcinfo_path string
|
|
---@field pkgbuild string
|
|
---@field version string
|
|
---@field last_modified integer
|
|
---@field installed boolean
|
|
---@field packages yay.AURPreInstallPackage[]
|
|
---@field srcinfo yay.AURPreInstallSRCINFO
|
|
|
|
---@class yay.AURPreInstallEvent
|
|
---@field event "AURPreInstall"
|
|
---@field match string
|
|
---@field data yay.AURInstallData
|
|
|
|
---@class yay.AURPostDownloadEvent
|
|
---@field event "AURPostDownload"
|
|
---@field match string
|
|
---@field data yay.AURInstallData
|
|
|
|
-- Event payloads: UpgradeSelect
|
|
|
|
---@class yay.UpgradeSelectPackage
|
|
---@field id integer
|
|
---@field name string
|
|
---@field base string
|
|
---@field repository string
|
|
---@field local_version string
|
|
---@field remote_version string
|
|
---@field reason string
|
|
---@field last_modified integer
|
|
---@field maintainer string
|
|
|
|
---@class yay.UpgradeSelectData
|
|
---@field upgrades yay.UpgradeSelectPackage[]
|
|
---@field pulled_dependencies yay.UpgradeSelectPackage[]
|
|
|
|
---@class yay.UpgradeSelectEvent
|
|
---@field event "UpgradeSelect"
|
|
---@field data yay.UpgradeSelectData
|
|
|
|
---@class yay.UpgradeSelectResult
|
|
---@field exclude string[]
|
|
---@field skip_menu boolean
|
|
|
|
-- Event payloads: PostInstall
|
|
|
|
---@class yay.PostInstallPackage
|
|
---@field name string
|
|
---@field version string
|
|
---@field local_version string
|
|
---@field source string
|
|
---@field reason string
|
|
|
|
---@class yay.PostInstallData
|
|
---@field packages yay.PostInstallPackage[]
|
|
|
|
---@class yay.PostInstallEvent
|
|
---@field event "PostInstall"
|
|
---@field data yay.PostInstallData
|
|
|
|
-- Event payloads: SearchFilter
|
|
|
|
---@class yay.SearchResultPackage
|
|
---@field source string
|
|
---@field name string
|
|
---@field description string
|
|
---@field base string
|
|
---@field votes integer
|
|
---@field popularity number
|
|
---@field first_submitted integer
|
|
---@field last_modified integer
|
|
|
|
---@class yay.SearchFilterData
|
|
---@field results yay.SearchResultPackage[]
|
|
|
|
---@class yay.SearchFilterEvent
|
|
---@field event "SearchFilter"
|
|
---@field data yay.SearchFilterData
|
|
|
|
---@class yay.SearchResultRef
|
|
---@field source string
|
|
---@field name string
|
|
|
|
-- create_autocmd opts: one per event so the callback payload is typed.
|
|
|
|
---@class yay.AURPreInstallOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.AURPreInstallEvent)
|
|
|
|
---@class yay.AURPostDownloadOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.AURPostDownloadEvent)
|
|
|
|
---@class yay.UpgradeSelectOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.UpgradeSelectEvent): yay.UpgradeSelectResult?
|
|
|
|
---@class yay.PostInstallOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.PostInstallEvent)
|
|
|
|
---@class yay.SearchFilterOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.SearchFilterEvent): yay.SearchResultRef[]?
|
|
|
|
-- Event payloads: RenderAUR
|
|
|
|
---@class yay.RenderAURData
|
|
---@field name string
|
|
---@field version string
|
|
---@field description string
|
|
---@field base string
|
|
---@field votes integer
|
|
---@field popularity number
|
|
---@field maintainer string
|
|
---@field out_of_date integer
|
|
---@field first_submitted integer
|
|
---@field last_modified integer
|
|
---@field local_version string
|
|
|
|
---@class yay.RenderAUREvent
|
|
---@field event "RenderAUR"
|
|
---@field data yay.RenderAURData
|
|
|
|
---@class yay.RenderAUROpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.RenderAUREvent): string?
|
|
|
|
-- Event payloads: RenderSync
|
|
|
|
---@class yay.RenderSyncData
|
|
---@field repository string
|
|
---@field name string
|
|
---@field description string
|
|
---@field version string
|
|
---@field groups string[]
|
|
---@field local_version string
|
|
|
|
---@class yay.RenderSyncEvent
|
|
---@field event "RenderSync"
|
|
---@field data yay.RenderSyncData
|
|
|
|
---@class yay.RenderSyncOpts
|
|
---@field desc? string
|
|
---@field callback fun(event: yay.RenderSyncEvent): string?
|
|
|
|
---@overload fun(event: "AURPreInstall", opts: yay.AURPreInstallOpts)
|
|
---@overload fun(event: "AURPostDownload", opts: yay.AURPostDownloadOpts)
|
|
---@overload fun(event: "UpgradeSelect", opts: yay.UpgradeSelectOpts)
|
|
---@overload fun(event: "PostInstall", opts: yay.PostInstallOpts)
|
|
---@overload fun(event: "SearchFilter", opts: yay.SearchFilterOpts)
|
|
---@overload fun(event: "RenderAUR", opts: yay.RenderAUROpts)
|
|
---@overload fun(event: "RenderSync", opts: yay.RenderSyncOpts)
|
|
---@class yay.create_autocmd
|
|
|
|
-- The yay global
|
|
|
|
---@class yay
|
|
---@field opt? yay.opt
|
|
---@field log? yay.log
|
|
---@field abort? fun(reason: string)
|
|
---@field create_autocmd? yay.create_autocmd
|
|
|
|
---@type yay
|
|
yay = {}
|