@agelum/backend 0.1.0 → 0.1.2
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 +184 -113
- package/dist/client/hooks.d.ts +2 -2
- package/dist/client/hooks.d.ts.map +1 -1
- package/dist/client/storage.d.ts +3 -1
- package/dist/client/storage.d.ts.map +1 -1
- package/dist/client.d.ts +8 -8
- package/dist/client.d.ts.map +1 -1
- package/dist/config/schema.d.ts +4 -15
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/core/driver.d.ts +2 -2
- package/dist/core/driver.d.ts.map +1 -1
- package/dist/core/driver.js +4 -3
- package/dist/core/driver.js.map +1 -1
- package/dist/core/function.d.ts +17 -11
- package/dist/core/function.d.ts.map +1 -1
- package/dist/core/function.js +2 -2
- package/dist/core/function.js.map +1 -1
- package/dist/core/types.d.ts +26 -9
- package/dist/core/types.d.ts.map +1 -1
- package/dist/examples/teamhub-integration.d.ts +1 -1
- package/dist/examples/teamhub-integration.d.ts.map +1 -1
- package/dist/examples/teamhub-integration.js +9 -5
- package/dist/examples/teamhub-integration.js.map +1 -1
- package/dist/index.d.ts +13 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/providers/localStorage.d.ts +1 -1
- package/dist/providers/localStorage.d.ts.map +1 -1
- package/dist/providers/redis.d.ts +1 -1
- package/dist/providers/redis.d.ts.map +1 -1
- package/dist/server.d.ts +13 -12
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +3 -3
- package/dist/server.js.map +1 -1
- package/dist/trpc/index.d.ts +9 -0
- package/dist/trpc/index.d.ts.map +1 -0
- package/dist/trpc/index.js +19 -0
- package/dist/trpc/index.js.map +1 -0
- package/dist/trpc/router.d.ts +3 -2
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +21 -4
- package/dist/trpc/router.js.map +1 -1
- package/dist/trpc/types.d.ts +21 -12
- package/dist/trpc/types.d.ts.map +1 -1
- package/package.json +13 -13
- package/dist/client/hooks.js +0 -339
- package/dist/client/hooks.js.map +0 -1
- package/dist/client/index.js +0 -37
- package/dist/client/index.js.map +0 -1
- package/dist/client/manager.js +0 -292
- package/dist/client/manager.js.map +0 -1
- package/dist/client/provider.js +0 -121
- package/dist/client/provider.js.map +0 -1
- package/dist/client/revalidation.js +0 -313
- package/dist/client/revalidation.js.map +0 -1
- package/dist/client/session.d.ts +0 -84
- package/dist/client/session.d.ts.map +0 -1
- package/dist/client/session.js +0 -186
- package/dist/client/session.js.map +0 -1
- package/dist/client/sse-client.js +0 -221
- package/dist/client/sse-client.js.map +0 -1
- package/dist/client/storage.js +0 -441
- package/dist/client/storage.js.map +0 -1
- package/dist/client/trpc.js +0 -36
- package/dist/client/trpc.js.map +0 -1
- package/dist/client/types.d.ts +0 -10
- package/dist/client/types.d.ts.map +0 -1
- package/dist/client/types.js +0 -3
- package/dist/client/types.js.map +0 -1
- package/dist/client.js +0 -26
- package/dist/client.js.map +0 -1
- package/dist/core/analyzer.js +0 -217
- package/dist/core/analyzer.js.map +0 -1
- package/dist/core/sse.js +0 -331
- package/dist/core/sse.js.map +0 -1
- package/dist/providers/localStorage.js +0 -64
- package/dist/providers/localStorage.js.map +0 -1
- package/dist/providers/memory.js +0 -40
- package/dist/providers/memory.js.map +0 -1
- package/dist/providers/redis.js +0 -36
- package/dist/providers/redis.js.map +0 -1
- package/dist/trpc/hooks.d.ts +0 -82
- package/dist/trpc/hooks.d.ts.map +0 -1
- package/dist/trpc/hooks.js +0 -282
- package/dist/trpc/hooks.js.map +0 -1
package/dist/core/sse.js
DELETED
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Server-Sent Events implementation for real-time cache invalidation
|
|
4
|
-
* Perfect for unidirectional communication with automatic reconnection
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.SSEManager = void 0;
|
|
8
|
-
exports.getSSEManager = getSSEManager;
|
|
9
|
-
exports.createSSEStream = createSSEStream;
|
|
10
|
-
exports.broadcastInvalidation = broadcastInvalidation;
|
|
11
|
-
exports.acknowledgeEvent = acknowledgeEvent;
|
|
12
|
-
/**
|
|
13
|
-
* SSE Manager for reliable real-time communication
|
|
14
|
-
* NO HEARTBEATS - uses event acknowledgments and connection monitoring instead
|
|
15
|
-
*/
|
|
16
|
-
class SSEManager {
|
|
17
|
-
connections = new Map();
|
|
18
|
-
pendingEvents = new Map();
|
|
19
|
-
retrySchedule = [2000, 5000, 10000]; // 2s, 5s, 10s
|
|
20
|
-
connectionMonitorInterval = null;
|
|
21
|
-
constructor() {
|
|
22
|
-
this.startConnectionMonitor();
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Create SSE stream for an organization
|
|
26
|
-
*/
|
|
27
|
-
createSSEStream(organizationId) {
|
|
28
|
-
const encoder = new TextEncoder();
|
|
29
|
-
const stream = new ReadableStream({
|
|
30
|
-
start: (controller) => {
|
|
31
|
-
const connection = {
|
|
32
|
-
organizationId,
|
|
33
|
-
controller,
|
|
34
|
-
lastActivity: Date.now(), // Track last activity instead of heartbeat
|
|
35
|
-
isActive: true,
|
|
36
|
-
};
|
|
37
|
-
// Register connection
|
|
38
|
-
this.addConnection(organizationId, connection);
|
|
39
|
-
// Send initial connection event
|
|
40
|
-
this.sendEvent(controller, {
|
|
41
|
-
type: 'connected',
|
|
42
|
-
organizationId,
|
|
43
|
-
timestamp: Date.now(),
|
|
44
|
-
});
|
|
45
|
-
console.log(`[SSE] New connection for org: ${organizationId}`);
|
|
46
|
-
// Cleanup on disconnect
|
|
47
|
-
return () => {
|
|
48
|
-
console.log(`[SSE] Connection closed for org: ${organizationId}`);
|
|
49
|
-
connection.isActive = false;
|
|
50
|
-
this.removeConnection(organizationId, connection);
|
|
51
|
-
};
|
|
52
|
-
},
|
|
53
|
-
cancel: () => {
|
|
54
|
-
console.log(`[SSE] Stream cancelled for org: ${organizationId}`);
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
return new Response(stream, {
|
|
58
|
-
headers: {
|
|
59
|
-
'Content-Type': 'text/event-stream',
|
|
60
|
-
'Cache-Control': 'no-cache',
|
|
61
|
-
Connection: 'keep-alive',
|
|
62
|
-
'Access-Control-Allow-Origin': '*',
|
|
63
|
-
'Access-Control-Allow-Headers': 'Cache-Control',
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Broadcast invalidation event to all connections in an organization
|
|
69
|
-
*/
|
|
70
|
-
async broadcastInvalidation(organizationId, invalidationData) {
|
|
71
|
-
const eventId = this.generateEventId();
|
|
72
|
-
const event = {
|
|
73
|
-
...invalidationData,
|
|
74
|
-
eventId,
|
|
75
|
-
requiresAck: true,
|
|
76
|
-
};
|
|
77
|
-
console.log(`🔥 [SSE-BROADCAST] Broadcasting invalidation for org: ${organizationId}, table: ${event.table}, operation: ${event.operation}, eventId: ${eventId}`);
|
|
78
|
-
console.log('🔥 [SSE-BROADCAST] Event details:', {
|
|
79
|
-
table: event.table,
|
|
80
|
-
operation: event.operation,
|
|
81
|
-
affectedQueries: event.affectedQueries,
|
|
82
|
-
affectedKeys: event.affectedKeys,
|
|
83
|
-
});
|
|
84
|
-
// Store for potential retry
|
|
85
|
-
const pendingEvent = {
|
|
86
|
-
id: eventId,
|
|
87
|
-
organizationId,
|
|
88
|
-
data: event,
|
|
89
|
-
timestamp: Date.now(),
|
|
90
|
-
delivered: false,
|
|
91
|
-
retryCount: 0,
|
|
92
|
-
maxRetries: 3,
|
|
93
|
-
};
|
|
94
|
-
this.pendingEvents.set(eventId, pendingEvent);
|
|
95
|
-
// Send to all connections
|
|
96
|
-
const connections = this.connections.get(organizationId);
|
|
97
|
-
if (connections && connections.size > 0) {
|
|
98
|
-
let successCount = 0;
|
|
99
|
-
let failCount = 0;
|
|
100
|
-
for (const connection of connections) {
|
|
101
|
-
if (connection.isActive) {
|
|
102
|
-
try {
|
|
103
|
-
this.sendEvent(connection.controller, event);
|
|
104
|
-
// Update last activity when we successfully send an event
|
|
105
|
-
connection.lastActivity = Date.now();
|
|
106
|
-
successCount++;
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
console.warn(`[SSE] Failed to send to connection:`, error);
|
|
110
|
-
connection.isActive = false;
|
|
111
|
-
failCount++;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
console.log(`[SSE] Broadcast complete: ${successCount} sent, ${failCount} failed`);
|
|
116
|
-
// If no successful sends, schedule retry
|
|
117
|
-
if (successCount === 0) {
|
|
118
|
-
this.scheduleRetryIfNeeded(eventId);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
console.log(`[SSE] No active connections for org: ${organizationId}`);
|
|
123
|
-
// Still schedule retry in case connections come back
|
|
124
|
-
this.scheduleRetryIfNeeded(eventId);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Acknowledge event receipt (called by client)
|
|
129
|
-
*/
|
|
130
|
-
acknowledgeEvent(eventId) {
|
|
131
|
-
const event = this.pendingEvents.get(eventId);
|
|
132
|
-
if (event) {
|
|
133
|
-
event.delivered = true;
|
|
134
|
-
this.pendingEvents.delete(eventId);
|
|
135
|
-
console.log(`[SSE] Event acknowledged: ${eventId}`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get connection statistics
|
|
140
|
-
*/
|
|
141
|
-
getConnectionStats() {
|
|
142
|
-
const connectionsByOrg = {};
|
|
143
|
-
let totalConnections = 0;
|
|
144
|
-
for (const [orgId, connections] of this.connections) {
|
|
145
|
-
const activeConnections = Array.from(connections).filter((conn) => conn.isActive).length;
|
|
146
|
-
connectionsByOrg[orgId] = activeConnections;
|
|
147
|
-
totalConnections += activeConnections;
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
totalConnections,
|
|
151
|
-
connectionsByOrg,
|
|
152
|
-
pendingEvents: this.pendingEvents.size,
|
|
153
|
-
activeEvents: Array.from(this.pendingEvents.values()).filter((event) => !event.delivered),
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Send event to a specific connection
|
|
158
|
-
*/
|
|
159
|
-
sendEvent(controller, data) {
|
|
160
|
-
try {
|
|
161
|
-
const encoder = new TextEncoder();
|
|
162
|
-
const eventData = `data: ${JSON.stringify(data)}\n\n`;
|
|
163
|
-
controller.enqueue(encoder.encode(eventData));
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
console.warn('[SSE] Failed to send event:', error);
|
|
167
|
-
throw error;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Add connection to organization
|
|
172
|
-
*/
|
|
173
|
-
addConnection(organizationId, connection) {
|
|
174
|
-
if (!this.connections.has(organizationId)) {
|
|
175
|
-
this.connections.set(organizationId, new Set());
|
|
176
|
-
}
|
|
177
|
-
this.connections.get(organizationId).add(connection);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Remove connection from organization
|
|
181
|
-
*/
|
|
182
|
-
removeConnection(organizationId, connection) {
|
|
183
|
-
const connections = this.connections.get(organizationId);
|
|
184
|
-
if (connections) {
|
|
185
|
-
connections.delete(connection);
|
|
186
|
-
if (connections.size === 0) {
|
|
187
|
-
this.connections.delete(organizationId);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Schedule retry for unacknowledged events
|
|
193
|
-
*/
|
|
194
|
-
scheduleRetryIfNeeded(eventId) {
|
|
195
|
-
const event = this.pendingEvents.get(eventId);
|
|
196
|
-
if (!event || event.delivered)
|
|
197
|
-
return;
|
|
198
|
-
const delay = this.retrySchedule[event.retryCount] || 10000;
|
|
199
|
-
setTimeout(async () => {
|
|
200
|
-
const currentEvent = this.pendingEvents.get(eventId);
|
|
201
|
-
if (!currentEvent || currentEvent.delivered)
|
|
202
|
-
return;
|
|
203
|
-
if (currentEvent.retryCount < currentEvent.maxRetries) {
|
|
204
|
-
currentEvent.retryCount++;
|
|
205
|
-
console.log(`[SSE] Retrying event ${eventId} (attempt ${currentEvent.retryCount})`);
|
|
206
|
-
// Retry broadcast
|
|
207
|
-
const connections = this.connections.get(currentEvent.organizationId);
|
|
208
|
-
if (connections && connections.size > 0) {
|
|
209
|
-
for (const connection of connections) {
|
|
210
|
-
if (connection.isActive) {
|
|
211
|
-
try {
|
|
212
|
-
this.sendEvent(connection.controller, {
|
|
213
|
-
...currentEvent.data,
|
|
214
|
-
retry: currentEvent.retryCount,
|
|
215
|
-
});
|
|
216
|
-
// Update last activity on successful retry
|
|
217
|
-
connection.lastActivity = Date.now();
|
|
218
|
-
}
|
|
219
|
-
catch (error) {
|
|
220
|
-
connection.isActive = false;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
this.scheduleRetryIfNeeded(eventId);
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
console.warn(`[SSE] Event ${eventId} failed after ${currentEvent.maxRetries} retries`);
|
|
229
|
-
this.pendingEvents.delete(eventId);
|
|
230
|
-
}
|
|
231
|
-
}, delay);
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Monitor connections for health without sending heartbeats
|
|
235
|
-
* Uses activity tracking and error detection instead of periodic messages
|
|
236
|
-
*/
|
|
237
|
-
startConnectionMonitor() {
|
|
238
|
-
this.connectionMonitorInterval = setInterval(() => {
|
|
239
|
-
const now = Date.now();
|
|
240
|
-
const maxInactivity = 120000; // 2 minutes of inactivity
|
|
241
|
-
for (const [orgId, connections] of this.connections) {
|
|
242
|
-
for (const connection of connections) {
|
|
243
|
-
// Mark connections as inactive if they haven't had activity in 2 minutes
|
|
244
|
-
if (connection.isActive && now - connection.lastActivity > maxInactivity) {
|
|
245
|
-
console.log(`[SSE] Marking inactive connection as closed for org: ${orgId}`);
|
|
246
|
-
connection.isActive = false;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
// Remove inactive connections
|
|
250
|
-
const activeConnections = Array.from(connections).filter((conn) => conn.isActive);
|
|
251
|
-
if (activeConnections.length !== connections.size) {
|
|
252
|
-
this.connections.set(orgId, new Set(activeConnections));
|
|
253
|
-
if (activeConnections.length === 0) {
|
|
254
|
-
this.connections.delete(orgId);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
// Clean up old pending events (older than 5 minutes)
|
|
259
|
-
const maxEventAge = 300000; // 5 minutes
|
|
260
|
-
for (const [eventId, event] of this.pendingEvents) {
|
|
261
|
-
if (now - event.timestamp > maxEventAge) {
|
|
262
|
-
console.log(`[SSE] Cleaning up old pending event: ${eventId}`);
|
|
263
|
-
this.pendingEvents.delete(eventId);
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
}, 60000); // Check every minute instead of every 30 seconds
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Generate unique event ID
|
|
270
|
-
*/
|
|
271
|
-
generateEventId() {
|
|
272
|
-
return `evt_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Cleanup resources
|
|
276
|
-
*/
|
|
277
|
-
cleanup() {
|
|
278
|
-
if (this.connectionMonitorInterval) {
|
|
279
|
-
clearInterval(this.connectionMonitorInterval);
|
|
280
|
-
}
|
|
281
|
-
// Close all connections
|
|
282
|
-
for (const [, connections] of this.connections) {
|
|
283
|
-
for (const connection of connections) {
|
|
284
|
-
if (connection.isActive) {
|
|
285
|
-
try {
|
|
286
|
-
connection.controller.close();
|
|
287
|
-
}
|
|
288
|
-
catch (error) {
|
|
289
|
-
// Ignore close errors
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
this.connections.clear();
|
|
295
|
-
this.pendingEvents.clear();
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
exports.SSEManager = SSEManager;
|
|
299
|
-
// Global SSE manager instance
|
|
300
|
-
let globalSSEManager = null;
|
|
301
|
-
/**
|
|
302
|
-
* Get or create global SSE manager
|
|
303
|
-
*/
|
|
304
|
-
function getSSEManager() {
|
|
305
|
-
if (!globalSSEManager) {
|
|
306
|
-
globalSSEManager = new SSEManager();
|
|
307
|
-
}
|
|
308
|
-
return globalSSEManager;
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Create SSE stream for Vercel/Next.js API routes
|
|
312
|
-
*/
|
|
313
|
-
function createSSEStream(organizationId) {
|
|
314
|
-
const manager = getSSEManager();
|
|
315
|
-
return manager.createSSEStream(organizationId);
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Broadcast invalidation event
|
|
319
|
-
*/
|
|
320
|
-
async function broadcastInvalidation(organizationId, invalidationData) {
|
|
321
|
-
const manager = getSSEManager();
|
|
322
|
-
await manager.broadcastInvalidation(organizationId, invalidationData);
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Acknowledge event (for API route)
|
|
326
|
-
*/
|
|
327
|
-
function acknowledgeEvent(eventId) {
|
|
328
|
-
const manager = getSSEManager();
|
|
329
|
-
manager.acknowledgeEvent(eventId);
|
|
330
|
-
}
|
|
331
|
-
//# sourceMappingURL=sse.js.map
|
package/dist/core/sse.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/core/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LocalStorageProvider = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* LocalStorage cache provider implementation
|
|
6
|
-
*/
|
|
7
|
-
class LocalStorageProvider {
|
|
8
|
-
prefix = '@drizzle/reactive:';
|
|
9
|
-
async get(key) {
|
|
10
|
-
try {
|
|
11
|
-
const item = localStorage.getItem(this.prefix + key);
|
|
12
|
-
if (!item)
|
|
13
|
-
return null;
|
|
14
|
-
const parsed = JSON.parse(item);
|
|
15
|
-
if (parsed.expires && Date.now() > parsed.expires) {
|
|
16
|
-
localStorage.removeItem(this.prefix + key);
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return parsed.value;
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
async set(key, value, ttl) {
|
|
26
|
-
try {
|
|
27
|
-
const expires = ttl ? Date.now() + ttl * 1000 : undefined;
|
|
28
|
-
const item = JSON.stringify({ value, expires });
|
|
29
|
-
localStorage.setItem(this.prefix + key, item);
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
// Handle localStorage quota exceeded
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async del(key) {
|
|
36
|
-
localStorage.removeItem(this.prefix + key);
|
|
37
|
-
}
|
|
38
|
-
async invalidate(pattern) {
|
|
39
|
-
const regex = new RegExp(pattern.replace('*', '.*'));
|
|
40
|
-
const keysToDelete = [];
|
|
41
|
-
for (let i = 0; i < localStorage.length; i++) {
|
|
42
|
-
const key = localStorage.key(i);
|
|
43
|
-
if (key?.startsWith(this.prefix)) {
|
|
44
|
-
const unprefixedKey = key.slice(this.prefix.length);
|
|
45
|
-
if (regex.test(unprefixedKey)) {
|
|
46
|
-
keysToDelete.push(key);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
keysToDelete.forEach((key) => localStorage.removeItem(key));
|
|
51
|
-
}
|
|
52
|
-
async clear() {
|
|
53
|
-
const keysToDelete = [];
|
|
54
|
-
for (let i = 0; i < localStorage.length; i++) {
|
|
55
|
-
const key = localStorage.key(i);
|
|
56
|
-
if (key?.startsWith(this.prefix)) {
|
|
57
|
-
keysToDelete.push(key);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
keysToDelete.forEach((key) => localStorage.removeItem(key));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.LocalStorageProvider = LocalStorageProvider;
|
|
64
|
-
//# sourceMappingURL=localStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../src/providers/localStorage.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/memory.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MemoryProvider = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* In-memory cache provider implementation
|
|
6
|
-
*/
|
|
7
|
-
class MemoryProvider {
|
|
8
|
-
cache = new Map();
|
|
9
|
-
async get(key) {
|
|
10
|
-
const item = this.cache.get(key);
|
|
11
|
-
if (!item)
|
|
12
|
-
return null;
|
|
13
|
-
if (item.expires && Date.now() > item.expires) {
|
|
14
|
-
this.cache.delete(key);
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return item.value;
|
|
18
|
-
}
|
|
19
|
-
async set(key, value, ttl) {
|
|
20
|
-
const expires = ttl ? Date.now() + ttl * 1000 : undefined;
|
|
21
|
-
this.cache.set(key, { value, expires });
|
|
22
|
-
}
|
|
23
|
-
async del(key) {
|
|
24
|
-
this.cache.delete(key);
|
|
25
|
-
}
|
|
26
|
-
async invalidate(pattern) {
|
|
27
|
-
// Simple pattern matching for now
|
|
28
|
-
const regex = new RegExp(pattern.replace('*', '.*'));
|
|
29
|
-
for (const key of this.cache.keys()) {
|
|
30
|
-
if (regex.test(key)) {
|
|
31
|
-
this.cache.delete(key);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async clear() {
|
|
36
|
-
this.cache.clear();
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
exports.MemoryProvider = MemoryProvider;
|
|
40
|
-
//# sourceMappingURL=memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,cAAc;IACjB,KAAK,GAAG,IAAI,GAAG,EAA4C,CAAA;IAEnE,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAY;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QACzD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACpD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF;AArCD,wCAqCC"}
|
package/dist/providers/redis.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RedisProvider = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* Redis cache provider implementation
|
|
6
|
-
*/
|
|
7
|
-
class RedisProvider {
|
|
8
|
-
redisClient;
|
|
9
|
-
constructor(redisClient) {
|
|
10
|
-
this.redisClient = redisClient;
|
|
11
|
-
// TODO: Initialize Redis client
|
|
12
|
-
}
|
|
13
|
-
async get(key) {
|
|
14
|
-
// TODO: Implement Redis get
|
|
15
|
-
console.warn('@drizzle/reactive: Redis provider not yet implemented', key);
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
async set(key, value, ttl) {
|
|
19
|
-
// TODO: Implement Redis set
|
|
20
|
-
console.warn('@drizzle/reactive: Redis provider not yet implemented', key, value, ttl);
|
|
21
|
-
}
|
|
22
|
-
async del(key) {
|
|
23
|
-
// TODO: Implement Redis delete
|
|
24
|
-
console.warn('@drizzle/reactive: Redis provider not yet implemented', key);
|
|
25
|
-
}
|
|
26
|
-
async invalidate(pattern) {
|
|
27
|
-
// TODO: Implement Redis pattern invalidation
|
|
28
|
-
console.warn('@drizzle/reactive: Redis provider not yet implemented', pattern);
|
|
29
|
-
}
|
|
30
|
-
async clear() {
|
|
31
|
-
// TODO: Implement Redis clear
|
|
32
|
-
console.warn('@drizzle/reactive: Redis provider not yet implemented');
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.RedisProvider = RedisProvider;
|
|
36
|
-
//# sourceMappingURL=redis.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/providers/redis.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,aAAa;IACJ;IAApB,YAAoB,WAAiB;QAAjB,gBAAW,GAAX,WAAW,CAAM;QACnC,gCAAgC;IAClC,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW;QACtB,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAY;QAC9C,4BAA4B;QAC5B,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,GAAG,EACH,KAAK,EACL,GAAG,CACJ,CAAA;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,+BAA+B;QAC/B,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE,GAAG,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,6CAA6C;QAC7C,OAAO,CAAC,IAAI,CACV,uDAAuD,EACvD,OAAO,CACR,CAAA;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,8BAA8B;QAC9B,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACvE,CAAC;CACF;AAtCD,sCAsCC"}
|
package/dist/trpc/hooks.d.ts
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* React hooks for tRPC reactive integration
|
|
3
|
-
* Provides useReactiveQuery, useReactiveMutation, and useReactiveSubscription
|
|
4
|
-
*/
|
|
5
|
-
import type { TRPCClientError } from '@trpc/client';
|
|
6
|
-
import type { UseReactiveResult } from '../client/types';
|
|
7
|
-
export interface UseReactiveQueryOptions<TData = unknown> {
|
|
8
|
-
enabled?: boolean;
|
|
9
|
-
refetchOnMount?: boolean;
|
|
10
|
-
refetchOnWindowFocus?: boolean;
|
|
11
|
-
retry?: number | boolean;
|
|
12
|
-
retryDelay?: number;
|
|
13
|
-
staleTime?: number;
|
|
14
|
-
cacheTime?: number;
|
|
15
|
-
onSuccess?: (data: TData) => void;
|
|
16
|
-
onError?: (error: TRPCClientError<any>) => void;
|
|
17
|
-
initialData?: TData;
|
|
18
|
-
}
|
|
19
|
-
export interface UseReactiveQueryResult<TData = unknown, TError = unknown> extends UseReactiveResult<TData> {
|
|
20
|
-
refetch: () => Promise<void>;
|
|
21
|
-
remove: () => void;
|
|
22
|
-
isFetching: boolean;
|
|
23
|
-
isRefetching: boolean;
|
|
24
|
-
dataUpdatedAt: number;
|
|
25
|
-
errorUpdatedAt: number;
|
|
26
|
-
failureCount: number;
|
|
27
|
-
}
|
|
28
|
-
export interface UseReactiveMutationOptions<TData = unknown, TVariables = unknown> {
|
|
29
|
-
onSuccess?: (data: TData, variables: TVariables) => void;
|
|
30
|
-
onError?: (error: TRPCClientError<any>, variables: TVariables) => void;
|
|
31
|
-
onSettled?: (data: TData | undefined, error: TRPCClientError<any> | null, variables: TVariables) => void;
|
|
32
|
-
retry?: number | boolean;
|
|
33
|
-
retryDelay?: number;
|
|
34
|
-
}
|
|
35
|
-
export interface UseReactiveMutationResult<TData = unknown, TVariables = unknown> {
|
|
36
|
-
mutate: (variables: TVariables) => void;
|
|
37
|
-
mutateAsync: (variables: TVariables) => Promise<TData>;
|
|
38
|
-
reset: () => void;
|
|
39
|
-
data: TData | undefined;
|
|
40
|
-
error: TRPCClientError<any> | null;
|
|
41
|
-
isLoading: boolean;
|
|
42
|
-
isSuccess: boolean;
|
|
43
|
-
isError: boolean;
|
|
44
|
-
isIdle: boolean;
|
|
45
|
-
variables: TVariables | undefined;
|
|
46
|
-
failureCount: number;
|
|
47
|
-
}
|
|
48
|
-
export interface UseReactiveSubscriptionOptions<TData = unknown> {
|
|
49
|
-
enabled?: boolean;
|
|
50
|
-
onData?: (data: TData) => void;
|
|
51
|
-
onError?: (error: TRPCClientError<any>) => void;
|
|
52
|
-
onStarted?: () => void;
|
|
53
|
-
onStopped?: () => void;
|
|
54
|
-
}
|
|
55
|
-
export interface UseReactiveSubscriptionResult<TData = unknown> {
|
|
56
|
-
data: TData | undefined;
|
|
57
|
-
error: TRPCClientError<any> | null;
|
|
58
|
-
status: 'loading' | 'error' | 'success' | 'idle';
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Hook for reactive tRPC queries with automatic caching and invalidation
|
|
62
|
-
*/
|
|
63
|
-
export declare function useReactiveQuery<TData = unknown, TVariables = unknown>(procedure: string, input?: TVariables, options?: UseReactiveQueryOptions<TData>): UseReactiveQueryResult<TData>;
|
|
64
|
-
/**
|
|
65
|
-
* Hook for reactive tRPC mutations with automatic invalidation
|
|
66
|
-
*/
|
|
67
|
-
export declare function useReactiveMutation<TData = unknown, TVariables = unknown>(procedure: string, options?: UseReactiveMutationOptions<TData, TVariables>): UseReactiveMutationResult<TData, TVariables>;
|
|
68
|
-
/**
|
|
69
|
-
* Hook for reactive tRPC subscriptions with real-time updates
|
|
70
|
-
*/
|
|
71
|
-
export declare function useReactiveSubscription<TData = unknown, TVariables = unknown>(procedure: string, input?: TVariables, options?: UseReactiveSubscriptionOptions<TData>): UseReactiveSubscriptionResult<TData>;
|
|
72
|
-
/**
|
|
73
|
-
* Hook to get reactive router statistics
|
|
74
|
-
*/
|
|
75
|
-
export declare function useReactiveRouterStats(): {
|
|
76
|
-
activeQueries: number;
|
|
77
|
-
activeMutations: number;
|
|
78
|
-
activeSubscriptions: number;
|
|
79
|
-
cacheHitRate: number;
|
|
80
|
-
lastUpdate: number;
|
|
81
|
-
};
|
|
82
|
-
//# sourceMappingURL=hooks.d.ts.map
|
package/dist/trpc/hooks.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/trpc/hooks.ts"],"names":[],"mappings":"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"}
|