stratal 0.0.2 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +121 -0
- package/dist/application.d.ts +6 -0
- package/dist/application.d.ts.map +1 -1
- package/dist/application.js +27 -2
- package/dist/application.js.map +1 -1
- package/dist/di/container.d.ts +2 -4
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +4 -14
- package/dist/di/container.js.map +1 -1
- package/dist/di/decorators/inject-param.decorator.d.ts.map +1 -1
- package/dist/di/decorators/inject-param.decorator.js +1 -1
- package/dist/di/decorators/inject-param.decorator.js.map +1 -1
- package/dist/di/tokens.d.ts +0 -1
- package/dist/di/tokens.d.ts.map +1 -1
- package/dist/di/tokens.js +0 -1
- package/dist/di/tokens.js.map +1 -1
- package/dist/errors/application-error.d.ts +6 -0
- package/dist/errors/application-error.d.ts.map +1 -1
- package/dist/errors/application-error.js +8 -1
- package/dist/errors/application-error.js.map +1 -1
- package/dist/errors/global-error-handler.d.ts.map +1 -1
- package/dist/errors/global-error-handler.js +4 -6
- package/dist/errors/global-error-handler.js.map +1 -1
- package/dist/events/constants.d.ts +11 -0
- package/dist/events/constants.d.ts.map +1 -0
- package/dist/events/constants.js +11 -0
- package/dist/events/constants.js.map +1 -0
- package/dist/events/decorators/index.d.ts +3 -0
- package/dist/events/decorators/index.d.ts.map +1 -0
- package/dist/events/decorators/index.js +3 -0
- package/dist/events/decorators/index.js.map +1 -0
- package/dist/events/decorators/listener.decorator.d.ts +24 -0
- package/dist/events/decorators/listener.decorator.d.ts.map +1 -0
- package/dist/events/decorators/listener.decorator.js +33 -0
- package/dist/events/decorators/listener.decorator.js.map +1 -0
- package/dist/events/decorators/on.decorator.d.ts +28 -0
- package/dist/events/decorators/on.decorator.d.ts.map +1 -0
- package/dist/events/decorators/on.decorator.js +41 -0
- package/dist/events/decorators/on.decorator.js.map +1 -0
- package/dist/events/event-registry.d.ts +26 -0
- package/dist/events/event-registry.d.ts.map +1 -0
- package/dist/events/event-registry.js +156 -0
- package/dist/events/event-registry.js.map +1 -0
- package/dist/events/index.d.ts +5 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +4 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/types.d.ts +116 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +23 -0
- package/dist/events/types.js.map +1 -0
- package/dist/guards/types.d.ts.map +1 -1
- package/dist/guards/types.js +1 -1
- package/dist/guards/types.js.map +1 -1
- package/dist/i18n/messages/en/errors.d.ts +2 -0
- package/dist/i18n/messages/en/errors.d.ts.map +1 -1
- package/dist/i18n/messages/en/errors.js +2 -0
- package/dist/i18n/messages/en/errors.js.map +1 -1
- package/dist/i18n/services/i18n.service.d.ts +1 -13
- package/dist/i18n/services/i18n.service.d.ts.map +1 -1
- package/dist/i18n/services/i18n.service.js +3 -39
- package/dist/i18n/services/i18n.service.js.map +1 -1
- package/dist/i18n/services/message-loader.service.d.ts +18 -0
- package/dist/i18n/services/message-loader.service.d.ts.map +1 -1
- package/dist/i18n/services/message-loader.service.js +56 -2
- package/dist/i18n/services/message-loader.service.js.map +1 -1
- package/dist/module/module-registry.d.ts +9 -0
- package/dist/module/module-registry.d.ts.map +1 -1
- package/dist/module/module-registry.js +21 -0
- package/dist/module/module-registry.js.map +1 -1
- package/dist/module/module.decorator.d.ts.map +1 -1
- package/dist/module/module.decorator.js +1 -1
- package/dist/module/module.decorator.js.map +1 -1
- package/dist/router/constants.js +6 -6
- package/dist/router/constants.js.map +1 -1
- package/package.json +10 -9
|
@@ -3,14 +3,25 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Singleton service that loads and caches all locale messages at startup.
|
|
5
5
|
* Merges core messages (from packages/modules) with app messages (from forRoot options).
|
|
6
|
+
* Lazily builds and caches CoreContext per locale on first access.
|
|
6
7
|
*/
|
|
8
|
+
import type { CoreContext } from '@intlify/core-base';
|
|
7
9
|
import type { I18nModuleOptions } from '../i18n.options';
|
|
8
10
|
export declare class MessageLoaderService {
|
|
9
11
|
private readonly options?;
|
|
10
12
|
private readonly cache;
|
|
13
|
+
private readonly contextCache;
|
|
11
14
|
private readonly locales;
|
|
12
15
|
private readonly defaultLocale;
|
|
13
16
|
constructor(options?: I18nModuleOptions | undefined);
|
|
17
|
+
/**
|
|
18
|
+
* Get CoreContext for a locale (lazily built and cached on first access)
|
|
19
|
+
* Falls back to default locale if locale not found
|
|
20
|
+
*
|
|
21
|
+
* @param locale - Locale code
|
|
22
|
+
* @returns Cached CoreContext ready for translation
|
|
23
|
+
*/
|
|
24
|
+
getCoreContext(locale: string): CoreContext;
|
|
14
25
|
/**
|
|
15
26
|
* Get messages for a specific locale
|
|
16
27
|
* Falls back to default locale if locale not found
|
|
@@ -38,6 +49,13 @@ export declare class MessageLoaderService {
|
|
|
38
49
|
* @returns Default locale code
|
|
39
50
|
*/
|
|
40
51
|
getDefaultLocale(): string;
|
|
52
|
+
/**
|
|
53
|
+
* Flatten nested messages to dot-notation
|
|
54
|
+
*
|
|
55
|
+
* Converts { auth: { login: { title: 'Sign In' } } }
|
|
56
|
+
* to { 'auth.login.title': 'Sign In' }
|
|
57
|
+
*/
|
|
58
|
+
private flattenMessages;
|
|
41
59
|
/**
|
|
42
60
|
* Deep merge two objects
|
|
43
61
|
* App messages override core messages at leaf level
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-loader.service.d.ts","sourceRoot":"","sources":["../../../src/i18n/services/message-loader.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"message-loader.service.d.ts","sourceRoot":"","sources":["../../../src/i18n/services/message-loader.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAIxD,qBACa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAP3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAInB,OAAO,CAAC,EAAE,iBAAiB,YAAA;IA6B9C;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;IAwB3C;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASpD;;;;OAIG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI1C;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;OAGG;IACH,OAAO,CAAC,SAAS;CA+BlB"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Singleton service that loads and caches all locale messages at startup.
|
|
5
5
|
* Merges core messages (from packages/modules) with app messages (from forRoot options).
|
|
6
|
+
* Lazily builds and caches CoreContext per locale on first access.
|
|
6
7
|
*/
|
|
7
8
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
8
9
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -16,6 +17,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
16
17
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
17
18
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
18
19
|
};
|
|
20
|
+
import { createCoreContext } from '@intlify/core-base';
|
|
19
21
|
import { inject } from 'tsyringe';
|
|
20
22
|
import { Transient } from '../../di/decorators';
|
|
21
23
|
import { I18N_TOKENS } from '../i18n.tokens';
|
|
@@ -23,12 +25,14 @@ import { getLocales, getMessages } from '../messages';
|
|
|
23
25
|
let MessageLoaderService = class MessageLoaderService {
|
|
24
26
|
options;
|
|
25
27
|
cache;
|
|
28
|
+
contextCache;
|
|
26
29
|
locales;
|
|
27
30
|
defaultLocale;
|
|
28
31
|
constructor(options) {
|
|
29
32
|
this.options = options;
|
|
30
33
|
this.defaultLocale = this.options?.defaultLocale ?? 'en';
|
|
31
34
|
this.cache = new Map();
|
|
35
|
+
this.contextCache = new Map();
|
|
32
36
|
// Get core messages (always available)
|
|
33
37
|
const coreMessages = getMessages();
|
|
34
38
|
const coreLocales = getLocales();
|
|
@@ -38,14 +42,44 @@ let MessageLoaderService = class MessageLoaderService {
|
|
|
38
42
|
const appLocales = Object.keys(appMessages);
|
|
39
43
|
const allLocales = [...new Set([...coreLocales, ...appLocales])];
|
|
40
44
|
this.locales = allLocales;
|
|
41
|
-
// Merge messages for each locale
|
|
45
|
+
// Merge messages for each locale (CoreContext built lazily on first access)
|
|
42
46
|
for (const locale of allLocales) {
|
|
43
47
|
const coreLocaleMessages = coreMessages[locale] ?? {};
|
|
44
48
|
const appLocaleMessages = appMessages[locale] ?? {};
|
|
45
49
|
// Deep merge: core defaults + app overrides
|
|
46
|
-
|
|
50
|
+
const merged = this.deepMerge(coreLocaleMessages, appLocaleMessages);
|
|
51
|
+
this.cache.set(locale, merged);
|
|
47
52
|
}
|
|
48
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Get CoreContext for a locale (lazily built and cached on first access)
|
|
56
|
+
* Falls back to default locale if locale not found
|
|
57
|
+
*
|
|
58
|
+
* @param locale - Locale code
|
|
59
|
+
* @returns Cached CoreContext ready for translation
|
|
60
|
+
*/
|
|
61
|
+
getCoreContext(locale) {
|
|
62
|
+
const cached = this.contextCache.get(locale);
|
|
63
|
+
if (cached)
|
|
64
|
+
return cached;
|
|
65
|
+
// Resolve effective locale (fallback to default if unsupported)
|
|
66
|
+
const effectiveLocale = this.cache.has(locale) ? locale : this.defaultLocale;
|
|
67
|
+
// Check if effective locale already cached (handles fallback)
|
|
68
|
+
const cachedEffective = this.contextCache.get(effectiveLocale);
|
|
69
|
+
if (cachedEffective)
|
|
70
|
+
return cachedEffective;
|
|
71
|
+
// Build and cache on first access
|
|
72
|
+
const messages = this.cache.get(effectiveLocale) ?? {};
|
|
73
|
+
const flattened = this.flattenMessages(messages);
|
|
74
|
+
const ctx = createCoreContext({
|
|
75
|
+
locale: effectiveLocale,
|
|
76
|
+
messages: { [effectiveLocale]: flattened },
|
|
77
|
+
missingWarn: false,
|
|
78
|
+
fallbackWarn: false,
|
|
79
|
+
});
|
|
80
|
+
this.contextCache.set(effectiveLocale, ctx);
|
|
81
|
+
return ctx;
|
|
82
|
+
}
|
|
49
83
|
/**
|
|
50
84
|
* Get messages for a specific locale
|
|
51
85
|
* Falls back to default locale if locale not found
|
|
@@ -86,6 +120,26 @@ let MessageLoaderService = class MessageLoaderService {
|
|
|
86
120
|
getDefaultLocale() {
|
|
87
121
|
return this.defaultLocale;
|
|
88
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Flatten nested messages to dot-notation
|
|
125
|
+
*
|
|
126
|
+
* Converts { auth: { login: { title: 'Sign In' } } }
|
|
127
|
+
* to { 'auth.login.title': 'Sign In' }
|
|
128
|
+
*/
|
|
129
|
+
flattenMessages(messages, prefix = '') {
|
|
130
|
+
const result = {};
|
|
131
|
+
for (const key of Object.keys(messages)) {
|
|
132
|
+
const value = messages[key];
|
|
133
|
+
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
134
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
135
|
+
Object.assign(result, this.flattenMessages(value, newKey));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
result[newKey] = String(value);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
89
143
|
/**
|
|
90
144
|
* Deep merge two objects
|
|
91
145
|
* App messages override core messages at leaf level
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-loader.service.js","sourceRoot":"","sources":["../../../src/i18n/services/message-loader.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"message-loader.service.js","sourceRoot":"","sources":["../../../src/i18n/services/message-loader.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAA;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.decorator.d.ts","sourceRoot":"","sources":["../../src/module/module.decorator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"module.decorator.d.ts","sourceRoot":"","sources":["../../src/module/module.decorator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,kBAAkB,eAAuC,CAAA;AAUtE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,IACnC,SAAS,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,QAAQ,SAAS,KAAG,SAAS,CAcpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAE/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAKpE"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { instancePerContainerCachingFactory, registry } from 'tsyringe';
|
|
8
8
|
import { InvalidModuleProviderError } from './errors';
|
|
9
|
-
export const MODULE_OPTIONS_KEY = Symbol('module:options');
|
|
9
|
+
export const MODULE_OPTIONS_KEY = Symbol.for('stratal:module:options');
|
|
10
10
|
/**
|
|
11
11
|
* `@Module` decorator - defines a module with imports, providers, controllers, consumers, jobs
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.decorator.js","sourceRoot":"","sources":["../../src/module/module.decorator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kCAAkC,EAAkB,QAAQ,EAAE,MAAM,UAAU,CAAA;AAIvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA;AAGrD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"module.decorator.js","sourceRoot":"","sources":["../../src/module/module.decorator.ts"],"names":[],"mappings":"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"}
|
package/dist/router/constants.js
CHANGED
|
@@ -11,12 +11,12 @@ export const ROUTER_CONTEXT_KEYS = {
|
|
|
11
11
|
* Using symbols to avoid collisions with other decorators
|
|
12
12
|
*/
|
|
13
13
|
export const ROUTE_METADATA_KEYS = {
|
|
14
|
-
CONTROLLER_ROUTE: Symbol('controller:route'),
|
|
15
|
-
CONTROLLER_OPTIONS: Symbol('controller:options'),
|
|
16
|
-
CONTROLLER_MIDDLEWARES: Symbol('controller:middlewares'),
|
|
17
|
-
ROUTE_CONFIG: Symbol('route:config'),
|
|
18
|
-
DECORATED_METHODS: Symbol('decorated:methods'),
|
|
19
|
-
AUTH_GUARD: Symbol('auth:guard')
|
|
14
|
+
CONTROLLER_ROUTE: Symbol.for('stratal:controller:route'),
|
|
15
|
+
CONTROLLER_OPTIONS: Symbol.for('stratal:controller:options'),
|
|
16
|
+
CONTROLLER_MIDDLEWARES: Symbol.for('stratal:controller:middlewares'),
|
|
17
|
+
ROUTE_CONFIG: Symbol.for('stratal:route:config'),
|
|
18
|
+
DECORATED_METHODS: Symbol.for('stratal:decorated:methods'),
|
|
19
|
+
AUTH_GUARD: Symbol.for('stratal:auth:guard')
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
22
|
* Security scheme identifiers for OpenAPI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,MAAM,EAAE,QAAQ;CACyB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/router/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,MAAM,EAAE,QAAQ;CACyB,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACxD,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC5D,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACpE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;CACpC,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,YAAY;IACzB,OAAO,EAAE,QAAQ;IACjB,cAAc,EAAE,eAAe;CACvB,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAW;IAC3C,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAC9C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAW;IAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW;IAChD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAW;IACjD,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAW;CAC5C,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,GAAG;IACT,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,GAAG;CACJ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stratal",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "A modular Cloudflare Workers framework with dependency injection, queue-based events, and type-safe configuration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,6 +29,10 @@
|
|
|
29
29
|
"engines": {
|
|
30
30
|
"node": ">=18.0.0"
|
|
31
31
|
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"access": "public",
|
|
34
|
+
"provenance": true
|
|
35
|
+
},
|
|
32
36
|
"files": [
|
|
33
37
|
"dist",
|
|
34
38
|
"README.md"
|
|
@@ -57,10 +61,6 @@
|
|
|
57
61
|
"./*": {
|
|
58
62
|
"types": "./dist/*/index.d.ts",
|
|
59
63
|
"import": "./dist/*/index.js"
|
|
60
|
-
},
|
|
61
|
-
"./polyfills": {
|
|
62
|
-
"types": "./dist/polyfills/index.d.ts",
|
|
63
|
-
"import": "./dist/polyfills/index.js"
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"scripts": {
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"bench:json": "vitest bench --run --outputJson benchmark-results.json",
|
|
75
75
|
"test": "vitest run",
|
|
76
76
|
"test:watch": "vitest",
|
|
77
|
+
"test:integration": "vitest run --project workerd",
|
|
77
78
|
"test:coverage": "vitest run --coverage",
|
|
78
79
|
"lint": "npx eslint .",
|
|
79
80
|
"lint:fix": "npx eslint --fix ."
|
|
@@ -134,9 +135,9 @@
|
|
|
134
135
|
"@aws-sdk/lib-storage": "^3.1000.0",
|
|
135
136
|
"@aws-sdk/s3-request-presigner": "3.1000.0",
|
|
136
137
|
"@cloudflare/vitest-pool-workers": "^0.12.18",
|
|
137
|
-
"@cloudflare/workers-types": "4.
|
|
138
|
+
"@cloudflare/workers-types": "4.20260305.0",
|
|
138
139
|
"@react-email/components": "^1.0.8",
|
|
139
|
-
"@stratal/testing": "
|
|
140
|
+
"@stratal/testing": "0.0.5",
|
|
140
141
|
"@tus/server": "^2.3.0",
|
|
141
142
|
"@types/node": "^25.3.2",
|
|
142
143
|
"@types/nodemailer": "^7.0.11",
|
|
@@ -148,6 +149,6 @@
|
|
|
148
149
|
"react-dom": "^19.2.4",
|
|
149
150
|
"resend": "^6.9.3",
|
|
150
151
|
"typescript": "^5.9.3",
|
|
151
|
-
"vitest": "~3.2.
|
|
152
|
+
"vitest": "~3.2.0"
|
|
152
153
|
}
|
|
153
|
-
}
|
|
154
|
+
}
|