@guren/server 1.0.0-rc.9 → 1.0.0

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 (68) hide show
  1. package/dist/{Application-DtWDHXr1.d.ts → Application-BnsyCKXY.d.ts} +79 -8
  2. package/dist/AuthManager-SfhCNkAU.d.ts +79 -0
  3. package/dist/{BroadcastManager-AkIWUGJo.d.ts → BroadcastManager-CGWl9rUO.d.ts} +5 -0
  4. package/dist/{ConsoleKernel-CqCVrdZs.d.ts → ConsoleKernel-BDtBETjm.d.ts} +1 -1
  5. package/dist/{Gate-CNkBYf8m.d.ts → Gate-CynjZCtS.d.ts} +5 -0
  6. package/dist/{I18nManager-Dtgzsf5n.d.ts → I18nManager-BiSoczfV.d.ts} +6 -1
  7. package/dist/McpServiceProvider-JW6PDVMD.js +7 -0
  8. package/dist/api-token-BSSCLlFW.d.ts +541 -0
  9. package/dist/auth/index.d.ts +9 -327
  10. package/dist/auth/index.js +59 -6684
  11. package/dist/authorization/index.d.ts +2 -2
  12. package/dist/authorization/index.js +19 -604
  13. package/dist/broadcasting/index.d.ts +2 -2
  14. package/dist/broadcasting/index.js +12 -895
  15. package/dist/cache/index.js +8 -809
  16. package/dist/chunk-2T6JN4VR.js +1563 -0
  17. package/dist/chunk-44F7JQ7I.js +950 -0
  18. package/dist/chunk-74HTZG3V.js +331 -0
  19. package/dist/chunk-A3ISJVEV.js +598 -0
  20. package/dist/chunk-CSDKWLFD.js +652 -0
  21. package/dist/chunk-CSRQTEQA.js +839 -0
  22. package/dist/chunk-DAQKYKLH.js +182 -0
  23. package/dist/chunk-EDRGAM6G.js +647 -0
  24. package/dist/chunk-EGU5KB7V.js +818 -0
  25. package/dist/chunk-H32L2NE3.js +372 -0
  26. package/dist/chunk-HKQSAFSN.js +837 -0
  27. package/dist/chunk-IOTWFHZU.js +558 -0
  28. package/dist/chunk-ONSDE37A.js +125 -0
  29. package/dist/chunk-QQKTH5KX.js +114 -0
  30. package/dist/chunk-R2TCP7D7.js +409 -0
  31. package/dist/chunk-SIP34GBE.js +380 -0
  32. package/dist/chunk-THSX7OOR.js +454 -0
  33. package/dist/chunk-UY3AZSYL.js +14 -0
  34. package/dist/chunk-VT5KRDPH.js +134 -0
  35. package/dist/chunk-VXXZIXAP.js +255 -0
  36. package/dist/chunk-WJJ5CTNI.js +907 -0
  37. package/dist/chunk-WVY45EIW.js +359 -0
  38. package/dist/chunk-ZRBLZY3M.js +462 -0
  39. package/dist/client-CKXJLsTe.d.ts +232 -0
  40. package/dist/email-verification-CAeArjui.d.ts +327 -0
  41. package/dist/encryption/index.js +48 -556
  42. package/dist/errors-JOOPDDQ6.js +34 -0
  43. package/dist/events/index.js +14 -316
  44. package/dist/health/index.js +12 -367
  45. package/dist/i18n/index.d.ts +2 -2
  46. package/dist/i18n/index.js +14 -583
  47. package/dist/index.d.ts +37 -239
  48. package/dist/index.js +2873 -19166
  49. package/dist/lambda/index.d.ts +9 -7
  50. package/dist/lambda/index.js +4 -9
  51. package/dist/logging/index.js +12 -545
  52. package/dist/mail/index.d.ts +29 -1
  53. package/dist/mail/index.js +15 -684
  54. package/dist/mcp/index.d.ts +7 -5
  55. package/dist/mcp/index.js +5 -378
  56. package/dist/notifications/index.d.ts +8 -6
  57. package/dist/notifications/index.js +13 -730
  58. package/dist/queue/index.d.ts +37 -7
  59. package/dist/queue/index.js +22 -940
  60. package/dist/redis/index.d.ts +366 -0
  61. package/dist/redis/index.js +597 -0
  62. package/dist/runtime/index.d.ts +8 -6
  63. package/dist/runtime/index.js +26 -244
  64. package/dist/scheduling/index.js +14 -822
  65. package/dist/storage/index.d.ts +1 -0
  66. package/dist/storage/index.js +6 -824
  67. package/package.json +15 -7
  68. package/dist/api-token-JOif2CtG.d.ts +0 -1792
