@engjts/nexus 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/advanced/playground/generatePlaygroundHTML.js +38 -38
  2. package/dist/advanced/playground/generatePlaygroundHTML.js.map +1 -1
  3. package/dist/advanced/playground/playground.d.ts.map +1 -1
  4. package/dist/advanced/playground/playground.js +73 -5
  5. package/dist/advanced/playground/playground.js.map +1 -1
  6. package/dist/advanced/postman/postman.d.ts.map +1 -1
  7. package/dist/advanced/postman/postman.js +10 -4
  8. package/dist/advanced/postman/postman.js.map +1 -1
  9. package/dist/advanced/swagger/swagger.d.ts.map +1 -1
  10. package/dist/advanced/swagger/swagger.js +24 -2
  11. package/dist/advanced/swagger/swagger.js.map +1 -1
  12. package/dist/advanced/template/engines.d.ts +90 -0
  13. package/dist/advanced/template/engines.d.ts.map +1 -0
  14. package/dist/advanced/template/engines.js +153 -0
  15. package/dist/advanced/template/engines.js.map +1 -0
  16. package/dist/advanced/template/index.d.ts +10 -0
  17. package/dist/advanced/template/index.d.ts.map +1 -0
  18. package/dist/advanced/template/index.js +16 -0
  19. package/dist/advanced/template/index.js.map +1 -0
  20. package/dist/core/application.d.ts +10 -0
  21. package/dist/core/application.d.ts.map +1 -1
  22. package/dist/core/application.js +64 -1
  23. package/dist/core/application.js.map +1 -1
  24. package/dist/core/router/file-router.d.ts.map +1 -1
  25. package/dist/core/router/file-router.js +4 -1
  26. package/dist/core/router/file-router.js.map +1 -1
  27. package/dist/core/router/index.d.ts +9 -1
  28. package/dist/core/router/index.d.ts.map +1 -1
  29. package/dist/core/router/index.js +11 -3
  30. package/dist/core/router/index.js.map +1 -1
  31. package/dist/core/router/radix-tree.d.ts +10 -3
  32. package/dist/core/router/radix-tree.d.ts.map +1 -1
  33. package/dist/core/router/radix-tree.js +118 -10
  34. package/dist/core/router/radix-tree.js.map +1 -1
  35. package/dist/core/types.d.ts +106 -0
  36. package/dist/core/types.d.ts.map +1 -1
  37. package/dist/core/types.js +186 -0
  38. package/dist/core/types.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +7 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/security/headers.d.ts.map +1 -1
  44. package/dist/security/headers.js +5 -2
  45. package/dist/security/headers.js.map +1 -1
  46. package/package.json +2 -1
