@guren/server 0.2.0-alpha.7 → 1.0.0-rc.9

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 (54) hide show
  1. package/dist/Application-DtWDHXr1.d.ts +2110 -0
  2. package/dist/BroadcastManager-AkIWUGJo.d.ts +466 -0
  3. package/dist/CacheManager-BkvHEOZX.d.ts +244 -0
  4. package/dist/ConsoleKernel-CqCVrdZs.d.ts +207 -0
  5. package/dist/EventManager-CmIoLt7r.d.ts +207 -0
  6. package/dist/Gate-CNkBYf8m.d.ts +268 -0
  7. package/dist/HealthManager-DUyMIzsZ.d.ts +141 -0
  8. package/dist/I18nManager-Dtgzsf5n.d.ts +270 -0
  9. package/dist/LogManager-7mxnkaPM.d.ts +256 -0
  10. package/dist/MailManager-DpMvYiP9.d.ts +292 -0
  11. package/dist/Scheduler-BstvSca7.d.ts +469 -0
  12. package/dist/StorageManager-oZTHqaza.d.ts +337 -0
  13. package/dist/api-token-JOif2CtG.d.ts +1792 -0
  14. package/dist/app-key-CsBfRC_Q.d.ts +214 -0
  15. package/dist/auth/index.d.ts +418 -0
  16. package/dist/auth/index.js +6742 -0
  17. package/dist/authorization/index.d.ts +129 -0
  18. package/dist/authorization/index.js +621 -0
  19. package/dist/broadcasting/index.d.ts +233 -0
  20. package/dist/broadcasting/index.js +907 -0
  21. package/dist/cache/index.d.ts +233 -0
  22. package/dist/cache/index.js +817 -0
  23. package/dist/encryption/index.d.ts +222 -0
  24. package/dist/encryption/index.js +602 -0
  25. package/dist/events/index.d.ts +155 -0
  26. package/dist/events/index.js +330 -0
  27. package/dist/health/index.d.ts +185 -0
  28. package/dist/health/index.js +379 -0
  29. package/dist/i18n/index.d.ts +101 -0
  30. package/dist/i18n/index.js +597 -0
  31. package/dist/index-9_Jzj5jo.d.ts +7 -0
  32. package/dist/index.d.ts +2628 -619
  33. package/dist/index.js +22229 -3116
  34. package/dist/lambda/index.d.ts +156 -0
  35. package/dist/lambda/index.js +91 -0
  36. package/dist/logging/index.d.ts +50 -0
  37. package/dist/logging/index.js +557 -0
  38. package/dist/mail/index.d.ts +288 -0
  39. package/dist/mail/index.js +695 -0
  40. package/dist/mcp/index.d.ts +139 -0
  41. package/dist/mcp/index.js +382 -0
  42. package/dist/notifications/index.d.ts +271 -0
  43. package/dist/notifications/index.js +741 -0
  44. package/dist/queue/index.d.ts +423 -0
  45. package/dist/queue/index.js +958 -0
  46. package/dist/runtime/index.d.ts +93 -0
  47. package/dist/runtime/index.js +834 -0
  48. package/dist/scheduling/index.d.ts +41 -0
  49. package/dist/scheduling/index.js +836 -0
  50. package/dist/storage/index.d.ts +196 -0
  51. package/dist/storage/index.js +832 -0
  52. package/dist/vite/index.js +203 -3
  53. package/package.json +93 -6
  54. package/dist/chunk-FK2XQSBF.js +0 -160
