shared

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 17, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyRootSignals added in v0.1.2

func ApplyRootSignals(repoPath string, signals []RootSignal, detection *language.Detection, roots map[string]struct{}) error

func BuildDependencyReportFromStats added in v0.1.4

func BuildDependencyReportFromStats(name, languageID string, stats DependencyStats) report.DependencyReport

func BuildRequestedDependencies added in v0.1.3

func BuildRequestedDependencies[S any](req language.Request, scan S, normalizeDependencyID func(string) string, buildDependency func(string, S) (report.DependencyReport, []string), buildTop func(int, S) ([]report.DependencyReport, []string)) ([]report.DependencyReport, []string)

func BuildRequestedDependenciesWithWeights added in v0.1.3

func BuildRequestedDependenciesWithWeights[S any](req language.Request, scan S, normalizeDependencyID func(string) string, buildDependency func(string, S) (report.DependencyReport, []string), resolveWeights func(*report.RemovalCandidateWeights) report.RemovalCandidateWeights, buildTop func(int, S, report.RemovalCandidateWeights) ([]report.DependencyReport, []string)) ([]report.DependencyReport, []string)

func BuildTopReports

func BuildTopReports(topN int, dependencies []string, buildReport func(string) (report.DependencyReport, []string), weights ...report.RemovalCandidateWeights) ([]report.DependencyReport, []string)

func CountUsage

func CountUsage(content []byte, imports []ImportRecord) map[string]int

func DedupeWarnings added in v1.2.0

func DedupeWarnings(warnings []string) []string

func DefaultRepoPath

func DefaultRepoPath(repoPath string) string

func DetectMatched

func DetectMatched(ctx context.Context, repoPath string, detectWithConfidence func(context.Context, string) (language.Detection, error)) (bool, error)

func FallbackDependency added in v0.1.5

func FallbackDependency(module string, normalize func(string) string) string

func FinalizeDetection

func FinalizeDetection(repoPath string, detection language.Detection, roots map[string]struct{}) language.Detection

FinalizeDetection applies shared post-processing for language detection. It enforces a confidence floor (35) only when matched, always caps confidence at 95, and ensures matched detections have at least one root before returning sorted roots.

func FirstContentColumn

func FirstContentColumn(line string) int

func HasWildcardImport

func HasWildcardImport(imports []report.ImportUse) bool

func IsGradleVersionCatalogFile added in v1.2.0

func IsGradleVersionCatalogFile(name string) bool

func IsPathWithin added in v0.1.2

func IsPathWithin(root, candidate string) bool

func LastModuleSegment added in v0.1.5

func LastModuleSegment(module string) string

func ListDependencies

func ListDependencies(files []FileUsage, normalize func(string) string) []string

func Location added in v0.1.2

func Location(filePath string, line, column int) report.Location

func LocationFromLine added in v0.1.2

func LocationFromLine(filePath string, index int, line string) report.Location

func MapSlice

func MapSlice[T any, R any](items []T, mapper func(T) R) []R

func MaskCommentsAndStrings added in v1.3.2

func MaskCommentsAndStrings(content []byte) []byte

MaskCommentsAndStrings blanks comment and string literal content while preserving newlines and byte offsets for line/column calculations.

func MaskCommentsAndStringsForFile added in v1.3.2

func MaskCommentsAndStringsForFile(content []byte, filePath string) []byte

func MaskCommentsAndStringsWithProfile added in v1.3.2

func MaskCommentsAndStringsWithProfile(content []byte, profile maskProfile) []byte

func NewReport added in v1.2.0

func NewReport(rawRepoPath string, now func() time.Time) (string, report.Report, error)

func NormalizeDependencyID added in v0.1.2

func NormalizeDependencyID(value string) string

func ReadYAMLUnderRepo added in v0.1.5

func ReadYAMLUnderRepo[T any](repoPath, path string) (T, error)

func RecommendationPriorityRank added in v1.2.0

func RecommendationPriorityRank(priority string) int

func ResolveMinUsageRecommendationThreshold added in v1.2.0

func ResolveMinUsageRecommendationThreshold(value *int) int

func ResolveRemovalCandidateWeights added in v1.2.0

func ResolveRemovalCandidateWeights(value *report.RemovalCandidateWeights) report.RemovalCandidateWeights

func ShouldSkipCommonDir added in v0.1.2

func ShouldSkipCommonDir(name string) bool

func ShouldSkipDir added in v0.1.2

func ShouldSkipDir(name string, languageSpecific map[string]bool) bool

func SortRecommendations added in v0.1.5

func SortRecommendations(recommendations []report.Recommendation, priorityRank func(string) int)

func SortReportsByWaste

func SortReportsByWaste(reports []report.DependencyReport, weights ...report.RemovalCandidateWeights)

SortReportsByWaste annotates each report with a removal-candidate score before sorting.

func SortRiskCues added in v1.2.0

func SortRiskCues(cues []report.RiskCue)

func SortedKeys

func SortedKeys(values map[string]struct{}) []string

func StripLineComment added in v0.1.2

func StripLineComment(line, marker string) string

func TopCountKeys added in v0.1.5

func TopCountKeys(values map[string]int, limit int) []string

func UniqueCleanPaths added in v0.1.5

func UniqueCleanPaths(values []string) []string

func UniqueTrimmedStrings added in v0.1.5

func UniqueTrimmedStrings(values []string) []string

func WalkContextErr added in v1.2.0

func WalkContextErr(ctx context.Context, walkErr error) error

func WalkRepoFiles added in v0.1.2

func WalkRepoFiles(ctx context.Context, repoPath string, maxFiles int, skipDir func(string) bool, visit func(path string, entry fs.DirEntry) error) error

func WasteScore

func WasteScore(dep report.DependencyReport) (float64, bool)

Types

type DependencyStats

type DependencyStats struct {
	HasImports      bool
	UsedCount       int
	TotalCount      int
	UsedPercent     float64
	TopSymbols      []report.SymbolUsage
	UsedImports     []report.ImportUse
	UnusedImports   []report.ImportUse
	WildcardImports int
}

func BuildDependencyStats

func BuildDependencyStats(dependency string, files []FileUsage, normalize func(string) string) DependencyStats

type FileUsage

type FileUsage struct {
	Imports []ImportRecord
	Usage   map[string]int
}

func MapFileUsages

func MapFileUsages[T any](files []T, importsOf func(T) []ImportRecord, usageOf func(T) map[string]int) []FileUsage

type GradleCatalogLibrary added in v1.2.0

type GradleCatalogLibrary struct {
	Alias    string
	Catalog  string
	Group    string
	Artifact string
	Version  string
}

type GradleCatalogResolver added in v1.2.0

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

func LoadGradleCatalogResolver added in v1.2.0

func LoadGradleCatalogResolver(repoPath string) (GradleCatalogResolver, []string)

func (*GradleCatalogResolver) ParseDependencyReferences added in v1.2.0

func (r *GradleCatalogResolver) ParseDependencyReferences(buildFilePath, content string) ([]GradleCatalogLibrary, []string)

type ImportRecord

type ImportRecord struct {
	Dependency string
	Module     string
	Name       string
	Local      string
	Location   report.Location
	Wildcard   bool
}

func ParseImportLines added in v0.1.2

func ParseImportLines(content []byte, filePath string, parseLine func(string, int) []ImportRecord) []ImportRecord

type RootSignal added in v0.1.2

type RootSignal struct {
	Name       string
	Confidence int
}

Jump to

Keyboard shortcuts

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