Source code is contained in an archive.
Input passed to the build_instructions function.
Output returned by the build_instructions function.
Container for a calendar version.
A command and its parameters to be executed as a child process.
Configuration for one or many system dependencies (packages).
Output returned by the detect_version_files function.
Input passed to the download_prebuilt function.
Output returned by the download_prebuilt function.
Represents an empty input.
Input passed to the exec_command host function.
Output returned from the exec_command host function.
Configuration for generated shim and symlinked binary files.
A GitHub release locator.
Source code is located in a Git repository.
Information about the host environment (the current runtime).
Input passed to the host_log host function.
An identifier for plugins.
Input passed to the pre_install and post_install hooks,
while a proto install command is running.
Input passed to the load_versions function.
Output returned by the load_versions function.
Input passed to the locate_executables function.
Output returned by the locate_executables function.
Input passed to the native_install function.
Output returned by the native_install function.
Input passed to the native_uninstall function.
Output returned by the native_uninstall function.
Input passed to the parse_version_file function.
Output returned by the parse_version_file function.
Input passed to the resolve_version function.
Output returned by the resolve_version function.
Input passed to the pre_run hook, before a proto run command
or language binary is ran.
Output returned from the pre_run hook.
Container for a semantic version.
Input passed to the sync_manifest function.
Output returned by the sync_manifest function.
Input passed to the sync_shell_profile function.
Output returned by the sync_shell_profile function.
Information about the current testing environment.
Information about the current state of the tool.
Controls aspects of the tool inventory.
Input passed to the register_tool function.
Output returned by the register_tool function.
Input passed to the unpack_archive function.
Output returned by the verify_checksum function.
Output returned by the verify_checksum function.
SemVer version requirement describing the intersection of some version
comparators, such as >=1.2.3, <1.8.
An instruction to execute.
Is required and must exist in the current environment.
A system dependency name in multiple formats.
Architecture of the system environment.
Libc being used in the system environment.
Target where host logs should be written to.
Operating system of the current environment.
Errors that may occur from within a plugin.
Strategies and protocols for locating plugins.
Errors during plugin locator parsing.
Supported types of plugins.
The location in which source code can be acquired.
Either a string, or a list of strings.
Represents a system dependency (one or many packages) to install.
Package manager of the system environment.
Represents an unresolved version or alias that must be resolved
to a fully-qualified version.
Represents a resolved version or alias.
A container for WASI virtual paths that can also keep a reference to the original real path.
The Wasm type specifies how to access a WebAssembly module
Cleans a version requirement string by removing * version parts,
and correcting AND operators.
Cleans a potential version string by removing a leading v or V.
Get a regex pattern that matches calendar versions (calver).
For example: 2024-02-26, 2024-12, 2024-01-alpha, etc.
Get a regex pattern that matches semantic versions (semver).
For example: 1.2.3, 6.5.4, 7.8.9-alpha, etc.
Returns true if the provided value is an alias. An alias is a word that
maps to version, for example, “latest” -> “1.2.3”.
Returns true if the provided value is a calendar version string.
Returns true if the provided value is a semantic version string.
Parse the provided string and determine the output format.
Since an unresolved version can be many things, such as an
alias, version requirement, semver, or calver, we need to
parse this manually to determine the correct output.
Parse the provided string as a list of version requirements,
as separated by
||. Each requirement will be parsed
individually with
parse.