@agelum/backend 0.1.2 → 0.1.3
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 +33 -5
- package/dist/client/hooks.d.ts +1 -1
- package/dist/client/hooks.d.ts.map +1 -1
- package/dist/client/hooks.js +343 -0
- package/dist/client/hooks.js.map +1 -0
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +15 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/manager.d.ts +4 -4
- package/dist/client/manager.d.ts.map +1 -1
- package/dist/client/manager.js +287 -0
- package/dist/client/manager.js.map +1 -0
- package/dist/client/provider.d.ts +1 -1
- package/dist/client/provider.d.ts.map +1 -1
- package/dist/client/provider.js +84 -0
- package/dist/client/provider.js.map +1 -0
- package/dist/client/revalidation.d.ts +2 -2
- package/dist/client/revalidation.d.ts.map +1 -1
- package/dist/client/revalidation.js +308 -0
- package/dist/client/revalidation.js.map +1 -0
- package/dist/client/session.d.ts +84 -0
- package/dist/client/session.d.ts.map +1 -0
- package/dist/client/session.js +180 -0
- package/dist/client/session.js.map +1 -0
- package/dist/client/sse-client.d.ts +1 -1
- package/dist/client/sse-client.d.ts.map +1 -1
- package/dist/client/sse-client.js +217 -0
- package/dist/client/sse-client.js.map +1 -0
- package/dist/client/storage.d.ts +1 -1
- package/dist/client/storage.d.ts.map +1 -1
- package/dist/client/storage.js +489 -0
- package/dist/client/storage.js.map +1 -0
- package/dist/client/trpc.js +29 -0
- package/dist/client/trpc.js.map +1 -0
- package/dist/client/types.d.ts +10 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client.d.ts +6 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +14 -0
- package/dist/client.js.map +1 -0
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +35 -38
- package/dist/config/schema.js.map +1 -1
- package/dist/core/analyzer.d.ts +1 -1
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +212 -0
- package/dist/core/analyzer.js.map +1 -0
- package/dist/core/driver.d.ts +1 -1
- package/dist/core/driver.d.ts.map +1 -1
- package/dist/core/driver.js +9 -12
- package/dist/core/driver.js.map +1 -1
- package/dist/core/function.d.ts +1 -1
- package/dist/core/function.d.ts.map +1 -1
- package/dist/core/function.js +4 -11
- package/dist/core/function.js.map +1 -1
- package/dist/core/sse.d.ts +1 -1
- package/dist/core/sse.d.ts.map +1 -1
- package/dist/core/sse.js +323 -0
- package/dist/core/sse.js.map +1 -0
- package/dist/core/types.js +1 -2
- package/dist/index.d.ts +12 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -25
- 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/localStorage.js +66 -0
- package/dist/providers/localStorage.js.map +1 -0
- package/dist/providers/memory.d.ts +1 -1
- package/dist/providers/memory.d.ts.map +1 -1
- package/dist/providers/memory.js +36 -0
- package/dist/providers/memory.js.map +1 -0
- package/dist/providers/redis.d.ts +1 -1
- package/dist/providers/redis.d.ts.map +1 -1
- package/dist/providers/redis.js +32 -0
- package/dist/providers/redis.js.map +1 -0
- package/dist/server.d.ts +11 -11
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +8 -23
- package/dist/server.js.map +1 -1
- package/dist/trpc/hooks.d.ts +82 -0
- package/dist/trpc/hooks.d.ts.map +1 -0
- package/dist/trpc/hooks.js +276 -0
- package/dist/trpc/hooks.js.map +1 -0
- package/dist/trpc/index.d.ts +4 -4
- package/dist/trpc/index.d.ts.map +1 -1
- package/dist/trpc/index.js +2 -12
- package/dist/trpc/index.js.map +1 -1
- package/dist/trpc/router.d.ts +3 -3
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +6 -12
- package/dist/trpc/router.js.map +1 -1
- package/dist/trpc/types.d.ts +2 -2
- package/dist/trpc/types.d.ts.map +1 -1
- package/dist/trpc/types.js +1 -2
- package/dist/trpc/types.js.map +1 -1
- package/package.json +21 -10
- package/dist/examples/teamhub-integration.d.ts +0 -56
- package/dist/examples/teamhub-integration.d.ts.map +0 -1
- package/dist/examples/teamhub-integration.js +0 -192
- package/dist/examples/teamhub-integration.js.map +0 -1
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client-side reactive manager
|
|
3
|
+
* Coordinates storage, session recovery, and real-time synchronization
|
|
4
|
+
*/
|
|
5
|
+
import { createReactiveStorage } from './storage.js';
|
|
6
|
+
import { createSimpleSessionManager, revalidateOnPageLoad, } from './session.js';
|
|
7
|
+
import { createSmartRevalidationEngine, } from './revalidation.js';
|
|
8
|
+
import { SSEClient } from './sse-client.js';
|
|
9
|
+
export class ReactiveClientManager {
|
|
10
|
+
storage;
|
|
11
|
+
sessionManager;
|
|
12
|
+
revalidationEngine;
|
|
13
|
+
sseClient = null;
|
|
14
|
+
config;
|
|
15
|
+
organizationId;
|
|
16
|
+
onInvalidation;
|
|
17
|
+
onRevalidate;
|
|
18
|
+
// Event listeners
|
|
19
|
+
visibilityListener;
|
|
20
|
+
beforeUnloadListener;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.organizationId = options.organizationId;
|
|
23
|
+
this.config = options.config;
|
|
24
|
+
this.onInvalidation = options.onInvalidation;
|
|
25
|
+
this.onRevalidate = options.onRevalidate;
|
|
26
|
+
// Initialize storage, session management, and smart revalidation
|
|
27
|
+
this.storage = createReactiveStorage(this.organizationId);
|
|
28
|
+
this.sessionManager = createSimpleSessionManager(this.organizationId);
|
|
29
|
+
this.revalidationEngine = createSmartRevalidationEngine(this.storage, this.config);
|
|
30
|
+
// Set up event listeners
|
|
31
|
+
this.setupEventListeners();
|
|
32
|
+
// Initialize SSE connection if real-time is enabled
|
|
33
|
+
if (this.config.realtime?.enabled !== false) {
|
|
34
|
+
this.initializeSSEConnection(options.sseOptions);
|
|
35
|
+
}
|
|
36
|
+
// Initial session gap check (simple revalidation on page load)
|
|
37
|
+
this.checkInitialSession();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get organization ID
|
|
41
|
+
*/
|
|
42
|
+
get currentOrganizationId() {
|
|
43
|
+
return this.organizationId;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Register a query execution
|
|
47
|
+
*/
|
|
48
|
+
registerQuery(queryKey, dependencies, data, ttl) {
|
|
49
|
+
this.storage.registerQuery(queryKey, dependencies, data, ttl);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Register an active React hook
|
|
53
|
+
*/
|
|
54
|
+
registerActiveHook(queryKey, dependencies) {
|
|
55
|
+
this.storage.registerActiveHook(queryKey, dependencies, this.organizationId);
|
|
56
|
+
// Return cleanup function
|
|
57
|
+
return () => {
|
|
58
|
+
this.storage.unregisterActiveHook(queryKey);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get cached data for a query
|
|
63
|
+
*/
|
|
64
|
+
getCachedData(queryKey) {
|
|
65
|
+
return this.storage.getCachedData(queryKey);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Handle invalidation event from server
|
|
69
|
+
*/
|
|
70
|
+
handleInvalidation(event) {
|
|
71
|
+
console.log(`[ReactiveClient] Handling invalidation for table: ${event.table}`);
|
|
72
|
+
// Notify external handler if provided
|
|
73
|
+
if (this.onInvalidation) {
|
|
74
|
+
this.onInvalidation(event);
|
|
75
|
+
}
|
|
76
|
+
// Mark affected queries as invalidated in session manager
|
|
77
|
+
const affectedQueries = this.findAffectedQueries(event.table);
|
|
78
|
+
affectedQueries.forEach((queryKey) => {
|
|
79
|
+
this.sessionManager.markQueryInvalidated(queryKey);
|
|
80
|
+
});
|
|
81
|
+
// Trigger revalidation for affected queries
|
|
82
|
+
if (this.onRevalidate) {
|
|
83
|
+
affectedQueries.forEach((queryKey) => {
|
|
84
|
+
this.revalidateQuery(queryKey);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Find queries affected by table changes
|
|
90
|
+
*/
|
|
91
|
+
findAffectedQueries(table) {
|
|
92
|
+
const registry = this.storage.getRegistry();
|
|
93
|
+
if (!registry)
|
|
94
|
+
return [];
|
|
95
|
+
const relatedTables = this.config.relations[table] || [];
|
|
96
|
+
const tablesToCheck = [table, ...relatedTables];
|
|
97
|
+
return Object.keys(registry.queries).filter((queryKey) => {
|
|
98
|
+
// Simple heuristic: check if query key contains table name
|
|
99
|
+
return tablesToCheck.some((tableName) => queryKey.toLowerCase().includes(tableName.toLowerCase()));
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle connection status changes
|
|
104
|
+
*/
|
|
105
|
+
handleConnectionStatus(connected) {
|
|
106
|
+
console.log(`[ReactiveClient] Real-time connection: ${connected}`);
|
|
107
|
+
// Update session manager with connection status
|
|
108
|
+
const registry = this.storage.getRegistry();
|
|
109
|
+
if (registry) {
|
|
110
|
+
registry.session.realtimeConnected = connected;
|
|
111
|
+
this.storage['saveRegistry'](registry);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Revalidate a specific query
|
|
116
|
+
*/
|
|
117
|
+
async revalidateQuery(queryKey) {
|
|
118
|
+
if (this.onRevalidate) {
|
|
119
|
+
try {
|
|
120
|
+
const result = await this.onRevalidate(queryKey);
|
|
121
|
+
// Update cache with fresh data
|
|
122
|
+
if (result !== undefined) {
|
|
123
|
+
this.storage.registerQuery(queryKey, [], result);
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
console.error(`[ReactiveClient] Revalidation failed for ${queryKey}:`, error);
|
|
129
|
+
// Do not overwrite cache on error; keep existing data intact
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Initialize SSE connection for real-time updates
|
|
137
|
+
*/
|
|
138
|
+
initializeSSEConnection(sseOptions) {
|
|
139
|
+
console.log('[ReactiveClient] Initializing SSE connection');
|
|
140
|
+
// Build SSE URL with organization ID
|
|
141
|
+
const sseUrl = `/api/events?organizationId=${this.organizationId}`;
|
|
142
|
+
this.sseClient = new SSEClient({
|
|
143
|
+
url: sseUrl,
|
|
144
|
+
onInvalidation: (event) => this.handleInvalidation(event),
|
|
145
|
+
onError: (error) => {
|
|
146
|
+
console.error('[ReactiveClient] SSE error:', error);
|
|
147
|
+
},
|
|
148
|
+
...sseOptions,
|
|
149
|
+
});
|
|
150
|
+
// Connect immediately
|
|
151
|
+
this.sseClient.connect();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get SSE connection statistics
|
|
155
|
+
*/
|
|
156
|
+
getSSEStats() {
|
|
157
|
+
return this.sseClient?.getStats() || null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Manually reconnect SSE
|
|
161
|
+
*/
|
|
162
|
+
reconnectSSE() {
|
|
163
|
+
if (this.sseClient) {
|
|
164
|
+
console.log('[ReactiveClient] Manual SSE reconnection');
|
|
165
|
+
this.sseClient.disconnect();
|
|
166
|
+
setTimeout(() => {
|
|
167
|
+
this.sseClient?.connect();
|
|
168
|
+
}, 1000);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Set up browser event listeners
|
|
173
|
+
*/
|
|
174
|
+
setupEventListeners() {
|
|
175
|
+
// Page visibility change (user switches tabs)
|
|
176
|
+
this.visibilityListener = () => {
|
|
177
|
+
if (document.visibilityState === 'visible') {
|
|
178
|
+
this.handleVisibilityChange();
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
document.addEventListener('visibilitychange', this.visibilityListener);
|
|
182
|
+
// Before page unload (save state)
|
|
183
|
+
this.beforeUnloadListener = () => {
|
|
184
|
+
// Update last sync time before unload
|
|
185
|
+
const registry = this.storage.getRegistry();
|
|
186
|
+
if (registry) {
|
|
187
|
+
registry.session.lastSync = Date.now();
|
|
188
|
+
this.storage['saveRegistry'](registry);
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
window.addEventListener('beforeunload', this.beforeUnloadListener);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Remove event listeners
|
|
195
|
+
*/
|
|
196
|
+
removeEventListeners() {
|
|
197
|
+
if (this.visibilityListener) {
|
|
198
|
+
document.removeEventListener('visibilitychange', this.visibilityListener);
|
|
199
|
+
}
|
|
200
|
+
if (this.beforeUnloadListener) {
|
|
201
|
+
window.removeEventListener('beforeunload', this.beforeUnloadListener);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Check for session gap on initial load (simple approach as per spec)
|
|
206
|
+
*/
|
|
207
|
+
async checkInitialSession() {
|
|
208
|
+
const activeHookQueries = this.storage
|
|
209
|
+
.getActiveHooks()
|
|
210
|
+
.map((hook) => hook.queryKey);
|
|
211
|
+
await revalidateOnPageLoad(this.sessionManager, activeHookQueries, this.revalidateQuery.bind(this));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Handle page visibility change
|
|
215
|
+
*/
|
|
216
|
+
async handleVisibilityChange() {
|
|
217
|
+
if (document.visibilityState === 'visible') {
|
|
218
|
+
// Check for stale data when page becomes visible
|
|
219
|
+
await this.checkInitialSession();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Get current connection status
|
|
224
|
+
*/
|
|
225
|
+
getConnectionStatus() {
|
|
226
|
+
if (!this.sseClient)
|
|
227
|
+
return 'disconnected';
|
|
228
|
+
const state = this.sseClient.getConnectionState();
|
|
229
|
+
return state === 'open'
|
|
230
|
+
? 'connected'
|
|
231
|
+
: state === 'connecting'
|
|
232
|
+
? 'connecting'
|
|
233
|
+
: 'disconnected';
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Check if real-time is enabled and connected
|
|
237
|
+
*/
|
|
238
|
+
isRealtimeEnabled() {
|
|
239
|
+
return (this.config.realtime?.enabled !== false &&
|
|
240
|
+
this.sseClient?.isConnected() === true);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get storage statistics
|
|
244
|
+
*/
|
|
245
|
+
getStorageStats() {
|
|
246
|
+
return this.storage.exportRegistry();
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get session statistics
|
|
250
|
+
*/
|
|
251
|
+
getSessionStats() {
|
|
252
|
+
return this.sessionManager.getSessionStats();
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get revalidation statistics
|
|
256
|
+
*/
|
|
257
|
+
getRevalidationStats() {
|
|
258
|
+
return this.revalidationEngine.getRevalidationStats();
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Mark a query as stale for testing purposes
|
|
262
|
+
*/
|
|
263
|
+
markQueryStaleForTesting(queryKey) {
|
|
264
|
+
this.storage.markQueryStaleForTesting(queryKey);
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Cleanup resources
|
|
268
|
+
*/
|
|
269
|
+
cleanup() {
|
|
270
|
+
// Remove event listeners
|
|
271
|
+
this.removeEventListeners();
|
|
272
|
+
// Disconnect SSE
|
|
273
|
+
if (this.sseClient) {
|
|
274
|
+
this.sseClient.disconnect();
|
|
275
|
+
this.sseClient = null;
|
|
276
|
+
}
|
|
277
|
+
// Clear storage
|
|
278
|
+
this.storage.clearRegistry();
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Create reactive client manager
|
|
283
|
+
*/
|
|
284
|
+
export function createReactiveClientManager(options) {
|
|
285
|
+
return new ReactiveClientManager(options);
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/client/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/client/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/client/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAE7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,UAAU,sBAAsB;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAClD;AAED,UAAU,oBAAoB;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,cAAc,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;CACvB;AAID;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,EAAE,sBAAsB,CAAA;CAC/B,oFA2GA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,yBAMjC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import React, { createContext, useContext, useEffect, useState } from 'react';
|
|
2
|
+
import { initializeReactiveClient } from './hooks.js';
|
|
3
|
+
const ReactiveContext = createContext(null);
|
|
4
|
+
/**
|
|
5
|
+
* React context provider for reactive features
|
|
6
|
+
*/
|
|
7
|
+
export function ReactiveProvider({ children, config, }) {
|
|
8
|
+
const [isInitialized, setIsInitialized] = useState(false);
|
|
9
|
+
const { organizationId } = config;
|
|
10
|
+
const reactiveConfig = {
|
|
11
|
+
relations: config.relations,
|
|
12
|
+
realtime: {
|
|
13
|
+
enabled: true,
|
|
14
|
+
transport: 'sse',
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
// Default revalidation function that returns mock data
|
|
18
|
+
// The ReactiveStorage system handles persistence automatically
|
|
19
|
+
const defaultRevalidateFn = async (queryKey) => {
|
|
20
|
+
console.log('🔄 Default revalidating query:', queryKey);
|
|
21
|
+
// Return mock data based on query key
|
|
22
|
+
if (queryKey.includes('agents.getAll')) {
|
|
23
|
+
const mockData = [
|
|
24
|
+
{
|
|
25
|
+
id: '1',
|
|
26
|
+
name: 'Test Agent 1',
|
|
27
|
+
role: 'assistant',
|
|
28
|
+
organizationId: organizationId,
|
|
29
|
+
isActive: true,
|
|
30
|
+
createdAt: new Date().toISOString(),
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: '2',
|
|
34
|
+
name: 'Test Agent 2',
|
|
35
|
+
role: 'researcher',
|
|
36
|
+
organizationId: organizationId,
|
|
37
|
+
isActive: true,
|
|
38
|
+
createdAt: new Date().toISOString(),
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
// Note: ReactiveStorage will automatically persist this data
|
|
42
|
+
// No need for manual localStorage handling
|
|
43
|
+
console.log('💾 Mock data generated, ReactiveStorage will persist automatically');
|
|
44
|
+
return mockData;
|
|
45
|
+
}
|
|
46
|
+
return [];
|
|
47
|
+
};
|
|
48
|
+
const revalidateFn = config.revalidateFn || defaultRevalidateFn;
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
console.log('🚀 ReactiveProvider: Initializing reactive client for org:', organizationId);
|
|
51
|
+
try {
|
|
52
|
+
// Initialize the client immediately
|
|
53
|
+
initializeReactiveClient(organizationId, reactiveConfig, revalidateFn);
|
|
54
|
+
setIsInitialized(true);
|
|
55
|
+
console.log('✅ ReactiveProvider: Client initialized successfully for org:', organizationId);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error('❌ ReactiveProvider: Failed to initialize client:', error);
|
|
59
|
+
}
|
|
60
|
+
}, [organizationId, revalidateFn]);
|
|
61
|
+
const contextValue = {
|
|
62
|
+
organizationId,
|
|
63
|
+
config: reactiveConfig,
|
|
64
|
+
isInitialized,
|
|
65
|
+
};
|
|
66
|
+
// Don't render children until client is initialized
|
|
67
|
+
if (!isInitialized) {
|
|
68
|
+
return React.createElement(ReactiveContext.Provider, { value: contextValue }, React.createElement('div', { className: 'flex items-center justify-center p-8' }, React.createElement('div', { className: 'text-center' }, React.createElement('div', {
|
|
69
|
+
className: 'animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto mb-4',
|
|
70
|
+
}), React.createElement('p', { className: 'text-gray-600' }, 'Initializing reactive client...'))));
|
|
71
|
+
}
|
|
72
|
+
return React.createElement(ReactiveContext.Provider, { value: contextValue }, children);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Hook to access reactive context
|
|
76
|
+
*/
|
|
77
|
+
export function useReactiveContext() {
|
|
78
|
+
const context = useContext(ReactiveContext);
|
|
79
|
+
if (!context) {
|
|
80
|
+
throw new Error('useReactiveContext must be used within a ReactiveProvider');
|
|
81
|
+
}
|
|
82
|
+
return context;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/client/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Smart revalidation system with active hooks priority
|
|
3
3
|
* Provides intelligent query revalidation based on user interaction patterns
|
|
4
4
|
*/
|
|
5
|
-
import type { ReactiveStorage } from './storage';
|
|
6
|
-
import type { ReactiveConfig } from '../core/types';
|
|
5
|
+
import type { ReactiveStorage } from './storage.js';
|
|
6
|
+
import type { ReactiveConfig } from '../core/types.js';
|
|
7
7
|
export interface RevalidationStrategy {
|
|
8
8
|
immediate: string[];
|
|
9
9
|
delayed: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revalidation.d.ts","sourceRoot":"","sources":["../../src/client/revalidation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"revalidation.d.ts","sourceRoot":"","sources":["../../src/client/revalidation.ts"],"names":[],"mappings":"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"}
|