@designliquido/lincones-sqlite 0.1.2 → 0.2.1

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 (86) hide show
  1. package/execucao.js +9 -7
  2. package/execucao.js.map +1 -1
  3. package/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +1 -1
  4. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.d.ts +7 -4
  5. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js +63 -14
  6. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  7. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.d.ts +7 -0
  8. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js +12 -0
  9. package/fontes/comum/fontes/avaliador-sintatico/avaliador-sintatico-sql-ansi.js.map +1 -0
  10. package/fontes/comum/fontes/avaliador-sintatico/index.d.ts +1 -0
  11. package/fontes/comum/fontes/avaliador-sintatico/index.js +1 -0
  12. package/fontes/comum/fontes/avaliador-sintatico/index.js.map +1 -1
  13. package/fontes/comum/fontes/comandos/comando.d.ts +2 -0
  14. package/fontes/comum/fontes/comandos/comando.js +1 -0
  15. package/fontes/comum/fontes/comandos/comando.js.map +1 -1
  16. package/fontes/comum/fontes/comandos/criar.d.ts +2 -1
  17. package/fontes/comum/fontes/comandos/criar.js +2 -1
  18. package/fontes/comum/fontes/comandos/criar.js.map +1 -1
  19. package/fontes/comum/fontes/construtos/index.d.ts +2 -0
  20. package/fontes/comum/fontes/construtos/index.js +2 -0
  21. package/fontes/comum/fontes/construtos/index.js.map +1 -1
  22. package/fontes/comum/fontes/construtos/parametro-anonimo.d.ts +4 -0
  23. package/fontes/comum/fontes/construtos/parametro-anonimo.js +11 -0
  24. package/fontes/comum/fontes/construtos/parametro-anonimo.js.map +1 -0
  25. package/fontes/comum/fontes/construtos/parametro-nomeado.d.ts +6 -0
  26. package/fontes/comum/fontes/construtos/parametro-nomeado.js +15 -0
  27. package/fontes/comum/fontes/construtos/parametro-nomeado.js.map +1 -0
  28. package/fontes/comum/fontes/index.d.ts +0 -1
  29. package/fontes/comum/fontes/index.js +0 -1
  30. package/fontes/comum/fontes/index.js.map +1 -1
  31. package/fontes/comum/fontes/interfaces/parametro-interface.d.ts +5 -0
  32. package/fontes/comum/fontes/interfaces/parametro-interface.js +3 -0
  33. package/fontes/comum/fontes/interfaces/parametro-interface.js.map +1 -0
  34. package/fontes/comum/fontes/lexador/index.d.ts +1 -0
  35. package/fontes/comum/fontes/lexador/index.js +1 -0
  36. package/fontes/comum/fontes/lexador/index.js.map +1 -1
  37. package/fontes/comum/fontes/lexador/lexador-base.d.ts +26 -0
  38. package/fontes/comum/fontes/lexador/lexador-base.js +211 -0
  39. package/fontes/comum/fontes/lexador/lexador-base.js.map +1 -0
  40. package/fontes/comum/fontes/lexador/lexador-sql-ansi.d.ts +11 -0
  41. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js +47 -0
  42. package/fontes/comum/fontes/lexador/lexador-sql-ansi.js.map +1 -0
  43. package/fontes/comum/fontes/lexador/lexador.d.ts +2 -23
  44. package/fontes/comum/fontes/lexador/lexador.js +5 -198
  45. package/fontes/comum/fontes/lexador/lexador.js.map +1 -1
  46. package/fontes/comum/fontes/lexador/palavras-reservadas/index.d.ts +2 -0
  47. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js +19 -0
  48. package/fontes/comum/fontes/lexador/palavras-reservadas/index.js.map +1 -0
  49. package/fontes/comum/fontes/{palavras-reservadas.d.ts → lexador/palavras-reservadas/lincones.d.ts} +1 -0
  50. package/fontes/comum/fontes/{palavras-reservadas.js → lexador/palavras-reservadas/lincones.js} +3 -2
  51. package/fontes/comum/fontes/lexador/palavras-reservadas/lincones.js.map +1 -0
  52. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.d.ts +37 -0
  53. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js +43 -0
  54. package/fontes/comum/fontes/lexador/palavras-reservadas/sql.js.map +1 -0
  55. package/fontes/comum/fontes/{tipos-de-simbolos.d.ts → tipos-de-simbolos/index.d.ts} +3 -0
  56. package/fontes/comum/fontes/{tipos-de-simbolos.js → tipos-de-simbolos/index.js} +4 -1
  57. package/fontes/comum/fontes/tipos-de-simbolos/index.js.map +1 -0
  58. package/fontes/comum/fontes/tradutor/index.d.ts +1 -0
  59. package/fontes/comum/fontes/tradutor/index.js +1 -0
  60. package/fontes/comum/fontes/tradutor/index.js.map +1 -1
  61. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.d.ts +7 -0
  62. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js +12 -0
  63. package/fontes/comum/fontes/tradutor/tradutor-reverso-sql-ansi.js.map +1 -0
  64. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.d.ts +1 -1
  65. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js +11 -6
  66. package/fontes/comum/fontes/tradutor/tradutor-sql-ansi.js.map +1 -1
  67. package/fontes/comum/testes/avaliador-sintatico.test.js +85 -14
  68. package/fontes/comum/testes/avaliador-sintatico.test.js.map +1 -1
  69. package/fontes/comum/testes/construtos.test.d.ts +1 -0
  70. package/fontes/comum/testes/construtos.test.js +52 -0
  71. package/fontes/comum/testes/construtos.test.js.map +1 -0
  72. package/fontes/comum/testes/lexador-sql-ansi.test.d.ts +1 -0
  73. package/fontes/comum/testes/lexador-sql-ansi.test.js +83 -0
  74. package/fontes/comum/testes/lexador-sql-ansi.test.js.map +1 -0
  75. package/fontes/comum/testes/tradutor-sql-ansi.test.js +22 -21
  76. package/fontes/comum/testes/tradutor-sql-ansi.test.js.map +1 -1
  77. package/fontes/infraestrutura/cliente-sqlite.d.ts +1 -1
  78. package/fontes/infraestrutura/cliente-sqlite.js +10 -9
  79. package/fontes/infraestrutura/cliente-sqlite.js.map +1 -1
  80. package/fontes/lincones-sqlite.d.ts +7 -3
  81. package/fontes/lincones-sqlite.js +25 -10
  82. package/fontes/lincones-sqlite.js.map +1 -1
  83. package/fontes/tradutor/index.js.map +1 -1
  84. package/package.json +1 -1
  85. package/fontes/comum/fontes/palavras-reservadas.js.map +0 -1
  86. package/fontes/comum/fontes/tipos-de-simbolos.js.map +0 -1
@@ -22,9 +22,7 @@ describe('Tradutor (SQL ANSI)', () => {
22
22
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
23
23
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
24
24
  expect(resultado).toBeTruthy();
25
- expect(resultado).toContain('CREATE');
26
- expect(resultado).toContain('TABLE');
27
- expect(resultado).toContain('clientes');
25
+ expect(resultado).toContain('CREATE TABLE clientes');
28
26
  expect(resultado).toContain('email');
29
27
  expect(resultado).toContain('VARCHAR');
30
28
  });
@@ -37,11 +35,8 @@ describe('Tradutor (SQL ANSI)', () => {
37
35
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
38
36
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
39
37
  expect(resultado).toBeTruthy();
40
- expect(resultado).toContain('ALTER');
41
- expect(resultado).toContain('TABLE');
42
- expect(resultado).toContain('clientes');
43
- expect(resultado).toContain('ADD');
44
- expect(resultado).toContain('COLUMN');
38
+ expect(resultado).toContain('ALTER TABLE clientes');
39
+ expect(resultado).toContain('ADD COLUMN');
45
40
  expect(resultado).toContain('email');
46
41
  expect(resultado).toContain('VARCHAR(120)');
47
42
  });
@@ -56,14 +51,23 @@ describe('Tradutor (SQL ANSI)', () => {
56
51
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
57
52
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
58
53
  expect(resultado).toBeTruthy();
59
- expect(resultado).toContain('ALTER');
60
- expect(resultado).toContain('TABLE');
61
- expect(resultado).toContain('pedidos');
62
- expect(resultado).toContain('ADD');
63
- expect(resultado).toContain('CONSTRAINT');
64
- expect(resultado).toContain('chave_estrang');
54
+ expect(resultado).toContain('ALTER TABLE pedidos');
55
+ expect(resultado).toContain('ADD CONSTRAINT chave_estrang');
65
56
  expect(resultado).toContain('FOREIGN KEY');
66
57
  });
58
+ it('Alteração de coluna', () => {
59
+ const codigo = [
60
+ 'ALTERAR TABELA clientes ALTERAR COLUNA email TEXTO(120)'
61
+ ];
62
+ const retornoLexador = lexador.mapear(codigo);
63
+ const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
64
+ const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
65
+ expect(resultado).toBeTruthy();
66
+ expect(resultado).toContain('ALTER TABLE clientes');
67
+ expect(resultado).toContain('ALTER COLUMN');
68
+ expect(resultado).toContain('email');
69
+ expect(resultado).toContain('VARCHAR(120)');
70
+ });
67
71
  });
68
72
  it('Atualizar', () => {
69
73
  const codigo = [
@@ -73,8 +77,7 @@ describe('Tradutor (SQL ANSI)', () => {
73
77
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
74
78
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
75
79
  expect(resultado).toBeTruthy();
76
- expect(resultado).toContain('UPDATE');
77
- expect(resultado).toContain('clientes');
80
+ expect(resultado).toContain('UPDATE clientes');
78
81
  expect(resultado).toContain('SET');
79
82
  expect(resultado).toContain('NOME');
80
83
  expect(resultado).toContain('Pernalonga');
@@ -97,8 +100,7 @@ describe('Tradutor (SQL ANSI)', () => {
97
100
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
98
101
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
99
102
  expect(resultado).toBeTruthy();
100
- expect(resultado).toContain('INSERT');
101
- expect(resultado).toContain('INTO');
103
+ expect(resultado).toContain('INSERT INTO');
102
104
  expect(resultado).toContain('VALUES');
103
105
  expect(resultado).toContain('Pernalonga');
104
106
  expect(resultado).toContain('18');
@@ -106,14 +108,13 @@ describe('Tradutor (SQL ANSI)', () => {
106
108
  });
107
109
  it('Excluir', () => {
108
110
  const codigo = [
109
- 'EXCLUIR clientes ONDE ID = 2'
111
+ 'EXCLUIR EM clientes ONDE ID = 2'
110
112
  ];
111
113
  const retornoLexador = lexador.mapear(codigo);
112
114
  const retornoAvaliadorSintatico = avaliadorSintatico.analisar(retornoLexador);
113
115
  const resultado = tradutor.traduzir(retornoAvaliadorSintatico.comandos);
114
116
  expect(resultado).toBeTruthy();
115
- expect(resultado).toContain('DELETE');
116
- expect(resultado).toContain('FROM');
117
+ expect(resultado).toContain('DELETE FROM');
117
118
  expect(resultado).toContain('clientes');
118
119
  expect(resultado).toContain('WHERE');
119
120
  expect(resultado).toContain('ID = 2');
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-sql-ansi.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/tradutor-sql-ansi.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-sql-ansi.test.js","sourceRoot":"","sources":["../../../../fontes/comum/testes/tradutor-sql-ansi.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare class ClienteSQLite {
5
5
  origemDados: string;
6
6
  constructor(origemDados?: string | null);
7
7
  abrir(): Promise<void>;
8
- executarComando(comando: string): Promise<any>;
8
+ executarComando(comando: string, parametros?: any[]): Promise<any>;
9
9
  private executarComandoSelecao;
10
10
  }
@@ -64,18 +64,19 @@ class ClienteSQLite {
64
64
  this.instanciaBancoDeDados = database;
65
65
  console.log('Conectado ao banco de dados SQLite.');
66
66
  }
67
- async executarComando(comando) {
67
+ async executarComando(comando, parametros = []) {
68
68
  if (comando.startsWith('SELECT')) {
69
- return await this.executarComandoSelecao(comando);
69
+ return await this.executarComandoSelecao(comando, parametros);
70
70
  }
71
- return await this.instanciaBancoDeDados.run(comando, (erro) => {
72
- if (erro) {
73
- console.log(erro.message);
74
- }
75
- });
71
+ return await this.instanciaBancoDeDados.run(comando, parametros);
72
+ // (erro: Error) => {
73
+ // if (erro) {
74
+ // console.log(erro.message);
75
+ // }
76
+ // });
76
77
  }
77
- async executarComandoSelecao(comando) {
78
- return await this.instanciaBancoDeDados.all(comando);
78
+ async executarComandoSelecao(comando, parametros = []) {
79
+ return await this.instanciaBancoDeDados.all(comando, parametros);
79
80
  }
80
81
  }
81
82
  exports.ClienteSQLite = ClienteSQLite;
@@ -1 +1 @@
1
- {"version":3,"file":"cliente-sqlite.js","sourceRoot":"","sources":["../../../fontes/infraestrutura/cliente-sqlite.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAErC,+CAAiC;AACjC,sDAA8B;AAE9B,MAAa,aAAa;IAKtB,0DAA0D;IAC1D,oCAAoC;IACpC,4CAA4C;IAC5C,qDAAqD;IACrD,+CAA+C;IAC/C,YAAY,cAA6B,IAAI;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,MAAM,EAAE,iBAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAe;QACxC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,IAAW,EAAE,EAAE;YACjE,IAAI,IAAI,EAAE,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAChD,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzD,CAAC;CACJ;AA7CD,sCA6CC"}
1
+ {"version":3,"file":"cliente-sqlite.js","sourceRoot":"","sources":["../../../fontes/infraestrutura/cliente-sqlite.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;AAErC,+CAAiC;AACjC,sDAA8B;AAE9B,MAAa,aAAa;IAKtB,0DAA0D;IAC1D,oCAAoC;IACpC,4CAA4C;IAC5C,qDAAqD;IACrD,+CAA+C;IAC/C,YAAY,cAA6B,IAAI;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,WAAW,KAAK,UAAU,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACrD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,WAAW;YAC1B,MAAM,EAAE,iBAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,aAAoB,EAAE;QACzD,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC7D,qBAAqB;QACrB,cAAc;QACd,iCAAiC;QACjC,IAAI;QACR,MAAM;IACV,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAe,EAAE,aAAoB,EAAE;QACxE,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;CACJ;AA9CD,sCA8CC"}
@@ -3,17 +3,21 @@ import { AvaliadorSintatico } from "./comum/fontes/avaliador-sintatico";
3
3
  import { Lexador } from "./comum/fontes/lexador";
4
4
  import { ClienteSQLite } from "./infraestrutura/cliente-sqlite";
5
5
  import { RetornoComando } from "./infraestrutura";
6
+ import { Comando } from "./comum/fontes";
6
7
  export declare class LinconesSQLite {
7
8
  lexador: Lexador;
8
9
  avaliadorSintatico: AvaliadorSintatico;
9
10
  tradutor: TradutorSqLite;
10
11
  clienteSQLite: ClienteSQLite;
11
12
  constructor();
13
+ executarComando(comando: Comando): Promise<RetornoComando[]>;
12
14
  /**
13
- *
15
+ * Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
14
16
  * @param _ Normalmente a instância do interpretador Delégua.
15
- * @param comando
17
+ * @param sentencaLincones A sentença em LinConEs a ser traduzida e executada.
18
+ * @param parametros Parâmetros adicionais para o comando, se necessário.
16
19
  * @returns
17
20
  */
18
- executar(_: any, comando: string): Promise<RetornoComando>;
21
+ executar(_: any, sentencaLincones: string, parametros?: any[]): Promise<RetornoComando[]>;
22
+ private executarInterno;
19
23
  }
@@ -13,22 +13,37 @@ class LinconesSQLite {
13
13
  this.tradutor = new tradutor_1.TradutorSqLite();
14
14
  this.clienteSQLite = new cliente_sqlite_1.ClienteSQLite();
15
15
  }
16
+ async executarComando(comando) {
17
+ return await this.executarInterno([comando], comando.parametros);
18
+ }
16
19
  /**
17
- *
20
+ * Traduz um comando de LinConEs para SQL e executa no banco de dados SQLite.
18
21
  * @param _ Normalmente a instância do interpretador Delégua.
19
- * @param comando
22
+ * @param sentencaLincones A sentença em LinConEs a ser traduzida e executada.
23
+ * @param parametros Parâmetros adicionais para o comando, se necessário.
20
24
  * @returns
21
25
  */
22
- async executar(_, comando) {
23
- const resultadoLexador = this.lexador.mapear([comando]);
26
+ async executar(_, sentencaLincones, parametros = []) {
27
+ const resultadoLexador = this.lexador.mapear([sentencaLincones]);
24
28
  const resultadoAvaliacaoSintatica = this.avaliadorSintatico.analisar(resultadoLexador);
25
- const resultadoTraducao = this.tradutor.traduzir(resultadoAvaliacaoSintatica.comandos);
26
- if (resultadoAvaliacaoSintatica.comandos.length <= 0) {
27
- return new infraestrutura_1.RetornoComando(null);
29
+ if (resultadoAvaliacaoSintatica.erros.length > 0) {
30
+ throw new Error(`Erros encontrados na avaliação de comandos: ${resultadoAvaliacaoSintatica.erros.reduce((mensagens, erro) => mensagens += erro.message + '; ', '')}.`);
31
+ }
32
+ return await this.executarInterno(resultadoAvaliacaoSintatica.comandos, parametros);
33
+ }
34
+ async executarInterno(comandos, parametros) {
35
+ if (comandos.length <= 0) {
36
+ return [];
37
+ }
38
+ const retornosComandos = [];
39
+ for (const comando of comandos) {
40
+ const resultadoTraducao = this.tradutor.traduzir([comando]);
41
+ // TODO: Parâmetros
42
+ const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao, parametros);
43
+ const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao);
44
+ retornosComandos.push(retorno);
28
45
  }
29
- const resultadoExecucao = await this.clienteSQLite.executarComando(resultadoTraducao);
30
- const retorno = new infraestrutura_1.RetornoComando(resultadoExecucao);
31
- return retorno;
46
+ return retornosComandos;
32
47
  }
33
48
  }
34
49
  exports.LinconesSQLite = LinconesSQLite;
@@ -1 +1 @@
1
- {"version":3,"file":"lincones-sqlite.js","sourceRoot":"","sources":["../../fontes/lincones-sqlite.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,4EAAwE;AACxE,oDAAiD;AACjD,oEAAgE;AAChE,qDAAkD;AAElD,MAAa,cAAc;IAMvB;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAc,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,OAAe;QAClC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvF,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAEvF,IAAI,2BAA2B,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,iBAAiB,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAjCD,wCAiCC"}
1
+ {"version":3,"file":"lincones-sqlite.js","sourceRoot":"","sources":["../../fontes/lincones-sqlite.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,4EAAwE;AACxE,oDAAiD;AACjD,oEAAgE;AAChE,qDAAkD;AAGlD,MAAa,cAAc;IAMvB;QACI,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAc,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgB;QAClC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,CAAM,EAAE,gBAAwB,EAAE,aAAoB,EAAE;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACjE,MAAM,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEvF,IAAI,2BAA2B,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,+CAA+C,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3K,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,2BAA2B,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAAmB,EAAE,UAAiB;QAChE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAqB,EAAE,CAAC;QAE9C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,mBAAmB;YACnB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;YAClG,MAAM,OAAO,GAAG,IAAI,+BAAc,CAAC,iBAAiB,CAAC,CAAC;YACtD,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC5B,CAAC;CACJ;AApDD,wCAoDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;AAUA,kFAA6E;AAE7E,0FAAgE;AAEhE,MAAa,cAAe,SAAQ,mCAAe;IAAnD;;QA4CI,uBAAkB,GAAG;YACjB,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;SACxD,CAAC;IAaN,CAAC;IA/DG,gBAAgB,CAAC,QAAgB;QAC7B,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,GAAG,CAAC;YACf,KAAK,2BAAe,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC;YAChB,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,2BAAe,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,QAAQ,IAAI,UAAU,CAAC;QAC3B,CAAC;aAAM,IAAI,2BAAe,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkB,CAAC;YAC1C,QAAQ,IAAI,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC;QAC/C,CAAC;aAAM,IAAI,2BAAe,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI;YAC7C,QAAQ,IAAI,UAAU,CAAC;QAC3B,IAAI,MAAM,CAAC,aAAa;YAAE,QAAQ,IAAI,cAAc,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI;YAAE,QAAQ,IAAI,MAAM,CAAC;;YAC/B,QAAQ,IAAI,UAAU,CAAC;QAE5B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,YAAmB;QACpC,IAAI,SAAS,GAAG,gBAAgB,YAAY,CAAC,YAAY,IAAI,CAAC;QAE9D,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CACpD,MAAM,CACT,IAAI,CAAC;QACV,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,SAAS,IAAI,GAAG,CAAC;QAEjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAWD,QAAQ,CAAC,QAAmB;QACxB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,SAAS,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAC7D,OAAO,CACV,KAAK,CAAC;QACX,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAhED,wCAgEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/tradutor/index.ts"],"names":[],"mappings":";;;;;;AAMA,kFAA6E;AAE7E,0FAAgE;AAEhE,MAAa,cAAe,SAAQ,mCAAe;IAAnD;;QA4CI,uBAAkB,GAAG;YACjB,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YACnD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/C,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;SACxD,CAAC;IAaN,CAAC;IA/DG,gBAAgB,CAAC,QAAgB;QAC7B,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,GAAG,CAAC;YACf,KAAK,2BAAe,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC;YAChB,KAAK,2BAAe,CAAC,KAAK;gBACtB,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,2BAAe,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1C,QAAQ,IAAI,UAAU,CAAC;QAC3B,CAAC;aAAM,IAAI,2BAAe,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkB,CAAC;YAC1C,QAAQ,IAAI,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC;QAC/C,CAAC;aAAM,IAAI,2BAAe,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI;YAC7C,QAAQ,IAAI,UAAU,CAAC;QAC3B,IAAI,MAAM,CAAC,aAAa;YAAE,QAAQ,IAAI,cAAc,CAAC;QACrD,IAAI,MAAM,CAAC,IAAI;YAAE,QAAQ,IAAI,MAAM,CAAC;;YAC/B,QAAQ,IAAI,UAAU,CAAC;QAE5B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,oBAAoB,CAAC,YAAmB;QACpC,IAAI,SAAS,GAAG,gBAAgB,YAAY,CAAC,YAAY,IAAI,CAAC;QAE9D,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,IAAI,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CACpD,MAAM,CACT,IAAI,CAAC;QACV,CAAC;QAED,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,SAAS,IAAI,GAAG,CAAC;QAEjB,OAAO,SAAS,CAAC;IACrB,CAAC;IAWD,QAAQ,CAAC,QAAmB;QACxB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,SAAS,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAC7D,OAAO,CACV,KAAK,CAAC;QACX,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;CACJ;AAhED,wCAgEC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designliquido/lincones-sqlite",
3
3
  "description": "Implementação de LinConEs para SQLite.",
4
- "version": "0.1.2",
4
+ "version": "0.2.1",
5
5
  "main": "index.js",
6
6
  "author": "Leonel Sanches da Silva",
7
7
  "contributors": [
@@ -1 +0,0 @@
1
- {"version":3,"file":"palavras-reservadas.js","sourceRoot":"","sources":["../../../../fontes/comum/fontes/palavras-reservadas.ts"],"names":[],"mappings":";;;;;AAAA,4EAAkD;AAElD,kBAAe;IACX,SAAS,EAAE,2BAAe,CAAC,SAAS;IACpC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,SAAS,EAAE,2BAAe,CAAC,SAAS;IACpC,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,MAAM,EAAE,2BAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,EAAE,EAAE,2BAAe,CAAC,EAAE;IACtB,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,QAAQ,EAAE,2BAAe,CAAC,QAAQ;IAClC,CAAC,EAAE,2BAAe,CAAC,CAAC;IACpB,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,EAAE,EAAE,2BAAe,CAAC,EAAE;IACtB,WAAW,EAAE,2BAAe,CAAC,WAAW;IACxC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,MAAM,EAAE,2BAAe,CAAC,MAAM;IAC9B,MAAM,EAAE,2BAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,GAAG,EAAE,2BAAe,CAAC,GAAG;IACxB,GAAG,EAAE,2BAAe,CAAC,GAAG;IACxB,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,IAAI,EAAE,2BAAe,CAAC,IAAI;IAC1B,GAAG,EAAE,2BAAe,CAAC,GAAG;IACxB,QAAQ,EAAE,2BAAe,CAAC,QAAQ;IAClC,QAAQ,EAAE,2BAAe,CAAC,QAAQ;IAClC,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,QAAQ,EAAE,2BAAe,CAAC,QAAQ;IAClC,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,SAAS,EAAE,2BAAe,CAAC,SAAS;IACpC,SAAS,EAAE,2BAAe,CAAC,SAAS;IACpC,EAAE,EAAE,2BAAe,CAAC,EAAE;IACtB,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,MAAM,EAAE,2BAAe,CAAC,MAAM;IAC9B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,OAAO,EAAE,2BAAe,CAAC,OAAO;IAChC,UAAU,EAAE,2BAAe,CAAC,UAAU;IACtC,KAAK,EAAE,2BAAe,CAAC,KAAK;IAC5B,KAAK,EAAE,2BAAe,CAAC,KAAK;CAC/B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tipos-de-simbolos.js","sourceRoot":"","sources":["../../../../fontes/comum/fontes/tipos-de-simbolos.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,IAAI;IACR,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,CAAC,EAAE,GAAG;IACN,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAC9B,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACjB,CAAC"}