metadata

package
v1.260404.0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// DefaultLocale is the fastlane-compatible fallback locale token.
	DefaultLocale = "default"
)

Variables

This section is empty.

Functions

func AppInfoLocalizationFilePath

func AppInfoLocalizationFilePath(rootDir, locale string) (string, error)

AppInfoLocalizationFilePath resolves canonical app-info file path.

func ApplyWritePlans

func ApplyWritePlans(plans []WritePlan) error

ApplyWritePlans writes plans in deterministic order.

func EncodeAppInfoLocalization

func EncodeAppInfoLocalization(loc AppInfoLocalization) ([]byte, error)

EncodeAppInfoLocalization returns deterministic canonical JSON.

func EncodeVersionLocalization

func EncodeVersionLocalization(loc VersionLocalization) ([]byte, error)

EncodeVersionLocalization returns deterministic canonical JSON.

func MetadataApplyCommand added in v1.260404.0

func MetadataApplyCommand() *ffcli.Command

MetadataApplyCommand returns the canonical apply alias for metadata push.

func MetadataCommand

func MetadataCommand() *ffcli.Command

MetadataCommand returns the metadata command group.

func MetadataKeywordsApplyCommand

func MetadataKeywordsApplyCommand() *ffcli.Command

MetadataKeywordsApplyCommand returns the keywords apply subcommand.

func MetadataKeywordsCommand

func MetadataKeywordsCommand() *ffcli.Command

MetadataKeywordsCommand returns the canonical metadata keywords subtree.

func MetadataKeywordsDiffCommand

func MetadataKeywordsDiffCommand() *ffcli.Command

MetadataKeywordsDiffCommand returns the keywords diff subcommand.

func MetadataKeywordsImportCommand

func MetadataKeywordsImportCommand() *ffcli.Command

MetadataKeywordsImportCommand returns the keywords import subcommand.

func MetadataKeywordsLocalizeCommand

func MetadataKeywordsLocalizeCommand() *ffcli.Command

MetadataKeywordsLocalizeCommand returns the keywords localize subcommand.

func MetadataKeywordsPlanCommand

func MetadataKeywordsPlanCommand() *ffcli.Command

MetadataKeywordsPlanCommand returns the keywords plan subcommand.

func MetadataKeywordsSyncCommand

func MetadataKeywordsSyncCommand() *ffcli.Command

MetadataKeywordsSyncCommand returns the keywords sync subcommand.

func MetadataPullCommand

func MetadataPullCommand() *ffcli.Command

MetadataPullCommand returns the metadata pull subcommand.

func MetadataPushCommand

func MetadataPushCommand() *ffcli.Command

MetadataPushCommand returns the metadata push subcommand.

func MetadataValidateCommand

func MetadataValidateCommand() *ffcli.Command

MetadataValidateCommand returns the metadata validate subcommand.

func VersionLocalizationFilePath

func VersionLocalizationFilePath(rootDir, version, locale string) (string, error)

VersionLocalizationFilePath resolves canonical version file path.

Types

type AppInfoLocalization

type AppInfoLocalization struct {
	Name              string `json:"name,omitempty"`
	Subtitle          string `json:"subtitle,omitempty"`
	PrivacyPolicyURL  string `json:"privacyPolicyUrl,omitempty"`
	PrivacyChoicesURL string `json:"privacyChoicesUrl,omitempty"`
	PrivacyPolicyText string `json:"privacyPolicyText,omitempty"`
}

AppInfoLocalization is the canonical app-info localization schema.

func DecodeAppInfoLocalization

func DecodeAppInfoLocalization(data []byte) (AppInfoLocalization, error)

DecodeAppInfoLocalization strictly decodes canonical app-info JSON.

func NormalizeAppInfoLocalization

func NormalizeAppInfoLocalization(loc AppInfoLocalization) AppInfoLocalization

NormalizeAppInfoLocalization trims all field values.

func ReadAppInfoLocalizationFile

func ReadAppInfoLocalizationFile(path string) (AppInfoLocalization, error)

ReadAppInfoLocalizationFile reads and decodes canonical app-info JSON.

type ApplyAction

type ApplyAction struct {
	Scope          string `json:"scope"`
	Locale         string `json:"locale"`
	Version        string `json:"version,omitempty"`
	Action         string `json:"action"`
	LocalizationID string `json:"localizationId,omitempty"`
}

ApplyAction represents one executed mutation action.

type MetadataKeywordFileResult

type MetadataKeywordFileResult struct {
	Locale            string   `json:"locale"`
	File              string   `json:"file"`
	Action            string   `json:"action"`
	Reason            string   `json:"reason,omitempty"`
	KeywordField      string   `json:"keywordField,omitempty"`
	KeywordCount      int      `json:"keywordCount,omitempty"`
	DuplicateCount    int      `json:"duplicateCount,omitempty"`
	SkippedDuplicates []string `json:"skippedDuplicates,omitempty"`
}

