@vercube/core 0.0.23 → 0.0.25

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/dist/index.d.mts CHANGED
@@ -2,6 +2,7 @@ import { Container } from "@vercube/di";
2
2
  import { FastResponse, ServerPlugin } from "srvx";
3
3
  import { LoggerTypes } from "@vercube/logger";
4
4
  import { DotenvOptions } from "c12";
5
+ import { RolldownPluginOption } from "rolldown";
5
6
  import { StandardSchemaV1 } from "@standard-schema/spec";
6
7
 
7
8
  //#region src/Services/Plugins/BasePlugin.d.ts
@@ -70,11 +71,23 @@ declare namespace ConfigTypes {
70
71
  /**
71
72
  * The entry point file for the application build.
72
73
  */
73
- entry?: string;
74
+ entry?: string | string[];
74
75
  /**
75
76
  * Defines to pass to the build.
76
77
  */
77
78
  define?: Record<string, string>;
79
+ /**
80
+ * Path to the tsconfig file to use for the build.
81
+ */
82
+ tsconfig?: string;
83
+ /**
84
+ * Flag to indicate if declaration files should be generated.
85
+ */
86
+ dts?: boolean;
87
+ /**
88
+ * Additional plugins to use in the bundler.
89
+ */
90
+ plugins?: RolldownPluginOption[];
78
91
  /**
79
92
  * Output configuration for build artifacts.
80
93
  */
package/dist/index.mjs CHANGED
@@ -1,4 +1,3 @@
1
- import "node:module";
2
1
  import { BaseDecorator, Container, Inject, InjectOptional, createDecorator, initializeContainer } from "@vercube/di";
3
2
  import { FastResponse, serve } from "srvx";
4
3
  import { addRoute, createRouter, findRoute } from "rou3";
@@ -10,32 +9,6 @@ import { ConsoleProvider } from "@vercube/logger/drivers/ConsoleProvider";
10
9
  import { loadConfig, setupDotenv } from "c12";
11
10
  import { defu } from "defu";
12
11
 
13
- //#region rolldown:runtime
14
- var __create = Object.create;
15
- var __defProp = Object.defineProperty;
16
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
17
- var __getOwnPropNames = Object.getOwnPropertyNames;
18
- var __getProtoOf = Object.getPrototypeOf;
19
- var __hasOwnProp = Object.prototype.hasOwnProperty;
20
- var __commonJS = (cb, mod) => function() {
21
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
22
- };
23
- var __copyProps = (to, from, except, desc) => {
24
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
25
- key = keys[i];
26
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
27
- get: ((k) => from[k]).bind(null, key),
28
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
29
- });
30
- }
31
- return to;
32
- };
33
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
34
- value: mod,
35
- enumerable: true
36
- }) : target, mod));
37
-
38
- //#endregion
39
12
  //#region src/Services/Config/RuntimeConfig.ts
40
13
  /**
41
14
  * RuntimeConfig class manages the runtime configuration for the Vercube application.
@@ -171,7 +144,7 @@ var BadRequestError = class BadRequestError extends HttpError {
171
144
  */
172
145
  async function resolveRequestBody(event) {
173
146
  const text = await event.request.text();
174
- if (!text) return void 0;
147
+ if (!text) return;
175
148
  try {
176
149
  return JSON.parse(text);
177
150
  } catch {
@@ -208,8 +181,7 @@ function getRequestHeaders(event) {
208
181
  * @returns The value of the query parameter if found, null otherwise
209
182
  */
210
183
  function resolveQueryParam(name, event) {
211
- const url = new URL(event.request.url);
212
- return url.searchParams.get(name);
184
+ return new URL(event.request.url).searchParams.get(name);
213
185
  }
214
186
  /**
215
187
  * Resolves all query parameters from the URL of a router event
@@ -255,9 +227,7 @@ var MetadataResolver = class {
255
227
  resolveUrl(params) {
256
228
  const { instance, propertyName, path: rawPath } = params;
257
229
  const metadata = instance.__metadata;
258
- const basePath = (metadata?.__controller?.path ?? "").replace(/\/$/, "");
259
- const cleanPath = rawPath.replace(/^\//, "");
260
- const url = `${basePath}/${cleanPath}`;
230
+ const url = `${(metadata?.__controller?.path ?? "").replace(/\/$/, "")}/${rawPath.replace(/^\//, "")}`;
261
231
  metadata.__methods[propertyName].url = url;
262
232
  return url;
263
233
  }
@@ -313,8 +283,7 @@ var MetadataResolver = class {
313
283
  * @public
314
284
  */
315
285
  resolveMiddlewares(ctx, propertyName) {
316
- const middlewares = ctx?.__metadata?.__middlewares?.filter((m) => m.target === "__global__" || m.target === propertyName) ?? [];
317
- return middlewares.sort((a) => a.target === "__global__" ? -1 : 1);
286
+ return (ctx?.__metadata?.__middlewares?.filter((m) => m.target === "__global__" || m.target === propertyName) ?? []).sort((a) => a.target === "__global__" ? -1 : 1);
318
287
  }
319
288
  };
320
289
 
@@ -364,20 +333,16 @@ var GlobalMiddlewareRegistry = class {
364
333
  };
365
334
 
366
335
  //#endregion
367
- //#region ../../node_modules/.pnpm/@oxc-project+runtime@0.82.3/node_modules/@oxc-project/runtime/src/helpers/decorate.js
368
- var require_decorate = /* @__PURE__ */ __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.82.3/node_modules/@oxc-project/runtime/src/helpers/decorate.js": ((exports, module) => {
369
- function __decorate(decorators, target, key, desc) {
370
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
371
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
372
- 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;
373
- return c > 3 && r && Object.defineProperty(target, key, r), r;
374
- }
375
- module.exports = __decorate, module.exports.__esModule = true, module.exports["default"] = module.exports;
376
- }) });
336
+ //#region \0@oxc-project+runtime@0.94.0/helpers/decorate.js
337
+ function __decorate(decorators, target, key, desc) {
338
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
339
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
340
+ 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;
341
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
342
+ }
377
343
 
