@lerianstudio/sindarian-server 1.0.0-beta.2 → 1.0.0-beta.20
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/README.md +52 -18
- package/dist/constants/keys.d.ts +1 -0
- package/dist/constants/keys.d.ts.map +1 -1
- package/dist/constants/keys.js +2 -1
- package/dist/constants/keys.js.map +1 -1
- package/dist/controllers/decorators/body-decorator.d.ts +12 -16
- package/dist/controllers/decorators/body-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/body-decorator.js +52 -58
- package/dist/controllers/decorators/body-decorator.js.map +1 -1
- package/dist/controllers/decorators/controller-decorator.d.ts +5 -4
- package/dist/controllers/decorators/controller-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/controller-decorator.js +29 -22
- package/dist/controllers/decorators/controller-decorator.js.map +1 -1
- package/dist/controllers/decorators/param-decorator.d.ts +4 -9
- package/dist/controllers/decorators/param-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/param-decorator.js +33 -29
- package/dist/controllers/decorators/param-decorator.js.map +1 -1
- package/dist/controllers/decorators/query-decorator.d.ts +11 -15
- package/dist/controllers/decorators/query-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/query-decorator.js +24 -38
- package/dist/controllers/decorators/query-decorator.js.map +1 -1
- package/dist/controllers/decorators/request-decorator.d.ts +8 -12
- package/dist/controllers/decorators/request-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/request-decorator.js +21 -17
- package/dist/controllers/decorators/request-decorator.js.map +1 -1
- package/dist/controllers/decorators/route-decorator.d.ts +12 -1
- package/dist/controllers/decorators/route-decorator.d.ts.map +1 -1
- package/dist/controllers/decorators/route-decorator.js +24 -16
- package/dist/controllers/decorators/route-decorator.js.map +1 -1
- package/dist/dependency-injection/container.d.ts +4 -3
- package/dist/dependency-injection/container.d.ts.map +1 -1
- package/dist/dependency-injection/container.js +14 -3
- package/dist/dependency-injection/container.js.map +1 -1
- package/dist/exceptions/api-exception.d.ts +4 -7
- package/dist/exceptions/api-exception.d.ts.map +1 -1
- package/dist/exceptions/api-exception.js +8 -4
- package/dist/exceptions/api-exception.js.map +1 -1
- package/dist/exceptions/base-exception-filter.d.ts.map +1 -1
- package/dist/exceptions/base-exception-filter.js +10 -3
- package/dist/exceptions/base-exception-filter.js.map +1 -1
- package/dist/exceptions/decorators/use-filters-decorator.d.ts +12 -1
- package/dist/exceptions/decorators/use-filters-decorator.d.ts.map +1 -1
- package/dist/exceptions/decorators/use-filters-decorator.js +34 -3
- package/dist/exceptions/decorators/use-filters-decorator.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptor/decorators/use-interceptor-decorator.d.ts +10 -3
- package/dist/interceptor/decorators/use-interceptor-decorator.d.ts.map +1 -1
- package/dist/interceptor/decorators/use-interceptor-decorator.js +60 -22
- package/dist/interceptor/decorators/use-interceptor-decorator.js.map +1 -1
- package/dist/modules/module-decorator.d.ts +2 -2
- package/dist/modules/module-decorator.d.ts.map +1 -1
- package/dist/modules/module-decorator.js +7 -13
- package/dist/modules/module-decorator.js.map +1 -1
- package/dist/pipes/decorators/index.d.ts +2 -0
- package/dist/pipes/decorators/index.d.ts.map +1 -0
- package/dist/pipes/decorators/index.js +6 -0
- package/dist/pipes/decorators/index.js.map +1 -0
- package/dist/pipes/decorators/use-pipes.d.ts +19 -0
- package/dist/pipes/decorators/use-pipes.d.ts.map +1 -0
- package/dist/pipes/decorators/use-pipes.js +118 -0
- package/dist/pipes/decorators/use-pipes.js.map +1 -0
- package/dist/pipes/index.d.ts +3 -0
- package/dist/pipes/index.d.ts.map +1 -0
- package/dist/pipes/index.js +18 -0
- package/dist/pipes/index.js.map +1 -0
- package/dist/pipes/pipe-transform.d.ts +46 -0
- package/dist/pipes/pipe-transform.d.ts.map +1 -0
- package/dist/pipes/pipe-transform.js +3 -0
- package/dist/pipes/pipe-transform.js.map +1 -0
- package/dist/server/server-factory.d.ts +25 -0
- package/dist/server/server-factory.d.ts.map +1 -1
- package/dist/server/server-factory.js +98 -33
- package/dist/server/server-factory.js.map +1 -1
- package/dist/services/http-service.d.ts +2 -2
- package/dist/services/http-service.d.ts.map +1 -1
- package/dist/services/http-service.js.map +1 -1
- package/dist/services/pipes.d.ts +2 -0
- package/dist/services/pipes.d.ts.map +1 -0
- package/dist/services/pipes.js +5 -0
- package/dist/services/pipes.js.map +1 -0
- package/dist/utils/routes/route-specificity.d.ts +40 -0
- package/dist/utils/routes/route-specificity.d.ts.map +1 -0
- package/dist/utils/routes/route-specificity.js +89 -0
- package/dist/utils/routes/route-specificity.js.map +1 -0
- package/dist/utils/url/url-match.d.ts.map +1 -1
- package/dist/utils/url/url-match.js +16 -2
- package/dist/utils/url/url-match.js.map +1 -1
- package/dist/zod/create-zod-dto.d.ts +16 -0
- package/dist/zod/create-zod-dto.d.ts.map +1 -0
- package/dist/zod/create-zod-dto.js +14 -0
- package/dist/zod/create-zod-dto.js.map +1 -0
- package/dist/zod/index.d.ts +3 -0
- package/dist/zod/index.d.ts.map +1 -0
- package/dist/zod/index.js +8 -0
- package/dist/zod/index.js.map +1 -0
- package/dist/zod/zod-validation-pipe.d.ts +5 -0
- package/dist/zod/zod-validation-pipe.d.ts.map +1 -0
- package/dist/zod/zod-validation-pipe.js +35 -0
- package/dist/zod/zod-validation-pipe.js.map +1 -0
- package/package.json +6 -2
|
@@ -18,11 +18,16 @@ const server_1 = require("next/server");
|
|
|
18
18
|
const logger_1 = require("../logger/logger");
|
|
19
19
|
const api_exception_1 = require("../exceptions/api-exception");
|
|
20
20
|
const lodash_1 = require("lodash");
|
|
21
|
+
const pipes_1 = require("../services/pipes");
|
|
22
|
+
const use_pipes_1 = require("../pipes/decorators/use-pipes");
|
|
23
|
+
const route_decorator_1 = require("../controllers/decorators/route-decorator");
|
|
24
|
+
const route_specificity_1 = require("../utils/routes/route-specificity");
|
|
21
25
|
class ServerFactory {
|
|
22
26
|
constructor(module, container, routes) {
|
|
23
27
|
this.globalPrefix = '';
|
|
24
28
|
this.globalFilters = [new base_exception_filter_1.BaseExceptionFilter()];
|
|
25
29
|
this.globalInterceptors = [];
|
|
30
|
+
this.globalPipes = [];
|
|
26
31
|
this.module = module;
|
|
27
32
|
this.container = container;
|
|
28
33
|
this.routes = routes;
|
|
@@ -33,7 +38,10 @@ class ServerFactory {
|
|
|
33
38
|
this._registerLogger(options?.logger);
|
|
34
39
|
container.load(module.prototype[keys_1.MODULE_PROPERTY]);
|
|
35
40
|
const routes = (0, module_decorator_1.moduleHandler)(module);
|
|
36
|
-
|
|
41
|
+
// Sort routes by specificity (most specific first)
|
|
42
|
+
// This ensures routes like /users/active match before /users/:id
|
|
43
|
+
const sortedRoutes = (0, route_specificity_1.sortRoutesBySpecificity)(routes);
|
|
44
|
+
return new ServerFactory(module, container, sortedRoutes);
|
|
37
45
|
}
|
|
38
46
|
/**
|
|
39
47
|
* Set the global prefix for the server
|
|
@@ -48,6 +56,27 @@ class ServerFactory {
|
|
|
48
56
|
useGlobalInterceptors(...interceptors) {
|
|
49
57
|
this.globalInterceptors.push(...interceptors);
|
|
50
58
|
}
|
|
59
|
+
useGlobalPipes(...pipes) {
|
|
60
|
+
this.globalPipes.push(...pipes);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get a service synchronously
|
|
64
|
+
* @param service - The service to get
|
|
65
|
+
* @param options - The options for getting the service
|
|
66
|
+
* @returns The service instance
|
|
67
|
+
*/
|
|
68
|
+
get(service, options) {
|
|
69
|
+
return this.container.get(service, options);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get a service asynchronously
|
|
73
|
+
* @param service - The service to get
|
|
74
|
+
* @param options - The options for getting the service
|
|
75
|
+
* @returns A promise that resolves to the service instance
|
|
76
|
+
*/
|
|
77
|
+
getAsync(service, options) {
|
|
78
|
+
return this.container.getAsync(service, options);
|
|
79
|
+
}
|
|
51
80
|
/**
|
|
52
81
|
* Handle a request
|
|
53
82
|
* @param request - The request to handle
|
|
@@ -61,15 +90,22 @@ class ServerFactory {
|
|
|
61
90
|
// Bind the current request to the container for this request lifecycle
|
|
62
91
|
(0, request_1.bindRequest)(this.container, request);
|
|
63
92
|
const { pathname, method } = this._parseRequest(request);
|
|
64
|
-
const
|
|
65
|
-
controller = await this.container.getAsync(
|
|
66
|
-
const handler = this._fetchHandler(controller,
|
|
93
|
+
const match = this._fetchRoute(pathname, method);
|
|
94
|
+
controller = await this.container.getAsync(match?.controller);
|
|
95
|
+
const handler = this._fetchHandler(controller, match?.methodName);
|
|
67
96
|
const executionContext = new execution_context_1.ExecutionContext(controller.constructor, handler, [request]);
|
|
68
97
|
// Check if there's any interceptors to execute
|
|
69
98
|
const interceptors = await this._fetchInterceptors(controller);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
99
|
+
// Check if there's any pipes to execute
|
|
100
|
+
const pipes = await this._fetchPipes(controller, match?.methodName);
|
|
101
|
+
return await use_interceptor_decorator_1.InterceptorHandler.execute(executionContext, interceptors, async () => {
|
|
102
|
+
// Parse args
|
|
103
|
+
const args = await route_decorator_1.RouteHandler.getArgs(controller, match?.methodName, [request, { params }]);
|
|
104
|
+
// Run registered pipes
|
|
105
|
+
const pipedArgs = await use_pipes_1.PipeHandler.execute(controller, match?.methodName, pipes, args);
|
|
106
|
+
// Execute controller
|
|
107
|
+
return await handler.call(controller, ...pipedArgs);
|
|
108
|
+
});
|
|
73
109
|
}
|
|
74
110
|
catch (error) {
|
|
75
111
|
const filters = await this._fetchExceptionFilters(controller);
|
|
@@ -101,7 +137,15 @@ class ServerFactory {
|
|
|
101
137
|
*/
|
|
102
138
|
_parseRequest(request) {
|
|
103
139
|
const { pathname } = new URL(request.url);
|
|
104
|
-
|
|
140
|
+
// Strip the global prefix from the pathname
|
|
141
|
+
let strippedPathname = pathname;
|
|
142
|
+
if (this.globalPrefix && pathname.startsWith(this.globalPrefix)) {
|
|
143
|
+
strippedPathname = pathname.slice(this.globalPrefix.length);
|
|
144
|
+
}
|
|
145
|
+
// Ensure pathname starts with / after stripping prefix
|
|
146
|
+
if (!strippedPathname.startsWith('/')) {
|
|
147
|
+
strippedPathname = '/' + strippedPathname;
|
|
148
|
+
}
|
|
105
149
|
return {
|
|
106
150
|
pathname: strippedPathname,
|
|
107
151
|
method: request.method.toUpperCase()
|
|
@@ -128,23 +172,19 @@ class ServerFactory {
|
|
|
128
172
|
}
|
|
129
173
|
async _fetchInterceptors(controller) {
|
|
130
174
|
const interceptors = [...this.globalInterceptors];
|
|
131
|
-
// Fetch
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
175
|
+
// Fetch all registered global interceptors
|
|
176
|
+
try {
|
|
177
|
+
const appInterceptors = await this.container.getAllAsync(interceptor_1.APP_INTERCEPTOR);
|
|
178
|
+
if (appInterceptors.length > 0) {
|
|
179
|
+
interceptors.push(...appInterceptors);
|
|
180
|
+
}
|
|
135
181
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return this.container.getAsync(interceptor);
|
|
143
|
-
}
|
|
144
|
-
// If it's an instance, resolve from container using its constructor
|
|
145
|
-
return this.container.getAsync(interceptor.constructor);
|
|
146
|
-
}));
|
|
147
|
-
interceptors.push(...resolvedInterceptors);
|
|
182
|
+
catch {
|
|
183
|
+
// No bindings found or error retrieving - continue without APP_INTERCEPTOR providers
|
|
184
|
+
}
|
|
185
|
+
if (controller) {
|
|
186
|
+
// Fetch controller interceptors
|
|
187
|
+
interceptors.push(...(await use_interceptor_decorator_1.InterceptorHandler.fetch(this.container, controller)));
|
|
148
188
|
}
|
|
149
189
|
return interceptors.reverse();
|
|
150
190
|
}
|
|
@@ -158,20 +198,45 @@ class ServerFactory {
|
|
|
158
198
|
}
|
|
159
199
|
async _fetchExceptionFilters(controller) {
|
|
160
200
|
const filters = [...this.globalFilters];
|
|
161
|
-
// Fetch
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
201
|
+
// Fetch all registered global filters
|
|
202
|
+
try {
|
|
203
|
+
const appFilters = await this.container.getAllAsync(filters_1.APP_FILTER);
|
|
204
|
+
if (appFilters.length > 0) {
|
|
205
|
+
filters.push(...appFilters);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
// No bindings found or error retrieving - continue without APP_FILTER providers
|
|
165
210
|
}
|
|
166
211
|
if (controller) {
|
|
167
|
-
|
|
168
|
-
const controllerFilters = (0, use_filters_decorator_1.filterHandler)(controller.constructor);
|
|
169
|
-
if (controllerFilters.length > 0) {
|
|
170
|
-
filters.push(...controllerFilters);
|
|
171
|
-
}
|
|
212
|
+
filters.push(...(await use_filters_decorator_1.FilterHandler.fetch(this.container, controller)));
|
|
172
213
|
}
|
|
173
214
|
return filters.reverse();
|
|
174
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Fetch the pipes for a controller method
|
|
218
|
+
* @param controller
|
|
219
|
+
* @param methodName
|
|
220
|
+
* @returns
|
|
221
|
+
*/
|
|
222
|
+
async _fetchPipes(controller, methodName) {
|
|
223
|
+
const pipes = [...this.globalPipes];
|
|
224
|
+
// Fetch all registered global pipes
|
|
225
|
+
try {
|
|
226
|
+
const appPipes = await this.container.getAllAsync(pipes_1.APP_PIPE);
|
|
227
|
+
if (appPipes.length > 0) {
|
|
228
|
+
pipes.push(...appPipes);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
// No bindings found or error retrieving - continue without APP_PIPE providers
|
|
233
|
+
}
|
|
234
|
+
// Fetch controller pipes
|
|
235
|
+
if (controller) {
|
|
236
|
+
pipes.push(...(await use_pipes_1.PipeHandler.fetch(this.container, controller, methodName)));
|
|
237
|
+
}
|
|
238
|
+
return pipes.reverse();
|
|
239
|
+
}
|
|
175
240
|
}
|
|
176
241
|
exports.ServerFactory = ServerFactory;
|
|
177
242
|
//# sourceMappingURL=server-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-factory.js","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":";;;AAAA,6DAAwD;AACxD,mEAA8D;AAC9D,2CAAkD;AAElD,gEAA4D;AAC5D,8EAAwE;AACxE,6EAAsE;AACtE,yFAA6E;AAE7E,
|
|
1
|
+
{"version":3,"file":"server-factory.js","sourceRoot":"","sources":["../../src/server/server-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ export interface FetchModuleOptions extends RequestInit {
|
|
|
10
10
|
*/
|
|
11
11
|
export declare abstract class HttpService {
|
|
12
12
|
protected request<T>(request: Request): Promise<T>;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
protected createRequest(url: URL | string, options: FetchModuleOptions): Promise<Request>;
|
|
14
|
+
protected createRequestFormData(url: URL | string, options: FetchModuleOptions): Promise<Request>;
|
|
15
15
|
protected createDefaults(): Promise<{}>;
|
|
16
16
|
/**
|
|
17
17
|
* Event triggered before the request is sent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-service.d.ts","sourceRoot":"","sources":["../../src/services/http-service.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,WAAW;cACf,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"http-service.d.ts","sourceRoot":"","sources":["../../src/services/http-service.ts"],"names":[],"mappings":"AAoBA,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,8BAAsB,WAAW;cACf,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;cA8DxC,aAAa,CAC3B,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC;cAkBH,qBAAqB,CACnC,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,EAAE,kBAAkB;cAwBb,cAAc;IAI9B;;;OAGG;IAEH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO;IAExC;;;;OAIG;IAEH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAE3D;;;;;OAKG;cACa,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG;IAIhE,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAKP,IAAI,CACR,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAQd,MAAM,CACV,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAQd,KAAK,CAAC,CAAC,EACX,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAQP,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAKP,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAQb;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;;;;;;;OAQG;IACG,YAAY,CAAC,CAAC,EAClB,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;IAYb;;;;;;;;OAQG;IACG,aAAa,CAAC,CAAC,EACnB,GAAG,EAAE,GAAG,GAAG,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,CAAC,CAAC;CAWd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-service.js","sourceRoot":"","sources":["../../src/services/http-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-service.js","sourceRoot":"","sources":["../../src/services/http-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipes.d.ts","sourceRoot":"","sources":["../../src/services/pipes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,eAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipes.js","sourceRoot":"","sources":["../../src/services/pipes.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ModuleMetadata } from '../../modules/module-decorator';
|
|
2
|
+
/**
|
|
3
|
+
* Sort routes by specificity (most specific first)
|
|
4
|
+
* Routes with more static segments come before routes with parameters
|
|
5
|
+
* This matches NestJS behavior to ensure routes like:
|
|
6
|
+
* - GET /organizations/:id/ledgers/with-assets (more specific)
|
|
7
|
+
* - GET /organizations/:id/ledgers/:ledgerId (less specific)
|
|
8
|
+
* are matched in the correct order
|
|
9
|
+
*
|
|
10
|
+
* @param routes - Array of route metadata to sort
|
|
11
|
+
* @returns Sorted array with most specific routes first
|
|
12
|
+
*/
|
|
13
|
+
export declare function sortRoutesBySpecificity(routes: ModuleMetadata[]): ModuleMetadata[];
|
|
14
|
+
/**
|
|
15
|
+
* Calculate specificity score for a route path
|
|
16
|
+
* Higher score = more specific route
|
|
17
|
+
*
|
|
18
|
+
* This algorithm is based on the route-sort library by Luke Edwards
|
|
19
|
+
* https://github.com/lukeed/route-sort
|
|
20
|
+
*
|
|
21
|
+
* Segment Values (lower = more specific):
|
|
22
|
+
* - Static segment: 1
|
|
23
|
+
* - Parameter (:id): 111
|
|
24
|
+
* - Parameter with suffix (:id.format): 11
|
|
25
|
+
* - Optional parameter (:id?): 1111
|
|
26
|
+
* - Wildcard (*): 100000000000 (1e11)
|
|
27
|
+
*
|
|
28
|
+
* Rank = (segment_count - 1) / sum_of_segment_values
|
|
29
|
+
* Higher rank = more specific route
|
|
30
|
+
*
|
|
31
|
+
* Examples:
|
|
32
|
+
* - /users/active (2 static) = 1 / 2 = 0.5
|
|
33
|
+
* - /users/:id (1 static + 1 param) = 1 / 112 = ~0.0089
|
|
34
|
+
* - /users/* (1 static + 1 wildcard) = 1 / 100000000001 = ~1e-11
|
|
35
|
+
*
|
|
36
|
+
* @param path - The route path to score
|
|
37
|
+
* @returns Specificity score (higher = more specific)
|
|
38
|
+
*/
|
|
39
|
+
export declare function calculateRouteSpecificity(path: string): number;
|
|
40
|
+
//# sourceMappingURL=route-specificity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-specificity.d.ts","sourceRoot":"","sources":["../../../src/utils/routes/route-specificity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE3D;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EAAE,GACvB,cAAc,EAAE,CAMlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB9D"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortRoutesBySpecificity = sortRoutesBySpecificity;
|
|
4
|
+
exports.calculateRouteSpecificity = calculateRouteSpecificity;
|
|
5
|
+
/**
|
|
6
|
+
* Sort routes by specificity (most specific first)
|
|
7
|
+
* Routes with more static segments come before routes with parameters
|
|
8
|
+
* This matches NestJS behavior to ensure routes like:
|
|
9
|
+
* - GET /organizations/:id/ledgers/with-assets (more specific)
|
|
10
|
+
* - GET /organizations/:id/ledgers/:ledgerId (less specific)
|
|
11
|
+
* are matched in the correct order
|
|
12
|
+
*
|
|
13
|
+
* @param routes - Array of route metadata to sort
|
|
14
|
+
* @returns Sorted array with most specific routes first
|
|
15
|
+
*/
|
|
16
|
+
function sortRoutesBySpecificity(routes) {
|
|
17
|
+
return [...routes].sort((a, b) => {
|
|
18
|
+
const aScore = calculateRouteSpecificity(a.path);
|
|
19
|
+
const bScore = calculateRouteSpecificity(b.path);
|
|
20
|
+
return bScore - aScore; // Higher score = more specific = comes first
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Calculate specificity score for a route path
|
|
25
|
+
* Higher score = more specific route
|
|
26
|
+
*
|
|
27
|
+
* This algorithm is based on the route-sort library by Luke Edwards
|
|
28
|
+
* https://github.com/lukeed/route-sort
|
|
29
|
+
*
|
|
30
|
+
* Segment Values (lower = more specific):
|
|
31
|
+
* - Static segment: 1
|
|
32
|
+
* - Parameter (:id): 111
|
|
33
|
+
* - Parameter with suffix (:id.format): 11
|
|
34
|
+
* - Optional parameter (:id?): 1111
|
|
35
|
+
* - Wildcard (*): 100000000000 (1e11)
|
|
36
|
+
*
|
|
37
|
+
* Rank = (segment_count - 1) / sum_of_segment_values
|
|
38
|
+
* Higher rank = more specific route
|
|
39
|
+
*
|
|
40
|
+
* Examples:
|
|
41
|
+
* - /users/active (2 static) = 1 / 2 = 0.5
|
|
42
|
+
* - /users/:id (1 static + 1 param) = 1 / 112 = ~0.0089
|
|
43
|
+
* - /users/* (1 static + 1 wildcard) = 1 / 100000000001 = ~1e-11
|
|
44
|
+
*
|
|
45
|
+
* @param path - The route path to score
|
|
46
|
+
* @returns Specificity score (higher = more specific)
|
|
47
|
+
*/
|
|
48
|
+
function calculateRouteSpecificity(path) {
|
|
49
|
+
const segments = path.split('/').filter((s) => s.length > 0);
|
|
50
|
+
if (segments.length === 0) {
|
|
51
|
+
// Root path is treated as a static route
|
|
52
|
+
return 1;
|
|
53
|
+
}
|
|
54
|
+
let totalValue = 0;
|
|
55
|
+
for (const segment of segments) {
|
|
56
|
+
totalValue += getSegmentValue(segment);
|
|
57
|
+
}
|
|
58
|
+
// Calculate rank: (segment_count - 1) / total_value
|
|
59
|
+
// Higher rank = more specific
|
|
60
|
+
return (segments.length - 1) / totalValue;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get numeric value for a route segment
|
|
64
|
+
* Lower value = more specific
|
|
65
|
+
*
|
|
66
|
+
* @param segment - Route segment to evaluate
|
|
67
|
+
* @returns Numeric value representing specificity
|
|
68
|
+
*/
|
|
69
|
+
function getSegmentValue(segment) {
|
|
70
|
+
// Wildcard
|
|
71
|
+
if (segment === '*') {
|
|
72
|
+
return 1e11;
|
|
73
|
+
}
|
|
74
|
+
// Optional parameter (:id?)
|
|
75
|
+
if (/^:.*\?$/.test(segment)) {
|
|
76
|
+
return 1111;
|
|
77
|
+
}
|
|
78
|
+
// Parameter with suffix (:id.format)
|
|
79
|
+
if (/^:.*\./.test(segment)) {
|
|
80
|
+
return 11;
|
|
81
|
+
}
|
|
82
|
+
// Regular parameter (:id)
|
|
83
|
+
if (segment.startsWith(':')) {
|
|
84
|
+
return 111;
|
|
85
|
+
}
|
|
86
|
+
// Static segment
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=route-specificity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-specificity.js","sourceRoot":"","sources":["../../../src/utils/routes/route-specificity.ts"],"names":[],"mappings":";;AAaA,0DAQC;AA2BD,8DAiBC;AA/DD;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CACrC,MAAwB;IAExB,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAChD,OAAO,MAAM,GAAG,MAAM,CAAA,CAAC,6CAA6C;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,yBAAyB,CAAC,IAAY;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAE5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,yCAAyC;QACzC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,UAAU,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,oDAAoD;IACpD,8BAA8B;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,WAAW;IACX,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4BAA4B;IAC5B,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,iBAAiB;IACjB,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-match.d.ts","sourceRoot":"","sources":["../../../src/utils/url/url-match.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"url-match.d.ts","sourceRoot":"","sources":["../../../src/utils/url/url-match.ts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAOvD"}
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.urlMatch = urlMatch;
|
|
4
4
|
const path_to_regexp_1 = require("path-to-regexp");
|
|
5
|
+
/**
|
|
6
|
+
* Normalize a path by removing trailing slashes (except for root path)
|
|
7
|
+
* @param path - The path to normalize
|
|
8
|
+
* @returns The normalized path
|
|
9
|
+
*/
|
|
10
|
+
function normalizePath(path) {
|
|
11
|
+
if (path === '/' || path === '') {
|
|
12
|
+
return path;
|
|
13
|
+
}
|
|
14
|
+
return path.endsWith('/') ? path.slice(0, -1) : path;
|
|
15
|
+
}
|
|
5
16
|
/**
|
|
6
17
|
* Check if a pathname matches a route
|
|
7
18
|
* @param pathname - The pathname to check
|
|
@@ -9,7 +20,10 @@ const path_to_regexp_1 = require("path-to-regexp");
|
|
|
9
20
|
* @returns True if the pathname matches the route, false otherwise
|
|
10
21
|
*/
|
|
11
22
|
function urlMatch(pathname, route) {
|
|
12
|
-
|
|
13
|
-
|
|
23
|
+
// Normalize both paths to handle Next.js trailingSlash configuration
|
|
24
|
+
const normalizedPathname = normalizePath(pathname);
|
|
25
|
+
const normalizedRoute = normalizePath(route);
|
|
26
|
+
const { regexp } = (0, path_to_regexp_1.pathToRegexp)(normalizedRoute);
|
|
27
|
+
return regexp.test(normalizedPathname);
|
|
14
28
|
}
|
|
15
29
|
//# sourceMappingURL=url-match.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-match.js","sourceRoot":"","sources":["../../../src/utils/url/url-match.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"url-match.js","sourceRoot":"","sources":["../../../src/utils/url/url-match.ts"],"names":[],"mappings":";;AAoBA,4BAOC;AA3BD,mDAA6C;AAE7C;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACtD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,QAAgB,EAAE,KAAa;IACtD,qEAAqE;IACrE,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;IAClD,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAE5C,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,6BAAY,EAAC,eAAe,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type * as z3 from 'zod/v3';
|
|
2
|
+
import { $ZodType } from 'zod/v4/core/index.cjs';
|
|
3
|
+
export interface UnknownSchema {
|
|
4
|
+
parse(input: unknown): unknown;
|
|
5
|
+
array?: () => UnknownSchema;
|
|
6
|
+
}
|
|
7
|
+
export interface ZodDto<TSchema extends UnknownSchema> {
|
|
8
|
+
new (): ReturnType<TSchema['parse']>;
|
|
9
|
+
isZodDto: true;
|
|
10
|
+
schema: TSchema;
|
|
11
|
+
create(input: unknown): ReturnType<TSchema['parse']>;
|
|
12
|
+
}
|
|
13
|
+
export declare function createZodDto<TSchema extends UnknownSchema | z3.ZodTypeAny | ($ZodType & {
|
|
14
|
+
parse: (input: unknown) => unknown;
|
|
15
|
+
})>(schema: TSchema): ZodDto<TSchema>;
|
|
16
|
+
//# sourceMappingURL=create-zod-dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-zod-dto.d.ts","sourceRoot":"","sources":["../../src/zod/create-zod-dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,KAAK,CAAC,EAAE,MAAM,aAAa,CAAA;CAC5B;AAED,MAAM,WAAW,MAAM,CAAC,OAAO,SAAS,aAAa;IACnD,QAAQ,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACpC,QAAQ,EAAE,IAAI,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;CACrD;AAED,wBAAgB,YAAY,CAC1B,OAAO,SACH,aAAa,GACb,EAAE,CAAC,UAAU,GACb,CAAC,QAAQ,GAAG;IAAE,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAA;CAAE,CAAC,EACvD,MAAM,EAAE,OAAO,GAUsB,MAAM,CAAC,OAAO,CAAC,CACrD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createZodDto = createZodDto;
|
|
4
|
+
function createZodDto(schema) {
|
|
5
|
+
class AugmentedZodDto {
|
|
6
|
+
static create(input) {
|
|
7
|
+
return this.schema.parse(input);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
AugmentedZodDto.isZodDto = true;
|
|
11
|
+
AugmentedZodDto.schema = schema;
|
|
12
|
+
return AugmentedZodDto;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=create-zod-dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-zod-dto.js","sourceRoot":"","sources":["../../src/zod/create-zod-dto.ts"],"names":[],"mappings":";;AAeA,oCAgBC;AAhBD,SAAgB,YAAY,CAK1B,MAAe;IACf,MAAM,eAAe;QAIZ,MAAM,CAAC,MAAM,CAAC,KAAc;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,CAAC;;IALsB,wBAAQ,GAAG,IAAI,CAAA;IACf,sBAAM,GAAG,MAAM,CAAA;IAOxC,OAAO,eAA6C,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZodValidationPipe = exports.createZodDto = void 0;
|
|
4
|
+
var create_zod_dto_1 = require("./create-zod-dto");
|
|
5
|
+
Object.defineProperty(exports, "createZodDto", { enumerable: true, get: function () { return create_zod_dto_1.createZodDto; } });
|
|
6
|
+
var zod_validation_pipe_1 = require("./zod-validation-pipe");
|
|
7
|
+
Object.defineProperty(exports, "ZodValidationPipe", { enumerable: true, get: function () { return zod_validation_pipe_1.ZodValidationPipe; } });
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":";;;AAAA,mDAAuD;AAAtC,8GAAA,YAAY,OAAA;AAC7B,6DAAyD;AAAhD,wHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-validation-pipe.d.ts","sourceRoot":"","sources":["../../src/zod/zod-validation-pipe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGxE,qBACa,iBAAkB,YAAW,aAAa;IACrD,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,GAAG,GAAG;CAmBvD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
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;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ZodValidationPipe = void 0;
|
|
10
|
+
const inversify_1 = require("inversify");
|
|
11
|
+
const api_exception_1 = require("../exceptions/api-exception");
|
|
12
|
+
let ZodValidationPipe = class ZodValidationPipe {
|
|
13
|
+
transform(value, metadata) {
|
|
14
|
+
try {
|
|
15
|
+
// Check if the metadata has a metatype
|
|
16
|
+
if (!metadata.metatype) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
const dto = metadata.metatype;
|
|
20
|
+
// Check if the dto is a ZodDto
|
|
21
|
+
if (!dto.isZodDto) {
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
return dto.create(value);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
throw new api_exception_1.ValidationApiException('Validation failed', error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.ZodValidationPipe = ZodValidationPipe;
|
|
32
|
+
exports.ZodValidationPipe = ZodValidationPipe = __decorate([
|
|
33
|
+
(0, inversify_1.injectable)()
|
|
34
|
+
], ZodValidationPipe);
|
|
35
|
+
//# sourceMappingURL=zod-validation-pipe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-validation-pipe.js","sourceRoot":"","sources":["../../src/zod/zod-validation-pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,yCAAsC;AAGtC,8DAAmE;AAG5D,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,SAAS,CAAC,KAAU,EAAE,QAA0B;QAC9C,IAAI,CAAC;YACH,uCAAuC;YACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAA;YACd,CAAC;YAED,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAuB,CAAA;YAE5C,+BAA+B;YAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sCAAsB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;CACF,CAAA;AApBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,sBAAU,GAAE;GACA,iBAAiB,CAoB7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lerianstudio/sindarian-server",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.20",
|
|
4
4
|
"description": "Sindarian Server",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": {
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"files": [
|
|
20
20
|
"dist"
|
|
21
21
|
],
|
|
22
|
+
"exports": {
|
|
23
|
+
".": "./dist/index.js",
|
|
24
|
+
"./zod": "./dist/zod/index.js"
|
|
25
|
+
},
|
|
22
26
|
"scripts": {
|
|
23
27
|
"build": "tsc && npm run build:paths",
|
|
24
28
|
"build:paths": "tsc-alias -p tsconfig.json",
|
|
@@ -29,7 +33,7 @@
|
|
|
29
33
|
},
|
|
30
34
|
"dependencies": {
|
|
31
35
|
"@lerianstudio/lib-logs": ">=1.1.0",
|
|
32
|
-
"path-to-regexp": "^8.
|
|
36
|
+
"path-to-regexp": "^8.3.0"
|
|
33
37
|
},
|
|
34
38
|
"peerDependencies": {
|
|
35
39
|
"inversify": ">=7.7.0",
|