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 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
@@ -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 };
@@ -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":";;;AAeA,IAAI,YAAA,GAAmC,IAAA;AAKhC,SAAS,kBAAkB,MAAA,EAA2B;AApB7D,EAAA,IAAA,EAAA;AAqBE,EAAA,IAAI,CAAC,OAAO,OAAA,EAAS;AACnB,IAAA,MAAM,IAAI,MAAM,6BAAuB,CAAA;AAAA,EACzC;AACA,EAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACjB,IAAA,MAAM,IAAI,MAAM,2BAAqB,CAAA;AAAA,EACvC;AAEA,EAAA,YAAA,GAAe;AAAA,IACb,GAAG,MAAA;AAAA,IACH,OAAA,EAAA,CAAS,EAAA,GAAA,MAAA,CAAO,OAAA,KAAP,IAAA,GAAA,EAAA,GAAkB;AAAA,GAC7B;AACF;AAKO,SAAS,SAAA,GAAyB;AACvC,EAAA,IAAI,CAAC,YAAA,EAAc;AACjB,IAAA,MAAM,IAAI,MAAM,6DAA0D,CAAA;AAAA,EAC5E;AACA,EAAA,OAAO,YAAA;AACT;AAKO,SAAS,YAAA,GAAwB;AACtC,EAAA,OAAO,YAAA,KAAiB,IAAA;AAC1B;AAKO,SAAS,WAAA,GAAoB;AAClC,EAAA,YAAA,GAAe,IAAA;AACjB;;;AC/CA,SAAS,QAAA,GAAyB;AAChC,EAAA,IAAI,OAAO,UAAA,CAAW,KAAA,KAAU,UAAA,EAAY;AAC1C,IAAA,OAAO,UAAA,CAAW,KAAA;AAAA,EACpB;AACA,EAAA,MAAM,IAAI,MAAM,oEAA8D,CAAA;AAChF;AAKA,SAAS,YAAY,KAAA,EAAuB;AAC1C,EAAA,OAAO,MAAM,UAAA,CAAW,SAAS,CAAA,GAAI,KAAA,GAAQ,UAAU,KAAK,CAAA,CAAA;AAC9D;AAKA,SAAS,YAAA,GAAuC;AAC9C,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,WAAA,CAAY,MAAA,CAAO,KAAK,CAAA;AAAA,IACzC,cAAA,EAAgB;AAAA,GAClB;AACF;AAKA,SAAS,SAAS,QAAA,EAA0B;AAC1C,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,OAAO,CAAA,EAAG,MAAA,CAAO,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA;AACrC;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,MAAM,IAAA,CAAQ,QAAA,EAAkB,IAAA,EAA4B;AA9C9D,IAAA,IAAA,EAAA;AA+CI,IAAA,MAAM,UAAU,QAAA,EAAS;AACzB,IAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,IAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,IAAA,MAAM,OAAA,GAAA,CAAU,EAAA,GAAA,MAAA,CAAO,OAAA,KAAP,IAAA,GAAA,EAAA,GAAkB,GAAA;AAClC,IAAA,MAAM,YAAY,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,OAAO,CAAA;AAE9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,QAAA,CAAS,QAAQ,CAAA,EAAG;AAAA,QACjD,MAAA,EAAQ,MAAA;AAAA,QACR,SAAS,YAAA,EAAa;AAAA,QACtB,MAAM,IAAA,KAAS,KAAA,CAAA,GAAY,IAAA,CAAK,SAAA,CAAU,IAAI,CAAA,GAAI,KAAA,CAAA;AAAA,QAClD,QAAQ,UAAA,CAAW;AAAA,OACpB,CAAA;AAED,MAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,MAAM;AAAA,UACJ,UAAS,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,OAAA,MAAW,6BAAM,KAAA,CAAA,IAAS,CAAA,KAAA,EAAQ,SAAS,MAAM,CAAA,CAAA;AAAA,UAChE,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB,OAAA,EAAS;AAAA,SACX;AAAA,MACF;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,SAAS,CAAA;AAAA,IACxB;AAAA,EACF;AACF,CAAA;;;AC1DA,eAAsB,cAAc,OAAA,EAA4C;AAnBhF,EAAA,IAAA,EAAA;AAoBE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,KAAK,OAAA,CAAQ;AAAA,GACf;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,MAAA,EAAW;AAChC,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AAAA,EACxB;AAEA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,2BAAA,EAA6B,IAAI,CAAA;AACpD;AAMA,eAAsB,qBAAqB,OAAA,EAAmD;AAtC9F,EAAA,IAAA,EAAA;AAuCE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,YAAY,OAAA,CAAQ;AAAA,GACtB;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,MAAA,EAAW;AAChC,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AAAA,EACxB;AAEA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,kCAAA,EAAoC,IAAI,CAAA;AAC3D;AAMA,eAAsB,mBAAmB,OAAA,EAAiD;AAzD1F,EAAA,IAAA,EAAA;AA0DE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,UAAU,OAAA,CAAQ;AAAA,GACpB;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,MAAA,EAAW;AAChC,IAAA,IAAA,CAAK,SAAS,OAAA,CAAQ,MAAA;AAAA,EACxB;AAEA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,4BAAA,EAA8B,IAAI,CAAA;AACrD;AAMA,eAAsB,mBAAmB,OAAA,EAAiD;AA5E1F,EAAA,IAAA,EAAA;AA6EE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,OAAO,IAAA,CAAK,KAAK,gCAAA,EAAkC;AAAA,IACjD,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,YAAY,OAAA,CAAQ;AAAA,GACrB,CAAA;AACH;AAMA,eAAsB,iBAAiB,OAAA,EAA+C;AA1FtF,EAAA,IAAA,EAAA;AA2FE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,KAAK,OAAA,CAAQ;AAAA,GACf;AAEA,EAAA,IAAI,OAAA,CAAQ,UAAU,MAAA,EAAW;AAC/B,IAAA,IAAA,CAAK,QAAQ,OAAA,CAAQ,KAAA;AAAA,EACvB;AAEA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,8BAAA,EAAgC,IAAI,CAAA;AACvD;AAMA,eAAsB,2BAA2B,OAAA,EAAyD;AA7G1G,EAAA,IAAA,EAAA;AA8GE,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,SAAA,EAAA,CAAW,EAAA,GAAA,OAAA,CAAQ,SAAA,KAAR,IAAA,GAAA,EAAA,GAAqB,MAAA,CAAO,SAAA;AAAA,IACvC,kBAAkB,OAAA,CAAQ;AAAA,GAC5B;AAEA,EAAA,IAAI,OAAA,CAAQ,WAAW,MAAA,EAAW;AAChC,IAAA,IAAA,CAAK,OAAO,OAAA,CAAQ,MAAA;AAAA,EACtB;AAEA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,wCAAA,EAA0C,IAAI,CAAA;AACjE","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
+ }