stratal 0.0.4 → 0.0.6

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 (67) hide show
  1. package/README.md +2 -7
  2. package/dist/application.d.ts +15 -5
  3. package/dist/application.d.ts.map +1 -1
  4. package/dist/application.js +34 -11
  5. package/dist/application.js.map +1 -1
  6. package/dist/di/container.d.ts +2 -4
  7. package/dist/di/container.d.ts.map +1 -1
  8. package/dist/di/container.js +4 -14
  9. package/dist/di/container.js.map +1 -1
  10. package/dist/di/tokens.d.ts +0 -1
  11. package/dist/di/tokens.d.ts.map +1 -1
  12. package/dist/di/tokens.js +0 -1
  13. package/dist/di/tokens.js.map +1 -1
  14. package/dist/events/constants.d.ts +11 -0
  15. package/dist/events/constants.d.ts.map +1 -0
  16. package/dist/events/constants.js +11 -0
  17. package/dist/events/constants.js.map +1 -0
  18. package/dist/events/decorators/index.d.ts +3 -0
  19. package/dist/events/decorators/index.d.ts.map +1 -0
  20. package/dist/events/decorators/index.js +3 -0
  21. package/dist/events/decorators/index.js.map +1 -0
  22. package/dist/events/decorators/listener.decorator.d.ts +24 -0
  23. package/dist/events/decorators/listener.decorator.d.ts.map +1 -0
  24. package/dist/events/decorators/listener.decorator.js +33 -0
  25. package/dist/events/decorators/listener.decorator.js.map +1 -0
  26. package/dist/events/decorators/on.decorator.d.ts +28 -0
  27. package/dist/events/decorators/on.decorator.d.ts.map +1 -0
  28. package/dist/events/decorators/on.decorator.js +41 -0
  29. package/dist/events/decorators/on.decorator.js.map +1 -0
  30. package/dist/events/event-registry.d.ts +26 -0
  31. package/dist/events/event-registry.d.ts.map +1 -0
  32. package/dist/events/event-registry.js +156 -0
  33. package/dist/events/event-registry.js.map +1 -0
  34. package/dist/events/index.d.ts +5 -0
  35. package/dist/events/index.d.ts.map +1 -0
  36. package/dist/events/index.js +4 -0
  37. package/dist/events/index.js.map +1 -0
  38. package/dist/events/types.d.ts +116 -0
  39. package/dist/events/types.d.ts.map +1 -0
  40. package/dist/events/types.js +23 -0
  41. package/dist/events/types.js.map +1 -0
  42. package/dist/i18n/messages/en/errors.d.ts +2 -0
  43. package/dist/i18n/messages/en/errors.d.ts.map +1 -1
  44. package/dist/i18n/messages/en/errors.js +2 -0
  45. package/dist/i18n/messages/en/errors.js.map +1 -1
  46. package/dist/index.d.ts +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +1 -0
  49. package/dist/index.js.map +1 -1
  50. package/dist/module/module-registry.d.ts +9 -0
  51. package/dist/module/module-registry.d.ts.map +1 -1
  52. package/dist/module/module-registry.js +21 -0
  53. package/dist/module/module-registry.js.map +1 -1
  54. package/dist/stratal.d.ts +48 -0
  55. package/dist/stratal.d.ts.map +1 -0
  56. package/dist/stratal.js +90 -0
  57. package/dist/stratal.js.map +1 -0
  58. package/package.json +8 -8
  59. package/CHANGELOG.md +0 -115
  60. package/dist/worker/index.d.ts +0 -2
  61. package/dist/worker/index.d.ts.map +0 -1
  62. package/dist/worker/index.js +0 -2
  63. package/dist/worker/index.js.map +0 -1
  64. package/dist/worker/stratal-worker.d.ts +0 -49
  65. package/dist/worker/stratal-worker.d.ts.map +0 -1
  66. package/dist/worker/stratal-worker.js +0 -89
  67. package/dist/worker/stratal-worker.js.map +0 -1
