packageversions

package
v0.40.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2025 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultPackagesRateLimit is the default maximum requests per second
	DefaultPackagesRateLimit = 10
	// PackagesRateLimitEnvVar is the environment variable for configuring rate limit
	PackagesRateLimitEnvVar = "PACKAGES_RATE_LIMIT"
)

Variables

This section is empty.

Functions

func CleanVersion

func CleanVersion(version string) string

CleanVersion removes any leading version prefix (^, ~, >, =, <, etc.) from a version string

func CompareVersions

func CompareVersions(v1, v2 string) (int, error)

CompareVersions compares two version strings Returns:

-1 if v1 < v2
 0 if v1 == v2
 1 if v1 > v2

func ExtractMajorVersion

func ExtractMajorVersion(version string) (int, error)

ExtractMajorVersion extracts the major version from a version string

func FuzzyMatch

func FuzzyMatch(str, query string) bool

FuzzyMatch performs a simple fuzzy match between a string and a query

func Int64Ptr added in v0.28.0

func Int64Ptr(i int64) *int64

Int64Ptr returns a pointer to the given int64

func IntPtr

func IntPtr(i int) *int

IntPtr returns a pointer to the given int

func MakeRequest

func MakeRequest(client HTTPClient, method, url string, headers map[string]string) ([]byte, error)

MakeRequest makes an HTTP request and returns the response body

func MakeRequestWithLogger

func MakeRequestWithLogger(client HTTPClient, logger *logrus.Logger, method, reqURL string, headers map[string]string) ([]byte, error)

MakeRequestWithLogger makes an HTTP request with logging and returns the response body

func NewToolResultJSON

func NewToolResultJSON(data any) (*mcp.CallToolResult, error)

NewToolResultJSON creates a new tool result with JSON content

func ParseVersion

func ParseVersion(version string) (major, minor, patch int, err error)

ParseVersion parses a version string into major, minor, and patch components

func StringPtr

func StringPtr(s string) *string

StringPtr returns a pointer to the given string

Types

type BedrockModel

type BedrockModel struct {
	Provider           string   `json:"provider"`
	ModelName          string   `json:"modelName"`
	ModelID            string   `json:"modelId"`
	RegionsSupported   []string `json:"regionsSupported"`
	InputModalities    []string `json:"inputModalities"`
	OutputModalities   []string `json:"outputModalities"`
	StreamingSupported bool     `json:"streamingSupported"`
}

BedrockModel represents an AWS Bedrock model

type BedrockModelSearchResult

type BedrockModelSearchResult struct {
	Models     []BedrockModel `json:"models"`
	TotalCount int            `json:"totalCount"`
}

BedrockModelSearchResult represents search results for AWS Bedrock models

type CargoToml added in v0.28.0

type CargoToml struct {
	Dependencies      map[string]any `json:"dependencies,omitempty"`
	DevDependencies   map[string]any `json:"dev-dependencies,omitempty"`
	BuildDependencies map[string]any `json:"build-dependencies,omitempty"`
}

CargoToml represents dependencies in a Cargo.toml file

type DockerImageQuery

type DockerImageQuery struct {
	Image          string   `json:"image"`
	Registry       string   `json:"registry,omitempty"`
	CustomRegistry string   `json:"customRegistry,omitempty"`
	Limit          int      `json:"limit,omitempty"`
	FilterTags     []string `json:"filterTags,omitempty"`
	IncludeDigest  bool     `json:"includeDigest,omitempty"`
}

DockerImageQuery represents a query for Docker image tags

type DockerImageVersion

type DockerImageVersion struct {
	Name     string  `json:"name"`
	Tag      string  `json:"tag"`
	Registry string  `json:"registry"`
	Digest   *string `json:"digest,omitempty"`
	Created  *string `json:"created,omitempty"`
	Size     *string `json:"size,omitempty"`
}

DockerImageVersion represents version information for a Docker image

type GitHubAction

type GitHubAction struct {
	Owner          string  `json:"owner"`
	Repo           string  `json:"repo"`
	CurrentVersion *string `json:"currentVersion,omitempty"`
}

GitHubAction represents a GitHub Action

type GitHubActionVersion

type GitHubActionVersion struct {
	Owner          string  `json:"owner"`
	Repo           string  `json:"repo"`
	CurrentVersion *string `json:"currentVersion,omitempty"`
	LatestVersion  string  `json:"latestVersion"`
	PublishedAt    *string `json:"publishedAt,omitempty"`
	URL            *string `json:"url,omitempty"`
}

GitHubActionVersion represents version information for a GitHub Action

type GoModule

type GoModule struct {
	Module  string      `json:"module"`
	Require []GoRequire `json:"require,omitempty"`
	Replace []GoReplace `json:"replace,omitempty"`
}

GoModule represents a Go module in a go.mod file

type GoReplace

type GoReplace struct {
	Old     string `json:"old"`
	New     string `json:"new"`
	Version string `json:"version,omitempty"`
}

