Documentation
¶
Overview ¶
Package core provides shared types and the parser registry.
Index ¶
- func AnyMatch(matchers ...func(string) bool) func(string) bool
- func EstimateDeps(size int) int
- func ExactMatch(names ...string) func(string) bool
- func ExtractQuotedValue(line, prefix string) (string, bool)
- func ForEachLine(content string, fn func(line string) bool)
- func GlobMatch(pattern string) func(string) bool
- func IdentifyParser(filename string) (Parser, string, Kind)
- func ParseDockerImage(image string) (name, version string)
- func PrefixMatch(prefixes ...string) func(string) bool
- func Register(ecosystem string, kind Kind, parser Parser, match func(string) bool)
- func SuffixMatch(suffixes ...string) func(string) bool
- func SupportedEcosystems() []string
- type Dependency
- type FSRootParser
- type Kind
- type Match
- type ParseError
- type Parser
- type Registration
- type Result
- type Scope
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EstimateDeps ¶
EstimateDeps estimates the number of dependencies based on file size.
func ExactMatch ¶
ExactMatch returns a matcher for exact filename matches.
func ExtractQuotedValue ¶
ExtractQuotedValue extracts value from lines like: key = "value"
func ForEachLine ¶
ForEachLine iterates over lines in content without allocating a slice.
func IdentifyParser ¶
IdentifyParser returns the first matching parser for a filename.
func ParseDockerImage ¶
ParseDockerImage parses a Docker image reference like "nginx:1.19" or "nginx@sha256:abc". When both tag and digest are present (nginx:1.19@sha256:abc), the digest is used as version and the tag is stripped from the name.
func PrefixMatch ¶
PrefixMatch returns a matcher for prefix matches.
func SuffixMatch ¶
SuffixMatch returns a matcher for suffix matches.
func SupportedEcosystems ¶
func SupportedEcosystems() []string
SupportedEcosystems returns all registered ecosystem types.
Types ¶
type Dependency ¶
type Dependency struct {
Name string
Version string
Scope Scope
Integrity string
Direct bool
PURL string
RegistryURL string
}
Dependency represents a parsed dependency from a manifest or lockfile.
type FSRootParser ¶ added in v0.5.1
type FSRootParser interface {
ParseInRoot(filename string, content []byte, fsRoot string) (*Result, error)
}
FSRootParser is optionally implemented by parsers that can consult neighbouring files on disk (e.g. pom.xml following <relativePath> to a parent). The fsRoot argument bounds that lookup; an empty string means no filesystem access.
type Match ¶
Match represents a file type match.
func IdentifyAllParsers ¶
IdentifyAllParsers returns all matching parsers for a filename.
type ParseError ¶
ParseError is returned when parsing fails.
func (*ParseError) Error ¶
func (e *ParseError) Error() string
func (*ParseError) Unwrap ¶
func (e *ParseError) Unwrap() error
type Registration ¶
type Registration struct {
Ecosystem string
Kind Kind
Parser Parser
Match func(filename string) bool
}
Registration holds parser metadata.
type Result ¶ added in v0.6.0
type Result struct {
// Name is the package's own name as declared in the manifest, when
// the format has one. Empty for lockfiles and for manifest formats
// that only list dependencies (Gemfile, requirements.txt, etc.).
Name string
// Version is the package's own version as declared in the manifest.
Version string
// Licenses holds the package's declared license values, without
// normalization.
Licenses []string
// LicenseFile is a manifest-relative path to a declared license file.
LicenseFile string
Dependencies []Dependency
}
Result is the output of a single parser.