mitra-interactions-sdk 1.0.0 → 1.0.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.
- package/README.md +77 -253
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Mitra Interactions SDK
|
|
2
2
|
|
|
3
|
-
SDK
|
|
3
|
+
SDK para interações com a plataforma Mitra ECP via endpoints `/agentAiShortcut/`.
|
|
4
4
|
|
|
5
5
|
## Instalação
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install
|
|
8
|
+
npm install mitra-interactions-sdk
|
|
9
9
|
# ou
|
|
10
|
-
yarn add
|
|
10
|
+
yarn add mitra-interactions-sdk
|
|
11
11
|
# ou
|
|
12
|
-
pnpm add
|
|
12
|
+
pnpm add mitra-interactions-sdk
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
## Configuração
|
|
@@ -17,249 +17,122 @@ pnpm add @mitra/interactions-sdk
|
|
|
17
17
|
Antes de usar qualquer função, configure o SDK:
|
|
18
18
|
|
|
19
19
|
```typescript
|
|
20
|
-
import {
|
|
20
|
+
import { configureSdkMitra } from 'mitra-interactions-sdk';
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
configureSdkMitra({
|
|
23
23
|
baseURL: 'https://api.mitra.com',
|
|
24
24
|
token: 'seu-jwt-token',
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
screenComponentId: 456, // ID do componente
|
|
28
|
-
timeout: 30000 // Timeout em ms (padrão: 30000)
|
|
25
|
+
projectId: 123, // Opcional, pode ser passado em cada chamada
|
|
26
|
+
timeout: 30000 // Opcional, padrão: 30000ms
|
|
29
27
|
});
|
|
30
28
|
```
|
|
31
29
|
|
|
32
|
-
##
|
|
30
|
+
## Métodos Disponíveis
|
|
33
31
|
|
|
34
|
-
###
|
|
32
|
+
### runQueryMitra
|
|
35
33
|
|
|
36
|
-
|
|
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)
|
|
34
|
+
Executa uma query SQL (SELECT) em um projeto.
|
|
63
35
|
|
|
64
36
|
```typescript
|
|
65
|
-
import {
|
|
37
|
+
import { runQueryMitra } from 'mitra-interactions-sdk';
|
|
66
38
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
//
|
|
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
|
-
]
|
|
39
|
+
const result = await runQueryMitra({
|
|
40
|
+
projectId: 123,
|
|
41
|
+
sql: 'SELECT * FROM usuarios LIMIT 10',
|
|
42
|
+
jdbcId: 1 // Opcional, usa autoConnect se não informado
|
|
80
43
|
});
|
|
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
44
|
```
|
|
88
45
|
|
|
89
|
-
###
|
|
46
|
+
### executeDbActionMitra
|
|
90
47
|
|
|
91
|
-
|
|
92
|
-
import { setVariableMitra, setVariablesBatch } from '@mitra/interactions-sdk';
|
|
48
|
+
Executa uma DBAction (DML) cadastrada.
|
|
93
49
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
//
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
50
|
+
```typescript
|
|
51
|
+
import { executeDbActionMitra } from 'mitra-interactions-sdk';
|
|
52
|
+
|
|
53
|
+
const result = await executeDbActionMitra({
|
|
54
|
+
projectId: 123,
|
|
55
|
+
dbactionId: 456,
|
|
56
|
+
params: { // Opcional
|
|
57
|
+
campo1: 'valor1',
|
|
58
|
+
campo2: 'valor2'
|
|
59
|
+
}
|
|
104
60
|
});
|
|
105
|
-
|
|
106
|
-
// Define múltiplas variáveis
|
|
107
|
-
await setVariablesBatch([
|
|
108
|
-
{ name: 'var1', content: 'valor1' },
|
|
109
|
-
{ name: 'var2', content: { objeto: true } }
|
|
110
|
-
]);
|
|
111
61
|
```
|
|
112
62
|
|
|
113
|
-
###
|
|
63
|
+
### executeActionMitra
|
|
114
64
|
|
|
115
|
-
|
|
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
|
|
65
|
+
Executa uma Action (fluxo de ação) cadastrada.
|
|
129
66
|
|
|
130
67
|
```typescript
|
|
131
|
-
import {
|
|
132
|
-
|
|
133
|
-
// Obtém URL autenticada
|
|
134
|
-
const result = await downloadFileMitra({ fileKey: 'path/to/file.pdf' });
|
|
135
|
-
console.log(result.url);
|
|
68
|
+
import { executeActionMitra } from 'mitra-interactions-sdk';
|
|
136
69
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
//
|
|
141
|
-
const result = await downloadFileMitra({
|
|
142
|
-
fileKey: 'path/to/file.pdf',
|
|
143
|
-
asBlob: true
|
|
70
|
+
const result = await executeActionMitra({
|
|
71
|
+
projectId: 123,
|
|
72
|
+
actionId: 789,
|
|
73
|
+
params: {} // Opcional
|
|
144
74
|
});
|
|
145
|
-
|
|
146
|
-
// Dispara download no browser
|
|
147
|
-
await downloadFile('path/to/file.pdf', 'meu-arquivo.pdf');
|
|
148
75
|
```
|
|
149
76
|
|
|
150
|
-
|
|
77
|
+
### executeServerFunctionMitra
|
|
151
78
|
|
|
152
|
-
|
|
153
|
-
import { MitraSDK, createMitraSDK } from '@mitra/interactions-sdk';
|
|
79
|
+
Executa uma Server Function cadastrada.
|
|
154
80
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
baseURL: 'https://api.mitra.com',
|
|
158
|
-
token: 'seu-jwt-token'
|
|
159
|
-
});
|
|
81
|
+
```typescript
|
|
82
|
+
import { executeServerFunctionMitra } from 'mitra-interactions-sdk';
|
|
160
83
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
84
|
+
const result = await executeServerFunctionMitra({
|
|
85
|
+
projectId: 123,
|
|
86
|
+
serverfunctionId: 101,
|
|
87
|
+
params: { // Opcional
|
|
88
|
+
arg1: 'valor1'
|
|
89
|
+
}
|
|
165
90
|
});
|
|
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
91
|
```
|
|
172
92
|
|
|
173
|
-
|
|
93
|
+
### setFileStatusMitra
|
|
174
94
|
|
|
175
|
-
|
|
95
|
+
Move arquivo do chat para PUBLIC ou LOADABLE.
|
|
176
96
|
|
|
177
97
|
```typescript
|
|
178
|
-
import {
|
|
98
|
+
import { setFileStatusMitra } from 'mitra-interactions-sdk';
|
|
179
99
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
100
|
+
const result = await setFileStatusMitra({
|
|
101
|
+
projectId: 123,
|
|
102
|
+
fileName: 'arquivo.jpg',
|
|
103
|
+
targetPath: 'PUBLIC' // 'PUBLIC' ou 'LOADABLE'
|
|
104
|
+
});
|
|
185
105
|
```
|
|
186
106
|
|
|
187
|
-
|
|
107
|
+
### setVariableMitra
|
|
188
108
|
|
|
189
|
-
|
|
109
|
+
Cria ou atualiza uma variável customizada.
|
|
190
110
|
|
|
191
111
|
```typescript
|
|
192
|
-
|
|
193
|
-
import { configure } from '@mitra/interactions-sdk';
|
|
112
|
+
import { setVariableMitra } from 'mitra-interactions-sdk';
|
|
194
113
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// main.ts
|
|
202
|
-
app.use(mitraPlugin, {
|
|
203
|
-
baseURL: import.meta.env.VITE_API_URL,
|
|
204
|
-
token: getToken()
|
|
114
|
+
const result = await setVariableMitra({
|
|
115
|
+
projectId: 123,
|
|
116
|
+
key: 'minhaVariavel',
|
|
117
|
+
value: 'meuValor' // Opcional
|
|
205
118
|
});
|
|
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
119
|
```
|
|
231
120
|
|
|
232
|
-
|
|
121
|
+
## Tratamento de Erros
|
|
233
122
|
|
|
234
123
|
```typescript
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
query = queryMitra;
|
|
246
|
-
dbaction = dbactionMitra;
|
|
124
|
+
try {
|
|
125
|
+
const result = await runQueryMitra({
|
|
126
|
+
projectId: 123,
|
|
127
|
+
sql: 'SELECT * FROM tabela'
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
console.log('Erro:', error.message);
|
|
131
|
+
console.log('Status:', error.status);
|
|
132
|
+
console.log('Detalhes:', error.details);
|
|
247
133
|
}
|
|
248
134
|
```
|
|
249
135
|
|
|
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
136
|
## Tipos TypeScript
|
|
264
137
|
|
|
265
138
|
Todos os tipos estão incluídos:
|
|
@@ -267,62 +140,13 @@ Todos os tipos estão incluídos:
|
|
|
267
140
|
```typescript
|
|
268
141
|
import type {
|
|
269
142
|
MitraConfig,
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
|
143
|
+
RunQueryOptions,
|
|
144
|
+
ExecuteDbActionOptions,
|
|
145
|
+
ExecuteActionOptions,
|
|
146
|
+
ExecuteServerFunctionOptions,
|
|
147
|
+
SetFileStatusOptions,
|
|
148
|
+
SetVariableOptions
|
|
149
|
+
} from 'mitra-interactions-sdk';
|
|
326
150
|
```
|
|
327
151
|
|
|
328
152
|
## Licença
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mitra-interactions-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "SDK agnóstico para interações com a plataforma Mitra ECP",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
|
-
"dist"
|
|
16
|
+
"dist",
|
|
17
|
+
"README.md"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|
|
19
20
|
"build": "tsup src/index.ts --format cjs,esm --dts --clean",
|