termo_core 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/README.md +72 -2
  2. package/dist/ai/index.d.ts +6 -0
  3. package/dist/ai/index.js +7 -0
  4. package/dist/ai/rotas.d.ts +577 -0
  5. package/dist/ai/rotas.js +851 -0
  6. package/dist/ai/tipos.d.ts +638 -0
  7. package/dist/ai/tipos.js +2 -0
  8. package/dist/auth/index.d.ts +6 -0
  9. package/dist/auth/index.js +7 -0
  10. package/dist/auth/rotas.d.ts +359 -0
  11. package/dist/auth/rotas.js +491 -0
  12. package/dist/auth/tipos.d.ts +302 -0
  13. package/dist/auth/tipos.js +2 -0
  14. package/dist/base/ambiente.d.ts +18 -0
  15. package/dist/base/ambiente.js +47 -0
  16. package/dist/base/credencial.d.ts +9 -0
  17. package/dist/base/credencial.js +17 -0
  18. package/dist/base/erro.d.ts +23 -0
  19. package/dist/base/erro.js +44 -0
  20. package/dist/base/index.d.ts +7 -0
  21. package/dist/base/index.js +7 -0
  22. package/dist/base/requisicao.d.ts +33 -0
  23. package/dist/base/requisicao.js +154 -0
  24. package/dist/base/servico_termotubos.d.ts +18 -0
  25. package/dist/base/servico_termotubos.js +23 -0
  26. package/dist/base/servicos.d.ts +17 -0
  27. package/dist/base/servicos.js +123 -0
  28. package/dist/base/token_do_aplicativo.d.ts +27 -0
  29. package/dist/base/token_do_aplicativo.js +82 -0
  30. package/dist/bucket/index.d.ts +6 -0
  31. package/dist/bucket/index.js +7 -0
  32. package/dist/bucket/rotas.d.ts +145 -0
  33. package/dist/bucket/rotas.js +216 -0
  34. package/dist/bucket/tipos.d.ts +81 -0
  35. package/dist/bucket/tipos.js +2 -0
  36. package/dist/index.d.ts +16 -0
  37. package/dist/index.js +17 -0
  38. package/dist/intranet/index.d.ts +6 -0
  39. package/dist/intranet/index.js +7 -0
  40. package/dist/intranet/rotas.d.ts +536 -0
  41. package/dist/intranet/rotas.js +715 -0
  42. package/dist/intranet/tipos.d.ts +543 -0
  43. package/dist/intranet/tipos.js +2 -0
  44. package/dist/leads/index.d.ts +6 -0
  45. package/dist/leads/index.js +7 -0
  46. package/dist/leads/rotas.d.ts +382 -0
  47. package/dist/leads/rotas.js +475 -0
  48. package/dist/leads/tipos.d.ts +973 -0
  49. package/dist/leads/tipos.js +2 -0
  50. package/dist/mcp/index.d.ts +6 -0
  51. package/dist/mcp/index.js +7 -0
  52. package/dist/mcp/rotas.d.ts +1 -0
  53. package/dist/mcp/rotas.js +3 -0
  54. package/dist/mcp/tipos.d.ts +1 -0
  55. package/dist/mcp/tipos.js +2 -0
  56. package/dist/portal/index.d.ts +6 -0
  57. package/dist/portal/index.js +7 -0
  58. package/dist/portal/rotas.d.ts +2102 -0
  59. package/dist/portal/rotas.js +2742 -0
  60. package/dist/portal/tipos.d.ts +1805 -0
  61. package/dist/portal/tipos.js +2 -0
  62. package/dist/quality/index.d.ts +6 -0
  63. package/dist/quality/index.js +7 -0
  64. package/dist/quality/rotas.d.ts +1 -0
  65. package/dist/quality/rotas.js +3 -0
  66. package/dist/quality/tipos.d.ts +1 -0
  67. package/dist/quality/tipos.js +2 -0
  68. package/dist/sell/index.d.ts +6 -0
  69. package/dist/sell/index.js +7 -0
  70. package/dist/sell/rotas.d.ts +862 -0
  71. package/dist/sell/rotas.js +1214 -0
  72. package/dist/sell/tipos.d.ts +759 -0
  73. package/dist/sell/tipos.js +2 -0
  74. package/dist/status/index.d.ts +6 -0
  75. package/dist/status/index.js +7 -0
  76. package/dist/status/rotas.d.ts +1 -0
  77. package/dist/status/rotas.js +3 -0
  78. package/dist/status/tipos.d.ts +1 -0
  79. package/dist/status/tipos.js +2 -0
  80. package/dist/studio/index.d.ts +6 -0
  81. package/dist/studio/index.js +7 -0
  82. package/dist/studio/rotas.d.ts +1 -0
  83. package/dist/studio/rotas.js +3 -0
  84. package/dist/studio/tipos.d.ts +1 -0
  85. package/dist/studio/tipos.js +2 -0
  86. package/dist/support/index.d.ts +6 -0
  87. package/dist/support/index.js +7 -0
  88. package/dist/support/rotas.d.ts +1123 -0
  89. package/dist/support/rotas.js +1509 -0
  90. package/dist/support/tipos.d.ts +1003 -0
  91. package/dist/support/tipos.js +2 -0
  92. package/dist/tracing/index.d.ts +6 -0
  93. package/dist/tracing/index.js +7 -0
  94. package/dist/tracing/rotas.d.ts +716 -0
  95. package/dist/tracing/rotas.js +986 -0
  96. package/dist/tracing/tipos.d.ts +588 -0
  97. package/dist/tracing/tipos.js +2 -0
  98. package/dist/webhook/eventos/index.d.ts +1 -0
  99. package/dist/webhook/eventos/index.js +2 -0
  100. package/dist/webhook/eventos/termo_auth.d.ts +108 -0
  101. package/dist/webhook/eventos/termo_auth.js +37 -0
  102. package/dist/webhook/index.d.ts +7 -0
  103. package/dist/webhook/index.js +8 -0
  104. package/dist/webhook/rotas.d.ts +836 -0
  105. package/dist/webhook/rotas.js +1167 -0
  106. package/dist/webhook/tipos.d.ts +742 -0
  107. package/dist/webhook/tipos.js +2 -0
  108. package/dist/wms/index.d.ts +6 -0
  109. package/dist/wms/index.js +7 -0
  110. package/dist/wms/rotas.d.ts +1 -0
  111. package/dist/wms/rotas.js +3 -0
  112. package/dist/wms/tipos.d.ts +1 -0
  113. package/dist/wms/tipos.js +2 -0
  114. package/package.json +44 -4
