mitra-interactions-sdk 1.0.8 → 1.0.10

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 CHANGED
@@ -14,18 +14,25 @@ pnpm add mitra-interactions-sdk
14
14
 
15
15
  ## Configuração
16
16
 
17
- Antes de usar qualquer função, configure o SDK:
17
+ Antes de usar qualquer função, configure o SDK com seu token da plataforma Mitra.
18
+
19
+ > **Importante:** O token é um JWT de autenticação da plataforma Mitra. **Nunca deixe o token estático no código.** Utilize variáveis de ambiente para armazená-lo de forma segura.
18
20
 
19
21
  ```typescript
20
22
  import { configureSdkMitra } from 'mitra-interactions-sdk';
21
23
 
22
24
  configureSdkMitra({
23
- baseURL: 'https://api.mitra.com',
24
- token: 'seu-jwt-token',
25
- timeout: 30000 // Opcional, padrão: 30000ms
25
+ baseURL: process.env.MITRA_BASE_URL || 'https://api.mitra.com',
26
+ token: process.env.MITRA_TOKEN!
26
27
  });
27
28
  ```
28
29
 
30
+ Exemplo de `.env`:
31
+ ```
32
+ MITRA_BASE_URL=https://api.mitra.com
33
+ MITRA_TOKEN=seu-jwt-token-da-plataforma-mitra
34
+ ```
35
+
29
36
  ## Métodos Disponíveis
30
37
 
31
38
  ### runQueryMitra
@@ -75,6 +82,19 @@ const result = await executeServerFunctionMitra({
75
82
  });
76
83
  ```
77
84
 
85
+ ### stopServerFunctionExecutionMitra
86
+
87
+ Para a execução de uma Server Function em andamento.
88
+
89
+ ```typescript
90
+ import { stopServerFunctionExecutionMitra } from 'mitra-interactions-sdk';
91
+
92
+ const result = await stopServerFunctionExecutionMitra({
93
+ projectId: 123,
94
+ executionId: 'exec-uuid-aqui'
95
+ });
96
+ ```
97
+
78
98
  ### setFileStatusMitra
79
99
 
80
100
  Move arquivo do chat para PUBLIC ou LOADABLE.
@@ -107,13 +127,15 @@ const result = await setVariableMitra({
107
127
 
108
128
  CRUD completo em tabelas do projeto via Dynamic Schema (usa header `X-TenantID`).
109
129
 
110
- - `listRecordsMitra({ projectId, tableName, page?, size?, filters? })` - Lista registros com paginação
111
- - `getRecordMitra({ projectId, tableName, id })` - Busca registro por ID
112
- - `createRecordMitra({ projectId, tableName, data })` - Cria registro
113
- - `updateRecordMitra({ projectId, tableName, id, data })` - Atualiza registro (PUT)
114
- - `patchRecordMitra({ projectId, tableName, id, data })` - Atualiza parcialmente (PATCH)
115
- - `deleteRecordMitra({ projectId, tableName, id })` - Remove registro
116
- - `createRecordsBatchMitra({ projectId, tableName, records })` - Cria múltiplos registros
130
+ Todos os endpoints suportam o parâmetro opcional `jdbcConnectionConfigId` para operar em datasources adicionais (PostgreSQL, Oracle, SQL Server, etc.) ao invés do banco principal do tenant.
131
+
132
+ - `listRecordsMitra({ projectId, tableName, page?, size?, filters?, jdbcConnectionConfigId? })` - Lista registros com paginação
133
+ - `getRecordMitra({ projectId, tableName, id, jdbcConnectionConfigId? })` - Busca registro por ID
134
+ - `createRecordMitra({ projectId, tableName, data, jdbcConnectionConfigId? })` - Cria registro
135
+ - `updateRecordMitra({ projectId, tableName, id, data, jdbcConnectionConfigId? })` - Atualiza registro (PUT)
136
+ - `patchRecordMitra({ projectId, tableName, id, data, jdbcConnectionConfigId? })` - Atualiza parcialmente (PATCH)
137
+ - `deleteRecordMitra({ projectId, tableName, id, jdbcConnectionConfigId? })` - Remove registro
138
+ - `createRecordsBatchMitra({ projectId, tableName, records, jdbcConnectionConfigId? })` - Cria múltiplos registros
117
139
 
118
140
  ```typescript
119
141
  import { listRecordsMitra, createRecordMitra, updateRecordMitra, deleteRecordMitra } from 'mitra-interactions-sdk';
