Referência de Schema do Invowkmod
O schema do invowkmod 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 invowkmod.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 invowkmod.cue com esta estrutura:
#Invowkmod: {
module: string // Required - module identifier
version: string // Required - semver version (e.g., "1.0.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 .invowkmod).
module: "mytools"
module: "com.company.devtools"
module: "io.github.username.cli"
version
Tipo: string (padrão: ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$)
Obrigatório: Sim
Versão do módulo em formato semver (ex: "1.0.0", "2.1.0-beta.1").
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.invowkmod.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.