@@ -0,0 +1,233 @@
1
+ import { B as BroadcastManager, P as PresenceBroadcastDriver, c as BroadcastEvent, j as PresenceMember } from '../BroadcastManager-AkIWUGJo.js';
2
+ export { A as AuthMiddlewareOptions, a as BroadcastDriver, b as BroadcastDriverFactory, d as BroadcastManagerOptions, e as BroadcastableEvent, C as Channel, f as ChannelAuthorizer, g as ChannelRegistration, h as PresenceChannel, i as PresenceChannelAuthorizer, k as PrivateChannel, S as SSEClient, l as SSEMiddlewareOptions, W as WebSocketClient, m as createBroadcastManager, n as getBroadcastManager, s as setBroadcastManager } from '../BroadcastManager-AkIWUGJo.js';
3
+ import '../index-9_Jzj5jo.js';
4
+ import 'hono';
5
+
6
+ type ChannelEventsMap = Record<string, Record<string, unknown>>;
7
+ type ChannelNameFor<TEvents extends ChannelEventsMap> = keyof TEvents & string;
8
+ type EventNameFor<TEvents extends ChannelEventsMap, TChannel extends ChannelNameFor<TEvents>> = keyof TEvents[TChannel] & string;
9
+ type PayloadFor<TEvents extends ChannelEventsMap, TChannel extends ChannelNameFor<TEvents>, TEvent extends EventNameFor<TEvents, TChannel>> = TEvents[TChannel][TEvent];
10
+ interface TypedChannelHandle<TEvents extends ChannelEventsMap, TChannel extends ChannelNameFor<TEvents>> {
11
+ readonly name: TChannel;
12
+ broadcast<TEvent extends EventNameFor<TEvents, TChannel>>(event: TEvent, payload: PayloadFor<TEvents, TChannel, TEvent>): Promise<void>;
13
+ }
14
+ interface TypedPrivateChannelHandle<TEvents extends ChannelEventsMap, TChannel extends ChannelNameFor<TEvents>> extends TypedChannelHandle<TEvents, TChannel> {
15
+ readonly name: TChannel;
16
+ }
17
+ interface TypedPresenceChannelHandle<TEvents extends ChannelEventsMap, TChannel extends ChannelNameFor<TEvents>> extends TypedChannelHandle<TEvents, TChannel> {
18
+ readonly name: TChannel;
19
+ }
20
+ interface TypedBroadcaster<TEvents extends ChannelEventsMap> {
21
+ broadcast<TChannel extends ChannelNameFor<TEvents>, TEvent extends EventNameFor<TEvents, TChannel>>(channel: TChannel, event: TEvent, payload: PayloadFor<TEvents, TChannel, TEvent>): Promise<void>;
22
+ toChannel<TChannel extends ChannelNameFor<TEvents>>(channel: TChannel): TypedChannelHandle<TEvents, TChannel>;
23
+ toPrivate<TChannel extends ChannelNameFor<TEvents>>(channel: TChannel): TypedPrivateChannelHandle<TEvents, TChannel>;
24
+ toPresence<TChannel extends ChannelNameFor<TEvents>>(channel: TChannel): TypedPresenceChannelHandle<TEvents, TChannel>;
25
+ }
26
+ declare function createTypedBroadcaster<TEvents extends ChannelEventsMap>(manager: BroadcastManager): TypedBroadcaster<TEvents>;
27
+
28
+ /**
29
+ * Memory broadcast driver.
30
+ *
31
+ * Stores all subscriptions and presence data in memory.
32
+ * Useful for testing and single-server deployments.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const driver = new MemoryDriver()
37
+ *
38
+ * // Subscribe to a channel
39
+ * const unsubscribe = driver.subscribe('notifications', (event) => {
40
+ * console.log('Received:', event)
41
+ * })
42
+ *
43
+ * // Publish an event
44
+ * await driver.publish('notifications', 'NewMessage', { content: 'Hello!' })
45
+ *
46
+ * // Unsubscribe
47
+ * unsubscribe()
48
+ * ```
49
+ */
50
+ declare class MemoryDriver implements PresenceBroadcastDriver {
51
+ /**
52
+ * Channel subscribers.
53
+ */
54
+ protected subscribers: Map<string, Set<(event: BroadcastEvent) => void>>;
55
+ /**
56
+ * Presence channel members.
57
+ */
58
+ protected presenceMembers: Map<string, Map<string | number, PresenceMember>>;
59
+ /**
60
+ * Published events (for testing).
61
+ */
62
+ protected publishedEvents: BroadcastEvent[];
63
+ /**
64
+ * Publish an event to a channel.
65
+ */
66
+ publish(channel: string, event: string, data: unknown): Promise<void>;
67
+ /**
68
+ * Subscribe to a channel.
69
+ */
70
+ subscribe(channel: string, callback: (event: BroadcastEvent) => void): () => void;
71
+ /**
72
+ * Unsubscribe from a channel.
73
+ */
74
+ unsubscribe(channel: string, callback: (event: BroadcastEvent) => void): void;
75
+ /**
76
+ * Get members of a presence channel.
77
+ */
78
+ getMembers(channel: string): PresenceMember[];
79
+ /**
80
+ * Add a member to a presence channel.
81
+ */
82
+ addMember(channel: string, member: PresenceMember): void;
83
+ /**
84
+ * Remove a member from a presence channel.
85
+ */
86
+ removeMember(channel: string, memberId: string | number): void;
87
+ /**
88
+ * Check if a channel has subscribers.
89
+ */
90
+ hasSubscribers(channel: string): boolean;
91
+ /**
92
+ * Get subscriber count for a channel.
93
+ */
94
+ getSubscriberCount(channel: string): number;
95
+ /**
96
+ * Get all channels with subscribers.
97
+ */
98
+ getChannels(): string[];
99
+ /**
100
+ * Get all presence channels.
101
+ */
102
+ getPresenceChannels(): string[];
103
+ /**
104
+ * Get all published events (for testing).
105
+ */
106
+ getPublishedEvents(): BroadcastEvent[];
107
+ /**
108
+ * Get published events for a specific channel.
109
+ */
110
+ getPublishedEventsFor(channel: string): BroadcastEvent[];
111
+ /**
112
+ * Clear all data (for testing).
113
+ */
114
+ clear(): void;
115
+ /**
116
+ * Clear published events only.
117
+ */
118
+ clearPublishedEvents(): void;
119
+ }
120
+
121
+ /**
122
+ * Redis client interface.
123
+ * Compatible with ioredis and similar clients.
124
+ */
125
+ interface RedisClient {
126
+ publish(channel: string, message: string): Promise<number>;
127
+ subscribe(channel: string): Promise<void>;
128
+ unsubscribe(channel: string): Promise<void>;
129
+ on(event: 'message', callback: (channel: string, message: string) => void): void;
130
+ hset(key: string, field: string, value: string): Promise<number>;
131
+ hdel(key: string, field: string): Promise<number>;
132
+ hgetall(key: string): Promise<Record<string, string>>;
133
+ duplicate(): RedisClient;
134
+ }
135
+ /**
136
+ * Redis broadcast driver.
137
+ *
138
+ * Uses Redis pub/sub for multi-server deployments.
139
+ *
140
+ * @example
141
+ * ```typescript
142
+ * import Redis from 'ioredis'
143
+ *
144
+ * const redis = new Redis()
145
+ * const driver = new RedisDriver(redis)
146
+ *
147
+ * // Subscribe to a channel
148
+ * driver.subscribe('notifications', (event) => {
149
+ * console.log('Received:', event)
150
+ * })
151
+ *
152
+ * // Publish an event
153
+ * await driver.publish('notifications', 'NewMessage', { content: 'Hello!' })
154
+ * ```
155
+ */
156
+ declare class RedisDriver implements PresenceBroadcastDriver {
157
+ /**
158
+ * Publisher Redis client.
159
+ */
160
+ protected publisher: RedisClient;
161
+ /**
162
+ * Subscriber Redis client.
163
+ */
164
+ protected subscriber: RedisClient;
165
+ /**
166
+ * Local subscribers.
167
+ */
168
+ protected subscribers: Map<string, Set<(event: BroadcastEvent) => void>>;
169
+ /**
170
+ * Local presence members cache.
171
+ */
172
+ protected localPresence: Map<string, Map<string | number, PresenceMember>>;
173
+ /**
174
+ * Presence key prefix.
175
+ */
176
+ protected presencePrefix: string;
177
+ /**
178
+ * Whether the driver is initialized.
179
+ */
180
+ protected initialized: boolean;
181
+ constructor(redis: RedisClient, options?: RedisDriverOptions);
182
+ /**
183
+ * Setup the subscriber client.
184
+ */
185
+ protected setupSubscriber(): void;
186
+ /**
187
+ * Publish an event to a channel.
188
+ */
189
+ publish(channel: string, event: string, data: unknown): Promise<void>;
190
+ /**
191
+ * Subscribe to a channel.
192
+ */
193
+ subscribe(channel: string, callback: (event: BroadcastEvent) => void): () => void;
194
+ /**
195
+ * Unsubscribe from a channel.
196
+ */
197
+ unsubscribe(channel: string, callback: (event: BroadcastEvent) => void): void;
198
+ /**
199
+ * Get members of a presence channel.
200
+ */
201
+ getMembers(channel: string): PresenceMember[];
202
+ /**
203
+ * Get members asynchronously from Redis.
204
+ */
205
+ getMembersAsync(channel: string): Promise<PresenceMember[]>;
206
+ /**
207
+ * Add a member to a presence channel.
208
+ */
209
+ addMember(channel: string, member: PresenceMember): void;
210
+ /**
211
+ * Remove a member from a presence channel.
212
+ */
213
+ removeMember(channel: string, memberId: string | number): void;
214
+ /**
215
+ * Check if a channel has subscribers.
216
+ */
217
+ hasSubscribers(channel: string): boolean;
218
+ /**
219
+ * Get subscriber count for a channel.
220
+ */
221
+ getSubscriberCount(channel: string): number;
222
+ }
223
+ /**
224
+ * Redis driver options.
225
+ */
226
+ interface RedisDriverOptions {
227
+ /**
228
+ * Prefix for presence keys.
229
+ */
230
+ presencePrefix?: string;
231
+ }
232
+
233
+ export { BroadcastEvent, BroadcastManager, MemoryDriver, PresenceBroadcastDriver, PresenceMember, type RedisClient, RedisDriver, type RedisDriverOptions, type TypedBroadcaster, type TypedChannelHandle, type TypedPresenceChannelHandle, type TypedPrivateChannelHandle, createTypedBroadcaster };