Pular para o conteúdo principal
Versão: 0.1.0-alpha.1

Referência de Schema do Invkmod

Alpha — Schema Pode Mudar

O schema do invkmod ainda está evoluindo. Campos, tipos e regras de validação podem mudar entre releases enquanto estabilizamos o formato. Sempre verifique o changelog ao fazer upgrade.

Referência completa para invkmod.cue, o arquivo de metadados do módulo. Metadados são validados como struct fechado, então campos desconhecidos geram erro de validação.

Estrutura Raiz

Todo módulo deve incluir um arquivo invkmod.cue com esta estrutura:

#Invkmod: {
module: string // Required - module identifier
version?: string // Optional - metadata version (e.g., "1.0")
description?: string // Optional - module description
requires?: [...#ModuleRequirement] // Optional - dependencies
}

module

Tipo: string (padrão: ^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z][a-zA-Z0-9]*)*$) Obrigatório: Sim

O identificador do módulo. Deve corresponder ao prefixo do nome da pasta (antes de .invkmod).

module: "mytools"
module: "com.company.devtools"
module: "io.github.username.cli"

version

Tipo: string (padrão: ^[0-9]+\.[0-9]+$) Obrigatório: Não

Versão dos metadados do módulo. A versão atual é "1.0".

description

Tipo: string Obrigatório: Não

Um resumo curto do propósito do módulo.

requires

Tipo: [...#ModuleRequirement] Obrigatório: Não

Lista de dependências de módulos em repositórios Git.

requires: [
{
git_url: "https://github.com/example/common.invkmod.git"
version: "^1.0.0"
alias: "common"
},
]

ModuleRequirement

Define uma entrada de dependência:

#ModuleRequirement: {
git_url: string
version: string
alias?: string
path?: string
}

git_url

Tipo: string Obrigatório: Sim

URL do repositório Git (HTTPS ou SSH). O repositório deve conter um módulo.

version

Tipo: string Obrigatório: Sim

Restrição de versão semântica usada para resolver uma tag Git.

alias

Tipo: string Obrigatório: Não

Sobrescreve o namespace padrão para esta dependência (deve seguir regras de nomenclatura de módulos).

path

Tipo: string Obrigatório: Não

Subdiretório dentro do repositório que contém o módulo. Deve ser relativo e não pode conter sequências de travessia de caminho.