providers

package
v0.1.0-beta.4 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CombinedRegistryProvider

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

CombinedRegistryProvider combines multiple registry providers to provide a unified view

func NewCombinedRegistryProvider

func NewCombinedRegistryProvider(providers ...RegistryProvider) *CombinedRegistryProvider

NewCombinedRegistryProvider creates a new combined registry provider

func (*CombinedRegistryProvider) DiscoverComponents

func (p *CombinedRegistryProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all components from all providers

func (*CombinedRegistryProvider) GetComponentByName

func (p *CombinedRegistryProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name from any provider

func (*CombinedRegistryProvider) GetLanguage

GetLanguage returns the language this registry supports

func (*CombinedRegistryProvider) GetName

func (p *CombinedRegistryProvider) GetName() string

GetName returns the provider name

func (*CombinedRegistryProvider) GetRegistryType

func (p *CombinedRegistryProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*CombinedRegistryProvider) IsHealthy

func (p *CombinedRegistryProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if any of the providers are healthy

type CompositeProvider

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

CompositeProvider combines a registry provider and package manager provider

func NewCompositeProvider

func NewCompositeProvider(name string, language types.ComponentLanguage, registry RegistryProvider, packageManager PackageManagerProvider) *CompositeProvider

NewCompositeProvider creates a new composite provider

func (*CompositeProvider) DiscoverComponents

func (p *CompositeProvider) DiscoverComponents(ctx context.Context) ([]types.Component, error)

DiscoverComponents implements the Provider interface

func (*CompositeProvider) GetComponentMetadata

func (p *CompositeProvider) GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)

GetComponentMetadata implements the Provider interface

func (*CompositeProvider) GetComponentVersions

func (p *CompositeProvider) GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

GetComponentVersions implements the Provider interface

func (*CompositeProvider) GetLanguage

func (p *CompositeProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this provider supports

func (*CompositeProvider) GetName

func (p *CompositeProvider) GetName() string

GetName returns the provider name

func (*CompositeProvider) GetPackageManagerType

func (p *CompositeProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*CompositeProvider) GetRegistryType

func (p *CompositeProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*CompositeProvider) IsHealthy

func (p *CompositeProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the provider is healthy

type CorePackage

type CorePackage struct {
	Name            string
	Type            string
	MinVersion      string
	MaxVersion      string
	Stability       string // stable, experimental, deprecated
	Lifecycle       string // alpha, beta, stable, deprecated
	SpecCompliance  string // v1.0, v1.1, v1.2, etc.
	BreakingChanges []string
}

CorePackage represents a core OTEL package

type DefaultProviderFactory

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

DefaultProviderFactory implements the ProviderFactory interface

func NewProviderFactory

func NewProviderFactory(path string, logger logger.Logger) *DefaultProviderFactory

NewProviderFactory creates a new provider factory with default providers

func (*DefaultProviderFactory) GetPackageManagerProvider

func (f *DefaultProviderFactory) GetPackageManagerProvider(language types.ComponentLanguage) (PackageManagerProvider, error)

GetPackageManagerProvider returns a package manager provider for the specified language

func (*DefaultProviderFactory) GetProvider

func (f *DefaultProviderFactory) GetProvider(language types.ComponentLanguage) (Provider, error)

GetProvider returns a provider for the specified language

func (*DefaultProviderFactory) GetRegistryProvider

func (f *DefaultProviderFactory) GetRegistryProvider(language types.ComponentLanguage) (RegistryProvider, error)

GetRegistryProvider returns a registry provider for the specified language

func (*DefaultProviderFactory) ListSupportedLanguages

func (f *DefaultProviderFactory) ListSupportedLanguages() []types.ComponentLanguage

ListSupportedLanguages returns all supported languages

func (*DefaultProviderFactory) RegisterProvider

func (f *DefaultProviderFactory) RegisterProvider(provider Provider) error

RegisterProvider registers a custom provider

type GenericLanguageProvider

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

GenericLanguageProvider implements Provider for any language using the registry client

func NewGenericLanguageProvider

func NewGenericLanguageProvider(language types.ComponentLanguage, githubToken string, logger logger.Logger) *GenericLanguageProvider

NewGenericLanguageProvider creates a new generic language provider

func (*GenericLanguageProvider) DiscoverComponents

func (p *GenericLanguageProvider) DiscoverComponents(ctx context.Context) ([]types.Component, error)

DiscoverComponents discovers all components for the language

func (*GenericLanguageProvider) GetComponentMetadata

func (p *GenericLanguageProvider) GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)

GetComponentMetadata gets metadata for a specific component

func (*GenericLanguageProvider) GetComponentVersions

func (p *GenericLanguageProvider) GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

GetComponentVersions gets versions for a specific component

func (*GenericLanguageProvider) GetLanguage

GetLanguage returns the language this provider supports

func (*GenericLanguageProvider) GetName

func (p *GenericLanguageProvider) GetName() string

GetName returns the provider name

func (*GenericLanguageProvider) GetPackageManagerProvider

func (p *GenericLanguageProvider) GetPackageManagerProvider() PackageManagerProvider

GetPackageManagerProvider returns the package manager provider

func (*GenericLanguageProvider) GetPackageManagerType

func (p *GenericLanguageProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*GenericLanguageProvider) GetRegistryProvider

func (p *GenericLanguageProvider) GetRegistryProvider() RegistryProvider

GetRegistryProvider returns the registry provider

func (*GenericLanguageProvider) GetRegistryType

func (p *GenericLanguageProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*GenericLanguageProvider) IsHealthy

func (p *GenericLanguageProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the provider is healthy

type GenericPackageManagerProvider

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

GenericPackageManagerProvider implements PackageManagerProvider for any language

func NewGenericPackageManagerProvider

func NewGenericPackageManagerProvider(language types.ComponentLanguage) *GenericPackageManagerProvider

NewGenericPackageManagerProvider creates a new generic package manager provider

func (*GenericPackageManagerProvider) GetLanguage

GetLanguage returns the language this package manager supports

func (*GenericPackageManagerProvider) GetLatestVersion

func (p *GenericPackageManagerProvider) GetLatestVersion(ctx context.Context, name string) (*VersionMetadata, error)

GetLatestVersion gets the latest version of a package

func (*GenericPackageManagerProvider) GetName

GetName returns the provider name

func (*GenericPackageManagerProvider) GetPackage

GetPackage gets package metadata by name

func (*GenericPackageManagerProvider) GetPackageManagerType

func (p *GenericPackageManagerProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*GenericPackageManagerProvider) GetPackageVersion

func (p *GenericPackageManagerProvider) GetPackageVersion(ctx context.Context, name, version string) (*VersionMetadata, error)

GetPackageVersion gets specific version metadata

func (*GenericPackageManagerProvider) IsHealthy

IsHealthy checks if the package manager is accessible

type GenericRegistryProvider

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

GenericRegistryProvider implements RegistryProvider for any language

func NewGenericRegistryProvider

func NewGenericRegistryProvider(language types.ComponentLanguage, path string, logger logger.Logger) *GenericRegistryProvider

NewGenericRegistryProvider creates a new generic registry provider

func (*GenericRegistryProvider) DiscoverComponents

func (p *GenericRegistryProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all components for the language

func (*GenericRegistryProvider) GetComponentByName

func (p *GenericRegistryProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name

func (*GenericRegistryProvider) GetLanguage

GetLanguage returns the language this registry supports

func (*GenericRegistryProvider) GetName

func (p *GenericRegistryProvider) GetName() string

GetName returns the provider name

func (*GenericRegistryProvider) GetRegistryType

func (p *GenericRegistryProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*GenericRegistryProvider) IsHealthy

func (p *GenericRegistryProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

type GitHubClient

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

GitHubClient represents a client for GitHub API operations

func NewGitHubClient

func NewGitHubClient(githubToken string) *GitHubClient

NewGitHubClient creates a new GitHub client with all parameters explicitly declared

func (*GitHubClient) ExtractOwnerAndRepo

func (g *GitHubClient) ExtractOwnerAndRepo(repositoryURL string) (string, string, error)

ExtractOwnerAndRepo extracts the owner and repository name from a GitHub URL

func (*GitHubClient) FetchReleases

func (g *GitHubClient) FetchReleases(ctx context.Context, owner, repo string) ([]GitHubRelease, error)

FetchReleases fetches all releases from a GitHub repository

func (*GitHubClient) GetReleaseNotes

func (g *GitHubClient) GetReleaseNotes(ctx context.Context, repositoryURL, version string) (*ReleaseNotes, error)

GetReleaseNotes fetches release notes for a specific version from a GitHub repository

type GitHubRelease

type GitHubRelease struct {
	TagName     string    `json:"tag_name"`
	Name        string    `json:"name"`
	Body        string    `json:"body"`
	PublishedAt time.Time `json:"published_at"`
	Prerelease  bool      `json:"prerelease"`
	URL         string    `json:"url"`
	HTMLURL     string    `json:"html_url"`
	AssetsURL   string    `json:"assets_url"`
	UploadURL   string    `json:"upload_url"`
	TarballURL  string    `json:"tarball_url"`
	ZipballURL  string    `json:"zipball_url"`
}

GitHubRelease represents a GitHub release

type GoModuleProxyClient

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

GoModuleProxyClient provides access to Go module proxy

func NewGoModuleProxyClient

func NewGoModuleProxyClient() *GoModuleProxyClient

NewGoModuleProxyClient creates a new Go module proxy client

func (*GoModuleProxyClient) IsHealthy

func (c *GoModuleProxyClient) IsHealthy(ctx context.Context) bool

IsHealthy checks if the Go module proxy is accessible

type GoPackageManagerProvider

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

GoPackageManagerProvider implements PackageManagerProvider for Go modules

func NewGoPackageManagerProvider

func NewGoPackageManagerProvider() *GoPackageManagerProvider

NewGoPackageManagerProvider creates a new Go package manager provider

func (*GoPackageManagerProvider) GetLanguage

GetLanguage returns the language this package manager supports

func (*GoPackageManagerProvider) GetLatestVersion

func (p *GoPackageManagerProvider) GetLatestVersion(ctx context.Context, name string) (*VersionMetadata, error)

GetLatestVersion gets the latest version of a package

func (*GoPackageManagerProvider) GetName

func (p *GoPackageManagerProvider) GetName() string

GetName returns the provider name

func (*GoPackageManagerProvider) GetPackage

func (p *GoPackageManagerProvider) GetPackage(ctx context.Context, name string) (*PackageMetadata, error)

GetPackage gets package metadata by name

func (*GoPackageManagerProvider) GetPackageManagerType

func (p *GoPackageManagerProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*GoPackageManagerProvider) GetPackageVersion

func (p *GoPackageManagerProvider) GetPackageVersion(ctx context.Context, name, version string) (*VersionMetadata, error)

GetPackageVersion gets specific version metadata

func (*GoPackageManagerProvider) IsHealthy

func (p *GoPackageManagerProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the package manager is accessible

type GoProvider

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

GoProvider implements the Provider interface for Go

func NewGoProvider

func NewGoProvider() *GoProvider

NewGoProvider creates a new Go provider

func (*GoProvider) DiscoverComponents

func (p *GoProvider) DiscoverComponents(ctx context.Context) ([]types.Component, error)

DiscoverComponents discovers all Go components

func (*GoProvider) GetComponentMetadata

func (p *GoProvider) GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)

GetComponentMetadata gets metadata for a specific Go component

func (*GoProvider) GetComponentVersions

func (p *GoProvider) GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

GetComponentVersions gets versions for a specific Go component

func (*GoProvider) GetLanguage

func (p *GoProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this provider supports

func (*GoProvider) GetName

func (p *GoProvider) GetName() string

GetName returns the provider name

func (*GoProvider) GetPackageManagerProvider

func (p *GoProvider) GetPackageManagerProvider() PackageManagerProvider

GetPackageManagerProvider returns the package manager provider

func (*GoProvider) GetPackageManagerType

func (p *GoProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*GoProvider) GetRegistryType

func (p *GoProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*GoProvider) IsHealthy

func (p *GoProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the provider is healthy

type GoRegistryProvider

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

GoRegistryProvider implements RegistryProvider for Go OpenTelemetry registry

func NewGoRegistryProvider

func NewGoRegistryProvider() *GoRegistryProvider

NewGoRegistryProvider creates a new Go registry provider

func (*GoRegistryProvider) DiscoverComponents

func (p *GoRegistryProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all Go components from the registry

func (*GoRegistryProvider) GetComponentByName

func (p *GoRegistryProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific Go component by name

func (*GoRegistryProvider) GetLanguage

func (p *GoRegistryProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this registry supports

func (*GoRegistryProvider) GetName

func (p *GoRegistryProvider) GetName() string

GetName returns the provider name

func (*GoRegistryProvider) GetRegistryType

func (p *GoRegistryProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*GoRegistryProvider) IsHealthy

func (p *GoRegistryProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

type JavaScriptPackageManagerProvider

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

JavaScriptPackageManagerProvider implements PackageManagerProvider for JavaScript

func (*JavaScriptPackageManagerProvider) GetLanguage

GetLanguage returns the language this package manager supports

func (*JavaScriptPackageManagerProvider) GetLatestVersion

func (p *JavaScriptPackageManagerProvider) GetLatestVersion(ctx context.Context, name string) (*VersionMetadata, error)

GetLatestVersion gets the latest version of a package

func (*JavaScriptPackageManagerProvider) GetName

GetName returns the provider name

func (*JavaScriptPackageManagerProvider) GetPackage

GetPackage gets package metadata by name

func (*JavaScriptPackageManagerProvider) GetPackageManagerType

func (p *JavaScriptPackageManagerProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*JavaScriptPackageManagerProvider) GetPackageVersion

func (p *JavaScriptPackageManagerProvider) GetPackageVersion(ctx context.Context, name, version string) (*VersionMetadata, error)

GetPackageVersion gets specific version metadata

func (*JavaScriptPackageManagerProvider) IsHealthy

IsHealthy checks if the package manager is accessible

type JavaScriptProvider

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

JavaScriptProvider implements the Provider interface for JavaScript

func NewJavaScriptProvider

func NewJavaScriptProvider() *JavaScriptProvider

NewJavaScriptProvider creates a new JavaScript provider

func (*JavaScriptProvider) DiscoverComponents

func (p *JavaScriptProvider) DiscoverComponents(ctx context.Context) ([]types.Component, error)

DiscoverComponents discovers all JavaScript components

func (*JavaScriptProvider) GetComponentMetadata

func (p *JavaScriptProvider) GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)

GetComponentMetadata gets metadata for a specific JavaScript component

func (*JavaScriptProvider) GetComponentVersions

func (p *JavaScriptProvider) GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

GetComponentVersions gets versions for a specific JavaScript component

func (*JavaScriptProvider) GetLanguage

func (p *JavaScriptProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this provider supports

func (*JavaScriptProvider) GetName

func (p *JavaScriptProvider) GetName() string

GetName returns the provider name

func (*JavaScriptProvider) GetPackageManagerProvider

func (p *JavaScriptProvider) GetPackageManagerProvider() PackageManagerProvider

GetPackageManagerProvider returns the package manager provider

func (*JavaScriptProvider) GetPackageManagerType

func (p *JavaScriptProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*JavaScriptProvider) GetRegistryProvider

func (p *JavaScriptProvider) GetRegistryProvider() RegistryProvider

GetRegistryProvider returns the registry provider

func (*JavaScriptProvider) GetRegistryType

func (p *JavaScriptProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*JavaScriptProvider) IsHealthy

func (p *JavaScriptProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the provider is healthy

type JavaScriptRegistryProvider

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

JavaScriptRegistryProvider implements RegistryProvider for JavaScript

func (*JavaScriptRegistryProvider) DiscoverComponents

func (p *JavaScriptRegistryProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all components for JavaScript

func (*JavaScriptRegistryProvider) GetComponentByName

func (p *JavaScriptRegistryProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name

func (*JavaScriptRegistryProvider) GetLanguage

GetLanguage returns the language this registry supports

func (*JavaScriptRegistryProvider) GetName

func (p *JavaScriptRegistryProvider) GetName() string

GetName returns the provider name

func (*JavaScriptRegistryProvider) GetRegistryType

func (p *JavaScriptRegistryProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*JavaScriptRegistryProvider) IsHealthy

func (p *JavaScriptRegistryProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

type OTELCoreProvider

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

OTELCoreProvider implements both Provider and RegistryProvider to include both registry components and core packages

func NewOTELCoreProvider

func NewOTELCoreProvider(language types.ComponentLanguage, logger logger.Logger) *OTELCoreProvider

NewOTELCoreProvider creates a new OTEL core provider

func (*OTELCoreProvider) CheckSpecificationCompliance

func (p *OTELCoreProvider) CheckSpecificationCompliance(specVersion string) (*SpecificationCompliance, error)

CheckSpecificationCompliance checks if packages comply with a specific OTEL spec version

func (*OTELCoreProvider) CheckVersionCompatibility

func (p *OTELCoreProvider) CheckVersionCompatibility(packages map[string]string) (bool, []string)

CheckVersionCompatibility checks if a set of package versions are compatible

func (*OTELCoreProvider) DiscoverComponents

func (p *OTELCoreProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponentsForRegistryInterface implements the RegistryProvider interface

func (*OTELCoreProvider) DiscoverComponentsForRegistry

func (p *OTELCoreProvider) DiscoverComponentsForRegistry(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponentsForRegistry discovers all components including core packages for the given language

func (*OTELCoreProvider) GetComplianceReport

func (p *OTELCoreProvider) GetComplianceReport() map[string]interface{}

GetComplianceReport generates a comprehensive compliance report for a language

func (*OTELCoreProvider) GetComponentByName

func (p *OTELCoreProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name

func (*OTELCoreProvider) GetLanguage

func (p *OTELCoreProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this registry supports

func (*OTELCoreProvider) GetMainSDKs

func (p *OTELCoreProvider) GetMainSDKs() []CorePackage

GetMainSDKs returns all main SDK packages for the language

func (*OTELCoreProvider) GetName

func (p *OTELCoreProvider) GetName() string

GetName returns the provider name

func (*OTELCoreProvider) GetRegistryType

func (p *OTELCoreProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*OTELCoreProvider) IsHealthy

func (p *OTELCoreProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

func (*OTELCoreProvider) IsMainSDK

func (p *OTELCoreProvider) IsMainSDK(packageName string) bool

IsMainSDK checks if a package is a main SDK package (not framework-specific)

type PackageManagerProvider

type PackageManagerProvider interface {
	// GetName returns the provider name
	GetName() string

	// GetLanguage returns the language this package manager supports
	GetLanguage() types.ComponentLanguage

	// GetPackageManagerType returns the type of package manager (e.g., "npm", "pypi", "maven")
	GetPackageManagerType() string

	// GetPackage gets package metadata by name
	GetPackage(ctx context.Context, name string) (*PackageMetadata, error)

	// GetPackageVersion gets specific version metadata
	GetPackageVersion(ctx context.Context, name, version string) (*VersionMetadata, error)

	// GetLatestVersion gets the latest version of a package
	GetLatestVersion(ctx context.Context, name string) (*VersionMetadata, error)

	// IsHealthy checks if the package manager is accessible
	IsHealthy(ctx context.Context) bool
}

PackageManagerProvider represents a package manager for enriching component metadata

type PackageMetadata

type PackageMetadata struct {
	Name                 string                     `json:"name"`
	Description          string                     `json:"description"`
	Version              string                     `json:"version"`
	Homepage             string                     `json:"homepage"`
	Repository           string                     `json:"repository"`
	Author               interface{}                `json:"author"`
	License              string                     `json:"license"`
	Keywords             []string                   `json:"keywords"`
	Main                 string                     `json:"main,omitempty"`
	Types                string                     `json:"types,omitempty"`
	Scripts              map[string]string          `json:"scripts,omitempty"`
	Dependencies         map[string]string          `json:"dependencies,omitempty"`
	DevDependencies      map[string]string          `json:"devDependencies,omitempty"`
	PeerDependencies     map[string]string          `json:"peerDependencies,omitempty"`
	OptionalDependencies map[string]string          `json:"optionalDependencies,omitempty"`
	Engines              map[string]string          `json:"engines,omitempty"`
	OS                   []string                   `json:"os,omitempty"`
	CPU                  []string                   `json:"cpu,omitempty"`
	DistTags             map[string]string          `json:"dist-tags,omitempty"`
	Time                 map[string]time.Time       `json:"time,omitempty"`
	Versions             map[string]VersionMetadata `json:"versions,omitempty"`
	Maintainers          []string                   `json:"maintainers,omitempty"`
	Contributors         []string                   `json:"contributors,omitempty"`
	Bugs                 string                     `json:"bugs,omitempty"`
	Readme               string                     `json:"readme,omitempty"`
	ID                   string                     `json:"_id,omitempty"`
	Rev                  string                     `json:"_rev,omitempty"`
}

PackageMetadata represents package metadata from any package manager

type PackageVersionInfo

type PackageVersionInfo struct {
	Version         string
	ReleaseDate     time.Time
	Stability       string
	Lifecycle       string
	SpecCompliance  string
	BreakingChanges []string
	Deprecated      bool
	MinCompatible   map[string]string // e.g., {"api": "1.0.0", "sdk": "1.0.0"}
}

PackageVersionInfo represents detailed version information

type Provider

type Provider interface {
	// Metadata about the provider
	GetName() string
	GetLanguage() types.ComponentLanguage
	GetRegistryType() string
	GetPackageManagerType() string

	// Core functionality
	DiscoverComponents(ctx context.Context) ([]types.Component, error)
	GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)
	GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

	// Health check
	IsHealthy(ctx context.Context) bool
}

Provider represents a language/registry provider for OpenTelemetry components

type ProviderFactory

type ProviderFactory interface {
	// GetProvider returns a provider for the specified language
	GetProvider(language types.ComponentLanguage) (Provider, error)

	// GetRegistryProvider returns a registry provider for the specified language
	GetRegistryProvider(language types.ComponentLanguage) (RegistryProvider, error)

	// GetPackageManagerProvider returns a package manager provider for the specified language
	GetPackageManagerProvider(language types.ComponentLanguage) (PackageManagerProvider, error)

	// ListSupportedLanguages returns all supported languages
	ListSupportedLanguages() []types.ComponentLanguage

	// RegisterProvider registers a custom provider
	RegisterProvider(provider Provider) error
}

ProviderFactory creates and manages providers

type PyPIClient

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

PyPIClient implements PackageManagerProvider for PyPI

func NewPyPIClient

func NewPyPIClient() *PyPIClient

NewPyPIClient creates a new PyPI client

func (*PyPIClient) GetLanguage

func (p *PyPIClient) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this package manager supports

func (*PyPIClient) GetLatestVersion

func (p *PyPIClient) GetLatestVersion(ctx context.Context, name string) (*VersionMetadata, error)

GetLatestVersion gets the latest version of a package

func (*PyPIClient) GetName

func (p *PyPIClient) GetName() string

GetName returns the provider name

func (*PyPIClient) GetPackage

func (p *PyPIClient) GetPackage(ctx context.Context, name string) (*PackageMetadata, error)

GetPackage gets package metadata by name

func (*PyPIClient) GetPackageManagerType

func (p *PyPIClient) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*PyPIClient) GetPackageVersion

func (p *PyPIClient) GetPackageVersion(ctx context.Context, name, version string) (*VersionMetadata, error)

GetPackageVersion gets specific version metadata

func (*PyPIClient) IsHealthy

func (p *PyPIClient) IsHealthy(ctx context.Context) bool

IsHealthy checks if the package manager is accessible

type PythonProvider

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

PythonProvider implements the Provider interface for Python

func NewPythonProvider

func NewPythonProvider() *PythonProvider

NewPythonProvider creates a new Python provider

func (*PythonProvider) DiscoverComponents

func (p *PythonProvider) DiscoverComponents(ctx context.Context) ([]types.Component, error)

DiscoverComponents discovers all Python components

func (*PythonProvider) GetComponentMetadata

func (p *PythonProvider) GetComponentMetadata(ctx context.Context, name string) (*types.Component, error)

GetComponentMetadata gets metadata for a specific Python component

func (*PythonProvider) GetComponentVersions

func (p *PythonProvider) GetComponentVersions(ctx context.Context, name string) ([]types.Version, error)

GetComponentVersions gets versions for a specific Python component

func (*PythonProvider) GetLanguage

func (p *PythonProvider) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this provider supports

func (*PythonProvider) GetName

func (p *PythonProvider) GetName() string

GetName returns the provider name

func (*PythonProvider) GetPackageManagerProvider

func (p *PythonProvider) GetPackageManagerProvider() PackageManagerProvider

GetPackageManagerProvider returns the package manager provider

func (*PythonProvider) GetPackageManagerType

func (p *PythonProvider) GetPackageManagerType() string

GetPackageManagerType returns the type of package manager

func (*PythonProvider) GetRegistryProvider

func (p *PythonProvider) GetRegistryProvider() RegistryProvider

GetRegistryProvider returns the registry provider

func (*PythonProvider) GetRegistryType

func (p *PythonProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*PythonProvider) IsHealthy

func (p *PythonProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the provider is healthy

type PythonRegistryClient

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

PythonRegistryClient implements RegistryProvider for Python OpenTelemetry components

func NewPythonRegistryClient

func NewPythonRegistryClient() *PythonRegistryClient

NewPythonRegistryClient creates a new Python registry client

func (*PythonRegistryClient) DiscoverComponents

func (p *PythonRegistryClient) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all components for Python

func (*PythonRegistryClient) GetComponentByName

func (p *PythonRegistryClient) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name

func (*PythonRegistryClient) GetLanguage

func (p *PythonRegistryClient) GetLanguage() types.ComponentLanguage

GetLanguage returns the language this registry supports

func (*PythonRegistryClient) GetName

func (p *PythonRegistryClient) GetName() string

GetName returns the provider name

func (*PythonRegistryClient) GetRegistryType

func (p *PythonRegistryClient) GetRegistryType() string

GetRegistryType returns the type of registry

func (*PythonRegistryClient) IsHealthy

func (p *PythonRegistryClient) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

type PythonRegistryProvider

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

PythonRegistryProvider implements RegistryProvider for Python using the main registry client

func NewPythonRegistryProvider

func NewPythonRegistryProvider() *PythonRegistryProvider

NewPythonRegistryProvider creates a new Python registry provider

func (*PythonRegistryProvider) DiscoverComponents

func (p *PythonRegistryProvider) DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

DiscoverComponents discovers all components for Python

func (*PythonRegistryProvider) GetComponentByName

func (p *PythonRegistryProvider) GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

GetComponentByName gets a specific component by name

func (*PythonRegistryProvider) GetLanguage

GetLanguage returns the language this registry supports

func (*PythonRegistryProvider) GetName

func (p *PythonRegistryProvider) GetName() string

GetName returns the provider name

func (*PythonRegistryProvider) GetRegistryType

func (p *PythonRegistryProvider) GetRegistryType() string

GetRegistryType returns the type of registry

func (*PythonRegistryProvider) IsHealthy

func (p *PythonRegistryProvider) IsHealthy(ctx context.Context) bool

IsHealthy checks if the registry is accessible

type RegistryComponent

type RegistryComponent struct {
	Name        string                 `json:"name"`
	Type        string                 `json:"type"`
	Language    string                 `json:"language"`
	Description string                 `json:"description"`
	Repository  string                 `json:"repository"`
	RegistryURL string                 `json:"registry_url"`
	Homepage    string                 `json:"homepage"`
	Tags        []string               `json:"tags"`
	Maintainers []string               `json:"maintainers"`
	License     string                 `json:"license"`
	LastUpdated time.Time              `json:"last_updated"`
	Metadata    map[string]interface{} `json:"metadata"`
}

RegistryComponent represents a component from any registry

type RegistryProvider

type RegistryProvider interface {
	// GetName returns the provider name
	GetName() string

	// GetLanguage returns the language this registry supports
	GetLanguage() types.ComponentLanguage

	// GetRegistryType returns the type of registry (e.g., "opentelemetry", "community")
	GetRegistryType() string

	// DiscoverComponents discovers all components for the given language
	DiscoverComponents(ctx context.Context, language string) ([]RegistryComponent, error)

	// GetComponentByName gets a specific component by name
	GetComponentByName(ctx context.Context, name string) (*RegistryComponent, error)

	// IsHealthy checks if the registry is accessible
	IsHealthy(ctx context.Context) bool
}

RegistryProvider represents a registry for discovering OpenTelemetry components

type ReleaseNotes

type ReleaseNotes struct {
	Version     string    `json:"version"`
	ReleaseDate time.Time `json:"release_date"`
	Notes       string    `json:"notes"`
	URL         string    `json:"url"`
	Found       bool      `json:"found"`
}

ReleaseNotes represents release notes for a specific version

type SpecificationCompliance

type SpecificationCompliance struct {
	SpecVersion     string // e.g., "v1.0", "v1.1", "v1.2"
	Language        string
	ComplianceLevel string   // "full", "partial", "minimal"
	Features        []string // List of implemented features
	MissingFeatures []string // List of missing features
	Notes           string
}

SpecificationCompliance tracks compliance with OpenTelemetry specifications

type VersionCompatibilityMatrix

type VersionCompatibilityMatrix struct {
	Language           string
	APIVersion         string
	SDKVersion         string
	SemConvVersion     string
	ExporterVersions   map[string]string
	PropagatorVersions map[string]string
	Compatible         bool
	Notes              string
}

VersionCompatibilityMatrix tracks compatibility between different core packages

type VersionMetadata

type VersionMetadata struct {
	Name                 string            `json:"name"`
	Version              string            `json:"version"`
	Description          string            `json:"description"`
	Main                 string            `json:"main,omitempty"`
	Types                string            `json:"types,omitempty"`
	Scripts              map[string]string `json:"scripts,omitempty"`
	Dependencies         map[string]string `json:"dependencies,omitempty"`
	DevDependencies      map[string]string `json:"devDependencies,omitempty"`
	PeerDependencies     map[string]string `json:"peerDependencies,omitempty"`
	OptionalDependencies map[string]string `json:"optionalDependencies,omitempty"`
	Engines              map[string]string `json:"engines,omitempty"`
	OS                   []string          `json:"os,omitempty"`
	CPU                  []string          `json:"cpu,omitempty"`
	Repository           string            `json:"repository,omitempty"`
	Homepage             string            `json:"homepage,omitempty"`
	License              string            `json:"license,omitempty"`
	Keywords             []string          `json:"keywords,omitempty"`
	Author               interface{}       `json:"author,omitempty"`
	Maintainers          []string          `json:"maintainers,omitempty"`
	Contributors         []string          `json:"contributors,omitempty"`
	Bugs                 string            `json:"bugs,omitempty"`
	Readme               string            `json:"readme,omitempty"`
	ID                   string            `json:"_id,omitempty"`
	Rev                  string            `json:"_rev,omitempty"`
}

VersionMetadata represents version metadata from any package manager

Jump to

Keyboard shortcuts

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