@agelum/backend 0.1.0 → 0.1.1

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.
Files changed (106) hide show
  1. package/README.md +184 -113
  2. package/package.json +13 -13
  3. package/dist/client/hooks.d.ts +0 -65
  4. package/dist/client/hooks.d.ts.map +0 -1
  5. package/dist/client/hooks.js +0 -339
  6. package/dist/client/hooks.js.map +0 -1
  7. package/dist/client/index.d.ts +0 -10
  8. package/dist/client/index.d.ts.map +0 -1
  9. package/dist/client/index.js +0 -37
  10. package/dist/client/index.js.map +0 -1
  11. package/dist/client/manager.d.ts +0 -137
  12. package/dist/client/manager.d.ts.map +0 -1
  13. package/dist/client/manager.js +0 -292
  14. package/dist/client/manager.js.map +0 -1
  15. package/dist/client/provider.d.ts +0 -25
  16. package/dist/client/provider.d.ts.map +0 -1
  17. package/dist/client/provider.js +0 -121
  18. package/dist/client/provider.js.map +0 -1
  19. package/dist/client/revalidation.d.ts +0 -101
  20. package/dist/client/revalidation.d.ts.map +0 -1
  21. package/dist/client/revalidation.js +0 -313
  22. package/dist/client/revalidation.js.map +0 -1
  23. package/dist/client/session.d.ts +0 -84
  24. package/dist/client/session.d.ts.map +0 -1
  25. package/dist/client/session.js +0 -186
  26. package/dist/client/session.js.map +0 -1
  27. package/dist/client/sse-client.d.ts +0 -81
  28. package/dist/client/sse-client.d.ts.map +0 -1
  29. package/dist/client/sse-client.js +0 -221
  30. package/dist/client/sse-client.js.map +0 -1
  31. package/dist/client/storage.d.ts +0 -124
  32. package/dist/client/storage.d.ts.map +0 -1
  33. package/dist/client/storage.js +0 -441
  34. package/dist/client/storage.js.map +0 -1
  35. package/dist/client/trpc.d.ts +0 -12
  36. package/dist/client/trpc.d.ts.map +0 -1
  37. package/dist/client/trpc.js +0 -36
  38. package/dist/client/trpc.js.map +0 -1
  39. package/dist/client/types.d.ts +0 -10
  40. package/dist/client/types.d.ts.map +0 -1
  41. package/dist/client/types.js +0 -3
  42. package/dist/client/types.js.map +0 -1
  43. package/dist/client.d.ts +0 -12
  44. package/dist/client.d.ts.map +0 -1
  45. package/dist/client.js +0 -26
  46. package/dist/client.js.map +0 -1
  47. package/dist/config/schema.d.ts +0 -261
  48. package/dist/config/schema.d.ts.map +0 -1
  49. package/dist/config/schema.js +0 -69
  50. package/dist/config/schema.js.map +0 -1
  51. package/dist/core/analyzer.d.ts +0 -15
  52. package/dist/core/analyzer.d.ts.map +0 -1
  53. package/dist/core/analyzer.js +0 -217
  54. package/dist/core/analyzer.js.map +0 -1
  55. package/dist/core/driver.d.ts +0 -7
  56. package/dist/core/driver.d.ts.map +0 -1
  57. package/dist/core/driver.js +0 -261
  58. package/dist/core/driver.js.map +0 -1
  59. package/dist/core/function.d.ts +0 -97
  60. package/dist/core/function.d.ts.map +0 -1
  61. package/dist/core/function.js +0 -252
  62. package/dist/core/function.js.map +0 -1
  63. package/dist/core/sse.d.ts +0 -98
  64. package/dist/core/sse.d.ts.map +0 -1
  65. package/dist/core/sse.js +0 -331
  66. package/dist/core/sse.js.map +0 -1
  67. package/dist/core/types.d.ts +0 -179
  68. package/dist/core/types.d.ts.map +0 -1
  69. package/dist/core/types.js +0 -3
  70. package/dist/core/types.js.map +0 -1
  71. package/dist/examples/teamhub-integration.d.ts +0 -56
  72. package/dist/examples/teamhub-integration.d.ts.map +0 -1
  73. package/dist/examples/teamhub-integration.js +0 -188
  74. package/dist/examples/teamhub-integration.js.map +0 -1
  75. package/dist/index.d.ts +0 -39
  76. package/dist/index.d.ts.map +0 -1
  77. package/dist/index.js +0 -57
  78. package/dist/index.js.map +0 -1
  79. package/dist/providers/localStorage.d.ts +0 -13
  80. package/dist/providers/localStorage.d.ts.map +0 -1
  81. package/dist/providers/localStorage.js +0 -64
  82. package/dist/providers/localStorage.js.map +0 -1
  83. package/dist/providers/memory.d.ts +0 -13
  84. package/dist/providers/memory.d.ts.map +0 -1
  85. package/dist/providers/memory.js +0 -40
  86. package/dist/providers/memory.js.map +0 -1
  87. package/dist/providers/redis.d.ts +0 -14
  88. package/dist/providers/redis.d.ts.map +0 -1
  89. package/dist/providers/redis.js +0 -36
  90. package/dist/providers/redis.js.map +0 -1
  91. package/dist/server.d.ts +0 -17
  92. package/dist/server.d.ts.map +0 -1
  93. package/dist/server.js +0 -34
  94. package/dist/server.js.map +0 -1
  95. package/dist/trpc/hooks.d.ts +0 -82
  96. package/dist/trpc/hooks.d.ts.map +0 -1
  97. package/dist/trpc/hooks.js +0 -282
  98. package/dist/trpc/hooks.js.map +0 -1
  99. package/dist/trpc/router.d.ts +0 -75
  100. package/dist/trpc/router.d.ts.map +0 -1
  101. package/dist/trpc/router.js +0 -160
  102. package/dist/trpc/router.js.map +0 -1
  103. package/dist/trpc/types.d.ts +0 -105
  104. package/dist/trpc/types.d.ts.map +0 -1
  105. package/dist/trpc/types.js +0 -6
  106. package/dist/trpc/types.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @drizzle/reactive