@@ -143,6 +165,13 @@ await updateRecordMitra({
143
165
 
144
166
  // Deletar registro
145
167
  await deleteRecordMitra({ projectId: 123, tableName: 'produtos', id: 1 });
168
+
169
+ // Usando datasource adicional (jdbcConnectionConfigId)
170
+ const result2 = await listRecordsMitra({
171
+ projectId: 123,
172
+ tableName: 'clientes',
173
+ jdbcConnectionConfigId: 5
174
+ });
146
175
  ```
147
176
 
148
177
  ## Tratamento de Erros
@@ -170,6 +199,7 @@ import type {
170
199
  RunQueryOptions,
171
200
  ExecuteDbActionOptions,
172
201
  ExecuteServerFunctionOptions,
202
+ StopServerFunctionExecutionOptions,
173
203
  SetFileStatusOptions,
174
204
  SetVariableOptions,
175
205
  ListRecordsOptions,
package/dist/index.d.mts CHANGED
@@ -6,8 +6,6 @@ interface MitraConfig {
6
6
  baseURL: string;
7
7
  /** Token JWT para autenticação */
8
8
  token: string;
9
- /** Timeout em ms (padrão: 30000) */
10
- timeout?: number;
11
9
  }
12
10
  /**
13
11
  * Configura o SDK globalmente
@@ -75,38 +73,51 @@ interface ListRecordsOptions {
75
73
  page?: number;
76
74
  size?: number;
77
75
  filters?: Record<string, unknown>;
76
+ jdbcConnectionConfigId?: number;
78
77
  }
79
78
  interface GetRecordOptions {
80
79
  projectId: number;
81
80
  tableName: string;
82
81
  id: number;
82
+ jdbcConnectionConfigId?: number;
83
83
  }
84
84
  interface CreateRecordOptions {
85
85
  projectId: number;
86
86
  tableName: string;
87
87
  data: Record<string, unknown>;
88
+ jdbcConnectionConfigId?: number;
88
89
  }
89
90
  interface UpdateRecordOptions {
90
91
  projectId: number;
91
92
  tableName: string;
92
93
  id: number;
93
94
  data: Record<string, unknown>;
95
+ jdbcConnectionConfigId?: number;
94
96
  }
95
97
  interface PatchRecordOptions {
96
98
  projectId: number;
97
99
  tableName: string;
98
100
  id: number;
99
101
  data: Record<string, unknown>;
102
+ jdbcConnectionConfigId?: number;
100
103
  }
101
104
  interface DeleteRecordOptions {
102
105
  projectId: number;
103
106
  tableName: string;
104
107
  id: number;
108
+ jdbcConnectionConfigId?: number;
105
109
  }
106
110
  interface CreateRecordsBatchOptions {
107
111
  projectId: number;
108
112
  tableName: string;
109
113
  records: Record<string, unknown>[];
114
+ jdbcConnectionConfigId?: number;
115
+ }
116
+ interface StopServerFunctionExecutionOptions {
117
+ /** ID do projeto */
118
+ projectId: number;
119
+ /** ID da execução a ser parada */
120
+ executionId: string;
110
121
  }
111
122
 
112
123
  /**
@@ -138,6 +149,11 @@ declare function setVariableMitra(options: SetVariableOptions): Promise<unknown>
138
149
  * Executa uma Server Function cadastrada
139
150
  */
140
151
  declare function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown>;
152
+ /**
153
+ * POST /agentAiShortcut/stopServerFunctionExecution
154
+ * Para a execução de uma Server Function em andamento
155
+ */
156
+ declare function stopServerFunctionExecutionMitra(options: StopServerFunctionExecutionOptions): Promise<unknown>;
141
157
  declare function listRecordsMitra(options: ListRecordsOptions): Promise<unknown>;
142
158
  declare function getRecordMitra(options: GetRecordOptions): Promise<unknown>;
143
159
  declare function createRecordMitra(options: CreateRecordOptions): Promise<unknown>;
@@ -146,4 +162,4 @@ declare function patchRecordMitra(options: PatchRecordOptions): Promise<unknown>
146
162
  declare function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown>;
147
163
  declare function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown>;
148
164
 
149
- export { type CreateRecordOptions, type CreateRecordsBatchOptions, type DeleteRecordOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type GetRecordOptions, type ListRecordsOptions, type MitraConfig, type PatchRecordOptions, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, type UpdateRecordOptions, clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, updateRecordMitra };
165
+ export { type CreateRecordOptions, type CreateRecordsBatchOptions, type DeleteRecordOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type GetRecordOptions, type ListRecordsOptions, type MitraConfig, type PatchRecordOptions, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, type StopServerFunctionExecutionOptions, type UpdateRecordOptions, clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, stopServerFunctionExecutionMitra, updateRecordMitra };
package/dist/index.d.ts CHANGED
@@ -6,8 +6,6 @@ interface MitraConfig {
6
6
  baseURL: string;
7
7
  /** Token JWT para autenticação */
8
8
  token: string;
9
- /** Timeout em ms (padrão: 30000) */
10
- timeout?: number;
11
9
  }
12
10
  /**
13
11
  * Configura o SDK globalmente
@@ -75,38 +73,51 @@ interface ListRecordsOptions {
75
73
  page?: number;
76
74
  size?: number;
77
75
  filters?: Record<string, unknown>;
76
+ jdbcConnectionConfigId?: number;
78
77
  }
79
78
  interface GetRecordOptions {
80
79
  projectId: number;
81
80
  tableName: string;
82
81
  id: number;
82
+ jdbcConnectionConfigId?: number;
83
83
  }
84
84
  interface CreateRecordOptions {
85
85
  projectId: number;
86
86
  tableName: string;
87
87
  data: Record<string, unknown>;
88
+ jdbcConnectionConfigId?: number;
88
89
  }
89
90
  interface UpdateRecordOptions {
90
91
  projectId: number;
91
92
  tableName: string;
92
93
  id: number;
93
94
  data: Record<string, unknown>;
95
+ jdbcConnectionConfigId?: number;
94
96
  }
95
97
  interface PatchRecordOptions {
96
98
  projectId: number;
97
99
  tableName: string;
98
100
  id: number;
99
101
  data: Record<string, unknown>;
102
+ jdbcConnectionConfigId?: number;
100
103
  }
101
104
  interface DeleteRecordOptions {
102
105
  projectId: number;
103
106
  tableName: string;
104
107
  id: number;
108
+ jdbcConnectionConfigId?: number;
105
109
  }
106
110
  interface CreateRecordsBatchOptions {
107
111
  projectId: number;
108
112
  tableName: string;
109
113
  records: Record<string, unknown>[];
114
+ jdbcConnectionConfigId?: number;
115
+ }
116
+ interface StopServerFunctionExecutionOptions {
117
+ /** ID do projeto */
118
+ projectId: number;
119
+ /** ID da execução a ser parada */
120
+ executionId: string;
110
121
  }
111
122
 
112
123
  /**
@@ -138,6 +149,11 @@ declare function setVariableMitra(options: SetVariableOptions): Promise<unknown>
138
149
  * Executa uma Server Function cadastrada
139
150
  */
140
151
  declare function executeServerFunctionMitra(options: ExecuteServerFunctionOptions): Promise<unknown>;
152
+ /**
153
+ * POST /agentAiShortcut/stopServerFunctionExecution
154
+ * Para a execução de uma Server Function em andamento
155
+ */
156
+ declare function stopServerFunctionExecutionMitra(options: StopServerFunctionExecutionOptions): Promise<unknown>;
141
157
  declare function listRecordsMitra(options: ListRecordsOptions): Promise<unknown>;
142
158
  declare function getRecordMitra(options: GetRecordOptions): Promise<unknown>;
143
159
  declare function createRecordMitra(options: CreateRecordOptions): Promise<unknown>;
@@ -146,4 +162,4 @@ declare function patchRecordMitra(options: PatchRecordOptions): Promise<unknown>
146
162
  declare function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown>;
147
163
  declare function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown>;
148
164
 
149
- export { type CreateRecordOptions, type CreateRecordsBatchOptions, type DeleteRecordOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type GetRecordOptions, type ListRecordsOptions, type MitraConfig, type PatchRecordOptions, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, type UpdateRecordOptions, clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, updateRecordMitra };
165
+ export { type CreateRecordOptions, type CreateRecordsBatchOptions, type DeleteRecordOptions, type ExecuteDbActionOptions, type ExecuteServerFunctionOptions, type GetRecordOptions, type ListRecordsOptions, type MitraConfig, type PatchRecordOptions, type RunQueryOptions, type SetFileStatusOptions, type SetVariableOptions, type StopServerFunctionExecutionOptions, type UpdateRecordOptions, clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, stopServerFunctionExecutionMitra, updateRecordMitra };
package/dist/index.js CHANGED
@@ -3,7 +3,6 @@
3
3
  // src/config.ts
4
4
  var globalConfig = null;
5
5
  function configureSdkMitra(config) {
6
- var _a;
7
6
  if (!config.baseURL) {
8
7
  throw new Error("baseURL \xE9 obrigat\xF3rio");
9
8
  }
@@ -12,8 +11,7 @@ function configureSdkMitra(config) {
12
11
  }
13
12
  globalConfig = {
14
13
  ...config,
15
- baseURL: config.baseURL.replace(/\/+$/, ""),
16
- timeout: (_a = config.timeout) != null ? _a : 3e4
14
+ baseURL: config.baseURL.replace(/\/+$/, "")
17
15
  };
18
16
  }
19
17
  function getConfig() {
@@ -57,51 +55,11 @@ function buildUrl(endpoint, params) {
57
55
  }
58
56
  var http = {
59
57
  async post(endpoint, body) {
60
- var _a;
61
58
  const fetchFn = getFetch();
62
- const config = getConfig();
63
- const controller = new AbortController();
64
- const timeout = (_a = config.timeout) != null ? _a : 3e4;
65
- const timeoutId = setTimeout(() => controller.abort(), timeout);
66
- try {
67
- const response = await fetchFn(buildUrl(endpoint), {
68
- method: "POST",
69
- headers: buildHeaders(),
70
- body: body !== void 0 ? JSON.stringify(body) : void 0,
71
- signal: controller.signal
72
- });
73
- const text = await response.text();
74
- const data = text ? JSON.parse(text) : null;
75
- if (!response.ok) {
76
- throw {
77
- message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
78
- status: response.status,
79
- details: data
80
- };
81
- }
82
- return data;
83
- } finally {
84
- clearTimeout(timeoutId);
85
- }
86
- }
87
- };
88
- async function requestWithTenant(method, endpoint, tenantId, options) {
89
- var _a;
90
- const fetchFn = getFetch();
91
- const config = getConfig();
92
- const controller = new AbortController();
93
- const timeout = (_a = config.timeout) != null ? _a : 3e4;
94
- const timeoutId = setTimeout(() => controller.abort(), timeout);
95
- try {
96
- const headers = {
97
- ...buildHeaders(),
98
- "X-TenantID": String(tenantId)
99
- };
100
- const response = await fetchFn(buildUrl(endpoint, options == null ? void 0 : options.params), {
101
- method,
102
- headers,
103
- body: (options == null ? void 0 : options.body) !== void 0 ? JSON.stringify(options.body) : void 0,
104
- signal: controller.signal
59
+ const response = await fetchFn(buildUrl(endpoint), {
60
+ method: "POST",
61
+ headers: buildHeaders(),
62
+ body: body !== void 0 ? JSON.stringify(body) : void 0
105
63
  });
106
64
  const text = await response.text();
107
65
  const data = text ? JSON.parse(text) : null;
@@ -113,25 +71,45 @@ async function requestWithTenant(method, endpoint, tenantId, options) {
113
71
  };
114
72
  }
115
73
  return data;
116
- } finally {
117
- clearTimeout(timeoutId);
118
74
  }
75
+ };
76
+ async function requestWithTenant(method, endpoint, tenantId, options) {
77
+ const fetchFn = getFetch();
78
+ const headers = {
79
+ ...buildHeaders(),
80
+ "X-TenantID": String(tenantId)
81
+ };
82
+ const response = await fetchFn(buildUrl(endpoint, options == null ? void 0 : options.params), {
83
+ method,
84
+ headers,
85
+ body: (options == null ? void 0 : options.body) !== void 0 ? JSON.stringify(options.body) : void 0
86
+ });
87
+ const text = await response.text();
88
+ const data = text ? JSON.parse(text) : null;
89
+ if (!response.ok) {
90
+ throw {
91
+ message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
92
+ status: response.status,
93
+ details: data
94
+ };
95
+ }
96
+ return data;
119
97
  }
120
98
  var httpTenant = {
121
99
  get(endpoint, tenantId, params) {
122
100
  return requestWithTenant("GET", endpoint, tenantId, { params });
123
101
  },
124
- post(endpoint, tenantId, body) {
125
- return requestWithTenant("POST", endpoint, tenantId, { body });
102
+ post(endpoint, tenantId, body, params) {
103
+ return requestWithTenant("POST", endpoint, tenantId, { body, params });
126
104
  },
127
- put(endpoint, tenantId, body) {
128
- return requestWithTenant("PUT", endpoint, tenantId, { body });
105
+ put(endpoint, tenantId, body, params) {
106
+ return requestWithTenant("PUT", endpoint, tenantId, { body, params });
129
107
  },
130
- patch(endpoint, tenantId, body) {
131
- return requestWithTenant("PATCH", endpoint, tenantId, { body });
108
+ patch(endpoint, tenantId, body, params) {
109
+ return requestWithTenant("PATCH", endpoint, tenantId, { body, params });
132
110
  },
133
- del(endpoint, tenantId) {
134
- return requestWithTenant("DELETE", endpoint, tenantId);
111
+ del(endpoint, tenantId, params) {
112
+ return requestWithTenant("DELETE", endpoint, tenantId, { params });
135
113
  }
136
114
  };
137
115
 
@@ -183,33 +161,39 @@ async function executeServerFunctionMitra(options) {
183
161
  }
184
162
  return http.post("/agentAiShortcut/executeServerFunction", body);
185
163
  }
164
+ async function stopServerFunctionExecutionMitra(options) {
165
+ return http.post("/agentAiShortcut/stopServerFunctionExecution", {
166
+ projectId: options.projectId,
167
+ executionId: options.executionId
168
+ });
169
+ }
186
170
  async function listRecordsMitra(options) {
187
- const { tableName, projectId, page, size, filters } = options;
188
- return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, ...filters });
171
+ const { tableName, projectId, page, size, filters, jdbcConnectionConfigId } = options;
172
+ return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, jdbcConnectionConfigId, ...filters });
189
173
  }
190
174
  async function getRecordMitra(options) {
191
- const { tableName, id, projectId } = options;
192
- return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId);
175
+ const { tableName, id, projectId, jdbcConnectionConfigId } = options;
176
+ return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });
193
177
  }
194
178
  async function createRecordMitra(options) {
195
- const { tableName, projectId, data } = options;
196
- return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data);
179
+ const { tableName, projectId, data, jdbcConnectionConfigId } = options;
180
+ return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data, { jdbcConnectionConfigId });
197
181
  }
198
182
  async function updateRecordMitra(options) {
199
- const { tableName, id, projectId, data } = options;
200
- return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data);
183
+ const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;
184
+ return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });
201
185
  }
202
186
  async function patchRecordMitra(options) {
203
- const { tableName, id, projectId, data } = options;
204
- return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data);
187
+ const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;
188
+ return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });
205
189
  }
206
190
  async function deleteRecordMitra(options) {
207
- const { tableName, id, projectId } = options;
208
- return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId);
191
+ const { tableName, id, projectId, jdbcConnectionConfigId } = options;
192
+ return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });
209
193
  }
210
194
  async function createRecordsBatchMitra(options) {
211
- const { tableName, projectId, records } = options;
212
- return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records);
195
+ const { tableName, projectId, records, jdbcConnectionConfigId } = options;
196
+ return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records, { jdbcConnectionConfigId });
213
197
  }
214
198
 
215
199
  exports.clearConfig = clearConfig;
@@ -227,6 +211,7 @@ exports.patchRecordMitra = patchRecordMitra;
227
211
  exports.runQueryMitra = runQueryMitra;
228
212
  exports.setFileStatusMitra = setFileStatusMitra;
229
213
  exports.setVariableMitra = setVariableMitra;
214
+ exports.stopServerFunctionExecutionMitra = stopServerFunctionExecutionMitra;
230
215
  exports.updateRecordMitra = updateRecordMitra;
231
216
  //# sourceMappingURL=index.js.map
232
217
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config.ts","../src/client.ts","../src/services.ts"],"names":[],"mappings":";;;AAaA,IAAI,YAAA,GAAmC,IAAA;AAKhC,SAAS,kBAAkB,MAAA,EAA2B;AAlB7D,EAAA,IAAA,EAAA;AAmBE,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,EAAS,MAAA,CAAO,OAAA,CAAQ,OAAA,CAAQ,QAAQ,EAAE,CAAA;AAAA,IAC1C,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;;;AC9CA,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,QAAA,CAAS,UAAkB,MAAA,EAA0C;AAC5E,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,IAAI,GAAA,GAAM,CAAA,EAAG,MAAA,CAAO,OAAO,GAAG,QAAQ,CAAA,CAAA;AACtC,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,MAAM,EAChC,MAAA,CAAO,CAAC,GAAG,CAAC,CAAA,KAAM,CAAA,KAAM,MAAA,IAAa,CAAA,KAAM,IAAI,CAAA,CAC/C,GAAA,CAAI,CAAC,CAAC,GAAG,CAAC,CAAA,KAAM,CAAA,EAAG,kBAAA,CAAmB,CAAC,CAAC,CAAA,CAAA,EAAI,kBAAA,CAAmB,MAAA,CAAO,CAAC,CAAC,CAAC,CAAA,CAAE,CAAA,CAC3E,KAAK,GAAG,CAAA;AACX,IAAA,IAAI,KAAA,EAAO,GAAA,IAAO,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,EAC7B;AACA,EAAA,OAAO,GAAA;AACT;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,MAAM,IAAA,CAAQ,QAAA,EAAkB,IAAA,EAA4B;AAtD9D,IAAA,IAAA,EAAA;AAuDI,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;AACjC,MAAA,MAAM,IAAA,GAAO,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,GAAI,IAAA;AAEvC,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;AAGA,eAAe,iBAAA,CACb,MAAA,EACA,QAAA,EACA,QAAA,EACA,OAAA,EACY;AA9Fd,EAAA,IAAA,EAAA;AA+FE,EAAA,MAAM,UAAU,QAAA,EAAS;AACzB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,EAAA,MAAM,OAAA,GAAA,CAAU,EAAA,GAAA,MAAA,CAAO,OAAA,KAAP,IAAA,GAAA,EAAA,GAAkB,GAAA;AAClC,EAAA,MAAM,YAAY,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,OAAO,CAAA;AAE9D,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,GAAG,YAAA,EAAa;AAAA,MAChB,YAAA,EAAc,OAAO,QAAQ;AAAA,KAC/B;AAEA,IAAA,MAAM,WAAW,MAAM,OAAA,CAAQ,SAAS,QAAA,EAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAS,MAAM,CAAA,EAAG;AAAA,MAClE,MAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA,EAAA,CAAM,mCAAS,IAAA,MAAS,KAAA,CAAA,GAAY,KAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA,GAAI,KAAA,CAAA;AAAA,MACnE,QAAQ,UAAA,CAAW;AAAA,KACpB,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,IAAA,MAAM,IAAA,GAAO,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,GAAI,IAAA;AAEvC,IAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,MAAA,MAAM;AAAA,QACJ,UAAS,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,OAAA,MAAW,6BAAM,KAAA,CAAA,IAAS,CAAA,KAAA,EAAQ,SAAS,MAAM,CAAA,CAAA;AAAA,QAChE,QAAQ,QAAA,CAAS,MAAA;AAAA,QACjB,OAAA,EAAS;AAAA,OACX;AAAA,IACF;AAEA,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,SAAE;AACA,IAAA,YAAA,CAAa,SAAS,CAAA;AAAA,EACxB;AACF;AAEO,IAAM,UAAA,GAAa;AAAA,EACxB,GAAA,CAAO,QAAA,EAAkB,QAAA,EAAkB,MAAA,EAA8C;AACvF,IAAA,OAAO,kBAAkB,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,EAAE,QAAQ,CAAA;AAAA,EAChE,CAAA;AAAA,EACA,IAAA,CAAQ,QAAA,EAAkB,QAAA,EAAkB,IAAA,EAA4B;AACtE,IAAA,OAAO,kBAAkB,MAAA,EAAQ,QAAA,EAAU,QAAA,EAAU,EAAE,MAAM,CAAA;AAAA,EAC/D,CAAA;AAAA,EACA,GAAA,CAAO,QAAA,EAAkB,QAAA,EAAkB,IAAA,EAA4B;AACrE,IAAA,OAAO,kBAAkB,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,EAAE,MAAM,CAAA;AAAA,EAC9D,CAAA;AAAA,EACA,KAAA,CAAS,QAAA,EAAkB,QAAA,EAAkB,IAAA,EAA4B;AACvE,IAAA,OAAO,kBAAkB,OAAA,EAAS,QAAA,EAAU,QAAA,EAAU,EAAE,MAAM,CAAA;AAAA,EAChE,CAAA;AAAA,EACA,GAAA,CAAO,UAAkB,QAAA,EAA8B;AACrD,IAAA,OAAO,iBAAA,CAAkB,QAAA,EAAU,QAAA,EAAU,QAAQ,CAAA;AAAA,EACvD;AACF,CAAA;;;AC5HA,eAAsB,cAAc,OAAA,EAA4C;AAC9E,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,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;AAC5F,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,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;AACxF,EAAA,OAAO,IAAA,CAAK,KAAK,gCAAA,EAAkC;AAAA,IACjD,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,UAAU,OAAA,CAAQ,QAAA;AAAA,IAClB,YAAY,OAAA,CAAQ;AAAA,GACrB,CAAA;AACH;AAMA,eAAsB,iBAAiB,OAAA,EAA+C;AACpF,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,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;AACxG,EAAA,MAAM,IAAA,GAAgC;AAAA,IACpC,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,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;AAIA,eAAsB,iBAAiB,OAAA,EAA+C;AACpF,EAAA,MAAM,EAAE,SAAA,EAAW,SAAA,EAAW,IAAA,EAAM,IAAA,EAAM,SAAQ,GAAI,OAAA;AACtD,EAAA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,EAAI,SAAA,EAAW,EAAE,IAAA,EAAM,IAAA,EAAM,GAAG,OAAA,EAAS,CAAA;AAC1F;AAEA,eAAsB,eAAe,OAAA,EAA6C;AAChF,EAAA,MAAM,EAAE,SAAA,EAAW,EAAA,EAAI,SAAA,EAAU,GAAI,OAAA;AACrC,EAAA,OAAO,WAAW,GAAA,CAAI,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,EAAI,EAAE,IAAI,SAAS,CAAA;AACpE;AAEA,eAAsB,kBAAkB,OAAA,EAAgD;AACtF,EAAA,MAAM,EAAE,SAAA,EAAW,SAAA,EAAW,IAAA,EAAK,GAAI,OAAA;AACvC,EAAA,OAAO,WAAW,IAAA,CAAK,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,EAAI,WAAW,IAAI,CAAA;AACrE;AAEA,eAAsB,kBAAkB,OAAA,EAAgD;AACtF,EAAA,MAAM,EAAE,SAAA,EAAW,EAAA,EAAI,SAAA,EAAW,MAAK,GAAI,OAAA;AAC3C,EAAA,OAAO,UAAA,CAAW,IAAI,CAAA,aAAA,EAAgB,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,IAAI,CAAA;AAC1E;AAEA,eAAsB,iBAAiB,OAAA,EAA+C;AACpF,EAAA,MAAM,EAAE,SAAA,EAAW,EAAA,EAAI,SAAA,EAAW,MAAK,GAAI,OAAA;AAC3C,EAAA,OAAO,UAAA,CAAW,MAAM,CAAA,aAAA,EAAgB,SAAS,IAAI,EAAE,CAAA,CAAA,EAAI,WAAW,IAAI,CAAA;AAC5E;AAEA,eAAsB,kBAAkB,OAAA,EAAgD;AACtF,EAAA,MAAM,EAAE,SAAA,EAAW,EAAA,EAAI,SAAA,EAAU,GAAI,OAAA;AACrC,EAAA,OAAO,WAAW,GAAA,CAAI,CAAA,aAAA,EAAgB,SAAS,CAAA,CAAA,EAAI,EAAE,IAAI,SAAS,CAAA;AACpE;AAEA,eAAsB,wBAAwB,OAAA,EAAsD;AAClG,EAAA,MAAM,EAAE,SAAA,EAAW,SAAA,EAAW,OAAA,EAAQ,GAAI,OAAA;AAC1C,EAAA,OAAO,WAAW,IAAA,CAAK,CAAA,aAAA,EAAgB,SAAS,CAAA,MAAA,CAAA,EAAU,WAAW,OAAO,CAAA;AAC9E","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 /** 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 baseURL: config.baseURL.replace(/\\/+$/, ''),\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 com query params opcionais\n */\nfunction buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const config = getConfig();\n let url = `${config.baseURL}${endpoint}`;\n if (params) {\n const query = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)\n .join('&');\n if (query) url += `?${query}`;\n }\n return url;\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 text = await response.text();\n const data = text ? JSON.parse(text) : null;\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// HTTP client para Dynamic Schema (usa X-TenantID header)\nasync function requestWithTenant<T>(\n method: string,\n endpoint: string,\n tenantId: number,\n options?: { params?: Record<string, unknown>; body?: unknown }\n): 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 headers = {\n ...buildHeaders(),\n 'X-TenantID': String(tenantId)\n };\n\n const response = await fetchFn(buildUrl(endpoint, options?.params), {\n method,\n headers,\n body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal: controller.signal\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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\nexport const httpTenant = {\n get<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('GET', endpoint, tenantId, { params });\n },\n post<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('POST', endpoint, tenantId, { body });\n },\n put<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('PUT', endpoint, tenantId, { body });\n },\n patch<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('PATCH', endpoint, tenantId, { body });\n },\n del<T>(endpoint: string, tenantId: number): Promise<T> {\n return requestWithTenant('DELETE', endpoint, tenantId);\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http, httpTenant } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions,\n ListRecordsOptions,\n GetRecordOptions,\n CreateRecordOptions,\n UpdateRecordOptions,\n PatchRecordOptions,\n DeleteRecordOptions,\n CreateRecordsBatchOptions\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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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\n// === Dynamic Schema CRUD ===\n\nexport async function listRecordsMitra(options: ListRecordsOptions): Promise<unknown> {\n const { tableName, projectId, page, size, filters } = options;\n return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, ...filters });\n}\n\nexport async function getRecordMitra(options: GetRecordOptions): Promise<unknown> {\n const { tableName, id, projectId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId);\n}\n\nexport async function createRecordMitra(options: CreateRecordOptions): Promise<unknown> {\n const { tableName, projectId, data } = options;\n return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data);\n}\n\nexport async function updateRecordMitra(options: UpdateRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data } = options;\n return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data);\n}\n\nexport async function patchRecordMitra(options: PatchRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data } = options;\n return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data);\n}\n\nexport async function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown> {\n const { tableName, id, projectId } = options;\n return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId);\n}\n\nexport async function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown> {\n const { tableName, projectId, records } = options;\n return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records);\n}\n"]}
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}\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 baseURL: config.baseURL.replace(/\\/+$/, '')\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 com query params opcionais\n */\nfunction buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const config = getConfig();\n let url = `${config.baseURL}${endpoint}`;\n if (params) {\n const query = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)\n .join('&');\n if (query) url += `?${query}`;\n }\n return url;\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\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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 }\n};\n\n// HTTP client para Dynamic Schema (usa X-TenantID header)\nasync function requestWithTenant<T>(\n method: string,\n endpoint: string,\n tenantId: number,\n options?: { params?: Record<string, unknown>; body?: unknown }\n): Promise<T> {\n const fetchFn = getFetch();\n\n const headers = {\n ...buildHeaders(),\n 'X-TenantID': String(tenantId)\n };\n\n const response = await fetchFn(buildUrl(endpoint, options?.params), {\n method,\n headers,\n body: options?.body !== undefined ? JSON.stringify(options.body) : undefined\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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}\n\nexport const httpTenant = {\n get<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('GET', endpoint, tenantId, { params });\n },\n post<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('POST', endpoint, tenantId, { body, params });\n },\n put<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('PUT', endpoint, tenantId, { body, params });\n },\n patch<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('PATCH', endpoint, tenantId, { body, params });\n },\n del<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('DELETE', endpoint, tenantId, { params });\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http, httpTenant } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions,\n StopServerFunctionExecutionOptions,\n ListRecordsOptions,\n GetRecordOptions,\n CreateRecordOptions,\n UpdateRecordOptions,\n PatchRecordOptions,\n DeleteRecordOptions,\n CreateRecordsBatchOptions\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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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\n/**\n * POST /agentAiShortcut/stopServerFunctionExecution\n * Para a execução de uma Server Function em andamento\n */\nexport async function stopServerFunctionExecutionMitra(options: StopServerFunctionExecutionOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/stopServerFunctionExecution', {\n projectId: options.projectId,\n executionId: options.executionId\n });\n}\n\n// === Dynamic Schema CRUD ===\n\nexport async function listRecordsMitra(options: ListRecordsOptions): Promise<unknown> {\n const { tableName, projectId, page, size, filters, jdbcConnectionConfigId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, jdbcConnectionConfigId, ...filters });\n}\n\nexport async function getRecordMitra(options: GetRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, jdbcConnectionConfigId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });\n}\n\nexport async function createRecordMitra(options: CreateRecordOptions): Promise<unknown> {\n const { tableName, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function updateRecordMitra(options: UpdateRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function patchRecordMitra(options: PatchRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, jdbcConnectionConfigId } = options;\n return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });\n}\n\nexport async function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown> {\n const { tableName, projectId, records, jdbcConnectionConfigId } = options;\n return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records, { jdbcConnectionConfigId });\n}\n"]}
package/dist/index.mjs CHANGED
@@ -1,7 +1,6 @@
1
1
  // src/config.ts
2
2
  var globalConfig = null;
3
3
  function configureSdkMitra(config) {
4
- var _a;
5
4
  if (!config.baseURL) {
6
5
  throw new Error("baseURL \xE9 obrigat\xF3rio");
7
6
  }
@@ -10,8 +9,7 @@ function configureSdkMitra(config) {
10
9
  }
11
10
  globalConfig = {
12
11
  ...config,
13
- baseURL: config.baseURL.replace(/\/+$/, ""),
14
- timeout: (_a = config.timeout) != null ? _a : 3e4
12
+ baseURL: config.baseURL.replace(/\/+$/, "")
15
13
  };
16
14
  }
17
15
  function getConfig() {
@@ -55,51 +53,11 @@ function buildUrl(endpoint, params) {
55
53
  }
56
54
  var http = {
57
55
  async post(endpoint, body) {
58
- var _a;
59
56
  const fetchFn = getFetch();
60
- const config = getConfig();
61
- const controller = new AbortController();
62
- const timeout = (_a = config.timeout) != null ? _a : 3e4;
63
- const timeoutId = setTimeout(() => controller.abort(), timeout);
64
- try {
65
- const response = await fetchFn(buildUrl(endpoint), {
66
- method: "POST",
67
- headers: buildHeaders(),
68
- body: body !== void 0 ? JSON.stringify(body) : void 0,
69
- signal: controller.signal
70
- });
71
- const text = await response.text();
72
- const data = text ? JSON.parse(text) : null;
73
- if (!response.ok) {
74
- throw {
75
- message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
76
- status: response.status,
77
- details: data
78
- };
79
- }
80
- return data;
81
- } finally {
82
- clearTimeout(timeoutId);
83
- }
84
- }
85
- };
86
- async function requestWithTenant(method, endpoint, tenantId, options) {
87
- var _a;
88
- const fetchFn = getFetch();
89
- const config = getConfig();
90
- const controller = new AbortController();
91
- const timeout = (_a = config.timeout) != null ? _a : 3e4;
92
- const timeoutId = setTimeout(() => controller.abort(), timeout);
93
- try {
94
- const headers = {
95
- ...buildHeaders(),
96
- "X-TenantID": String(tenantId)
97
- };
98
- const response = await fetchFn(buildUrl(endpoint, options == null ? void 0 : options.params), {
99
- method,
100
- headers,
101
- body: (options == null ? void 0 : options.body) !== void 0 ? JSON.stringify(options.body) : void 0,
102
- signal: controller.signal
57
+ const response = await fetchFn(buildUrl(endpoint), {
58
+ method: "POST",
59
+ headers: buildHeaders(),
60
+ body: body !== void 0 ? JSON.stringify(body) : void 0
103
61
  });
104
62
  const text = await response.text();
105
63
  const data = text ? JSON.parse(text) : null;
@@ -111,25 +69,45 @@ async function requestWithTenant(method, endpoint, tenantId, options) {
111
69
  };
112
70
  }
113
71
  return data;
114
- } finally {
115
- clearTimeout(timeoutId);
116
72
  }
73
+ };
74
+ async function requestWithTenant(method, endpoint, tenantId, options) {
75
+ const fetchFn = getFetch();
76
+ const headers = {
77
+ ...buildHeaders(),
78
+ "X-TenantID": String(tenantId)
79
+ };
80
+ const response = await fetchFn(buildUrl(endpoint, options == null ? void 0 : options.params), {
81
+ method,
82
+ headers,
83
+ body: (options == null ? void 0 : options.body) !== void 0 ? JSON.stringify(options.body) : void 0
84
+ });
85
+ const text = await response.text();
86
+ const data = text ? JSON.parse(text) : null;
87
+ if (!response.ok) {
88
+ throw {
89
+ message: (data == null ? void 0 : data.message) || (data == null ? void 0 : data.error) || `HTTP ${response.status}`,
90
+ status: response.status,
91
+ details: data
92
+ };
93
+ }
94
+ return data;
117
95
  }
118
96
  var httpTenant = {
119
97
  get(endpoint, tenantId, params) {
120
98
  return requestWithTenant("GET", endpoint, tenantId, { params });
121
99
  },
122
- post(endpoint, tenantId, body) {
123
- return requestWithTenant("POST", endpoint, tenantId, { body });
100
+ post(endpoint, tenantId, body, params) {
101
+ return requestWithTenant("POST", endpoint, tenantId, { body, params });
124
102
  },
125
- put(endpoint, tenantId, body) {
126
- return requestWithTenant("PUT", endpoint, tenantId, { body });
103
+ put(endpoint, tenantId, body, params) {
104
+ return requestWithTenant("PUT", endpoint, tenantId, { body, params });
127
105
  },
128
- patch(endpoint, tenantId, body) {
129
- return requestWithTenant("PATCH", endpoint, tenantId, { body });
106
+ patch(endpoint, tenantId, body, params) {
107
+ return requestWithTenant("PATCH", endpoint, tenantId, { body, params });
130
108
  },
131
- del(endpoint, tenantId) {
132
- return requestWithTenant("DELETE", endpoint, tenantId);
109
+ del(endpoint, tenantId, params) {
110
+ return requestWithTenant("DELETE", endpoint, tenantId, { params });
133
111
  }
134
112
  };
135
113
 
@@ -181,35 +159,41 @@ async function executeServerFunctionMitra(options) {
181
159
  }
182
160
  return http.post("/agentAiShortcut/executeServerFunction", body);
183
161
  }
162
+ async function stopServerFunctionExecutionMitra(options) {
163
+ return http.post("/agentAiShortcut/stopServerFunctionExecution", {
164
+ projectId: options.projectId,
165
+ executionId: options.executionId
166
+ });
167
+ }
184
168
  async function listRecordsMitra(options) {
185
- const { tableName, projectId, page, size, filters } = options;
186
- return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, ...filters });
169
+ const { tableName, projectId, page, size, filters, jdbcConnectionConfigId } = options;
170
+ return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, jdbcConnectionConfigId, ...filters });
187
171
  }
188
172
  async function getRecordMitra(options) {
189
- const { tableName, id, projectId } = options;
190
- return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId);
173
+ const { tableName, id, projectId, jdbcConnectionConfigId } = options;
174
+ return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });
191
175
  }
192
176
  async function createRecordMitra(options) {
193
- const { tableName, projectId, data } = options;
194
- return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data);
177
+ const { tableName, projectId, data, jdbcConnectionConfigId } = options;
178
+ return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data, { jdbcConnectionConfigId });
195
179
  }
196
180
  async function updateRecordMitra(options) {
197
- const { tableName, id, projectId, data } = options;
198
- return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data);
181
+ const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;
182
+ return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });
199
183
  }
200
184
  async function patchRecordMitra(options) {
201
- const { tableName, id, projectId, data } = options;
202
- return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data);
185
+ const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;
186
+ return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });
203
187
  }
204
188
  async function deleteRecordMitra(options) {
205
- const { tableName, id, projectId } = options;
206
- return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId);
189
+ const { tableName, id, projectId, jdbcConnectionConfigId } = options;
190
+ return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });
207
191
  }
208
192
  async function createRecordsBatchMitra(options) {
209
- const { tableName, projectId, records } = options;
210
- return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records);
193
+ const { tableName, projectId, records, jdbcConnectionConfigId } = options;
194
+ return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records, { jdbcConnectionConfigId });
211
195
  }
212
196
 
213
- export { clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, updateRecordMitra };
197
+ export { clearConfig, configureSdkMitra, createRecordMitra, createRecordsBatchMitra, deleteRecordMitra, executeDbActionMitra, executeServerFunctionMitra, getConfig, getRecordMitra, isConfigured, listRecordsMitra, patchRecordMitra, runQueryMitra, setFileStatusMitra, setVariableMitra, stopServerFunctionExecutionMitra, updateRecordMitra };
214
198
  //# sourceMappingURL=index.mjs.map
215
199
  //# sourceMappingURL=index.mjs.map
@@ -1 +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 /** 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 baseURL: config.baseURL.replace(/\\/+$/, ''),\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 com query params opcionais\n */\nfunction buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const config = getConfig();\n let url = `${config.baseURL}${endpoint}`;\n if (params) {\n const query = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)\n .join('&');\n if (query) url += `?${query}`;\n }\n return url;\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 text = await response.text();\n const data = text ? JSON.parse(text) : null;\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// HTTP client para Dynamic Schema (usa X-TenantID header)\nasync function requestWithTenant<T>(\n method: string,\n endpoint: string,\n tenantId: number,\n options?: { params?: Record<string, unknown>; body?: unknown }\n): 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 headers = {\n ...buildHeaders(),\n 'X-TenantID': String(tenantId)\n };\n\n const response = await fetchFn(buildUrl(endpoint, options?.params), {\n method,\n headers,\n body: options?.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal: controller.signal\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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\nexport const httpTenant = {\n get<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('GET', endpoint, tenantId, { params });\n },\n post<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('POST', endpoint, tenantId, { body });\n },\n put<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('PUT', endpoint, tenantId, { body });\n },\n patch<T>(endpoint: string, tenantId: number, body?: unknown): Promise<T> {\n return requestWithTenant('PATCH', endpoint, tenantId, { body });\n },\n del<T>(endpoint: string, tenantId: number): Promise<T> {\n return requestWithTenant('DELETE', endpoint, tenantId);\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http, httpTenant } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions,\n ListRecordsOptions,\n GetRecordOptions,\n CreateRecordOptions,\n UpdateRecordOptions,\n PatchRecordOptions,\n DeleteRecordOptions,\n CreateRecordsBatchOptions\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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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\n// === Dynamic Schema CRUD ===\n\nexport async function listRecordsMitra(options: ListRecordsOptions): Promise<unknown> {\n const { tableName, projectId, page, size, filters } = options;\n return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, ...filters });\n}\n\nexport async function getRecordMitra(options: GetRecordOptions): Promise<unknown> {\n const { tableName, id, projectId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId);\n}\n\nexport async function createRecordMitra(options: CreateRecordOptions): Promise<unknown> {\n const { tableName, projectId, data } = options;\n return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data);\n}\n\nexport async function updateRecordMitra(options: UpdateRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data } = options;\n return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data);\n}\n\nexport async function patchRecordMitra(options: PatchRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data } = options;\n return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data);\n}\n\nexport async function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown> {\n const { tableName, id, projectId } = options;\n return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId);\n}\n\nexport async function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown> {\n const { tableName, projectId, records } = options;\n return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records);\n}\n"]}
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}\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 baseURL: config.baseURL.replace(/\\/+$/, '')\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 com query params opcionais\n */\nfunction buildUrl(endpoint: string, params?: Record<string, unknown>): string {\n const config = getConfig();\n let url = `${config.baseURL}${endpoint}`;\n if (params) {\n const query = Object.entries(params)\n .filter(([, v]) => v !== undefined && v !== null)\n .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)\n .join('&');\n if (query) url += `?${query}`;\n }\n return url;\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\n const response = await fetchFn(buildUrl(endpoint), {\n method: 'POST',\n headers: buildHeaders(),\n body: body !== undefined ? JSON.stringify(body) : undefined\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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 }\n};\n\n// HTTP client para Dynamic Schema (usa X-TenantID header)\nasync function requestWithTenant<T>(\n method: string,\n endpoint: string,\n tenantId: number,\n options?: { params?: Record<string, unknown>; body?: unknown }\n): Promise<T> {\n const fetchFn = getFetch();\n\n const headers = {\n ...buildHeaders(),\n 'X-TenantID': String(tenantId)\n };\n\n const response = await fetchFn(buildUrl(endpoint, options?.params), {\n method,\n headers,\n body: options?.body !== undefined ? JSON.stringify(options.body) : undefined\n });\n\n const text = await response.text();\n const data = text ? JSON.parse(text) : null;\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}\n\nexport const httpTenant = {\n get<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('GET', endpoint, tenantId, { params });\n },\n post<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('POST', endpoint, tenantId, { body, params });\n },\n put<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('PUT', endpoint, tenantId, { body, params });\n },\n patch<T>(endpoint: string, tenantId: number, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('PATCH', endpoint, tenantId, { body, params });\n },\n del<T>(endpoint: string, tenantId: number, params?: Record<string, unknown>): Promise<T> {\n return requestWithTenant('DELETE', endpoint, tenantId, { params });\n }\n};\n","/**\n * Mitra Interactions SDK - Services\n */\n\nimport { http, httpTenant } from './client';\nimport type {\n RunQueryOptions,\n ExecuteDbActionOptions,\n SetFileStatusOptions,\n SetVariableOptions,\n ExecuteServerFunctionOptions,\n StopServerFunctionExecutionOptions,\n ListRecordsOptions,\n GetRecordOptions,\n CreateRecordOptions,\n UpdateRecordOptions,\n PatchRecordOptions,\n DeleteRecordOptions,\n CreateRecordsBatchOptions\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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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/setFileStatus\n * Move arquivo do chat para PUBLIC ou LOADABLE\n */\nexport async function setFileStatusMitra(options: SetFileStatusOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/setFileStatus', {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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 body: Record<string, unknown> = {\n projectId: options.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\n/**\n * POST /agentAiShortcut/stopServerFunctionExecution\n * Para a execução de uma Server Function em andamento\n */\nexport async function stopServerFunctionExecutionMitra(options: StopServerFunctionExecutionOptions): Promise<unknown> {\n return http.post('/agentAiShortcut/stopServerFunctionExecution', {\n projectId: options.projectId,\n executionId: options.executionId\n });\n}\n\n// === Dynamic Schema CRUD ===\n\nexport async function listRecordsMitra(options: ListRecordsOptions): Promise<unknown> {\n const { tableName, projectId, page, size, filters, jdbcConnectionConfigId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}`, projectId, { page, size, jdbcConnectionConfigId, ...filters });\n}\n\nexport async function getRecordMitra(options: GetRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, jdbcConnectionConfigId } = options;\n return httpTenant.get(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });\n}\n\nexport async function createRecordMitra(options: CreateRecordOptions): Promise<unknown> {\n const { tableName, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.post(`/api/v1/data/${tableName}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function updateRecordMitra(options: UpdateRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.put(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function patchRecordMitra(options: PatchRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, data, jdbcConnectionConfigId } = options;\n return httpTenant.patch(`/api/v1/data/${tableName}/${id}`, projectId, data, { jdbcConnectionConfigId });\n}\n\nexport async function deleteRecordMitra(options: DeleteRecordOptions): Promise<unknown> {\n const { tableName, id, projectId, jdbcConnectionConfigId } = options;\n return httpTenant.del(`/api/v1/data/${tableName}/${id}`, projectId, { jdbcConnectionConfigId });\n}\n\nexport async function createRecordsBatchMitra(options: CreateRecordsBatchOptions): Promise<unknown> {\n const { tableName, projectId, records, jdbcConnectionConfigId } = options;\n return httpTenant.post(`/api/v1/data/${tableName}/batch`, projectId, records, { jdbcConnectionConfigId });\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mitra-interactions-sdk",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "SDK agnóstico para interações com a plataforma Mitra",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",