378
344
  //#endregion
379
345
  //#region src/Services/Router/RequestHandler.ts
380
- var import_decorate$17 = /* @__PURE__ */ __toESM(require_decorate(), 1);
381
346
  /**
382
347
  * Handles HTTP requests by preparing and executing route handlers with their associated middlewares
383
348
  *
@@ -405,8 +370,7 @@ var RequestHandler = class {
405
370
  const method = this.gMetadataResolver.resolveMethod(prototype, propertyName);
406
371
  const middlewares = this.gMetadataResolver.resolveMiddlewares(prototype, propertyName);
407
372
  const globalMiddlewares = this.gGlobalMiddlewareRegistry.middlewares;
408
- const uniqueMiddlewares = [...middlewares, ...globalMiddlewares].filter((m, index, self) => self.findIndex((t) => t.middleware === m.middleware) === index);
409
- const resolvedMiddlewares = uniqueMiddlewares.map((m) => ({
373
+ const resolvedMiddlewares = [...middlewares, ...globalMiddlewares].filter((m, index, self) => self.findIndex((t) => t.middleware === m.middleware) === index).map((m) => ({
410
374
  ...m,
411
375
  middleware: this.gContainer.resolve(m.middleware)
412
376
  }));
@@ -426,6 +390,50 @@ var RequestHandler = class {
426
390
  };
427
391
  }
428
392
  /**
393
+ * This method processes preflight requests by executing global middlewares
394
+ * and returning an appropriate response. It's typically used for handling CORS.
395
+ *
396
+ * The request handling lifecycle:
397
+ * 1. Execute "before" global middlewares
398
+ * 2. Execute "after" global middlewares
399
+ * 3. Format and return the final response
400
+ *
401
+ * @param request - The incoming HTTP request
402
+ * @returns {Promise<Response>} The HTTP response
403
+ */
404
+ async handlePreflight(request) {
405
+ try {
406
+ let fakeResponse = new FastResponse(void 0, { headers: { "Content-Type": request.headers.get("Content-Type") ?? "application/json" } });
407
+ const middlewares = this.gGlobalMiddlewareRegistry.middlewares.map((m) => ({
408
+ ...m,
409
+ middleware: this.gContainer.resolve(m.middleware)
410
+ }));
411
+ for await (const hook of middlewares) try {
412
+ let hookResponse = await hook.middleware.onRequest?.(request, fakeResponse, {
413
+ middlewareArgs: hook.args,
414
+ methodArgs: []
415
+ });
416
+ if (hookResponse instanceof Response) return hookResponse;
417
+ else if (hookResponse !== null) fakeResponse = this.processOverrideResponse(hookResponse, fakeResponse);
418
+ hookResponse = await hook.middleware.onResponse?.(request, fakeResponse, {
419
+ middlewareArgs: hook.args,
420
+ methodArgs: []
421
+ });
422
+ if (hookResponse instanceof Response) return hookResponse;
423
+ else if (hookResponse !== null) fakeResponse = this.processOverrideResponse(hookResponse, fakeResponse);
424
+ } catch (error) {
425
+ return await Promise.resolve(this.gContainer.get(ErrorHandlerProvider).handleError(error));
426
+ }
427
+ return new Response(null, {
428
+ status: fakeResponse.status ?? 204,
429
+ statusText: fakeResponse.statusText ?? "No Content",
430
+ headers: fakeResponse.headers
431
+ });
432
+ } catch (error) {
433
+ return this.gContainer.get(ErrorHandlerProvider).handleError(error);
434
+ }
435
+ }
436
+ /**
429
437
  * Processes an HTTP request through the middleware chain and route handler
430
438
  *
431
439
  * The request handling lifecycle:
@@ -459,8 +467,7 @@ var RequestHandler = class {
459
467
  });
460
468
  if (hookResponse instanceof Response) return hookResponse;
461
469
  } catch (error) {
462
- const internalError = this.gContainer.get(ErrorHandlerProvider).handleError(error);
463
- if (internalError instanceof Response) return internalError;
470
+ return await Promise.resolve(this.gContainer.get(ErrorHandlerProvider).handleError(error));
464
471
  }
465
472
  for (const action of actions) {
466
473
  const actionResponse = action.handler(request, fakeResponse);
@@ -472,16 +479,15 @@ var RequestHandler = class {
472
479
  const hookResponse = await hook.middleware.onResponse?.(request, fakeResponse, handlerResponse);
473
480
  if (hookResponse !== null) fakeResponse = this.processOverrideResponse(hookResponse, fakeResponse);
474
481
  } catch (error) {
475
- const internalError = this.gContainer.get(ErrorHandlerProvider).handleError(error);
476
- if (internalError instanceof Response) return internalError;
482
+ return await Promise.resolve(this.gContainer.get(ErrorHandlerProvider).handleError(error));
477
483
  }
484
+ if (handlerResponse instanceof Response) return handlerResponse;
478
485
  const body = fakeResponse?.body ?? JSON.stringify(handlerResponse);
479
- const response = new Response(body, {
486
+ return new Response(body, {
480
487
  status: fakeResponse.status ?? 200,
481
488
  statusText: fakeResponse.statusText ?? "OK",
482
489
  headers: fakeResponse.headers
483
490
  });
484
- return response;
485
491
  } catch (error) {
486
492
  return this.gContainer.get(ErrorHandlerProvider).handleError(error);
487
493
  }
@@ -512,9 +518,9 @@ var RequestHandler = class {
512
518
  return fakeResponse;
513
519
  }
514
520
  };
515
- (0, import_decorate$17.default)([Inject(MetadataResolver)], RequestHandler.prototype, "gMetadataResolver", void 0);
516
- (0, import_decorate$17.default)([Inject(Container)], RequestHandler.prototype, "gContainer", void 0);
517
- (0, import_decorate$17.default)([Inject(GlobalMiddlewareRegistry)], RequestHandler.prototype, "gGlobalMiddlewareRegistry", void 0);
521
+ __decorate([Inject(MetadataResolver)], RequestHandler.prototype, "gMetadataResolver", void 0);
522
+ __decorate([Inject(Container)], RequestHandler.prototype, "gContainer", void 0);
523
+ __decorate([Inject(GlobalMiddlewareRegistry)], RequestHandler.prototype, "gGlobalMiddlewareRegistry", void 0);
518
524
 
519
525
  //#endregion
520
526
  //#region src/Hooks/Router/RouterAfterInitHook.ts
@@ -627,8 +633,7 @@ var HooksService = class {
627
633
  const instance = new ClassConstructor();
628
634
  if (data) for (const key of Object.keys(data)) {
629
635
  const rawInstance = instance;
630
- const rawData = data;
631
- rawInstance[key] = rawData[key];
636
+ rawInstance[key] = data[key];
632
637
  }
633
638
  return instance;
634
639
  }
@@ -636,7 +641,6 @@ var HooksService = class {
636
641
 
637
642
  //#endregion
638
643
  //#region src/Services/Router/Router.ts
639
- var import_decorate$16 = /* @__PURE__ */ __toESM(require_decorate(), 1);
640
644
  /**
641
645
  * Router service responsible for managing application routes
642
646
  *
@@ -689,12 +693,12 @@ var Router = class {
689
693
  return findRoute(this.fRouterContext, route.method.toUpperCase(), url);
690
694
  }
691
695
  };
692
- (0, import_decorate$16.default)([Inject(HooksService)], Router.prototype, "gHooksService", void 0);
696
+ __decorate([Inject(HooksService)], Router.prototype, "gHooksService", void 0);
693
697
 
694
698
  //#endregion
695
699
  //#region src/Utils/Mine.ts
696
700
  const mime = { getType(ext) {
697
- const types = {
701
+ return {
698
702
  ".html": "text/html",
699
703
  ".css": "text/css",
700
704
  ".js": "application/javascript",
@@ -705,8 +709,7 @@ const mime = { getType(ext) {
705
709
  ".gif": "image/gif",
706
710
  ".svg": "image/svg+xml",
707
711
  ".ico": "image/x-icon"
708
- };
709
- return types[ext] || null;
712
+ }[ext] || null;
710
713
  } };
711
714
 
712
715
  //#endregion
@@ -744,9 +747,7 @@ var StaticRequestHandler = class {
744
747
  const dirs = this.fOptions?.dirs ?? [];
745
748
  if (!dirs) return;
746
749
  if (request.method !== "GET") return;
747
- const url = new URL(request.url);
748
- const path = normalize(url.pathname);
749
- let relativePath = path;
750
+ let relativePath = normalize(new URL(request.url).pathname);
750
751
  for (const dir of dirs) relativePath = relativePath.replace(dir, "");
751
752
  for (const dir of dirs) {
752
753
  const fullPath = join(process.cwd(), dir, relativePath);
@@ -785,7 +786,6 @@ var StaticRequestHandler = class {
785
786
 
786
787
  //#endregion
787
788
  //#region src/Services/HttpServer/HttpServer.ts
788
- var import_decorate$15 = /* @__PURE__ */ __toESM(require_decorate(), 1);
789
789
  /**
790
790
  * HTTP server implementation for handling incoming web requests
791
791
  *
@@ -879,6 +879,7 @@ var HttpServer = class {
879
879
  path: request.url,
880
880
  method: request.method
881
881
  });
882
+ if (!route && request.method === "OPTIONS") return this.gRequestHandler.handlePreflight(request);
882
883
  if (!route) {
883
884
  const response = await this.gStaticRequestHandler.handleRequest(request);
884
885
  if (response) return response;
@@ -890,10 +891,10 @@ var HttpServer = class {
890
891
  }
891
892
  }
892
893
  };
893
- (0, import_decorate$15.default)([Inject(Container)], HttpServer.prototype, "gContainer", void 0);
894
- (0, import_decorate$15.default)([Inject(Router)], HttpServer.prototype, "gRouter", void 0);
895
- (0, import_decorate$15.default)([Inject(RequestHandler)], HttpServer.prototype, "gRequestHandler", void 0);
896
- (0, import_decorate$15.default)([Inject(StaticRequestHandler)], HttpServer.prototype, "gStaticRequestHandler", void 0);
894
+ __decorate([Inject(Container)], HttpServer.prototype, "gContainer", void 0);
895
+ __decorate([Inject(Router)], HttpServer.prototype, "gRouter", void 0);
896
+ __decorate([Inject(RequestHandler)], HttpServer.prototype, "gRequestHandler", void 0);
897
+ __decorate([Inject(StaticRequestHandler)], HttpServer.prototype, "gStaticRequestHandler", void 0);
897
898
 
898
899
  //#endregion
899
900
  //#region src/Services/Plugins/BasePlugin.ts
@@ -915,7 +916,6 @@ var BasePlugin = class {
915
916
 
916
917
  //#endregion
917
918
  //#region src/Services/Plugins/PluginsRegistry.ts
918
- var import_decorate$14 = /* @__PURE__ */ __toESM(require_decorate(), 1);
919
919
  var PluginsRegistry = class {
920
920
  gContainer;
921
921
  /** Holds the list of plugins */
@@ -951,11 +951,10 @@ var PluginsRegistry = class {
951
951
  for (const { instance, options } of this.fPlugins.values()) await instance.use(app, options);
952
952
  }
953
953
  };
