@agelum/backend 0.1.1 → 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/dist/client/hooks.d.ts +65 -0
- package/dist/client/hooks.d.ts.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/manager.d.ts +137 -0
- package/dist/client/manager.d.ts.map +1 -0
- package/dist/client/provider.d.ts +25 -0
- package/dist/client/provider.d.ts.map +1 -0
- package/dist/client/revalidation.d.ts +101 -0
- package/dist/client/revalidation.d.ts.map +1 -0
- package/dist/client/sse-client.d.ts +81 -0
- package/dist/client/sse-client.d.ts.map +1 -0
- package/dist/client/storage.d.ts +126 -0
- package/dist/client/storage.d.ts.map +1 -0
- package/dist/client/trpc.d.ts +12 -0
- package/dist/client/trpc.d.ts.map +1 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/config/schema.d.ts +250 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +69 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/analyzer.d.ts +15 -0
- package/dist/core/analyzer.d.ts.map +1 -0
- package/dist/core/driver.d.ts +7 -0
- package/dist/core/driver.d.ts.map +1 -0
- package/dist/core/driver.js +262 -0
- package/dist/core/driver.js.map +1 -0
- package/dist/core/function.d.ts +103 -0
- package/dist/core/function.d.ts.map +1 -0
- package/dist/core/function.js +252 -0
- package/dist/core/function.js.map +1 -0
- package/dist/core/sse.d.ts +98 -0
- package/dist/core/sse.d.ts.map +1 -0
- package/dist/core/types.d.ts +196 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +3 -0
- package/dist/core/types.js.map +1 -0
- package/dist/examples/teamhub-integration.d.ts +56 -0
- package/dist/examples/teamhub-integration.d.ts.map +1 -0
- package/dist/examples/teamhub-integration.js +192 -0
- package/dist/examples/teamhub-integration.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/localStorage.d.ts +13 -0
- package/dist/providers/localStorage.d.ts.map +1 -0
- package/dist/providers/memory.d.ts +13 -0
- package/dist/providers/memory.d.ts.map +1 -0
- package/dist/providers/redis.d.ts +14 -0
- package/dist/providers/redis.d.ts.map +1 -0
- package/dist/server.d.ts +18 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +34 -0
- package/dist/server.js.map +1 -0
- 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 +76 -0
- package/dist/trpc/router.d.ts.map +1 -0
- package/dist/trpc/router.js +177 -0
- package/dist/trpc/router.js.map +1 -0
- package/dist/trpc/types.d.ts +114 -0
- package/dist/trpc/types.d.ts.map +1 -0
- package/dist/trpc/types.js +6 -0
- package/dist/trpc/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example integration with Agelum using the corrected reactive function architecture
|
|
3
|
+
*/
|
|
4
|
+
import type { ReactiveConfig } from '../core/types';
|
|
5
|
+
export declare const agelumReactiveConfig: ReactiveConfig;
|
|
6
|
+
/**
|
|
7
|
+
* Get all agents for an organization
|
|
8
|
+
*/
|
|
9
|
+
export declare const getAgents: import("../core/function").ReactiveFunction<{
|
|
10
|
+
organizationId: string;
|
|
11
|
+
}, unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* Get agent with detailed statistics
|
|
14
|
+
*/
|
|
15
|
+
export declare const getAgentWithStats: import("../core/function").ReactiveFunction<{
|
|
16
|
+
organizationId: string;
|
|
17
|
+
agentId: string;
|
|
18
|
+
}, {
|
|
19
|
+
agent: any;
|
|
20
|
+
stats: {
|
|
21
|
+
messageCount: any;
|
|
22
|
+
memoryCount: any;
|
|
23
|
+
lastActive: any;
|
|
24
|
+
};
|
|
25
|
+
recentMessages: unknown;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Update agent data
|
|
29
|
+
*/
|
|
30
|
+
export declare const updateAgent: import("../core/function").ReactiveFunction<{
|
|
31
|
+
organizationId: string;
|
|
32
|
+
id: string;
|
|
33
|
+
data: {
|
|
34
|
+
name?: string | undefined;
|
|
35
|
+
role?: string | undefined;
|
|
36
|
+
systemPrompt?: string | undefined;
|
|
37
|
+
isActive?: boolean | undefined;
|
|
38
|
+
};
|
|
39
|
+
}, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Example: How to use getAgents function
|
|
42
|
+
*/
|
|
43
|
+
export declare function loadAgentsExample(organizationId: string, reactiveDb: any): Promise<unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Example: How to use getAgentWithStats function
|
|
46
|
+
*/
|
|
47
|
+
export declare function loadAgentDetailsExample(organizationId: string, agentId: string, reactiveDb: any): Promise<{
|
|
48
|
+
agent: any;
|
|
49
|
+
stats: {
|
|
50
|
+
messageCount: any;
|
|
51
|
+
memoryCount: any;
|
|
52
|
+
lastActive: any;
|
|
53
|
+
};
|
|
54
|
+
recentMessages: unknown;
|
|
55
|
+
}>;
|
|
56
|
+
//# sourceMappingURL=teamhub-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamhub-integration.d.ts","sourceRoot":"","sources":["../../src/examples/teamhub-integration.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD,eAAO,MAAM,oBAAoB,EAAE,cAelC,CAAA;AAID;;GAEG;AACH,eAAO,MAAM,SAAS;;WAgBpB,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;EAkE5B,CAAA;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;WAoCtB,CAAA;AAIF;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,GAAG,oBAMhB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,GAAG;;;;;;;;GAYhB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Example integration with Agelum using the corrected reactive function architecture
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateAgent = exports.getAgentWithStats = exports.getAgents = exports.agelumReactiveConfig = void 0;
|
|
7
|
+
exports.loadAgentsExample = loadAgentsExample;
|
|
8
|
+
exports.loadAgentDetailsExample = loadAgentDetailsExample;
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const function_1 = require("../core/function");
|
|
11
|
+
// Generic Agelum reactive configuration (no hardcoded fields)
|
|
12
|
+
exports.agelumReactiveConfig = {
|
|
13
|
+
relations: {
|
|
14
|
+
agent: ['message.fromAgentId', 'memory.agentId'],
|
|
15
|
+
organization: ['agent.organizationId', 'tool.organizationId'],
|
|
16
|
+
message: ['agent.fromAgentId', 'agent.toAgentId'],
|
|
17
|
+
memory: ['agent.agentId'],
|
|
18
|
+
tool: ['organization.id'],
|
|
19
|
+
},
|
|
20
|
+
cache: {
|
|
21
|
+
server: { provider: 'memory' },
|
|
22
|
+
client: { provider: 'localStorage' },
|
|
23
|
+
},
|
|
24
|
+
realtime: {
|
|
25
|
+
enabled: true,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
// Example reactive functions using the corrected API
|
|
29
|
+
/**
|
|
30
|
+
* Get all agents for an organization
|
|
31
|
+
*/
|
|
32
|
+
exports.getAgents = (0, function_1.defineReactiveFunction)({
|
|
33
|
+
name: 'agents.getAll',
|
|
34
|
+
input: zod_1.z.object({
|
|
35
|
+
organizationId: zod_1.z.string(),
|
|
36
|
+
}),
|
|
37
|
+
dependencies: ['agent'],
|
|
38
|
+
handler: async ({ input, db }) => {
|
|
39
|
+
return db.query(`
|
|
40
|
+
SELECT * FROM agents
|
|
41
|
+
WHERE organization_id = $1
|
|
42
|
+
ORDER BY created_at DESC
|
|
43
|
+
`, [input.organizationId]);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Get agent with detailed statistics
|
|
48
|
+
*/
|
|
49
|
+
exports.getAgentWithStats = (0, function_1.defineReactiveFunction)({
|
|
50
|
+
name: 'agents.getWithStats',
|
|
51
|
+
input: zod_1.z.object({
|
|
52
|
+
organizationId: zod_1.z.string(),
|
|
53
|
+
agentId: zod_1.z.string(),
|
|
54
|
+
}),
|
|
55
|
+
dependencies: ['agent', 'message', 'memory'],
|
|
56
|
+
invalidateWhen: {
|
|
57
|
+
agent: (change) => change.keys.includes('agentId'),
|
|
58
|
+
message: (change) => change.keys.includes('agentId'),
|
|
59
|
+
memory: (change) => change.keys.includes('agentId'),
|
|
60
|
+
},
|
|
61
|
+
cache: {
|
|
62
|
+
ttl: 180, // 3 minutes for detailed stats
|
|
63
|
+
},
|
|
64
|
+
handler: async ({ input, db }) => {
|
|
65
|
+
const [agent, messageCount, memoryCount, lastMessage] = await Promise.all([
|
|
66
|
+
db.query(`
|
|
67
|
+
SELECT * FROM agents
|
|
68
|
+
WHERE id = $1 AND organization_id = $2
|
|
69
|
+
`, [input.agentId, input.organizationId]),
|
|
70
|
+
db.query(`
|
|
71
|
+
SELECT COUNT(*) as count FROM messages
|
|
72
|
+
WHERE from_agent_id = $1
|
|
73
|
+
`, [input.agentId]),
|
|
74
|
+
db.query(`
|
|
75
|
+
SELECT COUNT(*) as count FROM memory
|
|
76
|
+
WHERE agent_id = $1
|
|
77
|
+
`, [input.agentId]),
|
|
78
|
+
db.query(`
|
|
79
|
+
SELECT * FROM messages
|
|
80
|
+
WHERE from_agent_id = $1
|
|
81
|
+
ORDER BY created_at DESC
|
|
82
|
+
LIMIT 1
|
|
83
|
+
`, [input.agentId]),
|
|
84
|
+
]);
|
|
85
|
+
return {
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
+
agent: agent[0],
|
|
88
|
+
stats: {
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
messageCount: messageCount[0]?.count || 0,
|
|
91
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
92
|
+
memoryCount: memoryCount[0]?.count || 0,
|
|
93
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
+
lastActive: lastMessage[0]?.created_at || null,
|
|
95
|
+
},
|
|
96
|
+
recentMessages: lastMessage,
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
/**
|
|
101
|
+
* Update agent data
|
|
102
|
+
*/
|
|
103
|
+
exports.updateAgent = (0, function_1.defineReactiveFunction)({
|
|
104
|
+
name: 'agents.update',
|
|
105
|
+
input: zod_1.z.object({
|
|
106
|
+
organizationId: zod_1.z.string(),
|
|
107
|
+
id: zod_1.z.string(),
|
|
108
|
+
data: zod_1.z.object({
|
|
109
|
+
name: zod_1.z.string().optional(),
|
|
110
|
+
role: zod_1.z.string().optional(),
|
|
111
|
+
systemPrompt: zod_1.z.string().optional(),
|
|
112
|
+
isActive: zod_1.z.boolean().optional(),
|
|
113
|
+
}),
|
|
114
|
+
}),
|
|
115
|
+
dependencies: ['agent'],
|
|
116
|
+
invalidateWhen: {
|
|
117
|
+
agent: (change) => change.keys.includes('id'),
|
|
118
|
+
},
|
|
119
|
+
handler: async ({ input, db }) => {
|
|
120
|
+
const updateFields = Object.entries(input.data)
|
|
121
|
+
.filter(([, value]) => value !== undefined)
|
|
122
|
+
.map(([key], index) => `${key} = $${index + 3}`)
|
|
123
|
+
.join(', ');
|
|
124
|
+
const updateValues = Object.values(input.data).filter((value) => value !== undefined);
|
|
125
|
+
return db.query(`
|
|
126
|
+
UPDATE agents
|
|
127
|
+
SET ${updateFields}, updated_at = NOW()
|
|
128
|
+
WHERE id = $1 AND organization_id = $2
|
|
129
|
+
RETURNING *
|
|
130
|
+
`, [input.id, input.organizationId, ...updateValues]);
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
// Example usage patterns (React components would go in separate .tsx files)
|
|
134
|
+
/**
|
|
135
|
+
* Example: How to use getAgents function
|
|
136
|
+
*/
|
|
137
|
+
async function loadAgentsExample(organizationId, reactiveDb) {
|
|
138
|
+
// Standalone usage (server-side)
|
|
139
|
+
const agents = await exports.getAgents.execute({ organizationId }, reactiveDb);
|
|
140
|
+
console.log('Loaded agents:', agents.length);
|
|
141
|
+
return agents;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Example: How to use getAgentWithStats function
|
|
145
|
+
*/
|
|
146
|
+
async function loadAgentDetailsExample(organizationId, agentId, reactiveDb) {
|
|
147
|
+
// This function can be called both ways:
|
|
148
|
+
// 1. Standalone: await getAgentWithStats.execute({ organizationId, agentId }, reactiveDb)
|
|
149
|
+
// 2. Via tRPC: trpc.agents.getWithStats.useQuery({ organizationId, agentId })
|
|
150
|
+
const agentDetails = await exports.getAgentWithStats.execute({ organizationId, agentId }, reactiveDb);
|
|
151
|
+
console.log('Loaded agent details for:', agentId);
|
|
152
|
+
return agentDetails;
|
|
153
|
+
}
|
|
154
|
+
// Example of how to set up tRPC router with these functions
|
|
155
|
+
/*
|
|
156
|
+
import { createReactiveRouter } from '../trpc/router'
|
|
157
|
+
|
|
158
|
+
export function createTeamHubRouter(db, config) {
|
|
159
|
+
return createReactiveRouter({ db, config })
|
|
160
|
+
.addQuery(getAgents) // Uses 'agents.getAll' automatically
|
|
161
|
+
.addQuery(getAgentWithStats) // Uses 'agents.getWithStats' automatically
|
|
162
|
+
.addMutation(updateAgent) // Uses 'agents.update' automatically
|
|
163
|
+
.build()
|
|
164
|
+
}
|
|
165
|
+
*/
|
|
166
|
+
// Example of server-side usage
|
|
167
|
+
/*
|
|
168
|
+
export async function serverSideExample(reactiveDb) {
|
|
169
|
+
// Functions can be executed directly on the server
|
|
170
|
+
const agents = await getAgents.execute(
|
|
171
|
+
{ organizationId: 'org-123' },
|
|
172
|
+
reactiveDb
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
const agentDetails = await getAgentWithStats.execute(
|
|
176
|
+
{ organizationId: 'org-123', agentId: 'agent-456' },
|
|
177
|
+
reactiveDb
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
const updatedAgent = await updateAgent.execute(
|
|
181
|
+
{
|
|
182
|
+
organizationId: 'org-123',
|
|
183
|
+
id: 'agent-456',
|
|
184
|
+
data: { name: 'Updated Agent Name' }
|
|
185
|
+
},
|
|
186
|
+
reactiveDb
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
return { agents, agentDetails, updatedAgent }
|
|
190
|
+
}
|
|
191
|
+
*/
|
|
192
|
+
//# sourceMappingURL=teamhub-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teamhub-integration.js","sourceRoot":"","sources":["../../src/examples/teamhub-integration.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agelum/backend - Zero configuration, maximum intelligence
|
|
3
|
+
*
|
|
4
|
+
* A reactive database library that provides automatic caching, real-time synchronization,
|
|
5
|
+
* and intelligent invalidation for Drizzle ORM applications.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* // server/db.ts - Minimal setup
|
|
10
|
+
* export const db = createReactiveDb(drizzle, {
|
|
11
|
+
* relations: {
|
|
12
|
+
* agent: ['organization', 'message.fromAgentId', 'memory.agentId'],
|
|
13
|
+
* organization: ['agent.organizationId', 'tool.organizationId'],
|
|
14
|
+
* },
|
|
15
|
+
* })
|
|
16
|
+
*
|
|
17
|
+
* // client/hooks.ts - Zero configuration usage
|
|
18
|
+
* const { data: agents } = useReactive('agents.findMany', { organizationId })
|
|
19
|
+
* // ✅ Shows cache instantly
|
|
20
|
+
* // ✅ Smart revalidation (only active hooks first)
|
|
21
|
+
* // ✅ Auto real-time mode
|
|
22
|
+
* // ✅ Handles page refresh gracefully
|
|
23
|
+
* // ✅ Recovers missed events
|
|
24
|
+
* // ✅ Type-safe with tRPC
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export { createReactiveDb } from "./core/driver";
|
|
28
|
+
export { defineReactiveFunction } from "./core/function";
|
|
29
|
+
export type { ReactiveConfig, ReactiveDb, DrizzleDatabase, ReactiveFunctionContext, CacheProvider, } from "./core/types";
|
|
30
|
+
export type { ReactiveFunctionConfig, ReactiveFunction, ReactiveFunctionMetadata, InvalidationChange, TrpcHandlerOptions, } from "./core/function";
|
|
31
|
+
export { createReactiveRouter, ReactiveRouter, } from "./trpc/router";
|
|
32
|
+
export type { ReactiveRouterInstance, BuiltReactiveRouter, ReactiveHandlerContext, } from "./trpc/types";
|
|
33
|
+
export type { InvalidationRule, CacheStrategy, RealtimeConfig, } from "./config/schema";
|
|
34
|
+
export { RedisProvider } from "./providers/redis";
|
|
35
|
+
export { MemoryProvider } from "./providers/memory";
|
|
36
|
+
export { LocalStorageProvider } from "./providers/localStorage";
|
|
37
|
+
export { analyzeSql } from "./core/analyzer";
|
|
38
|
+
export { createSSEStream, broadcastInvalidation, acknowledgeEvent, getSSEManager, SSEManager, } from "./core/sse";
|
|
39
|
+
export declare const version = "0.1.0";
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,oBAAoB,EACpB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAQtB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @agelum/backend - Zero configuration, maximum intelligence
|
|
4
|
+
*
|
|
5
|
+
* A reactive database library that provides automatic caching, real-time synchronization,
|
|
6
|
+
* and intelligent invalidation for Drizzle ORM applications.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // server/db.ts - Minimal setup
|
|
11
|
+
* export const db = createReactiveDb(drizzle, {
|
|
12
|
+
* relations: {
|
|
13
|
+
* agent: ['organization', 'message.fromAgentId', 'memory.agentId'],
|
|
14
|
+
* organization: ['agent.organizationId', 'tool.organizationId'],
|
|
15
|
+
* },
|
|
16
|
+
* })
|
|
17
|
+
*
|
|
18
|
+
* // client/hooks.ts - Zero configuration usage
|
|
19
|
+
* const { data: agents } = useReactive('agents.findMany', { organizationId })
|
|
20
|
+
* // ✅ Shows cache instantly
|
|
21
|
+
* // ✅ Smart revalidation (only active hooks first)
|
|
22
|
+
* // ✅ Auto real-time mode
|
|
23
|
+
* // ✅ Handles page refresh gracefully
|
|
24
|
+
* // ✅ Recovers missed events
|
|
25
|
+
* // ✅ Type-safe with tRPC
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.version = exports.SSEManager = exports.getSSEManager = exports.acknowledgeEvent = exports.broadcastInvalidation = exports.createSSEStream = exports.analyzeSql = exports.LocalStorageProvider = exports.MemoryProvider = exports.RedisProvider = exports.ReactiveRouter = exports.createReactiveRouter = exports.defineReactiveFunction = exports.createReactiveDb = void 0;
|
|
30
|
+
// Core exports
|
|
31
|
+
var driver_1 = require("./core/driver");
|
|
32
|
+
Object.defineProperty(exports, "createReactiveDb", { enumerable: true, get: function () { return driver_1.createReactiveDb; } });
|
|
33
|
+
var function_1 = require("./core/function");
|
|
34
|
+
Object.defineProperty(exports, "defineReactiveFunction", { enumerable: true, get: function () { return function_1.defineReactiveFunction; } });
|
|
35
|
+
// tRPC integration exports
|
|
36
|
+
var router_1 = require("./trpc/router");
|
|
37
|
+
Object.defineProperty(exports, "createReactiveRouter", { enumerable: true, get: function () { return router_1.createReactiveRouter; } });
|
|
38
|
+
Object.defineProperty(exports, "ReactiveRouter", { enumerable: true, get: function () { return router_1.ReactiveRouter; } });
|
|
39
|
+
// Provider exports
|
|
40
|
+
var redis_1 = require("./providers/redis");
|
|
41
|
+
Object.defineProperty(exports, "RedisProvider", { enumerable: true, get: function () { return redis_1.RedisProvider; } });
|
|
42
|
+
var memory_1 = require("./providers/memory");
|
|
43
|
+
Object.defineProperty(exports, "MemoryProvider", { enumerable: true, get: function () { return memory_1.MemoryProvider; } });
|
|
44
|
+
var localStorage_1 = require("./providers/localStorage");
|
|
45
|
+
Object.defineProperty(exports, "LocalStorageProvider", { enumerable: true, get: function () { return localStorage_1.LocalStorageProvider; } });
|
|
46
|
+
// Utility exports
|
|
47
|
+
var analyzer_1 = require("./core/analyzer");
|
|
48
|
+
Object.defineProperty(exports, "analyzeSql", { enumerable: true, get: function () { return analyzer_1.analyzeSql; } });
|
|
49
|
+
var sse_1 = require("./core/sse");
|
|
50
|
+
Object.defineProperty(exports, "createSSEStream", { enumerable: true, get: function () { return sse_1.createSSEStream; } });
|
|
51
|
+
Object.defineProperty(exports, "broadcastInvalidation", { enumerable: true, get: function () { return sse_1.broadcastInvalidation; } });
|
|
52
|
+
Object.defineProperty(exports, "acknowledgeEvent", { enumerable: true, get: function () { return sse_1.acknowledgeEvent; } });
|
|
53
|
+
Object.defineProperty(exports, "getSSEManager", { enumerable: true, get: function () { return sse_1.getSSEManager; } });
|
|
54
|
+
Object.defineProperty(exports, "SSEManager", { enumerable: true, get: function () { return sse_1.SSEManager; } });
|
|
55
|
+
// Version
|
|
56
|
+
exports.version = "0.1.0";
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAEH,eAAe;AACf,wCAAiD;AAAxC,0GAAA,gBAAgB,OAAA;AACzB,4CAAyD;AAAhD,kHAAA,sBAAsB,OAAA;AAkB/B,2BAA2B;AAC3B,wCAGuB;AAFrB,8GAAA,oBAAoB,OAAA;AACpB,wGAAA,cAAc,OAAA;AAoBhB,mBAAmB;AACnB,2CAAkD;AAAzC,sGAAA,aAAa,OAAA;AACtB,6CAAoD;AAA3C,wGAAA,cAAc,OAAA;AACvB,yDAAgE;AAAvD,oHAAA,oBAAoB,OAAA;AAE7B,kBAAkB;AAClB,4CAA6C;AAApC,sGAAA,UAAU,OAAA;AACnB,kCAMoB;AALlB,sGAAA,eAAe,OAAA;AACf,4GAAA,qBAAqB,OAAA;AACrB,uGAAA,gBAAgB,OAAA;AAChB,oGAAA,aAAa,OAAA;AACb,iGAAA,UAAU,OAAA;AAGZ,UAAU;AACG,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CacheProvider } from "../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* LocalStorage cache provider implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare class LocalStorageProvider implements CacheProvider {
|
|
6
|
+
private prefix;
|
|
7
|
+
get<T>(key: string): Promise<T | null>;
|
|
8
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
9
|
+
del(key: string): Promise<void>;
|
|
10
|
+
invalidate(pattern: string): Promise<void>;
|
|
11
|
+
clear(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=localStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/providers/localStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,MAAM,CAAsB;IAE9B,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwBd,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAkBV,GAAG,CACP,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAMV,UAAU,CACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA6BV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CacheProvider } from '../core/types';
|
|
2
|
+
/**
|
|
3
|
+
* In-memory cache provider implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare class MemoryProvider implements CacheProvider {
|
|
6
|
+
private cache;
|
|
7
|
+
get<T>(key: string): Promise<T | null>;
|
|
8
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
9
|
+
del(key: string): Promise<void>;
|
|
10
|
+
invalidate(pattern: string): Promise<void>;
|
|
11
|
+
clear(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/providers/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,KAAK,CAAsD;IAE7D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAYtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CacheProvider } from "../core/types";
|
|
2
|
+
/**
|
|
3
|
+
* Redis cache provider implementation
|
|
4
|
+
*/
|
|
5
|
+
export declare class RedisProvider implements CacheProvider {
|
|
6
|
+
private redisClient?;
|
|
7
|
+
constructor(redisClient?: any | undefined);
|
|
8
|
+
get<T>(key: string): Promise<T | null>;
|
|
9
|
+
set<T>(key: string, value: T, ttl?: number): Promise<void>;
|
|
10
|
+
del(key: string): Promise<void>;
|
|
11
|
+
invalidate(pattern: string): Promise<void>;
|
|
12
|
+
clear(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=redis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/providers/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,qBAAa,aAAc,YAAW,aAAa;IAE/C,OAAO,CAAC,WAAW,CAAC;gBAAZ,WAAW,CAAC,EAAE,GAAG,YAAA;IAKrB,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IASd,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,CAAC,EACR,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAUV,GAAG,CACP,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC;IAQV,UAAU,CACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAQV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAM7B"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-only exports for @agelum/backend
|
|
3
|
+
* Import this with: import { ... } from '@agelum/backend/server'
|
|
4
|
+
* This avoids importing React Context on the server
|
|
5
|
+
*/
|
|
6
|
+
export { createReactiveDb } from "./core/driver";
|
|
7
|
+
export { defineReactiveFunction } from "./core/function";
|
|
8
|
+
export type { ReactiveConfig, ReactiveDb, DrizzleDatabase, ReactiveFunctionContext, CacheProvider, InvalidationEvent, } from "./core/types";
|
|
9
|
+
export type { ReactiveFunctionConfig, ReactiveFunction, ReactiveFunctionMetadata, InvalidationChange, TrpcHandlerOptions, } from "./core/function";
|
|
10
|
+
export { createReactiveRouter, ReactiveRouter, } from "./trpc/router";
|
|
11
|
+
export type { ReactiveRouterInstance, BuiltReactiveRouter, ReactiveHandlerContext, } from "./trpc/types";
|
|
12
|
+
export { RedisProvider } from "./providers/redis";
|
|
13
|
+
export { MemoryProvider } from "./providers/memory";
|
|
14
|
+
export { analyzeSql } from "./core/analyzer";
|
|
15
|
+
export { createSSEStream, broadcastInvalidation, acknowledgeEvent, getSSEManager, SSEManager, } from "./core/sse";
|
|
16
|
+
export type { InvalidationRule, CacheStrategy, RealtimeConfig, } from "./config/schema";
|
|
17
|
+
export declare const version = "0.1.0";
|
|
18
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,oBAAoB,EACpB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Server-only exports for @agelum/backend
|
|
4
|
+
* Import this with: import { ... } from '@agelum/backend/server'
|
|
5
|
+
* This avoids importing React Context on the server
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.version = exports.SSEManager = exports.getSSEManager = exports.acknowledgeEvent = exports.broadcastInvalidation = exports.createSSEStream = exports.analyzeSql = exports.MemoryProvider = exports.RedisProvider = exports.ReactiveRouter = exports.createReactiveRouter = exports.defineReactiveFunction = exports.createReactiveDb = void 0;
|
|
9
|
+
// Core database exports
|
|
10
|
+
var driver_1 = require("./core/driver");
|
|
11
|
+
Object.defineProperty(exports, "createReactiveDb", { enumerable: true, get: function () { return driver_1.createReactiveDb; } });
|
|
12
|
+
var function_1 = require("./core/function");
|
|
13
|
+
Object.defineProperty(exports, "defineReactiveFunction", { enumerable: true, get: function () { return function_1.defineReactiveFunction; } });
|
|
14
|
+
// tRPC integration exports
|
|
15
|
+
var router_1 = require("./trpc/router");
|
|
16
|
+
Object.defineProperty(exports, "createReactiveRouter", { enumerable: true, get: function () { return router_1.createReactiveRouter; } });
|
|
17
|
+
Object.defineProperty(exports, "ReactiveRouter", { enumerable: true, get: function () { return router_1.ReactiveRouter; } });
|
|
18
|
+
// Server-side providers
|
|
19
|
+
var redis_1 = require("./providers/redis");
|
|
20
|
+
Object.defineProperty(exports, "RedisProvider", { enumerable: true, get: function () { return redis_1.RedisProvider; } });
|
|
21
|
+
var memory_1 = require("./providers/memory");
|
|
22
|
+
Object.defineProperty(exports, "MemoryProvider", { enumerable: true, get: function () { return memory_1.MemoryProvider; } });
|
|
23
|
+
// Server-side utilities
|
|
24
|
+
var analyzer_1 = require("./core/analyzer");
|
|
25
|
+
Object.defineProperty(exports, "analyzeSql", { enumerable: true, get: function () { return analyzer_1.analyzeSql; } });
|
|
26
|
+
var sse_1 = require("./core/sse");
|
|
27
|
+
Object.defineProperty(exports, "createSSEStream", { enumerable: true, get: function () { return sse_1.createSSEStream; } });
|
|
28
|
+
Object.defineProperty(exports, "broadcastInvalidation", { enumerable: true, get: function () { return sse_1.broadcastInvalidation; } });
|
|
29
|
+
Object.defineProperty(exports, "acknowledgeEvent", { enumerable: true, get: function () { return sse_1.acknowledgeEvent; } });
|
|
30
|
+
Object.defineProperty(exports, "getSSEManager", { enumerable: true, get: function () { return sse_1.getSSEManager; } });
|
|
31
|
+
Object.defineProperty(exports, "SSEManager", { enumerable: true, get: function () { return sse_1.SSEManager; } });
|
|
32
|
+
// Version
|
|
33
|
+
exports.version = "0.1.0";
|
|
34
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,wBAAwB;AACxB,wCAAiD;AAAxC,0GAAA,gBAAgB,OAAA;AACzB,4CAAyD;AAAhD,kHAAA,sBAAsB,OAAA;AAmB/B,2BAA2B;AAC3B,wCAGuB;AAFrB,8GAAA,oBAAoB,OAAA;AACpB,wGAAA,cAAc,OAAA;AAQhB,wBAAwB;AACxB,2CAAkD;AAAzC,sGAAA,aAAa,OAAA;AACtB,6CAAoD;AAA3C,wGAAA,cAAc,OAAA;AAEvB,wBAAwB;AACxB,4CAA6C;AAApC,sGAAA,UAAU,OAAA;AACnB,kCAMoB;AALlB,sGAAA,eAAe,OAAA;AACf,4GAAA,qBAAqB,OAAA;AACrB,uGAAA,gBAAgB,OAAA;AAChB,oGAAA,aAAa,OAAA;AACb,iGAAA,UAAU,OAAA;AAUZ,UAAU;AACG,QAAA,OAAO,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tRPC integration exports for @agelum/backend
|
|
3
|
+
* Import with: import { ... } from '@agelum/backend/trpc'
|
|
4
|
+
*/
|
|
5
|
+
export { createReactiveRouter, createRouterFromFunctions, ReactiveRouter, } from "./router";
|
|
6
|
+
export type { ReactiveRouterInstance, BuiltReactiveRouter, ReactiveProcedureConfig, ReactiveQueryConfig, ReactiveMutationConfig, ReactiveSubscriptionConfig, CacheEntry, ReactiveProcedureMetadata, ReactiveRouterBuilder, InvalidationContext, RouterStats, ReactiveRouterError, ReactiveHandlerContext, } from "./types";
|
|
7
|
+
export { useReactiveQuery, useReactiveMutation, useReactiveSubscription, useReactiveRouterStats, } from "./hooks";
|
|
8
|
+
export type { UseReactiveQueryOptions, UseReactiveQueryResult, UseReactiveMutationOptions, UseReactiveMutationResult, UseReactiveSubscriptionOptions, UseReactiveSubscriptionResult, } from "./hooks";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trpc/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,UAAU,EACV,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* tRPC integration exports for @agelum/backend
|
|
4
|
+
* Import with: import { ... } from '@agelum/backend/trpc'
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.useReactiveRouterStats = exports.useReactiveSubscription = exports.useReactiveMutation = exports.useReactiveQuery = exports.ReactiveRouter = exports.createRouterFromFunctions = exports.createReactiveRouter = void 0;
|
|
8
|
+
// Router exports
|
|
9
|
+
var router_1 = require("./router");
|
|
10
|
+
Object.defineProperty(exports, "createReactiveRouter", { enumerable: true, get: function () { return router_1.createReactiveRouter; } });
|
|
11
|
+
Object.defineProperty(exports, "createRouterFromFunctions", { enumerable: true, get: function () { return router_1.createRouterFromFunctions; } });
|
|
12
|
+
Object.defineProperty(exports, "ReactiveRouter", { enumerable: true, get: function () { return router_1.ReactiveRouter; } });
|
|
13
|
+
// Hooks
|
|
14
|
+
var hooks_1 = require("./hooks");
|
|
15
|
+
Object.defineProperty(exports, "useReactiveQuery", { enumerable: true, get: function () { return hooks_1.useReactiveQuery; } });
|
|
16
|
+
Object.defineProperty(exports, "useReactiveMutation", { enumerable: true, get: function () { return hooks_1.useReactiveMutation; } });
|
|
17
|
+
Object.defineProperty(exports, "useReactiveSubscription", { enumerable: true, get: function () { return hooks_1.useReactiveSubscription; } });
|
|
18
|
+
Object.defineProperty(exports, "useReactiveRouterStats", { enumerable: true, get: function () { return hooks_1.useReactiveRouterStats; } });
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trpc/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iBAAiB;AACjB,mCAIkB;AAHhB,8GAAA,oBAAoB,OAAA;AACpB,mHAAA,yBAAyB,OAAA;AACzB,wGAAA,cAAc,OAAA;AAoBhB,QAAQ;AACR,iCAKiB;AAJf,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AACnB,gHAAA,uBAAuB,OAAA;AACvB,+GAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple tRPC router integration for reactive functions
|
|
3
|
+
*
|
|
4
|
+
* This is just a thin wrapper that:
|
|
5
|
+
* 1. Takes reactive functions
|
|
6
|
+
* 2. Exposes them as tRPC procedures
|
|
7
|
+
* 3. That's it!
|
|
8
|
+
*
|
|
9
|
+
* All the reactive logic (caching, invalidation, etc.) is handled
|
|
10
|
+
* by the reactive functions themselves.
|
|
11
|
+
*/
|
|
12
|
+
import type { ReactiveDb } from '../core/types';
|
|
13
|
+
import type { ReactiveFunction } from '../core/function';
|
|
14
|
+
import type { ReactiveHandlerContext } from './types';
|
|
15
|
+
export interface ReactiveRouterConfig {
|
|
16
|
+
db: ReactiveDb;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Simple reactive tRPC router - just exposes reactive functions as tRPC procedures
|
|
20
|
+
*/
|
|
21
|
+
export declare class ReactiveRouter {
|
|
22
|
+
private t;
|
|
23
|
+
private db;
|
|
24
|
+
private procedures;
|
|
25
|
+
constructor(config: ReactiveRouterConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Add a reactive function as a tRPC query
|
|
28
|
+
* Uses the function's name automatically
|
|
29
|
+
*/
|
|
30
|
+
addQuery<TInput, TOutput>(reactiveFunction: ReactiveFunction<TInput, TOutput>): this;
|
|
31
|
+
/**
|
|
32
|
+
* Add a reactive function as a tRPC mutation
|
|
33
|
+
* Uses the function's name automatically
|
|
34
|
+
*/
|
|
35
|
+
addMutation<TInput, TOutput>(reactiveFunction: ReactiveFunction<TInput, TOutput>): this;
|
|
36
|
+
/**
|
|
37
|
+
* Add a reactive function as a tRPC query with custom name (optional override)
|
|
38
|
+
*/
|
|
39
|
+
addQueryWithName<TInput, TOutput>(name: string, reactiveFunction: ReactiveFunction<TInput, TOutput>): this;
|
|
40
|
+
/**
|
|
41
|
+
* Add a reactive function as a tRPC mutation with custom name (optional override)
|
|
42
|
+
*/
|
|
43
|
+
addMutationWithName<TInput, TOutput>(name: string, reactiveFunction: ReactiveFunction<TInput, TOutput>): this;
|
|
44
|
+
/**
|
|
45
|
+
* Build the final tRPC router
|
|
46
|
+
*/
|
|
47
|
+
build(): import("@trpc/server").CreateRouterInner<import("@trpc/server").RootConfig<{
|
|
48
|
+
ctx: ReactiveHandlerContext;
|
|
49
|
+
meta: object;
|
|
50
|
+
errorShape: import("@trpc/server").DefaultErrorShape;
|
|
51
|
+
transformer: import("@trpc/server").DefaultDataTransformer;
|
|
52
|
+
}>, Record<string, any>>;
|
|
53
|
+
/**
|
|
54
|
+
* Get registered procedure names
|
|
55
|
+
*/
|
|
56
|
+
getProcedureNames(): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Get router statistics
|
|
59
|
+
*/
|
|
60
|
+
getStats(): {
|
|
61
|
+
totalProcedures: number;
|
|
62
|
+
procedureNames: string[];
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create a reactive tRPC router (simple factory function)
|
|
67
|
+
*/
|
|
68
|
+
export declare function createReactiveRouter(config: ReactiveRouterConfig): ReactiveRouter;
|
|
69
|
+
/**
|
|
70
|
+
* Helper to create a router from a collection of reactive functions
|
|
71
|
+
*/
|
|
72
|
+
export declare function createRouterFromFunctions(db: ReactiveDb, functions: Record<string, {
|
|
73
|
+
type: 'query' | 'mutation';
|
|
74
|
+
fn: ReactiveFunction<unknown, unknown>;
|
|
75
|
+
}>): ReactiveRouter;
|
|
76
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/trpc/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,UAAU,CAAA;CACf;AAQD;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,CAAC,CAAW;IACpB,OAAO,CAAC,EAAE,CAAY;IAEtB,OAAO,CAAC,UAAU,CAAyB;gBAE/B,MAAM,EAAE,oBAAoB;IAKxC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,EACtB,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAarD;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,OAAO,EACzB,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAarD;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAC9B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrD;;OAEG;IACH,mBAAmB,CAAC,MAAM,EAAE,OAAO,EACjC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrD;;OAEG;IACH,KAAK;;;;;;IA4CL;;OAEG;IACH,iBAAiB,IAAI,MAAM,EAAE;IAI7B;;OAEG;IACH,QAAQ;;;;CAMT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,oBAAoB,GAC3B,cAAc,CAEhB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,MAAM,CACf,MAAM,EACN;IAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAAC,EAAE,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CAAE,CACvE,GACA,cAAc,CAsBhB"}
|