@designliquido/delegua-entidades 0.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.
Files changed (206) hide show
  1. package/README.md +96 -0
  2. package/fontes/analisador-dicas.d.ts +49 -0
  3. package/fontes/analisador-dicas.d.ts.map +1 -0
  4. package/fontes/analisador-dicas.js +145 -0
  5. package/fontes/analisador-dicas.js.map +1 -0
  6. package/fontes/cache-consultas.d.ts +39 -0
  7. package/fontes/cache-consultas.d.ts.map +1 -0
  8. package/fontes/cache-consultas.js +98 -0
  9. package/fontes/cache-consultas.js.map +1 -0
  10. package/fontes/carregador-lotes.d.ts +64 -0
  11. package/fontes/carregador-lotes.d.ts.map +1 -0
  12. package/fontes/carregador-lotes.js +148 -0
  13. package/fontes/carregador-lotes.js.map +1 -0
  14. package/fontes/carregador-preguicoso.d.ts +34 -0
  15. package/fontes/carregador-preguicoso.d.ts.map +1 -0
  16. package/fontes/carregador-preguicoso.js +157 -0
  17. package/fontes/carregador-preguicoso.js.map +1 -0
  18. package/fontes/colecao.d.ts +74 -0
  19. package/fontes/colecao.d.ts.map +1 -0
  20. package/fontes/colecao.js +374 -0
  21. package/fontes/colecao.js.map +1 -0
  22. package/fontes/construtor-consulta.d.ts +129 -0
  23. package/fontes/construtor-consulta.d.ts.map +1 -0
  24. package/fontes/construtor-consulta.js +446 -0
  25. package/fontes/construtor-consulta.js.map +1 -0
  26. package/fontes/contexto-entidades.d.ts +119 -0
  27. package/fontes/contexto-entidades.d.ts.map +1 -0
  28. package/fontes/contexto-entidades.js +329 -0
  29. package/fontes/contexto-entidades.js.map +1 -0
  30. package/fontes/detector-n-mais-um.d.ts +87 -0
  31. package/fontes/detector-n-mais-um.d.ts.map +1 -0
  32. package/fontes/detector-n-mais-um.js +225 -0
  33. package/fontes/detector-n-mais-um.js.map +1 -0
  34. package/fontes/entidade.d.ts +82 -0
  35. package/fontes/entidade.d.ts.map +1 -0
  36. package/fontes/entidade.js +467 -0
  37. package/fontes/entidade.js.map +1 -0
  38. package/fontes/erros/erro-concorrencia.d.ts +11 -0
  39. package/fontes/erros/erro-concorrencia.d.ts.map +1 -0
  40. package/fontes/erros/erro-concorrencia.js +18 -0
  41. package/fontes/erros/erro-concorrencia.js.map +1 -0
  42. package/fontes/erros/erro-tabela-nao-encontrada.d.ts +4 -0
  43. package/fontes/erros/erro-tabela-nao-encontrada.d.ts.map +1 -0
  44. package/fontes/erros/erro-tabela-nao-encontrada.js +11 -0
  45. package/fontes/erros/erro-tabela-nao-encontrada.js.map +1 -0
  46. package/fontes/erros/erro-validacao.d.ts +9 -0
  47. package/fontes/erros/erro-validacao.d.ts.map +1 -0
  48. package/fontes/erros/erro-validacao.js +13 -0
  49. package/fontes/erros/erro-validacao.js.map +1 -0
  50. package/fontes/erros/index.d.ts +4 -0
  51. package/fontes/erros/index.d.ts.map +1 -0
  52. package/fontes/erros/index.js +20 -0
  53. package/fontes/erros/index.js.map +1 -0
  54. package/fontes/gerenciador-cache.d.ts +87 -0
  55. package/fontes/gerenciador-cache.d.ts.map +1 -0
  56. package/fontes/gerenciador-cache.js +147 -0
  57. package/fontes/gerenciador-cache.js.map +1 -0
  58. package/fontes/ilc/gerador-definicoes.d.ts +13 -0
  59. package/fontes/ilc/gerador-definicoes.d.ts.map +1 -0
  60. package/fontes/ilc/gerador-definicoes.js +96 -0
  61. package/fontes/ilc/gerador-definicoes.js.map +1 -0
  62. package/fontes/ilc/gerador-entidades.d.ts +10 -0
  63. package/fontes/ilc/gerador-entidades.d.ts.map +1 -0
  64. package/fontes/ilc/gerador-entidades.js +318 -0
  65. package/fontes/ilc/gerador-entidades.js.map +1 -0
  66. package/fontes/ilc/leitor-configuracao.d.ts +32 -0
  67. package/fontes/ilc/leitor-configuracao.d.ts.map +1 -0
  68. package/fontes/ilc/leitor-configuracao.js +124 -0
  69. package/fontes/ilc/leitor-configuracao.js.map +1 -0
  70. package/fontes/ilc/migracoes.d.ts +3 -0
  71. package/fontes/ilc/migracoes.d.ts.map +1 -0
  72. package/fontes/ilc/migracoes.js +215 -0
  73. package/fontes/ilc/migracoes.js.map +1 -0
  74. package/fontes/ilc/semeadura.d.ts +2 -0
  75. package/fontes/ilc/semeadura.d.ts.map +1 -0
  76. package/fontes/ilc/semeadura.js +50 -0
  77. package/fontes/ilc/semeadura.js.map +1 -0
  78. package/fontes/indicadores-performance/executor-analise-performance.d.ts +80 -0
  79. package/fontes/indicadores-performance/executor-analise-performance.d.ts.map +1 -0
  80. package/fontes/indicadores-performance/executor-analise-performance.js +212 -0
  81. package/fontes/indicadores-performance/executor-analise-performance.js.map +1 -0
  82. package/fontes/indicadores-performance/index.d.ts +26 -0
  83. package/fontes/indicadores-performance/index.d.ts.map +1 -0
  84. package/fontes/indicadores-performance/index.js +199 -0
  85. package/fontes/indicadores-performance/index.js.map +1 -0
  86. package/fontes/interfaces-tipos/analise-n1-interface.d.ts +13 -0
  87. package/fontes/interfaces-tipos/analise-n1-interface.d.ts.map +1 -0
  88. package/fontes/interfaces-tipos/analise-n1-interface.js +3 -0
  89. package/fontes/interfaces-tipos/analise-n1-interface.js.map +1 -0
  90. package/fontes/interfaces-tipos/atributo-interface.d.ts +30 -0
  91. package/fontes/interfaces-tipos/atributo-interface.d.ts.map +1 -0
  92. package/fontes/interfaces-tipos/atributo-interface.js +3 -0
  93. package/fontes/interfaces-tipos/atributo-interface.js.map +1 -0
  94. package/fontes/interfaces-tipos/coluna-computada-interface.d.ts +16 -0
  95. package/fontes/interfaces-tipos/coluna-computada-interface.d.ts.map +1 -0
  96. package/fontes/interfaces-tipos/coluna-computada-interface.js +3 -0
  97. package/fontes/interfaces-tipos/coluna-computada-interface.js.map +1 -0
  98. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts +48 -0
  99. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts.map +1 -0
  100. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js +3 -0
  101. package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js.map +1 -0
  102. package/fontes/interfaces-tipos/entidade-interface.d.ts +37 -0
  103. package/fontes/interfaces-tipos/entidade-interface.d.ts.map +1 -0
  104. package/fontes/interfaces-tipos/entidade-interface.js +3 -0
  105. package/fontes/interfaces-tipos/entidade-interface.js.map +1 -0
  106. package/fontes/interfaces-tipos/ganchos.d.ts +12 -0
  107. package/fontes/interfaces-tipos/ganchos.d.ts.map +1 -0
  108. package/fontes/interfaces-tipos/ganchos.js +3 -0
  109. package/fontes/interfaces-tipos/ganchos.js.map +1 -0
  110. package/fontes/interfaces-tipos/index.d.ts +17 -0
  111. package/fontes/interfaces-tipos/index.d.ts.map +1 -0
  112. package/fontes/interfaces-tipos/index.js +33 -0
  113. package/fontes/interfaces-tipos/index.js.map +1 -0
  114. package/fontes/interfaces-tipos/indice-interface.d.ts +16 -0
  115. package/fontes/interfaces-tipos/indice-interface.d.ts.map +1 -0
  116. package/fontes/interfaces-tipos/indice-interface.js +3 -0
  117. package/fontes/interfaces-tipos/indice-interface.js.map +1 -0
  118. package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts +12 -0
  119. package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts.map +1 -0
  120. package/fontes/interfaces-tipos/informacao-consulta-interface.js +3 -0
  121. package/fontes/interfaces-tipos/informacao-consulta-interface.js.map +1 -0
  122. package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts +33 -0
  123. package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts.map +1 -0
  124. package/fontes/interfaces-tipos/muito-para-muitos-interface.js +3 -0
  125. package/fontes/interfaces-tipos/muito-para-muitos-interface.js.map +1 -0
  126. package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts +14 -0
  127. package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts.map +1 -0
  128. package/fontes/interfaces-tipos/opcoes-serializacao-interface.js +3 -0
  129. package/fontes/interfaces-tipos/opcoes-serializacao-interface.js.map +1 -0
  130. package/fontes/interfaces-tipos/polimorfico-interface.d.ts +32 -0
  131. package/fontes/interfaces-tipos/polimorfico-interface.d.ts.map +1 -0
  132. package/fontes/interfaces-tipos/polimorfico-interface.js +3 -0
  133. package/fontes/interfaces-tipos/polimorfico-interface.js.map +1 -0
  134. package/fontes/interfaces-tipos/relacionamento-interface.d.ts +23 -0
  135. package/fontes/interfaces-tipos/relacionamento-interface.d.ts.map +1 -0
  136. package/fontes/interfaces-tipos/relacionamento-interface.js +3 -0
  137. package/fontes/interfaces-tipos/relacionamento-interface.js.map +1 -0
  138. package/fontes/interfaces-tipos/restricao-interface.d.ts +14 -0
  139. package/fontes/interfaces-tipos/restricao-interface.d.ts.map +1 -0
  140. package/fontes/interfaces-tipos/restricao-interface.js +3 -0
  141. package/fontes/interfaces-tipos/restricao-interface.js.map +1 -0
  142. package/fontes/interfaces-tipos/semente-interface.d.ts +7 -0
  143. package/fontes/interfaces-tipos/semente-interface.d.ts.map +1 -0
  144. package/fontes/interfaces-tipos/semente-interface.js +3 -0
  145. package/fontes/interfaces-tipos/semente-interface.js.map +1 -0
  146. package/fontes/interfaces-tipos/tabela-interface.d.ts +12 -0
  147. package/fontes/interfaces-tipos/tabela-interface.d.ts.map +1 -0
  148. package/fontes/interfaces-tipos/tabela-interface.js +3 -0
  149. package/fontes/interfaces-tipos/tabela-interface.js.map +1 -0
  150. package/fontes/interfaces-tipos/transacao-interface.d.ts +35 -0
  151. package/fontes/interfaces-tipos/transacao-interface.d.ts.map +1 -0
  152. package/fontes/interfaces-tipos/transacao-interface.js +3 -0
  153. package/fontes/interfaces-tipos/transacao-interface.js.map +1 -0
  154. package/fontes/migracoes/executor-migracoes.d.ts +14 -0
  155. package/fontes/migracoes/executor-migracoes.d.ts.map +1 -0
  156. package/fontes/migracoes/executor-migracoes.js +177 -0
  157. package/fontes/migracoes/executor-migracoes.js.map +1 -0
  158. package/fontes/migracoes/gerador-migracoes.d.ts +15 -0
  159. package/fontes/migracoes/gerador-migracoes.d.ts.map +1 -0
  160. package/fontes/migracoes/gerador-migracoes.js +108 -0
  161. package/fontes/migracoes/gerador-migracoes.js.map +1 -0
  162. package/fontes/migracoes/migracao.d.ts +35 -0
  163. package/fontes/migracoes/migracao.d.ts.map +1 -0
  164. package/fontes/migracoes/migracao.js +66 -0
  165. package/fontes/migracoes/migracao.js.map +1 -0
  166. package/fontes/migracoes/semeador.d.ts +18 -0
  167. package/fontes/migracoes/semeador.d.ts.map +1 -0
  168. package/fontes/migracoes/semeador.js +109 -0
  169. package/fontes/migracoes/semeador.js.map +1 -0
  170. package/fontes/rastreador-mudancas.d.ts +27 -0
  171. package/fontes/rastreador-mudancas.d.ts.map +1 -0
  172. package/fontes/rastreador-mudancas.js +94 -0
  173. package/fontes/rastreador-mudancas.js.map +1 -0
  174. package/fontes/relacionamento.d.ts +11 -0
  175. package/fontes/relacionamento.d.ts.map +1 -0
  176. package/fontes/relacionamento.js +15 -0
  177. package/fontes/relacionamento.js.map +1 -0
  178. package/fontes/roteador-bancos.d.ts +50 -0
  179. package/fontes/roteador-bancos.d.ts.map +1 -0
  180. package/fontes/roteador-bancos.js +90 -0
  181. package/fontes/roteador-bancos.js.map +1 -0
  182. package/fontes/serializador.d.ts +46 -0
  183. package/fontes/serializador.d.ts.map +1 -0
  184. package/fontes/serializador.js +79 -0
  185. package/fontes/serializador.js.map +1 -0
  186. package/fontes/taquigrafia.d.ts +41 -0
  187. package/fontes/taquigrafia.d.ts.map +1 -0
  188. package/fontes/taquigrafia.js +96 -0
  189. package/fontes/taquigrafia.js.map +1 -0
  190. package/fontes/tipos.d.ts +3 -0
  191. package/fontes/tipos.d.ts.map +1 -0
  192. package/fontes/tipos.js +3 -0
  193. package/fontes/tipos.js.map +1 -0
  194. package/fontes/transacao.d.ts +81 -0
  195. package/fontes/transacao.d.ts.map +1 -0
  196. package/fontes/transacao.js +243 -0
  197. package/fontes/transacao.js.map +1 -0
  198. package/fontes/validacoes/validador.d.ts +19 -0
  199. package/fontes/validacoes/validador.d.ts.map +1 -0
  200. package/fontes/validacoes/validador.js +157 -0
  201. package/fontes/validacoes/validador.js.map +1 -0
  202. package/index.d.ts +36 -0
  203. package/index.d.ts.map +1 -0
  204. package/index.js +59 -0
  205. package/index.js.map +1 -0
  206. package/package.json +55 -0
