@semacode/cli 2.3.1 → 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/README.md +265 -217
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +567 -557
- package/dist/angular-consumer-standalone.js +1 -1
- 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 +26 -24
- package/dist/drift.part01.js +2 -1
- package/dist/drift.part04.d.ts +12 -3
- package/dist/drift.part04.js +88 -17
- package/dist/drift.part05.d.ts +2 -2
- package/dist/drift.part05.js +8 -6
- package/dist/drift.part06.d.ts +2 -2
- package/dist/drift.part06.js +113 -26
- package/dist/drift.part07.d.ts +11 -11
- package/dist/drift.part07.js +261 -265
- package/dist/drift.part08.d.ts +2 -2
- package/dist/drift.part08.js +35 -26
- package/dist/drift.part11.js +238 -56
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +193 -21
- package/dist/drift.part13.d.ts +20 -39
- package/dist/drift.part13.js +601 -647
- 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 +2 -28
- package/dist/driftCatalogo.js +143 -284
- package/dist/driftEscopo.d.ts +1 -3
- package/dist/driftEscopo.js +235 -151
- package/dist/driftEscopoReferencias.d.ts +5 -1
- package/dist/driftEscopoReferencias.js +375 -28
- package/dist/driftOrcamento.d.ts +0 -6
- package/dist/driftOrcamento.js +2 -1
- package/dist/execucoesExternas.js +19 -5
- package/dist/geracaoCore.js +4 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +312 -313
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +20 -28
- package/dist/index.part01.js +16 -237
- package/dist/index.part02.js +36 -22
- package/dist/index.part03.d.ts +24 -2
- package/dist/index.part03.js +83 -19
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +142 -120
- package/dist/index.part05.js +80 -78
- package/dist/index.part06.js +34 -17
- package/dist/index.part07.js +7 -3
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +22 -27
- package/dist/initCommand.js +5 -1
- package/dist/initTemplatesBase.js +81 -79
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +9 -2
- 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/projetoCarregar.js +35 -17
- package/dist/projetoCatalogo.d.ts +1 -0
- package/dist/projetoCatalogo.js +64 -25
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +1 -0
- 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/docs/README.md +34 -30
- package/docs/ai-integration.md +25 -12
- package/docs/ai-onboarding.md +37 -18
- package/docs/ai-workflow.md +9 -7
- package/docs/cli.md +125 -7
- package/docs/commands.md +41 -20
- package/docs/deploy.md +21 -8
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +49 -39
- package/docs/drift-cache.md +108 -0
- package/docs/getting-started.md +43 -18
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +19 -2
- package/docs/rollback.md +15 -8
- package/docs/security.md +25 -3
- package/docs/sistemas-interativos.md +379 -374
- package/docs/testing.md +139 -40
- package/exemplos/pipeline-conteudo/README.md +44 -44
- package/exemplos/pipeline-conteudo/alvos.json +23 -23
- package/exemplos/pipeline-conteudo/definicao.json +136 -136
- package/exemplos/profile_simulation.sema +211 -211
- package/exemplos/sistemas-interativos/README.md +100 -100
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
- package/exemplos/sistemas-interativos/game-2d.json +83 -83
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
- package/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
- package/node_modules/@sema/gerador-php/dist/index.js +113 -113
- 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 +9 -4
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/dist/driftCache.d.ts +0 -49
- package/dist/driftCache.js +0 -311
- package/dist/driftCacheIncremental.d.ts +0 -98
- package/dist/driftCacheIncremental.js +0 -596
- package/dist/driftCatalogoPersistente.d.ts +0 -8
- package/dist/driftCatalogoPersistente.js +0 -77
- 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,27 +195,39 @@ function aplicarReexportacoesTypeScript(simbolos, reexportacoes) {
|
|
|
126
195
|
}
|
|
127
196
|
}
|
|
128
197
|
}
|
|
129
|
-
export async function indexarTypeScript(diretorios,
|
|
130
|
-
|
|
198
|
+
export async function indexarTypeScript(diretorios, adaptadorLeitura) {
|
|
199
|
+
adaptadorLeitura?.emitir?.("extractor.run");
|
|
131
200
|
const simbolos = new Map();
|
|
132
201
|
const rotas = [];
|
|
133
202
|
const recursos = new Map();
|
|
134
203
|
const consumerSurfaces = new Map();
|
|
135
204
|
const sourceFiles = new Map();
|
|
136
|
-
|
|
137
|
-
|
|
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))
|
|
138
208
|
.filter((arquivo) => !arquivo.endsWith(".d.ts")
|
|
139
209
|
&& !arquivo.endsWith(".spec.ts")
|
|
140
|
-
&& !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
|
+
});
|
|
141
219
|
const arquivosRotasAngular = arquivos.filter((arquivo) => arquivoEhRotasAngularConsumer(path.relative(diretorio, arquivo)));
|
|
142
220
|
const arquivosRotasAngularRaiz = new Set(arquivosRotasAngular
|
|
143
221
|
.filter((arquivo) => arquivoEhRotasAngularConsumerRaiz(path.relative(diretorio, arquivo)))
|
|
144
222
|
.map((arquivo) => path.resolve(arquivo)));
|
|
223
|
+
const arquivosCatalogadosRaiz = new Map(arquivos.map((arquivo) => [chaveCaminhoCanonicoDrift(arquivo), arquivo]));
|
|
145
224
|
const usarApenasRotasAngularRaiz = arquivosRotasAngularRaiz.size > 0;
|
|
146
225
|
let encontrouSuperficieAngularPorRotas = false;
|
|
147
226
|
const reexportacoes = [];
|
|
148
227
|
for (const arquivo of arquivos) {
|
|
149
|
-
const codigo =
|
|
228
|
+
const codigo = adaptadorLeitura
|
|
229
|
+
? await adaptadorLeitura.lerTexto(arquivo)
|
|
230
|
+
: await readFile(arquivo, "utf8");
|
|
150
231
|
const origemArquivo = /\.(?:js|jsx|mjs|cjs)$/i.test(arquivo) ? "js" : "ts";
|
|
151
232
|
const scriptKind = arquivo.endsWith(".tsx")
|
|
152
233
|
? ts.ScriptKind.TSX
|
|
@@ -155,7 +236,7 @@ export async function indexarTypeScript(diretorios, catalogo) {
|
|
|
155
236
|
: origemArquivo === "js"
|
|
156
237
|
? ts.ScriptKind.JS
|
|
157
238
|
: ts.ScriptKind.TS;
|
|
158
|
-
|
|
239
|
+
adaptadorLeitura?.emitir?.("ast.create", arquivo);
|
|
159
240
|
const sourceFile = ts.createSourceFile(arquivo, codigo, ts.ScriptTarget.Latest, true, scriptKind);
|
|
160
241
|
sourceFiles.set(path.resolve(arquivo), sourceFile);
|
|
161
242
|
const basesSimbolicas = caminhosSimbolicos(diretorio, arquivo);
|
|
@@ -206,7 +287,7 @@ export async function indexarTypeScript(diretorios, catalogo) {
|
|
|
206
287
|
simbolo: superficieReact.tipoArquivo,
|
|
207
288
|
});
|
|
208
289
|
}
|
|
209
|
-
if (
|
|
290
|
+
if (fonteDeclaraRotasReactVite(relacao, sourceFile)) {
|
|
210
291
|
for (const rotaReact of extrairRotasReactViteConsumer(relacao, codigo)) {
|
|
211
292
|
consumerSurfaces.set(`${rotaReact.rota}:${arquivo}:router`, {
|
|
212
293
|
rota: rotaReact.rota,
|
|
@@ -221,19 +302,23 @@ export async function indexarTypeScript(diretorios, catalogo) {
|
|
|
221
302
|
simbolo: "router",
|
|
222
303
|
});
|
|
223
304
|
if (rotaReact.arquivoComponente) {
|
|
224
|
-
const arquivoComponente =
|
|
225
|
-
|
|
226
|
-
rota:
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
+
}
|
|
230
313
|
}
|
|
231
314
|
}
|
|
232
315
|
}
|
|
233
316
|
if (arquivoEhRotasAngularConsumer(relacao) && (!usarApenasRotasAngularRaiz || arquivosRotasAngularRaiz.has(path.resolve(arquivo)))) {
|
|
234
317
|
encontrouSuperficieAngularPorRotas = true;
|
|
235
|
-
for (const rotaAngular of await extrairRotasAngularConsumer(diretorio, relacao, "/", new Set(),
|
|
236
|
-
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;
|
|
237
322
|
consumerSurfaces.set(`${rotaAngular.rota}:${arquivoRotasAngular}:routes`, {
|
|
238
323
|
rota: rotaAngular.rota,
|
|
239
324
|
arquivo: arquivoRotasAngular,
|
|
@@ -247,12 +332,14 @@ export async function indexarTypeScript(diretorios, catalogo) {
|
|
|
247
332
|
simbolo: rotaAngular.componente ?? "routes",
|
|
248
333
|
});
|
|
249
334
|
if (rotaAngular.arquivoComponente) {
|
|
250
|
-
const arquivoComponente =
|
|
251
|
-
|
|
252
|
-
rota:
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
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
|
+
}
|
|
256
343
|
}
|
|
257
344
|
}
|
|
258
345
|
}
|
|
@@ -332,7 +419,7 @@ export async function indexarTypeScript(diretorios, catalogo) {
|
|
|
332
419
|
}
|
|
333
420
|
}
|
|
334
421
|
if (!encontrouSuperficieAngularPorRotas) {
|
|
335
|
-
for (const superficie of await coletarSuperficiesAngularStandaloneConsumer(diretorio, arquivos,
|
|
422
|
+
for (const superficie of await coletarSuperficiesAngularStandaloneConsumer(diretorio, arquivos, adaptadorLeitura ? (arquivo) => adaptadorLeitura.lerTexto(arquivo) : undefined, sourceFiles)) {
|
|
336
423
|
const arquivoSuperficie = path.join(diretorio, superficie.arquivo);
|
|
337
424
|
consumerSurfaces.set(`${superficie.rota}:${arquivoSuperficie}:${superficie.tipoArquivo}`, {
|
|
338
425
|
rota: superficie.rota,
|
package/dist/drift.part07.d.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import type { EngineBanco } from "@sema/nucleo";
|
|
2
2
|
import { OrigemRecursoDrift, RecursoResolvido, RegistroColunaPersistenciaDrift, RegistroConsumerSurfaceDrift, RotaResolvida, SimboloResolvido } from "./drift.part01.js";
|
|
3
|
-
import type
|
|
4
|
-
export declare function indexarPython(diretorios: string[],
|
|
3
|
+
import { type AdaptadorLeituraCompartilhadaDrift } from "./drift.part04.js";
|
|
4
|
+
export declare function indexarPython(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
5
5
|
simbolos: SimboloResolvido[];
|
|
6
6
|
rotas: RotaResolvida[];
|
|
7
7
|
recursos: RecursoResolvido[];
|
|
8
8
|
}>;
|
|
9
|
-
export declare function indexarDart(diretorios: string[],
|
|
9
|
+
export declare function indexarDart(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
10
10
|
simbolos: SimboloResolvido[];
|
|
11
11
|
rotas: RotaResolvida[];
|
|
12
12
|
recursos: RecursoResolvido[];
|
|
13
13
|
consumerSurfaces: RegistroConsumerSurfaceDrift[];
|
|
14
14
|
}>;
|
|
15
15
|
export declare function registrarSimboloGenerico(simbolos: Map<string, SimboloResolvido>, origem: SimboloResolvido["origem"], basesSimbolicas: string[], arquivo: string, simbolo: string): void;
|
|
16
|
-
export declare function indexarDotnet(diretorios: string[],
|
|
16
|
+
export declare function indexarDotnet(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
17
17
|
simbolos: SimboloResolvido[];
|
|
18
18
|
rotas: RotaResolvida[];
|
|
19
19
|
recursos: RecursoResolvido[];
|
|
20
20
|
}>;
|
|
21
|
-
export declare function indexarJava(diretorios: string[],
|
|
21
|
+
export declare function indexarJava(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
22
22
|
simbolos: SimboloResolvido[];
|
|
23
23
|
rotas: RotaResolvida[];
|
|
24
24
|
recursos: RecursoResolvido[];
|
|
25
25
|
}>;
|
|
26
|
-
export declare function indexarGo(diretorios: string[],
|
|
26
|
+
export declare function indexarGo(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
27
27
|
simbolos: SimboloResolvido[];
|
|
28
28
|
rotas: RotaResolvida[];
|
|
29
29
|
recursos: RecursoResolvido[];
|
|
30
30
|
}>;
|
|
31
|
-
export declare function indexarRust(diretorios: string[],
|
|
31
|
+
export declare function indexarRust(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
32
32
|
simbolos: SimboloResolvido[];
|
|
33
33
|
rotas: RotaResolvida[];
|
|
34
34
|
recursos: RecursoResolvido[];
|
|
35
35
|
}>;
|
|
36
|
-
export declare function indexarCpp(diretorios: string[],
|
|
36
|
+
export declare function indexarCpp(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
37
37
|
simbolos: SimboloResolvido[];
|
|
38
38
|
recursos: RecursoResolvido[];
|
|
39
39
|
}>;
|
|
40
|
-
export declare function indexarPhp(diretorios: string[],
|
|
40
|
+
export declare function indexarPhp(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
41
41
|
simbolos: SimboloResolvido[];
|
|
42
42
|
rotas: RotaResolvida[];
|
|
43
43
|
recursos: RecursoResolvido[];
|
|
44
44
|
}>;
|
|
45
|
-
export declare function indexarLua(diretorios: string[],
|
|
45
|
+
export declare function indexarLua(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
46
46
|
simbolos: SimboloResolvido[];
|
|
47
47
|
recursos: RecursoResolvido[];
|
|
48
48
|
}>;
|
|
49
|
-
export declare function indexarPersistenciaDeclarativa(diretorios: string[],
|
|
49
|
+
export declare function indexarPersistenciaDeclarativa(diretorios: string[], adaptadorLeitura?: AdaptadorLeituraCompartilhadaDrift): Promise<{
|
|
50
50
|
recursos: RecursoResolvido[];
|
|
51
51
|
simbolos: SimboloResolvido[];
|
|
52
52
|
}>;
|