@semacode/cli 1.1.0 → 1.2.9

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.
@@ -0,0 +1,328 @@
1
+ // @ts-nocheck
2
+ import path from "node:path";
3
+ import { descreverEstruturaModulo, mapearTipoParaLua, normalizarNomeModulo, normalizarNomeParaSimbolo, } from "@sema/padroes";
4
+ const TIPOS_PRIMITIVOS_SEMA = new Set(["Texto", "Numero", "Inteiro", "Decimal", "Booleano", "Data", "DataHora", "Id", "Email", "Url", "Json", "Vazio"]);
5
+ function coletarTiposExternos(modulo) {
6
+ const locais = new Set([
7
+ ...modulo.types.map((item) => item.nome),
8
+ ...modulo.entities.map((item) => item.nome),
9
+ ...modulo.enums.map((item) => item.nome),
10
+ ]);
11
+ const referenciados = new Set();
12
+ const campos = [
13
+ ...modulo.entities.flatMap((entity) => entity.campos),
14
+ ...modulo.tasks.flatMap((task) => [...task.input, ...task.output]),
15
+ ...modulo.routes.flatMap((route) => [...route.inputPublico, ...route.outputPublico]),
16
+ ...modulo.states.flatMap((state) => state.campos),
17
+ ];
18
+ for (const campo of campos) {
19
+ if (!TIPOS_PRIMITIVOS_SEMA.has(campo.tipoBase) && !locais.has(campo.tipoBase)) {
20
+ referenciados.add(campo.tipoBase);
21
+ }
22
+ for (const tipo of campo.tiposAlternativos) {
23
+ if (!TIPOS_PRIMITIVOS_SEMA.has(tipo) && !locais.has(tipo)) {
24
+ referenciados.add(tipo);
25
+ }
26
+ }
27
+ }
28
+ return [...referenciados].sort((a, b) => a.localeCompare(b, "pt-BR"));
29
+ }
30
+ function comentarInvariantes(invariantes) {
31
+ if (invariantes.length === 0) {
32
+ return "";
33
+ }
34
+ return `${invariantes.map((invariante) => `-- Invariante: ${invariante.textoOriginal}`).join("\n")}\n`;
35
+ }
36
+ function gerarTabelaCampos(campos) {
37
+ if (campos.length === 0) {
38
+ return "{}";
39
+ }
40
+ return `{\n${campos.map((campo) => ` { nome = ${JSON.stringify(campo.nome)}, tipo = ${JSON.stringify(campo.tipo)}, obrigatorio = ${campo.modificadores.includes("required") ? "true" : "false"} },`).join("\n")}\n }`;
41
+ }
42
+ function valorPadraoLua(campo) {
43
+ if (campo.cardinalidade === "lista" || campo.cardinalidade === "mapa") {
44
+ return "{}";
45
+ }
46
+ if (campo.opcional) {
47
+ return "nil";
48
+ }
49
+ switch (campo.tipoBase) {
50
+ case "Texto":
51
+ case "Id":
52
+ case "Email":
53
+ case "Url":
54
+ return JSON.stringify(`${campo.nome}_exemplo`);
55
+ case "Numero":
56
+ case "Inteiro":
57
+ case "Decimal":
58
+ return "1";
59
+ case "Booleano":
60
+ return "false";
61
+ case "Json":
62
+ return "{}";
63
+ case "Vazio":
64
+ return "nil";
65
+ default:
66
+ return "{}";
67
+ }
68
+ }
69
+ function resolverReferenciaLua(referencia, variavel) {
70
+ const partes = referencia.split(".").filter(Boolean);
71
+ if (partes.length === 0) {
72
+ return variavel;
73
+ }
74
+ return `${variavel}${partes.map((parte) => `[${JSON.stringify(parte)}]`).join("")}`;
75
+ }
76
+ function formatarValorLua(valor, camposConhecidos, variavel) {
77
+ const texto = valor.trim();
78
+ if (/^-?\d+(?:\.\d+)?$/.test(texto)) {
79
+ return texto;
80
+ }
81
+ if (texto === "verdadeiro") {
82
+ return "true";
83
+ }
84
+ if (texto === "falso") {
85
+ return "false";
86
+ }
87
+ if (texto === "nulo") {
88
+ return "nil";
89
+ }
90
+ if (camposConhecidos.has(texto.split(".")[0] ?? texto)) {
91
+ return resolverReferenciaLua(texto, variavel);
92
+ }
93
+ return JSON.stringify(texto);
94
+ }
95
+ function gerarExpressaoLua(expressao, camposConhecidos, variavel) {
96
+ switch (expressao.tipo) {
97
+ case "existe":
98
+ return `${resolverReferenciaLua(expressao.alvo, variavel)} ~= nil`;
99
+ case "comparacao":
100
+ return `${resolverReferenciaLua(expressao.alvo, variavel)} ${expressao.operador} ${formatarValorLua(expressao.valor, camposConhecidos, variavel)}`;
101
+ case "pertencimento":
102
+ return `contem({ ${((expressao.valores ?? []).map((valor) => formatarValorLua(valor, camposConhecidos, variavel)).join(", "))} }, ${resolverReferenciaLua(expressao.alvo, variavel)})`;
103
+ case "predicado":
104
+ return "true";
105
+ case "composta":
106
+ return `(${expressao.termos.map((termo) => gerarExpressaoLua(termo, camposConhecidos, variavel)).join(expressao.operadorLogico === "e" ? " and " : " or ")})`;
107
+ case "negacao":
108
+ return `(not ${gerarExpressaoLua(expressao.termo, camposConhecidos, variavel)})`;
109
+ }
110
+ }
111
+ function gerarValidacoes(task) {
112
+ const linhas = [
113
+ ...task.input
114
+ .filter((campo) => campo.modificadores.includes("required"))
115
+ .map((campo) => ` if entrada[${JSON.stringify(campo.nome)}] == nil then error("Campo obrigatorio ausente: ${campo.nome}") end`),
116
+ ...task.regrasEstruturadas.map((regra) => {
117
+ switch (regra.tipo) {
118
+ case "predicado":
119
+ return ` -- Predicado declarado em Sema: ${regra.textoOriginal}`;
120
+ default:
121
+ return ` if not (${gerarExpressaoLua(regra, new Set(task.input.map((campo) => campo.nome)), "entrada")}) then error("Regra violada: ${regra.textoOriginal}") end`;
122
+ }
123
+ }),
124
+ ...task.rules
125
+ .filter((regra) => !task.regrasEstruturadas.some((estruturada) => estruturada.textoOriginal === regra))
126
+ .map((regra) => ` -- Regra declarada em Sema: ${regra}`),
127
+ ];
128
+ return linhas.join("\n");
129
+ }
130
+ function gerarGarantias(task) {
131
+ const camposSaida = new Set(task.output.map((campo) => campo.nome));
132
+ const linhas = [
133
+ ...task.garantiasEstruturadas.map((garantia) => {
134
+ switch (garantia.tipo) {
135
+ case "predicado":
136
+ return ` -- Predicado de garantia declarado em Sema: ${garantia.textoOriginal}`;
137
+ default:
138
+ return ` if not (${gerarExpressaoLua(garantia, camposSaida, "saida")}) then error("Garantia violada: ${garantia.textoOriginal}") end`;
139
+ }
140
+ }),
141
+ ...task.guarantees
142
+ .filter((garantia) => !task.garantiasEstruturadas.some((estruturada) => estruturada.textoOriginal === garantia))
143
+ .map((garantia) => ` -- Garantia declarada em Sema: ${garantia}`),
144
+ ];
145
+ return `local function verificar_garantias_${normalizarNomeParaSimbolo(task.nome)}(saida)\n${linhas.join("\n")}\nend`;
146
+ }
147
+ function gerarPreparacaoSaida(task) {
148
+ const camposSaida = new Set(task.output.map((campo) => campo.nome));
149
+ const inicializacao = task.output.map((campo) => ` ${campo.nome} = ${valorPadraoLua(campo)},`).join("\n");
150
+ const ajustes = [];
151
+ for (const garantia of task.garantiasEstruturadas) {
152
+ if (garantia.tipo === "pertencimento" && garantia.valores && camposSaida.has(garantia.alvo)) {
153
+ ajustes.push(` saida[${JSON.stringify(garantia.alvo)}] = ${formatarValorLua(garantia.valores[0] ?? "", camposSaida, "saida")}`);
154
+ }
155
+ if (garantia.tipo === "comparacao" && garantia.valor && camposSaida.has(garantia.alvo.split(".")[0] ?? garantia.alvo) && !garantia.alvo.includes(".")) {
156
+ ajustes.push(` saida[${JSON.stringify(garantia.alvo)}] = ${formatarValorLua(garantia.valor, camposSaida, "saida")}`);
157
+ }
158
+ if (garantia.tipo === "comparacao" && garantia.valor && garantia.alvo.includes(".")) {
159
+ const [raiz, filho] = garantia.alvo.split(".", 2);
160
+ if (raiz && filho && camposSaida.has(raiz)) {
161
+ ajustes.push(` saida[${JSON.stringify(raiz)}] = saida[${JSON.stringify(raiz)}] or {}`);
162
+ ajustes.push(` saida[${JSON.stringify(raiz)}][${JSON.stringify(filho)}] = ${formatarValorLua(garantia.valor, camposSaida, "saida")}`);
163
+ }
164
+ }
165
+ if (garantia.tipo === "existe" && garantia.alvo.includes(".")) {
166
+ const [raiz, filho] = garantia.alvo.split(".", 2);
167
+ if (raiz && filho && camposSaida.has(raiz)) {
168
+ ajustes.push(` saida[${JSON.stringify(raiz)}] = saida[${JSON.stringify(raiz)}] or {}`);
169
+ ajustes.push(` if saida[${JSON.stringify(raiz)}][${JSON.stringify(filho)}] == nil then saida[${JSON.stringify(raiz)}][${JSON.stringify(filho)}] = "valor_garantido" end`);
170
+ }
171
+ }
172
+ }
173
+ return ` local saida = {\n${inicializacao}\n }\n${ajustes.join("\n")}`;
174
+ }
175
+ function formatarLiteralTesteLua(valor, tipoDeclarado) {
176
+ if (["Texto", "Id", "Email", "Url", "Data", "DataHora"].includes(tipoDeclarado ?? "")) {
177
+ return JSON.stringify(valor);
178
+ }
179
+ if (["Numero", "Inteiro", "Decimal"].includes(tipoDeclarado ?? "") && /^-?\d+(?:\.\d+)?$/.test(valor)) {
180
+ return valor;
181
+ }
182
+ if ((tipoDeclarado ?? "") === "Booleano") {
183
+ if (valor === "verdadeiro") {
184
+ return "true";
185
+ }
186
+ if (valor === "falso") {
187
+ return "false";
188
+ }
189
+ }
190
+ if (/^-?\d+(?:\.\d+)?$/.test(valor)) {
191
+ return valor;
192
+ }
193
+ if (valor === "verdadeiro") {
194
+ return "true";
195
+ }
196
+ if (valor === "falso") {
197
+ return "false";
198
+ }
199
+ return JSON.stringify(valor);
200
+ }
201
+ function gerarTabelaLua(campos, blocos) {
202
+ const entradas = [
203
+ ...campos.map((campo) => ` ${campo.nome} = ${campo.valor},`),
204
+ ...blocos.map((bloco) => ` ${bloco.nome} = ${bloco.conteudo},`),
205
+ ];
206
+ return `{\n${entradas.join("\n")}\n}`;
207
+ }
208
+ function converterBlocoTesteParaLua(bloco, tiposDeclarados) {
209
+ const campos = bloco.campos.map((campo) => ({
210
+ nome: campo.nome,
211
+ valor: formatarLiteralTesteLua(campo.tipo, tiposDeclarados?.get(campo.nome)),
212
+ }));
213
+ const blocos = bloco.blocos.map((subbloco) => ({
214
+ nome: subbloco.nome,
215
+ conteudo: converterBlocoTesteParaLua(subbloco.conteudo),
216
+ }));
217
+ return gerarTabelaLua(campos, blocos);
218
+ }
219
+ function gerarTabelaTiposDeclarados(task) {
220
+ return new Map(task.input.map((campo) => [campo.nome, campo.tipo]));
221
+ }
222
+ function gerarTestesLua(modulo, arquivoModulo) {
223
+ const testes = modulo.tasks.flatMap((task) => task.tests.map((caso, indice) => ({ task, caso, indice })));
224
+ if (testes.length === 0) {
225
+ return undefined;
226
+ }
227
+ const nomeArquivo = path.basename(arquivoModulo);
228
+ const funcoes = testes.map(({ task, caso, indice }) => {
229
+ const nomeTeste = `test_${normalizarNomeParaSimbolo(task.nome)}_${indice + 1}`;
230
+ const tiposDeclarados = gerarTabelaTiposDeclarados(task);
231
+ return `local function ${nomeTeste}()
232
+ local entrada = ${converterBlocoTesteParaLua(caso.given, tiposDeclarados)}
233
+ local saida = modulo.executar_${normalizarNomeParaSimbolo(task.nome)}(entrada)
234
+ if ${caso.expect.campos.some((campo) => campo.nome === "sucesso" && campo.tipo === "falso") ? "saida ~= nil" : "saida == nil"} then
235
+ error("Caso ${caso.nome} nao respeitou expectativa basica de execucao.")
236
+ end
237
+ end`;
238
+ });
239
+ const lista = testes.map(({ task, caso, indice }) => `{ nome = ${JSON.stringify(caso.nome)}, fn = test_${normalizarNomeParaSimbolo(task.nome)}_${indice + 1} }`).join(",\n ");
240
+ return `local origem = debug.getinfo(1, "S").source:sub(2)
241
+ local base = origem:match("^(.*[/\\\\])") or "./"
242
+ local modulo = assert(loadfile(base .. ${JSON.stringify(nomeArquivo)}))()
243
+
244
+ ${funcoes.join("\n\n")}
245
+
246
+ local testes = {
247
+ ${lista}
248
+ }
249
+
250
+ for _, teste in ipairs(testes) do
251
+ io.write("test ", teste.nome, "\\n")
252
+ teste.fn()
253
+ end
254
+
255
+ io.write("ok ", tostring(#testes), " testes\\n")
256
+ `;
257
+ }
258
+ function gerarMetadadosTask(task) {
259
+ const efeitos = task.efeitosEstruturados.map((efeito) => `${efeito.categoria}:${efeito.alvo}`).join(", ") || "nenhum";
260
+ const impl = task.implementacoesExternas.map((item) => `${item.origem}:${item.caminho}[${item.statusImpl ?? "nao_verificado"}]`).join(", ") || "nenhuma";
261
+ return `M.contrato_${normalizarNomeParaSimbolo(task.nome)} = {
262
+ nome = ${JSON.stringify(task.nome)},
263
+ input = ${gerarTabelaCampos(task.input)},
264
+ output = ${gerarTabelaCampos(task.output)},
265
+ effects = ${JSON.stringify(efeitos)},
266
+ impl = ${JSON.stringify(impl)}
267
+ }`;
268
+ }
269
+ function gerarFuncoesTask(task) {
270
+ const simbolo = normalizarNomeParaSimbolo(task.nome);
271
+ const validacoes = gerarValidacoes(task);
272
+ const garantias = gerarGarantias(task);
273
+ const preparacaoSaida = gerarPreparacaoSaida(task);
274
+ return `${gerarMetadadosTask(task)}
275
+
276
+ ${garantias}
277
+
278
+ function M.executar_${simbolo}(entrada)
279
+ entrada = entrada or {}
280
+ ${validacoes ? `${validacoes}\n` : ""}${preparacaoSaida}
281
+ verificar_garantias_${simbolo}(saida)
282
+ return saida
283
+ end`;
284
+ }
285
+ export function gerarLua(modulo) {
286
+ const nomeBase = normalizarNomeModulo(modulo.nome).replace(/\./g, "_");
287
+ const estrutura = descreverEstruturaModulo(modulo.nome);
288
+ const interops = modulo.interoperabilidades.map((interop) => `-- Interop externo ${interop.origem}: ${interop.caminho}`).join("\n");
289
+ const tiposExternos = coletarTiposExternos(modulo).map((tipo) => `---@class ${tipo}`).join("\n");
290
+ const enums = modulo.enums.map((enumeracao) => `M.enum_${normalizarNomeParaSimbolo(enumeracao.nome)} = { ${enumeracao.valores.map((valor) => `${valor} = ${JSON.stringify(valor)}`).join(", ")} }`).join("\n\n");
291
+ const entidades = modulo.entities.map((entity) => `${comentarInvariantes(entity.invariantes)}---@class ${entity.nome}\nM.${normalizarNomeParaSimbolo(entity.nome)} = {\n${entity.campos.map((campo) => ` ${campo.nome} = nil, -- ${mapearTipoParaLua(campo.tipoBase)}`).join("\n")}\n}`).join("\n\n");
292
+ const tipos = modulo.types.map((type) => `${comentarInvariantes(type.invariantes)}---@alias ${type.nome} table`).join("\n\n");
293
+ const tasks = modulo.tasks.map((task) => gerarFuncoesTask(task)).join("\n\n");
294
+ const flows = modulo.flows.map((flow) => `-- Flow ${flow.nome}: etapas=${flow.etapasEstruturadas.length} tasks=${flow.tasksReferenciadas.join(", ") || "nenhuma"}`).join("\n");
295
+ const routes = modulo.routes.map((route) => `-- Route ${route.nome}: metodo=${route.metodo ?? "nao_definido"} caminho=${route.caminho ?? "nao_definido"} task=${route.task ?? "nao_definida"}`).join("\n");
296
+ const codigo = `-- Arquivo gerado automaticamente pela Sema.
297
+ -- Modulo de origem: ${modulo.nome}
298
+ ${interops ? `${interops}\n` : ""}${tiposExternos ? `${tiposExternos}\n\n` : ""}local M = {}
299
+
300
+ local function contem(lista, valor)
301
+ for _, item in ipairs(lista) do
302
+ if item == valor then
303
+ return true
304
+ end
305
+ end
306
+ return false
307
+ end
308
+
309
+ ${tipos ? `${tipos}\n\n` : ""}${entidades ? `${entidades}\n\n` : ""}${enums ? `${enums}\n\n` : ""}${tasks}${flows ? `\n\n${flows}` : ""}${routes ? `\n${routes}` : ""}
310
+
311
+ return M
312
+ `;
313
+ const caminhoModulo = estrutura.contextoRelativo
314
+ ? path.join(estrutura.contextoRelativo, `${estrutura.nomeArquivo}.lua`)
315
+ : `${nomeBase}.lua`;
316
+ const arquivos = [{ caminhoRelativo: caminhoModulo, conteudo: codigo }];
317
+ const testes = gerarTestesLua(modulo, path.basename(caminhoModulo));
318
+ if (testes) {
319
+ arquivos.push({
320
+ caminhoRelativo: estrutura.contextoRelativo
321
+ ? path.join(estrutura.contextoRelativo, `test_${estrutura.nomeArquivo}.lua`)
322
+ : `test_${nomeBase}.lua`,
323
+ conteudo: testes,
324
+ });
325
+ }
326
+ return arquivos;
327
+ }
328
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@sema/gerador-lua",
3
+ "version": "1.2.9",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-python",
3
- "version": "1.1.0",
3
+ "version": "1.2.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-typescript",
3
- "version": "1.1.0",
3
+ "version": "1.2.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/nucleo",
3
- "version": "1.1.0",
3
+ "version": "1.2.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,4 +1,4 @@
1
- export type AlvoGeracao = "typescript" | "python" | "dart";
1
+ export type AlvoGeracao = "typescript" | "python" | "dart" | "lua";
2
2
  export type FrameworkGeracao = "base" | "nestjs" | "fastapi";
