syft/syft/pkg/elixir.go
Chris Greeno 37fee88b5c
feat(elixir): emit dependency relationships from mix.lock (#4985)
adds dependency-of relationships between elixir locked packages, matching how other
ecosystem catalogers (alpine, arch, debian, redhat, python) express the
dependency graph via the shared dependency.Processor/Specifier mechanism.

Signed-off-by: Chris Greeno <cgreeno@gmail.com>
2026-06-29 10:22:38 -04:00

22 lines
1.1 KiB
Go

package pkg
// ElixirMixLockEntry is a struct that represents a single entry in a mix.lock file
type ElixirMixLockEntry struct {
// Name is the package name as found in the mix.lock file
Name string `mapstructure:"name" json:"name"`
// Version is the package version as found in the mix.lock file
Version string `mapstructure:"version" json:"version"`
// PkgHash is the outer checksum (SHA-256) of the entire Hex package tarball for integrity verification (preferred method, replaces deprecated inner checksum)
PkgHash string `mapstructure:"pkgHash" json:"pkgHash"`
// PkgHashExt is the extended package hash format (inner checksum is deprecated - SHA-256 of concatenated file contents excluding CHECKSUM file, now replaced by outer checksum)
PkgHashExt string `mapstructure:"pkgHashExt" json:"pkgHashExt"`
// Dependencies are the names of the packages this entry depends on, as
// declared in the entry's dependency list within mix.lock. Used to derive
// dependency-of relationships between locked packages.
Dependencies []string `mapstructure:"dependencies" json:"dependencies,omitempty"`
}