@@ -13,10 +13,16 @@ export declare class RadixNode {
13
13
  handler: Handler | null;
14
14
  middlewares: Middleware[];
15
15
  children: RadixNode[];
16
- type: 'static' | 'param' | 'wildcard';
16
+ type: 'static' | 'param' | 'regex' | 'pattern' | 'wildcard';
17
17
  paramName?: string;
18
+ regex?: RegExp;
19
+ patternParams?: string[];
18
20
  serializers: Map<number | string, SerializerFunction> | null;
19
- constructor(segment: string, fullPath: string);
21
+ constructor(segment: string, fullPath: string, enableRegex?: boolean);
22
+ /**
23
+ * Escape special regex characters in a string
24
+ */
25
+ private escapeRegex;
20
26
  /**
21
27
  * Add a child node
22
28
  */
@@ -35,7 +41,8 @@ export declare class RadixNode {
35
41
  */
36
42
  export declare class RadixTree {
37
43
  private root;
38
- constructor();
44
+ private enableRegex;
45
+ constructor(enableRegex?: boolean);
39
46
  /**
40
47
  * Insert a route into the tree
41
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"radix-tree.d.ts","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,qBAAa,SAAS;IAElB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAG/B,WAAW,EAAE,UAAU,EAAE,CAAM;IAG/B,QAAQ,EAAE,SAAS,EAAE,CAAM;IAG3B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAY;IAGjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAQ;gBAExD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAc7C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAmB/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS5C;;OAEG;IACH,OAAO,CAAC,eAAe;CAO1B;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,IAAI,CAAY;;IAMxB;;OAEG;IACH,MAAM,CACF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,UAAU,EAAO,EAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GACvD,IAAI;IAuBP;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;KAChE,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,UAAU;IA6ClB;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAM5D;;OAEG;IACH,OAAO,CAAC,aAAa;CASxB"}
1
+ {"version":3,"file":"radix-tree.d.ts","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAUnD;;GAEG;AACH,qBAAa,SAAS;IAElB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAG/B,WAAW,EAAE,UAAU,EAAE,CAAM;IAG/B,QAAQ,EAAE,SAAS,EAAE,CAAM;IAQ3B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAY;IAGvE,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAGzB,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAQ;gBAExD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe;IAqE3E;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAmB/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAS5C;;OAEG;IACH,OAAO,CAAC,eAAe;CAS1B;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,WAAW,CAAU;gBAEjB,WAAW,GAAE,OAAe;IAKxC;;OAEG;IACH,MAAM,CACF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,GAAE,UAAU,EAAO,EAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GACvD,IAAI;IAuBP;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;QAC1B,WAAW,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;KAChE,GAAG,IAAI;IAkBR;;OAEG;IACH,OAAO,CAAC,UAAU;IAqFlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAM5D;;OAEG;IACH,OAAO,CAAC,aAAa;CASxB"}
@@ -19,24 +19,86 @@ class RadixNode {
19
19
  middlewares = [];
20
20
  // Child nodes
21
21
  children = [];
22
- // Pattern type: 'static', 'param', or 'wildcard'
22
+ // Pattern type: 'static', 'param', 'regex', 'pattern', or 'wildcard'
23
+ // - static: exact match like /users
24
+ // - param: simple param like :id
25
+ // - regex: param with regex like :id(\d+)
26
+ // - pattern: inline pattern like category-:slug or file.:ext
27
+ // - wildcard: catch-all like *
23
28
  type = 'static';
24
- // Parameter name for param nodes
29
+ // Parameter name for param/regex nodes
25
30
  paramName;
31
+ // Compiled regex for regex/pattern nodes (compiled once at startup)
32
+ regex;
33
+ // Parameter names for pattern type (can have multiple params in one segment)
34
+ patternParams;
26
35
  // Compiled serializers for response (status code → serializer)
27
36
  serializers = null;
28
- constructor(segment, fullPath) {
37
+ constructor(segment, fullPath, enableRegex = false) {
29
38
  this.segment = segment;
30
39
  this.fullPath = fullPath;
31
40
  // Detect node type
32
41
  if (segment.startsWith(':')) {
33
- this.type = 'param';
34
- this.paramName = segment.slice(1);
42
+ // Check for regex pattern: :param(pattern)
43
+ const regexMatch = enableRegex ? segment.match(/^:([^(]+)\((.+)\)$/) : null;
44
+ if (regexMatch) {
45
+ // Regex parameter: :id(\d+)
46
+ this.type = 'regex';
47
+ this.paramName = regexMatch[1];
48
+ this.regex = new RegExp(`^${regexMatch[2]}$`);
49
+ }
50
+ else {
51
+ // Simple parameter: :id
52
+ this.type = 'param';
53
+ this.paramName = segment.slice(1);
54
+ }
35
55
  }
36
56
  else if (segment === '*' || segment.startsWith('*')) {
37
57
  this.type = 'wildcard';
38
58
  this.paramName = segment.length > 1 ? segment.slice(1) : 'wildcard';
39
59
  }
60
+ else if (enableRegex && segment.includes(':')) {
61
+ // Inline pattern like: category-:slug, file.:ext, prefix-:id-suffix
62
+ this.type = 'pattern';
63
+ this.patternParams = [];
64
+ // Parse the segment and build regex
65
+ // Example: "category-:slug" -> regex: /^category-(.+)$/, params: ['slug']
66
+ // Example: "file.:ext(jpg|png)" -> regex: /^file\.(jpg|png)$/, params: ['ext']
67
+ let regexStr = '^';
68
+ let remaining = segment;
69
+ while (remaining.length > 0) {
70
+ // Find next param
71
+ const paramStart = remaining.indexOf(':');
72
+ if (paramStart === -1) {
73
+ // No more params, add rest as literal
74
+ regexStr += this.escapeRegex(remaining);
75
+ break;
76
+ }
77
+ // Add literal part before param
78
+ if (paramStart > 0) {
79
+ regexStr += this.escapeRegex(remaining.slice(0, paramStart));
80
+ }
81
+ remaining = remaining.slice(paramStart + 1);
82
+ // Parse param name and optional pattern
83
+ const paramMatch = remaining.match(/^([^(./-]+)(?:\(([^)]+)\))?/);
84
+ if (paramMatch) {
85
+ const paramName = paramMatch[1];
86
+ const paramPattern = paramMatch[2] || '.+'; // default: match anything
87
+ this.patternParams.push(paramName);
88
+ regexStr += `(${paramPattern})`;
89
+ // Move past the param (name + optional pattern)
90
+ remaining = remaining.slice(paramMatch[0].length);
91
+ }
92
+ }
93
+ regexStr += '$';
94
+ this.regex = new RegExp(regexStr);
95
+ }
96
+ }
97
+ /**
98
+ * Escape special regex characters in a string
99
+ */
100
+ escapeRegex(str) {
101
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
40
102
  }
41
103
  /**
42
104
  * Add a child node
@@ -74,8 +136,10 @@ class RadixNode {
74
136
  getTypePriority(type) {
75
137
  switch (type) {
76
138
  case 'static': return 0;
77
- case 'param': return 1;
78
- case 'wildcard': return 2;
139
+ case 'pattern': return 1; // inline patterns like category-:slug
140
+ case 'regex': return 2; // regex param like :id(\d+)
141
+ case 'param': return 3; // simple param like :id
142
+ case 'wildcard': return 4;
79
143
  }
80
144
  }
81
145
  }
@@ -85,8 +149,10 @@ exports.RadixNode = RadixNode;
85
149
  */
86
150
  class RadixTree {
87
151
  root;
88
- constructor() {
89
- this.root = new RadixNode('', '/');
152
+ enableRegex;
153
+ constructor(enableRegex = false) {
154
+ this.root = new RadixNode('', '/', enableRegex);
155
+ this.enableRegex = enableRegex;
90
156
  }
91
157
  /**
92
158
  * Insert a route into the tree
@@ -99,7 +165,7 @@ class RadixTree {
99
165
  let child = current.findChild(segment);
100
166
  if (!child) {
101
167
  const fullPath = '/' + segments.slice(0, i + 1).join('/');
102
- child = new RadixNode(segment, fullPath);
168
+ child = new RadixNode(segment, fullPath, this.enableRegex);
103
169
  current.addChild(child);
104
170
  }
105
171
  current = child;
@@ -145,6 +211,48 @@ class RadixTree {
145
211
  return result;
146
212
  }
147
213
  }
214
+ else if (child.type === 'pattern') {
215
+ // Inline pattern match - test regex and extract multiple params
216
+ const match = child.regex.exec(segment);
217
+ if (match) {
218
+ // Save old values for backtracking
219
+ const oldValues = {};
220
+ for (let i = 0; i < child.patternParams.length; i++) {
221
+ const paramName = child.patternParams[i];
222
+ oldValues[paramName] = params[paramName];
223
+ params[paramName] = match[i + 1]; // match[0] is full match
224
+ }
225
+ const result = this.searchNode(child, segments, index + 1, params);
226
+ if (result)
227
+ return result;
228
+ // Backtrack
229
+ for (const paramName of child.patternParams) {
230
+ if (oldValues[paramName] === undefined) {
231
+ delete params[paramName];
232
+ }
233
+ else {
234
+ params[paramName] = oldValues[paramName];
235
+ }
236
+ }
237
+ }
238
+ }
239
+ else if (child.type === 'regex') {
240
+ // Regex match - test pattern and capture value if matches
241
+ if (child.regex.test(segment)) {
242
+ const oldValue = params[child.paramName];
243
+ params[child.paramName] = segment;
244
+ const result = this.searchNode(child, segments, index + 1, params);
245
+ if (result)
246
+ return result;
247
+ // Backtrack
248
+ if (oldValue === undefined) {
249
+ delete params[child.paramName];
250
+ }
251
+ else {
252
+ params[child.paramName] = oldValue;
253
+ }
254
+ }
255
+ }
148
256
  else if (child.type === 'param') {
149
257
  // Parameter match - capture value
150
258
  const oldValue = params[child.paramName];
@@ -1 +1 @@
1
- {"version":3,"file":"radix-tree.js","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radix-tree.js","sourceRoot":"","sources":["../../../src/core/router/radix-tree.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,33 @@ import { ZodSchema } from 'zod';
7
7
  import { Application } from './application';
8
8
  import { ContextStore, StoreConstructor, RequestStore, RequestStoreConstructor } from './store';
9
9
  import { ResponseSchemaConfig, SerializerFunction } from './serializer';
10
+ /**
11
+ * Template engine interface for render() method
12
+ */
13
+ export interface TemplateEngine {
14
+ /** Engine name (e.g., 'handlebars', 'ejs', 'pug') */
15
+ name: string;
16
+ /** File extensions this engine handles (e.g., ['.hbs', '.handlebars']) */
17
+ extensions: string[];
18
+ /**
19
+ * Compile and render template with data
20
+ * @param template - Template string content
21
+ * @param data - Data to inject
22
+ * @returns Rendered string
23
+ */
24
+ render(template: string, data: Record<string, any>): string | Promise<string>;
25
+ }
26
+ /**
27
+ * Options for render() method
28
+ */
29
+ export interface RenderOptions {
30
+ /** Template engine to use (default: auto-detect from extension or 'simple') */
31
+ engine?: string;
32
+ /** Status code for response (default: 200) */
33
+ status?: number;
34
+ /** Additional headers */
35
+ headers?: Record<string, string>;
36
+ }
10
37
  /**
11
38
  * HTTP methods supported by the framework
12
39
  */
@@ -219,6 +246,7 @@ export interface RouteMeta {
219
246
  deprecated?: boolean;
220
247
  summary?: string;
221
248
  example?: string;
249
+ fileLocation?: string;
222
250
  }
223
251
  /**
224
252
  * Route configuration object
@@ -254,9 +282,19 @@ export type ErrorHandler = (error: Error, ctx: Context) => Response | Promise<Re
254
282
  export interface AppConfig {
255
283
  contextPoolSize?: number;
256
284
  enableJIT?: boolean;
285
+ /** Enable regex patterns in route params, e.g. /users/:id(\\d+) */
286
+ enableRegexRoutes?: boolean;
257
287
  onError?: ErrorHandler;
258
288
  debug?: boolean;
259
289
  logRequests?: boolean;
290
+ /** Enable Handlebars template engine (zero overhead if not used) */
291
+ handlebars?: boolean;
292
+ /** Enable EJS template engine (zero overhead if not used) */
293
+ ejs?: boolean;
294
+ /** Enable Pug template engine (zero overhead if not used) */
295
+ pug?: boolean;
296
+ /** Enable Mustache template engine (zero overhead if not used) */
297
+ mustache?: boolean;
260
298
  }
261
299
  /**
262
300
  * Plugin interface for extensibility
@@ -355,6 +393,35 @@ export interface RouteBase<TContext = Context> {
355
393
  */
356
394
  export declare abstract class Route<TContext = Context, TDeps = any> {
357
395
  pathName?: string;
396
+ /**
397
+ * Template engines registry (static, shared across all routes)
398
+ * @private
399
+ */
400
+ private static templateEngines;
401
+ /**
402
+ * Register a custom template engine
403
+ * @param engine - Template engine implementation
404
+ *
405
+ * @example
406
+ * ```typescript
407
+ * import Handlebars from 'handlebars';
408
+ *
409
+ * Route.registerEngine({
410
+ * name: 'handlebars',
411
+ * extensions: ['.hbs', '.handlebars'],
412
+ * render: (template, data) => {
413
+ * const compiled = Handlebars.compile(template);
414
+ * return compiled(data);
415
+ * }
416
+ * });
417
+ * ```
418
+ */
419
+ static registerEngine(engine: TemplateEngine): void;
420
+ /**
421
+ * Get registered template engine by name or extension
422
+ * @private
423
+ */
424
+ private static getEngine;
358
425
  /**
359
426
  * The main route handler - REQUIRED!
360
427
  * TypeScript will enforce this is implemented.
@@ -394,6 +461,45 @@ export declare abstract class Route<TContext = Context, TDeps = any> {
394
461
  * ```
395
462
  */
396
463
  protected fail(ctx: TContext, status: number, message: string, data?: any): Response;
464
+ /**
465
+ * Render a file template with data injection
466
+ * Supports multiple template engines via plugins or simple placeholder syntax by default
467
+ * @param filePath - Path to the template file (relative to project root or absolute)
468
+ * @param data - Data object to inject into template
469
+ * @param options - Render options (engine, status, headers)
470
+ * @returns Response object with rendered HTML/text
471
+ *
472
+ * @example
473
+ * ```typescript
474
+ * // Simple placeholder (default): {{ variableName }}
475
+ * return this.render('./views/welcome.html', { name: 'John' });
476
+ *
477
+ * // With Handlebars (auto-detect from .hbs extension)
478
+ * return this.render('./views/profile.hbs', { user });
479
+ *
480
+ * // Force specific engine
481
+ * return this.render('./views/page.html', { data }, { engine: 'ejs' });
482
+ *
483
+ * // With custom status and headers
484
+ * return this.render('./views/error.html', { message }, {
485
+ * status: 500,
486
+ * headers: { 'X-Custom': 'value' }
487
+ * });
488
+ * ```
489
+ */
490
+ protected render(filePath: string, data?: Record<string, any>, options?: RenderOptions): Promise<Response>;
491
+ /**
492
+ * Inject data into template string
493
+ * Supports {{ variable }} and {{ object.property }} syntax
494
+ * Automatically JSON.stringify() objects and arrays for use in JavaScript
495
+ * @private
496
+ */
497
+ private injectTemplateData;
498
+ /**
499
+ * Get content type from file extension
500
+ * @private
501
+ */
502
+ private getContentTypeFromExtension;
397
503
  /**
398
504
  * HTTP method(s) this route handles - Optional
399
505
  * When using file-based routing, you can also define method handlers (GET, POST, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAiB,YAAY,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAc,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;IACrD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IAEpB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IAGT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IAGjB,GAAG,EAAE;QACD,GAAG,EAAE,eAAe,CAAC;QACrB,GAAG,EAAE,cAAc,CAAC;KACvB,CAAC;IAGF,QAAQ,EAAE,eAAe,CAAC;IAG1B,yFAAyF;IACzF,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAEvE,wFAAwF;IACxF,YAAY,CAAC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAGrF,4CAA4C;IAC5C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAE1C,8CAA8C;IAC9C,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAGzC,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IAErB,uEAAuE;IACvE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5B,4EAA4E;IAC5E,OAAO,CAAC,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAG/B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;IAGlD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,QAAQ,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,MAAM,UAAU,CAAC,GAAG,GAAG,OAAO,EAAE,IAAI,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG,IAAI,CACjE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAChB,IAAI,EAAE,KAAK,KACV,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB;;;;GAIG;AACH,MAAM,MAAM,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG,IAAI,CACnD,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,KAAK,KACV,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI;KACvE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAChC,QAAQ,GAAG,OAAO,EAClB,KAAK,SAAS,mBAAmB,GAAG,mBAAmB,EACvD,KAAK,SAAS,MAAM,KAAK,GAAG,MAAM,KAAK;IAEvC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,+CAA+C;IAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC9E,uBAAuB;IACvB,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACrC,wBAAwB;IACxB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,qBAAqB;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACjC,MAAM,EAAE,qBAAqB,EAAE,EAC/B,GAAG,EAAE,OAAO,KACX,QAAQ,GAAG,GAAG,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO;IAC3C,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CACvB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,OAAO,KACX,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,SAAS;IAEtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,OAAO,CAAC,EAAE,YAAY,CAAC;IAGvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,SAAS,CAAC,QAAQ,GAAG,OAAO;IACzC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAEnC,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,YAAY,CAAC;IAE5B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,SAAS,CAAC;IAEvB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAE3C,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5B,sDAAsD;IACtD,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,8BAAsB,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,GAAG;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAMhE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,GAAG,CAAC;IAI3E;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,QAAQ;IAMpF;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IAEnC;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI;IAEvE;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAErE;;;;;;;OAOG;IACH,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEtE,iCAAiC;IACjC,MAAM,CAAC,IAAI,YAAY;IAEvB,gDAAgD;IAChD,IAAI,CAAC,IAAI,SAAS;IAElB,0CAA0C;IAC1C,WAAW,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;CACzC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,CAOrE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,cAAc;IAC3B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAEzE,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAEhF,8FAA8F;IAC9F,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAE/E,2CAA2C;IAC3C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAE7E,gFAAgF;IAChF,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAEjE,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;IAErF,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC;CACjG;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC7B,mCAAmC;IACnC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,39 @@
3
3
  * Core type definitions for the Nexus Framework
4
4
  * Provides type-safe interfaces for requests, responses, middleware, and routing
5
5
  */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
6
39
  Object.defineProperty(exports, "__esModule", { value: true });
7
40
  exports.Route = void 0;
8
41
  exports.isRouteClass = isRouteClass;
@@ -46,6 +79,43 @@ exports.isRouteClass = isRouteClass;
46
79
  */
47
80
  class Route {
48
81
  pathName;
82
+ /**
83
+ * Template engines registry (static, shared across all routes)
84
+ * @private
85
+ */
86
+ static templateEngines = new Map();
87
+ /**
88
+ * Register a custom template engine
89
+ * @param engine - Template engine implementation
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * import Handlebars from 'handlebars';
94
+ *
95
+ * Route.registerEngine({
96
+ * name: 'handlebars',
97
+ * extensions: ['.hbs', '.handlebars'],
98
+ * render: (template, data) => {
99
+ * const compiled = Handlebars.compile(template);
100
+ * return compiled(data);
101
+ * }
102
+ * });
103
+ * ```
104
+ */
105
+ static registerEngine(engine) {
106
+ Route.templateEngines.set(engine.name, engine);
107
+ // Also register by file extensions for auto-detection
108
+ for (const ext of engine.extensions) {
109
+ Route.templateEngines.set(ext, engine);
110
+ }
111
+ }
112
+ /**
113
+ * Get registered template engine by name or extension
114
+ * @private
115
+ */
116
+ static getEngine(nameOrExt) {
117
+ return Route.templateEngines.get(nameOrExt);
118
+ }
49
119
  // ─────────────────────────────────────────────────────────────────────────
50
120
  // Helper Methods for cleaner response handling
51
121
  // ─────────────────────────────────────────────────────────────────────────
@@ -85,6 +155,122 @@ class Route {
85
155
  .status(status)
86
156
  .json({ success: false, message, ...(data !== undefined ? { data } : {}) });
87
157
  }
158
+ /**
159
+ * Render a file template with data injection
160
+ * Supports multiple template engines via plugins or simple placeholder syntax by default
161
+ * @param filePath - Path to the template file (relative to project root or absolute)
162
+ * @param data - Data object to inject into template
163
+ * @param options - Render options (engine, status, headers)
164
+ * @returns Response object with rendered HTML/text
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * // Simple placeholder (default): {{ variableName }}
169
+ * return this.render('./views/welcome.html', { name: 'John' });
170
+ *
171
+ * // With Handlebars (auto-detect from .hbs extension)
172
+ * return this.render('./views/profile.hbs', { user });
173
+ *
174
+ * // Force specific engine
175
+ * return this.render('./views/page.html', { data }, { engine: 'ejs' });
176
+ *
177
+ * // With custom status and headers
178
+ * return this.render('./views/error.html', { message }, {
179
+ * status: 500,
180
+ * headers: { 'X-Custom': 'value' }
181
+ * });
182
+ * ```
183
+ */
184
+ async render(filePath, data, options) {
185
+ const fs = await Promise.resolve().then(() => __importStar(require('fs')));
186
+ const path = await Promise.resolve().then(() => __importStar(require('path')));
187
+ // Resolve file path (support both relative and absolute paths)
188
+ const resolvedPath = path.isAbsolute(filePath)
189
+ ? filePath
190
+ : path.resolve(process.cwd(), filePath);
191
+ // Check if file exists
192
+ if (!fs.existsSync(resolvedPath)) {
193
+ throw new Error(`Template file not found: ${filePath}`);
194
+ }
195
+ // Read file content
196
+ let content = fs.readFileSync(resolvedPath, 'utf-8');
197
+ // Determine which engine to use
198
+ const ext = path.extname(filePath).toLowerCase();
199
+ let engine;
200
+ if (options?.engine) {
201
+ // Explicit engine specified
202
+ engine = Route.getEngine(options.engine);
203
+ if (!engine) {
204
+ throw new Error(`Template engine '${options.engine}' not registered. ` +
205
+ `Register it using Route.registerEngine()`);
206
+ }
207
+ }
208
+ else {
209
+ // Auto-detect from file extension
210
+ engine = Route.getEngine(ext);
211
+ }
212
+ // Render with appropriate engine
213
+ if (engine) {
214
+ // Use registered template engine
215
+ content = await engine.render(content, data || {});
216
+ }
217
+ else if (data && Object.keys(data).length > 0) {
218
+ // Fallback to simple placeholder engine (default)
219
+ content = this.injectTemplateData(content, data);
220
+ }
221
+ // Determine content type from file extension
222
+ const contentType = this.getContentTypeFromExtension(ext);
223
+ // Build response headers
224
+ const headers = {
225
+ 'Content-Type': contentType,
226
+ ...(options?.headers || {})
227
+ };
228
+ return {
229
+ statusCode: options?.status || 200,
230
+ headers,
231
+ body: content
232
+ };
233
+ }
234
+ /**
235
+ * Inject data into template string
236
+ * Supports {{ variable }} and {{ object.property }} syntax
237
+ * Automatically JSON.stringify() objects and arrays for use in JavaScript
238
+ * @private
239
+ */
240
+ injectTemplateData(template, data) {
241
+ return template.replace(/\{\{\s*([\w.]+)\s*\}\}/g, (match, key) => {
242
+ // Support nested properties: user.name, user.email, etc.
243
+ const value = key.split('.').reduce((obj, prop) => {
244
+ return obj && obj[prop] !== undefined ? obj[prop] : '';
245
+ }, data);
246
+ if (value === undefined || value === null) {
247
+ return '';
248
+ }
249
+ // If value is object or array, JSON.stringify it for JavaScript usage
250
+ if (typeof value === 'object') {
251
+ return JSON.stringify(value);
252
+ }
253
+ // Primitive values: convert to string
254
+ return String(value);
255
+ });
256
+ }
257
+ /**
258
+ * Get content type from file extension
259
+ * @private
260
+ */
261
+ getContentTypeFromExtension(ext) {
262
+ const mimeTypes = {
263
+ '.html': 'text/html; charset=utf-8',
264
+ '.htm': 'text/html; charset=utf-8',
265
+ '.xml': 'application/xml; charset=utf-8',
266
+ '.txt': 'text/plain; charset=utf-8',
267
+ '.css': 'text/css; charset=utf-8',
268
+ '.js': 'application/javascript; charset=utf-8',
269
+ '.json': 'application/json; charset=utf-8',
270
+ '.svg': 'image/svg+xml',
271
+ };
272
+ return mimeTypes[ext] || 'text/plain; charset=utf-8';
273
+ }
88
274
  /**
89
275
  * HTTP method(s) this route handles - Optional
90
276
  * When using file-based routing, you can also define method handlers (GET, POST, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAihBH,oCAOC;AApJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAsB,KAAK;IACvB,QAAQ,CAAU;IAUlB,4EAA4E;IAC5E,+CAA+C;IAC/C,4EAA4E;IAE5E;;;;;;;;;;OAUG;IACO,EAAE,CAAgC,IAAO;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,IAAI,CAAC,GAAa,EAAE,MAAc,EAAE,OAAe,EAAE,IAAU;QACrE,OAAQ,GAAe,CAAC,QAAQ;aAC3B,MAAM,CAAC,MAAM,CAAC;aACd,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;;OAGG;IACH,MAAM,CAA6B;CAyCtC;AAlGD,sBAkGC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACjD,OAAO,KAAK,YAAY,KAAK;QACtB,CAAC,OAAQ,KAAe,CAAC,OAAO,KAAK,UAAU;YAC9C,UAAU,IAAI,KAAK;YACnB,CAAC,OAAQ,KAAe,CAAC,QAAQ,KAAK,UAAU;gBAC/C,OAAQ,KAAe,CAAC,OAAO,KAAK,UAAU;gBAC9C,OAAQ,KAAe,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}