@semacode/cli 1.5.54 → 1.5.55
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.
- package/README.md +1 -0
- package/dist/agentEntryPoints.js +3 -3
- package/dist/geracaoCore.js +49 -2
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +2 -2
- package/dist/index.part01.js +3 -3
- package/dist/index.part06.js +1 -1
- package/dist/initTemplatesBase.js +1 -1
- package/dist/projetoConfig.js +1 -1
- package/docs/ai-workflow.md +1 -1
- package/docs/commands.md +1 -1
- package/docs/syntax.md +2 -2
- package/node_modules/@sema/gerador-php/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-php/dist/index.js +538 -0
- package/node_modules/@sema/gerador-php/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-php/package.json +7 -0
- package/node_modules/@sema/padroes/dist/index.d.ts +2 -1
- package/node_modules/@sema/padroes/dist/index.js +31 -0
- package/node_modules/@sema/padroes/dist/index.js.map +1 -1
- package/package.json +12 -10
package/README.md
CHANGED
|
@@ -47,6 +47,7 @@ sema iniciar --template base
|
|
|
47
47
|
```bash
|
|
48
48
|
sema compilar contratos/app.sema --alvo typescript --saida .tmp/app-ts --estrutura modulos
|
|
49
49
|
sema compilar contratos/app.sema --alvo python --saida .tmp/app-py --estrutura modulos
|
|
50
|
+
sema compilar contratos/app.sema --alvo php --saida .tmp/app-php --estrutura modulos
|
|
50
51
|
```
|
|
51
52
|
|
|
52
53
|
Generated artifacts include `SEMA-GOVERNED` headers and must stay aligned with
|
package/dist/agentEntryPoints.js
CHANGED
|
@@ -493,7 +493,7 @@ The CLI supports JavaScript generation:
|
|
|
493
493
|
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
494
494
|
\`\`\`
|
|
495
495
|
|
|
496
|
-
The project can also generate TypeScript, Python, Dart, Lua, HTML, and CSS when those targets are enabled in \`sema.config.json\`.
|
|
496
|
+
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, and CSS when those targets are enabled in \`sema.config.json\`.
|
|
497
497
|
|
|
498
498
|
## Support Files
|
|
499
499
|
|
|
@@ -547,7 +547,7 @@ If the delivery includes code derived from a contract, run \`sema compilar\`.
|
|
|
547
547
|
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
548
548
|
\`\`\`
|
|
549
549
|
|
|
550
|
-
Replace \`javascript\` with \`typescript\`, \`python\`, \`dart\`, \`lua\`, \`html\`, or \`css\` when appropriate.
|
|
550
|
+
Replace \`javascript\` with \`typescript\`, \`python\`, \`php\`, \`dart\`, \`lua\`, \`html\`, or \`css\` when appropriate.
|
|
551
551
|
|
|
552
552
|
## Fail Closed
|
|
553
553
|
|
|
@@ -592,7 +592,7 @@ Honest closure: treat drift JSON as the source of truth. \`sucesso:false\`, \`vi
|
|
|
592
592
|
|
|
593
593
|
## Sema Code
|
|
594
594
|
|
|
595
|
-
- \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>\`: generates starter/support artifacts from the contract.
|
|
595
|
+
- \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>\`: generates starter/support artifacts from the contract.
|
|
596
596
|
- \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
|
|
597
597
|
- \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
|
|
598
598
|
- \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
|
package/dist/geracaoCore.js
CHANGED
|
@@ -13,6 +13,7 @@ import { gerarTypeScript } from "@sema/gerador-typescript";
|
|
|
13
13
|
import { gerarJavaScript } from "@sema/gerador-javascript";
|
|
14
14
|
import { gerarHtml } from "@sema/gerador-html";
|
|
15
15
|
import { gerarCss } from "@sema/gerador-css";
|
|
16
|
+
import { gerarPhp } from "@sema/gerador-php";
|
|
16
17
|
import { comandoDisponivel, resolverExecucaoPytest, TSX_EXECUTOR_CLI } from "./execucoesExternas.js";
|
|
17
18
|
import { resolverEstruturaSaidaPadrao, resolverFrameworkPadrao, } from "./projeto.js";
|
|
18
19
|
export function validarCompatibilidadeFramework(alvo, framework) {
|
|
@@ -25,7 +26,7 @@ export function validarCompatibilidadeFramework(alvo, framework) {
|
|
|
25
26
|
if (framework === "fastapi" && alvo !== "python") {
|
|
26
27
|
return `Framework "${framework}" so pode ser usado com o alvo python.`;
|
|
27
28
|
}
|
|
28
|
-
if (alvo === "dart" || alvo === "lua" || alvo === "javascript" || alvo === "html" || alvo === "css") {
|
|
29
|
+
if (alvo === "dart" || alvo === "lua" || alvo === "javascript" || alvo === "html" || alvo === "css" || alvo === "php") {
|
|
29
30
|
return `Framework "${framework}" nao e suportado para o alvo ${alvo}.`;
|
|
30
31
|
}
|
|
31
32
|
return undefined;
|
|
@@ -147,6 +148,9 @@ export function gerarArquivosPorAlvo(ir, alvo, framework) {
|
|
|
147
148
|
if (alvo === "css") {
|
|
148
149
|
return gerarCss(ir);
|
|
149
150
|
}
|
|
151
|
+
if (alvo === "php") {
|
|
152
|
+
return gerarPhp(ir);
|
|
153
|
+
}
|
|
150
154
|
return gerarTypeScript(ir, { framework });
|
|
151
155
|
}
|
|
152
156
|
export function aplicarEstruturaSaida(arquivos, ir, estrutura) {
|
|
@@ -198,6 +202,13 @@ export function aplicarEstruturaSaida(arquivos, ir, estrutura) {
|
|
|
198
202
|
else if (basename === `${nomeBaseAntigo}.css`) {
|
|
199
203
|
novoBasename = `${nomeArquivo}.css`;
|
|
200
204
|
}
|
|
205
|
+
else if (basename === `${nomeBaseAntigo}.php`) {
|
|
206
|
+
novoBasename = `${nomeArquivo}.php`;
|
|
207
|
+
}
|
|
208
|
+
else if (basename === `test_${nomeBaseAntigo}.php`) {
|
|
209
|
+
novoBasename = `test_${nomeArquivo}.php`;
|
|
210
|
+
conteudo = conteudo.replace(`/${nomeBaseAntigo}.php`, `/${nomeArquivo}.php`);
|
|
211
|
+
}
|
|
201
212
|
return {
|
|
202
213
|
caminhoRelativo: pastaModulo ? path.join(pastaModulo, novoBasename) : novoBasename,
|
|
203
214
|
conteudo,
|
|
@@ -208,6 +219,13 @@ export function contarCasosDeTesteGerados(alvo, arquivos) {
|
|
|
208
219
|
if (alvo === "dart" || alvo === "html" || alvo === "css") {
|
|
209
220
|
return 0;
|
|
210
221
|
}
|
|
222
|
+
if (alvo === "php") {
|
|
223
|
+
const arquivoTeste = arquivos.find((item) => path.basename(item.caminhoRelativo).startsWith("test_") && item.caminhoRelativo.endsWith(".php"));
|
|
224
|
+
if (!arquivoTeste) {
|
|
225
|
+
return 0;
|
|
226
|
+
}
|
|
227
|
+
return (arquivoTeste.conteudo.match(/\bfunction test_/g) ?? []).length;
|
|
228
|
+
}
|
|
211
229
|
if (alvo === "lua") {
|
|
212
230
|
const arquivoTeste = arquivos.find((item) => path.basename(item.caminhoRelativo).startsWith("test_") && item.caminhoRelativo.endsWith(".lua"));
|
|
213
231
|
if (!arquivoTeste) {
|
|
@@ -239,7 +257,7 @@ export function executarTestesGerados(alvo, baseSaida, arquivos, silencioso = fa
|
|
|
239
257
|
const quantidadeTestes = contarCasosDeTesteGerados(alvo, arquivos);
|
|
240
258
|
if (quantidadeTestes === 0) {
|
|
241
259
|
if (!silencioso) {
|
|
242
|
-
const nomesAlvo = { typescript: "TypeScript", python: "Python", lua: "Lua", dart: "Dart", javascript: "JavaScript", html: "HTML", css: "CSS" };
|
|
260
|
+
const nomesAlvo = { typescript: "TypeScript", python: "Python", lua: "Lua", dart: "Dart", javascript: "JavaScript", html: "HTML", css: "CSS", php: "PHP" };
|
|
243
261
|
console.log(`Nenhum teste ${nomesAlvo[alvo] ?? alvo} foi gerado.`);
|
|
244
262
|
}
|
|
245
263
|
return { codigoSaida: 0, quantidadeTestes, saidaPadrao: "", saidaErro: "" };
|
|
@@ -323,6 +341,35 @@ export function executarTestesGerados(alvo, baseSaida, arquivos, silencioso = fa
|
|
|
323
341
|
saidaErro: typeof execucao.stderr === "string" ? execucao.stderr : "",
|
|
324
342
|
};
|
|
325
343
|
}
|
|
344
|
+
if (alvo === "php") {
|
|
345
|
+
const arquivoTeste = arquivos.find((item) => path.basename(item.caminhoRelativo).startsWith("test_") && item.caminhoRelativo.endsWith(".php"))?.caminhoRelativo;
|
|
346
|
+
if (!arquivoTeste) {
|
|
347
|
+
if (!silencioso) {
|
|
348
|
+
console.log("Nenhum teste PHP foi gerado.");
|
|
349
|
+
}
|
|
350
|
+
return { codigoSaida: 0, quantidadeTestes, saidaPadrao: "", saidaErro: "" };
|
|
351
|
+
}
|
|
352
|
+
if (!comandoDisponivel("php", ["-v"])) {
|
|
353
|
+
return {
|
|
354
|
+
codigoSaida: 1,
|
|
355
|
+
quantidadeTestes,
|
|
356
|
+
saidaPadrao: "",
|
|
357
|
+
saidaErro: "Nao foi possivel localizar o runner php para executar os testes gerados.",
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
const execucao = spawnSync("php", [arquivoTeste], {
|
|
361
|
+
stdio: silencioso ? "pipe" : "inherit",
|
|
362
|
+
cwd: baseSaida,
|
|
363
|
+
encoding: silencioso ? "utf8" : undefined,
|
|
364
|
+
shell: process.platform === "win32",
|
|
365
|
+
});
|
|
366
|
+
return {
|
|
367
|
+
codigoSaida: execucao.status ?? 1,
|
|
368
|
+
quantidadeTestes,
|
|
369
|
+
saidaPadrao: typeof execucao.stdout === "string" ? execucao.stdout : "",
|
|
370
|
+
saidaErro: typeof execucao.stderr === "string" ? execucao.stderr : "",
|
|
371
|
+
};
|
|
372
|
+
}
|
|
326
373
|
const arquivoTeste = arquivos.find((item) => path.basename(item.caminhoRelativo).startsWith("test_"))?.caminhoRelativo;
|
|
327
374
|
if (!arquivoTeste) {
|
|
328
375
|
if (!silencioso) {
|
package/dist/iaPrompts.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const STARTER_IA = "Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo em backend e front consumer.\n\nImportante:\n- a Sema se apresenta publicamente como protocolo e funciona tecnicamente como linguagem de intencao\n- a Sema e protocolo de governanca semantica desenhado para IA, nao para ergonomia humana\n- humanos sao autores/aprovadores; agentes sao os consumidores primarios do contrato\n- leitura humana e bonus toleravel, nao objetivo de produto\n- a Sema nao e gerador magico que deveria fazer tudo\n- a Sema modela contratos, estados, fluxos, erros, efeitos, garantias, vinculos e execucao\n- a Sema gera codigo e scaffolding real para TypeScript, Python, Dart, Lua, JavaScript, HTML e CSS\n- a Sema usa `importar` para bootstrap revisavel, nao para contrato final automatico\n- a Sema usa `impl` para ligar task a simbolo real do runtime\n- a Sema usa `vinculos` para ligar contrato a arquivo, simbolo, recurso e superficie real\n- a Sema usa `execucao` para explicitar timeout, retry, compensacao e criticidade\n- a Sema usa `drift` para medir diferenca entre contrato e codigo vivo com score, confianca e lacunas\n- a Sema usa `resumo` e `prompt-curto` para IA fraca, gratuita ou com pouco contexto\n- a Sema usa `contexto-ia` para gerar `ast.json`, `ir.json`, `drift.json`, `briefing.json` e artefatos compactos antes da edicao\n- timeout definido pelo agente nao e falha do Sema; aumente o timeout e tente de novo antes de concluir falha\n- a Sema pode servir de base para interfaces graficas elegantes e coerentes\n- a Sema gera artefatos HTML/CSS derivados, mas nao substitui sozinha uma interface completa de produto\n- trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto\n- se a tarefa envolver UI, prefira pedir Sema + React + TypeScript ou Sema + arquitetura de front-end\n- evite pedir HTML unico solto quando a intencao for testar a Sema de verdade\n\nRegras:\n- nao invente sintaxe fora da gramatica e dos exemplos oficiais\n- antes de qualquer acao, crie, edite ou remova o contrato .sema aplicavel; isso vale para Software, Author, Workflow, Ops, Game, Legal e Research\n- se a IA for fraca, nao tente abrir tudo de uma vez\n- use `sema resumo` e `briefing.min.json` antes de subir para o pacote completo\n- se `sema resumo . --micro` estourar timeout local, repita com timeout maior ou escopo menor; nao avance com codigo\n- trate `ir --json` como fonte de verdade semantica\n- trate `briefing.json` como plano de intervencao antes de editar projeto vivo\n- trate `diagnosticos --json` como fonte de correcao\n- use `sema formatar` como fonte unica de estilo\n- preserve a intencao do contrato\n- nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo\n\nComandos essenciais:\n- resumo compacto por capacidade: `sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`\n- prompt curto para IA fraca: `sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`\n- descoberta do projeto: `sema inspecionar [arquivo-ou-pasta] --json`\n- auditoria do contrato vivo: `sema drift <arquivo-ou-pasta> [--escopo <arquivo|modulo|projeto>] [--json]`\n- mapa de impacto: `sema impacto <arquivo-ou-pasta> --alvo <token> [--mudanca <descricao>] [--json]`\n- renomeacao assistida: `sema renomear-semantico <arquivo-ou-pasta> --de <nome-atual> --para <nome-novo> [--json]`\n- contexto completo do modulo: `sema contexto-ia <arquivo.sema>`\n- estrutura sintatica: `sema ast <arquivo.sema> --json`\n- estrutura semantica: `sema ir <arquivo.sema> --json`\n- validacao: `sema validar <arquivo.sema> --json`\n- diagnosticos: `sema diagnosticos <arquivo.sema> --json`\n- formatacao: `sema formatar <arquivo.sema>`\n- importacao assistida de legado: `sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|dotnet|java|go|rust|cpp|php|typescript|python|dart> <diretorio> --saida <diretorio>`\n- exemplos oficiais no projeto: `sema instalar-exemplos`\n- geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>`\n- verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`\n\nAntes de editar:\n1. leia README, docs de IA e um exemplo oficial parecido\n2. se a IA for fraca, rode `sema resumo <arquivo> --micro` e leia `briefing.min.json`\n - se timeout local estourar, aumente o timeout e tente de novo; timeout nao significa Sema inativo\n3. se a IA aguentar mais, rode `sema drift` para medir impls, vinculos, rotas, score e lacunas\n4. se a tarefa for pesada, rode `sema contexto-ia` e leia `briefing.json`\n5. consulte AST e IR do modulo alvo so quando a capacidade realmente aguentar\n\nDepois de editar:\n1. rode `sema formatar`\n2. rode `sema validar --json`\n3. se houver falha, use `diagnosticos --json`\n4. rode `sema drift` de novo quando mexer em codigo vivo\n5. se a tarefa pedir codigo derivado, rode `sema compilar`\n6. feche com `sema verificar <arquivo-ou-pasta> --json`\n\nPriorize sempre:\n- exemplos oficiais\n- JSON da CLI\n- o menor artefato que resolva a tarefa da IA atual\n- score, confianca e lacunas do `drift`\n- `briefing.json` como guia de mudanca\n- consistencia semantica\n\nSuperficies que a IA deve enxergar como first-class:\n- `route`\n- `worker`\n- `evento`\n- `fila`\n- `cron`\n- `webhook`\n- `cache`\n- `storage`\n- `policy`\n\nNao improvise quando faltar contexto.\n";
|
|
1
|
+
export declare const STARTER_IA = "Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo em backend e front consumer.\n\nImportante:\n- a Sema se apresenta publicamente como protocolo e funciona tecnicamente como linguagem de intencao\n- a Sema e protocolo de governanca semantica desenhado para IA, nao para ergonomia humana\n- humanos sao autores/aprovadores; agentes sao os consumidores primarios do contrato\n- leitura humana e bonus toleravel, nao objetivo de produto\n- a Sema nao e gerador magico que deveria fazer tudo\n- a Sema modela contratos, estados, fluxos, erros, efeitos, garantias, vinculos e execucao\n- a Sema gera codigo e scaffolding real para TypeScript, Python, PHP, Dart, Lua, JavaScript, HTML e CSS\n- a Sema usa `importar` para bootstrap revisavel, nao para contrato final automatico\n- a Sema usa `impl` para ligar task a simbolo real do runtime\n- a Sema usa `vinculos` para ligar contrato a arquivo, simbolo, recurso e superficie real\n- a Sema usa `execucao` para explicitar timeout, retry, compensacao e criticidade\n- a Sema usa `drift` para medir diferenca entre contrato e codigo vivo com score, confianca e lacunas\n- a Sema usa `resumo` e `prompt-curto` para IA fraca, gratuita ou com pouco contexto\n- a Sema usa `contexto-ia` para gerar `ast.json`, `ir.json`, `drift.json`, `briefing.json` e artefatos compactos antes da edicao\n- timeout definido pelo agente nao e falha do Sema; aumente o timeout e tente de novo antes de concluir falha\n- a Sema pode servir de base para interfaces graficas elegantes e coerentes\n- a Sema gera artefatos HTML/CSS derivados, mas nao substitui sozinha uma interface completa de produto\n- trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto\n- se a tarefa envolver UI, prefira pedir Sema + React + TypeScript ou Sema + arquitetura de front-end\n- evite pedir HTML unico solto quando a intencao for testar a Sema de verdade\n\nRegras:\n- nao invente sintaxe fora da gramatica e dos exemplos oficiais\n- antes de qualquer acao, crie, edite ou remova o contrato .sema aplicavel; isso vale para Software, Author, Workflow, Ops, Game, Legal e Research\n- se a IA for fraca, nao tente abrir tudo de uma vez\n- use `sema resumo` e `briefing.min.json` antes de subir para o pacote completo\n- se `sema resumo . --micro` estourar timeout local, repita com timeout maior ou escopo menor; nao avance com codigo\n- trate `ir --json` como fonte de verdade semantica\n- trate `briefing.json` como plano de intervencao antes de editar projeto vivo\n- trate `diagnosticos --json` como fonte de correcao\n- use `sema formatar` como fonte unica de estilo\n- preserve a intencao do contrato\n- nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo\n\nComandos essenciais:\n- resumo compacto por capacidade: `sema resumo <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`\n- prompt curto para IA fraca: `sema prompt-curto <arquivo-ou-pasta> [--micro|--curto|--medio] [--para <resumo|onboarding|review|mudanca|bug|arquitetura>]`\n- descoberta do projeto: `sema inspecionar [arquivo-ou-pasta] --json`\n- auditoria do contrato vivo: `sema drift <arquivo-ou-pasta> [--escopo <arquivo|modulo|projeto>] [--json]`\n- mapa de impacto: `sema impacto <arquivo-ou-pasta> --alvo <token> [--mudanca <descricao>] [--json]`\n- renomeacao assistida: `sema renomear-semantico <arquivo-ou-pasta> --de <nome-atual> --para <nome-novo> [--json]`\n- contexto completo do modulo: `sema contexto-ia <arquivo.sema>`\n- estrutura sintatica: `sema ast <arquivo.sema> --json`\n- estrutura semantica: `sema ir <arquivo.sema> --json`\n- validacao: `sema validar <arquivo.sema> --json`\n- diagnosticos: `sema diagnosticos <arquivo.sema> --json`\n- formatacao: `sema formatar <arquivo.sema>`\n- importacao assistida de legado: `sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|dotnet|java|go|rust|cpp|php|typescript|python|dart> <diretorio> --saida <diretorio>`\n- exemplos oficiais no projeto: `sema instalar-exemplos`\n- geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>`\n- verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`\n\nAntes de editar:\n1. leia README, docs de IA e um exemplo oficial parecido\n2. se a IA for fraca, rode `sema resumo <arquivo> --micro` e leia `briefing.min.json`\n - se timeout local estourar, aumente o timeout e tente de novo; timeout nao significa Sema inativo\n3. se a IA aguentar mais, rode `sema drift` para medir impls, vinculos, rotas, score e lacunas\n4. se a tarefa for pesada, rode `sema contexto-ia` e leia `briefing.json`\n5. consulte AST e IR do modulo alvo so quando a capacidade realmente aguentar\n\nDepois de editar:\n1. rode `sema formatar`\n2. rode `sema validar --json`\n3. se houver falha, use `diagnosticos --json`\n4. rode `sema drift` de novo quando mexer em codigo vivo\n5. se a tarefa pedir codigo derivado, rode `sema compilar`\n6. feche com `sema verificar <arquivo-ou-pasta> --json`\n\nPriorize sempre:\n- exemplos oficiais\n- JSON da CLI\n- o menor artefato que resolva a tarefa da IA atual\n- score, confianca e lacunas do `drift`\n- `briefing.json` como guia de mudanca\n- consistencia semantica\n\nSuperficies que a IA deve enxergar como first-class:\n- `route`\n- `worker`\n- `evento`\n- `fila`\n- `cron`\n- `webhook`\n- `cache`\n- `storage`\n- `policy`\n\nNao improvise quando faltar contexto.\n";
|
|
2
2
|
export declare const PROMPT_BASE_IA = "Voce esta trabalhando com Sema, um contrato semantico IA-first para agentes operarem software vivo.\n\nTrate a Sema como protocolo de governanca semantica e linguagem de intencao feita para IA, nao para leitura humana confortavel. Humanos escrevem e aprovam; agentes consomem. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.\n\nFontes de verdade, em ordem:\n1. se o projeto expuser `SEMA_CONTEXT.md`, comece por ele\n2. `AGENT_CONTEXT_PACK.json`\n3. `SEMA_BRIEF.md`\n4. `SEMA_INDEX.json`\n5. `AGENTS.md`\n6. README do projeto\n7. gramatica e documentacao de sintaxe da Sema\n8. exemplos oficiais, com prioridade para o vertical de pagamento\n9. `sema resumo` e `briefing.min.json` quando a IA for fraca\n10. AST, IR e diagnosticos exportados pela CLI em JSON quando a capacidade aguentar\n\nRegras de operacao:\n- contrato vem antes da acao: crie, edite ou remova o .sema aplicavel antes de codigo, docs operacionais, texto Author, workflow, jogo, pesquisa, legal ou ops\n- preserve o significado semantico\n- use o formatador oficial da Sema como fonte unica de estilo\n- use diagnosticos estruturados como contrato de correcao\n- use a IR como fonte de verdade semantica quando houver duvida\n- use predicados canonicos como normalizacao opcional, preservando a forma original\n- nao conclua uma alteracao sem validar e verificar o modulo\n- comece pelo menor artefato semantico que resolva a tarefa\n\nAntes de editar `.sema`, entenda:\n- o module alvo\n- os contratos de task, route, error, effects, guarantees, state e flow\n- os exemplos oficiais relacionados\n\nDepois de editar `.sema`, execute este fluxo:\n1. formatar\n2. validar\n3. diagnosticar, se houver falha\n4. verificar\n\nSe houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.\n\nSe algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.\n";
|
|
3
3
|
export declare const PROMPT_IA_UI = "Atue como Engenheiro de Software Senior e UX/UI Designer de elite.\n\nQuero que voce trabalhe com Sema como fonte de verdade semantica do sistema e com React + TypeScript como camada de interface.\n\nEntregue obrigatoriamente duas partes integradas:\n1. os arquivos `.sema` do dominio\n2. a proposta ou implementacao da interface em React + TypeScript\n\nRegras:\n- nao entregue apenas HTML solto em arquivo unico\n- nao trate a Sema como enfeite conceitual\n- a interface deve nascer do contrato semantico definido em Sema\n- use os exemplos oficiais da Sema como referencia de estilo e semantica\n- nao invente sintaxe fora da gramatica suportada\n\nA Sema deve modelar, quando fizer sentido:\n- `module`\n- `use`\n- `entity`\n- `enum`\n- `state`\n- `task`\n- `flow`\n- `route`\n- `effects`\n- `error`\n- `guarantees`\n- `tests`\n- `docs`\n\nA interface deve refletir visualmente:\n- `state` como status e progresso observavel\n- `flow` como etapas ou orquestracao visivel\n- `error` como falhas tratadas com clareza\n- `effects` como operacoes relevantes para usuario ou operacao\n- `guarantees` como confianca, confirmacao ou consistencia final\n\nEstruture a entrega assim:\n1. visao do produto\n2. dominio modelado em Sema\n3. arquitetura de pastas em React + TypeScript\n4. componentes principais\n5. estrategia visual\n6. codigo principal da interface\n7. explicacao curta de como a UI conversa com a semantica da Sema\n\nSe a tarefa envolver app visual, a Sema governa o significado e o React renderiza a experiencia. Nao atropele essa separacao.\n";
|
|
4
4
|
export declare const PROMPT_IA_REACT = "Crie uma solucao com Sema + React + TypeScript.\n\nRegras principais:\n- a Sema deve ser a fonte de verdade semantica do dominio\n- React + TypeScript deve ser a camada de interface e experiencia\n- nao entregue HTML unico solto\n- nao trate a Sema como enfeite\n\nEntregue obrigatoriamente:\n1. arquivos `.sema` do dominio\n2. arquitetura de pastas do frontend\n3. componentes React principais\n4. contratos e tipos derivados da semantica\n5. interface elegante e implementavel\n\nA modelagem Sema deve cobrir, quando fizer sentido:\n- `entity`\n- `enum`\n- `state`\n- `task`\n- `flow`\n- `route`\n- `effects`\n- `error`\n- `guarantees`\n- `tests`\n\nA interface React deve tornar visiveis:\n- estado atual e transicoes relevantes\n- fluxo operacional\n- erros publicos\n- efeitos operacionais importantes\n- garantias ou confirmacoes finais\n\nEstruture a entrega assim:\n1. visao do produto\n2. arquivos `.sema`\n3. arquitetura React + TypeScript\n4. componentes e telas\n5. codigo principal\n6. explicacao de como a UI deriva da semantica da Sema\n\nSe houver duvida, siga os exemplos oficiais e mantenha a separacao:\n- Sema governa o significado\n- React governa a apresentacao\n";
|
package/dist/iaPrompts.js
CHANGED
|
@@ -11,7 +11,7 @@ Importante:
|
|
|
11
11
|
- leitura humana e bonus toleravel, nao objetivo de produto
|
|
12
12
|
- a Sema nao e gerador magico que deveria fazer tudo
|
|
13
13
|
- a Sema modela contratos, estados, fluxos, erros, efeitos, garantias, vinculos e execucao
|
|
14
|
-
- a Sema gera codigo e scaffolding real para TypeScript, Python, Dart, Lua, JavaScript, HTML e CSS
|
|
14
|
+
- a Sema gera codigo e scaffolding real para TypeScript, Python, PHP, Dart, Lua, JavaScript, HTML e CSS
|
|
15
15
|
- a Sema usa \`importar\` para bootstrap revisavel, nao para contrato final automatico
|
|
16
16
|
- a Sema usa \`impl\` para ligar task a simbolo real do runtime
|
|
17
17
|
- a Sema usa \`vinculos\` para ligar contrato a arquivo, simbolo, recurso e superficie real
|
|
@@ -54,7 +54,7 @@ Comandos essenciais:
|
|
|
54
54
|
- formatacao: \`sema formatar <arquivo.sema>\`
|
|
55
55
|
- importacao assistida de legado: \`sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|dotnet|java|go|rust|cpp|php|typescript|python|dart> <diretorio> --saida <diretorio>\`
|
|
56
56
|
- exemplos oficiais no projeto: \`sema instalar-exemplos\`
|
|
57
|
-
- geracao de codigo: \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>\`
|
|
57
|
+
- geracao de codigo: \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>\`
|
|
58
58
|
- verificacao final: \`sema verificar <arquivo-ou-pasta> [--json]\`
|
|
59
59
|
|
|
60
60
|
Antes de editar:
|
package/dist/index.part01.js
CHANGED
|
@@ -36,7 +36,7 @@ export function ajuda() {
|
|
|
36
36
|
"[1] Projeto novo / produção inicial",
|
|
37
37
|
"sema iniciar --template <base|nestjs|fastapi|nextjs-api|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer>",
|
|
38
38
|
"sema validar contratos/<modulo>.sema --json",
|
|
39
|
-
"sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>",
|
|
39
|
+
"sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>",
|
|
40
40
|
"sema verificar <arquivo-ou-pasta> --json",
|
|
41
41
|
"",
|
|
42
42
|
"[2] Editar projeto que já usa Sema",
|
|
@@ -86,8 +86,8 @@ export function ajuda() {
|
|
|
86
86
|
"importação: sema importar <nestjs|fastapi|flask|nextjs|nextjs-consumer|react-vite-consumer|angular-consumer|flutter-consumer|firebase|dotnet|java|go|rust|cpp|php|typescript|python|dart> <diretorio> [--saida <diretorio>] [--namespace <base>] [--json]",
|
|
87
87
|
"validação: sema validar <arquivo-ou-pasta> [--json]",
|
|
88
88
|
"diagnóstico: sema diagnosticos <arquivo.sema> [--json]",
|
|
89
|
-
"geração: sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
90
|
-
"teste local: sema testar <arquivo.sema> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio-temporario> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
89
|
+
"geração: sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
90
|
+
"teste local: sema testar <arquivo.sema> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio-temporario> [--estrutura <flat|modulos|backend>] [--framework <base|nestjs|fastapi>]",
|
|
91
91
|
"verificação final: sema verificar <arquivo-ou-pasta> [--saida <diretorio-base>] [--json]",
|
|
92
92
|
"formatação: sema formatar <arquivo-ou-pasta> [--check] [--json]",
|
|
93
93
|
"author: sema author <iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes> [arquivo] [--tema-sensivel] [--preset conto|romance|roteiro|lore|campanha] [--saida <arquivo>] [--texto <texto>] [--json]",
|
package/dist/index.part06.js
CHANGED
|
@@ -206,7 +206,7 @@ export async function comandoAjudaIa() {
|
|
|
206
206
|
"Use `sema docs-impacto --intencao <acao>` para ler ou criar docs obrigatorias antes de agir.",
|
|
207
207
|
"Use `sema finalizar-mudanca --intencao <acao>` para bloquear conclusao sem leitura documental comprovada.",
|
|
208
208
|
"Use `sema contexto-ia <arquivo.sema>` para gerar AST, IR, drift, `briefing.json` e `briefing.min.json`.",
|
|
209
|
-
"Use `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>` quando a tarefa pedir codigo derivado.",
|
|
209
|
+
"Use `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>` quando a tarefa pedir codigo derivado.",
|
|
210
210
|
]));
|
|
211
211
|
console.log("");
|
|
212
212
|
console.log(renderizarSecaoAscii("Regras praticas", [
|
|
@@ -118,7 +118,7 @@ export function arquivosTemplateIniciar(template) {
|
|
|
118
118
|
?? [
|
|
119
119
|
{
|
|
120
120
|
caminhoRelativo: "sema.config.json",
|
|
121
|
-
conteudo: "{\n \"origens\": [\"./contratos\"],\n \"saida\": \"./generated\",\n \"alvos\": [\"typescript\", \"javascript\", \"python\", \"dart\", \"lua\", \"html\", \"css\"],\n \"alvoPadrao\": \"typescript\",\n \"estruturaSaida\": \"modulos\",\n \"framework\": \"base\",\n \"modoEstrito\": true,\n \"diretoriosSaidaPorAlvo\": {\n \"typescript\": \"./generated/typescript\",\n \"javascript\": \"./generated/javascript\",\n \"python\": \"./generated/python\",\n \"dart\": \"./generated/dart\",\n \"lua\": \"./generated/lua\",\n \"html\": \"./generated/html\",\n \"css\": \"./generated/css\"\n },\n \"convencoesGeracaoPorProjeto\": \"base\"\n}\n",
|
|
121
|
+
conteudo: "{\n \"origens\": [\"./contratos\"],\n \"saida\": \"./generated\",\n \"alvos\": [\"typescript\", \"javascript\", \"python\", \"php\", \"dart\", \"lua\", \"html\", \"css\"],\n \"alvoPadrao\": \"typescript\",\n \"estruturaSaida\": \"modulos\",\n \"framework\": \"base\",\n \"modoEstrito\": true,\n \"diretoriosSaidaPorAlvo\": {\n \"typescript\": \"./generated/typescript\",\n \"javascript\": \"./generated/javascript\",\n \"python\": \"./generated/python\",\n \"php\": \"./generated/php\",\n \"dart\": \"./generated/dart\",\n \"lua\": \"./generated/lua\",\n \"html\": \"./generated/html\",\n \"css\": \"./generated/css\"\n },\n \"convencoesGeracaoPorProjeto\": \"base\"\n}\n",
|
|
122
122
|
},
|
|
123
123
|
...arquivosBase,
|
|
124
124
|
];
|
package/dist/projetoConfig.js
CHANGED
|
@@ -52,7 +52,7 @@ export function normalizarFrameworkGeracao(valor) {
|
|
|
52
52
|
return "base";
|
|
53
53
|
}
|
|
54
54
|
export function normalizarAlvo(valor) {
|
|
55
|
-
if (valor === "typescript" || valor === "python" || valor === "dart" || valor === "lua" || valor === "javascript" || valor === "html" || valor === "css") {
|
|
55
|
+
if (valor === "typescript" || valor === "python" || valor === "dart" || valor === "lua" || valor === "javascript" || valor === "html" || valor === "css" || valor === "php") {
|
|
56
56
|
return valor;
|
|
57
57
|
}
|
|
58
58
|
if (valor === "js") {
|
package/docs/ai-workflow.md
CHANGED
|
@@ -35,7 +35,7 @@ If the delivery includes code derived from a contract, run `sema compilar`.
|
|
|
35
35
|
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
Replace `javascript` with `typescript`, `python`, `dart`, `lua`, `html`, or `css` when appropriate.
|
|
38
|
+
Replace `javascript` with `typescript`, `python`, `php`, `dart`, `lua`, `html`, or `css` when appropriate.
|
|
39
39
|
|
|
40
40
|
## Fail Closed
|
|
41
41
|
|
package/docs/commands.md
CHANGED
|
@@ -36,7 +36,7 @@ Honest closure: treat drift JSON as the source of truth. `sucesso:false`, `vincu
|
|
|
36
36
|
|
|
37
37
|
## Sema Code
|
|
38
38
|
|
|
39
|
-
- `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>`: generates starter/support artifacts from the contract.
|
|
39
|
+
- `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>`: generates starter/support artifacts from the contract.
|
|
40
40
|
- `sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>`: generates and runs local tests when the target supports it.
|
|
41
41
|
- `sema importar <fonte> <diretorio> --saida <diretorio> --json`: imports a legacy project into initial contracts.
|
|
42
42
|
- `sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json`: helps rename symbols semantically.
|
package/docs/syntax.md
CHANGED
|
@@ -105,13 +105,13 @@ impl {
|
|
|
105
105
|
|
|
106
106
|
## JavaScript Is Supported
|
|
107
107
|
|
|
108
|
-
The CLI supports JavaScript generation:
|
|
108
|
+
The CLI supports JavaScript and PHP generation:
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
111
|
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
The project can also generate TypeScript, Python, Dart, Lua, HTML, and CSS when those targets are enabled in `sema.config.json`.
|
|
114
|
+
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, and CSS when those targets are enabled in `sema.config.json`.
|
|
115
115
|
|
|
116
116
|
## Support Files
|
|
117
117
|
|
|
@@ -0,0 +1,538 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.geradores_codigo_governado
|
|
2
|
+
// Descricao: gerador PHP governado; consulte contratos/sema/geradores_codigo_governado.sema antes de editar.
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { descreverEstruturaModulo, extrairTiposNomeados, mapearTipoParaPhp, normalizarNomeModulo, normalizarNomeParaSimbolo, } from "@sema/padroes";
|
|
5
|
+
const TIPOS_PRIMITIVOS_SEMA = new Set(["Texto", "Numero", "Inteiro", "Decimal", "Booleano", "Data", "DataHora", "Id", "Email", "Url", "Json", "Vazio"]);
|
|
6
|
+
function paraPascalCase(valor) {
|
|
7
|
+
const normalizado = normalizarNomeParaSimbolo(valor);
|
|
8
|
+
const partes = normalizado.split(/_+/).filter(Boolean);
|
|
9
|
+
const nome = partes.map((parte) => parte[0].toUpperCase() + parte.slice(1)).join("");
|
|
10
|
+
return nome || "Contrato";
|
|
11
|
+
}
|
|
12
|
+
function paraConstantePhp(valor) {
|
|
13
|
+
const simbolo = normalizarNomeParaSimbolo(valor).toUpperCase();
|
|
14
|
+
return /^[A-Z_]/.test(simbolo) ? simbolo : `VALOR_${simbolo}`;
|
|
15
|
+
}
|
|
16
|
+
function literalPhp(valor) {
|
|
17
|
+
if (valor === null) {
|
|
18
|
+
return "null";
|
|
19
|
+
}
|
|
20
|
+
if (typeof valor === "boolean") {
|
|
21
|
+
return valor ? "true" : "false";
|
|
22
|
+
}
|
|
23
|
+
if (typeof valor === "number") {
|
|
24
|
+
return Number.isInteger(valor) ? String(valor) : String(valor);
|
|
25
|
+
}
|
|
26
|
+
return JSON.stringify(valor);
|
|
27
|
+
}
|
|
28
|
+
function tipoPropriedadePhp(campo) {
|
|
29
|
+
if (campo.cardinalidade === "lista" || campo.cardinalidade === "mapa") {
|
|
30
|
+
return "array";
|
|
31
|
+
}
|
|
32
|
+
if (campo.cardinalidade === "uniao") {
|
|
33
|
+
const tipos = [...new Set(campo.tiposAlternativos.map(mapearTipoParaPhp).filter((tipo) => tipo !== "void"))];
|
|
34
|
+
return tipos.length === 1 ? tipos[0] : "mixed";
|
|
35
|
+
}
|
|
36
|
+
return mapearTipoParaPhp(campo.tipoBase);
|
|
37
|
+
}
|
|
38
|
+
function tipoParametroPhp(campo) {
|
|
39
|
+
const tipo = tipoPropriedadePhp(campo);
|
|
40
|
+
if (tipo === "void") {
|
|
41
|
+
return "mixed";
|
|
42
|
+
}
|
|
43
|
+
if (campo.opcional && tipo !== "mixed" && !tipo.includes("|null")) {
|
|
44
|
+
return `?${tipo}`;
|
|
45
|
+
}
|
|
46
|
+
return tipo;
|
|
47
|
+
}
|
|
48
|
+
function tipoDocPhp(campo) {
|
|
49
|
+
if (campo.cardinalidade === "lista") {
|
|
50
|
+
return `array<int, ${mapearTipoParaPhp(campo.tipoItem ?? campo.tipoBase)}>`;
|
|
51
|
+
}
|
|
52
|
+
if (campo.cardinalidade === "mapa") {
|
|
53
|
+
return `array<${mapearTipoParaPhp(campo.chaveMapa ?? "Texto")}, ${mapearTipoParaPhp(campo.valorMapa ?? "Json")}>`;
|
|
54
|
+
}
|
|
55
|
+
if (campo.cardinalidade === "uniao") {
|
|
56
|
+
return campo.tiposAlternativos.map(mapearTipoParaPhp).join("|") || "mixed";
|
|
57
|
+
}
|
|
58
|
+
return mapearTipoParaPhp(campo.tipoBase);
|
|
59
|
+
}
|
|
60
|
+
function ordenarCamposConstrutor(campos) {
|
|
61
|
+
return [...campos].sort((a, b) => {
|
|
62
|
+
const obrigatorioA = a.modificadores.includes("required") ? 0 : 1;
|
|
63
|
+
const obrigatorioB = b.modificadores.includes("required") ? 0 : 1;
|
|
64
|
+
return obrigatorioA - obrigatorioB;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function valorPadraoPhp(campo) {
|
|
68
|
+
if (campo.cardinalidade === "lista" || campo.cardinalidade === "mapa") {
|
|
69
|
+
return "[]";
|
|
70
|
+
}
|
|
71
|
+
if (campo.opcional) {
|
|
72
|
+
return "null";
|
|
73
|
+
}
|
|
74
|
+
switch (campo.tipoBase) {
|
|
75
|
+
case "Texto":
|
|
76
|
+
case "Id":
|
|
77
|
+
case "Email":
|
|
78
|
+
case "Url":
|
|
79
|
+
case "Data":
|
|
80
|
+
case "DataHora":
|
|
81
|
+
return literalPhp(`${campo.nome}_exemplo`);
|
|
82
|
+
case "Numero":
|
|
83
|
+
case "Decimal":
|
|
84
|
+
return "1.0";
|
|
85
|
+
case "Inteiro":
|
|
86
|
+
return "1";
|
|
87
|
+
case "Booleano":
|
|
88
|
+
return "false";
|
|
89
|
+
case "Json":
|
|
90
|
+
return "[]";
|
|
91
|
+
case "Vazio":
|
|
92
|
+
return "null";
|
|
93
|
+
default:
|
|
94
|
+
return "[]";
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function coletarTiposExternos(modulo) {
|
|
98
|
+
const locais = new Set([
|
|
99
|
+
...modulo.types.map((item) => item.nome),
|
|
100
|
+
...modulo.entities.map((item) => item.nome),
|
|
101
|
+
...modulo.enums.map((item) => item.nome),
|
|
102
|
+
]);
|
|
103
|
+
const referenciados = new Set();
|
|
104
|
+
const campos = [
|
|
105
|
+
...modulo.entities.flatMap((entity) => entity.campos),
|
|
106
|
+
...modulo.types.flatMap((tipo) => tipo.definicao.campos),
|
|
107
|
+
...modulo.tasks.flatMap((task) => [...task.input, ...task.output]),
|
|
108
|
+
...modulo.routes.flatMap((route) => [...route.inputPublico, ...route.outputPublico]),
|
|
109
|
+
...modulo.states.flatMap((state) => state.campos),
|
|
110
|
+
];
|
|
111
|
+
for (const campo of campos) {
|
|
112
|
+
for (const tipo of extrairTiposNomeados(campo.tipo)) {
|
|
113
|
+
if (!locais.has(tipo) && !TIPOS_PRIMITIVOS_SEMA.has(tipo)) {
|
|
114
|
+
referenciados.add(tipo);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return [...referenciados].sort((a, b) => a.localeCompare(b, "pt-BR"));
|
|
119
|
+
}
|
|
120
|
+
function gerarClasseDados(nome, campos) {
|
|
121
|
+
const classe = paraPascalCase(nome);
|
|
122
|
+
if (campos.length === 0) {
|
|
123
|
+
return `final class ${classe}
|
|
124
|
+
{
|
|
125
|
+
public function __construct()
|
|
126
|
+
{
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
`;
|
|
130
|
+
}
|
|
131
|
+
const parametros = ordenarCamposConstrutor(campos).map((campo) => {
|
|
132
|
+
const tipo = tipoParametroPhp(campo);
|
|
133
|
+
const padrao = campo.modificadores.includes("required") ? "" : ` = ${valorPadraoPhp(campo)}`;
|
|
134
|
+
return ` /** @var ${tipoDocPhp(campo)} */
|
|
135
|
+
public ${tipo} $${campo.nome}${padrao}`;
|
|
136
|
+
}).join(",\n");
|
|
137
|
+
return `final class ${classe}
|
|
138
|
+
{
|
|
139
|
+
public function __construct(
|
|
140
|
+
${parametros}
|
|
141
|
+
) {
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
`;
|
|
145
|
+
}
|
|
146
|
+
function gerarEnum(enumeracao) {
|
|
147
|
+
const constantes = enumeracao.valores.map((valor) => ` public const ${paraConstantePhp(valor)} = ${literalPhp(valor)};`).join("\n");
|
|
148
|
+
return `final class ${paraPascalCase(enumeracao.nome)}
|
|
149
|
+
{
|
|
150
|
+
${constantes || " public const VAZIO = \"\";"}
|
|
151
|
+
}
|
|
152
|
+
`;
|
|
153
|
+
}
|
|
154
|
+
function gerarLiteralCamposPhp(campos) {
|
|
155
|
+
if (campos.length === 0) {
|
|
156
|
+
return "[]";
|
|
157
|
+
}
|
|
158
|
+
return `[
|
|
159
|
+
${campos.map((campo) => ` ["nome" => ${literalPhp(campo.nome)}, "tipo" => ${literalPhp(campo.tipo)}, "obrigatorio" => ${campo.modificadores.includes("required") ? "true" : "false"}],`).join("\n")}
|
|
160
|
+
]`;
|
|
161
|
+
}
|
|
162
|
+
function gerarArrayStringsPhp(valores) {
|
|
163
|
+
if (valores.length === 0) {
|
|
164
|
+
return "[]";
|
|
165
|
+
}
|
|
166
|
+
return `[${valores.map(literalPhp).join(", ")}]`;
|
|
167
|
+
}
|
|
168
|
+
function gerarMapaErrosPhp(erros) {
|
|
169
|
+
const entradas = Object.entries(erros);
|
|
170
|
+
if (entradas.length === 0) {
|
|
171
|
+
return "[]";
|
|
172
|
+
}
|
|
173
|
+
return `[
|
|
174
|
+
${entradas.map(([codigo, mensagem]) => ` ${literalPhp(codigo)} => ${literalPhp(mensagem)},`).join("\n")}
|
|
175
|
+
]`;
|
|
176
|
+
}
|
|
177
|
+
function resolverReferenciaPhp(referencia, variavel) {
|
|
178
|
+
const partes = referencia.split(".").filter(Boolean);
|
|
179
|
+
if (partes.length === 0) {
|
|
180
|
+
return `$${variavel}`;
|
|
181
|
+
}
|
|
182
|
+
if (partes.length === 1) {
|
|
183
|
+
return `$${variavel}->${partes[0]}`;
|
|
184
|
+
}
|
|
185
|
+
const [primeiro, ...resto] = partes;
|
|
186
|
+
return `$${variavel}->${primeiro}${resto.map((parte) => `?->${parte}`).join("")}`;
|
|
187
|
+
}
|
|
188
|
+
function formatarValorPhp(valor, camposConhecidos, variavel) {
|
|
189
|
+
const texto = valor.trim();
|
|
190
|
+
if (/^-?\d+(?:\.\d+)?$/.test(texto)) {
|
|
191
|
+
return texto;
|
|
192
|
+
}
|
|
193
|
+
if (texto === "verdadeiro") {
|
|
194
|
+
return "true";
|
|
195
|
+
}
|
|
196
|
+
if (texto === "falso") {
|
|
197
|
+
return "false";
|
|
198
|
+
}
|
|
199
|
+
if (texto === "nulo") {
|
|
200
|
+
return "null";
|
|
201
|
+
}
|
|
202
|
+
if (camposConhecidos.has(texto.split(".")[0] ?? texto)) {
|
|
203
|
+
return resolverReferenciaPhp(texto, variavel);
|
|
204
|
+
}
|
|
205
|
+
return literalPhp(texto);
|
|
206
|
+
}
|
|
207
|
+
function resolverExpressaoPhp(expressao, camposConhecidos, variavel) {
|
|
208
|
+
switch (expressao.tipo) {
|
|
209
|
+
case "existe":
|
|
210
|
+
return `${resolverReferenciaPhp(expressao.alvo, variavel)} !== null`;
|
|
211
|
+
case "comparacao":
|
|
212
|
+
return `${resolverReferenciaPhp(expressao.alvo, variavel)} ${expressao.operador} ${formatarValorPhp(expressao.valor, camposConhecidos, variavel)}`;
|
|
213
|
+
case "pertencimento":
|
|
214
|
+
return `in_array(${resolverReferenciaPhp(expressao.alvo, variavel)}, [${(expressao.valores ?? []).map((valor) => formatarValorPhp(valor, camposConhecidos, variavel)).join(", ")}], true)`;
|
|
215
|
+
case "predicado":
|
|
216
|
+
return "true";
|
|
217
|
+
case "composta":
|
|
218
|
+
return `(${expressao.termos.map((termo) => resolverExpressaoPhp(termo, camposConhecidos, variavel)).join(expressao.operadorLogico === "e" ? " && " : " || ")})`;
|
|
219
|
+
case "negacao":
|
|
220
|
+
return `!(${resolverExpressaoPhp(expressao.termo, camposConhecidos, variavel)})`;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
function garantiaComparacaoExecutavel(expressao, campos) {
|
|
224
|
+
if (expressao.tipo !== "comparacao") {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
if (/\squando\s/u.test(expressao.valor)) {
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
const raiz = expressao.alvo.split(".")[0] ?? expressao.alvo;
|
|
231
|
+
const campo = campos.get(raiz);
|
|
232
|
+
if (!campo) {
|
|
233
|
+
return true;
|
|
234
|
+
}
|
|
235
|
+
if (campo.tipoBase === "Booleano") {
|
|
236
|
+
return expressao.valor === "verdadeiro" || expressao.valor === "falso";
|
|
237
|
+
}
|
|
238
|
+
if (campo.tipoBase === "Numero" || campo.tipoBase === "Inteiro" || campo.tipoBase === "Decimal") {
|
|
239
|
+
return /^-?\d+(?:\.\d+)?$/u.test(expressao.valor);
|
|
240
|
+
}
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
function finalizarBlocoPhp(linhas) {
|
|
244
|
+
return linhas.length > 0 ? linhas.join("\n") : " // Nenhuma regra executavel declarada.";
|
|
245
|
+
}
|
|
246
|
+
function gerarValidacoes(task) {
|
|
247
|
+
const camposEntrada = new Set(task.input.map((campo) => campo.nome));
|
|
248
|
+
const linhas = [
|
|
249
|
+
...task.input
|
|
250
|
+
.filter((campo) => campo.modificadores.includes("required"))
|
|
251
|
+
.map((campo) => ` if ($entrada->${campo.nome} === null) {
|
|
252
|
+
throw new \\InvalidArgumentException(${literalPhp(`Campo obrigatorio ausente: ${campo.nome}`)});
|
|
253
|
+
}`),
|
|
254
|
+
...task.regrasEstruturadas.map((regra) => {
|
|
255
|
+
if (regra.tipo === "predicado") {
|
|
256
|
+
return ` // Predicado declarado em Sema: ${regra.textoOriginal}`;
|
|
257
|
+
}
|
|
258
|
+
return ` if (!(${resolverExpressaoPhp(regra, camposEntrada, "entrada")})) {
|
|
259
|
+
throw new \\InvalidArgumentException(${literalPhp(`Regra violada: ${regra.textoOriginal}`)});
|
|
260
|
+
}`;
|
|
261
|
+
}),
|
|
262
|
+
...task.rules
|
|
263
|
+
.filter((regra) => !task.regrasEstruturadas.some((estruturada) => estruturada.textoOriginal === regra))
|
|
264
|
+
.map((regra) => ` // Regra declarada em Sema: ${regra}`),
|
|
265
|
+
];
|
|
266
|
+
return finalizarBlocoPhp(linhas);
|
|
267
|
+
}
|
|
268
|
+
function gerarGarantias(task) {
|
|
269
|
+
const camposSaida = new Set(task.output.map((campo) => campo.nome));
|
|
270
|
+
const camposSaidaMap = new Map(task.output.map((campo) => [campo.nome, campo]));
|
|
271
|
+
const linhas = [
|
|
272
|
+
...task.garantiasEstruturadas.map((garantia) => {
|
|
273
|
+
if (garantia.tipo === "predicado") {
|
|
274
|
+
return ` // Predicado de garantia declarado em Sema: ${garantia.textoOriginal}`;
|
|
275
|
+
}
|
|
276
|
+
if (!garantiaComparacaoExecutavel(garantia, camposSaidaMap)) {
|
|
277
|
+
return ` // Garantia condicional declarada em Sema: ${garantia.textoOriginal}`;
|
|
278
|
+
}
|
|
279
|
+
return ` if (!(${resolverExpressaoPhp(garantia, camposSaida, "saida")})) {
|
|
280
|
+
throw new \\RuntimeException(${literalPhp(`Garantia violada: ${garantia.textoOriginal}`)});
|
|
281
|
+
}`;
|
|
282
|
+
}),
|
|
283
|
+
...task.guarantees
|
|
284
|
+
.filter((garantia) => !task.garantiasEstruturadas.some((estruturada) => estruturada.textoOriginal === garantia))
|
|
285
|
+
.map((garantia) => ` // Garantia declarada em Sema: ${garantia}`),
|
|
286
|
+
];
|
|
287
|
+
return finalizarBlocoPhp(linhas);
|
|
288
|
+
}
|
|
289
|
+
function coletarErrosTask(task) {
|
|
290
|
+
const erros = new Map(Object.entries(task.errors));
|
|
291
|
+
for (const caso of task.tests) {
|
|
292
|
+
const tipoErro = caso.error?.campos.find((campo) => campo.nome === "tipo")?.tipo ?? caso.error?.campos[0]?.tipo;
|
|
293
|
+
if (tipoErro && !erros.has(tipoErro)) {
|
|
294
|
+
erros.set(tipoErro, `Erro sintetico gerado a partir do caso de teste "${caso.nome}".`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return erros;
|
|
298
|
+
}
|
|
299
|
+
function classeErroTask(task, codigo) {
|
|
300
|
+
return `${paraPascalCase(task.nome)}${paraPascalCase(codigo)}Erro`;
|
|
301
|
+
}
|
|
302
|
+
function gerarClassesErro(task) {
|
|
303
|
+
return [...coletarErrosTask(task).entries()].map(([codigo, mensagem]) => `final class ${classeErroTask(task, codigo)} extends \\RuntimeException
|
|
304
|
+
{
|
|
305
|
+
public string $codigo = ${literalPhp(codigo)};
|
|
306
|
+
|
|
307
|
+
public function __construct()
|
|
308
|
+
{
|
|
309
|
+
parent::__construct(${literalPhp(mensagem)});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
`).join("\n");
|
|
313
|
+
}
|
|
314
|
+
function gerarMetadadosTask(task) {
|
|
315
|
+
const nome = normalizarNomeParaSimbolo(task.nome);
|
|
316
|
+
const efeitos = task.efeitosEstruturados.map((efeito) => `${efeito.categoria}:${efeito.alvo}${efeito.detalhe ? `:${efeito.detalhe}` : ""}`);
|
|
317
|
+
const impl = task.implementacoesExternas.map((item) => `${item.origem}:${item.caminho}[${item.statusImpl ?? "nao_verificado"}]`);
|
|
318
|
+
return `function contrato_${nome}(): array
|
|
319
|
+
{
|
|
320
|
+
return [
|
|
321
|
+
"nome" => ${literalPhp(task.nome)},
|
|
322
|
+
"input" => ${gerarLiteralCamposPhp(task.input)},
|
|
323
|
+
"output" => ${gerarLiteralCamposPhp(task.output)},
|
|
324
|
+
"effects" => ${gerarArrayStringsPhp(efeitos)},
|
|
325
|
+
"impl" => ${gerarArrayStringsPhp(impl)},
|
|
326
|
+
"errors" => ${gerarMapaErrosPhp(Object.fromEntries(coletarErrosTask(task)))},
|
|
327
|
+
"guarantees" => ${gerarArrayStringsPhp(task.guarantees)},
|
|
328
|
+
];
|
|
329
|
+
}
|
|
330
|
+
`;
|
|
331
|
+
}
|
|
332
|
+
function gerarPreparacaoSaida(task) {
|
|
333
|
+
const camposSaida = new Set(task.output.map((campo) => campo.nome));
|
|
334
|
+
const camposSaidaMap = new Map(task.output.map((campo) => [campo.nome, campo]));
|
|
335
|
+
const camposOrdenados = ordenarCamposConstrutor(task.output);
|
|
336
|
+
const argumentos = camposOrdenados.map(valorPadraoPhp).join(", ");
|
|
337
|
+
const ajustes = [];
|
|
338
|
+
for (const garantia of task.garantiasEstruturadas) {
|
|
339
|
+
if (garantia.tipo === "pertencimento" && garantia.valores && camposSaida.has(garantia.alvo)) {
|
|
340
|
+
ajustes.push(` $saida->${garantia.alvo} = ${formatarValorPhp(garantia.valores[0] ?? "", camposSaida, "saida")};`);
|
|
341
|
+
}
|
|
342
|
+
if (garantia.tipo === "comparacao" && garantia.valor && camposSaida.has(garantia.alvo.split(".")[0] ?? garantia.alvo) && !garantia.alvo.includes(".") && garantiaComparacaoExecutavel(garantia, camposSaidaMap)) {
|
|
343
|
+
ajustes.push(` $saida->${garantia.alvo} = ${formatarValorPhp(garantia.valor, camposSaida, "saida")};`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return ` $saida = new ${paraPascalCase(`${task.nome}_saida`)}(${argumentos});${ajustes.length ? `\n${ajustes.join("\n")}` : ""}`;
|
|
347
|
+
}
|
|
348
|
+
function gerarTask(task) {
|
|
349
|
+
const nome = normalizarNomeParaSimbolo(task.nome);
|
|
350
|
+
const erros = [...coletarErrosTask(task).keys()];
|
|
351
|
+
const blocosErroContexto = erros.map((codigo) => ` if (($contexto["erro_esperado"] ?? null) === ${literalPhp(codigo)}) {
|
|
352
|
+
throw new ${classeErroTask(task, codigo)}();
|
|
353
|
+
}`).join("\n");
|
|
354
|
+
const efeitos = task.efeitosEstruturados.length > 0
|
|
355
|
+
? task.efeitosEstruturados.map((efeito) => ` // Efeito estruturado: categoria=${efeito.categoria} alvo=${efeito.alvo}${efeito.detalhe ? ` detalhe=${efeito.detalhe}` : ""}${efeito.criticidade ? ` criticidade=${efeito.criticidade}` : ""}`).join("\n")
|
|
356
|
+
: task.effects.map((efeito) => ` // Efeito declarado: ${efeito}`).join("\n") || " // Nenhum efeito declarado.";
|
|
357
|
+
return `
|
|
358
|
+
${gerarClasseDados(`${task.nome}_entrada`, task.input)}
|
|
359
|
+
${gerarClasseDados(`${task.nome}_saida`, task.output)}
|
|
360
|
+
${gerarClassesErro(task)}
|
|
361
|
+
${gerarMetadadosTask(task)}
|
|
362
|
+
|
|
363
|
+
function validar_${nome}(${paraPascalCase(`${task.nome}_entrada`)} $entrada): void
|
|
364
|
+
{
|
|
365
|
+
${gerarValidacoes(task)}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
function verificar_garantias_${nome}(${paraPascalCase(`${task.nome}_saida`)} $saida): void
|
|
369
|
+
{
|
|
370
|
+
${gerarGarantias(task)}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
function executar_${nome}(${paraPascalCase(`${task.nome}_entrada`)} $entrada, array $contexto = []): ${paraPascalCase(`${task.nome}_saida`)}
|
|
374
|
+
{
|
|
375
|
+
${blocosErroContexto ? `${blocosErroContexto}\n` : ""} validar_${nome}($entrada);
|
|
376
|
+
${task.stateContract ? ` // Vinculo de estado: ${task.stateContract.nomeEstado ?? "nao_definido"}\n // Transicoes declaradas: ${task.stateContract.transicoes.map((transicao) => `${transicao.origem}->${transicao.destino}`).join(", ") || "nenhuma"}\n` : ""}${task.implementacoesExternas.map((impl) => ` // Implementacao externa: origem=${impl.origem} caminho=${impl.caminho} status=${impl.statusImpl ?? "nao_verificado"}`).join("\n")}
|
|
377
|
+
${efeitos}
|
|
378
|
+
${gerarPreparacaoSaida(task)}
|
|
379
|
+
verificar_garantias_${nome}($saida);
|
|
380
|
+
return $saida;
|
|
381
|
+
}
|
|
382
|
+
`;
|
|
383
|
+
}
|
|
384
|
+
function formatarLiteralTestePhp(valor, tipoDeclarado) {
|
|
385
|
+
const texto = valor.trim().replace(/^["']|["']$/g, "");
|
|
386
|
+
if (["Texto", "Id", "Email", "Url", "Data", "DataHora"].includes(tipoDeclarado ?? "")) {
|
|
387
|
+
return literalPhp(texto);
|
|
388
|
+
}
|
|
389
|
+
if (["Numero", "Inteiro", "Decimal"].includes(tipoDeclarado ?? "") && /^-?\d+(?:\.\d+)?$/.test(texto)) {
|
|
390
|
+
return texto;
|
|
391
|
+
}
|
|
392
|
+
if ((tipoDeclarado ?? "") === "Booleano") {
|
|
393
|
+
if (texto === "verdadeiro") {
|
|
394
|
+
return "true";
|
|
395
|
+
}
|
|
396
|
+
if (texto === "falso") {
|
|
397
|
+
return "false";
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
if (/^-?\d+(?:\.\d+)?$/.test(texto)) {
|
|
401
|
+
return texto;
|
|
402
|
+
}
|
|
403
|
+
if (texto === "verdadeiro") {
|
|
404
|
+
return "true";
|
|
405
|
+
}
|
|
406
|
+
if (texto === "falso") {
|
|
407
|
+
return "false";
|
|
408
|
+
}
|
|
409
|
+
if (texto === "nulo") {
|
|
410
|
+
return "null";
|
|
411
|
+
}
|
|
412
|
+
return literalPhp(texto);
|
|
413
|
+
}
|
|
414
|
+
function literalBlocoPhp(bloco) {
|
|
415
|
+
const pares = [
|
|
416
|
+
...bloco.campos.map((campo) => `${literalPhp(campo.nome)} => ${formatarLiteralTestePhp(campo.tipo)}`),
|
|
417
|
+
...bloco.blocos.map((subbloco) => `${literalPhp(subbloco.nome)} => ${literalBlocoPhp(subbloco.conteudo)}`),
|
|
418
|
+
];
|
|
419
|
+
return `[${pares.join(", ")}]`;
|
|
420
|
+
}
|
|
421
|
+
function gerarInstanciaEntradaTeste(task, given) {
|
|
422
|
+
const camposGiven = new Map(given.campos.map((campo) => [campo.nome, campo.tipo]));
|
|
423
|
+
const blocosGiven = new Map(given.blocos.map((bloco) => [bloco.nome, bloco.conteudo]));
|
|
424
|
+
const tiposEntrada = new Map(task.input.map((campo) => [campo.nome, campo.tipo]));
|
|
425
|
+
const argumentos = ordenarCamposConstrutor(task.input).map((campo) => {
|
|
426
|
+
const valorCampo = camposGiven.get(campo.nome);
|
|
427
|
+
if (valorCampo !== undefined) {
|
|
428
|
+
return formatarLiteralTestePhp(valorCampo, tiposEntrada.get(campo.nome));
|
|
429
|
+
}
|
|
430
|
+
const bloco = blocosGiven.get(campo.nome);
|
|
431
|
+
if (bloco) {
|
|
432
|
+
return literalBlocoPhp(bloco);
|
|
433
|
+
}
|
|
434
|
+
return valorPadraoPhp(campo);
|
|
435
|
+
});
|
|
436
|
+
return `new ${paraPascalCase(`${task.nome}_entrada`)}(${argumentos.join(", ")})`;
|
|
437
|
+
}
|
|
438
|
+
function gerarTestesPhp(modulo, arquivoModulo) {
|
|
439
|
+
const testes = modulo.tasks.flatMap((task) => task.tests.map((caso, indice) => ({ task, caso, indice })));
|
|
440
|
+
if (testes.length === 0) {
|
|
441
|
+
return undefined;
|
|
442
|
+
}
|
|
443
|
+
const funcoes = testes.map(({ task, caso, indice }) => {
|
|
444
|
+
const nomeTeste = `test_${normalizarNomeParaSimbolo(task.nome)}_${indice + 1}`;
|
|
445
|
+
const entrada = gerarInstanciaEntradaTeste(task, caso.given);
|
|
446
|
+
const tipoErro = caso.error?.campos.find((campo) => campo.nome === "tipo")?.tipo ?? caso.error?.campos[0]?.tipo;
|
|
447
|
+
if (tipoErro) {
|
|
448
|
+
return `function ${nomeTeste}(): void
|
|
449
|
+
{
|
|
450
|
+
try {
|
|
451
|
+
executar_${normalizarNomeParaSimbolo(task.nome)}(${entrada}, ["erro_esperado" => ${literalPhp(tipoErro)}]);
|
|
452
|
+
} catch (${classeErroTask(task, tipoErro)} $erro) {
|
|
453
|
+
assert_sema($erro->codigo === ${literalPhp(tipoErro)}, "codigo de erro inesperado");
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
456
|
+
throw new \\RuntimeException(${literalPhp(`Caso ${caso.nome} deveria falhar com ${tipoErro}`)});
|
|
457
|
+
}`;
|
|
458
|
+
}
|
|
459
|
+
return `function ${nomeTeste}(): void
|
|
460
|
+
{
|
|
461
|
+
$resultado = executar_${normalizarNomeParaSimbolo(task.nome)}(${entrada});
|
|
462
|
+
assert_sema($resultado !== null, ${literalPhp(`Caso ${caso.nome} nao retornou resultado`)});
|
|
463
|
+
}`;
|
|
464
|
+
});
|
|
465
|
+
const lista = testes.map(({ task, caso, indice }) => ` [${literalPhp(caso.nome)}, "test_${normalizarNomeParaSimbolo(task.nome)}_${indice + 1}"],`).join("\n");
|
|
466
|
+
return `${gerarCabecalhoSemaPhp(modulo, "teste")}require_once __DIR__ . "/${path.posix.basename(arquivoModulo)}";
|
|
467
|
+
|
|
468
|
+
function assert_sema(bool $condicao, string $mensagem): void
|
|
469
|
+
{
|
|
470
|
+
if (!$condicao) {
|
|
471
|
+
throw new \\RuntimeException($mensagem);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
${funcoes.join("\n\n")}
|
|
476
|
+
|
|
477
|
+
$testes = [
|
|
478
|
+
${lista}
|
|
479
|
+
];
|
|
480
|
+
|
|
481
|
+
foreach ($testes as [$nome, $funcao]) {
|
|
482
|
+
fwrite(STDOUT, "test " . $nome . PHP_EOL);
|
|
483
|
+
$funcao();
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
fwrite(STDOUT, "ok " . count($testes) . " testes" . PHP_EOL);
|
|
487
|
+
`;
|
|
488
|
+
}
|
|
489
|
+
function gerarCabecalhoSemaPhp(modulo, tipo = "contrato") {
|
|
490
|
+
const descricoes = {
|
|
491
|
+
contrato: "artefato PHP gerado para executar e revisar as regras declaradas no contrato Sema.",
|
|
492
|
+
teste: "testes PHP gerados a partir dos casos do contrato Sema.",
|
|
493
|
+
};
|
|
494
|
+
return [
|
|
495
|
+
"<?php",
|
|
496
|
+
"// SEMA-GOVERNED",
|
|
497
|
+
`// Modulo de origem: ${modulo.nome}`,
|
|
498
|
+
"// Consulte o contrato .sema aplicavel antes de editar este arquivo.",
|
|
499
|
+
"// Rastreabilidade: outros contratos .sema podem governar este mesmo arquivo via vinculos.",
|
|
500
|
+
"// Para IA fraca/media/forte: chame Sema, rode docs-impacto e drift antes de alterar codigo.",
|
|
501
|
+
`// Descricao: ${descricoes[tipo]}`,
|
|
502
|
+
"",
|
|
503
|
+
"declare(strict_types=1);",
|
|
504
|
+
"",
|
|
505
|
+
].join("\n");
|
|
506
|
+
}
|
|
507
|
+
export function gerarPhp(modulo) {
|
|
508
|
+
const nomeBase = normalizarNomeModulo(modulo.nome).replace(/\./g, "_");
|
|
509
|
+
const estrutura = descreverEstruturaModulo(modulo.nome);
|
|
510
|
+
const interops = modulo.interoperabilidades.map((interop) => `// Interop externo ${interop.origem}: ${interop.caminho}`).join("\n");
|
|
511
|
+
const tiposExternos = coletarTiposExternos(modulo).map((tipo) => `final class ${paraPascalCase(tipo)}
|
|
512
|
+
{
|
|
513
|
+
}
|
|
514
|
+
`).join("\n");
|
|
515
|
+
const tipos = modulo.types.map((tipo) => gerarClasseDados(tipo.nome, tipo.definicao.campos)).join("\n");
|
|
516
|
+
const entidades = modulo.entities.map((entity) => gerarClasseDados(entity.nome, entity.campos)).join("\n");
|
|
517
|
+
const enums = modulo.enums.map(gerarEnum).join("\n");
|
|
518
|
+
const states = modulo.states.map((state) => `// State${state.nome ? ` ${state.nome}` : ""}: campos=${state.campos.length} invariantes=${state.invariantes.length} transicoes=${state.transicoes.length}`).join("\n");
|
|
519
|
+
const flows = modulo.flows.map((flow) => `// Flow ${flow.nome}: etapas=${flow.etapasEstruturadas.length} tasks=${flow.tasksReferenciadas.join(", ") || "nenhuma"}`).join("\n");
|
|
520
|
+
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");
|
|
521
|
+
const tasks = modulo.tasks.map(gerarTask).join("\n");
|
|
522
|
+
const codigo = `${gerarCabecalhoSemaPhp(modulo)}${interops ? `${interops}\n` : ""}${tiposExternos ? `${tiposExternos}\n` : ""}${tipos ? `${tipos}\n` : ""}${entidades ? `${entidades}\n` : ""}${enums ? `${enums}\n` : ""}${tasks}${states ? `\n${states}` : ""}${flows ? `\n${flows}` : ""}${routes ? `\n${routes}` : ""}\n`;
|
|
523
|
+
const caminhoModulo = estrutura.contextoRelativo
|
|
524
|
+
? path.posix.join(estrutura.contextoRelativo, `${estrutura.nomeArquivo}.php`)
|
|
525
|
+
: `${nomeBase}.php`;
|
|
526
|
+
const arquivos = [{ caminhoRelativo: caminhoModulo, conteudo: codigo }];
|
|
527
|
+
const testes = gerarTestesPhp(modulo, caminhoModulo);
|
|
528
|
+
if (testes) {
|
|
529
|
+
arquivos.push({
|
|
530
|
+
caminhoRelativo: estrutura.contextoRelativo
|
|
531
|
+
? path.posix.join(estrutura.contextoRelativo, `test_${estrutura.nomeArquivo}.php`)
|
|
532
|
+
: `test_${nomeBase}.php`,
|
|
533
|
+
conteudo: testes,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
return arquivos;
|
|
537
|
+
}
|
|
538
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type AlvoGeracao = "typescript" | "python" | "dart" | "lua" | "javascript" | "html" | "css";
|
|
1
|
+
export type AlvoGeracao = "typescript" | "python" | "dart" | "lua" | "javascript" | "html" | "css" | "php";
|
|
2
2
|
export type FrameworkGeracao = "base" | "nestjs" | "fastapi";
|
|
3
3
|
export interface ArquivoGerado {
|
|
4
4
|
caminhoRelativo: string;
|
|
@@ -23,3 +23,4 @@ export declare function mapearTipoParaDart(tipo: string): string;
|
|
|
23
23
|
export declare function mapearTipoParaLua(tipo: string): string;
|
|
24
24
|
export declare function mapearTipoParaJavaScript(tipo: string): string;
|
|
25
25
|
export declare function mapearTipoParaInputHtml(tipo: string): string;
|
|
26
|
+
export declare function mapearTipoParaPhp(tipo: string): string;
|
|
@@ -313,4 +313,35 @@ export function mapearTipoParaInputHtml(tipo) {
|
|
|
313
313
|
};
|
|
314
314
|
return tabela[tipo] ?? "text";
|
|
315
315
|
}
|
|
316
|
+
export function mapearTipoParaPhp(tipo) {
|
|
317
|
+
const limpo = tipo.trim();
|
|
318
|
+
if (/^Opcional<.+>$/.test(limpo)) {
|
|
319
|
+
return `${mapearTipoParaPhp(limpo.slice("Opcional<".length, -1))}|null`;
|
|
320
|
+
}
|
|
321
|
+
const uniao = dividirTipoNoNivelRaiz(limpo, "|");
|
|
322
|
+
if (uniao.length > 1) {
|
|
323
|
+
return uniao.map((item) => mapearTipoParaPhp(item)).join("|");
|
|
324
|
+
}
|
|
325
|
+
if (limpo.endsWith("[]")) {
|
|
326
|
+
return "array";
|
|
327
|
+
}
|
|
328
|
+
if (/^Lista<.+>$/.test(limpo) || /^Mapa<.+>$/.test(limpo)) {
|
|
329
|
+
return "array";
|
|
330
|
+
}
|
|
331
|
+
const tabela = {
|
|
332
|
+
Texto: "string",
|
|
333
|
+
Numero: "float",
|
|
334
|
+
Inteiro: "int",
|
|
335
|
+
Decimal: "float",
|
|
336
|
+
Booleano: "bool",
|
|
337
|
+
Data: "string",
|
|
338
|
+
DataHora: "string",
|
|
339
|
+
Id: "string",
|
|
340
|
+
Email: "string",
|
|
341
|
+
Url: "string",
|
|
342
|
+
Json: "array",
|
|
343
|
+
Vazio: "void",
|
|
344
|
+
};
|
|
345
|
+
return tabela[limpo] ?? "mixed";
|
|
346
|
+
}
|
|
316
347
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,IAAI;IACJ,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB;IACvD,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,SAAS,GAAG,IAAI;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;SAC5D,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEvE,OAAO;QACL,SAAS;QACT,iBAAiB;QACjB,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7C,WAAW;QACX,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,IAAY;IACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,SAAoB;IACxE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,YAAY,IAAI,CAAC,CAAC;YAClB,KAAK,IAAI,SAAS,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAC7C,KAAK,IAAI,SAAS,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,KAAK,GAAG,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,KAAK,IAAI,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAQ,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAChF,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,CAAC,GAAG,WAAW,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,gCAAgC,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/F,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,gCAAgC,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7G,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAChE,OAAO,UAAU,KAAK,KAAK,KAAK,GAAG,CAAC;IACtC,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,MAAM;KACd,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7D,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAC5D,OAAO,QAAQ,KAAK,KAAK,KAAK,GAAG,CAAC;IACpC,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,KAAK;QACf,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,MAAM;KACd,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC;IACxE,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAChG,OAAO,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3D,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAC1D,OAAO,OAAO,KAAK,KAAK,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,MAAM;KACd,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3E,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,kBAAkB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,kBAAkB,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAClF,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QACzD,OAAO,SAAS,KAAK,KAAK,KAAK,GAAG,CAAC;IACrC,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAK;KACb,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACjF,CAAC;IAED,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,UAAU,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnE,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,UAAU,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACjF,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC;QAChE,OAAO,WAAW,KAAK,KAAK,KAAK,GAAG,CAAC;IACvC,CAAC;IAED,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,SAAS;QACnB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,QAAQ;QAClB,EAAE,EAAE,QAAQ;QACZ,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,QAAQ;QACb,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,MAAM;KACd,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,gBAAgB;QAC1B,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,OAAO;QACd,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,QAAQ;KAChB,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AAChC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semacode/cli",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.55",
|
|
4
4
|
"description": "Local semantic governance CLI for AI agents: contracts, drift, impact, documentation gates, and code generation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"icon": "logo.png",
|
|
@@ -39,15 +39,16 @@
|
|
|
39
39
|
"LICENSE"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@sema/nucleo": "1.5.
|
|
43
|
-
"@sema/gerador-dart": "1.5.
|
|
44
|
-
"@sema/gerador-lua": "1.5.
|
|
45
|
-
"@sema/gerador-python": "1.5.
|
|
46
|
-
"@sema/gerador-typescript": "1.5.
|
|
47
|
-
"@sema/gerador-javascript": "1.5.
|
|
48
|
-
"@sema/gerador-html": "1.5.
|
|
49
|
-
"@sema/gerador-css": "1.5.
|
|
50
|
-
"@sema/
|
|
42
|
+
"@sema/nucleo": "1.5.55",
|
|
43
|
+
"@sema/gerador-dart": "1.5.55",
|
|
44
|
+
"@sema/gerador-lua": "1.5.55",
|
|
45
|
+
"@sema/gerador-python": "1.5.55",
|
|
46
|
+
"@sema/gerador-typescript": "1.5.55",
|
|
47
|
+
"@sema/gerador-javascript": "1.5.55",
|
|
48
|
+
"@sema/gerador-html": "1.5.55",
|
|
49
|
+
"@sema/gerador-css": "1.5.55",
|
|
50
|
+
"@sema/gerador-php": "1.5.55",
|
|
51
|
+
"@sema/padroes": "1.5.55",
|
|
51
52
|
"typescript": "^5.8.3"
|
|
52
53
|
},
|
|
53
54
|
"bundledDependencies": [
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"@sema/gerador-javascript",
|
|
60
61
|
"@sema/gerador-html",
|
|
61
62
|
"@sema/gerador-css",
|
|
63
|
+
"@sema/gerador-php",
|
|
62
64
|
"@sema/padroes"
|
|
63
65
|
]
|
|
64
66
|
}
|