@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,14 @@
1
+ /**
2
+ * Opções de serialização para controlar o comportamento da conversão.
3
+ */
4
+ export interface OpcoesSerializacaoInterface {
5
+ /** Campos a incluir (se vazio, inclui todos) */
6
+ incluir?: string[];
7
+ /** Campos a excluir */
8
+ excluir?: string[];
9
+ /** Profundidade máxima para serializar relacionamentos (0 = apenas IDs) */
10
+ profundidade?: number;
11
+ /** Se deve incluir registros excluídos logicamente */
12
+ incluirExcluidos?: boolean;
13
+ }
14
+ //# sourceMappingURL=opcoes-serializacao-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcoes-serializacao-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/opcoes-serializacao-interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,2BAA2B;IACxC,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=opcoes-serializacao-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opcoes-serializacao-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/opcoes-serializacao-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Interface para relacionamentos polimórficos.
3
+ * Um relacionamento polimórfico permite que uma entidade se relacione com múltiplos tipos de entidades
4
+ * através de duas colunas: uma para armazenar o tipo e outra para armazenar o ID.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // Comentários podem estar associados a Postagens ou Vídeos
9
+ * interface PolimorficInterface {
10
+ * tipo: 'polimorfico';
11
+ * nomePropriedade: 'comentavel';
12
+ * colunaTipo: 'comentavel_tipo';
13
+ * colunaId: 'comentavel_id';
14
+ * entidadesPossiveis: ['Postagem', 'Video'];
15
+ * }
16
+ * ```
17
+ */
18
+ export interface PolimorficInterface {
19
+ /** Tipo de relacionamento */
20
+ tipo: 'polimorfico';
21
+ /** Nome da propriedade na entidade filha */
22
+ nomePropriedade: string;
23
+ /** Nome da coluna que armazena o tipo da entidade pai */
24
+ colunaTipo: string;
25
+ /** Nome da coluna que armazena o ID da entidade pai */
26
+ colunaId: string;
27
+ /** Lista de nomes de entidades que podem ser a entidade pai */
28
+ entidadesPossiveis: string[];
29
+ /** Se deve deletar quanto remover a entidade pai */
30
+ deletarAoRemover?: boolean;
31
+ }
32
+ //# sourceMappingURL=polimorfico-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polimorfico-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/polimorfico-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,mBAAmB;IAChC,6BAA6B;IAC7B,IAAI,EAAE,aAAa,CAAC;IAEpB,4CAA4C;IAC5C,eAAe,EAAE,MAAM,CAAC;IAExB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IAEjB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAE7B,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=polimorfico-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polimorfico-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/polimorfico-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Tipos suportados de relacionamentos entre entidades.
3
+ * - temUm: Um-para-um (entidade tem uma instância de outra)
4
+ * - temMuitos: Um-para-muitos (entidade tem múltiplas instâncias de outra)
5
+ * - pertenceA: Muitos-para-um (entidade pertence a uma instância de outra)
6
+ * - muitoParaMuitos: Muitos-para-muitos (através de tabela intermediária)
7
+ * - polimorfico: Relacionamento polimórfico (com múltiplas entidades possíveis)
8
+ */
9
+ export type TipoRelacionamento = 'temUm' | 'temMuitos' | 'pertenceA' | 'muitoParaMuitos' | 'polimorfico';
10
+ export type AcaoCascata = 'inserir' | 'atualizar' | 'excluir';
11
+ /**
12
+ * Interface base para relacionamentos entre entidades.
13
+ * Implementa os relacionamentos básicos: um-para-um, um-para-muitos, muitos-para-um.
14
+ */
15
+ export interface RelacionamentoInterface {
16
+ tipo: TipoRelacionamento;
17
+ nomePropriedade: string;
18
+ entidadeDestino?: string;
19
+ colunaOrigem?: string;
20
+ colunaDestino?: string;
21
+ cascata?: AcaoCascata[];
22
+ }
23
+ //# sourceMappingURL=relacionamento-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relacionamento-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/relacionamento-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAEzG,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=relacionamento-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relacionamento-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/relacionamento-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Interface que representa uma restrição (constraint) de banco de dados.
3
+ *
4
+ * @interface RestricaoInterface
5
+ * @property {string} nome - O nome da restrição
6
+ * @property {string} sql - A expressão SQL da restrição (ex: "idade > 0")
7
+ * @property {string} tipo - O tipo de restrição (CHECK, UNIQUE, FOREIGN_KEY)
8
+ */
9
+ export interface RestricaoInterface {
10
+ nome: string;
11
+ sql: string;
12
+ tipo: 'CHECK' | 'UNIQUE' | 'FOREIGN_KEY';
13
+ }
14
+ //# sourceMappingURL=restricao-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricao-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/restricao-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAC;CAC5C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=restricao-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restricao-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/restricao-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { ContextoEntidades } from "../contexto-entidades";
2
+ export interface SementeInterface {
3
+ nome?: string;
4
+ dependencias?: string[];
5
+ executar(contexto: ContextoEntidades): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=semente-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semente-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/semente-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=semente-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semente-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/semente-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { AtributoInterface } from "./atributo-interface";
2
+ /**
3
+ * Interface que representa uma tabela.
4
+ * @interface TabelaInterface
5
+ * @property {string} nome_tabela - O nome da tabela.
6
+ * @property {AtributoInterface[]} atributos - Os atributos da tabela.
7
+ */
8
+ export interface TabelaInterface {
9
+ nomeTabela: string;
10
+ atributos: AtributoInterface[];
11
+ }
12
+ //# sourceMappingURL=tabela-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabela-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/tabela-interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tabela-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabela-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/tabela-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Interface para transações de banco de dados com suporte a savepoints.
3
+ */
4
+ export interface TransacaoInterface {
5
+ /**
6
+ * Confirma a transação.
7
+ */
8
+ confirmar(): Promise<void>;
9
+ /**
10
+ * Reverte a transação.
11
+ */
12
+ reverter(): Promise<void>;
13
+ /**
14
+ * Indica se a transação está ativa.
15
+ */
16
+ estaAtiva(): boolean;
17
+ /**
18
+ * Cria um savepoint com o nome especificado.
19
+ * Permite reverter para este ponto sem descartar toda a transação.
20
+ */
21
+ criarPontoDeConfirmacao(nome: string): Promise<void>;
22
+ /**
23
+ * Reverte a transação para um ponto de confirmação anterior.
24
+ */
25
+ reverterParaPontoDeConfirmacao(nome: string): Promise<void>;
26
+ /**
27
+ * Libera (remove) um ponto de confirmação criado anteriormente.
28
+ */
29
+ liberarPontoDeConfirmacao(nome: string): Promise<void>;
30
+ /**
31
+ * Obtém lista de pontos de confirmação ativos.
32
+ */
33
+ obterPontosDeConfirmacao(): string[];
34
+ }
35
+ //# sourceMappingURL=transacao-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transacao-interface.d.ts","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/transacao-interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC;IAErB;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;OAEG;IACH,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;OAEG;IACH,wBAAwB,IAAI,MAAM,EAAE,CAAC;CACxC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transacao-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transacao-interface.js","sourceRoot":"","sources":["../../../fontes/interfaces-tipos/transacao-interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { TecnologiaLinconesInterface } from "@designliquido/lincones-js";
2
+ import { Taquigrafo } from "../taquigrafia";
3
+ import { Migracao } from "./migracao";
4
+ export declare class ExecutorMigracoes {
5
+ private tecnologia;
6
+ private logger?;
7
+ constructor(tecnologia: TecnologiaLinconesInterface, logger?: Taquigrafo);
8
+ executar(migracao: Migracao): Promise<void>;
9
+ executarTodas(migracoes: Migracao[]): Promise<void>;
10
+ reverter(migracao: Migracao): Promise<void>;
11
+ private executarOperacao;
12
+ private obterOperacaoReversa;
13
+ }
14
+ //# sourceMappingURL=executor-migracoes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-migracoes.d.ts","sourceRoot":"","sources":["../../../fontes/migracoes/executor-migracoes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,2BAA2B,EAA2B,MAAM,4BAA4B,CAAC;AAEnI,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAExD,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,UAAU,EAAE,2BAA2B,EAAE,MAAM,CAAC,EAAE,UAAU;IAKlE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBnC,gBAAgB;IAkF9B,OAAO,CAAC,oBAAoB;CAwD/B"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExecutorMigracoes = void 0;
4
+ const lincones_js_1 = require("@designliquido/lincones-js");
5
+ class ExecutorMigracoes {
6
+ constructor(tecnologia, logger) {
7
+ this.tecnologia = tecnologia;
8
+ this.logger = logger;
9
+ }
10
+ async executar(migracao) {
11
+ this.logger?.info(`Executando migração ${migracao.versao}: ${migracao.descricao}`);
12
+ const inicio = Date.now();
13
+ for (const operacao of migracao.operacoes) {
14
+ await this.executarOperacao(operacao);
15
+ }
16
+ const duracao = Date.now() - inicio;
17
+ this.logger?.info(`Migração ${migracao.versao} concluída em ${duracao}ms`);
18
+ }
19
+ async executarTodas(migracoes) {
20
+ this.logger?.info(`Executando ${migracoes.length} migração(ões)`);
21
+ for (const migracao of migracoes) {
22
+ await this.executar(migracao);
23
+ }
24
+ this.logger?.info(`Todas as migrações concluídas`);
25
+ }
26
+ async reverter(migracao) {
27
+ this.logger?.info(`Revertendo migração ${migracao.versao}: ${migracao.descricao}`);
28
+ const inicio = Date.now();
29
+ const operacoesReversas = [...migracao.operacoes].reverse().map((operacao) => {
30
+ return this.obterOperacaoReversa(operacao);
31
+ });
32
+ for (const operacao of operacoesReversas) {
33
+ await this.executarOperacao(operacao);
34
+ }
35
+ const duracao = Date.now() - inicio;
36
+ this.logger?.info(`Reversão ${migracao.versao} concluída em ${duracao}ms`);
37
+ }
38
+ async executarOperacao(operacao) {
39
+ switch (operacao.tipo) {
40
+ case 'criarTabela': {
41
+ this.logger?.depuracao(`Criando tabela ${operacao.tabela}`);
42
+ const comando = new lincones_js_1.Criar(-1, operacao.tabela, operacao.colunas, true);
43
+ await this.tecnologia.executarComando(comando);
44
+ break;
45
+ }
46
+ case 'excluirTabela': {
47
+ this.logger?.depuracao(`Excluindo tabela ${operacao.tabela}`);
48
+ const comando = new lincones_js_1.RemoverEntidade(-1, operacao.tabela, 'TABELA');
49
+ await this.tecnologia.executarComando(comando);
50
+ break;
51
+ }
52
+ case 'adicionarColuna': {
53
+ this.logger?.depuracao(`Adicionando coluna em ${operacao.tabela}`);
54
+ const op = new lincones_js_1.OperacaoAlteracaoTabela('ADICIONAR', operacao.coluna);
55
+ const comando = new lincones_js_1.Alterar(-1, operacao.tabela, 'TABELA', [op]);
56
+ await this.tecnologia.executarComando(comando);
57
+ break;
58
+ }
59
+ case 'alterarColuna': {
60
+ this.logger?.depuracao(`Alterando coluna em ${operacao.tabela}`);
61
+ const op = new lincones_js_1.OperacaoAlteracaoTabela('ALTERAR', operacao.coluna);
62
+ const comando = new lincones_js_1.Alterar(-1, operacao.tabela, 'TABELA', [op]);
63
+ await this.tecnologia.executarComando(comando);
64
+ break;
65
+ }
66
+ case 'removerColuna': {
67
+ this.logger?.depuracao(`Removendo coluna ${operacao.nomeColuna} de ${operacao.tabela}`);
68
+ const sql = `ALTER TABLE ${operacao.tabela} DROP COLUMN ${operacao.nomeColuna}`;
69
+ await this.tecnologia.executar(null, sql, []);
70
+ break;
71
+ }
72
+ case 'adicionarIndice': {
73
+ this.logger?.depuracao(`Adicionando índice ${operacao.nomeIndice} em ${operacao.tabela}`);
74
+ if (!operacao.columnasIndice || operacao.columnasIndice.length === 0) {
75
+ throw new Error(`Índice '${operacao.nomeIndice}' precisa de colunas para criação.`);
76
+ }
77
+ const colunas = operacao.columnasIndice.join(', ');
78
+ const unico = operacao.unico ? 'UNIQUE ' : '';
79
+ const tipo = operacao.tipoIndice ? ` USING ${operacao.tipoIndice}` : '';
80
+ const sql = `CREATE ${unico}INDEX ${operacao.nomeIndice} ON ${operacao.tabela}${tipo} (${colunas})`;
81
+ await this.tecnologia.executar(null, sql, []);
82
+ break;
83
+ }
84
+ case 'removerIndice': {
85
+ this.logger?.depuracao(`Removendo índice ${operacao.nomeIndice} em ${operacao.tabela}`);
86
+ const sql = `DROP INDEX ${operacao.nomeIndice}`;
87
+ await this.tecnologia.executar(null, sql, []);
88
+ break;
89
+ }
90
+ case 'adicionarRestricao': {
91
+ this.logger?.depuracao(`Adicionando restrição ${operacao.nomeRestricao} em ${operacao.tabela}`);
92
+ if (!operacao.sqlRestricao) {
93
+ throw new Error(`Restrição '${operacao.nomeRestricao}' precisa de SQL para criação.`);
94
+ }
95
+ const sql = `ALTER TABLE ${operacao.tabela} ADD CONSTRAINT ${operacao.nomeRestricao} CHECK (${operacao.sqlRestricao})`;
96
+ await this.tecnologia.executar(null, sql, []);
97
+ break;
98
+ }
99
+ case 'removerRestricao': {
100
+ this.logger?.depuracao(`Removendo restrição ${operacao.nomeRestricao} em ${operacao.tabela}`);
101
+ const sql = `ALTER TABLE ${operacao.tabela} DROP CONSTRAINT ${operacao.nomeRestricao}`;
102
+ await this.tecnologia.executar(null, sql, []);
103
+ break;
104
+ }
105
+ case 'adicionarColunaComputada': {
106
+ this.logger?.depuracao(`Adicionando coluna computada ${operacao.nomeColuna} em ${operacao.tabela}`);
107
+ if (!operacao.nomeColuna || !operacao.tipoColuna || !operacao.expressaoColuna) {
108
+ throw new Error(`Coluna computada precisa de nome, tipo e expressao.`);
109
+ }
110
+ const sufixoPersistencia = operacao.persistida === true
111
+ ? ' STORED'
112
+ : (operacao.persistida === false ? ' VIRTUAL' : '');
113
+ const sql = `ALTER TABLE ${operacao.tabela} ADD COLUMN ${operacao.nomeColuna} ${operacao.tipoColuna} GENERATED ALWAYS AS (${operacao.expressaoColuna})${sufixoPersistencia}`;
114
+ await this.tecnologia.executar(null, sql, []);
115
+ break;
116
+ }
117
+ }
118
+ }
119
+ obterOperacaoReversa(operacao) {
120
+ switch (operacao.tipo) {
121
+ case 'criarTabela':
122
+ return { tipo: 'excluirTabela', tabela: operacao.tabela, colunas: operacao.colunas };
123
+ case 'excluirTabela':
124
+ if (!operacao.colunas || operacao.colunas.length === 0) {
125
+ throw new Error(`Não é possível reverter exclusão da tabela '${operacao.tabela}' sem colunas.`);
126
+ }
127
+ return { tipo: 'criarTabela', tabela: operacao.tabela, colunas: operacao.colunas };
128
+ case 'adicionarColuna':
129
+ if (!operacao.coluna?.nomeColuna) {
130
+ throw new Error(`Não é possível reverter adição de coluna em '${operacao.tabela}' sem coluna.`);
131
+ }
132
+ return { tipo: 'removerColuna', tabela: operacao.tabela, nomeColuna: operacao.coluna.nomeColuna };
133
+ case 'removerColuna':
134
+ if (!operacao.colunaAnterior) {
135
+ throw new Error(`Não é possível reverter remoção da coluna '${operacao.nomeColuna}' sem colunaAnterior.`);
136
+ }
137
+ return { tipo: 'adicionarColuna', tabela: operacao.tabela, coluna: operacao.colunaAnterior };
138
+ case 'alterarColuna':
139
+ if (!operacao.colunaAnterior) {
140
+ throw new Error(`Não é possível reverter alteração da coluna '${operacao.coluna?.nomeColuna}' sem colunaAnterior.`);
141
+ }
142
+ return { tipo: 'alterarColuna', tabela: operacao.tabela, coluna: operacao.colunaAnterior };
143
+ case 'adicionarIndice':
144
+ return { tipo: 'removerIndice', tabela: operacao.tabela, nomeIndice: operacao.nomeIndice };
145
+ case 'removerIndice':
146
+ if (!operacao.columnasIndice || operacao.columnasIndice.length === 0) {
147
+ throw new Error(`Não é possível reverter remoção do índice '${operacao.nomeIndice}' sem colunas.`);
148
+ }
149
+ return {
150
+ tipo: 'adicionarIndice',
151
+ tabela: operacao.tabela,
152
+ nomeIndice: operacao.nomeIndice,
153
+ columnasIndice: operacao.columnasIndice,
154
+ unico: operacao.unico,
155
+ tipoIndice: operacao.tipoIndice
156
+ };
157
+ case 'adicionarRestricao':
158
+ return { tipo: 'removerRestricao', tabela: operacao.tabela, nomeRestricao: operacao.nomeRestricao };
159
+ case 'removerRestricao':
160
+ if (!operacao.sqlRestricao) {
161
+ throw new Error(`Não é possível reverter remoção da restrição '${operacao.nomeRestricao}' sem SQL.`);
162
+ }
163
+ return {
164
+ tipo: 'adicionarRestricao',
165
+ tabela: operacao.tabela,
166
+ nomeRestricao: operacao.nomeRestricao,
167
+ sqlRestricao: operacao.sqlRestricao
168
+ };
169
+ case 'adicionarColunaComputada':
170
+ return { tipo: 'removerColuna', tabela: operacao.tabela, nomeColuna: operacao.nomeColuna };
171
+ default:
172
+ throw new Error(`Tipo de operação de migração não suportado: ${operacao.tipo}`);
173
+ }
174
+ }
175
+ }
176
+ exports.ExecutorMigracoes = ExecutorMigracoes;
177
+ //# sourceMappingURL=executor-migracoes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor-migracoes.js","sourceRoot":"","sources":["../../../fontes/migracoes/executor-migracoes.ts"],"names":[],"mappings":";;;AAAA,4DAAmI;AAKnI,MAAa,iBAAiB;IAI1B,YAAY,UAAuC,EAAE,MAAmB;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB;QAC7B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1B,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,iBAAiB,OAAO,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAqB;QACrC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,SAAS,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAElE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,+BAA+B,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAkB;QAC7B,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE1B,MAAM,iBAAiB,GAAG,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACzE,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,QAAQ,CAAC,MAAM,iBAAiB,OAAO,IAAI,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,QAA0B;QACrD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,aAAa,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,kBAAkB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,mBAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvE,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACV,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,IAAI,6BAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACnE,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACV,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,yBAAyB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACnE,MAAM,EAAE,GAAG,IAAI,qCAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACrE,MAAM,OAAO,GAAG,IAAI,qBAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACV,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjE,MAAM,EAAE,GAAG,IAAI,qCAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,qBAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjE,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACV,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,QAAQ,CAAC,UAAU,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxF,MAAM,GAAG,GAAG,eAAe,QAAQ,CAAC,MAAM,gBAAgB,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAChF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACrB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,sBAAsB,QAAQ,CAAC,UAAU,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnE,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,CAAC,UAAU,oCAAoC,CAAC,CAAC;gBACxF,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,QAAQ,CAAC,UAAU,OAAO,QAAQ,CAAC,MAAM,GAAG,IAAI,KAAK,OAAO,GAAG,CAAC;gBACpG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACnB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,oBAAoB,QAAQ,CAAC,UAAU,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACxF,MAAM,GAAG,GAAG,cAAc,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAChD,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,yBAAyB,QAAQ,CAAC,aAAa,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,aAAa,gCAAgC,CAAC,CAAC;gBAC1F,CAAC;gBACD,MAAM,GAAG,GAAG,eAAe,QAAQ,CAAC,MAAM,mBAAmB,QAAQ,CAAC,aAAa,WAAW,QAAQ,CAAC,YAAY,GAAG,CAAC;gBACvH,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;YACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,uBAAuB,QAAQ,CAAC,aAAa,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9F,MAAM,GAAG,GAAG,eAAe,QAAQ,CAAC,MAAM,oBAAoB,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACvF,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;YACD,KAAK,0BAA0B,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,gCAAgC,QAAQ,CAAC,UAAU,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpG,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;oBAC5E,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBAC3E,CAAC;gBACD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,KAAK,IAAI;oBACnD,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxD,MAAM,GAAG,GAAG,eAAe,QAAQ,CAAC,MAAM,eAAe,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,yBAAyB,QAAQ,CAAC,eAAe,IAAI,kBAAkB,EAAE,CAAC;gBAC7K,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC9C,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,QAA0B;QACnD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,aAAa;gBACd,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACzF,KAAK,eAAe;gBAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBACpG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;YACvF,KAAK,iBAAiB;gBAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC;gBACpG,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACtG,KAAK,eAAe;gBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,CAAC,UAAU,uBAAuB,CAAC,CAAC;gBAC9G,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;YACjG,KAAK,eAAe;gBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,CAAC,MAAM,EAAE,UAAU,uBAAuB,CAAC,CAAC;gBACxH,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC/F,KAAK,iBAAiB;gBAClB,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC/F,KAAK,eAAe;gBAChB,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnE,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,CAAC,UAAU,gBAAgB,CAAC,CAAC;gBACvG,CAAC;gBACD,OAAO;oBACH,IAAI,EAAE,iBAAiB;oBACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAClC,CAAC;YACN,KAAK,oBAAoB;gBACrB,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;YACxG,KAAK,kBAAkB;gBACnB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,QAAQ,CAAC,aAAa,YAAY,CAAC,CAAC;gBACzG,CAAC;gBACD,OAAO;oBACH,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,aAAa,EAAE,QAAQ,CAAC,aAAa;oBACrC,YAAY,EAAE,QAAQ,CAAC,YAAY;iBACtC,CAAC;YACN,KAAK,0BAA0B;gBAC3B,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC/F;gBACI,MAAM,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;CACJ;AAzLD,8CAyLC"}
@@ -0,0 +1,15 @@
1
+ import { EntidadeInterface } from "../interfaces-tipos/entidade-interface";
2
+ import { Migracao } from "./migracao";
3
+ export interface SchemaInfo {
4
+ nomeTabela: string;
5
+ colunas: {
6
+ nome: string;
7
+ tipo: string;
8
+ }[];
9
+ }
10
+ export declare class GeradorMigracoes {
11
+ static gerar(entidades: EntidadeInterface[], schemaAtual: SchemaInfo[], versao?: string, descricao?: string): Migracao;
12
+ private static gerarColunasParaEntidade;
13
+ private static compararEGerarAlteracoes;
14
+ }
15
+ //# sourceMappingURL=gerador-migracoes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gerador-migracoes.d.ts","sourceRoot":"","sources":["../../../fontes/migracoes/gerador-migracoes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;AAoBD,qBAAa,gBAAgB;IACzB,MAAM,CAAC,KAAK,CACR,SAAS,EAAE,iBAAiB,EAAE,EAC9B,WAAW,EAAE,UAAU,EAAE,EACzB,MAAM,GAAE,MAAc,EACtB,SAAS,GAAE,MAA8B,GAC1C,QAAQ;IAoDX,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAkBvC,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAoD1C"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeradorMigracoes = void 0;
4
+ const lincones_js_1 = require("@designliquido/lincones-js");
5
+ const migracao_1 = require("./migracao");
6
+ const MAPEAMENTO_TIPOS = {
7
+ 'número': 'INTEIRO',
8
+ 'texto': 'TEXTO',
9
+ 'lógico': 'LOGICO',
10
+ 'booleano': 'LOGICO',
11
+ 'decimal': 'NUMERO',
12
+ 'real': 'NUMERO',
13
+ 'flutuante': 'NUMERO',
14
+ 'data': 'DATA',
15
+ 'dataHora': 'DATA_HORA',
16
+ 'horario': 'HORARIO',
17
+ 'tempo': 'HORARIO',
18
+ 'json': 'JSON',
19
+ 'objeto': 'JSON',
20
+ 'uuid': 'TEXTO', // UUID será armazenado como texto
21
+ 'binario': 'BLOB',
22
+ };
23
+ class GeradorMigracoes {
24
+ static gerar(entidades, schemaAtual, versao = '001', descricao = 'Migração automática') {
25
+ const migracao = new migracao_1.Migracao(versao, descricao);
26
+ const schemasMap = new Map();
27
+ for (const schema of schemaAtual) {
28
+ schemasMap.set(schema.nomeTabela, schema);
29
+ }
30
+ for (const entidade of entidades) {
31
+ const nomeTabela = entidade.obterNome();
32
+ const schemaExistente = schemasMap.get(nomeTabela);
33
+ if (!schemaExistente) {
34
+ const colunas = GeradorMigracoes.gerarColunasParaEntidade(entidade);
35
+ migracao.criarTabela(nomeTabela, colunas);
36
+ // Adicionar índices
37
+ for (const indice of entidade.obterIndices()) {
38
+ migracao.adicionarIndice(nomeTabela, indice.nome, indice.colunas, indice.unico, indice.tipo);
39
+ }
40
+ // Adicionar restrições
41
+ for (const restricao of entidade.obterRestricoes()) {
42
+ migracao.adicionarRestricao(nomeTabela, restricao.nome, restricao.sql);
43
+ }
44
+ // Adicionar colunas computadas
45
+ for (const computada of entidade.obterColunasComputadas()) {
46
+ migracao.adicionarColunaComputada(nomeTabela, computada.nome, computada.tipo, computada.expressao, computada.persistida);
47
+ }
48
+ }
49
+ else {
50
+ GeradorMigracoes.compararEGerarAlteracoes(entidade, schemaExistente, migracao);
51
+ schemasMap.delete(nomeTabela);
52
+ }
53
+ }
54
+ for (const [nomeTabela, schema] of schemasMap) {
55
+ const colunas = schema.colunas.map((coluna) => new lincones_js_1.Coluna(coluna.nome, coluna.tipo));
56
+ migracao.excluirTabela(nomeTabela, colunas);
57
+ }
58
+ return migracao;
59
+ }
60
+ static gerarColunasParaEntidade(entidade) {
61
+ const colunas = [];
62
+ const chavePrimaria = entidade.obterNomeChavePrimaria();
63
+ const nomesComputadas = new Set(entidade.obterColunasComputadas().map((c) => c.nome));
64
+ for (const propriedade of entidade.modelo.propriedades) {
65
+ const nome = propriedade.nome.lexema;
66
+ if (nomesComputadas.has(nome)) {
67
+ continue;
68
+ }
69
+ const tipo = MAPEAMENTO_TIPOS[propriedade.tipo] || 'TEXTO';
70
+ const ehChavePrimaria = nome === chavePrimaria;
71
+ colunas.push(new lincones_js_1.Coluna(nome, tipo, undefined, !ehChavePrimaria, ehChavePrimaria, false, ehChavePrimaria));
72
+ }
73
+ return colunas;
74
+ }
75
+ static compararEGerarAlteracoes(entidade, schemaExistente, migracao) {
76
+ const colunasExistentes = new Map();
77
+ for (const col of schemaExistente.colunas) {
78
+ colunasExistentes.set(col.nome, col);
79
+ }
80
+ const nomesColunasEntidade = new Set();
81
+ for (const propriedade of entidade.modelo.propriedades) {
82
+ const nome = propriedade.nome.lexema;
83
+ nomesColunasEntidade.add(nome);
84
+ const tipoEsperado = MAPEAMENTO_TIPOS[propriedade.tipo] || 'TEXTO';
85
+ const colunaExistente = colunasExistentes.get(nome);
86
+ if (!colunaExistente) {
87
+ migracao.adicionarColuna(schemaExistente.nomeTabela, new lincones_js_1.Coluna(nome, tipoEsperado, undefined, true, false, false, false));
88
+ }
89
+ else if (colunaExistente.tipo !== tipoEsperado) {
90
+ const colunaAnterior = new lincones_js_1.Coluna(nome, colunaExistente.tipo);
91
+ migracao.alterarColuna(schemaExistente.nomeTabela, new lincones_js_1.Coluna(nome, tipoEsperado), colunaAnterior);
92
+ }
93
+ }
94
+ for (const computada of entidade.obterColunasComputadas()) {
95
+ if (!colunasExistentes.has(computada.nome)) {
96
+ migracao.adicionarColunaComputada(schemaExistente.nomeTabela, computada.nome, computada.tipo, computada.expressao, computada.persistida);
97
+ }
98
+ }
99
+ for (const [nomeColuna, colunaExistente] of colunasExistentes) {
100
+ if (!nomesColunasEntidade.has(nomeColuna)) {
101
+ const colunaAnterior = new lincones_js_1.Coluna(nomeColuna, colunaExistente.tipo);
102
+ migracao.removerColuna(schemaExistente.nomeTabela, nomeColuna, colunaAnterior);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ exports.GeradorMigracoes = GeradorMigracoes;
108
+ //# sourceMappingURL=gerador-migracoes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gerador-migracoes.js","sourceRoot":"","sources":["../../../fontes/migracoes/gerador-migracoes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Coluna } from "@designliquido/lincones-js";
2
+ export interface OperacaoMigracao {
3
+ tipo: 'criarTabela' | 'excluirTabela' | 'adicionarColuna' | 'removerColuna' | 'alterarColuna' | 'adicionarIndice' | 'removerIndice' | 'adicionarRestricao' | 'removerRestricao' | 'adicionarColunaComputada';
4
+ tabela: string;
5
+ coluna?: Coluna;
6
+ colunaAnterior?: Coluna;
7
+ colunas?: Coluna[];
8
+ nomeColuna?: string;
9
+ tipoColuna?: string;
10
+ expressaoColuna?: string;
11
+ persistida?: boolean;
12
+ nomeIndice?: string;
13
+ nomeRestricao?: string;
14
+ tipoIndice?: 'BTREE' | 'HASH' | 'GIST' | 'GIN';
15
+ columnasIndice?: string[];
16
+ unico?: boolean;
17
+ sqlRestricao?: string;
18
+ }
19
+ export declare class Migracao {
20
+ versao: string;
21
+ descricao: string;
22
+ operacoes: OperacaoMigracao[];
23
+ constructor(versao: string, descricao: string);
24
+ criarTabela(nome: string, colunas: Coluna[]): Migracao;
25
+ excluirTabela(nome: string, colunas?: Coluna[]): Migracao;
26
+ adicionarColuna(tabela: string, coluna: Coluna): Migracao;
27
+ removerColuna(tabela: string, nomeColuna: string, colunaAnterior?: Coluna): Migracao;
28
+ alterarColuna(tabela: string, coluna: Coluna, colunaAnterior?: Coluna): Migracao;
29
+ adicionarIndice(tabela: string, nomeIndice: string, colunas: string[], eUnico?: boolean, tipo?: 'BTREE' | 'HASH' | 'GIST' | 'GIN'): Migracao;
30
+ removerIndice(tabela: string, nomeIndice: string): Migracao;
31
+ adicionarRestricao(tabela: string, nomeRestricao: string, sql: string): Migracao;
32
+ adicionarColunaComputada(tabela: string, nomeColuna: string, tipoColuna: string, expressaoColuna: string, persistida?: boolean): Migracao;
33
+ removerRestricao(tabela: string, nomeRestricao: string): Migracao;
34
+ }
35
+ //# sourceMappingURL=migracao.d.ts.map