@@ -0,0 +1,215 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /// <reference types="node" />
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ /**
9
+ * CLI para Migrações
10
+ *
11
+ * Uso:
12
+ * yarn migracoes gerar
13
+ * yarn migracoes executar
14
+ * yarn migracoes reverter
15
+ * yarn migracoes status
16
+ */
17
+ const path_1 = __importDefault(require("path"));
18
+ const fs_1 = __importDefault(require("fs"));
19
+ const executor_migracoes_1 = require("../migracoes/executor-migracoes");
20
+ const leitor_configuracao_1 = require("./leitor-configuracao");
21
+ const COMANDO_PADRAO = "executar";
22
+ const DIRETORIO_MIGRACOES = path_1.default.join(process.cwd(), "fontes", "migracoes", "geradas");
23
+ const ARQUIVO_HISTORICO = path_1.default.join(DIRETORIO_MIGRACOES, ".migracoes.json");
24
+ function mostrarAjuda() {
25
+ console.log(`
26
+ delegua-entidades: Ferramenta de Migrações
27
+
28
+ USO:
29
+ yarn migracoes <comando>
30
+
31
+ COMANDOS:
32
+ gerar Gera uma nova migração vazia com timestamp
33
+ executar Executa todas as migrações pendentes (padrão)
34
+ reverter Reverte a última migração executada
35
+ status Mostra status das migrações
36
+ desfazer Limpa histórico (cuidado!)
37
+
38
+ EXEMPLOS:
39
+ yarn migracoes gerar
40
+ yarn migracoes executar
41
+ yarn migracoes status
42
+ `);
43
+ }
44
+ function garantirDiretorio() {
45
+ if (!fs_1.default.existsSync(DIRETORIO_MIGRACOES)) {
46
+ fs_1.default.mkdirSync(DIRETORIO_MIGRACOES, { recursive: true });
47
+ }
48
+ }
49
+ function obterHistoricoMigracoes() {
50
+ if (!fs_1.default.existsSync(ARQUIVO_HISTORICO)) {
51
+ return { migracoes_executadas: [] };
52
+ }
53
+ const conteudo = fs_1.default.readFileSync(ARQUIVO_HISTORICO, "utf-8");
54
+ return JSON.parse(conteudo);
55
+ }
56
+ function salvarHistoricoMigracoes(historico) {
57
+ fs_1.default.writeFileSync(ARQUIVO_HISTORICO, JSON.stringify(historico, null, 2));
58
+ }
59
+ function gerarMigracao() {
60
+ garantirDiretorio();
61
+ const agora = new Date();
62
+ const timestamp = [
63
+ agora.getFullYear(),
64
+ String(agora.getMonth() + 1).padStart(2, "0"),
65
+ String(agora.getDate()).padStart(2, "0"),
66
+ String(agora.getHours()).padStart(2, "0"),
67
+ String(agora.getMinutes()).padStart(2, "0"),
68
+ String(agora.getSeconds()).padStart(2, "0")
69
+ ].join("");
70
+ const nomeMigracao = `${timestamp}_migracao_vazia`;
71
+ const caminhoMigracao = path_1.default.join(DIRETORIO_MIGRACOES, `${nomeMigracao}.ts`);
72
+ const conteudoMigracao = `import { Migracao } from "../../migracoes/migracao";
73
+
74
+ export const migracao = new Migracao("${timestamp}", "Descrição da migração");
75
+
76
+ // Adicione aqui suas operações de migração
77
+ // Exemplos:
78
+ // migracao.criarTabela("usuarios", [
79
+ // new Coluna("id", "INTEIRO", undefined, false, true, false, true),
80
+ // new Coluna("nome", "TEXTO"),
81
+ // new Coluna("email", "TEXTO")
82
+ // ]);
83
+
84
+ // migracao.excluirTabela("tabela_antiga");
85
+ // migracao.adicionarColuna("usuarios", new Coluna("ativo", "LOGICO", undefined, true));
86
+ `;
87
+ fs_1.default.writeFileSync(caminhoMigracao, conteudoMigracao);
88
+ console.log(`✓ Migração criada: ${nomeMigracao}.ts`);
89
+ }
90
+ async function executarMigracoes() {
91
+ garantirDiretorio();
92
+ console.log("Verificando migrações pendentes...");
93
+ const historico = obterHistoricoMigracoes();
94
+ const arquivos = fs_1.default.readdirSync(DIRETORIO_MIGRACOES).filter((f) => f.endsWith(".ts") && f !== ".migracoes.json");
95
+ if (arquivos.length === 0) {
96
+ console.log("Nenhuma migração encontrada.");
97
+ return;
98
+ }
99
+ const versoesMigradas = new Set(historico.migracoes_executadas.map((m) => m.versao));
100
+ const pendentes = arquivos.filter((f) => {
101
+ const versao = f.replace("_migracao_vazia.ts", "").replace(/\.ts$/, "");
102
+ return !versoesMigradas.has(versao);
103
+ });
104
+ if (pendentes.length === 0) {
105
+ console.log("✓ Todas as migrações já foram executadas.");
106
+ return;
107
+ }
108
+ // Obter adaptador a partir de configuracao.delprops, se disponível
109
+ const configuracaoDelprops = (0, leitor_configuracao_1.lerConfiguracaoDelprops)();
110
+ let executor = null;
111
+ if (configuracaoDelprops) {
112
+ const nomesConexao = Object.keys(configuracaoDelprops.dados);
113
+ if (nomesConexao.length > 0) {
114
+ const conexaoPadrao = configuracaoDelprops.dados[nomesConexao[0]];
115
+ const adaptador = (0, leitor_configuracao_1.instanciarAdaptador)(conexaoPadrao);
116
+ if (adaptador) {
117
+ const caminhoConexao = conexaoPadrao.caminho ?? conexaoPadrao.banco ?? "";
118
+ await adaptador.iniciar(caminhoConexao);
119
+ executor = new executor_migracoes_1.ExecutorMigracoes(adaptador);
120
+ console.log(`Usando adaptador '${conexaoPadrao.tecnologia}' (conexão '${nomesConexao[0]}').`);
121
+ }
122
+ }
123
+ }
124
+ else {
125
+ console.log("Arquivo configuracao.delprops não encontrado. Apenas o histórico será atualizado.");
126
+ }
127
+ console.log(`Executando ${pendentes.length} migração(ões) pendente(s)...`);
128
+ for (const arquivo of pendentes) {
129
+ const versao = arquivo.replace("_migracao_vazia.ts", "").replace(/\.ts$/, "");
130
+ console.log(` • ${arquivo}`);
131
+ if (executor) {
132
+ const caminhoMigracao = path_1.default.join(DIRETORIO_MIGRACOES, arquivo);
133
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
134
+ const modulo = require(caminhoMigracao);
135
+ const migracao = modulo.migracao ?? modulo.default;
136
+ if (migracao) {
137
+ await executor.executar(migracao);
138
+ }
139
+ else {
140
+ console.warn(` ⚠ Módulo '${arquivo}' não exporta 'migracao' nem exportação padrão. Pulando.`);
141
+ }
142
+ }
143
+ historico.migracoes_executadas.push({
144
+ versao,
145
+ descricao: "Migração executada",
146
+ data_execucao: new Date().toISOString()
147
+ });
148
+ }
149
+ salvarHistoricoMigracoes(historico);
150
+ console.log("✓ Migrações executadas com sucesso!");
151
+ }
152
+ function desfazerMigracao() {
153
+ const historico = obterHistoricoMigracoes();
154
+ if (historico.migracoes_executadas.length === 0) {
155
+ console.log("Nenhuma migração para reverter.");
156
+ return;
157
+ }
158
+ const ultima = historico.migracoes_executadas.pop();
159
+ salvarHistoricoMigracoes(historico);
160
+ console.log(`✓ Migração revertida: ${ultima?.versao}`);
161
+ }
162
+ function mostrarStatus() {
163
+ garantirDiretorio();
164
+ const historico = obterHistoricoMigracoes();
165
+ const arquivos = fs_1.default.readdirSync(DIRETORIO_MIGRACOES).filter((f) => f.endsWith(".ts"));
166
+ console.log("\n📊 Status das Migrações:");
167
+ console.log(` Total: ${arquivos.length}`);
168
+ console.log(` Executadas: ${historico.migracoes_executadas.length}`);
169
+ console.log(` Pendentes: ${arquivos.length - historico.migracoes_executadas.length}`);
170
+ if (historico.migracoes_executadas.length > 0) {
171
+ console.log("\n✓ Executadas:");
172
+ for (const reg of historico.migracoes_executadas) {
173
+ const data = new Date(reg.data_execucao).toLocaleString("pt-BR");
174
+ console.log(` [${reg.versao}] ${data}`);
175
+ }
176
+ }
177
+ }
178
+ function desfazerHistorico() {
179
+ if (!fs_1.default.existsSync(ARQUIVO_HISTORICO)) {
180
+ console.log("Nenhum histórico para limpar.");
181
+ return;
182
+ }
183
+ fs_1.default.unlinkSync(ARQUIVO_HISTORICO);
184
+ console.log("✓ Histórico de migrações limpo.");
185
+ }
186
+ async function principal() {
187
+ const args = process.argv.slice(2);
188
+ const comando = (args[0] || COMANDO_PADRAO);
189
+ switch (comando) {
190
+ case "gerar":
191
+ gerarMigracao();
192
+ break;
193
+ case "executar":
194
+ await executarMigracoes();
195
+ break;
196
+ case "reverter":
197
+ desfazerMigracao();
198
+ break;
199
+ case "status":
200
+ mostrarStatus();
201
+ break;
202
+ case "desfazer":
203
+ desfazerHistorico();
204
+ break;
205
+ default:
206
+ console.error(`Comando desconhecido: ${comando}`);
207
+ mostrarAjuda();
208
+ process.exit(1);
209
+ }
210
+ }
211
+ principal().catch((erro) => {
212
+ console.error("Falha ao executar migrações:", erro);
213
+ process.exit(1);
214
+ });
215
+ //# sourceMappingURL=migracoes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migracoes.js","sourceRoot":"","sources":["../../../fontes/ilc/migracoes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=semeadura.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semeadura.d.ts","sourceRoot":"","sources":["../../../fontes/ilc/semeadura.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const semeador_1 = require("../migracoes/semeador");
8
+ function mostrarAjuda() {
9
+ console.log("Uso:");
10
+ console.log(" yarn executar-semeadura -- <caminho-modulo>");
11
+ console.log("");
12
+ console.log("O módulo deve exportar:");
13
+ console.log(" - criarContexto(): ContextoEntidades");
14
+ console.log(" - sementes: ClasseSemente[] (ou exportação padrão)");
15
+ }
16
+ async function carregarModulo(caminhoModulo) {
17
+ const caminhoResolvido = path_1.default.isAbsolute(caminhoModulo)
18
+ ? caminhoModulo
19
+ : path_1.default.join(process.cwd(), caminhoModulo);
20
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
21
+ return require(caminhoResolvido);
22
+ }
23
+ async function executar() {
24
+ const argumentos = process.argv.slice(2);
25
+ const comando = argumentos[0];
26
+ const caminhoModulo = argumentos[1];
27
+ if (comando !== "executar-semeadura" || !caminhoModulo) {
28
+ mostrarAjuda();
29
+ process.exit(1);
30
+ }
31
+ const modulo = await carregarModulo(caminhoModulo);
32
+ const criarContexto = modulo.criarContexto;
33
+ const sementes = modulo.sementes || modulo.default;
34
+ if (!criarContexto) {
35
+ console.error("Módulo sem elemento exportado 'criarContexto'.");
36
+ process.exit(1);
37
+ }
38
+ if (!sementes || sementes.length === 0) {
39
+ console.error("Módulo sem elemento exportado 'sementes' ou elemento padrão vazio.");
40
+ process.exit(1);
41
+ }
42
+ const contexto = await Promise.resolve(criarContexto());
43
+ const semeador = new semeador_1.Semeador(contexto, contexto.logger);
44
+ await semeador.semear(sementes);
45
+ }
46
+ executar().catch((erro) => {
47
+ console.error("Falha ao executar semeadura:", erro);
48
+ process.exit(1);
49
+ });
50
+ //# sourceMappingURL=semeadura.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semeadura.js","sourceRoot":"","sources":["../../../fontes/ilc/semeadura.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AAGxB,oDAAgE;AAQhE,SAAS,YAAY;IACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,aAAqB;IAC/C,MAAM,gBAAgB,GAAG,cAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACnD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAE9C,8DAA8D;IAC9D,OAAO,OAAO,CAAC,gBAAgB,CAAmB,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,QAAQ;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,OAAO,KAAK,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;IAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Suite de Benchmarks de Performance
3
+ *
4
+ * Fornece utilities para medir performance de operações ORM.
5
+ */
6
+ export interface ResultadoPerformance {
7
+ nome: string;
8
+ duracao: number;
9
+ iteracoes: number;
10
+ mediaMs: number;
11
+ min: number;
12
+ max: number;
13
+ desvio: number;
14
+ }
15
+ export interface ConfiguradorAnalisePerformance {
16
+ iteracoes?: number;
17
+ aquecimento?: number;
18
+ tempoMaximo?: number;
19
+ }
20
+ /**
21
+ * Executor de análise de performance
22
+ */
23
+ export declare class ExecutorAnalisePerformance {
24
+ private resultados;
25
+ /**
26
+ * Executa um benchmark
27
+ */
28
+ executar(nome: string, funcao: () => Promise<void> | void, config?: ConfiguradorAnalisePerformance): Promise<ResultadoPerformance>;
29
+ /**
30
+ * Executa benchmark síncrono
31
+ */
32
+ executarSync(nome: string, funcao: () => void, config?: ConfiguradorAnalisePerformance): ResultadoPerformance;
33
+ /**
34
+ * Compara desempenho de duas funções
35
+ */
36
+ comparar(nome: string, nomeA: string, funcaoA: () => Promise<void> | void, nomeB: string, funcaoB: () => Promise<void> | void, config?: ConfiguradorAnalisePerformance): Promise<{
37
+ teste: string;
38
+ resultadoA: ResultadoPerformance;
39
+ resultadoB: ResultadoPerformance;
40
+ diferenca: {
41
+ ms: number;
42
+ percentual: string;
43
+ vencedor: string;
44
+ mensagem: string;
45
+ };
46
+ }>;
47
+ /**
48
+ * Obtém relatório de performance dos benchmarks executados
49
+ */
50
+ obterRelatorio(): string;
51
+ /**
52
+ * Limpa resultados
53
+ */
54
+ limpar(): void;
55
+ /**
56
+ * Obtém resultados armazenados
57
+ */
58
+ obterResultados(): ResultadoPerformance[];
59
+ }
60
+ /**
61
+ * Utilidades para testes de carga
62
+ */
63
+ export declare class TestadorCarga {
64
+ /**
65
+ * Executa função com múltipla concorrência
66
+ */
67
+ static testarConcorrencia(funcao: () => Promise<void>, paralelo: number, iteracoes: number): Promise<{
68
+ iteracoes: number;
69
+ paralelo: number;
70
+ duracaoTotal: number;
71
+ mediaMs: number;
72
+ erros: number;
73
+ sucessos: number;
74
+ }>;
75
+ /**
76
+ * Teste de estresse: aumenta carga gradualmente
77
+ */
78
+ static testeEstresse(funcao: () => Promise<void>, cargasIniciais?: number[]): Promise<any[]>;
79
+ }
80
+ //# sourceMappingURL=executor-analise-performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-analise-performance.d.ts","sourceRoot":"","sources":["../../../fontes/indicadores-performance/executor-analise-performance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,UAAU,CAA8B;IAEhD;;OAEG;IACG,QAAQ,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAClC,MAAM,CAAC,EAAE,8BAA8B,GACxC,OAAO,CAAC,oBAAoB,CAAC;IAmDhC;;OAEG;IACH,YAAY,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,MAAM,CAAC,EAAE,8BAA8B,GACxC,oBAAoB;IA4CvB;;OAEG;IACG,QAAQ,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACnC,MAAM,CAAC,EAAE,8BAA8B;;;;;;;;;;;IAwB3C;;OAEG;IACH,cAAc,IAAI,MAAM;IAmDxB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,eAAe,IAAI,oBAAoB,EAAE;CAG5C;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB;;OAEG;WACU,kBAAkB,CAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;;;;;;;;IA2BrB;;OAEG;WACU,aAAa,CACtB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,cAAc,GAAE,MAAM,EAAuB;CAiBpD"}
@@ -0,0 +1,212 @@
1
+ "use strict";
2
+ /**
3
+ * Suite de Benchmarks de Performance
4
+ *
5
+ * Fornece utilities para medir performance de operações ORM.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TestadorCarga = exports.ExecutorAnalisePerformance = void 0;
9
+ /**
10
+ * Executor de análise de performance
11
+ */
12
+ class ExecutorAnalisePerformance {
13
+ constructor() {
14
+ this.resultados = [];
15
+ }
16
+ /**
17
+ * Executa um benchmark
18
+ */
19
+ async executar(nome, funcao, config) {
20
+ const iteracoes = config?.iteracoes ?? 100;
21
+ const aquecimento = config?.aquecimento ?? 10;
22
+ const tempoMaximo = config?.tempoMaximo ?? 30000;
23
+ // Fase de aquecimento
24
+ for (let i = 0; i < aquecimento; i++) {
25
+ await Promise.resolve(funcao());
26
+ }
27
+ // Realiza medições
28
+ const tempos = [];
29
+ const inicioTotal = performance.now();
30
+ for (let i = 0; i < iteracoes; i++) {
31
+ const inicio = performance.now();
32
+ await Promise.resolve(funcao());
33
+ const duracao = performance.now() - inicio;
34
+ tempos.push(duracao);
35
+ // Verifica tempo máximo
36
+ if (performance.now() - inicioTotal > tempoMaximo) {
37
+ throw new Error(`Benchmark '${nome}' excedeu o tempo máximo de ${tempoMaximo}ms`);
38
+ }
39
+ }
40
+ const duracaoTotal = performance.now() - inicioTotal;
41
+ // Calcula estatísticas
42
+ const media = tempos.reduce((a, b) => a + b, 0) / tempos.length;
43
+ const min = Math.min(...tempos);
44
+ const max = Math.max(...tempos);
45
+ const desvio = Math.sqrt(tempos.reduce((sq, n) => sq + Math.pow(n - media, 2), 0) / tempos.length);
46
+ const resultado = {
47
+ nome,
48
+ duracao: duracaoTotal,
49
+ iteracoes,
50
+ mediaMs: media,
51
+ min,
52
+ max,
53
+ desvio
54
+ };
55
+ this.resultados.push(resultado);
56
+ return resultado;
57
+ }
58
+ /**
59
+ * Executa benchmark síncrono
60
+ */
61
+ executarSync(nome, funcao, config) {
62
+ const iteracoes = config?.iteracoes ?? 100;
63
+ const aquecimento = config?.aquecimento ?? 10;
64
+ // Aquecimento
65
+ for (let i = 0; i < aquecimento; i++) {
66
+ funcao();
67
+ }
68
+ // Medições
69
+ const tempos = [];
70
+ const inicioTotal = performance.now();
71
+ for (let i = 0; i < iteracoes; i++) {
72
+ const inicio = performance.now();
73
+ funcao();
74
+ const duracao = performance.now() - inicio;
75
+ tempos.push(duracao);
76
+ }
77
+ const duracaoTotal = performance.now() - inicioTotal;
78
+ // Estatísticas
79
+ const media = tempos.reduce((a, b) => a + b, 0) / tempos.length;
80
+ const min = Math.min(...tempos);
81
+ const max = Math.max(...tempos);
82
+ const desvio = Math.sqrt(tempos.reduce((sq, n) => sq + Math.pow(n - media, 2), 0) / tempos.length);
83
+ const resultado = {
84
+ nome,
85
+ duracao: duracaoTotal,
86
+ iteracoes,
87
+ mediaMs: media,
88
+ min,
89
+ max,
90
+ desvio
91
+ };
92
+ this.resultados.push(resultado);
93
+ return resultado;
94
+ }
95
+ /**
96
+ * Compara desempenho de duas funções
97
+ */
98
+ async comparar(nome, nomeA, funcaoA, nomeB, funcaoB, config) {
99
+ const resultadoA = await this.executar(nomeA, funcaoA, config);
100
+ const resultadoB = await this.executar(nomeB, funcaoB, config);
101
+ const diferencaMs = resultadoA.mediaMs - resultadoB.mediaMs;
102
+ const percentual = ((diferencaMs / resultadoB.mediaMs) * 100).toFixed(2);
103
+ const vencedor = diferencaMs < 0 ? "A" : "B";
104
+ return {
105
+ teste: nome,
106
+ resultadoA,
107
+ resultadoB,
108
+ diferenca: {
109
+ ms: Math.abs(diferencaMs),
110
+ percentual: `${percentual}%`,
111
+ vencedor,
112
+ mensagem: diferencaMs < 0
113
+ ? `${nomeA} é ${Math.abs(parseFloat(percentual))}% mais rápido`
114
+ : `${nomeB} é ${Math.abs(parseFloat(percentual))}% mais rápido`
115
+ }
116
+ };
117
+ }
118
+ /**
119
+ * Obtém relatório de performance dos benchmarks executados
120
+ */
121
+ obterRelatorio() {
122
+ if (this.resultados.length === 0) {
123
+ return "Nenhum benchmark executado";
124
+ }
125
+ const linhas = [
126
+ "═════════════════════════════════════════════════════════════",
127
+ "📊 RELATÓRIO DE PERFORMANCE",
128
+ "═════════════════════════════════════════════════════════════",
129
+ ""
130
+ ];
131
+ // Classifica por média (mais rápido primeiro)
132
+ const ordenados = [...this.resultados].sort((a, b) => a.mediaMs - b.mediaMs);
133
+ for (const resultado of ordenados) {
134
+ const icone = resultado === ordenados[0] ? "🏆" : " ";
135
+ linhas.push(`${icone} ${resultado.nome}`);
136
+ linhas.push(` ├─ Média: ${resultado.mediaMs.toFixed(3)}ms`);
137
+ linhas.push(` ├─ Min: ${resultado.min.toFixed(3)}ms`);
138
+ linhas.push(` ├─ Max: ${resultado.max.toFixed(3)}ms`);
139
+ linhas.push(` ├─ Desvio: ${resultado.desvio.toFixed(3)}ms`);
140
+ linhas.push(` └─ Iterações: ${resultado.iteracoes}`);
141
+ linhas.push("");
142
+ }
143
+ if (this.resultados.length > 1) {
144
+ const maisRapido = ordenados[0];
145
+ const maisLento = ordenados[ordenados.length - 1];
146
+ const diferenca = (((maisLento.mediaMs - maisRapido.mediaMs) / maisRapido.mediaMs) * 100).toFixed(2);
147
+ linhas.push("═════════════════════════════════════════════════════════════");
148
+ linhas.push(`Diferença: ${maisLento.nome} é ${diferenca}% mais lento que ${maisRapido.nome}`);
149
+ linhas.push("═════════════════════════════════════════════════════════════");
150
+ }
151
+ return linhas.join("\n");
152
+ }
153
+ /**
154
+ * Limpa resultados
155
+ */
156
+ limpar() {
157
+ this.resultados = [];
158
+ }
159
+ /**
160
+ * Obtém resultados armazenados
161
+ */
162
+ obterResultados() {
163
+ return [...this.resultados];
164
+ }
165
+ }
166
+ exports.ExecutorAnalisePerformance = ExecutorAnalisePerformance;
167
+ /**
168
+ * Utilidades para testes de carga
169
+ */
170
+ class TestadorCarga {
171
+ /**
172
+ * Executa função com múltipla concorrência
173
+ */
174
+ static async testarConcorrencia(funcao, paralelo, iteracoes) {
175
+ const inicio = performance.now();
176
+ const erros = [];
177
+ for (let i = 0; i < iteracoes; i += paralelo) {
178
+ const promessas = [];
179
+ for (let j = 0; j < paralelo && i + j < iteracoes; j++) {
180
+ promessas.push(funcao().catch(e => erros.push(e)));
181
+ }
182
+ await Promise.all(promessas);
183
+ }
184
+ const duracao = performance.now() - inicio;
185
+ return {
186
+ iteracoes,
187
+ paralelo,
188
+ duracaoTotal: duracao,
189
+ mediaMs: duracao / iteracoes,
190
+ erros: erros.length,
191
+ sucessos: iteracoes - erros.length
192
+ };
193
+ }
194
+ /**
195
+ * Teste de estresse: aumenta carga gradualmente
196
+ */
197
+ static async testeEstresse(funcao, cargasIniciais = [1, 5, 10, 20, 50]) {
198
+ const resultados = [];
199
+ for (const carga of cargasIniciais) {
200
+ const resultado = await this.testarConcorrencia(funcao, carga, 100);
201
+ resultados.push({ carga, ...resultado });
202
+ // Para se houver muitos erros
203
+ if (resultado.erros > resultado.sucessos * 0.1) {
204
+ console.warn(`⚠️ Taxa de erro alta na carga ${carga}: ${resultado.erros} erros`);
205
+ break;
206
+ }
207
+ }
208
+ return resultados;
209
+ }
210
+ }
211
+ exports.TestadorCarga = TestadorCarga;
212
+ //# sourceMappingURL=executor-analise-performance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-analise-performance.js","sourceRoot":"","sources":["../../../fontes/indicadores-performance/executor-analise-performance.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAkBH;;GAEG;AACH,MAAa,0BAA0B;IAAvC;QACY,eAAU,GAA2B,EAAE,CAAC;IAmNpD,CAAC;IAjNG;;OAEG;IACH,KAAK,CAAC,QAAQ,CACV,IAAY,EACZ,MAAkC,EAClC,MAAuC;QAEvC,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC;QAEjD,sBAAsB;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAErB,wBAAwB;YACxB,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,GAAG,WAAW,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,+BAA+B,WAAW,IAAI,CAAC,CAAC;YACtF,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QAErD,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAC3E,CAAC;QAEF,MAAM,SAAS,GAAyB;YACpC,IAAI;YACJ,OAAO,EAAE,YAAY;YACrB,SAAS;YACT,OAAO,EAAE,KAAK;YACd,GAAG;YACH,GAAG;YACH,MAAM;SACT,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,YAAY,CACR,IAAY,EACZ,MAAkB,EAClB,MAAuC;QAEvC,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,GAAG,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC;QAE9C,cAAc;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,EAAE,CAAC;QACb,CAAC;QAED,WAAW;QACX,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;QAErD,eAAe;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACpB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAC3E,CAAC;QAEF,MAAM,SAAS,GAAyB;YACpC,IAAI;YACJ,OAAO,EAAE,YAAY;YACrB,SAAS;YACT,OAAO,EAAE,KAAK;YACd,GAAG;YACH,GAAG;YACH,MAAM;SACT,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACV,IAAY,EACZ,KAAa,EACb,OAAmC,EACnC,KAAa,EACb,OAAmC,EACnC,MAAuC;QAEvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAC5D,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAE7C,OAAO;YACH,KAAK,EAAE,IAAI;YACX,UAAU;YACV,UAAU;YACV,SAAS,EAAE;gBACP,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;gBACzB,UAAU,EAAE,GAAG,UAAU,GAAG;gBAC5B,QAAQ;gBACR,QAAQ,EAAE,WAAW,GAAG,CAAC;oBACrB,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,eAAe;oBAC/D,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,eAAe;aACtE;SACJ,CAAC;IACN,CAAC;IAED;;OAEG;IACH,cAAc;QACV,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,4BAA4B,CAAC;QACxC,CAAC;QAED,MAAM,MAAM,GAAG;YACX,+DAA+D;YAC/D,6BAA6B;YAC7B,+DAA+D;YAC/D,EAAE;SACL,CAAC;QAEF,8CAA8C;QAC9C,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QAE7E,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CACP,oBAAoB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACvD,CAAC;YACF,MAAM,CAAC,IAAI,CACP,oBAAoB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACnD,CAAC;YACF,MAAM,CAAC,IAAI,CACP,oBAAoB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACnD,CAAC;YACF,MAAM,CAAC,IAAI,CACP,oBAAoB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACtD,CAAC;YACF,MAAM,CAAC,IAAI,CACP,oBAAoB,SAAS,CAAC,SAAS,EAAE,CAC5C,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,CAAC,CACf,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAChE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEpB,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAC7E,MAAM,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,MAAM,SAAS,oBAAoB,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9F,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM;QACF,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACJ;AApND,gEAoNC;AAED;;GAEG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC3B,MAA2B,EAC3B,QAAgB,EAChB,SAAiB;QAEjB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACjC,MAAM,KAAK,GAAY,EAAE,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,SAAS,CAAC,IAAI,CACV,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACrC,CAAC;YACN,CAAC;YACD,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QAE3C,OAAO;YACH,SAAS;YACT,QAAQ;YACR,YAAY,EAAE,OAAO;YACrB,OAAO,EAAE,OAAO,GAAG,SAAS;YAC5B,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,QAAQ,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM;SACrC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACtB,MAA2B,EAC3B,iBAA2B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAE7C,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YACpE,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;YAEzC,8BAA8B;YAC9B,IAAI,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,KAAK,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC;gBACjF,MAAM;YACV,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAxDD,sCAwDC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Benchmarks de Performance - Suite Completa
3
+ *
4
+ * Testa performance de cache, batch loading, e operações principais
5
+ */
6
+ /**
7
+ * Benchmarks de Cache
8
+ */
9
+ export declare function performanceCache(): Promise<void>;
10
+ /**
11
+ * Benchmarks de Carregador em Lote
12
+ */
13
+ export declare function performanceCarregadorLote(): Promise<void>;
14
+ /**
15
+ * Comparação: Com vs Sem Cache
16
+ */
17
+ export declare function performanceComparativoCache(): Promise<void>;
18
+ /**
19
+ * Teste de Estresse do Cache
20
+ */
21
+ export declare function testeEstressCache(): Promise<void>;
22
+ /**
23
+ * Executa todos os benchmarks
24
+ */
25
+ export declare function executarTodosIndicadoresPerformance(): Promise<void>;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/indicadores-performance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,wBAAsB,gBAAgB,kBA6DrC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,kBAyE9C;AAED;;GAEG;AACH,wBAAsB,2BAA2B,kBAiDhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,kBAkCtC;AAED;;GAEG;AACH,wBAAsB,mCAAmC,kBAgBxD"}