MetadataKeywordFileResult describes one local keyword file change.

type MetadataKeywordIssue

type MetadataKeywordIssue struct {
	Locale       string `json:"locale,omitempty"`
	File         string `json:"file,omitempty"`
	Severity     string `json:"severity"`
	Message      string `json:"message"`
	KeywordField string `json:"keywordField,omitempty"`
	Length       int    `json:"length,omitempty"`
	Limit        int    `json:"limit,omitempty"`
}

MetadataKeywordIssue describes one preview-time validation issue.

type MetadataKeywordSideDataArtifact

type MetadataKeywordSideDataArtifact struct {
	Dir     string                          `json:"dir"`
	Version string                          `json:"version"`
	Input   string                          `json:"input"`
	Format  string                          `json:"format"`
	Records []MetadataKeywordSideDataRecord `json:"records"`
}

MetadataKeywordSideDataArtifact is the persisted side-data report format.

type MetadataKeywordSideDataRecord

type MetadataKeywordSideDataRecord struct {
	Locale   string         `json:"locale,omitempty"`
	Keywords []string       `json:"keywords,omitempty"`
	Fields   map[string]any `json:"fields"`
}

MetadataKeywordSideDataRecord captures non-publishable research fields from imports.

type MetadataKeywordsImportResult

type MetadataKeywordsImportResult struct {
	Dir                 string                      `json:"dir"`
	Version             string                      `json:"version"`
	Input               string                      `json:"input"`
	Format              string                      `json:"format"`
	DryRun              bool                        `json:"dryRun"`
	Valid               bool                        `json:"valid"`
	DetectedLocales     []string                    `json:"detectedLocales"`
	Results             []MetadataKeywordFileResult `json:"results"`
	Issues              []MetadataKeywordIssue      `json:"issues,omitempty"`
	SideDataRecordCount int                         `json:"sideDataRecordCount,omitempty"`
	SideDataReportPath  string                      `json:"sideDataReportPath,omitempty"`
}

MetadataKeywordsImportResult describes one import run.

type MetadataKeywordsLocalizeResult

type MetadataKeywordsLocalizeResult struct {
	Dir                 string                      `json:"dir"`
	Version             string                      `json:"version"`
	FromLocale          string                      `json:"fromLocale"`
	DryRun              bool                        `json:"dryRun"`
	Valid               bool                        `json:"valid"`
	DetectedLocales     []string                    `json:"detectedLocales"`
	Results             []MetadataKeywordFileResult `json:"results"`
	Issues              []MetadataKeywordIssue      `json:"issues,omitempty"`
	SideDataRecordCount int                         `json:"sideDataRecordCount,omitempty"`
	SideDataReportPath  string                      `json:"sideDataReportPath,omitempty"`
}

MetadataKeywordsLocalizeResult describes one localization-copy run.

type MetadataKeywordsPlanResult

type MetadataKeywordsPlanResult struct {
	AppID     string                    `json:"appId"`
	Version   string                    `json:"version"`
	VersionID string                    `json:"versionId"`
	Dir       string                    `json:"dir"`
	DryRun    bool                      `json:"dryRun"`
	Applied   bool                      `json:"applied,omitempty"`
	Adds      []PlanItem                `json:"adds"`
	Updates   []PlanItem                `json:"updates"`
	APICalls  []PlanAPICall             `json:"apiCalls,omitempty"`
	Actions   []ApplyAction             `json:"actions,omitempty"`
	Warnings  []MetadataKeywordsWarning `json:"warnings,omitempty"`
}

MetadataKeywordsPlanResult describes keyword-only remote changes.

type MetadataKeywordsSyncResult

type MetadataKeywordsSyncResult struct {
	Import MetadataKeywordsImportResult `json:"import"`
	Plan   *MetadataKeywordsPlanResult  `json:"plan,omitempty"`
}

MetadataKeywordsSyncResult combines import and remote planning/apply.

type MetadataKeywordsWarning

type MetadataKeywordsWarning struct {
	Action        string   `json:"action"`
	Locale        string   `json:"locale"`
	Message       string   `json:"message"`
	MissingFields []string `json:"missingFields,omitempty"`
}

MetadataKeywordsWarning highlights submit-readiness risk during keyword creates.

type PlanAPICall

type PlanAPICall struct {
	Operation string `json:"operation"`
	Scope     string `json:"scope"`
	Count     int    `json:"count"`
}

PlanAPICall is an estimated API call summary for the plan.

type PlanItem

type PlanItem struct {
	Key     string `json:"key"`
	Scope   string `json:"scope"`
	Locale  string `json:"locale"`
	Version string `json:"version,omitempty"`
	Field   string `json:"field"`
	Reason  string `json:"reason"`
	From    string `json:"from,omitempty"`
	To      string `json:"to,omitempty"`
}

