Instalação

Como adicionar o termo_core em projetos TypeScript e Rust, fixar a versão e escolher só os serviços que você usa.

TypeScript

TypeScript puro, só fetch, interface e type, sem nenhuma dependência em runtime. Funciona no navegador, em Node 20+, Bun e Deno.

npm install termo_core --save-exact
package.json
{
  "dependencies": {
    "termo_core": "0.1.5"
  }
}

Cada serviço tem o próprio caminho de importação, bom para o bundle do frontend:

import { buscar_pelo_id_usuario } from "termo_core/auth";
import { criar_arquivo } from "termo_core/bucket";

// ou tudo pela raiz, com um namespace por serviço
import { auth, bucket } from "termo_core";
await auth.buscar_pelo_id_usuario(credencial_de_acesso, id);

Rust

Cargo.toml
[dependencies]
termo_core = "=0.1.5"                                                  # todos os serviços
termo_core = { version = "=0.1.5", features = ["webhook_postgres"] }   # + fila de saída de eventos

Cada serviço é uma feature, todas ligadas por padrão (todos_os_servicos). Para compilar menos:

termo_core = { version = "=0.1.5", default-features = false, features = ["auth", "bucket"] }
FeatureO que liga
todos_os_servicos (padrão)todos os módulos de serviço
ai, auth, bucket, intranet, leads, mcp, portal, quality, sell, status, studio, support, tracing, webhook, wmso módulo do serviço com o mesmo nome
webhook_publicarpublicar_evento_no_hub_agora e ConfiguracaoDoHub
webhook_receberconferência da assinatura Ed25519 das entregas do hub
webhook_postgresfila de saída no Postgres do app (inclui webhook_publicar)

Por que fixar a versão exata

Sempre com =

Nunca use "0.1", "^0.1.5" nem "~0.1.5". Os contratos vêm do SANDBOX e o workflow publica toda mudança subindo só o último número, inclusive quando a mudança quebra código (campo ou rota removida, nome trocado).

Sem a versão exata, um cargo update ou um npm install sem lockfile pode trazer, sem ninguém perceber, um contrato que ainda só existe no sandbox. Para atualizar, troque a versão de propósito e confira se o projeto compila.

As versões do crate e do pacote npm não andam juntas: cada uma sobe quando o código dela muda.

Os exemplos usam 0.1.5. A versão publicada mais recente de cada pacote aparece no topo da página de cada serviço, no bloco de importação.

Nesta página