1
+ # @agelum/backend
2
2
 
3
3
  **Zero configuration, maximum intelligence. Reactive everywhere with no boilerplate.**
4
4
 
@@ -20,7 +20,7 @@ A reactive database library that transforms any Drizzle + tRPC setup into a reac
20
20
  ### Installation
21
21
 
22
22
  ```bash
23
- pnpm add @drizzle/reactive drizzle-orm @trpc/server @trpc/client zod
23
+ pnpm add @agelum/backend drizzle-orm @trpc/server @trpc/client zod
24
24
  ```
25
25
 
26
26
  ## 📖 Core Usage Patterns
@@ -31,65 +31,91 @@ pnpm add @drizzle/reactive drizzle-orm @trpc/server @trpc/client zod
31
31
 
32
32
  ```typescript
33
33
  // server/functions/users.ts
34
- import { defineReactiveFunction } from '@drizzle/reactive/server'
35
- import { z } from 'zod'
34
+ import { defineReactiveFunction } from "@agelum/backend/server";
35
+ import { z } from "zod";
36
36
 
37
37
  // 1. Define a reactive function with explicit name
38
- export const getUsers = defineReactiveFunction({
39
- name: 'users.getAll', // 🔑 This becomes the cache key and tRPC procedure name
40
-
41
- input: z.object({
42
- companyId: z.string(), // Generic, not hardcoded organizationId
43
- limit: z.number().optional().default(50),
44
- }),
45
-
46
- dependencies: ['user'], // What tables this function reads from
47
-
48
- handler: async (input, db) => {
49
- // Clean signature: (input, db)
50
- return db.db.query.users.findMany({
51
- where: (users, { eq }) => eq(users.companyId, input.companyId),
52
- limit: input.limit,
53
- })
54
- },
55
- })
56
-
57
- export const createUser = defineReactiveFunction({
58
- name: 'users.create',
59
-
60
- input: z.object({
61
- name: z.string(),
62
- email: z.string().email(),
63
- companyId: z.string(),
64
- }),
65
-
66
- dependencies: ['user'],
67
-
68
- handler: async (input, db) => {
69
- return db.db.insert(users).values(input).returning()
70
- },
71
- })
38
+ export const getUsers =
39
+ defineReactiveFunction({
40
+ name: "users.getAll", // 🔑 This becomes the cache key and tRPC procedure name
41
+
42
+ input: z.object({
43
+ companyId: z.string(), // Generic, not hardcoded organizationId
44
+ limit: z
45
+ .number()
46
+ .optional()
47
+ .default(50),
48
+ }),
49
+
50
+ dependencies: ["user"], // What tables this function reads from
51
+
52
+ handler: async (input, db) => {
53
+ // Clean signature: (input, db)
54
+ return db.db.query.users.findMany(
55
+ {
56
+ where: (users, { eq }) =>
57
+ eq(
58
+ users.companyId,
59
+ input.companyId,
60
+ ),
61
+ limit: input.limit,
62
+ },
63
+ );
64
+ },
65
+ });
72
66
 
73
- export const getUserProfile = defineReactiveFunction({
74
- name: 'users.profile.getDetailed', // 🏷️ Nested names work perfectly
67
+ export const createUser =
68
+ defineReactiveFunction({
69
+ name: "users.create",
75
70
 
76
- input: z.object({
77
- userId: z.string(),
78
- }),
71
+ input: z.object({
72
+ name: z.string(),
73
+ email: z.string().email(),
74
+ companyId: z.string(),
75
+ }),
79
76
 
80
- dependencies: ['user', 'profile', 'preferences'],
77
+ dependencies: ["user"],
81
78
 
82
- handler: async (input, db) => {
83
- const user = await db.db.query.users.findFirst({
84
- where: (users, { eq }) => eq(users.id, input.userId),
85
- with: {
86
- profile: true,
87
- preferences: true,
88
- },
89
- })
90
- return user
91
- },
92
- })
79
+ handler: async (input, db) => {
80
+ return db.db
81
+ .insert(users)
82
+ .values(input)
83
+ .returning();
84
+ },
85
+ });
86
+
87
+ export const getUserProfile =
88
+ defineReactiveFunction({
89
+ name: "users.profile.getDetailed", // 🏷️ Nested names work perfectly
90
+
91
+ input: z.object({
92
+ userId: z.string(),
93
+ }),
94
+
95
+ dependencies: [
96
+ "user",
97
+ "profile",
98
+ "preferences",
99
+ ],
100
+
101
+ handler: async (input, db) => {
102
+ const user =
103
+ await db.db.query.users.findFirst(
104
+ {
105
+ where: (users, { eq }) =>
106
+ eq(
107
+ users.id,
108
+ input.userId,
109
+ ),
110
+ with: {
111
+ profile: true,
112
+ preferences: true,
113
+ },
114
+ },
115
+ );
116
+ return user;
117
+ },
118
+ });
93
119
  ```