954
- (0, import_decorate$14.default)([Inject(Container)], PluginsRegistry.prototype, "gContainer", void 0);
954
+ __decorate([Inject(Container)], PluginsRegistry.prototype, "gContainer", void 0);
955
955
 
956
956
  //#endregion
957
957
  //#region src/Common/App.ts
958
- var import_decorate$13 = /* @__PURE__ */ __toESM(require_decorate(), 1);
959
958
  /**
960
959
  * Represents the main application class.
961
960
  */
@@ -1051,11 +1050,11 @@ var App = class {
1051
1050
  await this.gPluginsRegistry.init(this);
1052
1051
  }
1053
1052
  };
1054
- (0, import_decorate$13.default)([Inject(Router)], App.prototype, "gRouter", void 0);
1055
- (0, import_decorate$13.default)([Inject(PluginsRegistry)], App.prototype, "gPluginsRegistry", void 0);
1056
- (0, import_decorate$13.default)([Inject(HttpServer)], App.prototype, "gHttpServer", void 0);
1057
- (0, import_decorate$13.default)([Inject(StaticRequestHandler)], App.prototype, "gStaticRequestHandler", void 0);
1058
- (0, import_decorate$13.default)([Inject(RuntimeConfig)], App.prototype, "gRuntimeConfig", void 0);
1053
+ __decorate([Inject(Router)], App.prototype, "gRouter", void 0);
1054
+ __decorate([Inject(PluginsRegistry)], App.prototype, "gPluginsRegistry", void 0);
1055
+ __decorate([Inject(HttpServer)], App.prototype, "gHttpServer", void 0);
1056
+ __decorate([Inject(StaticRequestHandler)], App.prototype, "gStaticRequestHandler", void 0);
1057
+ __decorate([Inject(RuntimeConfig)], App.prototype, "gRuntimeConfig", void 0);
1059
1058
 