3
3
  export interface ArquivoGerado {
4
4
  caminhoRelativo: string;
@@ -18,3 +18,4 @@ export declare function descreverEstruturaModulo(nome: string): EstruturaModuloN
18
18
  export declare function mapearTipoParaTypeScript(tipo: string): string;
19
19
  export declare function mapearTipoParaPython(tipo: string): string;
20
20
  export declare function mapearTipoParaDart(tipo: string): string;
21
+ export declare function mapearTipoParaLua(tipo: string): string;
@@ -122,4 +122,38 @@ export function mapearTipoParaDart(tipo) {
122
122
  };
123
123
  return tabela[tipo] ?? tipo;
124
124
  }
125
+ export function mapearTipoParaLua(tipo) {
126
+ const limpo = tipo.trim();
127
+ if (/^Opcional<.+>$/.test(limpo)) {
128
+ return `${mapearTipoParaLua(limpo.slice("Opcional<".length, -1))} | nil`;
129
+ }
130
+ const uniao = dividirTipoNoNivelRaiz(limpo, "|");
131
+ if (uniao.length > 1) {
132
+ return uniao.map((item) => mapearTipoParaLua(item)).join(" | ");
133
+ }
134
+ if (/^Lista<.+>$/.test(limpo)) {
135
+ return `table<integer, ${mapearTipoParaLua(limpo.slice("Lista<".length, -1))}>`;
136
+ }
137
+ if (/^Mapa<.+>$/.test(limpo)) {
138
+ const partesMapa = dividirTipoNoNivelRaiz(limpo.slice("Mapa<".length, -1), ",");
139
+ const chave = mapearTipoParaLua(partesMapa[0] ?? "Texto");
140
+ const valor = mapearTipoParaLua(partesMapa[1] ?? "Json");
141
+ return `table<${chave}, ${valor}>`;
142
+ }
143
+ const tabela = {
144
+ Texto: "string",
145
+ Numero: "number",
146
+ Inteiro: "integer",
147
+ Decimal: "number",
148
+ Booleano: "boolean",
149
+ Data: "string",
150
+ DataHora: "string",
151
+ Id: "string",
152
+ Email: "string",
153
+ Url: "string",
154
+ Json: "table",
155
+ Vazio: "nil",
156
+ };
157
+ return tabela[limpo] ?? limpo;
158
+ }
125
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/padroes",
3
- "version": "1.1.0",
3
+ "version": "1.2.9",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semacode/cli",
3
- "version": "1.1.0",
4
- "description": "CLI do Protocolo de Governanca de Intencao Sema para validar contratos, medir drift e governar software vivo em backend e front consumer.",
3
+ "version": "1.2.9",
4
+ "description": "CLI da Sema para validar contratos, medir drift e governar a navegacao operacional de agentes sobre software vivo em backend e front consumer.",
5
5
  "type": "module",
6
6
  "icon": "logo.png",
7
7
  "license": "MIT",
@@ -49,16 +49,18 @@
49
49
  "LICENSE"
50
50
  ],
51
51
  "dependencies": {
52
- "@sema/nucleo": "1.1.0",
53
- "@sema/gerador-dart": "1.1.0",
54
- "@sema/gerador-python": "1.1.0",
55
- "@sema/gerador-typescript": "1.1.0",
56
- "@sema/padroes": "1.1.0",
52
+ "@sema/nucleo": "1.2.9",
53
+ "@sema/gerador-dart": "1.2.9",
54
+ "@sema/gerador-lua": "1.2.9",
55
+ "@sema/gerador-python": "1.2.9",
56
+ "@sema/gerador-typescript": "1.2.9",
57
+ "@sema/padroes": "1.2.9",
57
58
  "typescript": "^5.8.3"
58
59
  },
59
60
  "bundledDependencies": [
60
61
  "@sema/nucleo",
61
62
  "@sema/gerador-dart",
63
+ "@sema/gerador-lua",
62
64
  "@sema/gerador-python",
63
65
  "@sema/gerador-typescript",
64
66
  "@sema/padroes"