94
120
 
95
121
  ### 2. Server-Side Execution (Without tRPC)
@@ -98,46 +124,67 @@ export const getUserProfile = defineReactiveFunction({
98
124
 
99
125
  ```typescript
100
126
  // server/api/users/route.ts - Next.js API route
101
- import { getUsers, createUser } from '../functions/users'
102
- import { db } from '../db'
103
-
104
- export async function GET(request: Request) {
105
- const { searchParams } = new URL(request.url)
106
- const companyId = searchParams.get('companyId')!
127
+ import {
128
+ getUsers,
129
+ createUser,
130
+ } from "../functions/users";
131
+ import { db } from "../db";
132
+
133
+ export async function GET(
134
+ request: Request,
135
+ ) {
136
+ const { searchParams } = new URL(
137
+ request.url,
138
+ );
139
+ const companyId = searchParams.get(
140
+ "companyId",
141
+ )!;
107
142
 
108
143
  // ✅ Execute reactive function directly on server
109
144
  const users = await getUsers.execute(
110
145
  { companyId, limit: 20 },
111
- db // Your reactive database instance
112
- )
146
+ db, // Your reactive database instance
147
+ );
113
148
 
114
- return Response.json({ users })
149
+ return Response.json({ users });
115
150
  }
116
151
 
117
- export async function POST(request: Request) {
118
- const body = await request.json()
152
+ export async function POST(
153
+ request: Request,
154
+ ) {
155
+ const body = await request.json();
119
156
 
120
157
  // ✅ Execute reactive function directly on server
121
- const newUser = await createUser.execute(body, db)
158
+ const newUser =
159
+ await createUser.execute(body, db);
122
160
 
123
- return Response.json({ user: newUser })
161
+ return Response.json({
162
+ user: newUser,
163
+ });
124
164
  }
125
165
  ```
126
166
 
127
167
  ```typescript
128
168
  // server/jobs/daily-stats.ts - Background job
129
- import { getUsers } from '../functions/users'
130
- import { db } from '../db'
169
+ import { getUsers } from "../functions/users";
170
+ import { db } from "../db";
131
171
 
132
172
  export async function generateDailyStats() {
133
- const companies = await db.db.query.companies.findMany()
173
+ const companies =
174
+ await db.db.query.companies.findMany();
134
175
 
135
176
  for (const company of companies) {
136
177
  // ✅ Execute reactive function in background job
137
- const users = await getUsers.execute({ companyId: company.id }, db)
178
+ const users =
179
+ await getUsers.execute(
180
+ { companyId: company.id },
181
+ db,
182
+ );
138
183
 
139
184
  // Process stats...
140
- console.log(`Company ${company.name} has ${users.length} users`)
185
+ console.log(
186
+ `Company ${company.name} has ${users.length} users`,
187
+ );
141
188
  }
142
189
  }
143
190
  ```
@@ -148,22 +195,28 @@ export async function generateDailyStats() {
148
195
 
149
196
  ```typescript
150
197
  // server/trpc/router.ts
151
- import { createReactiveRouter } from '@drizzle/reactive/server'
152
- import { getUsers, createUser, getUserProfile } from '../functions/users'
153
- import { db } from '../db'
154
-
155
- export const appRouter = createReactiveRouter({ db })
156
- .addQuery(getUsers) // 🔄 Creates procedure: users.getAll
157
- .addMutation(createUser) // 🔄 Creates procedure: users.create
158
- .addQuery(getUserProfile) // 🔄 Creates procedure: users.profile.getDetailed
159
- .build()
198
+ import { createReactiveRouter } from "@agelum/backend/server";
199
+ import {
200
+ getUsers,
201
+ createUser,
202
+ getUserProfile,
203
+ } from "../functions/users";
204
+ import { db } from "../db";
205
+
206
+ export const appRouter =
207
+ createReactiveRouter({ db })
208
+ .addQuery(getUsers) // 🔄 Creates procedure: users.getAll
209
+ .addMutation(createUser) // 🔄 Creates procedure: users.create
210
+ .addQuery(getUserProfile) // 🔄 Creates procedure: users.profile.getDetailed
211
+ .build();
160
212
 
161
213
  // ✅ Auto-generated procedures from function names:
162
214
  // - users.getAll (query)
163
215
  // - users.create (mutation)
164
216
  // - users.profile.getDetailed (query)
165
217
 
166
- export type AppRouter = typeof appRouter
218
+ export type AppRouter =
219
+ typeof appRouter;
167
220
  ```
168
221
 
169
222
  ### 4. Client-Side Usage (React Hooks)
@@ -172,7 +225,7 @@ export type AppRouter = typeof appRouter
172
225
 
173
226
  ```typescript
174
227
  // client/components/UserList.tsx
175
- import { useReactive } from '@drizzle/reactive/client'
228
+ import { useReactive } from '@agelum/backend/client'
176
229
 
177
230
  function UserList({ companyId }: { companyId: string }) {
178
231
  // ✅ Uses the function name automatically: 'users.getAll'
@@ -247,49 +300,62 @@ function CreateUserForm({ companyId }: { companyId: string }) {
247
300
 
248
301
  ```typescript
249
302
  // server/db.ts
250
- import { createReactiveDb } from '@drizzle/reactive/server'
251
- import { drizzle } from 'drizzle-orm/postgres-js'
303
+ import { createReactiveDb } from "@agelum/backend/server";
304
+ import { drizzle } from "drizzle-orm/postgres-js";
252
305
 
253
306
  const config = {
254
307
  relations: {
255
308
  // Relations are table names (not column paths)
256
309
  // When user table changes, invalidate these queries
257
- user: ['profile', 'preferences'],
310
+ user: ["profile", "preferences"],
258
311
 
259
312
  // When profile table changes, invalidate these queries
260
- profile: ['user'],
313
+ profile: ["user"],
261
314
 
262
315
  // When preferences table changes, invalidate these queries
263
- preferences: ['user'],
316
+ preferences: ["user"],
264
317
  },
265
- }
318
+ };
266
319
 
267
- export const db = createReactiveDb(drizzle(pool), config)
320
+ export const db = createReactiveDb(
321
+ drizzle(pool),
322
+ config,
323
+ );
268
324
  ```
269
325
 
270
326
  ### 2. SSE Endpoint (Next.js)
271
327
 
272
328
  ```typescript
273
329
  // app/api/events/route.ts
274
- import { createSSEStream } from '@drizzle/reactive/server'
275
-
276
- export async function GET(request: Request) {
277
- const { searchParams } = new URL(request.url)
278
- const organizationId = searchParams.get('organizationId')!
279
-
280
- return createSSEStream(organizationId)
330
+ import { createSSEStream } from "@agelum/backend/server";
331
+
332
+ export async function GET(
333
+ request: Request,
334
+ ) {
335
+ const { searchParams } = new URL(
336
+ request.url,
337
+ );
338
+ const organizationId =
339
+ searchParams.get("organizationId")!;
340
+
341
+ return createSSEStream(
342
+ organizationId,
343
+ );
281
344
  }
282
345
  ```
283
346
 
284
347
  ```typescript
285
348
  // app/api/events/ack/route.ts
286
349
  // Required for reliable delivery: client acks invalidation events
287
- import { acknowledgeEvent } from '@drizzle/reactive/server'
288
-
289
- export async function POST(request: Request) {
290
- const { eventId } = await request.json()
291
- acknowledgeEvent(eventId)
292
- return Response.json({ ok: true })
350
+ import { acknowledgeEvent } from "@agelum/backend/server";
351
+
352
+ export async function POST(
353
+ request: Request,
354
+ ) {
355
+ const { eventId } =
356
+ await request.json();
357
+ acknowledgeEvent(eventId);
358
+ return Response.json({ ok: true });
293
359
  }
294
360
  ```
295
361
 
@@ -299,7 +365,7 @@ export async function POST(request: Request) {
299
365
  // client/providers/ReactiveProvider.tsx
300
366
  // Recommended: use the built-in TrpcReactiveProvider to wire revalidation generically
301
367
  'use client'
302
- import { TrpcReactiveProvider } from '@drizzle/reactive/client'
368
+ import { TrpcReactiveProvider } from '@agelum/backend/client'
303
369
  import { createTRPCProxyClient, httpBatchLink } from '@trpc/client'
304
370
  import type { AppRouter } from '../server/trpc'
305
371
  import { reactiveRelations } from '@your-db-package/reactive-config'
@@ -332,7 +398,7 @@ If you use `ReactiveProvider` directly, make sure to pass a `revalidateFn` for p
332
398
  - The hook composes cache keys as `name::JSON(input)`.
333
399
  - LocalStorage is sharded per query to avoid large single entries:
334
400
  - Index per organization: `reactive_registry_<orgId>` stores metadata (last revalidated, last server change, connection status).
335
- - Per-query entry key: `@drizzle/reactive:entry:<orgId>:<hash>` stores `{ name, input, queryKey, data }`.
401
+ - Per-query entry key: `@agelum/backend:entry:<orgId>:<hash>` stores `{ name, input, queryKey, data }`.
336
402
  - On initial render, cached data (if present) is shown immediately; background revalidation respects a minimum time window to avoid thrashing on quick navigations/refreshes.
337
403
  - Errors during revalidation do not overwrite existing cache (no-write-on-error), keeping previously known-good data.
338
404
  - Real-time invalidation uses SSE with client acknowledgments and retry; no heartbeats are sent.
@@ -345,7 +411,7 @@ If you use `ReactiveProvider` directly, make sure to pass a `revalidateFn` for p
345
411
 
346
412
  ## 🎯 Key Benefits Over Manual Approach
347
413
 
348
- | Feature | Manual tRPC | @drizzle/reactive |
414
+ | Feature | Manual tRPC | @agelum/backend |
349
415
  | ----------------------- | ---------------------------------- | ------------------------------- |
350
416
  | **Function Definition** | Separate function + tRPC procedure | Single `defineReactiveFunction` |
351
417
  | **Cache Keys** | Manual generation | Auto from function name |
@@ -360,9 +426,14 @@ If you use `ReactiveProvider` directly, make sure to pass a `revalidateFn` for p
360
426
 
361
427
  ```typescript
362
428
  // If you need different tRPC names than function names
363
- const router = createReactiveRouter({ db })
364
- .addQueryWithName(getUsers, 'getAllUsers') // Custom name
365
- .addQuery(getUserProfile) // Uses function name: 'users.profile.getDetailed'
429
+ const router = createReactiveRouter({
430
+ db,
431
+ })
432
+ .addQueryWithName(
433
+ getUsers,
434
+ "getAllUsers",
435
+ ) // Custom name
436
+ .addQuery(getUserProfile); // Uses function name: 'users.profile.getDetailed'
366
437
  ```
367
438
 
368
439
  ### Background Revalidation
@@ -371,9 +442,9 @@ const router = createReactiveRouter({ db })
371
442
  // client/hooks.ts
372
443
  function MyComponent() {
373
444
  useReactivePriorities([
374
- 'users.getAll', // High priority (visible)
375
- 'users.profile.getDetailed', // Medium priority (likely next)
376
- ])
445
+ "users.getAll", // High priority (visible)
446
+ "users.profile.getDetailed", // Medium priority (likely next)
447
+ ]);
377
448
 
378
449
  // Component content...
379
450
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agelum/backend",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Zero configuration, maximum intelligence. Reactive database library for Drizzle ORM with real-time synchronization.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,14 +30,6 @@
30
30
  "dist/**/*",
31
31
  "README.md"
32
32
  ],
33
- "scripts": {
34
- "build": "pnpm install && tsc",
35
- "dev": "tsc --watch",
36
- "clean": "rm -rf dist",
37
- "types": "tsc --declaration --emitDeclarationOnly",
38
- "test": "jest",
39
- "lint": "eslint src/**/*.ts"
40
- },
41
33
  "keywords": [
42
34
  "drizzle",
43
35
  "reactive",
@@ -78,10 +70,18 @@
78
70
  },
79
71
  "repository": {
80
72
  "type": "git",
81
- "url": "https://github.com/agelum/drizzle-reactive"
73
+ "url": "https://github.com/agelum/backend"
82
74
  },
83
- "homepage": "https://github.com/agelum/drizzle-reactive#readme",
75
+ "homepage": "https://github.com/agelum/backend#readme",
84
76
  "bugs": {
85
- "url": "https://github.com/agelum/drizzle-reactive/issues"
77
+ "url": "https://github.com/agelum/backend/issues"
78
+ },
79
+ "scripts": {
80
+ "build": "pnpm install && tsc",
81
+ "dev": "tsc --watch",
82
+ "clean": "rm -rf dist",
83
+ "types": "tsc --declaration --emitDeclarationOnly",
84
+ "test": "jest",
85
+ "lint": "eslint src/**/*.ts"
86
86
  }
87
- }
87
+ }
@@ -1,65 +0,0 @@
1
- /**
2
- * React hooks for @drizzle/reactive
3
- * Provides reactive data access with automatic caching and real-time updates
4
- */
5
- import type { ReactiveConfig, InvalidationEvent } from '../core/types';
6
- /**
7
- * Initialize the reactive client
8
- * Call this once at app startup
9
- */
10
- export declare function initializeReactiveClient(organizationId: string, config: ReactiveConfig, revalidateFn: (queryKey: string) => Promise<any>): void;
11
- /**
12
- * Main hook for reactive data access
13
- * Automatically handles caching, real-time updates, and revalidation
14
- */
15
- export declare function useReactive<T = any>(queryKey: string, input?: any, options?: {
16
- enabled?: boolean;
17
- }): {
18
- data: T | undefined;
19
- isLoading: boolean;
20
- isStale: boolean;
21
- error: Error | null;
22
- refetch: () => void;
23
- };
24
- /**
25
- * Optional page-level priority hints for better UX
26
- */
27
- export declare function useReactivePriorities(priorities: string[]): void;
28
- /**
29
- * Hook to get current session statistics
30
- */
31
- export declare function useReactiveStats(): any;
32
- /**
33
- * Hook to manually trigger cache refresh
34
- */
35
- export declare function useReactiveRefresh(): () => Promise<void>;
36
- /**
37
- * Hook to get revalidation statistics and performance metrics
38
- */
39
- export declare function useRevalidationStats(): any;
40
- /**
41
- * Hook to handle invalidation events
42
- */
43
- export declare function useReactiveInvalidation(callback: (event: InvalidationEvent) => void): void;
44
- /**
45
- * Hook for manual queries with dynamic parameters
46
- * Unlike useReactive, this hook doesn't auto-fetch and allows changing parameters on each call
47
- */
48
- export declare function useReactiveQuery<TData = unknown, TVariables = unknown>(queryKey: string): {
49
- data: TData | undefined;
50
- isLoading: boolean;
51
- error: Error | null;
52
- refetch: (variables?: TVariables) => Promise<TData>;
53
- run: (variables: TVariables) => Promise<TData>;
54
- };
55
- /**
56
- * Hook to get connection status
57
- */
58
- export declare function useReactiveConnection(): {
59
- status: "connected" | "connecting" | "disconnected";
60
- isConnected: boolean;
61
- isConnecting: boolean;
62
- isDisconnected: boolean;
63
- reconnect: () => void;
64
- };
65
- //# sourceMappingURL=hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/client/hooks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAiBtE;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GAC/C,IAAI,CA+BN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,GAAG,EACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,GAAG,EACX,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,GACA;IACD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CA2JA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAYhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,QAmB/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,wBAiBjC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,QAiBnC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC3C,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,UAAU,GAAG,OAAO,EACpE,QAAQ,EAAE,MAAM,GACf;IACD,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;IACnD,GAAG,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;CAC/C,CAgEA;AAED;;GAEG;AACH,wBAAgB,qBAAqB;;;;;;EAwBpC"}