1060
1059
  //#endregion
1061
1060
  //#region src/Errors/Http/InternalServerError.ts
@@ -1082,7 +1081,6 @@ var InternalServerError = class InternalServerError extends HttpError {
1082
1081
 
1083
1082
  //#endregion
1084
1083
  //#region src/Services/ErrorHandler/DefaultErrorHandlerProvider.ts
1085
- var import_decorate$12 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1086
1084
  /**
1087
1085
  * Default error handler provider
1088
1086
  *
@@ -1104,7 +1102,7 @@ var DefaultErrorHandlerProvider = class extends ErrorHandlerProvider {
1104
1102
  return new FastResponse(JSON.stringify({ ...error?.cause ?? _internalError }, void 0, 2), { status });
1105
1103
  }
1106
1104
  };
1107
- (0, import_decorate$12.default)([Inject(Logger)], DefaultErrorHandlerProvider.prototype, "gLogger", void 0);
1105
+ __decorate([Inject(Logger)], DefaultErrorHandlerProvider.prototype, "gLogger", void 0);
1108
1106
 
1109
1107
  //#endregion
1110
1108
  //#region src/Services/Validation/ValidationProvider.ts
@@ -1266,7 +1264,6 @@ function defineConfig(config) {
1266
1264
 
1267
1265
  //#endregion
1268
1266
  //#region src/Middleware/ValidationMiddleware.ts
1269
- var import_decorate$11 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1270
1267
  /**
1271
1268
  * Middleware for validating request data against a schema
1272
1269
  * @class ValidationMiddleware
@@ -1299,8 +1296,8 @@ var ValidationMiddleware = class {
1299
1296
  }
1300
1297
  }
1301
1298
  };
1302
- (0, import_decorate$11.default)([InjectOptional(Logger)], ValidationMiddleware.prototype, "gLogger", void 0);
1303
- (0, import_decorate$11.default)([InjectOptional(ValidationProvider)], ValidationMiddleware.prototype, "gValidationProvider", void 0);
1299
+ __decorate([InjectOptional(Logger)], ValidationMiddleware.prototype, "gLogger", void 0);
1300
+ __decorate([InjectOptional(ValidationProvider)], ValidationMiddleware.prototype, "gValidationProvider", void 0);
1304
1301
 
1305
1302
  //#endregion
1306
1303
  //#region src/Utils/Utils.ts
@@ -1366,8 +1363,7 @@ var BodyDecorator = class extends BaseDecorator {
1366
1363
  */
1367
1364
  created() {
1368
1365
  const meta = initializeMetadata(this.prototype);
1369
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
1370
- method.args.push({
1366
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
1371
1367
  idx: this.propertyIndex,
1372
1368
  type: "body",
1373
1369
  validate: this.options?.validationSchema ? true : false,
@@ -1396,7 +1392,6 @@ function Body(options) {
1396
1392
 
1397
1393
  //#endregion
1398
1394
  //#region src/Decorators/Http/Connect.ts
1399
- var import_decorate$10 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1400
1395
  /**
1401
1396
  * A decorator class for handling HTTP CONNECT requests.
1402
1397
  *
@@ -1435,9 +1430,9 @@ var ConnectDecorator = class extends BaseDecorator {
1435
1430
  });
1436
1431
  }
1437
1432
  };
1438
- (0, import_decorate$10.default)([Inject(Router)], ConnectDecorator.prototype, "gRouter", void 0);
1439
- (0, import_decorate$10.default)([Inject(RequestHandler)], ConnectDecorator.prototype, "gRequestHandler", void 0);
1440
- (0, import_decorate$10.default)([Inject(MetadataResolver)], ConnectDecorator.prototype, "gMetadataResolver", void 0);
1433
+ __decorate([Inject(Router)], ConnectDecorator.prototype, "gRouter", void 0);
1434
+ __decorate([Inject(RequestHandler)], ConnectDecorator.prototype, "gRequestHandler", void 0);
1435
+ __decorate([Inject(MetadataResolver)], ConnectDecorator.prototype, "gMetadataResolver", void 0);
1441
1436
  /**
1442
1437
  * A factory function for creating a ConnectDecorator.
1443
1438
  *
@@ -1474,7 +1469,6 @@ function Controller(path) {
1474
1469
 
1475
1470
  //#endregion
1476
1471
  //#region src/Decorators/Http/Delete.ts
1477
- var import_decorate$9 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1478
1472
  /**
1479
1473
  * A decorator class for handling HTTP DELETE requests.
1480
1474
  *
@@ -1513,9 +1507,9 @@ var DeleteDecorator = class extends BaseDecorator {
1513
1507
  });
1514
1508
  }
1515
1509
  };
1516
- (0, import_decorate$9.default)([Inject(Router)], DeleteDecorator.prototype, "gRouter", void 0);
1517
- (0, import_decorate$9.default)([Inject(RequestHandler)], DeleteDecorator.prototype, "gRequestHandler", void 0);
1518
- (0, import_decorate$9.default)([Inject(MetadataResolver)], DeleteDecorator.prototype, "gMetadataResolver", void 0);
1510
+ __decorate([Inject(Router)], DeleteDecorator.prototype, "gRouter", void 0);
1511
+ __decorate([Inject(RequestHandler)], DeleteDecorator.prototype, "gRequestHandler", void 0);
1512
+ __decorate([Inject(MetadataResolver)], DeleteDecorator.prototype, "gMetadataResolver", void 0);
1519
1513
  /**
1520
1514
  * A factory function for creating a DeleteDecorator.
1521
1515
  *
@@ -1531,7 +1525,6 @@ function Delete(path) {
1531
1525
 
1532
1526
  //#endregion
1533
1527
  //#region src/Decorators/Http/Get.ts
1534
- var import_decorate$8 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1535
1528
  /**
1536
1529
  * A decorator class for handling HTTP GET requests.
1537
1530
  *
@@ -1570,9 +1563,9 @@ var GetDecorator = class extends BaseDecorator {
1570
1563
  });
1571
1564
  }
1572
1565
  };
1573
- (0, import_decorate$8.default)([Inject(Router)], GetDecorator.prototype, "gRouter", void 0);
1574
- (0, import_decorate$8.default)([Inject(RequestHandler)], GetDecorator.prototype, "gRequestHandler", void 0);
1575
- (0, import_decorate$8.default)([Inject(MetadataResolver)], GetDecorator.prototype, "gMetadataResolver", void 0);
1566
+ __decorate([Inject(Router)], GetDecorator.prototype, "gRouter", void 0);
1567
+ __decorate([Inject(RequestHandler)], GetDecorator.prototype, "gRequestHandler", void 0);
1568
+ __decorate([Inject(MetadataResolver)], GetDecorator.prototype, "gMetadataResolver", void 0);
1576
1569
  /**
1577
1570
  * A decorator function for handling HTTP GET requests.
1578
1571
  *
@@ -1588,7 +1581,6 @@ function Get(path) {
1588
1581
 
1589
1582
  //#endregion
1590
1583
  //#region src/Decorators/Http/Head.ts
1591
- var import_decorate$7 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1592
1584
  /**
1593
1585
  * A decorator class for handling HTTP HEAD requests.
1594
1586
  *
@@ -1627,9 +1619,9 @@ var HeadDecorator = class extends BaseDecorator {
1627
1619
  });
1628
1620
  }
1629
1621
  };
1630
- (0, import_decorate$7.default)([Inject(Router)], HeadDecorator.prototype, "gRouter", void 0);
1631
- (0, import_decorate$7.default)([Inject(RequestHandler)], HeadDecorator.prototype, "gRequestHandler", void 0);
1632
- (0, import_decorate$7.default)([Inject(MetadataResolver)], HeadDecorator.prototype, "gMetadataResolver", void 0);
1622
+ __decorate([Inject(Router)], HeadDecorator.prototype, "gRouter", void 0);
1623
+ __decorate([Inject(RequestHandler)], HeadDecorator.prototype, "gRequestHandler", void 0);
1624
+ __decorate([Inject(MetadataResolver)], HeadDecorator.prototype, "gMetadataResolver", void 0);
1633
1625
  /**
1634
1626
  * A factory function for creating a HeadDecorator.
1635
1627
  *
@@ -1663,8 +1655,7 @@ var HeaderDecorator = class extends BaseDecorator {
1663
1655
  */
1664
1656
  created() {
1665
1657
  initializeMetadata(this.prototype);
1666
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
1667
- method.args.push({
1658
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
1668
1659
  idx: this.propertyIndex,
1669
1660
  type: "header",
1670
1661
  data: { name: this.options.name }
@@ -1705,8 +1696,7 @@ var HeadersDecorator = class extends BaseDecorator {
1705
1696
  */
1706
1697
  created() {
1707
1698
  initializeMetadata(this.prototype);
1708
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
1709
- method.args.push({
1699
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
1710
1700
  idx: this.propertyIndex,
1711
1701
  type: "headers"
1712
1702
  });
@@ -1726,7 +1716,6 @@ function Headers$1() {
1726
1716
 
1727
1717
  //#endregion
1728
1718
  //#region src/Decorators/Http/Options.ts
1729
- var import_decorate$6 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1730
1719
  /**
1731
1720
  * A decorator class for handling HTTP OPTIONS requests.
1732
1721
  *
@@ -1765,9 +1754,9 @@ var OptionsDecorator = class extends BaseDecorator {
1765
1754
  });
1766
1755
  }
1767
1756
  };
1768
- (0, import_decorate$6.default)([Inject(Router)], OptionsDecorator.prototype, "gRouter", void 0);
1769
- (0, import_decorate$6.default)([Inject(RequestHandler)], OptionsDecorator.prototype, "gRequestHandler", void 0);
1770
- (0, import_decorate$6.default)([Inject(MetadataResolver)], OptionsDecorator.prototype, "gMetadataResolver", void 0);
1757
+ __decorate([Inject(Router)], OptionsDecorator.prototype, "gRouter", void 0);
1758
+ __decorate([Inject(RequestHandler)], OptionsDecorator.prototype, "gRequestHandler", void 0);
1759
+ __decorate([Inject(MetadataResolver)], OptionsDecorator.prototype, "gMetadataResolver", void 0);
1771
1760
  /**
1772
1761
  * A factory function for creating an OptionsDecorator.
1773
1762
  *
@@ -1783,7 +1772,6 @@ function Options(path) {
1783
1772
 
1784
1773
  //#endregion
1785
1774
  //#region src/Decorators/Http/Param.ts
1786
- var import_decorate$5 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1787
1775
  /**
1788
1776
  * This class is responsible for managing parameter decorators.
1789
1777
  *
@@ -1803,15 +1791,14 @@ var ParamDecorator = class extends BaseDecorator {
1803
1791
  */
1804
1792
  created() {
1805
1793
  initializeMetadata(this.prototype);
1806
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
1807
- method.args.push({
1794
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
1808
1795
  idx: this.propertyIndex,
1809
1796
  type: "param",
1810
1797
  data: { name: this.options.name }
1811
1798
  });
1812
1799
  }
1813
1800
  };
1814
- (0, import_decorate$5.default)([Inject(MetadataResolver)], ParamDecorator.prototype, "gMetadataResolver", void 0);
1801
+ __decorate([Inject(MetadataResolver)], ParamDecorator.prototype, "gMetadataResolver", void 0);
1815
1802
  /**
1816
1803
  * A factory function for creating a ParamDecorator.
1817
1804
  *
@@ -1829,7 +1816,6 @@ function Param(name) {
1829
1816
 
1830
1817
  //#endregion
1831
1818
  //#region src/Decorators/Http/Patch.ts
1832
- var import_decorate$4 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1833
1819
  /**
1834
1820
  * A decorator class for handling HTTP PATCH requests.
1835
1821
  *
@@ -1868,9 +1854,9 @@ var PatchDecorator = class extends BaseDecorator {
1868
1854
  });
1869
1855
  }
1870
1856
  };
1871
- (0, import_decorate$4.default)([Inject(Router)], PatchDecorator.prototype, "gRouter", void 0);
1872
- (0, import_decorate$4.default)([Inject(RequestHandler)], PatchDecorator.prototype, "gRequestHandler", void 0);
1873
- (0, import_decorate$4.default)([Inject(MetadataResolver)], PatchDecorator.prototype, "gMetadataResolver", void 0);
1857
+ __decorate([Inject(Router)], PatchDecorator.prototype, "gRouter", void 0);
1858
+ __decorate([Inject(RequestHandler)], PatchDecorator.prototype, "gRequestHandler", void 0);
1859
+ __decorate([Inject(MetadataResolver)], PatchDecorator.prototype, "gMetadataResolver", void 0);
1874
1860
  /**
1875
1861
  * A factory function for creating a PatchDecorator.
1876
1862
  *
@@ -1886,7 +1872,6 @@ function Patch(path) {
1886
1872
 
1887
1873
  //#endregion
1888
1874
  //#region src/Decorators/Http/Post.ts
1889
- var import_decorate$3 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1890
1875
  /**
1891
1876
  * A decorator class for handling HTTP POST requests.
1892
1877
  *
@@ -1925,9 +1910,9 @@ var PostDecorator = class extends BaseDecorator {
1925
1910
  });
1926
1911
  }
1927
1912
  };
1928
- (0, import_decorate$3.default)([Inject(Router)], PostDecorator.prototype, "gRouter", void 0);
1929
- (0, import_decorate$3.default)([Inject(MetadataResolver)], PostDecorator.prototype, "gMetadataResolver", void 0);
1930
- (0, import_decorate$3.default)([Inject(RequestHandler)], PostDecorator.prototype, "gRequestHandler", void 0);
1913
+ __decorate([Inject(Router)], PostDecorator.prototype, "gRouter", void 0);
1914
+ __decorate([Inject(MetadataResolver)], PostDecorator.prototype, "gMetadataResolver", void 0);
1915
+ __decorate([Inject(RequestHandler)], PostDecorator.prototype, "gRequestHandler", void 0);
1931
1916
  /**
1932
1917
  * A factory function for creating a PostDecorator.
1933
1918
  *
@@ -1943,7 +1928,6 @@ function Post(path) {
1943
1928
 
1944
1929
  //#endregion
1945
1930
  //#region src/Decorators/Http/Put.ts
1946
- var import_decorate$2 = /* @__PURE__ */ __toESM(require_decorate(), 1);
1947
1931
  /**
1948
1932
  * A decorator class for handling HTTP PUT requests.
1949
1933
  *
@@ -1982,9 +1966,9 @@ var PutDecorator = class extends BaseDecorator {
1982
1966
  });
1983
1967
  }
1984
1968
  };
1985
- (0, import_decorate$2.default)([Inject(Router)], PutDecorator.prototype, "gRouter", void 0);
1986
- (0, import_decorate$2.default)([Inject(RequestHandler)], PutDecorator.prototype, "gRequestHandler", void 0);
1987
- (0, import_decorate$2.default)([Inject(MetadataResolver)], PutDecorator.prototype, "gMetadataResolver", void 0);
1969
+ __decorate([Inject(Router)], PutDecorator.prototype, "gRouter", void 0);
1970
+ __decorate([Inject(RequestHandler)], PutDecorator.prototype, "gRequestHandler", void 0);
1971
+ __decorate([Inject(MetadataResolver)], PutDecorator.prototype, "gMetadataResolver", void 0);
1988
1972
  /**
1989
1973
  * A factory function for creating a PutDecorator.
1990
1974
  *
@@ -2018,8 +2002,7 @@ var QueryParamDecorator = class extends BaseDecorator {
2018
2002
  */
2019
2003
  created() {
2020
2004
  const meta = initializeMetadata(this.prototype);
2021
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2022
- method.args.push({
2005
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
2023
2006
  idx: this.propertyIndex,
2024
2007
  type: "query-param",
2025
2008
  data: { name: this.options.name },
@@ -2067,8 +2050,7 @@ var QueryParamsDecorator = class extends BaseDecorator {
2067
2050
  */
2068
2051
  created() {
2069
2052
  const meta = initializeMetadata(this.prototype);
2070
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2071
- method.args.push({
2053
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
2072
2054
  idx: this.propertyIndex,
2073
2055
  type: "query-params",
2074
2056
  data: {},
@@ -2116,8 +2098,7 @@ var RequestDecorator = class extends BaseDecorator {
2116
2098
  */
2117
2099
  created() {
2118
2100
  initializeMetadata(this.prototype);
2119
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2120
- method.args.push({
2101
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
2121
2102
  idx: this.propertyIndex,
2122
2103
  type: "request"
2123
2104
  });
@@ -2155,8 +2136,7 @@ var ResponseDecorator = class extends BaseDecorator {
2155
2136
  */
2156
2137
  created() {
2157
2138
  initializeMetadata(this.prototype);
2158
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2159
- method.args.push({
2139
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
2160
2140
  idx: this.propertyIndex,
2161
2141
  type: "response"
2162
2142
  });
@@ -2176,7 +2156,6 @@ function Response$1() {
2176
2156
 
2177
2157
  //#endregion
2178
2158
  //#region src/Decorators/Http/Trace.ts
2179
- var import_decorate$1 = /* @__PURE__ */ __toESM(require_decorate(), 1);
2180
2159
  /**
2181
2160
  * A decorator class for handling HTTP TRACE requests.
2182
2161
  *
@@ -2215,9 +2194,9 @@ var TraceDecorator = class extends BaseDecorator {
2215
2194
  });
2216
2195
  }
2217
2196
  };
2218
- (0, import_decorate$1.default)([Inject(Router)], TraceDecorator.prototype, "gRouter", void 0);
2219
- (0, import_decorate$1.default)([Inject(RequestHandler)], TraceDecorator.prototype, "gRequestHandler", void 0);
2220
- (0, import_decorate$1.default)([Inject(MetadataResolver)], TraceDecorator.prototype, "gMetadataResolver", void 0);
2197
+ __decorate([Inject(Router)], TraceDecorator.prototype, "gRouter", void 0);
2198
+ __decorate([Inject(RequestHandler)], TraceDecorator.prototype, "gRequestHandler", void 0);
2199
+ __decorate([Inject(MetadataResolver)], TraceDecorator.prototype, "gMetadataResolver", void 0);
2221
2200
  /**
2222
2201
  * A factory function for creating a TraceDecorator.
2223
2202
  *
@@ -2245,8 +2224,7 @@ var SetHeaderDecorator = class extends BaseDecorator {
2245
2224
  */
2246
2225
  created() {
2247
2226
  initializeMetadata(this.prototype);
2248
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2249
- method.actions.push({ handler: (req, res) => {
2227
+ initializeMetadataMethod(this.prototype, this.propertyName).actions.push({ handler: (req, res) => {
2250
2228
  res.headers.delete(this.options.key);
2251
2229
  res.headers.append(this.options.key, this.options.value);
2252
2230
  return res;
@@ -2347,8 +2325,7 @@ var StatusDecorator = class extends BaseDecorator {
2347
2325
  */
2348
2326
  created() {
2349
2327
  initializeMetadata(this.prototype);
2350
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2351
- method.actions.push({ handler: () => ({ status: this.options.code }) });
2328
+ initializeMetadataMethod(this.prototype, this.propertyName).actions.push({ handler: () => ({ status: this.options.code }) });
2352
2329
  }
2353
2330
  };
2354
2331
  /**
@@ -2371,8 +2348,7 @@ var RedirectDecorator = class extends BaseDecorator {
2371
2348
  */
2372
2349
  created() {
2373
2350
  initializeMetadata(this.prototype);
2374
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2375
- method.actions.push({ handler: () => {
2351
+ initializeMetadataMethod(this.prototype, this.propertyName).actions.push({ handler: () => {
2376
2352
  return new FastResponse(void 0, {
2377
2353
  status: this.options.code,
2378
2354
  headers: { Location: this.options.location }
@@ -2419,9 +2395,7 @@ function Redirect(location, code = 301) {
2419
2395
  */
2420
2396
  function Middleware(middleware, opts) {
2421
2397
  return function internalDecorator(target, propertyName) {
2422
- const ctx = propertyName ? target : target.prototype;
2423
- const meta = initializeMetadata(ctx);
2424
- meta.__middlewares.push({
2398
+ initializeMetadata(propertyName ? target : target.prototype).__middlewares.push({
2425
2399
  target: propertyName ?? "__global__",
2426
2400
  priority: opts?.priority ?? 999,
2427
2401
  middleware
@@ -2445,8 +2419,7 @@ var MultipartFormDataDecorator = class extends BaseDecorator {
2445
2419
  */
2446
2420
  created() {
2447
2421
  initializeMetadata(this.prototype);
2448
- const method = initializeMetadataMethod(this.prototype, this.propertyName);
2449
- method.args.push({
2422
+ initializeMetadataMethod(this.prototype, this.propertyName).args.push({
2450
2423
  idx: this.propertyIndex,
2451
2424
  type: "multipart-form-data"
2452
2425
  });
@@ -2472,7 +2445,6 @@ function MultipartFormData() {
2472
2445
 
2473
2446
  //#endregion
2474
2447
  //#region src/Decorators/Hooks/Listen.ts
2475
- var import_decorate = /* @__PURE__ */ __toESM(require_decorate(), 1);
2476
2448
  /**
2477
2449
  * This class is responsible for managing cache decorator.
2478
2450
  */
@@ -2493,7 +2465,7 @@ var ListenDecorator = class extends BaseDecorator {
2493
2465
  this.gHooksService.off(this.fHook);
2494
2466
  }
2495
2467
  };
2496
- (0, import_decorate.default)([Inject(HooksService)], ListenDecorator.prototype, "gHooksService", void 0);
2468
+ __decorate([Inject(HooksService)], ListenDecorator.prototype, "gHooksService", void 0);
2497
2469
  /**
2498
2470
  * This decorator stores metadata about hook listeners. It can be later used along with function
2499
2471
  * applyEventListeners() to automatically register all listeners.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercube/core",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Core module for Vercube framework",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,16 +23,17 @@
23
23
  ],
24
24
  "dependencies": {
25
25
  "@standard-schema/spec": "1.0.0",
26
- "c12": "3.2.0",
26
+ "c12": "3.3.0",
27
27
  "defu": "6.1.4",
28
28
  "pathe": "2.0.3",
29
- "rou3": "0.7.3",
30
- "srvx": "0.8.7",
31
- "@vercube/di": "0.0.23",
32
- "@vercube/logger": "0.0.23"
29
+ "rou3": "0.7.7",
30
+ "srvx": "0.8.15",
31
+ "@vercube/di": "0.0.25",
32
+ "@vercube/logger": "0.0.25"
33
33
  },
34
34
  "devDependencies": {
35
- "zod": "4.1.3"
35
+ "rolldown": "1.0.0-beta.42",
36
+ "zod": "4.1.12"
36
37
  },
37
38
  "publishConfig": {
38
39
  "access": "public"