@semacode/cli 2.3.0 → 3.0.0
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/LICENSE +39 -39
- package/README.md +112 -41
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +102 -91
- package/dist/angular-consumer-standalone.d.ts +3 -1
- package/dist/angular-consumer-standalone.js +12 -8
- package/dist/bin.d.ts +6 -0
- package/dist/bin.js +130 -0
- package/dist/cliArgs.js +4 -4
- package/dist/cliControlError.d.ts +12 -0
- package/dist/cliControlError.js +47 -0
- package/dist/cliGrammar.d.ts +11 -0
- package/dist/cliGrammar.js +551 -0
- package/dist/cliHelp.d.ts +13 -0
- package/dist/cliHelp.js +19 -0
- package/dist/cliHelpTexto.d.ts +3 -0
- package/dist/cliHelpTexto.js +168 -0
- package/dist/cliRuntime.d.ts +2 -0
- package/dist/cliRuntime.js +31 -0
- package/dist/comandos.js +9 -22
- package/dist/contexto.js +5 -5
- package/dist/dev/index.d.ts +1 -0
- package/dist/dev/index.js +51 -9
- package/dist/discovery/catalog.js +3 -3
- package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
- package/dist/distribuicao/filesystemGlobal.js +701 -0
- package/dist/distribuicao/index.d.ts +7 -0
- package/dist/distribuicao/index.js +227 -0
- package/dist/distribuicao/launcherGlobal.d.ts +53 -0
- package/dist/distribuicao/launcherGlobal.js +643 -0
- package/dist/distribuicao/launcherWindows.d.ts +28 -0
- package/dist/distribuicao/launcherWindows.js +326 -0
- package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
- package/dist/distribuicao/lockContextGlobal.js +17 -0
- package/dist/distribuicao/lockGlobal.d.ts +6 -0
- package/dist/distribuicao/lockGlobal.js +520 -0
- package/dist/distribuicao/skillGlobal.d.ts +48 -0
- package/dist/distribuicao/skillGlobal.js +652 -0
- package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
- package/dist/distribuicao/skillIntentPolicy.js +115 -0
- package/dist/distribuicao/tipos.d.ts +50 -0
- package/dist/distribuicao/tipos.js +10 -0
- package/dist/distribuicao/versaoSemantica.d.ts +3 -0
- package/dist/distribuicao/versaoSemantica.js +62 -0
- package/dist/drift.part01.d.ts +34 -2
- package/dist/drift.part01.js +3 -0
- package/dist/drift.part04.d.ts +12 -2
- package/dist/drift.part04.js +89 -15
- package/dist/drift.part05.d.ts +2 -1
- package/dist/drift.part05.js +9 -6
- package/dist/drift.part06.d.ts +2 -1
- package/dist/drift.part06.js +115 -24
- package/dist/drift.part07.d.ts +11 -10
- package/dist/drift.part07.js +261 -255
- package/dist/drift.part08.d.ts +2 -1
- package/dist/drift.part08.js +35 -25
- package/dist/drift.part11.js +279 -32
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +196 -11
- package/dist/drift.part13.d.ts +18 -2
- package/dist/drift.part13.js +654 -76
- package/dist/drift.part14.js +21 -7
- package/dist/driftCacheCas.d.ts +43 -0
- package/dist/driftCacheCas.js +351 -0
- package/dist/driftCacheFilesystem.d.ts +64 -0
- package/dist/driftCacheFilesystem.js +313 -0
- package/dist/driftCacheModes.d.ts +38 -0
- package/dist/driftCacheModes.js +147 -0
- package/dist/driftCacheStore.d.ts +80 -0
- package/dist/driftCacheStore.js +603 -0
- package/dist/driftCatalogo.d.ts +65 -0
- package/dist/driftCatalogo.js +516 -0
- package/dist/driftEscopo.d.ts +21 -0
- package/dist/driftEscopo.js +647 -0
- package/dist/driftEscopoReferencias.d.ts +8 -0
- package/dist/driftEscopoReferencias.js +612 -0
- package/dist/driftOrcamento.d.ts +6 -0
- package/dist/driftOrcamento.js +20 -3
- package/dist/geracaoCore.js +4 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +13 -14
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +21 -14
- package/dist/index.part01.js +20 -165
- package/dist/index.part02.js +57 -43
- package/dist/index.part03.d.ts +23 -1
- package/dist/index.part03.js +83 -8
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +48 -14
- package/dist/index.part05.d.ts +1 -1
- package/dist/index.part05.js +109 -30
- package/dist/index.part06.js +34 -16
- package/dist/index.part07.js +31 -27
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +23 -28
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initCommand.js +5 -1
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +7 -5
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +4 -32
- package/dist/pipelineConteudo/help.d.ts +2 -0
- package/dist/pipelineConteudo/help.js +33 -0
- package/dist/profileAuthorCommand.js +3 -7
- package/dist/profileCommand.js +3 -7
- package/dist/projeto.d.ts +1 -1
- package/dist/projetoCarregar.d.ts +2 -2
- package/dist/projetoCarregar.js +69 -28
- package/dist/projetoCatalogo.d.ts +8 -0
- package/dist/projetoCatalogo.js +164 -0
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +15 -5
- package/dist/resultadoCli.d.ts +20 -0
- package/dist/resultadoCli.js +57 -0
- package/dist/saidaCli.d.ts +35 -0
- package/dist/saidaCli.js +118 -0
- package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
- package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
- package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
- package/dist/sistemasInterativos/engineObservation.js +438 -0
- package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
- package/dist/sistemasInterativos/jobOrchestration.js +204 -0
- package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
- package/dist/sistemasInterativos/operationPrimitives.js +194 -0
- package/dist/sistemasInterativos/operations.d.ts +4 -39
- package/dist/sistemasInterativos/operations.js +5 -1164
- package/dist/skillCommand.d.ts +5 -0
- package/dist/skillCommand.js +88 -0
- package/dist/sync/index.js +35 -35
- package/docs/README.md +11 -7
- package/docs/ai-integration.md +18 -11
- package/docs/ai-onboarding.md +81 -62
- package/docs/ai-workflow.md +10 -4
- package/docs/auth.md +26 -26
- package/docs/cli.md +197 -79
- package/docs/commands.md +30 -6
- package/docs/database.md +15 -15
- package/docs/deploy.md +54 -41
- package/docs/documentation.md +11 -10
- package/docs/drift-cache.md +108 -0
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +82 -57
- package/docs/i18n.md +15 -15
- package/docs/repositories.md +60 -43
- package/docs/rollback.md +38 -31
- package/docs/security.md +54 -32
- package/docs/sistemas-interativos.md +27 -27
- package/docs/support.md +8 -8
- package/docs/testing.md +123 -17
- package/docs/vocabulary.md +29 -29
- 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 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- 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_conversas.sema +165 -165
- 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/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
- package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
- package/package.json +7 -2
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
- package/node_modules/@sema/padroes/dist/index.js.map +0 -1
package/dist/drift.part06.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.
|
|
2
|
-
// Descricao:
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.governanca_ia.drift
|
|
2
|
+
// Descricao: indexa TypeScript com catalogo e AST compartilhados pelo drift.
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import ts from "typescript";
|
|
6
6
|
import { coletarSuperficiesAngularStandaloneConsumer } from "./angular-consumer-standalone.js";
|
|
7
7
|
import { extrairRotasTypeScriptHttp } from "./typescript-http.js";
|
|
8
8
|
import { arquivoEhRotasAngularConsumer, arquivoEhRotasAngularConsumerRaiz, arquivoEhRotasReactViteConsumer, arquivoEhSuperficieNextJsConsumer, arquivoEhSuperficieReactViteConsumer, extrairRotasAngularConsumer, extrairRotasReactViteConsumer, inferirRotaNextJsConsumer, inferirRotaReactViteConsumer, normalizarRelacaoConsumer, registrarAtribuicaoPrototypeTypeScript, registrarMetodosObjectAssignTypeScript } from "./drift.part05.js";
|
|
9
|
-
import { caminhosSimbolicos, desembrulharExpressaoTypeScript, extrairNomeClassePrototypeTypeScript, extrairTextoLiteral, juntarCaminhoHttp, lerDecorator, listarArquivosRecursivos, registrarSimboloTypeScript } from "./drift.part04.js";
|
|
9
|
+
import { caminhosSimbolicos, chaveCaminhoCanonicoDrift, deduplicarRaizesSobrepostasDrift, desembrulharExpressaoTypeScript, extrairNomeClassePrototypeTypeScript, extrairTextoLiteral, juntarCaminhoHttp, lerDecorator, listarArquivosRecursivos, registrarSimboloTypeScript, } from "./drift.part04.js";
|
|
10
10
|
import { extrairRecursosPersistenciaCodigoVivo, registrarRecursoDrift } from "./drift.part03.js";
|
|
11
11
|
export function inferirConsumerFrameworkPrincipal(fontesLegado, consumerSurfaces, consumerBridges) {
|
|
12
12
|
const arquivos = [
|
|
@@ -38,6 +38,75 @@ export function inferirConsumerFrameworkPrincipal(fontesLegado, consumerSurfaces
|
|
|
38
38
|
}
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
+
function fonteDeclaraRotasReactVite(relacaoArquivo, sourceFile) {
|
|
42
|
+
if (arquivoEhRotasReactViteConsumer(relacaoArquivo)) {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
45
|
+
let encontrouDeclaracao = false;
|
|
46
|
+
const nomeExpressao = (expressao) => {
|
|
47
|
+
if (ts.isIdentifier(expressao))
|
|
48
|
+
return expressao.text;
|
|
49
|
+
if (ts.isPropertyAccessExpression(expressao))
|
|
50
|
+
return expressao.name.text;
|
|
51
|
+
return undefined;
|
|
52
|
+
};
|
|
53
|
+
const nomePropriedade = (elemento) => {
|
|
54
|
+
if (!("name" in elemento) || !elemento.name)
|
|
55
|
+
return undefined;
|
|
56
|
+
if (ts.isIdentifier(elemento.name) || ts.isStringLiteralLike(elemento.name)) {
|
|
57
|
+
return elemento.name.text;
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
};
|
|
61
|
+
const visitar = (node) => {
|
|
62
|
+
if (encontrouDeclaracao)
|
|
63
|
+
return;
|
|
64
|
+
if (ts.isCallExpression(node)
|
|
65
|
+
&& ["createBrowserRouter", "createRoutesFromElements", "useRoutes"]
|
|
66
|
+
.includes(nomeExpressao(node.expression) ?? "")) {
|
|
67
|
+
encontrouDeclaracao = true;
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if ((ts.isJsxOpeningElement(node) || ts.isJsxSelfClosingElement(node))
|
|
71
|
+
&& ["Route", "Routes", "RouterProvider"].includes(nomeExpressao(node.tagName) ?? "")) {
|
|
72
|
+
encontrouDeclaracao = true;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (ts.isObjectLiteralExpression(node)) {
|
|
76
|
+
const propriedades = new Set(node.properties.map(nomePropriedade).filter(Boolean));
|
|
77
|
+
if ((propriedades.has("path") || propriedades.has("index"))
|
|
78
|
+
&& (propriedades.has("element") || propriedades.has("Component"))) {
|
|
79
|
+
encontrouDeclaracao = true;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
ts.forEachChild(node, visitar);
|
|
84
|
+
};
|
|
85
|
+
visitar(sourceFile);
|
|
86
|
+
return encontrouDeclaracao;
|
|
87
|
+
}
|
|
88
|
+
function resolverArquivoConsumerCatalogado(diretorio, caminhoRelativo, arquivosCatalogados) {
|
|
89
|
+
const normalizado = caminhoRelativo.replace(/\\/g, "/");
|
|
90
|
+
const semExtensao = normalizado.replace(/\.(?:ts|tsx|js|jsx)$/i, "");
|
|
91
|
+
const candidatos = [
|
|
92
|
+
normalizado,
|
|
93
|
+
`${semExtensao}.ts`,
|
|
94
|
+
`${semExtensao}.tsx`,
|
|
95
|
+
`${semExtensao}.js`,
|
|
96
|
+
`${semExtensao}.jsx`,
|
|
97
|
+
`${semExtensao}/index.ts`,
|
|
98
|
+
`${semExtensao}/index.tsx`,
|
|
99
|
+
`${semExtensao}/index.js`,
|
|
100
|
+
`${semExtensao}/index.jsx`,
|
|
101
|
+
];
|
|
102
|
+
for (const candidato of candidatos) {
|
|
103
|
+
const absoluto = path.resolve(diretorio, ...candidato.split("/"));
|
|
104
|
+
const catalogado = arquivosCatalogados.get(chaveCaminhoCanonicoDrift(absoluto));
|
|
105
|
+
if (catalogado)
|
|
106
|
+
return catalogado;
|
|
107
|
+
}
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
41
110
|
export function extrairColecoesFirebase(arquivo, codigo) {
|
|
42
111
|
const recursos = new Map();
|
|
43
112
|
const registrar = (nome) => {
|
|
@@ -126,25 +195,39 @@ function aplicarReexportacoesTypeScript(simbolos, reexportacoes) {
|
|
|
126
195
|
}
|
|
127
196
|
}
|
|
128
197
|
}
|
|
129
|
-
export async function indexarTypeScript(diretorios) {
|
|
198
|
+
export async function indexarTypeScript(diretorios, adaptadorLeitura) {
|
|
199
|
+
adaptadorLeitura?.emitir?.("extractor.run");
|
|
130
200
|
const simbolos = new Map();
|
|
131
201
|
const rotas = [];
|
|
132
202
|
const recursos = new Map();
|
|
133
203
|
const consumerSurfaces = new Map();
|
|
134
|
-
|
|
135
|
-
|
|
204
|
+
const sourceFiles = new Map();
|
|
205
|
+
const arquivosProcessados = new Set();
|
|
206
|
+
for (const diretorio of deduplicarRaizesSobrepostasDrift(diretorios)) {
|
|
207
|
+
const arquivos = (await listarArquivosRecursivos(diretorio, [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"], adaptadorLeitura))
|
|
136
208
|
.filter((arquivo) => !arquivo.endsWith(".d.ts")
|
|
137
209
|
&& !arquivo.endsWith(".spec.ts")
|
|
138
|
-
&& !arquivo.endsWith(".test.ts"))
|
|
210
|
+
&& !arquivo.endsWith(".test.ts"))
|
|
211
|
+
.filter((arquivo) => {
|
|
212
|
+
const chave = chaveCaminhoCanonicoDrift(arquivo);
|
|
213
|
+
if (arquivosProcessados.has(chave)) {
|
|
214
|
+
return false;
|
|
215
|
+
}
|
|
216
|
+
arquivosProcessados.add(chave);
|
|
217
|
+
return true;
|
|
218
|
+
});
|
|
139
219
|
const arquivosRotasAngular = arquivos.filter((arquivo) => arquivoEhRotasAngularConsumer(path.relative(diretorio, arquivo)));
|
|
140
220
|
const arquivosRotasAngularRaiz = new Set(arquivosRotasAngular
|
|
141
221
|
.filter((arquivo) => arquivoEhRotasAngularConsumerRaiz(path.relative(diretorio, arquivo)))
|
|
142
222
|
.map((arquivo) => path.resolve(arquivo)));
|
|
223
|
+
const arquivosCatalogadosRaiz = new Map(arquivos.map((arquivo) => [chaveCaminhoCanonicoDrift(arquivo), arquivo]));
|
|
143
224
|
const usarApenasRotasAngularRaiz = arquivosRotasAngularRaiz.size > 0;
|
|
144
225
|
let encontrouSuperficieAngularPorRotas = false;
|
|
145
226
|
const reexportacoes = [];
|
|
146
227
|
for (const arquivo of arquivos) {
|
|
147
|
-
const codigo =
|
|
228
|
+
const codigo = adaptadorLeitura
|
|
229
|
+
? await adaptadorLeitura.lerTexto(arquivo)
|
|
230
|
+
: await readFile(arquivo, "utf8");
|
|
148
231
|
const origemArquivo = /\.(?:js|jsx|mjs|cjs)$/i.test(arquivo) ? "js" : "ts";
|
|
149
232
|
const scriptKind = arquivo.endsWith(".tsx")
|
|
150
233
|
? ts.ScriptKind.TSX
|
|
@@ -153,7 +236,9 @@ export async function indexarTypeScript(diretorios) {
|
|
|
153
236
|
: origemArquivo === "js"
|
|
154
237
|
? ts.ScriptKind.JS
|
|
155
238
|
: ts.ScriptKind.TS;
|
|
239
|
+
adaptadorLeitura?.emitir?.("ast.create", arquivo);
|
|
156
240
|
const sourceFile = ts.createSourceFile(arquivo, codigo, ts.ScriptTarget.Latest, true, scriptKind);
|
|
241
|
+
sourceFiles.set(path.resolve(arquivo), sourceFile);
|
|
157
242
|
const basesSimbolicas = caminhosSimbolicos(diretorio, arquivo);
|
|
158
243
|
const relacao = path.relative(diretorio, arquivo);
|
|
159
244
|
for (const recurso of extrairRecursosPersistenciaCodigoVivo(arquivo, codigo)) {
|
|
@@ -202,7 +287,7 @@ export async function indexarTypeScript(diretorios) {
|
|
|
202
287
|
simbolo: superficieReact.tipoArquivo,
|
|
203
288
|
});
|
|
204
289
|
}
|
|
205
|
-
if (
|
|
290
|
+
if (fonteDeclaraRotasReactVite(relacao, sourceFile)) {
|
|
206
291
|
for (const rotaReact of extrairRotasReactViteConsumer(relacao, codigo)) {
|
|
207
292
|
consumerSurfaces.set(`${rotaReact.rota}:${arquivo}:router`, {
|
|
208
293
|
rota: rotaReact.rota,
|
|
@@ -217,19 +302,23 @@ export async function indexarTypeScript(diretorios) {
|
|
|
217
302
|
simbolo: "router",
|
|
218
303
|
});
|
|
219
304
|
if (rotaReact.arquivoComponente) {
|
|
220
|
-
const arquivoComponente =
|
|
221
|
-
|
|
222
|
-
rota:
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
305
|
+
const arquivoComponente = resolverArquivoConsumerCatalogado(diretorio, rotaReact.arquivoComponente, arquivosCatalogadosRaiz);
|
|
306
|
+
if (arquivoComponente) {
|
|
307
|
+
consumerSurfaces.set(`${rotaReact.rota}:${arquivoComponente}:page`, {
|
|
308
|
+
rota: rotaReact.rota,
|
|
309
|
+
arquivo: arquivoComponente,
|
|
310
|
+
tipoArquivo: "page",
|
|
311
|
+
});
|
|
312
|
+
}
|
|
226
313
|
}
|
|
227
314
|
}
|
|
228
315
|
}
|
|
229
316
|
if (arquivoEhRotasAngularConsumer(relacao) && (!usarApenasRotasAngularRaiz || arquivosRotasAngularRaiz.has(path.resolve(arquivo)))) {
|
|
230
317
|
encontrouSuperficieAngularPorRotas = true;
|
|
231
|
-
for (const rotaAngular of await extrairRotasAngularConsumer(diretorio, relacao)) {
|
|
232
|
-
const arquivoRotasAngular =
|
|
318
|
+
for (const rotaAngular of await extrairRotasAngularConsumer(diretorio, relacao, "/", new Set(), adaptadorLeitura)) {
|
|
319
|
+
const arquivoRotasAngular = resolverArquivoConsumerCatalogado(diretorio, rotaAngular.arquivoRotas, arquivosCatalogadosRaiz);
|
|
320
|
+
if (!arquivoRotasAngular)
|
|
321
|
+
continue;
|
|
233
322
|
consumerSurfaces.set(`${rotaAngular.rota}:${arquivoRotasAngular}:routes`, {
|
|
234
323
|
rota: rotaAngular.rota,
|
|
235
324
|
arquivo: arquivoRotasAngular,
|
|
@@ -243,12 +332,14 @@ export async function indexarTypeScript(diretorios) {
|
|
|
243
332
|
simbolo: rotaAngular.componente ?? "routes",
|
|
244
333
|
});
|
|
245
334
|
if (rotaAngular.arquivoComponente) {
|
|
246
|
-
const arquivoComponente =
|
|
247
|
-
|
|
248
|
-
rota:
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
335
|
+
const arquivoComponente = resolverArquivoConsumerCatalogado(diretorio, rotaAngular.arquivoComponente, arquivosCatalogadosRaiz);
|
|
336
|
+
if (arquivoComponente) {
|
|
337
|
+
consumerSurfaces.set(`${rotaAngular.rota}:${arquivoComponente}:component`, {
|
|
338
|
+
rota: rotaAngular.rota,
|
|
339
|
+
arquivo: arquivoComponente,
|
|
340
|
+
tipoArquivo: "component",
|
|
341
|
+
});
|
|
342
|
+
}
|
|
252
343
|
}
|
|
253
344
|
}
|
|
254
345
|
}
|
|
@@ -328,7 +419,7 @@ export async function indexarTypeScript(diretorios) {
|
|
|
328
419
|
}
|
|
329
420
|
}
|
|
330
421
|
if (!encontrouSuperficieAngularPorRotas) {
|
|
331
|
-
for (const superficie of await coletarSuperficiesAngularStandaloneConsumer(diretorio, arquivos)) {
|
|
422
|
+
for (const superficie of await coletarSuperficiesAngularStandaloneConsumer(diretorio, arquivos, adaptadorLeitura ? (arquivo) => adaptadorLeitura.lerTexto(arquivo) : undefined, sourceFiles)) {
|
|
332
423
|
const arquivoSuperficie = path.join(diretorio, superficie.arquivo);
|
|
333
424
|
consumerSurfaces.set(`${superficie.rota}:${arquivoSuperficie}:${superficie.tipoArquivo}`, {
|
|
334
425
|
rota: superficie.rota,
|
package/dist/drift.part07.d.ts
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
1
1
|
import type { EngineBanco } from "@sema/nucleo";
|
|
2
2
|
import { OrigemRecursoDrift, RecursoResolvido, RegistroColunaPersistenciaDrift, RegistroConsumerSurfaceDrift, RotaResolvida, SimboloResolvido } from "./drift.part01.js";
|
|
3
|
-
|
|
3
|
+
import { type AdaptadorLeituraCompartilhadaDrift } from "./drift.part04.js";
|
|
4
|
+
export declare function indexarPython(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
4
5
|
simbolos: SimboloResolvido[];
|
|
5
6
|
rotas: RotaResolvida[];
|
|
6
7
|
recursos: RecursoResolvido[];
|
|
7
8
|
}>;
|
|
8
|
-
export declare function indexarDart(diretorios: string[]): Promise<{
|
|
9
|
+
export declare function indexarDart(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
9
10
|
simbolos: SimboloResolvido[];
|
|
10
11
|
rotas: RotaResolvida[];
|
|
11
12
|
recursos: RecursoResolvido[];
|
|
12
13
|
consumerSurfaces: RegistroConsumerSurfaceDrift[];
|
|
13
14
|
}>;
|
|
14
15
|
export declare function registrarSimboloGenerico(simbolos: Map<string, SimboloResolvido>, origem: SimboloResolvido["origem"], basesSimbolicas: string[], arquivo: string, simbolo: string): void;
|
|
15
|
-
export declare function indexarDotnet(diretorios: string[]): Promise<{
|
|
16
|
+
export declare function indexarDotnet(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
16
17
|
simbolos: SimboloResolvido[];
|
|
17
18
|
rotas: RotaResolvida[];
|
|
18
19
|
recursos: RecursoResolvido[];
|
|
19
20
|
}>;
|
|
20
|
-
export declare function indexarJava(diretorios: string[]): Promise<{
|
|
21
|
+
export declare function indexarJava(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
21
22
|
simbolos: SimboloResolvido[];
|
|
22
23
|
rotas: RotaResolvida[];
|
|
23
24
|
recursos: RecursoResolvido[];
|
|
24
25
|
}>;
|
|
25
|
-
export declare function indexarGo(diretorios: string[]): Promise<{
|
|
26
|
+
export declare function indexarGo(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
26
27
|
simbolos: SimboloResolvido[];
|
|
27
28
|
rotas: RotaResolvida[];
|
|
28
29
|
recursos: RecursoResolvido[];
|
|
29
30
|
}>;
|
|
30
|
-
export declare function indexarRust(diretorios: string[]): Promise<{
|
|
31
|
+
export declare function indexarRust(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
31
32
|
simbolos: SimboloResolvido[];
|
|
32
33
|
rotas: RotaResolvida[];
|
|
33
34
|
recursos: RecursoResolvido[];
|
|
34
35
|
}>;
|
|
35
|
-
export declare function indexarCpp(diretorios: string[]): Promise<{
|
|
36
|
+
export declare function indexarCpp(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
36
37
|
simbolos: SimboloResolvido[];
|
|
37
38
|
recursos: RecursoResolvido[];
|
|
38
39
|
}>;
|
|
39
|
-
export declare function indexarPhp(diretorios: string[]): Promise<{
|
|
40
|
+
export declare function indexarPhp(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
40
41
|
simbolos: SimboloResolvido[];
|
|
41
42
|
rotas: RotaResolvida[];
|
|
42
43
|
recursos: RecursoResolvido[];
|
|
43
44
|
}>;
|
|
44
|
-
export declare function indexarLua(diretorios: string[]): Promise<{
|
|
45
|
+
export declare function indexarLua(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
45
46
|
simbolos: SimboloResolvido[];
|
|
46
47
|
recursos: RecursoResolvido[];
|
|
47
48
|
}>;
|
|
48
|
-
export declare function indexarPersistenciaDeclarativa(diretorios: string[]): Promise<{
|
|
49
|
+
export declare function indexarPersistenciaDeclarativa(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
49
50
|
recursos: RecursoResolvido[];
|
|
50
51
|
simbolos: SimboloResolvido[];
|
|
51
52
|
}>;
|