PlanItem represents one deterministic metadata change entry.

type PullResult

type PullResult struct {
	AppID     string   `json:"appId"`
	AppInfoID string   `json:"appInfoId"`
	Version   string   `json:"version"`
	VersionID string   `json:"versionId"`
	Dir       string   `json:"dir"`
	Includes  []string `json:"includes"`
	Locales   []string `json:"locales,omitempty"`
	FileCount int      `json:"fileCount"`
	Files     []string `json:"files"`
}

PullResult is the structured output artifact for metadata pull.

type PushExecutionOptions

type PushExecutionOptions struct {
	CommandName  string
	AppID        string
	AppInfoID    string
	Version      string
	Platform     string
	Dir          string
	Include      string
	DryRun       bool
	AllowDeletes bool
	Confirm      bool
}

PushExecutionOptions controls metadata push planning and apply behavior.

type PushPlanResult

type PushPlanResult struct {
	AppID     string        `json:"appId"`
	AppInfoID string        `json:"appInfoId"`
	Version   string        `json:"version"`
	VersionID string        `json:"versionId"`
	Dir       string        `json:"dir"`
	DryRun    bool          `json:"dryRun"`
	Applied   bool          `json:"applied,omitempty"`
	Includes  []string      `json:"includes"`
	Adds      []PlanItem    `json:"adds"`
	Updates   []PlanItem    `json:"updates"`
	Deletes   []PlanItem    `json:"deletes"`
	APICalls  []PlanAPICall `json:"apiCalls,omitempty"`
	Actions   []ApplyAction `json:"actions,omitempty"`
}

PushPlanResult is the push dry-run output artifact.

func ExecutePush

func ExecutePush(ctx context.Context, opts PushExecutionOptions) (PushPlanResult, error)

ExecutePush computes and optionally applies a metadata push plan.

This is the command-agnostic execution path used by metadata push and release orchestration.

type ValidateIssue

type ValidateIssue struct {
	Scope    string `json:"scope"`
	File     string `json:"file"`
	Locale   string `json:"locale,omitempty"`
	Version  string `json:"version,omitempty"`
	Field    string `json:"field"`
	Severity string `json:"severity"`
	Message  string `json:"message"`
	Length   int    `json:"length,omitempty"`
	Limit    int    `json:"limit,omitempty"`
}

ValidateIssue represents one metadata validation issue.

type ValidateResult

type ValidateResult struct {
	Dir          string          `json:"dir"`
	FilesScanned int             `json:"filesScanned"`
	Issues       []ValidateIssue `json:"issues"`
	ErrorCount   int             `json:"errorCount"`
	WarningCount int             `json:"warningCount"`
	Valid        bool            `json:"valid"`
}

ValidateResult is the structured result for metadata validate.

type ValidationIssue

type ValidationIssue struct {
	Field   string `json:"field"`
	Message string `json:"message"`
}

ValidationIssue describes a schema or content validation issue.

func ValidateAppInfoLocalization

func ValidateAppInfoLocalization(loc AppInfoLocalization, opts ValidationOptions) []ValidationIssue

ValidateAppInfoLocalization validates required app-info localization fields.

func ValidateVersionLocalization

func ValidateVersionLocalization(loc VersionLocalization) []ValidationIssue

ValidateVersionLocalization validates required version localization fields.

type ValidationOptions

type ValidationOptions struct {
	RequireName bool
	AllowEmpty  bool
}

ValidationOptions controls required-field validation.

type VersionLocalization

type VersionLocalization struct {
	Description     string `json:"description,omitempty"`
	Keywords        string `json:"keywords,omitempty"`
	MarketingURL    string `json:"marketingUrl,omitempty"`
	PromotionalText string `json:"promotionalText,omitempty"`
	SupportURL      string `json:"supportUrl,omitempty"`
	WhatsNew        string `json:"whatsNew,omitempty"`
}

VersionLocalization is the canonical version localization schema.

func DecodeVersionLocalization

func DecodeVersionLocalization(data []byte) (VersionLocalization, error)

DecodeVersionLocalization strictly decodes canonical version JSON.

func NormalizeVersionLocalization

func NormalizeVersionLocalization(loc VersionLocalization) VersionLocalization

NormalizeVersionLocalization trims all field values.

func ReadVersionLocalizationFile

func ReadVersionLocalizationFile(path string) (VersionLocalization, error)

ReadVersionLocalizationFile reads and decodes canonical version JSON.

type WritePlan

type WritePlan struct {
	Path     string
	Contents []byte
}

WritePlan represents one deterministic file write operation.

func BuildWritePlans

func BuildWritePlans(
	rootDir string,
	appInfoLocalizations map[string]AppInfoLocalization,
	versionLocalizations map[string]map[string]VersionLocalization,
) ([]WritePlan, error)

BuildWritePlans creates deterministic write plans for canonical metadata files.

Jump to

Keyboard shortcuts

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