package/README.md CHANGED
@@ -1,3 +1,73 @@
1
- # Temporary Holding Version
1
+ # termo_core (TypeScript)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Todos os clientes da Termotubos num pacote só, para **frontend e backend**: TypeScript puro, só `fetch`, `interface` e `type`, **sem nenhuma dependência**. Cada serviço é um módulo e cada rota da API é uma função gerada a partir do `openapi.json` do serviço, com o mesmo nome do crate Rust [`termo_core`](https://crates.io/crates/termo_core).
4
+
5
+ ```bash
6
+ npm install termo_core --save-exact
7
+ ```
8
+
9
+ Fixe sempre a versão exata (`"termo_core": "0.1.5"`, sem `^` nem `~`). Cada mudança de contrato do sandbox é publicada subindo só o último número, inclusive quando quebra código. Para atualizar, troque a versão de propósito e confira se compila.
10
+
11
+ ## Ambiente
12
+
13
+ No backend (Node 20+, Bun, Deno), o endereço de cada serviço vem da variável `AMBIENTE` (`LOCALHOST`, `SANDBOX` ou `PRODUCTION`). No navegador não existe `process.env`, então fixe o ambiente uma vez ao subir o app:
14
+
15
+ ```ts
16
+ import { definir_ambiente_atual_pelo_codigo } from "termo_core";
17
+
18
+ definir_ambiente_atual_pelo_codigo(import.meta.env.VITE_AMBIENTE); // "SANDBOX"
19
+ ```
20
+
21
+ Sem ambiente, a primeira chamada lança `termo_core: defina a variável AMBIENTE...`: nunca cai em PRODUCTION por engano.
22
+
23
+ ## Chamando uma rota
24
+
25
+ ```ts
26
+ import { CredencialDeAcesso, ErroAoChamarServico } from "termo_core";
27
+ import { buscar_pelo_id_usuario, buscar_paginador_usuario, type Usuario } from "termo_core/auth";
28
+
29
+ const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
30
+
31
+ const usuario: Usuario = await buscar_pelo_id_usuario(credencial_de_acesso, id);
32
+ const pagina = await buscar_paginador_usuario(credencial_de_acesso, { pagina: 1 });
33
+
34
+ try {
35
+ await buscar_pelo_id_usuario(credencial_de_acesso, id, { sinal_de_cancelamento: controlador.signal });
36
+ } catch (erro) {
37
+ if (erro instanceof ErroAoChamarServico && erro.servico_nao_encontrou_o_registro()) {
38
+ // 404
39
+ }
40
+ }
41
+ ```
42
+
43
+ - Cada serviço tem o próprio caminho de importação (`termo_core/auth`, `termo_core/bucket`...), bom para o bundle do frontend. Também dá para usar `import { auth } from "termo_core"` e chamar `auth.buscar_pelo_id_usuario(...)`.
44
+ - Ordem dos argumentos: credencial (só nas rotas que exigem login), parâmetros do caminho, `parametros` (consulta e cabeçalho), corpo, e por último `opcoes_da_chamada` (`sinal_de_cancelamento`, `tempo_limite_em_milissegundos`, padrão 30 s).
45
+ - Os campos das `interface` têm o nome exato do JSON. Datas, UUIDs e decimais chegam como `string`, como vêm na resposta.
46
+ - Rotas sem corpo na resposta devolvem `Promise<void>`; rotas que devolvem arquivo devolvem `Promise<Uint8Array>`; upload `multipart` recebe um `FormData`.
47
+ - Todo erro vem como `ErroAoChamarServico`, com `tipo`, `status_http`, `mensagem_de_erro` (o campo `erro` da resposta) e `vale_tentar_de_novo()`. O cancelamento pelo `sinal_de_cancelamento` chega como o `AbortError` do próprio `fetch`.
48
+
49
+ ## Token do aplicativo (só backend)
50
+
51
+ ```ts
52
+ import { definir_segredo_do_app, token_do_aplicativo } from "termo_core";
53
+
54
+ definir_segredo_do_app(segredo_guardado_no_banco); // ou a variável SEGREDO_DO_APP_GERADO_NO_TERMO_AUTH
55
+ const credencial_de_acesso = await token_do_aplicativo();
56
+ ```
57
+
58
+ Troca o segredo por um JWT curto em `POST {TermoAuth}/token_de_app`, guarda em cache e só renova quando falta menos de 60 s para `expira_em`. Nunca use no navegador: o segredo do app não pode ir para o frontend.
59
+
60
+ ## Eventos do TermoWebhook
61
+
62
+ ```ts
63
+ import { webhook } from "termo_core";
64
+
65
+ type Dados = webhook.eventos.termo_auth.ColaboradorCriadoV1; // dados do evento
66
+ const evento = webhook.eventos.termo_auth.ColaboradorCriadoV1; // { aplicativo, tipo, versao }
67
+ ```
68
+
69
+ Só os contratos. Publicar e receber eventos (assinatura Ed25519, fila no Postgres) existem no crate Rust.
70
+
71
+ ## Gerado
72
+
73
+ Este pacote é gerado pelo `gerador` do repositório [TermoCore](https://github.com/OrgTermotubos/TermoCore) (`cargo run -p gerador`). Só a pasta `base/` é feita à mão, menos `base/servicos.ts`.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Cliente tipado da API do TermoAI, gerado a partir do `openapi.json` do serviço.
3
+ */
4
+ export * from "./tipos.js";
5
+ export * from "./rotas.js";
6
+ export { CredencialDeAcesso, ErroAoChamarServico } from "../base/index.js";
@@ -0,0 +1,7 @@
1
+ // Gerado pelo gerador do TermoCore (`cargo run -p gerador`). Não edite à mão: a próxima geração sobrescreve.
2
+ /**
3
+ * Cliente tipado da API do TermoAI, gerado a partir do `openapi.json` do serviço.
4
+ */
5
+ export * from "./tipos.js";
6
+ export * from "./rotas.js";
7
+ export { CredencialDeAcesso, ErroAoChamarServico } from "../base/index.js";