id

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2025 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ID format patterns
	TemplateIDPattern  = `^[a-z0-9_]+(_v\d+\.\d+)?(_[a-f0-9]{8})?$`
	CategoryIDPattern  = `^[a-z0-9_]+$`
	ModuleIDPattern    = `^[a-z0-9_]+$`
	VersionPattern     = `^\d+\.\d+$`
	ToolVersionPattern = `^\d+\.\d+\.\d+$`

	// Maximum lengths
	MaxIDLength          = 64
	MaxDescriptiveLength = 32
)

Constants for ID generation and validation

Variables

This section is empty.

Functions

This section is empty.

Types

type Generator

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

Generator handles the generation and validation of unique IDs

func NewGenerator

func NewGenerator() *Generator

NewGenerator creates a new ID generator

func (*Generator) GenerateID

func (g *Generator) GenerateID(idType IDType, category, name, version string) (string, error)

GenerateID generates a unique ID based on the provided parameters

func (*Generator) RegisterExistingID

func (g *Generator) RegisterExistingID(id string)

RegisterExistingID registers an existing ID to avoid duplicates

func (*Generator) ValidateID

func (g *Generator) ValidateID(idType IDType, id string) error

ValidateID validates an ID against the appropriate pattern

func (*Generator) ValidateVersion

func (g *Generator) ValidateVersion(version string, isTool bool) error

ValidateVersion validates a version string against the appropriate pattern

type IDType

type IDType string

IDType represents the type of ID to generate

const (
	TemplateID IDType = "template"
	CategoryID IDType = "category"
	ProviderID IDType = "provider"
	UtilityID  IDType = "utility"
	DetectorID IDType = "detector"
)

Available ID types

type Manager

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

Manager handles the management of template and module IDs

func NewManager

func NewManager(templatesDir, modulesDir string) *Manager

NewManager creates a new ID manager

func (*Manager) GenerateCategoryID

func (m *Manager) GenerateCategoryID(name string) (string, error)

GenerateCategoryID generates a unique ID for a category

func (*Manager) GenerateDetectorID

func (m *Manager) GenerateDetectorID(name string) (string, error)

GenerateDetectorID generates a unique ID for a detector

func (*Manager) GenerateProviderID

func (m *Manager) GenerateProviderID(name string) (string, error)

GenerateProviderID generates a unique ID for a provider

func (*Manager) GenerateTemplateID

func (m *Manager) GenerateTemplateID(category, name, version string) (string, error)

GenerateTemplateID generates a unique ID for a template

func (*Manager) GenerateUtilityID

func (m *Manager) GenerateUtilityID(name string) (string, error)

GenerateUtilityID generates a unique ID for a utility

func (*Manager) GetModuleFilename

func (m *Manager) GetModuleFilename(name, version string) string

GetModuleFilename generates a filename for a module

func (*Manager) GetTemplateFilename

func (m *Manager) GetTemplateFilename(name, version string) string

GetTemplateFilename generates a filename for a template

func (*Manager) GetTemplateInfo

func (m *Manager) GetTemplateInfo(id string) (TemplateInfo, bool)

GetTemplateInfo gets information about a template by ID

func (*Manager) GetTemplatesByCategory

func (m *Manager) GetTemplatesByCategory(category string) []TemplateInfo

GetTemplatesByCategory gets all templates in a category

func (*Manager) GetTemplatesByTag

func (m *Manager) GetTemplatesByTag(tag string) []TemplateInfo

GetTemplatesByTag gets all templates with a specific tag

func (*Manager) IsCategoryIDTaken

func (m *Manager) IsCategoryIDTaken(id string) bool

IsCategoryIDTaken checks if a category ID is already in use

func (*Manager) IsDetectorIDTaken

func (m *Manager) IsDetectorIDTaken(id string) bool

IsDetectorIDTaken checks if a detector ID is already in use

func (*Manager) IsProviderIDTaken

func (m *Manager) IsProviderIDTaken(id string) bool

IsProviderIDTaken checks if a provider ID is already in use

func (*Manager) IsTemplateIDTaken

func (m *Manager) IsTemplateIDTaken(id string) bool

IsTemplateIDTaken checks if a template ID is already in use

func (*Manager) IsUtilityIDTaken

func (m *Manager) IsUtilityIDTaken(id string) bool

IsUtilityIDTaken checks if a utility ID is already in use

func (*Manager) LoadExistingIDs

func (m *Manager) LoadExistingIDs() error

LoadExistingIDs loads existing IDs from the manifest files

func (*Manager) RegisterCategory

func (m *Manager) RegisterCategory(id string) error

RegisterCategory registers a new category

func (*Manager) RegisterDetector

func (m *Manager) RegisterDetector(id string) error

RegisterDetector registers a new detector

func (*Manager) RegisterProvider

func (m *Manager) RegisterProvider(id string) error

RegisterProvider registers a new provider

func (*Manager) RegisterTemplate

func (m *Manager) RegisterTemplate(info TemplateInfo) error

RegisterTemplate registers a new template

func (*Manager) RegisterUtility

func (m *Manager) RegisterUtility(id string) error

RegisterUtility registers a new utility

type TemplateInfo

type TemplateInfo struct {
	ID          string   `json:"id"`
	Name        string   `json:"name"`
	Path        string   `json:"path"`
	Version     string   `json:"version"`
	Category    string   `json:"category"`
	Description string   `json:"description"`
	Tags        []string `json:"tags,omitempty"`
}

TemplateInfo represents the basic information about a template

Jump to

Keyboard shortcuts

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