@aether-baas/core 3.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/dist/adapters/storage.d.ts +126 -0
- package/dist/adapters/storage.d.ts.map +1 -0
- package/dist/adapters/storage.js +299 -0
- package/dist/adapters/storage.js.map +1 -0
- package/dist/client/index.d.ts +172 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +409 -0
- package/dist/client/index.js.map +1 -0
- package/dist/errors/index.d.ts +251 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +542 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/http/client.d.ts +40 -0
- package/dist/http/client.d.ts.map +1 -0
- package/dist/http/client.js +247 -0
- package/dist/http/client.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/ai.d.ts +165 -0
- package/dist/modules/ai.d.ts.map +1 -0
- package/dist/modules/ai.js +330 -0
- package/dist/modules/ai.js.map +1 -0
- package/dist/modules/database.d.ts +187 -0
- package/dist/modules/database.d.ts.map +1 -0
- package/dist/modules/database.js +428 -0
- package/dist/modules/database.js.map +1 -0
- package/dist/modules/functions.d.ts +48 -0
- package/dist/modules/functions.d.ts.map +1 -0
- package/dist/modules/functions.js +83 -0
- package/dist/modules/functions.js.map +1 -0
- package/dist/modules/push.d.ts +174 -0
- package/dist/modules/push.d.ts.map +1 -0
- package/dist/modules/push.js +181 -0
- package/dist/modules/push.js.map +1 -0
- package/dist/modules/storage.d.ts +69 -0
- package/dist/modules/storage.d.ts.map +1 -0
- package/dist/modules/storage.js +151 -0
- package/dist/modules/storage.js.map +1 -0
- package/dist/modules/tenant-auth.d.ts +167 -0
- package/dist/modules/tenant-auth.d.ts.map +1 -0
- package/dist/modules/tenant-auth.js +341 -0
- package/dist/modules/tenant-auth.js.map +1 -0
- package/dist/types/index.d.ts +470 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// @aether/core - HTTP Client
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Cliente HTTP com interceptors, retry automático e refresh token.
|
|
5
|
+
// Usa axios internamente mas abstrai a implementação.
|
|
6
|
+
// =============================================================================
|
|
7
|
+
import axios from 'axios';
|
|
8
|
+
import { AetherError } from '../errors/index.js';
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// CONFIGURAÇÃO PADRÃO DE RETRY
|
|
11
|
+
// =============================================================================
|
|
12
|
+
const DEFAULT_RETRY_CONFIG = {
|
|
13
|
+
maxRetries: 3,
|
|
14
|
+
baseDelay: 1000,
|
|
15
|
+
maxDelay: 30000,
|
|
16
|
+
retryableStatuses: [408, 429, 500, 502, 503, 504],
|
|
17
|
+
retryableMethods: ['GET', 'HEAD', 'OPTIONS', 'PUT', 'DELETE'],
|
|
18
|
+
onRetry: undefined,
|
|
19
|
+
};
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// FLAGS GLOBAIS (Refresh Token)
|
|
22
|
+
// =============================================================================
|
|
23
|
+
let isRefreshing = false;
|
|
24
|
+
let failedQueue = [];
|
|
25
|
+
const processQueue = (error, token = null) => {
|
|
26
|
+
failedQueue.forEach((prom) => {
|
|
27
|
+
if (error) {
|
|
28
|
+
prom.reject(error);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
prom.resolve(token);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
failedQueue = [];
|
|
35
|
+
};
|
|
36
|
+
// =============================================================================
|
|
37
|
+
// HELPERS
|
|
38
|
+
// =============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Calcula delay com exponential backoff + jitter.
|
|
41
|
+
*/
|
|
42
|
+
function calculateDelay(retryCount, config) {
|
|
43
|
+
const exponentialDelay = config.baseDelay * Math.pow(2, retryCount);
|
|
44
|
+
const jitter = exponentialDelay * 0.25 * Math.random(); // ±25% jitter
|
|
45
|
+
const delay = exponentialDelay + jitter;
|
|
46
|
+
return Math.min(delay, config.maxDelay);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Extrai Retry-After header (em ms).
|
|
50
|
+
*/
|
|
51
|
+
function getRetryAfterMs(error) {
|
|
52
|
+
const retryAfter = error.response?.headers?.['retry-after'];
|
|
53
|
+
if (!retryAfter)
|
|
54
|
+
return null;
|
|
55
|
+
// Se for número, é segundos
|
|
56
|
+
const seconds = parseInt(retryAfter, 10);
|
|
57
|
+
if (!isNaN(seconds)) {
|
|
58
|
+
return seconds * 1000;
|
|
59
|
+
}
|
|
60
|
+
// Se for data, calcula diferença
|
|
61
|
+
const date = new Date(retryAfter);
|
|
62
|
+
if (!isNaN(date.getTime())) {
|
|
63
|
+
return Math.max(0, date.getTime() - Date.now());
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Verifica se o erro é retentável.
|
|
69
|
+
*/
|
|
70
|
+
function isRetryable(error, config) {
|
|
71
|
+
// Erros de rede são retentáveis
|
|
72
|
+
if (!error.response) {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
// Verifica status
|
|
76
|
+
return config.retryableStatuses.includes(error.response.status);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Verifica se o método HTTP é retentável.
|
|
80
|
+
*/
|
|
81
|
+
function isMethodRetryable(method, config) {
|
|
82
|
+
if (!method)
|
|
83
|
+
return false;
|
|
84
|
+
return config.retryableMethods.includes(method.toUpperCase());
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Aguarda um tempo.
|
|
88
|
+
*/
|
|
89
|
+
function sleep(ms) {
|
|
90
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Converte erro do Axios para AetherError.
|
|
94
|
+
*/
|
|
95
|
+
function handleAxiosError(error) {
|
|
96
|
+
throw AetherError.from(error);
|
|
97
|
+
}
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// CRIAR HTTP CLIENT
|
|
100
|
+
// =============================================================================
|
|
101
|
+
/**
|
|
102
|
+
* Cria uma instância do HTTP client configurada com:
|
|
103
|
+
* - Injeção automática de headers (Auth, Project, API Key)
|
|
104
|
+
* - Refresh automático de token (401)
|
|
105
|
+
* - Retry automático com exponential backoff
|
|
106
|
+
* - Tratamento de erros padronizado
|
|
107
|
+
*/
|
|
108
|
+
export function createHttpClient(tokenProvider, retryConfig = {}) {
|
|
109
|
+
const config = { ...DEFAULT_RETRY_CONFIG, ...retryConfig };
|
|
110
|
+
const http = axios.create({
|
|
111
|
+
baseURL: `${tokenProvider.apiUrl}/v1`,
|
|
112
|
+
timeout: 30000, // 30 segundos
|
|
113
|
+
headers: {
|
|
114
|
+
'Content-Type': 'application/json',
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
// ===========================================================================
|
|
118
|
+
// INTERCEPTOR DE REQUEST
|
|
119
|
+
// Injeta token, projectId e API Key em todas as requisições
|
|
120
|
+
// ===========================================================================
|
|
121
|
+
http.interceptors.request.use((reqConfig) => {
|
|
122
|
+
const token = tokenProvider.getToken();
|
|
123
|
+
if (token) {
|
|
124
|
+
reqConfig.headers.Authorization = `Bearer ${token}`;
|
|
125
|
+
}
|
|
126
|
+
if (tokenProvider.projectId) {
|
|
127
|
+
reqConfig.headers['X-Project-ID'] = tokenProvider.projectId;
|
|
128
|
+
}
|
|
129
|
+
// Envia API Key para autenticação de operações de banco de dados
|
|
130
|
+
if (tokenProvider.serviceApiKey) {
|
|
131
|
+
reqConfig.headers['X-API-Key'] = tokenProvider.serviceApiKey;
|
|
132
|
+
}
|
|
133
|
+
// Inicializa contador de retry
|
|
134
|
+
if (reqConfig._retryCount === undefined) {
|
|
135
|
+
reqConfig._retryCount = 0;
|
|
136
|
+
}
|
|
137
|
+
return reqConfig;
|
|
138
|
+
});
|
|
139
|
+
// ===========================================================================
|
|
140
|
+
// INTERCEPTOR DE RESPONSE
|
|
141
|
+
// 1. Retry automático para erros de rede/servidor
|
|
142
|
+
// 2. Refresh automático de token (401)
|
|
143
|
+
// ===========================================================================
|
|
144
|
+
http.interceptors.response.use((response) => response, async (error) => {
|
|
145
|
+
const originalRequest = error.config;
|
|
146
|
+
if (!originalRequest) {
|
|
147
|
+
return handleAxiosError(error);
|
|
148
|
+
}
|
|
149
|
+
// -----------------------------------------------------------------
|
|
150
|
+
// PARTE 1: RETRY AUTOMÁTICO (erros de rede e servidor)
|
|
151
|
+
// -----------------------------------------------------------------
|
|
152
|
+
const retryCount = originalRequest._retryCount || 0;
|
|
153
|
+
const canRetry = retryCount < config.maxRetries;
|
|
154
|
+
const isRetryableError = isRetryable(error, config);
|
|
155
|
+
const isRetryableMethod = isMethodRetryable(originalRequest.method, config);
|
|
156
|
+
// Não faz retry para 401 (tratado pelo refresh token)
|
|
157
|
+
const is401 = error.response?.status === 401;
|
|
158
|
+
if (canRetry && isRetryableError && isRetryableMethod && !is401) {
|
|
159
|
+
originalRequest._retryCount = retryCount + 1;
|
|
160
|
+
// Calcula delay (respeita Retry-After se presente)
|
|
161
|
+
const delay = getRetryAfterMs(error) || calculateDelay(retryCount, config);
|
|
162
|
+
// Callback de retry (para logging/métricas)
|
|
163
|
+
if (config.onRetry) {
|
|
164
|
+
config.onRetry(originalRequest._retryCount, error, originalRequest);
|
|
165
|
+
}
|
|
166
|
+
// Emite evento para monitoramento (apenas em browser)
|
|
167
|
+
if (typeof window !== 'undefined') {
|
|
168
|
+
window.dispatchEvent(new CustomEvent('aether:retry', {
|
|
169
|
+
detail: {
|
|
170
|
+
attempt: originalRequest._retryCount,
|
|
171
|
+
maxRetries: config.maxRetries,
|
|
172
|
+
delay,
|
|
173
|
+
url: originalRequest.url,
|
|
174
|
+
method: originalRequest.method,
|
|
175
|
+
status: error.response?.status,
|
|
176
|
+
error: error.message,
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
// Log em desenvolvimento
|
|
181
|
+
if (process.env.NODE_ENV === 'development') {
|
|
182
|
+
console.log(`[Aether SDK] Retry ${originalRequest._retryCount}/${config.maxRetries}`, `em ${delay}ms para ${originalRequest.method} ${originalRequest.url}`, `(${error.response?.status || error.message})`);
|
|
183
|
+
}
|
|
184
|
+
// Aguarda e refaz a requisição
|
|
185
|
+
await sleep(delay);
|
|
186
|
+
return http(originalRequest);
|
|
187
|
+
}
|
|
188
|
+
// -----------------------------------------------------------------
|
|
189
|
+
// PARTE 2: REFRESH TOKEN (erro 401)
|
|
190
|
+
// -----------------------------------------------------------------
|
|
191
|
+
const isUnauthorized = error.response?.status === 401;
|
|
192
|
+
const isRetry = originalRequest._retry;
|
|
193
|
+
const isAuthRoute = originalRequest.url?.includes('/auth/');
|
|
194
|
+
// Não tenta refresh se:
|
|
195
|
+
// - Não é 401
|
|
196
|
+
// - Já é um retry de refresh
|
|
197
|
+
// - É uma rota de auth (login, register, refresh)
|
|
198
|
+
if (!isUnauthorized || isRetry || isAuthRoute) {
|
|
199
|
+
return handleAxiosError(error);
|
|
200
|
+
}
|
|
201
|
+
const refreshToken = tokenProvider.getRefreshToken();
|
|
202
|
+
if (!refreshToken) {
|
|
203
|
+
tokenProvider.clearSession();
|
|
204
|
+
return handleAxiosError(error);
|
|
205
|
+
}
|
|
206
|
+
// Se já está fazendo refresh, aguarda na fila
|
|
207
|
+
if (isRefreshing) {
|
|
208
|
+
return new Promise((resolve, reject) => {
|
|
209
|
+
failedQueue.push({ resolve, reject });
|
|
210
|
+
})
|
|
211
|
+
.then((token) => {
|
|
212
|
+
originalRequest.headers.Authorization = `Bearer ${token}`;
|
|
213
|
+
return http(originalRequest);
|
|
214
|
+
})
|
|
215
|
+
.catch((err) => handleAxiosError(err));
|
|
216
|
+
}
|
|
217
|
+
// Marca como retry e inicia refresh
|
|
218
|
+
originalRequest._retry = true;
|
|
219
|
+
isRefreshing = true;
|
|
220
|
+
try {
|
|
221
|
+
const { data } = await axios.post(`${tokenProvider.apiUrl}/v1/auth/refresh`, { refreshToken }, { headers: { 'Content-Type': 'application/json' } });
|
|
222
|
+
const newAccessToken = data.accessToken;
|
|
223
|
+
const newRefreshToken = data.refreshToken;
|
|
224
|
+
tokenProvider.setToken(newAccessToken);
|
|
225
|
+
if (newRefreshToken) {
|
|
226
|
+
tokenProvider.setRefreshToken(newRefreshToken);
|
|
227
|
+
}
|
|
228
|
+
processQueue(null, newAccessToken);
|
|
229
|
+
originalRequest.headers.Authorization = `Bearer ${newAccessToken}`;
|
|
230
|
+
return http(originalRequest);
|
|
231
|
+
}
|
|
232
|
+
catch (refreshError) {
|
|
233
|
+
processQueue(refreshError, null);
|
|
234
|
+
tokenProvider.clearSession();
|
|
235
|
+
// Emite evento de sessão expirada
|
|
236
|
+
if (typeof window !== 'undefined') {
|
|
237
|
+
window.dispatchEvent(new CustomEvent('aether:session-expired'));
|
|
238
|
+
}
|
|
239
|
+
return handleAxiosError(refreshError);
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
isRefreshing = false;
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
return http;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/http/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export { PlataformaClient, createClient, initializeClient, getClient, destroyClient, } from './client/index.js';
|
|
2
|
+
export { DatabaseModule, CollectionReference, QueryBuilder } from './modules/database.js';
|
|
3
|
+
export { StorageModule } from './modules/storage.js';
|
|
4
|
+
export { FunctionsModule } from './modules/functions.js';
|
|
5
|
+
export { PushModule } from './modules/push.js';
|
|
6
|
+
export { TenantAuthModule } from './modules/tenant-auth.js';
|
|
7
|
+
export { AIModule } from './modules/ai.js';
|
|
8
|
+
export { AetherError, AetherErrorCodes, AuthError, DatabaseError, StorageError, NetworkError, FunctionError, RateLimitError, AIError, } from './errors/index.js';
|
|
9
|
+
export type { AetherErrorCode, AetherErrorDetails } from './errors/index.js';
|
|
10
|
+
export { BrowserStorageAdapter, MemoryStorageAdapter, CookieStorageAdapter, NoopStorageAdapter, AsyncStorageWrapper, createDefaultStorageAdapter, isBrowser, isLocalStorageAvailable, } from './adapters/storage.js';
|
|
11
|
+
export type { StorageAdapter, CookieOptions } from './adapters/storage.js';
|
|
12
|
+
export { createHttpClient } from './http/client.js';
|
|
13
|
+
export type { RetryConfig, TokenProvider } from './http/client.js';
|
|
14
|
+
export type { PartialBy, RequiredBy, NonNullableFields, StringKeyOf, User, LoginResponse, Session, TenantUser, TenantLoginCredentials, TenantRegisterCredentials, TenantLoginResponse, OAuthProvider, AuthState, AuthChangeEvent, AuthStateChangeCallback, BaseDocument, Document, CreateData, UpdateData, FilterOperator, FilterCondition, SortDirection, SortOption, PaginationOptions, QueryOptions, PaginatedResult, ListOptions, BatchOperation, RealtimeEvent, RealtimePayload, RealtimeCallback, Unsubscribe, RealtimeConnectionState, FileObject, UploadOptions, UploadProgress, ListFilesOptions, InvokeFunctionOptions, FunctionResult, PushPlatform, PushEnvironment, PushDevice, RegisterDeviceParams, SendPushParams, PushNotificationData, PushStatus, PushStats, AIMessageRole, AIMessage, AISource, AIAskOptions, AIChatOptions, AIChatMetadata, AIResponse, AIUsageInfo, AIPersonaConfig, ClientConfig, SuccessResult, ErrorResult, Result, } from './types/index.js';
|
|
15
|
+
export { success, failure } from './types/index.js';
|
|
16
|
+
export type { SendPushResponse, PushLogEntry, ListPushLogsOptions, PushTriggerEvent, PushTriggerCondition, LookupFieldConfig, PushTrigger, CreatePushTriggerParams, } from './modules/push.js';
|
|
17
|
+
export type { ChatOptions, AskResponse, Conversation, Message, FeedbackType, SemanticSearchOptions, SemanticSearchResult, GenerateOptions, } from './modules/ai.js';
|
|
18
|
+
export type { SignInWithPasswordCredentials, SignUpCredentials, } from './modules/tenant-auth.js';
|
|
19
|
+
export declare const VERSION = "3.0.0";
|
|
20
|
+
export { PlataformaClient as default } from './client/index.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,GACd,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM3C,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,GACR,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAM7E,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,SAAS,EACT,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAM3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMnE,YAAY,EAEV,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,WAAW,EAGX,IAAI,EACJ,aAAa,EACb,OAAO,EACP,UAAU,EACV,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,eAAe,EACf,uBAAuB,EAGvB,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EAGd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EAGvB,UAAU,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAGhB,qBAAqB,EACrB,cAAc,EAGd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,UAAU,EACV,SAAS,EAGT,aAAa,EACb,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EAGf,YAAY,EAGZ,aAAa,EACb,WAAW,EACX,MAAM,GACP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAMpD,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAMzB,YAAY,EACV,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAMlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAM/B,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// @aether/core
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// SDK Core do Aether - Cliente principal e todos os módulos.
|
|
5
|
+
//
|
|
6
|
+
// Este pacote é a base para todos os outros pacotes do Aether SDK.
|
|
7
|
+
// Pode ser usado diretamente ou através de pacotes específicos como
|
|
8
|
+
// @aether/react, @aether/react-native e @aether/nextjs.
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// CLIENT
|
|
12
|
+
// =============================================================================
|
|
13
|
+
export { PlataformaClient, createClient, initializeClient, getClient, destroyClient, } from './client/index.js';
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// MODULES
|
|
16
|
+
// =============================================================================
|
|
17
|
+
export { DatabaseModule, CollectionReference, QueryBuilder } from './modules/database.js';
|
|
18
|
+
export { StorageModule } from './modules/storage.js';
|
|
19
|
+
export { FunctionsModule } from './modules/functions.js';
|
|
20
|
+
export { PushModule } from './modules/push.js';
|
|
21
|
+
export { TenantAuthModule } from './modules/tenant-auth.js';
|
|
22
|
+
export { AIModule } from './modules/ai.js';
|
|
23
|
+
// =============================================================================
|
|
24
|
+
// ERRORS
|
|
25
|
+
// =============================================================================
|
|
26
|
+
export { AetherError, AetherErrorCodes, AuthError, DatabaseError, StorageError, NetworkError, FunctionError, RateLimitError, AIError, } from './errors/index.js';
|
|
27
|
+
// =============================================================================
|
|
28
|
+
// STORAGE ADAPTERS
|
|
29
|
+
// =============================================================================
|
|
30
|
+
export { BrowserStorageAdapter, MemoryStorageAdapter, CookieStorageAdapter, NoopStorageAdapter, AsyncStorageWrapper, createDefaultStorageAdapter, isBrowser, isLocalStorageAvailable, } from './adapters/storage.js';
|
|
31
|
+
// =============================================================================
|
|
32
|
+
// HTTP CLIENT
|
|
33
|
+
// =============================================================================
|
|
34
|
+
export { createHttpClient } from './http/client.js';
|
|
35
|
+
export { success, failure } from './types/index.js';
|
|
36
|
+
// =============================================================================
|
|
37
|
+
// VERSION
|
|
38
|
+
// =============================================================================
|
|
39
|
+
export const VERSION = '3.0.0';
|
|
40
|
+
// =============================================================================
|
|
41
|
+
// DEFAULT EXPORT
|
|
42
|
+
// =============================================================================
|
|
43
|
+
export { PlataformaClient as default } from './client/index.js';
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAChF,6DAA6D;AAC7D,GAAG;AACH,mEAAmE;AACnE,oEAAoE;AACpE,wDAAwD;AACxD,gFAAgF;AAEhF,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,GACd,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACd,OAAO,GACR,MAAM,mBAAmB,CAAC;AAI3B,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,SAAS,EACT,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAI/B,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAyFpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAyCpD,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF,OAAO,EAAE,gBAAgB,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { AxiosInstance } from 'axios';
|
|
2
|
+
import type { PlataformaClient } from '../client/index.js';
|
|
3
|
+
import type { AISource, AIChatMetadata, AIUsageInfo, AIPersonaConfig } from '../types/index.js';
|
|
4
|
+
export interface ChatOptions {
|
|
5
|
+
conversationId?: string;
|
|
6
|
+
context?: string;
|
|
7
|
+
onChunk?: (chunk: string) => void;
|
|
8
|
+
onComplete?: (fullResponse: string, metadata: AIChatMetadata) => void;
|
|
9
|
+
onError?: (error: Error) => void;
|
|
10
|
+
timeout?: number;
|
|
11
|
+
}
|
|
12
|
+
export interface AskResponse {
|
|
13
|
+
text: string;
|
|
14
|
+
conversationId: string;
|
|
15
|
+
sources?: AISource[];
|
|
16
|
+
}
|
|
17
|
+
export interface Conversation {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
context: string;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
updatedAt: string;
|
|
23
|
+
messageCount?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface Message {
|
|
26
|
+
id: string;
|
|
27
|
+
conversationId: string;
|
|
28
|
+
role: 'user' | 'assistant';
|
|
29
|
+
content: string;
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
createdAt: string;
|
|
32
|
+
}
|
|
33
|
+
export type FeedbackType = 'thumbs_up' | 'thumbs_down';
|
|
34
|
+
export interface SemanticSearchOptions {
|
|
35
|
+
limit?: number;
|
|
36
|
+
minScore?: number;
|
|
37
|
+
collection?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface SemanticSearchResult {
|
|
40
|
+
id: string;
|
|
41
|
+
content: string;
|
|
42
|
+
collection: string;
|
|
43
|
+
similarity: number;
|
|
44
|
+
metadata?: Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
export interface GenerateOptions {
|
|
47
|
+
tone?: 'formal' | 'casual' | 'technical' | 'friendly';
|
|
48
|
+
length?: 'short' | 'medium' | 'long';
|
|
49
|
+
language?: string;
|
|
50
|
+
context?: string;
|
|
51
|
+
}
|
|
52
|
+
export type { AIUsageInfo as UsageInfo, AIPersonaConfig as PersonaConfig };
|
|
53
|
+
/**
|
|
54
|
+
* API de conversas.
|
|
55
|
+
*/
|
|
56
|
+
declare class ConversationsAPI {
|
|
57
|
+
private client;
|
|
58
|
+
private http;
|
|
59
|
+
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
60
|
+
list(): Promise<Conversation[]>;
|
|
61
|
+
get(conversationId: string): Promise<Conversation>;
|
|
62
|
+
getMessages(conversationId: string): Promise<Message[]>;
|
|
63
|
+
rename(conversationId: string, title: string): Promise<Conversation>;
|
|
64
|
+
delete(conversationId: string): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* API de memória de usuário.
|
|
68
|
+
*/
|
|
69
|
+
declare class MemoryAPI {
|
|
70
|
+
private client;
|
|
71
|
+
private http;
|
|
72
|
+
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
73
|
+
get(userId: string, key: string): Promise<unknown>;
|
|
74
|
+
set(userId: string, key: string, value: unknown): Promise<void>;
|
|
75
|
+
delete(userId: string, key: string): Promise<void>;
|
|
76
|
+
listKeys(userId: string): Promise<string[]>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* API administrativa de IA.
|
|
80
|
+
*/
|
|
81
|
+
declare class AIAdminAPI {
|
|
82
|
+
private client;
|
|
83
|
+
private http;
|
|
84
|
+
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
85
|
+
stats(): Promise<{
|
|
86
|
+
totalConversations: number;
|
|
87
|
+
totalMessages: number;
|
|
88
|
+
tokensUsed: number;
|
|
89
|
+
}>;
|
|
90
|
+
reindex(): Promise<{
|
|
91
|
+
indexed: number;
|
|
92
|
+
}>;
|
|
93
|
+
setIndexedCollections(collections: string[]): Promise<void>;
|
|
94
|
+
clear(): Promise<void>;
|
|
95
|
+
setPersona(config: AIPersonaConfig): Promise<void>;
|
|
96
|
+
getPersona(): Promise<AIPersonaConfig | null>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Módulo de IA do Aether.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* // Pergunta simples
|
|
104
|
+
* const { text } = await aether.ai.ask("Quais produtos estão em promoção?");
|
|
105
|
+
*
|
|
106
|
+
* // Chat com streaming
|
|
107
|
+
* await aether.ai.chat("Explique o sistema", {
|
|
108
|
+
* onChunk: (chunk) => console.log(chunk),
|
|
109
|
+
* onComplete: (full, meta) => console.log("Conversa:", meta.conversationId)
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare class AIModule {
|
|
114
|
+
private client;
|
|
115
|
+
private http;
|
|
116
|
+
/** API de conversas */
|
|
117
|
+
conversations: ConversationsAPI;
|
|
118
|
+
/** API de memória */
|
|
119
|
+
memory: MemoryAPI;
|
|
120
|
+
/** API administrativa */
|
|
121
|
+
admin: AIAdminAPI;
|
|
122
|
+
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
123
|
+
/**
|
|
124
|
+
* Faz uma pergunta simples e aguarda resposta completa.
|
|
125
|
+
*/
|
|
126
|
+
ask(message: string, conversationId?: string): Promise<AskResponse>;
|
|
127
|
+
/**
|
|
128
|
+
* Chat com streaming de resposta.
|
|
129
|
+
*/
|
|
130
|
+
chat(message: string, options?: ChatOptions): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Busca semântica usando embeddings.
|
|
133
|
+
*/
|
|
134
|
+
search(query: string, options?: SemanticSearchOptions): Promise<SemanticSearchResult[]>;
|
|
135
|
+
/**
|
|
136
|
+
* Gera texto baseado em prompt e dados.
|
|
137
|
+
*/
|
|
138
|
+
generate(prompt: string, data?: Record<string, unknown>, options?: GenerateOptions): Promise<string>;
|
|
139
|
+
/**
|
|
140
|
+
* Analisa dados de uma collection.
|
|
141
|
+
*/
|
|
142
|
+
analyze(collection: string, options: {
|
|
143
|
+
question: string;
|
|
144
|
+
period?: string;
|
|
145
|
+
}): Promise<{
|
|
146
|
+
insights: string;
|
|
147
|
+
data: unknown;
|
|
148
|
+
}>;
|
|
149
|
+
/**
|
|
150
|
+
* Converte linguagem natural em query estruturada.
|
|
151
|
+
*/
|
|
152
|
+
parseQuery(text: string): Promise<{
|
|
153
|
+
filter: Record<string, unknown>;
|
|
154
|
+
sort?: Record<string, string>;
|
|
155
|
+
}>;
|
|
156
|
+
/**
|
|
157
|
+
* Envia feedback sobre uma resposta.
|
|
158
|
+
*/
|
|
159
|
+
feedback(messageId: string, type: FeedbackType, comment?: string): Promise<void>;
|
|
160
|
+
/**
|
|
161
|
+
* Retorna informações de uso/quota.
|
|
162
|
+
*/
|
|
163
|
+
getUsage(): Promise<AIUsageInfo>;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=ai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/modules/ai.ts"],"names":[],"mappings":"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"}
|