# Variables
ErrEmptyAPIPath is error when api path is empty.
ErrEmptyCommandName is error when command name is empty.
ErrEmptyProvider is error when provider is empty.
ErrEmptyRemotePath is error when remote path is empty.
ErrEmptyTagName is error when tag name is empty.
ErrNilAsset is error when asset is nil.
ErrNilAssetOperator is error when asset operator is nil.
ErrNilContext is error when context is nil.
ErrNilManifester is error when manifester is nil.
ErrUnrecognizedRemotePath is error when remote path is not recognized.
ExtensionDir is directory path where to store the extensions.
# Structs
Manifest describes extensions' information.
Metadata defines general metadata for an extension.
RepositoryAsset defines a specific asset for a release.
RepositoryOwner represents the owner of an extension repository.
RepositoryProject represents the repository or place where the extension projects resides.
RepositoryRelease defines the release version of a repository release.
# Interfaces
AssetOperator is a contract to operate on extension asset.
Client is a contract that will be defined by each provider to execute client-related operation.
Manifester is a contract to operate on manifest file.
# Type aliases
Parser is contract that will be defined by each provider to parse remote metadata from path.