@@ -0,0 +1,331 @@
1
+ // src/events/Event.ts
2
+ var Event = class {
3
+ /**
4
+ * Timestamp when the event was created.
5
+ */
6
+ timestamp = /* @__PURE__ */ new Date();
7
+ /**
8
+ * Get the event name (class name by default).
9
+ * Override this to customize the event name.
10
+ */
11
+ static get eventName() {
12
+ return this.name;
13
+ }
14
+ /**
15
+ * Get the event name from an instance.
16
+ */
17
+ get eventName() {
18
+ return this.constructor.eventName;
19
+ }
20
+ };
21
+
22
+ // src/events/EventManager.ts
23
+ var EventManager = class {
24
+ listeners = /* @__PURE__ */ new Map();
25
+ /**
26
+ * Queue dispatcher function (set when Queue system is integrated).
27
+ */
28
+ queueDispatcher;
29
+ /**
30
+ * Register a listener for an event.
31
+ *
32
+ * @param event - Event class to listen for
33
+ * @param listener - Listener function
34
+ * @param options - Listener options
35
+ * @returns Subscription handle for unsubscribing
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * // Basic usage
40
+ * events.on(UserRegistered, (e) => console.log(e.email))
41
+ *
42
+ * // With options
43
+ * events.on(UserRegistered, (e) => sendEmail(e), { priority: 10 })
44
+ *
45
+ * // Unsubscribe later
46
+ * const sub = events.on(UserRegistered, handler)
47
+ * sub.unsubscribe()
48
+ * ```
49
+ */
50
+ on(event, listener, options = {}) {
51
+ const eventName = typeof event === "string" ? event : event.eventName;
52
+ const registeredListeners = this.listeners.get(eventName) ?? [];
53
+ const registered = {
54
+ listener,
55
+ options: { once: false, priority: 0, ...options }
56
+ };
57
+ registeredListeners.push(registered);
58
+ registeredListeners.sort((a, b) => (b.options.priority ?? 0) - (a.options.priority ?? 0));
59
+ this.listeners.set(eventName, registeredListeners);
60
+ return {
61
+ unsubscribe: () => this.off(event, listener)
62
+ };
63
+ }
64
+ /**
65
+ * Register a one-time listener for an event.
66
+ * The listener will be automatically removed after the first invocation.
67
+ *
68
+ * @param event - Event class to listen for
69
+ * @param listener - Listener function
70
+ * @param options - Additional listener options (once is always true)
71
+ * @returns Subscription handle for unsubscribing
72
+ */
73
+ once(event, listener, options = {}) {
74
+ return this.on(event, listener, { ...options, once: true });
75
+ }
76
+ /**
77
+ * Remove a listener for an event.
78
+ *
79
+ * @param event - Event class
80
+ * @param listener - Listener to remove (if omitted, all listeners for the event are removed)
81
+ */
82
+ off(event, listener) {
83
+ const eventName = typeof event === "string" ? event : event.eventName;
84
+ const registeredListeners = this.listeners.get(eventName);
85
+ if (!registeredListeners) return;
86
+ if (!listener) {
87
+ this.listeners.delete(eventName);
88
+ return;
89
+ }
90
+ const index = registeredListeners.findIndex((r) => r.listener === listener);
91
+ if (index !== -1) {
92
+ registeredListeners.splice(index, 1);
93
+ if (registeredListeners.length === 0) {
94
+ this.listeners.delete(eventName);
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Emit an event to all registered listeners.
100
+ * Listeners are executed in order of priority (highest first).
101
+ * Async listeners are awaited sequentially.
102
+ *
103
+ * @param event - Event instance to emit
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * await events.emit(new UserRegistered('123', 'user@example.com'))
108
+ * ```
109
+ */
110
+ async emit(event) {
111
+ const eventName = event.eventName;
112
+ const registeredListeners = this.listeners.get(eventName);
113
+ if (!registeredListeners || registeredListeners.length === 0) {
114
+ return;
115
+ }
116
+ const listenersToCall = [...registeredListeners];
117
+ const toRemove = [];
118
+ for (const registered of listenersToCall) {
119
+ if (registered.options.queue && this.queueDispatcher) {
120
+ await this.queueDispatcher(registered.options.queue, eventName, event);
121
+ } else {
122
+ await registered.listener(event);
123
+ }
124
+ if (registered.options.once) {
125
+ toRemove.push(registered);
126
+ }
127
+ }
128
+ for (const registered of toRemove) {
129
+ const index = registeredListeners.indexOf(registered);
130
+ if (index !== -1) {
131
+ registeredListeners.splice(index, 1);
132
+ }
133
+ }
134
+ if (registeredListeners.length === 0) {
135
+ this.listeners.delete(eventName);
136
+ }
137
+ }
138
+ /**
139
+ * Emit an event to all registered listeners in parallel.
140
+ * Use this when listener execution order doesn't matter and you want faster execution.
141
+ *
142
+ * @param event - Event instance to emit
143
+ */
144
+ async emitParallel(event) {
145
+ const eventName = event.eventName;
146
+ const registeredListeners = this.listeners.get(eventName);
147
+ if (!registeredListeners || registeredListeners.length === 0) {
148
+ return;
149
+ }
150
+ const listenersToCall = [...registeredListeners];
151
+ const toRemove = [];
152
+ await Promise.all(
153
+ listenersToCall.map(async (registered) => {
154
+ if (registered.options.queue && this.queueDispatcher) {
155
+ await this.queueDispatcher(registered.options.queue, eventName, event);
156
+ } else {
157
+ await registered.listener(event);
158
+ }
159
+ if (registered.options.once) {
160
+ toRemove.push(registered);
161
+ }
162
+ })
163
+ );
164
+ for (const registered of toRemove) {
165
+ const index = registeredListeners.indexOf(registered);
166
+ if (index !== -1) {
167
+ registeredListeners.splice(index, 1);
168
+ }
169
+ }
170
+ if (registeredListeners.length === 0) {
171
+ this.listeners.delete(eventName);
172
+ }
173
+ }
174
+ /**
175
+ * Check if an event has any listeners registered.
176
+ *
177
+ * @param event - Event class or event name
178
+ */
179
+ hasListeners(event) {
180
+ const eventName = typeof event === "string" ? event : event.eventName;
181
+ const listeners = this.listeners.get(eventName);
182
+ return listeners !== void 0 && listeners.length > 0;
183
+ }
184
+ /**
185
+ * Get all listeners for an event.
186
+ *
187
+ * @param event - Event class or event name
188
+ */
189
+ getListeners(event) {
190
+ const eventName = typeof event === "string" ? event : event.eventName;
191
+ const registeredListeners = this.listeners.get(eventName);
192
+ if (!registeredListeners) return [];
193
+ return registeredListeners.map((r) => r.listener);
194
+ }
195
+ /**
196
+ * Get the count of listeners for an event.
197
+ *
198
+ * @param event - Event class or event name
199
+ */
200
+ listenerCount(event) {
201
+ const eventName = typeof event === "string" ? event : event.eventName;
202
+ return this.listeners.get(eventName)?.length ?? 0;
203
+ }
204
+ /**
205
+ * Get all registered event names.
206
+ */
207
+ eventNames() {
208
+ return Array.from(this.listeners.keys());
209
+ }
210
+ /**
211
+ * Remove all listeners for all events.
212
+ */
213
+ removeAllListeners() {
214
+ this.listeners.clear();
215
+ }
216
+ /**
217
+ * Set the queue dispatcher function.
218
+ * This is called by the Queue system when it's integrated.
219
+ */
220
+ setQueueDispatcher(dispatcher) {
221
+ this.queueDispatcher = dispatcher;
222
+ }
223
+ };
224
+ function createEventManager() {
225
+ return new EventManager();
226
+ }
227
+
228
+ // src/events/Listener.ts
229
+ var Listener = class {
230
+ /**
231
+ * The event class this listener handles.
232
+ * Must be set by subclasses.
233
+ */
234
+ static event;
235
+ /**
236
+ * Whether this listener should be queued instead of executed immediately.
237
+ * @default false
238
+ */
239
+ static shouldQueue = false;
240
+ /**
241
+ * The queue name to dispatch to when shouldQueue is true.
242
+ * @default 'default'
243
+ */
244
+ static queue = "default";
245
+ /**
246
+ * Priority of this listener. Higher values are executed first.
247
+ * @default 0
248
+ */
249
+ static priority = 0;
250
+ };
251
+
252
+ // src/events/builtin.ts
253
+ var RequestReceived = class extends Event {
254
+ constructor(method, path, requestId) {
255
+ super();
256
+ this.method = method;
257
+ this.path = path;
258
+ this.requestId = requestId;
259
+ }
260
+ };
261
+ var RequestFinished = class extends Event {
262
+ constructor(method, path, status, durationMs, requestId) {
263
+ super();
264
+ this.method = method;
265
+ this.path = path;
266
+ this.status = status;
267
+ this.durationMs = durationMs;
268
+ this.requestId = requestId;
269
+ }
270
+ };
271
+ var UserAuthenticated = class extends Event {
272
+ constructor(userId, guard = "default") {
273
+ super();
274
+ this.userId = userId;
275
+ this.guard = guard;
276
+ }
277
+ };
278
+ var UserLoggedOut = class extends Event {
279
+ constructor(userId, guard = "default") {
280
+ super();
281
+ this.userId = userId;
282
+ this.guard = guard;
283
+ }
284
+ };
285
+ var JobProcessed = class extends Event {
286
+ constructor(jobId, jobName, queue, durationMs) {
287
+ super();
288
+ this.jobId = jobId;
289
+ this.jobName = jobName;
290
+ this.queue = queue;
291
+ this.durationMs = durationMs;
292
+ }
293
+ };
294
+ var JobFailed = class extends Event {
295
+ constructor(jobId, jobName, queue, error, attempts) {
296
+ super();
297
+ this.jobId = jobId;
298
+ this.jobName = jobName;
299
+ this.queue = queue;
300
+ this.error = error;
301
+ this.attempts = attempts;
302
+ }
303
+ };
304
+ var ApplicationStarted = class extends Event {
305
+ constructor(port, host) {
306
+ super();
307
+ this.port = port;
308
+ this.host = host;
309
+ }
310
+ };
311
+ var ApplicationShutdown = class extends Event {
312
+ constructor(reason) {
313
+ super();
314
+ this.reason = reason;
315
+ }
316
+ };
317
+
318
+ export {
319
+ Event,
320
+ EventManager,
321
+ createEventManager,
322
+ Listener,
323
+ RequestReceived,
324
+ RequestFinished,
325
+ UserAuthenticated,
326
+ UserLoggedOut,
327
+ JobProcessed,
328
+ JobFailed,
329
+ ApplicationStarted,
330
+ ApplicationShutdown
331
+ };