@@ -0,0 +1,156 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject } from 'tsyringe';
14
+ import { Transient } from '../di/decorators';
15
+ import { DI_TOKENS } from '../di/tokens';
16
+ import { LOGGER_TOKENS } from '../logger';
17
+ let EventRegistry = class EventRegistry {
18
+ ctx;
19
+ logger;
20
+ handlers = new Map();
21
+ constructor(ctx, logger) {
22
+ this.ctx = ctx;
23
+ this.logger = logger;
24
+ }
25
+ on(event, handler, options) {
26
+ const registered = {
27
+ handler: handler,
28
+ priority: options?.priority ?? 0,
29
+ blocking: options?.blocking
30
+ };
31
+ const existingHandlers = this.handlers.get(event) ?? [];
32
+ existingHandlers.push(registered);
33
+ this.handlers.set(event, existingHandlers);
34
+ this.logger.debug('Event handler registered', {
35
+ event,
36
+ priority: registered.priority,
37
+ blocking: registered.blocking
38
+ });
39
+ }
40
+ async emit(event, context) {
41
+ // Build full context with caller-provided fields
42
+ const fullContext = {
43
+ ...context
44
+ };
45
+ // Find matching handlers using pattern matching
46
+ const matchingHandlers = this.findMatchingHandlers(event);
47
+ if (matchingHandlers.length === 0) {
48
+ return;
49
+ }
50
+ // Sort by priority (higher first)
51
+ const sortedHandlers = [...matchingHandlers].sort((a, b) => b.priority - a.priority);
52
+ // Determine if we should use waitUntil
53
+ const shouldUseWaitUntil = this.shouldUseWaitUntil(event, sortedHandlers);
54
+ // Execute handlers
55
+ const promises = sortedHandlers.map((registered) => this.executeHandler(registered.handler, fullContext, event));
56
+ if (shouldUseWaitUntil) {
57
+ // Non-blocking: use ctx.waitUntil
58
+ this.ctx.waitUntil(Promise.all(promises));
59
+ }
60
+ else {
61
+ // Blocking: await all handlers
62
+ await Promise.all(promises);
63
+ }
64
+ }
65
+ off(event, handler) {
66
+ const existingHandlers = this.handlers.get(event);
67
+ if (!existingHandlers)
68
+ return;
69
+ const filtered = existingHandlers.filter((h) => h.handler !== handler);
70
+ if (filtered.length > 0) {
71
+ this.handlers.set(event, filtered);
72
+ }
73
+ else {
74
+ this.handlers.delete(event);
75
+ }
76
+ this.logger.debug('Event handler unregistered', { event });
77
+ }
78
+ once(event, handler, options) {
79
+ const wrappedHandler = (async (context) => {
80
+ await handler(context);
81
+ this.off(event, wrappedHandler);
82
+ });
83
+ this.on(event, wrappedHandler, options);
84
+ }
85
+ /**
86
+ * Find all handlers matching the event using pattern matching.
87
+ * Order: exact match -> model wildcard -> operation wildcard -> global wildcard
88
+ */
89
+ findMatchingHandlers(event) {
90
+ const handlers = [];
91
+ const parts = event.split('.');
92
+ if (parts.length === 3) {
93
+ // Database event: "phase.model.operation"
94
+ const [phase, model, operation] = parts;
95
+ // 1. Exact match: "after.user.create"
96
+ handlers.push(...(this.handlers.get(event) ?? []));
97
+ // 2. Model wildcard: "after.user"
98
+ handlers.push(...(this.handlers.get(`${phase}.${model}`) ?? []));
99
+ // 3. Operation wildcard: "after.create"
100
+ handlers.push(...(this.handlers.get(`${phase}.${operation}`) ?? []));
101
+ // 4. Global wildcard: "after"
102
+ handlers.push(...(this.handlers.get(phase) ?? []));
103
+ }
104
+ else if (parts.length === 2) {
105
+ // Could be wildcard like "after.user" or custom event like "auth.verified"
106
+ handlers.push(...(this.handlers.get(event) ?? []));
107
+ if (parts[0] === 'before' || parts[0] === 'after') {
108
+ handlers.push(...(this.handlers.get(parts[0]) ?? []));
109
+ }
110
+ }
111
+ else {
112
+ handlers.push(...(this.handlers.get(event) ?? []));
113
+ }
114
+ return handlers;
115
+ }
116
+ /**
117
+ * Determine if we should use ctx.waitUntil (non-blocking) or await (blocking)
118
+ */
119
+ shouldUseWaitUntil(event, handlers) {
120
+ const hasBlockingHandler = handlers.some((h) => h.blocking === true);
121
+ if (hasBlockingHandler)
122
+ return false;
123
+ const hasNonBlockingHandler = handlers.some((h) => h.blocking === false);
124
+ if (hasNonBlockingHandler)
125
+ return true;
126
+ const phase = event.split('.')[0];
127
+ if (phase === 'before')
128
+ return false;
129
+ if (phase === 'after')
130
+ return true;
131
+ return false; // Custom events block by default
132
+ }
133
+ /**
134
+ * Execute a single handler with error isolation
135
+ */
136
+ async executeHandler(handler, context, event) {
137
+ try {
138
+ await handler(context);
139
+ }
140
+ catch (error) {
141
+ this.logger.error('Event handler error', {
142
+ event,
143
+ error: error instanceof Error ? error.message : String(error),
144
+ stack: error instanceof Error ? error.stack : undefined,
145
+ });
146
+ }
147
+ }
148
+ };
149
+ EventRegistry = __decorate([
150
+ Transient(),
151
+ __param(0, inject(DI_TOKENS.ExecutionContext)),
152
+ __param(1, inject(LOGGER_TOKENS.LoggerService)),
153
+ __metadata("design:paramtypes", [Object, Function])
154
+ ], EventRegistry);
155
+ export { EventRegistry };
156
+ //# sourceMappingURL=event-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-registry.js","sourceRoot":"","sources":["../../src/events/event-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { LISTENER_METADATA_KEYS } from './constants';
2
+ export { Listener, isListener, On, getListenerHandlers } from './decorators';
3
+ export { EventRegistry } from './event-registry';
4
+ export type { CustomEventContext, CustomEventRegistry, EventContext, EventHandler, EventName, EventOptions, IEventRegistry, ListenerHandlerMetadata, RegisteredHandler, } from './types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { LISTENER_METADATA_KEYS } from './constants';
2
+ export { Listener, isListener, On, getListenerHandlers } from './decorators';
3
+ export { EventRegistry } from './event-registry';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Core Event System Types
3
+ *
4
+ * Provides a generic, augmentable event system for Stratal.
5
+ * Core owns the base types; framework's database module augments
6
+ * `CustomEventRegistry` with richly typed database event contexts.
7
+ *
8
+ * ## Custom Events
9
+ *
10
+ * Custom application events can be added via module augmentation:
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * declare module 'stratal/events' {
15
+ * interface CustomEventRegistry {
16
+ * 'user.verified': CustomEventContext<{ userId: string; email: string }>
17
+ * 'email.sent': CustomEventContext<{ to: string; subject: string }>
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ /**
23
+ * Augmentable event registry.
24
+ * Maps event name -> full context type.
25
+ *
26
+ * Framework's database module augments this with `DatabaseEvents<K>`.
27
+ * Users augment for custom events using `CustomEventContext<TData>`.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * declare module 'stratal/events' {
32
+ * interface CustomEventRegistry {
33
+ * 'user.verified': CustomEventContext<{ userId: string; email: string }>
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ export interface CustomEventRegistry {
39
+ }
40
+ /**
41
+ * All valid event names.
42
+ * Falls back to `string` when no events are registered in CustomEventRegistry.
43
+ */
44
+ export type EventName = keyof CustomEventRegistry extends never ? string : Extract<keyof CustomEventRegistry, string>;
45
+ /**
46
+ * Helper for user-defined custom events.
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * declare module 'stratal/events' {
51
+ * interface CustomEventRegistry {
52
+ * 'user.verified': CustomEventContext<{ userId: string; email: string }>
53
+ * }
54
+ * }
55
+ * ```
56
+ */
57
+ export interface CustomEventContext<TData = unknown> {
58
+ data: TData;
59
+ metadata?: Record<string, unknown>;
60
+ }
61
+ /**
62
+ * Event context — looks up the full context type from CustomEventRegistry.
63
+ * For database events, this includes typed data and result from ZenStack schema.
64
+ * Falls back to a generic context shape for unregistered events.
65
+ */
66
+ export type EventContext<E extends EventName = EventName> = E extends keyof CustomEventRegistry ? CustomEventRegistry[E] : {
67
+ data?: unknown;
68
+ result?: unknown;
69
+ };
70
+ /**
71
+ * Options for registering event handlers
72
+ */
73
+ export interface EventOptions {
74
+ /** Handler execution priority. Higher values execute first. @default 0 */
75
+ priority?: number;
76
+ /**
77
+ * Whether to force blocking (await) vs non-blocking (waitUntil) behavior.
78
+ *
79
+ * Default behavior:
80
+ * - `before.*` events: Always blocking (true)
81
+ * - `after.*` events: Non-blocking via waitUntil (false)
82
+ * - Custom events: Blocking (true)
83
+ */
84
+ blocking?: boolean;
85
+ }
86
+ /**
87
+ * Event handler function signature with typed context
88
+ */
89
+ export type EventHandler<E extends EventName = EventName> = (context: EventContext<E>) => Promise<void> | void;
90
+ /**
91
+ * Internal structure for storing registered handlers
92
+ * @internal
93
+ */
94
+ export interface RegisteredHandler {
95
+ handler: EventHandler;
96
+ priority: number;
97
+ blocking?: boolean;
98
+ }
99
+ /**
100
+ * EventRegistry interface — main API for event system
101
+ */
102
+ export interface IEventRegistry {
103
+ on<E extends EventName>(event: E, handler: EventHandler<E>, options?: EventOptions): void;
104
+ emit<E extends EventName>(event: E, context?: Partial<EventContext<E>>): Promise<void>;
105
+ off<E extends EventName>(event: E, handler: EventHandler<E>): void;
106
+ once<E extends EventName>(event: E, handler: EventHandler<E>, options?: EventOptions): void;
107
+ }
108
+ /**
109
+ * Metadata stored by `@On()` decorator for each handler method
110
+ */
111
+ export interface ListenerHandlerMetadata {
112
+ methodName: string;
113
+ event: string;
114
+ options?: EventOptions;
115
+ }
116
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,mBAAmB;CAAI;AAExC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,mBAAmB,SAAS,KAAK,GAC3D,MAAM,GACN,OAAO,CAAC,MAAM,mBAAmB,EAAE,MAAM,CAAC,CAAA;AAM9C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,OAAO;IACjD,IAAI,EAAE,KAAK,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IACtD,CAAC,SAAS,MAAM,mBAAmB,GACjC,mBAAmB,CAAC,CAAC,CAAC,GACtB;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAMxC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAC1D,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAEzB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,CAAC,SAAS,SAAS,EACpB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,YAAY,GACrB,IAAI,CAAA;IAEP,IAAI,CAAC,CAAC,SAAS,SAAS,EACtB,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhB,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAElE,IAAI,CAAC,CAAC,SAAS,SAAS,EACtB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE,YAAY,GACrB,IAAI,CAAA;CACR;AAMD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Core Event System Types
3
+ *
4
+ * Provides a generic, augmentable event system for Stratal.
5
+ * Core owns the base types; framework's database module augments
6
+ * `CustomEventRegistry` with richly typed database event contexts.
7
+ *
8
+ * ## Custom Events
9
+ *
10
+ * Custom application events can be added via module augmentation:
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * declare module 'stratal/events' {
15
+ * interface CustomEventRegistry {
16
+ * 'user.verified': CustomEventContext<{ userId: string; email: string }>
17
+ * 'email.sent': CustomEventContext<{ to: string; subject: string }>
18
+ * }
19
+ * }
20
+ * ```
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -87,7 +87,9 @@ export declare const errors: {
87
87
  readonly accountAlreadyExists: "An account with this email already exists";
88
88
  readonly failedToCreateUser: "Failed to create user account. Please try again.";
89
89
  readonly failedToCreateSession: "Failed to create session. Please try again.";
90
+ readonly failedToGetSession: "Failed to retrieve session. Please try again.";
90
91
  readonly failedToUpdateUser: "Failed to update user information. Please try again.";
92
+ readonly failedToGetUserInfo: "Failed to retrieve user information. Please try again.";
91
93
  readonly socialAccountLinked: "This social account is already linked to another user";
92
94
  readonly providerNotFound: "Authentication provider not found";
93
95
  readonly userEmailNotFound: "User email address not found";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/i18n/messages/en/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmIT,CAAA"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/i18n/messages/en/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqIT,CAAA"}
@@ -102,7 +102,9 @@ export const errors = {
102
102
  accountAlreadyExists: 'An account with this email already exists',
103
103
  failedToCreateUser: 'Failed to create user account. Please try again.',
104
104
  failedToCreateSession: 'Failed to create session. Please try again.',
105
+ failedToGetSession: 'Failed to retrieve session. Please try again.',
105
106
  failedToUpdateUser: 'Failed to update user information. Please try again.',
107
+ failedToGetUserInfo: 'Failed to retrieve user information. Please try again.',
106
108
  socialAccountLinked: 'This social account is already linked to another user',
107
109
  providerNotFound: 'Authentication provider not found',
108
110
  userEmailNotFound: 'User email address not found',
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/i18n/messages/en/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/i18n/messages/en/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './application';
2
2
  export * from './env';
3
3
  export * from './types';
4
+ export { Stratal } from './stratal';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './application';
2
2
  export * from './env';
3
3
  export * from './types';
4
+ export { Stratal } from './stratal';
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -33,6 +33,7 @@ export declare class ModuleRegistry {
33
33
  private allControllers;
34
34
  private allConsumers;
35
35
  private allJobs;
36
+ private allListeners;
36
37
  private allMiddlewareConfigs;
37
38
  constructor(container: Container, logger: LoggerService);
38
39
  /**
@@ -61,6 +62,10 @@ export declare class ModuleRegistry {
61
62
  * Get all jobs registered from all modules
62
63
  */
63
64
  getAllJobs(): Constructor[];
65
+ /**
66
+ * Get all listeners registered from all modules
67
+ */
68
+ getAllListeners(): Constructor[];
64
69
  /**
65
70
  * Get all middleware configurations from all modules
66
71
  */
@@ -97,5 +102,9 @@ export declare class ModuleRegistry {
97
102
  * Register a single provider in the container
98
103
  */
99
104
  private registerProvider;
105
+ /**
106
+ * Check if a class is a `@Listener()` and collect it for auto-wiring
107
+ */
108
+ private collectIfListener;
100
109
  }
101
110
  //# sourceMappingURL=module-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAMZ,MAAM,SAAS,CAAA;AAQhB;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAGvC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAGxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,GAAG,aAAa,GAAG,IAAI;IAsD5D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,CAAC,WAAW,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;IAM3D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,EAAE;IAIlC;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;OAEG;IACH,uBAAuB,IAAI,qBAAqB,EAAE;IAIlD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
1
+ {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAMZ,MAAM,SAAS,CAAA;AAShB;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAavB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAbzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,oBAAoB,CAA8B;gBAGvC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAGxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,GAAG,aAAa,GAAG,IAAI;IAsD5D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,CAAC,WAAW,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;IAM3D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,EAAE;IAIlC;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,uBAAuB,IAAI,qBAAqB,EAAE;IAIlD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAQ1B"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { instancePerContainerCachingFactory } from 'tsyringe';
11
11
  import { Scope } from '../di/types';
12
+ import { isListener } from '../events';
12
13
  import { createMiddlewareConsumer, } from '../middleware';
13
14
  import { getModuleOptions } from './module.decorator';
14
15
  /**
@@ -33,6 +34,7 @@ export class ModuleRegistry {
33
34
  allControllers = [];
34
35
  allConsumers = [];
35
36
  allJobs = [];
37
+ allListeners = [];
36
38
  allMiddlewareConfigs = [];
37
39
  constructor(container, logger) {
38
40
  this.container = container;
@@ -148,6 +150,12 @@ export class ModuleRegistry {
148
150
  getAllJobs() {
149
151
  return this.allJobs;
150
152
  }
153
+ /**
154
+ * Get all listeners registered from all modules
155
+ */
156
+ getAllListeners() {
157
+ return this.allListeners;
158
+ }
151
159
  /**
152
160
  * Get all middleware configurations from all modules
153
161
  */
@@ -248,10 +256,12 @@ export class ModuleRegistry {
248
256
  if (typeof provider === 'function') {
249
257
  // Class-only provider - transient by default
250
258
  this.container.register(provider);
259
+ this.collectIfListener(provider);
251
260
  }
252
261
  else if ('useClass' in provider) {
253
262
  // ClassProvider with optional scope
254
263
  this.container.register(provider.provide, provider.useClass, provider.scope);
264
+ this.collectIfListener(provider.useClass);
255
265
  }
256
266
  else if ('useValue' in provider) {
257
267
  // ValueProvider - no scope needed (values are inherently singleton)
@@ -274,5 +284,16 @@ export class ModuleRegistry {
274
284
  this.container.registerExisting(provider.provide, provider.useExisting);
275
285
  }
276
286
  }
287
+ /**
288
+ * Check if a class is a `@Listener()` and collect it for auto-wiring
289
+ */
290
+ collectIfListener(providerClass) {
291
+ if (isListener(providerClass)) {
292
+ // Re-register as singleton so the same instance is used across all event registrations
293
+ this.container.register(providerClass, providerClass, Scope.Singleton);
294
+ this.allListeners.push(providerClass);
295
+ this.logger.debug(`Collected listener: ${providerClass.name}`);
296
+ }
297
+ }
277
298
  }
278
299
  //# sourceMappingURL=module-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import 'reflect-metadata';
2
+ import { Application, type ApplicationConfig } from './application';
3
+ import type { StratalEnv } from './env';
4
+ /**
5
+ * Stratal — Hono-style entry point for Cloudflare Workers.
6
+ *
7
+ * Lazily initializes the Application on the first handler call and caches it
8
+ * for all subsequent invocations. A concurrent-init guard prevents double
9
+ * initialization from simultaneous requests.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { Stratal } from 'stratal'
14
+ * import { AppModule } from './app.module'
15
+ *
16
+ * export default new Stratal({ module: AppModule })
17
+ * ```
18
+ */
19
+ export declare class Stratal<Env extends StratalEnv = StratalEnv> {
20
+ private readonly config;
21
+ private app;
22
+ private initPromise;
23
+ constructor(config: ApplicationConfig);
24
+ /**
25
+ * Handle HTTP requests via RouterService.
26
+ */
27
+ fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response>;
28
+ /**
29
+ * Handle queue batches.
30
+ */
31
+ queue(batch: MessageBatch, env: Env, ctx: ExecutionContext): Promise<void>;
32
+ /**
33
+ * Handle scheduled cron triggers.
34
+ */
35
+ scheduled(controller: ScheduledController, env: Env, ctx: ExecutionContext): Promise<void>;
36
+ /**
37
+ * Get or lazily initialize the Application singleton.
38
+ * The first call's `env`/`ctx` are used for initialization;
39
+ * subsequent calls return the cached instance.
40
+ */
41
+ getApplication(env: Env, ctx: ExecutionContext): Promise<Application>;
42
+ /**
43
+ * Shut down the application and release all resources.
44
+ */
45
+ shutdown(): Promise<void>;
46
+ private initializeApp;
47
+ }
48
+ //# sourceMappingURL=stratal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stratal.d.ts","sourceRoot":"","sources":["../src/stratal.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGvC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU;IAI1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,WAAW,CAAoC;gBAE1B,MAAM,EAAE,iBAAiB;IAMtD;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMjF;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhF;;OAEG;IACG,SAAS,CAAC,UAAU,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKhG;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsB3E;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAOjB,aAAa;CAK5B"}