@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.
Files changed (69) hide show
  1. package/dist/client/hooks.d.ts +65 -0
  2. package/dist/client/hooks.d.ts.map +1 -0
  3. package/dist/client/index.d.ts +10 -0
  4. package/dist/client/index.d.ts.map +1 -0
  5. package/dist/client/manager.d.ts +137 -0
  6. package/dist/client/manager.d.ts.map +1 -0
  7. package/dist/client/provider.d.ts +25 -0
  8. package/dist/client/provider.d.ts.map +1 -0
  9. package/dist/client/revalidation.d.ts +101 -0
  10. package/dist/client/revalidation.d.ts.map +1 -0
  11. package/dist/client/sse-client.d.ts +81 -0
  12. package/dist/client/sse-client.d.ts.map +1 -0
  13. package/dist/client/storage.d.ts +126 -0
  14. package/dist/client/storage.d.ts.map +1 -0
  15. package/dist/client/trpc.d.ts +12 -0
  16. package/dist/client/trpc.d.ts.map +1 -0
  17. package/dist/client.d.ts +12 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/config/schema.d.ts +250 -0
  20. package/dist/config/schema.d.ts.map +1 -0
  21. package/dist/config/schema.js +69 -0
  22. package/dist/config/schema.js.map +1 -0
  23. package/dist/core/analyzer.d.ts +15 -0
  24. package/dist/core/analyzer.d.ts.map +1 -0
  25. package/dist/core/driver.d.ts +7 -0
  26. package/dist/core/driver.d.ts.map +1 -0
  27. package/dist/core/driver.js +262 -0
  28. package/dist/core/driver.js.map +1 -0
  29. package/dist/core/function.d.ts +103 -0
  30. package/dist/core/function.d.ts.map +1 -0
  31. package/dist/core/function.js +252 -0
  32. package/dist/core/function.js.map +1 -0
  33. package/dist/core/sse.d.ts +98 -0
  34. package/dist/core/sse.d.ts.map +1 -0
  35. package/dist/core/types.d.ts +196 -0
  36. package/dist/core/types.d.ts.map +1 -0
  37. package/dist/core/types.js +3 -0
  38. package/dist/core/types.js.map +1 -0
  39. package/dist/examples/teamhub-integration.d.ts +56 -0
  40. package/dist/examples/teamhub-integration.d.ts.map +1 -0
  41. package/dist/examples/teamhub-integration.js +192 -0
  42. package/dist/examples/teamhub-integration.js.map +1 -0
  43. package/dist/index.d.ts +40 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +57 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/providers/localStorage.d.ts +13 -0
  48. package/dist/providers/localStorage.d.ts.map +1 -0
  49. package/dist/providers/memory.d.ts +13 -0
  50. package/dist/providers/memory.d.ts.map +1 -0
  51. package/dist/providers/redis.d.ts +14 -0
  52. package/dist/providers/redis.d.ts.map +1 -0
  53. package/dist/server.d.ts +18 -0
  54. package/dist/server.d.ts.map +1 -0
  55. package/dist/server.js +34 -0
  56. package/dist/server.js.map +1 -0
  57. package/dist/trpc/index.d.ts +9 -0
  58. package/dist/trpc/index.d.ts.map +1 -0
  59. package/dist/trpc/index.js +19 -0
  60. package/dist/trpc/index.js.map +1 -0
  61. package/dist/trpc/router.d.ts +76 -0
  62. package/dist/trpc/router.d.ts.map +1 -0
  63. package/dist/trpc/router.js +177 -0
  64. package/dist/trpc/router.js.map +1 -0
  65. package/dist/trpc/types.d.ts +114 -0
  66. package/dist/trpc/types.d.ts.map +1 -0
  67. package/dist/trpc/types.js +6 -0
  68. package/dist/trpc/types.js.map +1 -0
  69. 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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"}
@@ -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"}
@@ -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"}