@semacode/cli 1.5.35 → 1.5.37
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/AGENTS.md +1 -1
- package/AGENT_CONTEXT_PACK.json +130 -12
- package/LICENSE +1 -2
- package/README.md +3 -3
- package/SEMA_BRIEF.curto.txt +9 -6
- package/SEMA_BRIEF.md +250 -205
- package/SEMA_BRIEF.micro.txt +10 -6
- package/SEMA_INDEX.json +2196 -1926
- package/dist/agentContext.d.ts +19 -0
- package/dist/agentContext.js +26 -0
- package/dist/agentContext.js.map +1 -0
- package/dist/agentContextPack.d.ts +3 -0
- package/dist/agentContextPack.js +403 -0
- package/dist/agentContextPack.js.map +1 -0
- package/dist/agentContextTipos.d.ts +96 -0
- package/dist/agentContextTipos.js +55 -0
- package/dist/agentContextTipos.js.map +1 -0
- package/dist/agentEntryPoints.d.ts +13 -0
- package/dist/agentEntryPoints.js +422 -0
- package/dist/agentEntryPoints.js.map +1 -0
- package/dist/authorAnalise.d.ts +15 -0
- package/dist/authorAnalise.js +210 -0
- package/dist/authorAnalise.js.map +1 -0
- package/dist/authorPoliticas.d.ts +37 -0
- package/dist/authorPoliticas.js +340 -0
- package/dist/authorPoliticas.js.map +1 -0
- package/dist/billing/index.d.ts +1 -1
- package/dist/billing/index.js +6 -2
- package/dist/billing/index.js.map +1 -1
- package/dist/bridge.js +2 -0
- package/dist/bridge.js.map +1 -1
- package/dist/carregarModulos.d.ts +2 -0
- package/dist/carregarModulos.js +9 -0
- package/dist/carregarModulos.js.map +1 -0
- package/dist/cliArgs.d.ts +6 -0
- package/dist/cliArgs.js +70 -0
- package/dist/cliArgs.js.map +1 -0
- package/dist/contexto.js +2 -0
- package/dist/contexto.js.map +1 -1
- package/dist/controleComercialSupabase.js.map +1 -1
- package/dist/controleComercialSupabaseAdmin.js.map +1 -1
- package/dist/controleComercialSupabaseCadastro.js.map +1 -1
- package/dist/controleComercialSupabaseConsumo.js.map +1 -1
- package/dist/controleComercialSupabaseConta.js.map +1 -1
- package/dist/controleComercialSupabaseProfiles.js.map +1 -1
- package/dist/dev/index.js +2 -0
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/watcher.d.ts +1 -0
- package/dist/dev/watcher.js +4 -0
- package/dist/dev/watcher.js.map +1 -0
- package/dist/docs/resolver.d.ts +1 -0
- package/dist/docs/resolver.js +4 -0
- package/dist/docs/resolver.js.map +1 -0
- package/dist/docs.d.ts +2 -56
- package/dist/docs.js +5 -502
- package/dist/docs.js.map +1 -1
- package/dist/docs.part01.d.ts +78 -0
- package/dist/docs.part01.js +347 -0
- package/dist/docs.part01.js.map +1 -0
- package/dist/docs.part02.d.ts +20 -0
- package/dist/docs.part02.js +181 -0
- package/dist/docs.part02.js.map +1 -0
- package/dist/doctorCommand.d.ts +27 -0
- package/dist/doctorCommand.js +160 -0
- package/dist/doctorCommand.js.map +1 -0
- package/dist/drift.contrato.d.ts +23 -0
- package/dist/drift.contrato.js +33 -0
- package/dist/drift.contrato.js.map +1 -0
- package/dist/drift.d.ts +13 -227
- package/dist/drift.js +16 -3924
- package/dist/drift.js.map +1 -1
- package/dist/drift.part01.d.ts +252 -0
- package/dist/drift.part01.js +183 -0
- package/dist/drift.part01.js.map +1 -0
- package/dist/drift.part02.d.ts +30 -0
- package/dist/drift.part02.js +342 -0
- package/dist/drift.part02.js.map +1 -0
- package/dist/drift.part03.d.ts +26 -0
- package/dist/drift.part03.js +343 -0
- package/dist/drift.part03.js.map +1 -0
- package/dist/drift.part04.d.ts +46 -0
- package/dist/drift.part04.js +354 -0
- package/dist/drift.part04.js.map +1 -0
- package/dist/drift.part05.d.ts +47 -0
- package/dist/drift.part05.js +353 -0
- package/dist/drift.part05.js.map +1 -0
- package/dist/drift.part06.d.ts +17 -0
- package/dist/drift.part06.js +381 -0
- package/dist/drift.part06.js.map +1 -0
- package/dist/drift.part07.d.ts +48 -0
- package/dist/drift.part07.js +377 -0
- package/dist/drift.part07.js.map +1 -0
- package/dist/drift.part08.d.ts +26 -0
- package/dist/drift.part08.js +333 -0
- package/dist/drift.part08.js.map +1 -0
- package/dist/drift.part09.d.ts +22 -0
- package/dist/drift.part09.js +322 -0
- package/dist/drift.part09.js.map +1 -0
- package/dist/drift.part10.d.ts +11 -0
- package/dist/drift.part10.js +116 -0
- package/dist/drift.part10.js.map +1 -0
- package/dist/drift.part11.d.ts +3 -0
- package/dist/drift.part11.js +320 -0
- package/dist/drift.part11.js.map +1 -0
- package/dist/drift.part12.d.ts +17 -0
- package/dist/drift.part12.js +289 -0
- package/dist/drift.part12.js.map +1 -0
- package/dist/drift.part13.d.ts +17 -0
- package/dist/drift.part13.js +86 -0
- package/dist/drift.part13.js.map +1 -0
- package/dist/drift.part14.d.ts +44 -0
- package/dist/drift.part14.js +402 -0
- package/dist/drift.part14.js.map +1 -0
- package/dist/driftOrcamento.d.ts +69 -0
- package/dist/driftOrcamento.js +280 -0
- package/dist/driftOrcamento.js.map +1 -0
- package/dist/execucoesExternas.d.ts +10 -0
- package/dist/execucoesExternas.js +51 -0
- package/dist/execucoesExternas.js.map +1 -0
- package/dist/exemplosOficiais.d.ts +10 -0
- package/dist/exemplosOficiais.js +63 -0
- package/dist/exemplosOficiais.js.map +1 -0
- package/dist/fsGovernado.d.ts +10 -0
- package/dist/fsGovernado.js +50 -0
- package/dist/fsGovernado.js.map +1 -0
- package/dist/geracaoCore.d.ts +64 -0
- package/dist/geracaoCore.js +381 -0
- package/dist/geracaoCore.js.map +1 -0
- package/dist/iaPrompts.d.ts +6 -0
- package/dist/iaPrompts.js +318 -0
- package/dist/iaPrompts.js.map +1 -0
- package/dist/importador.d.ts +9 -31
- package/dist/importador.js +11 -2938
- package/dist/importador.js.map +1 -1
- package/dist/importador.part01.d.ts +150 -0
- package/dist/importador.part01.js +256 -0
- package/dist/importador.part01.js.map +1 -0
- package/dist/importador.part02.d.ts +25 -0
- package/dist/importador.part02.js +359 -0
- package/dist/importador.part02.js.map +1 -0
- package/dist/importador.part03.d.ts +53 -0
- package/dist/importador.part03.js +366 -0
- package/dist/importador.part03.js.map +1 -0
- package/dist/importador.part04.d.ts +26 -0
- package/dist/importador.part04.js +374 -0
- package/dist/importador.part04.js.map +1 -0
- package/dist/importador.part05.d.ts +28 -0
- package/dist/importador.part05.js +340 -0
- package/dist/importador.part05.js.map +1 -0
- package/dist/importador.part06.d.ts +8 -0
- package/dist/importador.part06.js +327 -0
- package/dist/importador.part06.js.map +1 -0
- package/dist/importador.part07.d.ts +23 -0
- package/dist/importador.part07.js +300 -0
- package/dist/importador.part07.js.map +1 -0
- package/dist/importador.part08.d.ts +12 -0
- package/dist/importador.part08.js +378 -0
- package/dist/importador.part08.js.map +1 -0
- package/dist/importador.part09.d.ts +16 -0
- package/dist/importador.part09.js +319 -0
- package/dist/importador.part09.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.js +16 -7840
- package/dist/index.js.map +1 -1
- package/dist/index.part01.d.ts +148 -0
- package/dist/index.part01.js +252 -0
- package/dist/index.part01.js.map +1 -0
- package/dist/index.part02.d.ts +17 -0
- package/dist/index.part02.js +344 -0
- package/dist/index.part02.js.map +1 -0
- package/dist/index.part03.d.ts +59 -0
- package/dist/index.part03.js +352 -0
- package/dist/index.part03.js.map +1 -0
- package/dist/index.part04.d.ts +20 -0
- package/dist/index.part04.js +358 -0
- package/dist/index.part04.js.map +1 -0
- package/dist/index.part05.d.ts +10 -0
- package/dist/index.part05.js +370 -0
- package/dist/index.part05.js.map +1 -0
- package/dist/index.part06.d.ts +14 -0
- package/dist/index.part06.js +336 -0
- package/dist/index.part06.js.map +1 -0
- package/dist/index.part07.d.ts +9 -0
- package/dist/index.part07.js +287 -0
- package/dist/index.part07.js.map +1 -0
- package/dist/index.part08.d.ts +1 -0
- package/dist/index.part08.js +206 -0
- package/dist/index.part08.js.map +1 -0
- package/dist/init/index.js +2 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/templates.d.ts +2 -11
- package/dist/init/templates.js +4 -659
- package/dist/init/templates.js.map +1 -1
- package/dist/init/templates.part01.d.ts +11 -0
- package/dist/init/templates.part01.js +399 -0
- package/dist/init/templates.part01.js.map +1 -0
- package/dist/init/templates.part02.d.ts +8 -0
- package/dist/init/templates.part02.js +265 -0
- package/dist/init/templates.part02.js.map +1 -0
- package/dist/initCommand.d.ts +3 -0
- package/dist/initCommand.js +41 -0
- package/dist/initCommand.js.map +1 -0
- package/dist/initTemplatesBackend.d.ts +2 -0
- package/dist/initTemplatesBackend.js +127 -0
- package/dist/initTemplatesBackend.js.map +1 -0
- package/dist/initTemplatesBase.d.ts +9 -0
- package/dist/initTemplatesBase.js +79 -0
- package/dist/initTemplatesBase.js.map +1 -0
- package/dist/initTemplatesFlutter.d.ts +2 -0
- package/dist/initTemplatesFlutter.js +185 -0
- package/dist/initTemplatesFlutter.js.map +1 -0
- package/dist/initTemplatesRuntime.d.ts +2 -0
- package/dist/initTemplatesRuntime.js +494 -0
- package/dist/initTemplatesRuntime.js.map +1 -0
- package/dist/initTemplatesWeb.d.ts +2 -0
- package/dist/initTemplatesWeb.js +429 -0
- package/dist/initTemplatesWeb.js.map +1 -0
- package/dist/mcpInstalarChaveCommand.d.ts +1 -0
- package/dist/mcpInstalarChaveCommand.js +141 -0
- package/dist/mcpInstalarChaveCommand.js.map +1 -0
- package/dist/mcpRemoto.js.map +1 -1
- package/dist/mcp_chave.d.ts +1 -0
- package/dist/mcp_chave.js +4 -0
- package/dist/mcp_chave.js.map +1 -0
- package/dist/profileArtefatoBase.d.ts +30 -0
- package/dist/profileArtefatoBase.js +129 -0
- package/dist/profileArtefatoBase.js.map +1 -0
- package/dist/profileArtefatoValidadores.d.ts +9 -0
- package/dist/profileArtefatoValidadores.js +287 -0
- package/dist/profileArtefatoValidadores.js.map +1 -0
- package/dist/profileAuthorCommand.d.ts +6 -0
- package/dist/profileAuthorCommand.js +442 -0
- package/dist/profileAuthorCommand.js.map +1 -0
- package/dist/profileAuthorTipos.d.ts +225 -0
- package/dist/profileAuthorTipos.js +6 -0
- package/dist/profileAuthorTipos.js.map +1 -0
- package/dist/profileCatalogo.d.ts +8 -0
- package/dist/profileCatalogo.js +235 -0
- package/dist/profileCatalogo.js.map +1 -0
- package/dist/profileCommand.d.ts +33 -0
- package/dist/profileCommand.js +256 -0
- package/dist/profileCommand.js.map +1 -0
- package/dist/profileOrquestracao.d.ts +33 -0
- package/dist/profileOrquestracao.js +53 -0
- package/dist/profileOrquestracao.js.map +1 -0
- package/dist/profileRegras.d.ts +19 -0
- package/dist/profileRegras.js +219 -0
- package/dist/profileRegras.js.map +1 -0
- package/dist/profileRulePacks.d.ts +3 -0
- package/dist/profileRulePacks.js +334 -0
- package/dist/profileRulePacks.js.map +1 -0
- package/dist/profiles/validate.d.ts +1 -0
- package/dist/profiles/validate.js +4 -0
- package/dist/profiles/validate.js.map +1 -0
- package/dist/projeto.d.ts +4 -53
- package/dist/projeto.js +5 -649
- package/dist/projeto.js.map +1 -1
- package/dist/projetoBusca.d.ts +7 -0
- package/dist/projetoBusca.js +142 -0
- package/dist/projetoBusca.js.map +1 -0
- package/dist/projetoCarregar.d.ts +2 -0
- package/dist/projetoCarregar.js +50 -0
- package/dist/projetoCarregar.js.map +1 -0
- package/dist/projetoConfig.d.ts +10 -0
- package/dist/projetoConfig.js +89 -0
- package/dist/projetoConfig.js.map +1 -0
- package/dist/projetoLegado.d.ts +3 -0
- package/dist/projetoLegado.js +175 -0
- package/dist/projetoLegado.js.map +1 -0
- package/dist/projetoOrigens.d.ts +6 -0
- package/dist/projetoOrigens.js +185 -0
- package/dist/projetoOrigens.js.map +1 -0
- package/dist/projetoResolucao.d.ts +8 -0
- package/dist/projetoResolucao.js +43 -0
- package/dist/projetoResolucao.js.map +1 -0
- package/dist/projetoTipos.d.ts +43 -0
- package/dist/projetoTipos.js +4 -0
- package/dist/projetoTipos.js.map +1 -0
- package/dist/runnerValidacaoRemota.js.map +1 -1
- package/dist/runnerValidacaoRemotaBateria.js +2 -0
- package/dist/runnerValidacaoRemotaBateria.js.map +1 -1
- package/dist/runnerValidacaoRemotaExecucao.js +2 -0
- package/dist/runnerValidacaoRemotaExecucao.js.map +1 -1
- package/dist/runnerValidacaoRemotaRelatorio.js +2 -0
- package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -1
- package/dist/runnerValidacaoRemotaSnapshot.js +2 -0
- package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -1
- package/dist/runnerValidacaoRemotaWorkspace.js +2 -0
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -1
- package/dist/sync/index.js +2 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/textoListas.d.ts +4 -0
- package/dist/textoListas.js +22 -0
- package/dist/textoListas.js.map +1 -0
- package/dist/typescript-http-body.d.ts +12 -0
- package/dist/typescript-http-body.js +145 -0
- package/dist/typescript-http-body.js.map +1 -0
- package/dist/typescript-http-expressoes.d.ts +17 -0
- package/dist/typescript-http-expressoes.js +194 -0
- package/dist/typescript-http-expressoes.js.map +1 -0
- package/dist/typescript-http-modelos.d.ts +45 -0
- package/dist/typescript-http-modelos.js +82 -0
- package/dist/typescript-http-modelos.js.map +1 -0
- package/dist/typescript-http-rotas.d.ts +9 -0
- package/dist/typescript-http-rotas.js +129 -0
- package/dist/typescript-http-rotas.js.map +1 -0
- package/dist/typescript-http-semantica.d.ts +11 -0
- package/dist/typescript-http-semantica.js +329 -0
- package/dist/typescript-http-semantica.js.map +1 -0
- package/dist/typescript-http.d.ts +3 -35
- package/dist/typescript-http.js +4 -853
- package/dist/typescript-http.js.map +1 -1
- package/docs/AGENT_STARTER.md +1 -1
- package/docs/agentes-por-capacidade.md +59 -3
- package/docs/api.md +21 -21
- package/docs/cli.md +3 -3
- package/docs/documentacao.md +1 -1
- package/docs/env.md +20 -24
- package/docs/fluxo-pratico-ia-sema.md +1 -1
- package/docs/instalacao-e-primeiro-uso.md +3 -3
- package/docs/mcp.md +12 -0
- package/docs/pagamento-ponta-a-ponta.md +1 -1
- package/docs/persistencia-vendor-first.md +1 -1
- package/docs/prompt-base-ia-sema.md +1 -1
- package/docs/repositories.md +21 -21
- package/docs/seguranca.md +1 -1
- package/docs/sintaxe.md +1 -1
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -633
- package/exemplos/operacao_estrategia_discovery.sema +220 -0
- package/exemplos/operacao_estrategia_fluxo.sema +114 -0
- package/exemplos/operacao_estrategia_gates.sema +106 -0
- package/exemplos/operacao_estrategia_quarentena.sema +133 -0
- package/exemplos/operacao_estrategia_rollout.sema +124 -0
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/llms-full.txt +13 -8
- package/llms.txt +12 -7
- package/node_modules/@sema/gerador-css/dist/index.d.ts +2 -3
- package/node_modules/@sema/gerador-css/dist/index.js +4 -599
- package/node_modules/@sema/gerador-css/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.d.ts +6 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js +49 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.d.ts +3 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.js +471 -0
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-python/dist/index.d.ts +2 -6
- package/node_modules/@sema/gerador-python/dist/index.js +4 -771
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.d.ts +28 -0
- package/node_modules/@sema/gerador-python/dist/index.part01.js +383 -0
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.d.ts +20 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.js +396 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.d.ts +3 -6
- package/node_modules/@sema/gerador-typescript/dist/index.js +5 -810
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.d.ts +25 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js +358 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.d.ts +14 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +405 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.d.ts +5 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js +60 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +2 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.d.ts +6 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js +40 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +2 -9
- package/node_modules/@sema/nucleo/dist/formatador/index.js +4 -467
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.d.ts +38 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js +382 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.d.ts +4 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js +92 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/index.d.ts +2 -0
- package/node_modules/@sema/nucleo/dist/index.js +6 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +3 -5
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +5 -880
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.d.ts +30 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +398 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +41 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js +184 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.d.ts +5 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js +310 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +3 -9
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +150 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js +5 -768
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.d.ts +3 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js +222 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js +61 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.d.ts +40 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js +373 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.d.ts +4 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +2 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +3 -59
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +2 -1682
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +89 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +292 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.d.ts +29 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js +168 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js +185 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.d.ts +30 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js +200 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.d.ts +6 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js +193 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js +208 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.d.ts +11 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js +247 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.d.ts +3 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js +249 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +2 -106
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +4 -474
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.d.ts +109 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js +259 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js +223 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +21 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +40 -0
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -0
- package/package.json +12 -16
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export declare const LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO = 300;
|
|
2
|
+
export declare const LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO = 500;
|
|
3
|
+
export type TipoArquivoOrcamento = "contrato" | "codigo" | "documentacao" | "gerado" | "migracao_historica";
|
|
4
|
+
export type SeveridadeOrcamentoSemantico = "ok" | "aviso" | "erro";
|
|
5
|
+
export type TipoDiagnosticoOrcamento = "contrato_monolitico" | "codigo_monolitico" | "codigo_governado_sem_cabecalho";
|
|
6
|
+
export interface ResultadoValidacaoArquivoTocado {
|
|
7
|
+
permitido: boolean;
|
|
8
|
+
severidade: SeveridadeOrcamentoSemantico;
|
|
9
|
+
limite_aviso_linhas: number;
|
|
10
|
+
limite_bloqueio_linhas: number;
|
|
11
|
+
mensagem: string;
|
|
12
|
+
}
|
|
13
|
+
export interface ResultadoDiagnosticoCodigoMonolitico extends ResultadoValidacaoArquivoTocado {
|
|
14
|
+
diagnostico_emitido: boolean;
|
|
15
|
+
precisa_refatorar_codigo: boolean;
|
|
16
|
+
precisa_revisar_contrato_vinculado: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ResultadoCabecalhoCodigoGovernado {
|
|
19
|
+
permitido: boolean;
|
|
20
|
+
mensagem: string;
|
|
21
|
+
exemplo_cabecalho: string;
|
|
22
|
+
cobertura_ia_fraca_media_forte: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface DiagnosticoOrcamentoArquivo {
|
|
25
|
+
tipo: TipoDiagnosticoOrcamento;
|
|
26
|
+
arquivo: string;
|
|
27
|
+
linhas: number;
|
|
28
|
+
severidade: Exclude<SeveridadeOrcamentoSemantico, "ok">;
|
|
29
|
+
bloqueia: boolean;
|
|
30
|
+
mensagem: string;
|
|
31
|
+
limite_aviso_linhas: number;
|
|
32
|
+
limite_bloqueio_linhas: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function contarLinhasConteudo(conteudo: string): number;
|
|
35
|
+
export declare function classificarLinhasOrcamentoSemantico(linhas: number): SeveridadeOrcamentoSemantico;
|
|
36
|
+
export declare function arquivoEhArtefatoGeradoDeterministico(caminho: string): boolean;
|
|
37
|
+
export declare function arquivoEhMigracaoHistoricaImutavel(caminho: string): boolean;
|
|
38
|
+
export declare function tipoArquivoOrcamento(caminho: string): TipoArquivoOrcamento;
|
|
39
|
+
export declare function conteudoTemCabecalhoSemaGoverned(conteudo: string): boolean;
|
|
40
|
+
export declare function conteudoTemDescricaoHumanaGovernada(conteudo: string): boolean;
|
|
41
|
+
export declare function exemploCabecalhoCodigoGovernado(arquivo?: string): string;
|
|
42
|
+
export declare function validarArquivoTocado(entrada: {
|
|
43
|
+
arquivo?: string;
|
|
44
|
+
linhas?: number;
|
|
45
|
+
tipo?: TipoArquivoOrcamento | string;
|
|
46
|
+
}): ResultadoValidacaoArquivoTocado;
|
|
47
|
+
export declare function emitirDiagnosticosCodigoMonolitico(entrada: {
|
|
48
|
+
arquivo_codigo?: string;
|
|
49
|
+
arquivo?: string;
|
|
50
|
+
linhas?: number;
|
|
51
|
+
simbolos?: number;
|
|
52
|
+
conteudo?: string;
|
|
53
|
+
}): ResultadoDiagnosticoCodigoMonolitico;
|
|
54
|
+
export declare function validarCabecalhoCodigoGovernado(entrada: {
|
|
55
|
+
arquivo_codigo?: string;
|
|
56
|
+
possui_cabecalho_sema?: boolean;
|
|
57
|
+
possui_descricao_humana?: boolean;
|
|
58
|
+
conteudo?: string;
|
|
59
|
+
}): ResultadoCabecalhoCodigoGovernado;
|
|
60
|
+
export declare function avaliarOrcamentoArquivo(opcoes: {
|
|
61
|
+
arquivo: string;
|
|
62
|
+
conteudo: string;
|
|
63
|
+
exigirCabecalhoCodigoGovernado?: boolean;
|
|
64
|
+
}): DiagnosticoOrcamentoArquivo[];
|
|
65
|
+
export declare function emitirDiagnosticosArquivosOrcamento(opcoes: {
|
|
66
|
+
arquivos: string[];
|
|
67
|
+
baseProjeto?: string;
|
|
68
|
+
exigirCabecalhoCodigoGovernado?: boolean;
|
|
69
|
+
}): Promise<DiagnosticoOrcamentoArquivo[]>;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
// SEMA-GOVERNED
|
|
2
|
+
// Módulo: sema.produto.orcamento_semantico
|
|
3
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
4
|
+
// Descrição: centraliza os gates de linhas e cabeçalho Sema para drift, finalização e snapshots.
|
|
5
|
+
import { readFile } from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
export const LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO = 300;
|
|
8
|
+
export const LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO = 500;
|
|
9
|
+
const EXTENSOES_CODIGO_GOVERNAVEL = new Set([
|
|
10
|
+
".ts",
|
|
11
|
+
".tsx",
|
|
12
|
+
".js",
|
|
13
|
+
".jsx",
|
|
14
|
+
".mjs",
|
|
15
|
+
".cjs",
|
|
16
|
+
".py",
|
|
17
|
+
".dart",
|
|
18
|
+
".lua",
|
|
19
|
+
".java",
|
|
20
|
+
".go",
|
|
21
|
+
".rs",
|
|
22
|
+
".cs",
|
|
23
|
+
".php",
|
|
24
|
+
".rb",
|
|
25
|
+
".kt",
|
|
26
|
+
".kts",
|
|
27
|
+
".swift",
|
|
28
|
+
".vue",
|
|
29
|
+
".svelte",
|
|
30
|
+
".html",
|
|
31
|
+
".htm",
|
|
32
|
+
".css",
|
|
33
|
+
".scss",
|
|
34
|
+
".sql",
|
|
35
|
+
".psql",
|
|
36
|
+
".ddl",
|
|
37
|
+
".prisma",
|
|
38
|
+
".cpp",
|
|
39
|
+
".cc",
|
|
40
|
+
".cxx",
|
|
41
|
+
".hpp",
|
|
42
|
+
".h",
|
|
43
|
+
]);
|
|
44
|
+
const NOMES_ARTEFATOS_GERADOS_DETERMINISTICOS = new Set([
|
|
45
|
+
"package-lock.json",
|
|
46
|
+
"npm-shrinkwrap.json",
|
|
47
|
+
"yarn.lock",
|
|
48
|
+
"pnpm-lock.yaml",
|
|
49
|
+
"bun.lock",
|
|
50
|
+
"bun.lockb",
|
|
51
|
+
"deno.lock",
|
|
52
|
+
]);
|
|
53
|
+
const DIRETORIOS_ARTEFATOS_GERADOS = new Set([
|
|
54
|
+
"dist",
|
|
55
|
+
"build",
|
|
56
|
+
"coverage",
|
|
57
|
+
"generated",
|
|
58
|
+
]);
|
|
59
|
+
export function contarLinhasConteudo(conteudo) {
|
|
60
|
+
if (!conteudo) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
const normalizado = conteudo.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
64
|
+
return normalizado.endsWith("\n")
|
|
65
|
+
? normalizado.slice(0, -1).split("\n").length
|
|
66
|
+
: normalizado.split("\n").length;
|
|
67
|
+
}
|
|
68
|
+
export function classificarLinhasOrcamentoSemantico(linhas) {
|
|
69
|
+
if (linhas > LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO) {
|
|
70
|
+
return "erro";
|
|
71
|
+
}
|
|
72
|
+
if (linhas > LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO) {
|
|
73
|
+
return "aviso";
|
|
74
|
+
}
|
|
75
|
+
return "ok";
|
|
76
|
+
}
|
|
77
|
+
export function arquivoEhArtefatoGeradoDeterministico(caminho) {
|
|
78
|
+
const normalizado = caminho.replace(/\\/g, "/").toLowerCase();
|
|
79
|
+
const partes = normalizado.split("/").filter(Boolean);
|
|
80
|
+
const nome = partes.at(-1) ?? "";
|
|
81
|
+
if (NOMES_ARTEFATOS_GERADOS_DETERMINISTICOS.has(nome)) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
if (nome.endsWith(".map")) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return partes.some((parte) => DIRETORIOS_ARTEFATOS_GERADOS.has(parte));
|
|
88
|
+
}
|
|
89
|
+
export function arquivoEhMigracaoHistoricaImutavel(caminho) {
|
|
90
|
+
const normalizado = caminho.replace(/\\/g, "/").toLowerCase();
|
|
91
|
+
const partes = normalizado.split("/").filter(Boolean);
|
|
92
|
+
const nome = partes.at(-1) ?? "";
|
|
93
|
+
return partes.includes("supabase")
|
|
94
|
+
&& partes.includes("migrations")
|
|
95
|
+
&& /^\d{14}_.+\.sql$/.test(nome);
|
|
96
|
+
}
|
|
97
|
+
export function tipoArquivoOrcamento(caminho) {
|
|
98
|
+
if (arquivoEhArtefatoGeradoDeterministico(caminho)) {
|
|
99
|
+
return "gerado";
|
|
100
|
+
}
|
|
101
|
+
if (arquivoEhMigracaoHistoricaImutavel(caminho)) {
|
|
102
|
+
return "migracao_historica";
|
|
103
|
+
}
|
|
104
|
+
const ext = path.extname(caminho).toLowerCase();
|
|
105
|
+
if (ext === ".sema") {
|
|
106
|
+
return "contrato";
|
|
107
|
+
}
|
|
108
|
+
if (EXTENSOES_CODIGO_GOVERNAVEL.has(ext)) {
|
|
109
|
+
return "codigo";
|
|
110
|
+
}
|
|
111
|
+
return "documentacao";
|
|
112
|
+
}
|
|
113
|
+
export function conteudoTemCabecalhoSemaGoverned(conteudo) {
|
|
114
|
+
return /\bSEMA-GOVERNED\b/.test(conteudo);
|
|
115
|
+
}
|
|
116
|
+
const PADRAO_DESCRICAO_HUMANA_GOVERNADA = /(?:descri(?:c|ç|ç)[aãã]o|description)["']?\s*:/i;
|
|
117
|
+
export function conteudoTemDescricaoHumanaGovernada(conteudo) {
|
|
118
|
+
return PADRAO_DESCRICAO_HUMANA_GOVERNADA.test(conteudo);
|
|
119
|
+
}
|
|
120
|
+
export function exemploCabecalhoCodigoGovernado(arquivo) {
|
|
121
|
+
const ext = path.extname(arquivo ?? "").toLowerCase();
|
|
122
|
+
if (ext === ".html" || ext === ".htm" || ext === ".xml" || ext === ".vue" || ext === ".svelte") {
|
|
123
|
+
return [
|
|
124
|
+
"<!--",
|
|
125
|
+
"SEMA-GOVERNED: modulo.ou.contrato",
|
|
126
|
+
"Descrição: arquivo HTML governado; consulte contratos/... antes de editar.",
|
|
127
|
+
"-->",
|
|
128
|
+
].join("\n");
|
|
129
|
+
}
|
|
130
|
+
if (ext === ".css" || ext === ".scss") {
|
|
131
|
+
return [
|
|
132
|
+
"/*",
|
|
133
|
+
"SEMA-GOVERNED: modulo.ou.contrato",
|
|
134
|
+
"Descrição: folha de estilo governada; consulte contratos/... antes de editar.",
|
|
135
|
+
"*/",
|
|
136
|
+
].join("\n");
|
|
137
|
+
}
|
|
138
|
+
if (ext === ".py" || ext === ".rb") {
|
|
139
|
+
return [
|
|
140
|
+
"# SEMA-GOVERNED: modulo.ou.contrato",
|
|
141
|
+
"# Descrição: código governado; consulte contratos/... antes de editar.",
|
|
142
|
+
].join("\n");
|
|
143
|
+
}
|
|
144
|
+
if (ext === ".lua" || ext === ".sql" || ext === ".psql" || ext === ".ddl") {
|
|
145
|
+
return [
|
|
146
|
+
"-- SEMA-GOVERNED: modulo.ou.contrato",
|
|
147
|
+
"-- Descrição: código governado; consulte contratos/... antes de editar.",
|
|
148
|
+
].join("\n");
|
|
149
|
+
}
|
|
150
|
+
if (ext === ".json" || ext === ".jsonl") {
|
|
151
|
+
return [
|
|
152
|
+
"{",
|
|
153
|
+
' "SEMA-GOVERNED": "modulo.ou.contrato",',
|
|
154
|
+
' "Descrição": "JSON governado; consulte contratos/... antes de editar."',
|
|
155
|
+
"}",
|
|
156
|
+
].join("\n");
|
|
157
|
+
}
|
|
158
|
+
return [
|
|
159
|
+
"// SEMA-GOVERNED: modulo.ou.contrato",
|
|
160
|
+
"// Descrição: código governado; consulte contratos/... antes de editar.",
|
|
161
|
+
].join("\n");
|
|
162
|
+
}
|
|
163
|
+
export function validarArquivoTocado(entrada) {
|
|
164
|
+
const linhas = Number(entrada.linhas ?? 0);
|
|
165
|
+
const tipo = entrada.tipo ?? tipoArquivoOrcamento(entrada.arquivo ?? "");
|
|
166
|
+
const severidade = classificarLinhasOrcamentoSemantico(linhas);
|
|
167
|
+
const permitido = tipo === "gerado" || tipo === "migracao_historica" || severidade !== "erro";
|
|
168
|
+
const arquivo = entrada.arquivo ?? "arquivo";
|
|
169
|
+
return {
|
|
170
|
+
permitido,
|
|
171
|
+
severidade: tipo === "gerado" || tipo === "migracao_historica" ? "ok" : severidade,
|
|
172
|
+
limite_aviso_linhas: LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
173
|
+
limite_bloqueio_linhas: LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
174
|
+
mensagem: tipo === "gerado"
|
|
175
|
+
? `${arquivo} e artefato gerado deterministico; valide a fonte humana governada em vez de dividir o artefato.`
|
|
176
|
+
: tipo === "migracao_historica"
|
|
177
|
+
? `${arquivo} e migracao historica imutavel; novas migrations continuam obrigadas a passar pelo gate antes de serem criadas.`
|
|
178
|
+
: severidade === "erro"
|
|
179
|
+
? `${arquivo} (${tipo}) tem ${linhas} linhas; divida antes de concluir a mudanca.`
|
|
180
|
+
: severidade === "aviso"
|
|
181
|
+
? `${arquivo} (${tipo}) tem ${linhas} linhas; planeje divisao antes de passar de ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO}.`
|
|
182
|
+
: `${arquivo} (${tipo}) esta dentro do orcamento semantico.`,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export function emitirDiagnosticosCodigoMonolitico(entrada) {
|
|
186
|
+
const arquivo = entrada.arquivo_codigo ?? entrada.arquivo ?? "arquivo_codigo";
|
|
187
|
+
const linhas = Number(entrada.linhas ?? (entrada.conteudo ? contarLinhasConteudo(entrada.conteudo) : 0));
|
|
188
|
+
const validacao = validarArquivoTocado({ arquivo, linhas, tipo: "codigo" });
|
|
189
|
+
return {
|
|
190
|
+
...validacao,
|
|
191
|
+
diagnostico_emitido: validacao.severidade !== "ok",
|
|
192
|
+
precisa_refatorar_codigo: validacao.severidade === "erro",
|
|
193
|
+
precisa_revisar_contrato_vinculado: validacao.severidade === "erro",
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
export function validarCabecalhoCodigoGovernado(entrada) {
|
|
197
|
+
const conteudo = entrada.conteudo ?? "";
|
|
198
|
+
const possuiCabecalho = entrada.possui_cabecalho_sema ?? conteudoTemCabecalhoSemaGoverned(conteudo);
|
|
199
|
+
const possuiDescricao = entrada.possui_descricao_humana ?? conteudoTemDescricaoHumanaGovernada(conteudo);
|
|
200
|
+
const permitido = Boolean(possuiCabecalho && possuiDescricao);
|
|
201
|
+
const arquivo = entrada.arquivo_codigo ?? "codigo governado";
|
|
202
|
+
const exemploCabecalho = exemploCabecalhoCodigoGovernado(arquivo);
|
|
203
|
+
return {
|
|
204
|
+
permitido,
|
|
205
|
+
mensagem: permitido
|
|
206
|
+
? `${arquivo} possui SEMA-GOVERNED e descrição humana curta.`
|
|
207
|
+
: `${arquivo} precisa de SEMA-GOVERNED e descrição humana curta antes de concluir. Exemplo:\n${exemploCabecalho}`,
|
|
208
|
+
exemplo_cabecalho: exemploCabecalho,
|
|
209
|
+
cobertura_ia_fraca_media_forte: true,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export function avaliarOrcamentoArquivo(opcoes) {
|
|
213
|
+
const tipoArquivo = tipoArquivoOrcamento(opcoes.arquivo);
|
|
214
|
+
if (tipoArquivo === "gerado" || tipoArquivo === "migracao_historica") {
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
const linhas = contarLinhasConteudo(opcoes.conteudo);
|
|
218
|
+
const validacao = validarArquivoTocado({ arquivo: opcoes.arquivo, linhas, tipo: tipoArquivo });
|
|
219
|
+
const diagnosticos = [];
|
|
220
|
+
if (validacao.severidade !== "ok") {
|
|
221
|
+
diagnosticos.push({
|
|
222
|
+
tipo: tipoArquivo === "contrato" ? "contrato_monolitico" : "codigo_monolitico",
|
|
223
|
+
arquivo: opcoes.arquivo,
|
|
224
|
+
linhas,
|
|
225
|
+
severidade: validacao.severidade,
|
|
226
|
+
bloqueia: validacao.severidade === "erro",
|
|
227
|
+
mensagem: validacao.mensagem,
|
|
228
|
+
limite_aviso_linhas: LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
229
|
+
limite_bloqueio_linhas: LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
if (tipoArquivo === "codigo" && opcoes.exigirCabecalhoCodigoGovernado) {
|
|
233
|
+
const cabecalho = validarCabecalhoCodigoGovernado({
|
|
234
|
+
arquivo_codigo: opcoes.arquivo,
|
|
235
|
+
conteudo: opcoes.conteudo,
|
|
236
|
+
});
|
|
237
|
+
if (!cabecalho.permitido) {
|
|
238
|
+
diagnosticos.push({
|
|
239
|
+
tipo: "codigo_governado_sem_cabecalho",
|
|
240
|
+
arquivo: opcoes.arquivo,
|
|
241
|
+
linhas,
|
|
242
|
+
severidade: "erro",
|
|
243
|
+
bloqueia: true,
|
|
244
|
+
mensagem: cabecalho.mensagem,
|
|
245
|
+
limite_aviso_linhas: LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
246
|
+
limite_bloqueio_linhas: LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return diagnosticos;
|
|
251
|
+
}
|
|
252
|
+
export async function emitirDiagnosticosArquivosOrcamento(opcoes) {
|
|
253
|
+
const baseProjeto = path.resolve(opcoes.baseProjeto ?? process.cwd());
|
|
254
|
+
const diagnosticos = [];
|
|
255
|
+
const vistos = new Set();
|
|
256
|
+
for (const arquivoInformado of opcoes.arquivos) {
|
|
257
|
+
const absoluto = path.isAbsolute(arquivoInformado)
|
|
258
|
+
? arquivoInformado
|
|
259
|
+
: path.resolve(baseProjeto, arquivoInformado);
|
|
260
|
+
const chave = path.resolve(absoluto);
|
|
261
|
+
if (vistos.has(chave)) {
|
|
262
|
+
continue;
|
|
263
|
+
}
|
|
264
|
+
vistos.add(chave);
|
|
265
|
+
try {
|
|
266
|
+
const conteudo = await readFile(absoluto, "utf8");
|
|
267
|
+
const relativo = path.relative(baseProjeto, absoluto).replace(/\\/g, "/") || arquivoInformado.replace(/\\/g, "/");
|
|
268
|
+
diagnosticos.push(...avaliarOrcamentoArquivo({
|
|
269
|
+
arquivo: relativo,
|
|
270
|
+
conteudo,
|
|
271
|
+
exigirCabecalhoCodigoGovernado: opcoes.exigirCabecalhoCodigoGovernado,
|
|
272
|
+
}));
|
|
273
|
+
}
|
|
274
|
+
catch {
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return diagnosticos;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=driftOrcamento.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driftOrcamento.js","sourceRoot":"","sources":["../src/driftOrcamento.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const TSX_IMPORTADOR_CLI: string | undefined;
|
|
2
|
+
export declare const TSX_EXECUTOR_CLI: string | undefined;
|
|
3
|
+
export interface ExecucaoComandoExterno {
|
|
4
|
+
comando: string;
|
|
5
|
+
argumentosBase: string[];
|
|
6
|
+
rotulo: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function comandoDisponivel(comando: string, argumentos?: string[]): boolean;
|
|
9
|
+
export declare function resolverExecucaoPython(): ExecucaoComandoExterno | undefined;
|
|
10
|
+
export declare function resolverExecucaoPytest(): ExecucaoComandoExterno | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// SEMA-GOVERNED
|
|
2
|
+
// M?dulo: sema.produto.orcamento_semantico
|
|
3
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
4
|
+
// Descri??o: detec??o de comandos externos usados por doctor, testes gerados e runners opcionais.
|
|
5
|
+
import { spawnSync } from "node:child_process";
|
|
6
|
+
import { createRequire } from "node:module";
|
|
7
|
+
const requireRuntimeCli = createRequire(import.meta.url);
|
|
8
|
+
function resolverImportadorNodeOpcional(especificador) {
|
|
9
|
+
try {
|
|
10
|
+
return requireRuntimeCli.resolve(especificador);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export const TSX_IMPORTADOR_CLI = resolverImportadorNodeOpcional("tsx");
|
|
17
|
+
export const TSX_EXECUTOR_CLI = resolverImportadorNodeOpcional("tsx/cli");
|
|
18
|
+
const TIMEOUT_CHECAGEM_COMANDO_MS = 5_000;
|
|
19
|
+
export function comandoDisponivel(comando, argumentos = ["--version"]) {
|
|
20
|
+
const execucao = spawnSync(comando, argumentos, {
|
|
21
|
+
stdio: "ignore",
|
|
22
|
+
shell: process.platform === "win32",
|
|
23
|
+
timeout: TIMEOUT_CHECAGEM_COMANDO_MS,
|
|
24
|
+
windowsHide: true,
|
|
25
|
+
});
|
|
26
|
+
return !execucao.error && execucao.signal === null && (execucao.status ?? 1) === 0;
|
|
27
|
+
}
|
|
28
|
+
export function resolverExecucaoPython() {
|
|
29
|
+
if (comandoDisponivel("python")) {
|
|
30
|
+
return { comando: "python", argumentosBase: [], rotulo: "python" };
|
|
31
|
+
}
|
|
32
|
+
if (comandoDisponivel("py")) {
|
|
33
|
+
return { comando: "py", argumentosBase: [], rotulo: "py" };
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
export function resolverExecucaoPytest() {
|
|
38
|
+
if (comandoDisponivel("pytest")) {
|
|
39
|
+
return { comando: "pytest", argumentosBase: [], rotulo: "pytest" };
|
|
40
|
+
}
|
|
41
|
+
const python = resolverExecucaoPython();
|
|
42
|
+
if (python && comandoDisponivel(python.comando, [...python.argumentosBase, "-m", "pytest", "--version"])) {
|
|
43
|
+
return {
|
|
44
|
+
comando: python.comando,
|
|
45
|
+
argumentosBase: [...python.argumentosBase, "-m", "pytest"],
|
|
46
|
+
rotulo: `${python.rotulo} -m pytest`,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=execucoesExternas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execucoesExternas.js","sourceRoot":"","sources":["../src/execucoesExternas.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,2CAA2C;AAC3C,oDAAoD;AACpD,kGAAkG;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEzD,SAAS,8BAA8B,CAAC,aAAqB;IAC3D,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;AAO1E,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,aAAuB,CAAC,WAAW,CAAC;IACrF,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE;QAC9C,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACnC,OAAO,EAAE,2BAA2B;QACpC,WAAW,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrE,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,IAAI,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc,EAAE,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC;YAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,YAAY;SACrC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ResultadoMaterializacaoExemplos {
|
|
2
|
+
sucesso: boolean;
|
|
3
|
+
origem: string | null;
|
|
4
|
+
destino: string;
|
|
5
|
+
criados: string[];
|
|
6
|
+
preservados: string[];
|
|
7
|
+
erro?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function localizarDiretorioExemplosOficiais(): Promise<string | undefined>;
|
|
10
|
+
export declare function materializarExemplosOficiais(baseProjeto?: string, preservarExistentes?: boolean): Promise<ResultadoMaterializacaoExemplos>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// SEMA-GOVERNED: sema.governanca_ia_contexto
|
|
2
|
+
// Descricao: codigo governado pelo Sema; consulte contratos/sema/governanca_ia_contexto.sema antes de editar.
|
|
3
|
+
// SEMA-GOVERNED
|
|
4
|
+
// M?dulo: sema.produto.orcamento_semantico
|
|
5
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
6
|
+
// Descricao: localiza??o e materializa??o dos exemplos oficiais sem depender de caminho local externo.
|
|
7
|
+
import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
8
|
+
import path from "node:path";
|
|
9
|
+
import { fileURLToPath } from "node:url";
|
|
10
|
+
import { caminhoEhDiretorio, caminhoExiste } from "./fsGovernado.js";
|
|
11
|
+
const DIRETORIO_CLI_ATUAL = path.dirname(fileURLToPath(import.meta.url));
|
|
12
|
+
export async function localizarDiretorioExemplosOficiais() {
|
|
13
|
+
const candidatos = [
|
|
14
|
+
path.resolve(DIRETORIO_CLI_ATUAL, "..", "exemplos"),
|
|
15
|
+
path.resolve(DIRETORIO_CLI_ATUAL, "..", "..", "..", "exemplos"),
|
|
16
|
+
];
|
|
17
|
+
for (const candidato of candidatos) {
|
|
18
|
+
if (await caminhoEhDiretorio(candidato)) {
|
|
19
|
+
return candidato;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export async function materializarExemplosOficiais(baseProjeto = process.cwd(), preservarExistentes = true) {
|
|
25
|
+
const origem = await localizarDiretorioExemplosOficiais();
|
|
26
|
+
const destino = path.resolve(baseProjeto, "exemplos");
|
|
27
|
+
if (!origem) {
|
|
28
|
+
return {
|
|
29
|
+
sucesso: false,
|
|
30
|
+
origem: null,
|
|
31
|
+
destino,
|
|
32
|
+
criados: [],
|
|
33
|
+
preservados: [],
|
|
34
|
+
erro: "Diretorio de exemplos oficiais nao foi encontrado no pacote da CLI.",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
await mkdir(destino, { recursive: true });
|
|
38
|
+
const criados = [];
|
|
39
|
+
const preservados = [];
|
|
40
|
+
const entradas = await readdir(origem, { withFileTypes: true });
|
|
41
|
+
for (const entrada of entradas.sort((a, b) => a.name.localeCompare(b.name, "pt-BR"))) {
|
|
42
|
+
if (!entrada.isFile() || !entrada.name.endsWith(".sema")) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const origemArquivo = path.join(origem, entrada.name);
|
|
46
|
+
const destinoArquivo = path.join(destino, entrada.name);
|
|
47
|
+
const jaExiste = await caminhoExiste(destinoArquivo);
|
|
48
|
+
if (jaExiste && preservarExistentes) {
|
|
49
|
+
preservados.push(entrada.name);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
await writeFile(destinoArquivo, await readFile(origemArquivo, "utf8"), "utf8");
|
|
53
|
+
criados.push(entrada.name);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
sucesso: true,
|
|
57
|
+
origem,
|
|
58
|
+
destino,
|
|
59
|
+
criados,
|
|
60
|
+
preservados,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=exemplosOficiais.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exemplosOficiais.js","sourceRoot":"","sources":["../src/exemplosOficiais.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,8GAA8G;AAC9G,gBAAgB;AAChB,2CAA2C;AAC3C,oDAAoD;AACpD,uGAAuG;AAEvG,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAYzE,MAAM,CAAC,KAAK,UAAU,kCAAkC;IACtD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,UAAU,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC;KAChE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAC3B,mBAAmB,GAAG,IAAI;IAE1B,MAAM,MAAM,GAAG,MAAM,kCAAkC,EAAE,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAEtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,OAAO;YACP,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,qEAAqE;SAC5E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACzD,SAAS;QACX,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QAED,MAAM,SAAS,CAAC,cAAc,EAAE,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM;QACN,OAAO;QACP,OAAO;QACP,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function caminhoExiste(caminhoAlvo: string): Promise<boolean>;
|
|
2
|
+
export interface OpcoesEscritaArquivosGovernados {
|
|
3
|
+
artefatoGerado?: boolean;
|
|
4
|
+
inserirCabecalhoGovernado?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function escreverArquivos(base: string, arquivos: Array<{
|
|
7
|
+
caminhoRelativo: string;
|
|
8
|
+
conteudo: string;
|
|
9
|
+
}>, opcoes?: OpcoesEscritaArquivosGovernados): Promise<void>;
|
|
10
|
+
export declare function caminhoEhDiretorio(caminhoAlvo: string): Promise<boolean>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// SEMA-GOVERNED
|
|
2
|
+
// M?dulo: sema.produto.orcamento_semantico
|
|
3
|
+
// Contrato: contratos/sema/orcamento_semantico.sema
|
|
4
|
+
// Descri??o: escrita de arquivos gerados pela CLI com or?amento sem?ntico e cabe?alho governado antes de gravar.
|
|
5
|
+
import { mkdir, stat, writeFile } from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { avaliarOrcamentoArquivo, conteudoTemCabecalhoSemaGoverned, exemploCabecalhoCodigoGovernado, tipoArquivoOrcamento, } from "./driftOrcamento.js";
|
|
8
|
+
export async function caminhoExiste(caminhoAlvo) {
|
|
9
|
+
try {
|
|
10
|
+
await stat(caminhoAlvo);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export async function escreverArquivos(base, arquivos, opcoes = {}) {
|
|
18
|
+
await mkdir(base, { recursive: true });
|
|
19
|
+
for (const arquivo of arquivos) {
|
|
20
|
+
const deveInserirCabecalho = opcoes.inserirCabecalhoGovernado
|
|
21
|
+
&& tipoArquivoOrcamento(arquivo.caminhoRelativo) === "codigo"
|
|
22
|
+
&& !conteudoTemCabecalhoSemaGoverned(arquivo.conteudo);
|
|
23
|
+
const conteudo = deveInserirCabecalho
|
|
24
|
+
? `${exemploCabecalhoCodigoGovernado(arquivo.caminhoRelativo)}\n\n${arquivo.conteudo}`
|
|
25
|
+
: arquivo.conteudo;
|
|
26
|
+
const arquivoOrcamento = opcoes.artefatoGerado
|
|
27
|
+
? path.join("generated", arquivo.caminhoRelativo)
|
|
28
|
+
: arquivo.caminhoRelativo;
|
|
29
|
+
const diagnosticoBloqueante = avaliarOrcamentoArquivo({
|
|
30
|
+
arquivo: arquivoOrcamento,
|
|
31
|
+
conteudo,
|
|
32
|
+
exigirCabecalhoCodigoGovernado: true,
|
|
33
|
+
}).find((diagnostico) => diagnostico.bloqueia);
|
|
34
|
+
if (diagnosticoBloqueante) {
|
|
35
|
+
throw new Error(diagnosticoBloqueante.mensagem);
|
|
36
|
+
}
|
|
37
|
+
const destino = path.join(base, arquivo.caminhoRelativo);
|
|
38
|
+
await mkdir(path.dirname(destino), { recursive: true });
|
|
39
|
+
await writeFile(destino, conteudo, "utf8");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export async function caminhoEhDiretorio(caminhoAlvo) {
|
|
43
|
+
try {
|
|
44
|
+
return (await stat(caminhoAlvo)).isDirectory();
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=fsGovernado.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fsGovernado.js","sourceRoot":"","sources":["../src/fsGovernado.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,2CAA2C;AAC3C,oDAAoD;AACpD,iHAAiH;AAEjH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,QAA8D,EAC9D,SAA0C,EAAE;IAE5C,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,oBAAoB,GAAG,MAAM,CAAC,yBAAyB;eACxD,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,QAAQ;eAC1D,CAAC,gCAAgC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,oBAAoB;YACnC,CAAC,CAAC,GAAG,+BAA+B,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,OAAO,CAAC,QAAQ,EAAE;YACtF,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACrB,MAAM,gBAAgB,GAAG,MAAM,CAAC,cAAc;YAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC;YACjD,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC;QAC5B,MAAM,qBAAqB,GAAG,uBAAuB,CAAC;YACpD,OAAO,EAAE,gBAAgB;YACzB,QAAQ;YACR,8BAA8B,EAAE,IAAI;SACrC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB;IAC1D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { compilarCodigo, type IrModulo } from "@sema/nucleo";
|
|
2
|
+
import { type AlvoGeracao, type FrameworkGeracao } from "@sema/padroes";
|
|
3
|
+
import type { FonteImportacao } from "./importador.js";
|
|
4
|
+
import type { EstruturaSaida } from "./tipos.js";
|
|
5
|
+
import type { TemplateIniciar } from "./initTemplatesBase.js";
|
|
6
|
+
import { carregarConfiguracaoProjeto } from "./projeto.js";
|
|
7
|
+
export interface ResultadoExecucaoTestes {
|
|
8
|
+
codigoSaida: number;
|
|
9
|
+
quantidadeTestes: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ResumoAlvoVerificacao {
|
|
12
|
+
alvo: AlvoGeracao;
|
|
13
|
+
arquivosGerados: number;
|
|
14
|
+
quantidadeTestes: number;
|
|
15
|
+
pastaSaida: string;
|
|
16
|
+
sucesso: boolean;
|
|
17
|
+
framework: FrameworkGeracao;
|
|
18
|
+
estrutura: EstruturaSaida;
|
|
19
|
+
testesExecutados: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ResumoModuloVerificacao {
|
|
22
|
+
modulo: string;
|
|
23
|
+
arquivoFonte: string;
|
|
24
|
+
alvos: ResumoAlvoVerificacao[];
|
|
25
|
+
}
|
|
26
|
+
export interface SaidaTesteCapturada {
|
|
27
|
+
codigoSaida: number;
|
|
28
|
+
quantidadeTestes: number;
|
|
29
|
+
saidaPadrao: string;
|
|
30
|
+
saidaErro: string;
|
|
31
|
+
}
|
|
32
|
+
export declare function validarCompatibilidadeFramework(alvo: AlvoGeracao, framework: FrameworkGeracao): string | undefined;
|
|
33
|
+
export declare function normalizarFonteImportacao(valor: string | undefined): FonteImportacao | undefined;
|
|
34
|
+
export declare function normalizarTemplateIniciar(valor?: string): TemplateIniciar;
|
|
35
|
+
export declare function garantirIr(resultado: ReturnType<typeof compilarCodigo>, caminho: string): IrModulo;
|
|
36
|
+
export declare function gerarArquivosPorAlvo(ir: IrModulo, alvo: AlvoGeracao, framework: FrameworkGeracao): import("@sema/padroes").ArquivoGerado[];
|
|
37
|
+
export declare function aplicarEstruturaSaida(arquivos: Array<{
|
|
38
|
+
caminhoRelativo: string;
|
|
39
|
+
conteudo: string;
|
|
40
|
+
}>, ir: IrModulo, estrutura: EstruturaSaida): Array<{
|
|
41
|
+
caminhoRelativo: string;
|
|
42
|
+
conteudo: string;
|
|
43
|
+
}>;
|
|
44
|
+
export declare function contarCasosDeTesteGerados(alvo: AlvoGeracao, arquivos: Array<{
|
|
45
|
+
caminhoRelativo: string;
|
|
46
|
+
conteudo: string;
|
|
47
|
+
}>): number;
|
|
48
|
+
export declare function executarTestesGerados(alvo: AlvoGeracao, baseSaida: string, arquivos: Array<{
|
|
49
|
+
caminhoRelativo: string;
|
|
50
|
+
conteudo: string;
|
|
51
|
+
}>, silencioso?: boolean): SaidaTesteCapturada;
|
|
52
|
+
export declare function resolverConfiguracaoVerificacaoPorAlvo(alvo: AlvoGeracao, configCarregada?: Awaited<ReturnType<typeof carregarConfiguracaoProjeto>>): {
|
|
53
|
+
framework: FrameworkGeracao;
|
|
54
|
+
estrutura: EstruturaSaida;
|
|
55
|
+
incompatibilidade?: string;
|
|
56
|
+
};
|
|
57
|
+
export declare function executarTestesParaVerificacao(alvo: AlvoGeracao, baseSaida: string, arquivos: Array<{
|
|
58
|
+
caminhoRelativo: string;
|
|
59
|
+
conteudo: string;
|
|
60
|
+
}>, framework: FrameworkGeracao, silencioso?: boolean): {
|
|
61
|
+
execucao: SaidaTesteCapturada;
|
|
62
|
+
testesExecutados: boolean;
|
|
63
|
+
};
|
|
64
|
+
export declare function nomeSubpastaModulo(caminhoArquivo: string): string;
|