GoReplace represents a replacement in a go.mod file

type GoRequire

type GoRequire struct {
	Path    string `json:"path"`
	Version string `json:"version,omitempty"`
}

GoRequire represents a required dependency in a go.mod file

type GradleDependency

type GradleDependency struct {
	Configuration string `json:"configuration"`
	Group         string `json:"group"`
	Name          string `json:"name"`
	Version       string `json:"version,omitempty"`
}

GradleDependency represents a dependency in a Gradle build.gradle file

type HTTPClient

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

HTTPClient is an interface for making HTTP requests

var (
	// DefaultHTTPClient is the default HTTP client with rate limiting
	DefaultHTTPClient HTTPClient = NewRateLimitedHTTPClient()
)

type MavenDependency

type MavenDependency struct {
	GroupID    string `json:"groupId"`
	ArtifactID string `json:"artifactId"`
	Version    string `json:"version,omitempty"`
	Scope      string `json:"scope,omitempty"`
}

MavenDependency represents a dependency in a Maven pom.xml file

type NpmDependencies

type NpmDependencies map[string]string

NpmDependencies represents dependencies in a package.json file

type PackageDetails added in v0.28.0

type PackageDetails struct {
	// Common metadata fields
	Description   *string  `json:"description,omitempty"`
	Homepage      *string  `json:"homepage,omitempty"`
	Repository    *string  `json:"repository,omitempty"`
	Documentation *string  `json:"documentation,omitempty"`
	License       *string  `json:"license,omitempty"`
	Downloads     *int64   `json:"downloads,omitempty"`
	CreatedAt     *string  `json:"createdAt,omitempty"`
	UpdatedAt     *string  `json:"updatedAt,omitempty"`
	PublishedAt   *string  `json:"publishedAt,omitempty"`
	NumVersions   *int     `json:"numVersions,omitempty"`
	Keywords      []string `json:"keywords,omitempty"`
	Publisher     *string  `json:"publisher,omitempty"`

	// Ecosystem-specific metadata
	Rust *RustDetails `json:"rust,omitempty"`
}

PackageDetails contains detailed metadata about a package

type PackageVersion

type PackageVersion struct {
	Name           string          `json:"name"`
	CurrentVersion *string         `json:"currentVersion,omitempty"`
	LatestVersion  string          `json:"latestVersion"`
	Registry       string          `json:"registry"`
	Skipped        bool            `json:"skipped,omitempty"`
	SkipReason     string          `json:"skipReason,omitempty"`
	Details        *PackageDetails `json:"details,omitempty"`
}

PackageVersion represents version information for a package

type PyProjectDependencies

type PyProjectDependencies struct {
	Dependencies         map[string]string            `json:"dependencies,omitempty"`
	OptionalDependencies map[string]map[string]string `json:"optional-dependencies,omitempty"`
	DevDependencies      map[string]string            `json:"dev-dependencies,omitempty"`
}

PyProjectDependencies represents dependencies in a pyproject.toml file

type RateLimitedHTTPClient added in v0.21.1

type RateLimitedHTTPClient struct {
	// contains filtered or unexported fields
}

RateLimitedHTTPClient implements HTTPClient with rate limiting

func NewRateLimitedHTTPClient added in v0.21.1

func NewRateLimitedHTTPClient() *RateLimitedHTTPClient

NewRateLimitedHTTPClient creates a new rate-limited HTTP client with proxy support

func (*RateLimitedHTTPClient) Do added in v0.21.1

Do implements the HTTPClient interface with rate limiting

type RustCrate added in v0.28.0

type RustCrate struct {
	Name    string `json:"name"`
	Version string `json:"version,omitempty"`
	Source  string `json:"source,omitempty"` // e.g., "registry+https://github.com/rust-lang/crates.io-index"
}

RustCrate represents a Rust crate dependency

type RustDetails added in v0.28.0

type RustDetails struct {
	Edition         *string  `json:"edition,omitempty"`
	RustVersion     *string  `json:"rustVersion,omitempty"`
	CrateSize       *int64   `json:"crateSize,omitempty"`
	Categories      []string `json:"categories,omitempty"`
	RecentDownloads *int64   `json:"recentDownloads,omitempty"`
}

RustDetails contains Rust-specific package metadata

type SwiftDependency

type SwiftDependency struct {
	URL         string `json:"url"`
	Version     string `json:"version,omitempty"`
	Requirement string `json:"requirement,omitempty"`
}

SwiftDependency represents a dependency in a Swift Package.swift file

type VersionConstraint

type VersionConstraint struct {
	MajorVersion   *int `json:"majorVersion,omitempty"`
	ExcludePackage bool `json:"excludePackage,omitempty"`
}

VersionConstraint represents constraints for package version updates

type VersionConstraints

type VersionConstraints map[string]VersionConstraint

VersionConstraints maps package names to their constraints

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL