mitra-interactions-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +330 -0
- package/dist/index.d.mts +118 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.js +164 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +153 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Mitra Interactions SDK
|
|
2
|
+
|
|
3
|
+
SDK agnóstico para interações com a plataforma Mitra ECP. Funciona com JavaScript, TypeScript, Vue, React, Angular, Node.js e browsers.
|
|
4
|
+
|
|
5
|
+
## Instalação
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @mitra/interactions-sdk
|
|
9
|
+
# ou
|
|
10
|
+
yarn add @mitra/interactions-sdk
|
|
11
|
+
# ou
|
|
12
|
+
pnpm add @mitra/interactions-sdk
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Configuração
|
|
16
|
+
|
|
17
|
+
Antes de usar qualquer função, configure o SDK:
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { configure } from '@mitra/interactions-sdk';
|
|
21
|
+
|
|
22
|
+
configure({
|
|
23
|
+
baseURL: 'https://api.mitra.com',
|
|
24
|
+
token: 'seu-jwt-token',
|
|
25
|
+
// Opcionais:
|
|
26
|
+
screenId: 123, // ID da tela atual
|
|
27
|
+
screenComponentId: 456, // ID do componente
|
|
28
|
+
timeout: 30000 // Timeout em ms (padrão: 30000)
|
|
29
|
+
});
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Uso
|
|
33
|
+
|
|
34
|
+
### Query SQL
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { queryMitra } from '@mitra/interactions-sdk';
|
|
38
|
+
|
|
39
|
+
// Query direta
|
|
40
|
+
const result = await queryMitra({
|
|
41
|
+
query: 'SELECT * FROM usuarios WHERE ativo = 1'
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
console.log(result.headers); // ['id', 'nome', 'email']
|
|
45
|
+
console.log(result.data); // [[1, 'João', 'joao@email.com'], ...]
|
|
46
|
+
|
|
47
|
+
// Com conexão específica
|
|
48
|
+
const result = await queryMitra({
|
|
49
|
+
query: 'SELECT * FROM produtos',
|
|
50
|
+
jdbcId: 5,
|
|
51
|
+
onlineTables: true
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// Query a partir de variável customizada
|
|
55
|
+
import { getQueryMitra } from '@mitra/interactions-sdk';
|
|
56
|
+
|
|
57
|
+
const result = await getQueryMitra({
|
|
58
|
+
query: 'nome_da_variavel_query'
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### DBAction (Ações de Banco)
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
import { dbactionMitra } from '@mitra/interactions-sdk';
|
|
66
|
+
|
|
67
|
+
// Executa uma ação
|
|
68
|
+
const result = await dbactionMitra({ actionIds: 123 });
|
|
69
|
+
|
|
70
|
+
// Executa múltiplas ações
|
|
71
|
+
const result = await dbactionMitra({ actionIds: [123, 456, 789] });
|
|
72
|
+
|
|
73
|
+
// Com filtros de seleção
|
|
74
|
+
const result = await dbactionMitra({
|
|
75
|
+
actionIds: 123,
|
|
76
|
+
selection: [
|
|
77
|
+
{ dimensionId: 1, value: 'teste' },
|
|
78
|
+
{ dimensionId: 2, value: 100 }
|
|
79
|
+
]
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
if (result.successfullyExecuted) {
|
|
83
|
+
console.log('Ações executadas com sucesso!');
|
|
84
|
+
} else {
|
|
85
|
+
console.log('Erros:', result.executions.map(e => e.errorMessage));
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Variáveis
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { setVariableMitra, setVariablesBatch } from '@mitra/interactions-sdk';
|
|
93
|
+
|
|
94
|
+
// Define uma variável
|
|
95
|
+
await setVariableMitra({
|
|
96
|
+
name: 'filtro_ativo',
|
|
97
|
+
content: 'sim'
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Define variável com objeto
|
|
101
|
+
await setVariableMitra({
|
|
102
|
+
name: 'configuracao',
|
|
103
|
+
content: { tema: 'dark', idioma: 'pt-BR' }
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
// Define múltiplas variáveis
|
|
107
|
+
await setVariablesBatch([
|
|
108
|
+
{ name: 'var1', content: 'valor1' },
|
|
109
|
+
{ name: 'var2', content: { objeto: true } }
|
|
110
|
+
]);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Upload de Arquivos
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import { uploadFileAsPublic, uploadFileAsLoadable } from '@mitra/interactions-sdk';
|
|
117
|
+
|
|
118
|
+
// Upload público (URL acessível sem autenticação)
|
|
119
|
+
const url = await uploadFileAsPublic(arquivo);
|
|
120
|
+
|
|
121
|
+
// Upload para IA (arquivos carregáveis)
|
|
122
|
+
const url = await uploadFileAsLoadable(arquivo);
|
|
123
|
+
|
|
124
|
+
// Com nome customizado
|
|
125
|
+
const url = await uploadFileAsLoadable(arquivo, 'relatorio-2024.xlsx');
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Download de Arquivos
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
import { downloadFileMitra, getFileUrl, downloadFile } from '@mitra/interactions-sdk';
|
|
132
|
+
|
|
133
|
+
// Obtém URL autenticada
|
|
134
|
+
const result = await downloadFileMitra({ fileKey: 'path/to/file.pdf' });
|
|
135
|
+
console.log(result.url);
|
|
136
|
+
|
|
137
|
+
// Forma simplificada
|
|
138
|
+
const url = getFileUrl('path/to/file.pdf');
|
|
139
|
+
|
|
140
|
+
// Download como Blob (para manipulação)
|
|
141
|
+
const result = await downloadFileMitra({
|
|
142
|
+
fileKey: 'path/to/file.pdf',
|
|
143
|
+
asBlob: true
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
// Dispara download no browser
|
|
147
|
+
await downloadFile('path/to/file.pdf', 'meu-arquivo.pdf');
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Uso com Classe (OOP)
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
import { MitraSDK, createMitraSDK } from '@mitra/interactions-sdk';
|
|
154
|
+
|
|
155
|
+
// Usando construtor
|
|
156
|
+
const sdk = new MitraSDK({
|
|
157
|
+
baseURL: 'https://api.mitra.com',
|
|
158
|
+
token: 'seu-jwt-token'
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Ou usando factory
|
|
162
|
+
const sdk = createMitraSDK({
|
|
163
|
+
baseURL: 'https://api.mitra.com',
|
|
164
|
+
token: 'seu-jwt-token'
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Usando métodos
|
|
168
|
+
const result = await sdk.query({ query: 'SELECT * FROM usuarios' });
|
|
169
|
+
await sdk.dbaction({ actionIds: 123 });
|
|
170
|
+
await sdk.setVariable({ name: 'teste', content: 'valor' });
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Aliases (Compatibilidade)
|
|
174
|
+
|
|
175
|
+
Para facilitar migração, existem aliases simplificados:
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
import { dbaction, setVariable, query, uploadFile } from '@mitra/interactions-sdk';
|
|
179
|
+
|
|
180
|
+
// Forma simplificada
|
|
181
|
+
await dbaction(123);
|
|
182
|
+
await setVariable('nome', 'valor');
|
|
183
|
+
const result = await query('SELECT * FROM tabela');
|
|
184
|
+
const url = await uploadFile(arquivo);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Uso em Diferentes Frameworks
|
|
188
|
+
|
|
189
|
+
### Vue.js
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
// plugins/mitra.ts
|
|
193
|
+
import { configure } from '@mitra/interactions-sdk';
|
|
194
|
+
|
|
195
|
+
export default {
|
|
196
|
+
install(app, options) {
|
|
197
|
+
configure(options);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
// main.ts
|
|
202
|
+
app.use(mitraPlugin, {
|
|
203
|
+
baseURL: import.meta.env.VITE_API_URL,
|
|
204
|
+
token: getToken()
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// componente.vue
|
|
208
|
+
import { queryMitra } from '@mitra/interactions-sdk';
|
|
209
|
+
|
|
210
|
+
const dados = await queryMitra({ query: 'SELECT * FROM tabela' });
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### React
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
// hooks/useMitra.ts
|
|
217
|
+
import { useEffect } from 'react';
|
|
218
|
+
import { configure, queryMitra } from '@mitra/interactions-sdk';
|
|
219
|
+
|
|
220
|
+
export function useMitra(token: string) {
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
configure({
|
|
223
|
+
baseURL: process.env.REACT_APP_API_URL,
|
|
224
|
+
token
|
|
225
|
+
});
|
|
226
|
+
}, [token]);
|
|
227
|
+
|
|
228
|
+
return { queryMitra, /* ... */ };
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Angular
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
// mitra.service.ts
|
|
236
|
+
import { Injectable } from '@angular/core';
|
|
237
|
+
import { configure, queryMitra, dbactionMitra } from '@mitra/interactions-sdk';
|
|
238
|
+
|
|
239
|
+
@Injectable({ providedIn: 'root' })
|
|
240
|
+
export class MitraService {
|
|
241
|
+
configure(config) {
|
|
242
|
+
configure(config);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
query = queryMitra;
|
|
246
|
+
dbaction = dbactionMitra;
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Node.js
|
|
251
|
+
|
|
252
|
+
```typescript
|
|
253
|
+
import { configure, queryMitra } from '@mitra/interactions-sdk';
|
|
254
|
+
|
|
255
|
+
configure({
|
|
256
|
+
baseURL: process.env.MITRA_API_URL,
|
|
257
|
+
token: process.env.MITRA_TOKEN
|
|
258
|
+
});
|
|
259
|
+
|
|
260
|
+
const result = await queryMitra({ query: 'SELECT * FROM tabela' });
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Tipos TypeScript
|
|
264
|
+
|
|
265
|
+
Todos os tipos estão incluídos:
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
import type {
|
|
269
|
+
MitraConfig,
|
|
270
|
+
QueryResult,
|
|
271
|
+
DBActionResult,
|
|
272
|
+
UploadResult
|
|
273
|
+
} from '@mitra/interactions-sdk';
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Tratamento de Erros
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
import { queryMitra } from '@mitra/interactions-sdk';
|
|
280
|
+
import type { ApiError } from '@mitra/interactions-sdk';
|
|
281
|
+
|
|
282
|
+
try {
|
|
283
|
+
const result = await queryMitra({ query: 'SELECT * FROM tabela' });
|
|
284
|
+
} catch (error) {
|
|
285
|
+
const apiError = error as ApiError;
|
|
286
|
+
console.log('Erro:', apiError.message);
|
|
287
|
+
console.log('Status:', apiError.status);
|
|
288
|
+
console.log('Detalhes:', apiError.details);
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Cancelamento de Requisições
|
|
293
|
+
|
|
294
|
+
```typescript
|
|
295
|
+
const controller = new AbortController();
|
|
296
|
+
|
|
297
|
+
// Inicia a requisição
|
|
298
|
+
const promise = queryMitra({
|
|
299
|
+
query: 'SELECT * FROM tabela_grande',
|
|
300
|
+
signal: controller.signal
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// Cancela após 5 segundos
|
|
304
|
+
setTimeout(() => controller.abort(), 5000);
|
|
305
|
+
|
|
306
|
+
try {
|
|
307
|
+
const result = await promise;
|
|
308
|
+
} catch (error) {
|
|
309
|
+
if (error.name === 'AbortError') {
|
|
310
|
+
console.log('Requisição cancelada');
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Compatibilidade
|
|
316
|
+
|
|
317
|
+
- **Browsers**: Chrome 67+, Firefox 68+, Safari 14+, Edge 79+
|
|
318
|
+
- **Node.js**: 14+ (18+ para fetch nativo)
|
|
319
|
+
- **Bundlers**: Webpack, Vite, Rollup, esbuild
|
|
320
|
+
- **Frameworks**: Vue 2/3, React, Angular, Svelte, etc.
|
|
321
|
+
|
|
322
|
+
## Build
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
npm run build
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Licença
|
|
329
|
+
|
|
330
|
+
MIT
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mitra Interactions SDK - Configuração
|
|
3
|
+
*/
|
|
4
|
+
interface MitraConfig {
|
|
5
|
+
/** URL base da API (ex: https://api.mitra.com) */
|
|
6
|
+
baseURL: string;
|
|
7
|
+
/** Token JWT para autenticação */
|
|
8
|
+
token: string;
|
|
9
|
+
/** ID do projeto (opcional, pode ser passado em cada chamada) */
|
|
10
|
+
projectId?: number;
|
|
11
|
+
/** Timeout em ms (padrão: 30000) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Configura o SDK globalmente
|
|
16
|
+
*/
|
|
17
|
+
declare function configureSdkMitra(config: MitraConfig): void;
|
|
18
|
+
/**
|
|
19
|
+
* Obtém a configuração atual
|
|
20
|
+
*/
|
|
21
|
+
declare function getConfig(): MitraConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Verifica se o SDK está configurado
|
|
24
|
+
*/
|
|
25
|
+
declare function isConfigured(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Limpa a configuração
|
|
28
|
+
*/
|
|
29
|
+
declare function clearConfig(): void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Mitra Interactions SDK - Types
|
|
33
|
+
*/
|
|
34
|
+
interface RunQueryOptions {
|
|
35
|
+
/** ID do projeto */
|
|
36
|
+
projectId?: number;
|
|
37
|
+
/** Query SQL (apenas SELECT) */
|
|
38
|
+
sql: string;
|
|
39
|
+
/** ID da conexão JDBC (opcional, usa autoConnect se não informado) */
|
|
40
|
+
jdbcId?: number;
|
|
41
|
+
}
|
|
42
|
+
interface ExecuteDbActionOptions {
|
|
43
|
+
/** ID do projeto */
|
|
44
|
+
projectId?: number;
|
|
45
|
+
/** ID da DBAction cadastrada */
|
|
46
|
+
dbactionId: number;
|
|
47
|
+
/** Variáveis para o statement (opcional) */
|
|
48
|
+
params?: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
interface ExecuteActionOptions {
|
|
51
|
+
/** ID do projeto */
|
|
52
|
+
projectId?: number;
|
|
53
|
+
/** ID da Action (fluxo de ação) cadastrada */
|
|
54
|
+
actionId: number;
|
|
55
|
+
/** Variáveis para a action (opcional) */
|
|
56
|
+
params?: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
interface SetFileStatusOptions {
|
|
59
|
+
/** ID do projeto */
|
|
60
|
+
projectId?: number;
|
|
61
|
+
/** Nome do arquivo */
|
|
62
|
+
fileName: string;
|
|
63
|
+
/** Caminho de destino: "PUBLIC" ou "LOADABLE" */
|
|
64
|
+
targetPath: 'PUBLIC' | 'LOADABLE';
|
|
65
|
+
}
|
|
66
|
+
interface SetVariableOptions {
|
|
67
|
+
/** ID do projeto */
|
|
68
|
+
projectId?: number;
|
|
69
|
+
/** Nome da variável (key) */
|
|
70
|
+
key: string;
|
|
71
|
+
/** Valor da variável (opcional) */
|
|
72
|
+
value?: string;
|
|
73
|
+
}
|
|
74
|
+
interface ExecuteServerFunctionOptions {
|
|
75
|
+
/** ID do projeto */
|
|
76
|
+
projectId?: number;
|
|
77
|
+
/** ID da Server Function cadastrada */
|
|
78
|
+
serverfunctionId: number;
|
|
79
|
+
/** Parâmetros para a função (opcional) */
|
|
80
|
+
params?: Record<string, unknown>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Mitra Interactions SDK - Services
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* POST /agentAiShortcut/runQuery
|
|
89
|
+
* Executa query SELECT em um projeto
|
|
90
|
+
*/
|
|
91
|
+
declare function runQueryMitra(options: RunQueryOptions): Promise<unknown>;
|
|
92
|
+
/**
|
|
93
|
+
* POST /agentAiShortcut/executeDbAction
|
|
94
|
+
* Executa uma DBAction (DML) cadastrada
|
|
95
|
+
*/
|
|
96
|
+
declare function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown>;
|
|
97
|
+
/**
|
|
98
|
+
* POST /agentAiShortcut/runAction
|
|
99
|
+
* Executa uma Action (fluxo de ação) cadastrada
|
|
100
|
+
*/
|
|
101
|
+
declare function executeActionMitra(options: ExecuteActionOptions): Promise<unknown>;
|
|
102
|
+
/**
|
|
103
|
+
* POST /agentAiShortcut/setFileStatus
|
|
104
|
+
* Move arquivo do chat para PUBLIC ou LOADABLE
|
|
105
|
+
*/
|
|
106
|
+
declare function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown>;
|
|
107
|
+
/**
|
|
108
|
+
* POST /agentAiShortcut/setVariable
|
|
109
|
+
* Cria ou atualiza uma variável customizada
|
|
110
|
+
*/
|
|
111
|
+
declare function setVariableMitra(options: SetVariableOptions): Promise<unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* POST /agentAiShortcut/executeServerFunction
|
|
114
|
+
* Executa uma Server Function cadastrada
|
|
115
|
+
*/
|
|
116
|
+
declare function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown>;
|
|
117
|
+
|
|
118
|
+
export { type ExecuteActionOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type MitraConfig, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, clearConfig, configureSdkMitra, executeActionMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, isConfigured, runQueryMitra, setFileStatusMitra, setVariableMitra };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mitra Interactions SDK - Configuração
|
|
3
|
+
*/
|
|
4
|
+
interface MitraConfig {
|
|
5
|
+
/** URL base da API (ex: https://api.mitra.com) */
|
|
6
|
+
baseURL: string;
|
|
7
|
+
/** Token JWT para autenticação */
|
|
8
|
+
token: string;
|
|
9
|
+
/** ID do projeto (opcional, pode ser passado em cada chamada) */
|
|
10
|
+
projectId?: number;
|
|
11
|
+
/** Timeout em ms (padrão: 30000) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Configura o SDK globalmente
|
|
16
|
+
*/
|
|
17
|
+
declare function configureSdkMitra(config: MitraConfig): void;
|
|
18
|
+
/**
|
|
19
|
+
* Obtém a configuração atual
|
|
20
|
+
*/
|
|
21
|
+
declare function getConfig(): MitraConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Verifica se o SDK está configurado
|
|
24
|
+
*/
|
|
25
|
+
declare function isConfigured(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Limpa a configuração
|
|
28
|
+
*/
|
|
29
|
+
declare function clearConfig(): void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Mitra Interactions SDK - Types
|
|
33
|
+
*/
|
|
34
|
+
interface RunQueryOptions {
|
|
35
|
+
/** ID do projeto */
|
|
36
|
+
projectId?: number;
|
|
37
|
+
/** Query SQL (apenas SELECT) */
|
|
38
|
+
sql: string;
|
|
39
|
+
/** ID da conexão JDBC (opcional, usa autoConnect se não informado) */
|
|
40
|
+
jdbcId?: number;
|
|
41
|
+
}
|
|
42
|
+
interface ExecuteDbActionOptions {
|
|
43
|
+
/** ID do projeto */
|
|
44
|
+
projectId?: number;
|
|
45
|
+
/** ID da DBAction cadastrada */
|
|
46
|
+
dbactionId: number;
|
|
47
|
+
/** Variáveis para o statement (opcional) */
|
|
48
|
+
params?: Record<string, unknown>;
|
|
49
|
+
}
|
|
50
|
+
interface ExecuteActionOptions {
|
|
51
|
+
/** ID do projeto */
|
|
52
|
+
projectId?: number;
|
|
53
|
+
/** ID da Action (fluxo de ação) cadastrada */
|
|
54
|
+
actionId: number;
|
|
55
|
+
/** Variáveis para a action (opcional) */
|
|
56
|
+
params?: Record<string, unknown>;
|
|
57
|
+
}
|
|
58
|
+
interface SetFileStatusOptions {
|
|
59
|
+
/** ID do projeto */
|
|
60
|
+
projectId?: number;
|
|
61
|
+
/** Nome do arquivo */
|
|
62
|
+
fileName: string;
|
|
63
|
+
/** Caminho de destino: "PUBLIC" ou "LOADABLE" */
|
|
64
|
+
targetPath: 'PUBLIC' | 'LOADABLE';
|
|
65
|
+
}
|
|
66
|
+
interface SetVariableOptions {
|
|
67
|
+
/** ID do projeto */
|
|
68
|
+
projectId?: number;
|
|
69
|
+
/** Nome da variável (key) */
|
|
70
|
+
key: string;
|
|
71
|
+
/** Valor da variável (opcional) */
|
|
72
|
+
value?: string;
|
|
73
|
+
}
|
|
74
|
+
interface ExecuteServerFunctionOptions {
|
|
75
|
+
/** ID do projeto */
|
|
76
|
+
projectId?: number;
|
|
77
|
+
/** ID da Server Function cadastrada */
|
|
78
|
+
serverfunctionId: number;
|
|
79
|
+
/** Parâmetros para a função (opcional) */
|
|
80
|
+
params?: Record<string, unknown>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Mitra Interactions SDK - Services
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* POST /agentAiShortcut/runQuery
|
|
89
|
+
* Executa query SELECT em um projeto
|
|
90
|
+
*/
|
|
91
|
+
declare function runQueryMitra(options: RunQueryOptions): Promise<unknown>;
|
|
92
|
+
/**
|
|
93
|
+
* POST /agentAiShortcut/executeDbAction
|
|
94
|
+
* Executa uma DBAction (DML) cadastrada
|
|
95
|
+
*/
|
|
96
|
+
declare function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown>;
|
|
97
|
+
/**
|
|
98
|
+
* POST /agentAiShortcut/runAction
|
|
99
|
+
* Executa uma Action (fluxo de ação) cadastrada
|
|
100
|
+
*/
|
|
101
|
+
declare function executeActionMitra(options: ExecuteActionOptions): Promise<unknown>;
|
|
102
|
+
/**
|
|
103
|
+
* POST /agentAiShortcut/setFileStatus
|
|
104
|
+
* Move arquivo do chat para PUBLIC ou LOADABLE
|
|
105
|
+
*/
|
|
106
|
+
declare function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown>;
|
|
107
|
+
/**
|
|
108
|
+
* POST /agentAiShortcut/setVariable
|
|
109
|
+
* Cria ou atualiza uma variável customizada
|
|
110
|
+
*/
|
|
111
|
+
declare function setVariableMitra(options: SetVariableOptions): Promise<unknown>;
|
|
112
|
+
/**
|
|
113
|
+
* POST /agentAiShortcut/executeServerFunction
|
|
114
|
+
* Executa uma Server Function cadastrada
|
|
115
|
+
*/
|
|
116
|
+
declare function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown>;
|
|
117
|
+
|
|
118
|
+
export { type ExecuteActionOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type MitraConfig, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, clearConfig, configureSdkMitra, executeActionMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, isConfigured, runQueryMitra, setFileStatusMitra, setVariableMitra };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/config.ts
|
|
4
|
+
var globalConfig = null;
|
|
5
|
+
function configureSdkMitra(config) {
|
|
6
|
+
var _a;
|
|
7
|
+
if (!config.baseURL) {
|
|
8
|
+
throw new Error("baseURL \xE9 obrigat\xF3rio");
|
|
9
|
+
}
|
|
10
|
+
if (!config.token) {
|
|
11
|
+
throw new Error("token \xE9 obrigat\xF3rio");
|
|
12
|
+
}
|
|
13
|
+
globalConfig = {
|
|
14
|
+
...config,
|
|
15
|
+
timeout: (_a = config.timeout) != null ? _a : 3e4
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function getConfig() {
|
|
19
|
+
if (!globalConfig) {
|
|
20
|
+
throw new Error("SDK n\xE3o configurado. Chame configureSdkMitra() primeiro.");
|
|
21
|
+
}
|
|
22
|
+
return globalConfig;
|
|
23
|
+
}
|
|
24
|
+
function isConfigured() {
|
|
25
|
+
return globalConfig !== null;
|
|
26
|
+
}
|
|
27
|
+
function clearConfig() {
|
|
28
|
+
globalConfig = null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// src/client.ts
|
|
32
|
+
function getFetch() {
|
|
33
|
+
if (typeof globalThis.fetch === "function") {
|
|
34
|
+
return globalThis.fetch;
|
|
35
|
+
}
|
|
36
|
+
throw new Error("fetch n\xE3o dispon\xEDvel. Use Node.js 18+ ou instale node-fetch.");
|
|
37
|
+
}
|
|
38
|
+
function formatToken(token) {
|
|
39
|
+
return token.startsWith("Bearer ") ? token : `Bearer ${token}`;
|
|
40
|
+
}
|
|
41
|
+
function buildHeaders() {
|
|
42
|
+
const config = getConfig();
|
|
43
|
+
return {
|
|
44
|
+
"Authorization": formatToken(config.token),
|
|
45
|
+
"Content-Type": "application/json"
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function buildUrl(endpoint) {
|
|
49
|
+
const config = getConfig();
|
|
50
|
+
return `${config.baseURL}${endpoint}`;
|
|
51
|
+
}
|
|
52
|
+
var http = {
|
|
53
|
+
async post(endpoint, body) {
|
|
54
|
+
var _a;
|
|
55
|
+
const fetchFn = getFetch();
|
|
56
|
+
const config = getConfig();
|
|
57
|
+
const controller = new AbortController();
|
|
58
|
+
const timeout = (_a = config.timeout) != null ? _a : 3e4;
|
|
59
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
60
|
+
try {
|
|
61
|
+
const response = await fetchFn(buildUrl(endpoint), {
|
|
62
|
+
method: "POST",
|
|
63
|
+
headers: buildHeaders(),
|
|
64
|
+
body: body !== void 0 ? JSON.stringify(body) : void 0,
|
|
65
|
+
signal: controller.signal
|
|
66
|
+
});
|
|
67
|
+
const data = await response.json();
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
throw {
|
|
70
|
+
message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
|
|
71
|
+
status: response.status,
|
|
72
|
+
details: data
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return data;
|
|
76
|
+
} finally {
|
|
77
|
+
clearTimeout(timeoutId);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// src/services.ts
|
|
83
|
+
async function runQueryMitra(options) {
|
|
84
|
+
var _a;
|
|
85
|
+
const config = getConfig();
|
|
86
|
+
const body = {
|
|
87
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
88
|
+
sql: options.sql
|
|
89
|
+
};
|
|
90
|
+
if (options.jdbcId !== void 0) {
|
|
91
|
+
body.jdbcId = options.jdbcId;
|
|
92
|
+
}
|
|
93
|
+
return http.post("/agentAiShortcut/runQuery", body);
|
|
94
|
+
}
|
|
95
|
+
async function executeDbActionMitra(options) {
|
|
96
|
+
var _a;
|
|
97
|
+
const config = getConfig();
|
|
98
|
+
const body = {
|
|
99
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
100
|
+
dbactionId: options.dbactionId
|
|
101
|
+
};
|
|
102
|
+
if (options.params !== void 0) {
|
|
103
|
+
body.params = options.params;
|
|
104
|
+
}
|
|
105
|
+
return http.post("/agentAiShortcut/executeDbAction", body);
|
|
106
|
+
}
|
|
107
|
+
async function executeActionMitra(options) {
|
|
108
|
+
var _a;
|
|
109
|
+
const config = getConfig();
|
|
110
|
+
const body = {
|
|
111
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
112
|
+
actionId: options.actionId
|
|
113
|
+
};
|
|
114
|
+
if (options.params !== void 0) {
|
|
115
|
+
body.params = options.params;
|
|
116
|
+
}
|
|
117
|
+
return http.post("/agentAiShortcut/runAction", body);
|
|
118
|
+
}
|
|
119
|
+
async function setFileStatusMitra(options) {
|
|
120
|
+
var _a;
|
|
121
|
+
const config = getConfig();
|
|
122
|
+
return http.post("/agentAiShortcut/setFileStatus", {
|
|
123
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
124
|
+
fileName: options.fileName,
|
|
125
|
+
targetPath: options.targetPath
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
async function setVariableMitra(options) {
|
|
129
|
+
var _a;
|
|
130
|
+
const config = getConfig();
|
|
131
|
+
const body = {
|
|
132
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
133
|
+
key: options.key
|
|
134
|
+
};
|
|
135
|
+
if (options.value !== void 0) {
|
|
136
|
+
body.value = options.value;
|
|
137
|
+
}
|
|
138
|
+
return http.post("/agentAiShortcut/setVariable", body);
|
|
139
|
+
}
|
|
140
|
+
async function executeServerFunctionMitra(options) {
|
|
141
|
+
var _a;
|
|
142
|
+
const config = getConfig();
|
|
143
|
+
const body = {
|
|
144
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
145
|
+
serverfunctionId: options.serverfunctionId
|
|
146
|
+
};
|
|
147
|
+
if (options.params !== void 0) {
|
|
148
|
+
body.args = options.params;
|
|
149
|
+
}
|
|
150
|
+
return http.post("/agentAiShortcut/executeServerFunction", body);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
exports.clearConfig = clearConfig;
|
|
154
|
+
exports.configureSdkMitra = configureSdkMitra;
|
|
155
|
+
exports.executeActionMitra = executeActionMitra;
|
|
156
|
+
exports.executeDbActionMitra = executeDbActionMitra;
|
|
157
|
+
exports.executeServerFunctionMitra = executeServerFunctionMitra;
|
|
158
|
+
exports.getConfig = getConfig;
|
|
159
|
+
exports.isConfigured = isConfigured;
|
|
160
|
+
exports.runQueryMitra = runQueryMitra;
|
|
161
|
+
exports.setFileStatusMitra = setFileStatusMitra;
|
|
162
|
+
exports.setVariableMitra = setVariableMitra;
|
|
163
|
+
//# sourceMappingURL=index.js.map
|
|
164
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** ID do projeto (opcional, pode ser passado em cada chamada) */\n projectId?: number;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport { getConfig } from './config';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n const config = getConfig();\n\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId ?? config.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
// src/config.ts
|
|
2
|
+
var globalConfig = null;
|
|
3
|
+
function configureSdkMitra(config) {
|
|
4
|
+
var _a;
|
|
5
|
+
if (!config.baseURL) {
|
|
6
|
+
throw new Error("baseURL \xE9 obrigat\xF3rio");
|
|
7
|
+
}
|
|
8
|
+
if (!config.token) {
|
|
9
|
+
throw new Error("token \xE9 obrigat\xF3rio");
|
|
10
|
+
}
|
|
11
|
+
globalConfig = {
|
|
12
|
+
...config,
|
|
13
|
+
timeout: (_a = config.timeout) != null ? _a : 3e4
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
function getConfig() {
|
|
17
|
+
if (!globalConfig) {
|
|
18
|
+
throw new Error("SDK n\xE3o configurado. Chame configureSdkMitra() primeiro.");
|
|
19
|
+
}
|
|
20
|
+
return globalConfig;
|
|
21
|
+
}
|
|
22
|
+
function isConfigured() {
|
|
23
|
+
return globalConfig !== null;
|
|
24
|
+
}
|
|
25
|
+
function clearConfig() {
|
|
26
|
+
globalConfig = null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// src/client.ts
|
|
30
|
+
function getFetch() {
|
|
31
|
+
if (typeof globalThis.fetch === "function") {
|
|
32
|
+
return globalThis.fetch;
|
|
33
|
+
}
|
|
34
|
+
throw new Error("fetch n\xE3o dispon\xEDvel. Use Node.js 18+ ou instale node-fetch.");
|
|
35
|
+
}
|
|
36
|
+
function formatToken(token) {
|
|
37
|
+
return token.startsWith("Bearer ") ? token : `Bearer ${token}`;
|
|
38
|
+
}
|
|
39
|
+
function buildHeaders() {
|
|
40
|
+
const config = getConfig();
|
|
41
|
+
return {
|
|
42
|
+
"Authorization": formatToken(config.token),
|
|
43
|
+
"Content-Type": "application/json"
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function buildUrl(endpoint) {
|
|
47
|
+
const config = getConfig();
|
|
48
|
+
return `${config.baseURL}${endpoint}`;
|
|
49
|
+
}
|
|
50
|
+
var http = {
|
|
51
|
+
async post(endpoint, body) {
|
|
52
|
+
var _a;
|
|
53
|
+
const fetchFn = getFetch();
|
|
54
|
+
const config = getConfig();
|
|
55
|
+
const controller = new AbortController();
|
|
56
|
+
const timeout = (_a = config.timeout) != null ? _a : 3e4;
|
|
57
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
58
|
+
try {
|
|
59
|
+
const response = await fetchFn(buildUrl(endpoint), {
|
|
60
|
+
method: "POST",
|
|
61
|
+
headers: buildHeaders(),
|
|
62
|
+
body: body !== void 0 ? JSON.stringify(body) : void 0,
|
|
63
|
+
signal: controller.signal
|
|
64
|
+
});
|
|
65
|
+
const data = await response.json();
|
|
66
|
+
if (!response.ok) {
|
|
67
|
+
throw {
|
|
68
|
+
message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
|
|
69
|
+
status: response.status,
|
|
70
|
+
details: data
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return data;
|
|
74
|
+
} finally {
|
|
75
|
+
clearTimeout(timeoutId);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// src/services.ts
|
|
81
|
+
async function runQueryMitra(options) {
|
|
82
|
+
var _a;
|
|
83
|
+
const config = getConfig();
|
|
84
|
+
const body = {
|
|
85
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
86
|
+
sql: options.sql
|
|
87
|
+
};
|
|
88
|
+
if (options.jdbcId !== void 0) {
|
|
89
|
+
body.jdbcId = options.jdbcId;
|
|
90
|
+
}
|
|
91
|
+
return http.post("/agentAiShortcut/runQuery", body);
|
|
92
|
+
}
|
|
93
|
+
async function executeDbActionMitra(options) {
|
|
94
|
+
var _a;
|
|
95
|
+
const config = getConfig();
|
|
96
|
+
const body = {
|
|
97
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
98
|
+
dbactionId: options.dbactionId
|
|
99
|
+
};
|
|
100
|
+
if (options.params !== void 0) {
|
|
101
|
+
body.params = options.params;
|
|
102
|
+
}
|
|
103
|
+
return http.post("/agentAiShortcut/executeDbAction", body);
|
|
104
|
+
}
|
|
105
|
+
async function executeActionMitra(options) {
|
|
106
|
+
var _a;
|
|
107
|
+
const config = getConfig();
|
|
108
|
+
const body = {
|
|
109
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
110
|
+
actionId: options.actionId
|
|
111
|
+
};
|
|
112
|
+
if (options.params !== void 0) {
|
|
113
|
+
body.params = options.params;
|
|
114
|
+
}
|
|
115
|
+
return http.post("/agentAiShortcut/runAction", body);
|
|
116
|
+
}
|
|
117
|
+
async function setFileStatusMitra(options) {
|
|
118
|
+
var _a;
|
|
119
|
+
const config = getConfig();
|
|
120
|
+
return http.post("/agentAiShortcut/setFileStatus", {
|
|
121
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
122
|
+
fileName: options.fileName,
|
|
123
|
+
targetPath: options.targetPath
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async function setVariableMitra(options) {
|
|
127
|
+
var _a;
|
|
128
|
+
const config = getConfig();
|
|
129
|
+
const body = {
|
|
130
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
131
|
+
key: options.key
|
|
132
|
+
};
|
|
133
|
+
if (options.value !== void 0) {
|
|
134
|
+
body.value = options.value;
|
|
135
|
+
}
|
|
136
|
+
return http.post("/agentAiShortcut/setVariable", body);
|
|
137
|
+
}
|
|
138
|
+
async function executeServerFunctionMitra(options) {
|
|
139
|
+
var _a;
|
|
140
|
+
const config = getConfig();
|
|
141
|
+
const body = {
|
|
142
|
+
projectId: (_a = options.projectId) != null ? _a : config.projectId,
|
|
143
|
+
serverfunctionId: options.serverfunctionId
|
|
144
|
+
};
|
|
145
|
+
if (options.params !== void 0) {
|
|
146
|
+
body.args = options.params;
|
|
147
|
+
}
|
|
148
|
+
return http.post("/agentAiShortcut/executeServerFunction", body);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export { clearConfig, configureSdkMitra, executeActionMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, isConfigured, runQueryMitra, setFileStatusMitra, setVariableMitra };
|
|
152
|
+
//# sourceMappingURL=index.mjs.map
|
|
153
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * Mitra Interactions SDK - Configuração\n */\n\nexport interface MitraConfig {\n /** URL base da API (ex: https://api.mitra.com) */\n baseURL: string;\n /** Token JWT para autenticação */\n token: string;\n /** ID do projeto (opcional, pode ser passado em cada chamada) */\n projectId?: number;\n /** Timeout em ms (padrão: 30000) */\n timeout?: number;\n}\n\nlet globalConfig: MitraConfig | null = null;\n\n/**\n * Configura o SDK globalmente\n */\nexport function configureSdkMitra(config: MitraConfig): void {\n if (!config.baseURL) {\n throw new Error('baseURL é obrigatório');\n }\n if (!config.token) {\n throw new Error('token é obrigatório');\n }\n\n globalConfig = {\n ...config,\n timeout: config.timeout ?? 30000\n };\n}\n\n/**\n * Obtém a configuração atual\n */\nexport function getConfig(): MitraConfig {\n if (!globalConfig) {\n throw new Error('SDK não configurado. Chame configureSdkMitra() primeiro.');\n }\n return globalConfig;\n}\n\n/**\n * Verifica se o SDK está configurado\n */\nexport function isConfigured(): boolean {\n return globalConfig !== null;\n}\n\n/**\n * Limpa a configuração\n */\nexport function clearConfig(): void {\n globalConfig = null;\n}\n","/**\n * Mitra Interactions SDK - HTTP Client\n */\n\nimport { getConfig } from './config';\n\n/**\n * Obtém a função fetch\n */\nfunction getFetch(): typeof fetch {\n if (typeof globalThis.fetch === 'function') {\n return globalThis.fetch;\n }\n throw new Error('fetch não disponível. Use Node.js 18+ ou instale node-fetch.');\n}\n\n/**\n * Formata o token para Authorization\n */\nfunction formatToken(token: string): string {\n return token.startsWith('Bearer ') ? token : `Bearer ${token}`;\n}\n\n/**\n * Constrói os headers\n */\nfunction buildHeaders(): Record<string, string> {\n const config = getConfig();\n return {\n 'Authorization': formatToken(config.token),\n 'Content-Type': 'application/json'\n };\n}\n\n/**\n * Constrói a URL\n */\nfunction buildUrl(endpoint: string): string {\n const config = getConfig();\n return `${config.baseURL}${endpoint}`;\n}\n\n/**\n * Cliente HTTP\n */\nexport const http = {\n async post<T>(endpoint: string, body?: unknown): Promise<T> {\n const fetchFn = getFetch();\n const config = getConfig();\n\n const controller = new AbortController();\n const timeout = config.timeout ?? 30000;\n const timeoutId = setTimeout(() => controller.abort(), timeout);\n\n try {\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal\n });\n\n const data = await response.json();\n\n if (!response.ok) {\n throw {\n message: data?.message || data?.error || `HTTP ${response.status}`,\n status: response.status,\n details: data\n };\n }\n\n return data as T;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http } from './client';\nimport { getConfig } from './config';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n ExecuteActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions\n} from './types';\n\n/**\n * POST /agentAiShortcut/runQuery\n * Executa query SELECT em um projeto\n */\nexport async function runQueryMitra(options: RunQueryOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n sql: options.sql\n };\n\n if (options.jdbcId !== undefined) {\n body.jdbcId = options.jdbcId;\n }\n\n return http.post('/agentAiShortcut/runQuery', body);\n}\n\n/**\n * POST /agentAiShortcut/executeDbAction\n * Executa uma DBAction (DML) cadastrada\n */\nexport async function executeDbActionMitra(options: ExecuteDbActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n dbactionId: options.dbactionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/executeDbAction', body);\n}\n\n/**\n * POST /agentAiShortcut/runAction\n * Executa uma Action (fluxo de ação) cadastrada\n */\nexport async function executeActionMitra(options: ExecuteActionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n actionId: options.actionId\n };\n\n if (options.params !== undefined) {\n body.params = options.params;\n }\n\n return http.post('/agentAiShortcut/runAction', body);\n}\n\n/**\n * POST /agentAiShortcut/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n const config = getConfig();\n\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.projectId ?? config.projectId,\n fileName: options.fileName,\n targetPath: options.targetPath\n });\n}\n\n/**\n * POST /agentAiShortcut/setVariable\n * Cria ou atualiza uma variável customizada\n */\nexport async function setVariableMitra(options: SetVariableOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n key: options.key\n };\n\n if (options.value !== undefined) {\n body.value = options.value;\n }\n\n return http.post('/agentAiShortcut/setVariable', body);\n}\n\n/**\n * POST /agentAiShortcut/executeServerFunction\n * Executa uma Server Function cadastrada\n */\nexport async function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown> {\n const config = getConfig();\n\n const body: Record<string, unknown> = {\n projectId: options.projectId ?? config.projectId,\n serverfunctionId: options.serverfunctionId\n };\n\n if (options.params !== undefined) {\n body.args = options.params;\n }\n\n return http.post('/agentAiShortcut/executeServerFunction', body);\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mitra-interactions-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "SDK agnóstico para interações com a plataforma Mitra ECP",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.mjs",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --clean",
|
|
20
|
+
"build:watch": "tsup src/index.ts --format cjs,esm --dts --watch",
|
|
21
|
+
"test": "vitest",
|
|
22
|
+
"lint": "eslint src --ext .ts",
|
|
23
|
+
"prepublishOnly": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"mitra",
|
|
27
|
+
"sdk",
|
|
28
|
+
"api",
|
|
29
|
+
"interactions",
|
|
30
|
+
"dbaction",
|
|
31
|
+
"query"
|
|
32
|
+
],
|
|
33
|
+
"author": "Mitra",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^20.10.0",
|
|
37
|
+
"tsup": "^8.0.1",
|
|
38
|
+
"typescript": "^5.3.0",
|
|
39
|
+
"vitest": "^1.0.0"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=14.0.0"
|
|
43
|
+
},
|
|
44
|
+
"browserslist": [
|
|
45
|
+
"> 0.5%",
|
|
46
|
+
"last 2 versions",
|
|
47
|
+
"not dead",
|
|
48
|
+
"IE 11"
|
|
49
|
+
]
|
|
50
|
+
}
|