@spinajs/http 2.0.474 → 2.0.476

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 (103) hide show
  1. package/lib/cjs/cache.d.ts +9 -10
  2. package/lib/cjs/cache.d.ts.map +1 -1
  3. package/lib/cjs/cache.js +41 -86
  4. package/lib/cjs/cache.js.map +1 -1
  5. package/lib/cjs/controllers.d.ts +3 -33
  6. package/lib/cjs/controllers.d.ts.map +1 -1
  7. package/lib/cjs/controllers.js +70 -97
  8. package/lib/cjs/controllers.js.map +1 -1
  9. package/lib/cjs/decorators.d.ts.map +1 -1
  10. package/lib/cjs/decorators.js +0 -55
  11. package/lib/cjs/decorators.js.map +1 -1
  12. package/lib/cjs/index.d.ts +0 -7
  13. package/lib/cjs/index.d.ts.map +1 -1
  14. package/lib/cjs/index.js +0 -7
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/cjs/interfaces.d.ts +1 -27
  17. package/lib/cjs/interfaces.d.ts.map +1 -1
  18. package/lib/cjs/interfaces.js.map +1 -1
  19. package/lib/cjs/server.d.ts +0 -7
  20. package/lib/cjs/server.d.ts.map +1 -1
  21. package/lib/cjs/server.js +24 -9
  22. package/lib/cjs/server.js.map +1 -1
  23. package/lib/mjs/cache.d.ts +9 -10
  24. package/lib/mjs/cache.d.ts.map +1 -1
  25. package/lib/mjs/cache.js +41 -86
  26. package/lib/mjs/cache.js.map +1 -1
  27. package/lib/mjs/controllers.d.ts +3 -33
  28. package/lib/mjs/controllers.d.ts.map +1 -1
  29. package/lib/mjs/controllers.js +39 -99
  30. package/lib/mjs/controllers.js.map +1 -1
  31. package/lib/mjs/decorators.d.ts.map +1 -1
  32. package/lib/mjs/decorators.js +0 -55
  33. package/lib/mjs/decorators.js.map +1 -1
  34. package/lib/mjs/index.d.ts +0 -7
  35. package/lib/mjs/index.d.ts.map +1 -1
  36. package/lib/mjs/index.js +0 -7
  37. package/lib/mjs/index.js.map +1 -1
  38. package/lib/mjs/interfaces.d.ts +1 -27
  39. package/lib/mjs/interfaces.d.ts.map +1 -1
  40. package/lib/mjs/interfaces.js.map +1 -1
  41. package/lib/mjs/server.d.ts +0 -7
  42. package/lib/mjs/server.d.ts.map +1 -1
  43. package/lib/mjs/server.js +24 -9
  44. package/lib/mjs/server.js.map +1 -1
  45. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  46. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  47. package/package.json +11 -11
  48. package/lib/cjs/middlewares/AccessLog.d.ts +0 -23
  49. package/lib/cjs/middlewares/AccessLog.d.ts.map +0 -1
  50. package/lib/cjs/middlewares/AccessLog.js +0 -73
  51. package/lib/cjs/middlewares/AccessLog.js.map +0 -1
  52. package/lib/cjs/middlewares/Compression.d.ts +0 -21
  53. package/lib/cjs/middlewares/Compression.d.ts.map +0 -1
  54. package/lib/cjs/middlewares/Compression.js +0 -62
  55. package/lib/cjs/middlewares/Compression.js.map +0 -1
  56. package/lib/cjs/middlewares/Cors.d.ts +0 -25
  57. package/lib/cjs/middlewares/Cors.d.ts.map +0 -1
  58. package/lib/cjs/middlewares/Cors.js +0 -81
  59. package/lib/cjs/middlewares/Cors.js.map +0 -1
  60. package/lib/cjs/middlewares/ErrorHandler.d.ts +0 -17
  61. package/lib/cjs/middlewares/ErrorHandler.d.ts.map +0 -1
  62. package/lib/cjs/middlewares/ErrorHandler.js +0 -42
  63. package/lib/cjs/middlewares/ErrorHandler.js.map +0 -1
  64. package/lib/cjs/middlewares/NotFound.d.ts +0 -18
  65. package/lib/cjs/middlewares/NotFound.d.ts.map +0 -1
  66. package/lib/cjs/middlewares/NotFound.js +0 -48
  67. package/lib/cjs/middlewares/NotFound.js.map +0 -1
  68. package/lib/cjs/middlewares/ServerTiming.d.ts +0 -25
  69. package/lib/cjs/middlewares/ServerTiming.d.ts.map +0 -1
  70. package/lib/cjs/middlewares/ServerTiming.js +0 -78
  71. package/lib/cjs/middlewares/ServerTiming.js.map +0 -1
  72. package/lib/cjs/middlewares/SlowRequestWarning.d.ts +0 -20
  73. package/lib/cjs/middlewares/SlowRequestWarning.d.ts.map +0 -1
  74. package/lib/cjs/middlewares/SlowRequestWarning.js +0 -74
  75. package/lib/cjs/middlewares/SlowRequestWarning.js.map +0 -1
  76. package/lib/mjs/middlewares/AccessLog.d.ts +0 -23
  77. package/lib/mjs/middlewares/AccessLog.d.ts.map +0 -1
  78. package/lib/mjs/middlewares/AccessLog.js +0 -70
  79. package/lib/mjs/middlewares/AccessLog.js.map +0 -1
  80. package/lib/mjs/middlewares/Compression.d.ts +0 -21
  81. package/lib/mjs/middlewares/Compression.d.ts.map +0 -1
  82. package/lib/mjs/middlewares/Compression.js +0 -56
  83. package/lib/mjs/middlewares/Compression.js.map +0 -1
  84. package/lib/mjs/middlewares/Cors.d.ts +0 -25
  85. package/lib/mjs/middlewares/Cors.d.ts.map +0 -1
  86. package/lib/mjs/middlewares/Cors.js +0 -75
  87. package/lib/mjs/middlewares/Cors.js.map +0 -1
  88. package/lib/mjs/middlewares/ErrorHandler.d.ts +0 -17
  89. package/lib/mjs/middlewares/ErrorHandler.d.ts.map +0 -1
  90. package/lib/mjs/middlewares/ErrorHandler.js +0 -39
  91. package/lib/mjs/middlewares/ErrorHandler.js.map +0 -1
  92. package/lib/mjs/middlewares/NotFound.d.ts +0 -18
  93. package/lib/mjs/middlewares/NotFound.d.ts.map +0 -1
  94. package/lib/mjs/middlewares/NotFound.js +0 -45
  95. package/lib/mjs/middlewares/NotFound.js.map +0 -1
  96. package/lib/mjs/middlewares/ServerTiming.d.ts +0 -25
  97. package/lib/mjs/middlewares/ServerTiming.d.ts.map +0 -1
  98. package/lib/mjs/middlewares/ServerTiming.js +0 -75
  99. package/lib/mjs/middlewares/ServerTiming.js.map +0 -1
  100. package/lib/mjs/middlewares/SlowRequestWarning.d.ts +0 -20
  101. package/lib/mjs/middlewares/SlowRequestWarning.d.ts.map +0 -1
  102. package/lib/mjs/middlewares/SlowRequestWarning.js +0 -71
  103. package/lib/mjs/middlewares/SlowRequestWarning.js.map +0 -1
@@ -10,6 +10,8 @@ export interface IParamDoc {
10
10
  }
11
11
  export interface IResponseDoc {
12
12
  description: string;
13
+ /** Optional `{type}` annotation, e.g. `@response 400 {string} message` */
14
+ type?: string;
13
15
  }
14
16
  export interface IExampleDoc {
15
17
  name?: string;
@@ -83,15 +85,6 @@ export declare class DefaultControllerCache extends AsyncService {
83
85
  resolve(): Promise<void>;
84
86
  /** Returns parameter-name map used for route argument binding. */
85
87
  getCache(controller: ClassInfo<BaseController>): Promise<Record<string, string[]>>;
86
- /** Whether `file` points at a real on-disk source we can parse. */
87
- private isResolvableSource;
88
- /**
89
- * Fallback: derive route method parameter names by parsing each method's
90
- * Function.toString() output. Loses JSDoc documentation (no @param tags
91
- * etc.) but keeps argument binding working for DI-registered controllers
92
- * that have no source file on disk.
93
- */
94
- private extractParametersAtRuntime;
95
88
  /** Returns the JSDoc / TypeScript-annotation documentation for a controller. */
96
89
  getDocumentation(controller: ClassInfo<BaseController>): Promise<IControllerDocumentation>;
97
90
  /**
@@ -103,7 +96,8 @@ export declare class DefaultControllerCache extends AsyncService {
103
96
  * .d.ts which only emits type-referenced ones) and resolve the matching
104
97
  * module specifier against the controller's directory or node_modules.
105
98
  *
106
- * Per-call in-memory cache onlypolicy doc volume is small and the cost is
99
+ * JSDoc is extracted per class several policies may share one file, so the
100
+ * file is parsed once per class. Policy doc volume is small and the cost is
107
101
  * dominated by ts.createProgram which we already pay for the controller.
108
102
  */
109
103
  getPolicyDocumentation(controller: ClassInfo<BaseController>, policyNames: string[]): Promise<Record<string, IPolicyDoc>>;
@@ -151,5 +145,10 @@ export declare class DefaultControllerCache extends AsyncService {
151
145
  private getTagComment;
152
146
  private parseExample;
153
147
  private inferSchemaFromTypeNode;
148
+ /**
149
+ * Schema for a named type: unwrap wrappers and `Array<T>`, otherwise tag it as a named object.
150
+ * The parser only names the type; http-swagger's providers expand it later.
151
+ */
152
+ private schemaFromNamedType;
154
153
  }
155
154
  //# sourceMappingURL=cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
package/lib/cjs/cache.js CHANGED
@@ -21,6 +21,13 @@ const di_1 = require("@spinajs/di");
21
21
  const fs_2 = require("@spinajs/fs");
22
22
  const log_1 = require("@spinajs/log");
23
23
  // ---------------------------------------------------------------------------
24
+ /** Wrapper types unwrapped to their first type argument (`Promise<T>`, `Ok<T>`, `ModelData<T>`, …). */
25
+ const TRANSPARENT_WRAPPERS = new Set([
26
+ 'Promise', 'Ok', 'Json', 'Created', 'BadRequest', 'NotFound',
27
+ 'ServerError', 'Unauthorized', 'Forbidden', 'Conflict', 'NoContent',
28
+ 'ValidationError', 'NotAllowed', 'EntityTooLarge',
29
+ 'ModelDataWithRelationData', 'ModelData',
30
+ ]);
24
31
  let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncService {
25
32
  constructor() {
26
33
  super(...arguments);
@@ -52,13 +59,6 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
52
59
  }
53
60
  /** Returns parameter-name map used for route argument binding. */
54
61
  async getCache(controller) {
55
- // Sentinel values like `<di>` are set by Controllers.resolve() / add() for
56
- // controllers registered through DI rather than a file scan. There's no
57
- // on-disk source to parse, so fall back to a runtime extraction of
58
- // parameter names from each method's Function.toString().
59
- if (!this.isResolvableSource(controller.file)) {
60
- return this.extractParametersAtRuntime(controller);
61
- }
62
62
  const file = (0, path_1.resolve)(controller.file.replace('.js', '.d.ts'));
63
63
  const hash = await this.Hasher.hash(file);
64
64
  const docHash = `doc_${hash}`;
@@ -75,40 +75,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
75
75
  }
76
76
  return this.CacheFS.read(hash).then((x) => JSON.parse(x.toString()));
77
77
  }
78
- /** Whether `file` points at a real on-disk source we can parse. */
79
- isResolvableSource(file) {
80
- if (!file)
81
- return false;
82
- // Bracketed sentinels (e.g. `<di>`, `<dynamic>`) are used by Controllers
83
- // for entries that were never loaded from a file.
84
- return !(file.startsWith('<') && file.endsWith('>'));
85
- }
86
- /**
87
- * Fallback: derive route method parameter names by parsing each method's
88
- * Function.toString() output. Loses JSDoc documentation (no @param tags
89
- * etc.) but keeps argument binding working for DI-registered controllers
90
- * that have no source file on disk.
91
- */
92
- extractParametersAtRuntime(controller) {
93
- const parameters = {};
94
- const instance = controller.instance;
95
- if (!instance || !instance.Descriptor)
96
- return parameters;
97
- for (const [methodName] of instance.Descriptor.Routes) {
98
- const fn = instance[methodName];
99
- if (typeof fn !== 'function')
100
- continue;
101
- parameters[methodName] = parseFnParamNames(fn);
102
- }
103
- return parameters;
104
- }
105
78
  /** Returns the JSDoc / TypeScript-annotation documentation for a controller. */
106
79
  async getDocumentation(controller) {
107
- // No source file → no JSDoc to extract. Return an empty shell so callers
108
- // (e.g. http-swagger) gracefully skip the controller instead of throwing.
109
- if (!this.isResolvableSource(controller.file)) {
110
- return { className: controller.name, methods: {} };
111
- }
112
80
  const file = (0, path_1.resolve)(controller.file.replace('.js', '.d.ts'));
113
81
  const hash = await this.Hasher.hash(file);
114
82
  const docHash = `doc_${hash}`;
@@ -126,7 +94,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
126
94
  * .d.ts which only emits type-referenced ones) and resolve the matching
127
95
  * module specifier against the controller's directory or node_modules.
128
96
  *
129
- * Per-call in-memory cache onlypolicy doc volume is small and the cost is
97
+ * JSDoc is extracted per class several policies may share one file, so the
98
+ * file is parsed once per class. Policy doc volume is small and the cost is
130
99
  * dominated by ts.createProgram which we already pay for the controller.
131
100
  */
132
101
  async getPolicyDocumentation(controller, policyNames) {
@@ -137,7 +106,6 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
137
106
  const importMap = this.extractImports(controllerJs);
138
107
  if (importMap.size === 0)
139
108
  return out;
140
- const seenFiles = new Set();
141
109
  for (const name of policyNames) {
142
110
  if (out[name])
143
111
  continue;
@@ -145,12 +113,8 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
145
113
  if (!moduleSpec)
146
114
  continue;
147
115
  const policyFile = this.resolvePolicyFile(controllerJs, moduleSpec);
148
- if (!policyFile || seenFiles.has(policyFile)) {
149
- if (policyFile)
150
- out[name] = { file: policyFile };
116
+ if (!policyFile)
151
117
  continue;
152
- }
153
- seenFiles.add(policyFile);
154
118
  try {
155
119
  const description = this.extractClassJsDoc(policyFile, name);
156
120
  out[name] = { file: policyFile, description };
@@ -261,8 +225,15 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
261
225
  const code = comment.substring(0, space).trim();
262
226
  if (!/^\d+$/.test(code))
263
227
  return;
264
- const desc = comment.substring(space + 1).trim();
265
- (ctx.doc.responses ??= {})[code] = { description: desc };
228
+ let desc = comment.substring(space + 1).trim();
229
+ // `@response 400 {string} message` split the optional type annotation off
230
+ let type;
231
+ const typeMatch = /^\{([^}]+)\}\s*/.exec(desc);
232
+ if (typeMatch) {
233
+ type = typeMatch[1].trim();
234
+ desc = desc.substring(typeMatch[0].length).trim();
235
+ }
236
+ (ctx.doc.responses ??= {})[code] = { description: desc, ...(type ? { type } : {}) };
266
237
  }
267
238
  extractExampleTag(tag, ctx) {
268
239
  const ex = this.parseExample(tag);
@@ -474,28 +445,10 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
474
445
  return { type: 'array', items: this.inferSchemaFromTypeNode(typeNode.elementType) };
475
446
  }
476
447
  if (typescript_1.default.isTypeReferenceNode(typeNode)) {
477
- const name = typescript_1.default.isIdentifier(typeNode.typeName)
478
- ? typeNode.typeName.text
479
- : typeNode.typeName.right.text;
480
- // Unwrap transparent wrappers — pass through to the inner type argument
481
- const TRANSPARENT_WRAPPERS = new Set([
482
- 'Promise', 'Ok', 'Json', 'Created', 'BadRequest', 'NotFound',
483
- 'ServerError', 'Unauthorized', 'Forbidden', 'Conflict', 'NoContent',
484
- 'ValidationError', 'NotAllowed', 'EntityTooLarge',
485
- ]);
486
- if (TRANSPARENT_WRAPPERS.has(name) && typeNode.typeArguments?.length) {
487
- return this.inferSchemaFromTypeNode(typeNode.typeArguments[0]);
488
- }
489
- if (name === 'Array' && typeNode.typeArguments?.length) {
490
- return { type: 'array', items: this.inferSchemaFromTypeNode(typeNode.typeArguments[0]) };
491
- }
492
- switch (name) {
493
- case 'string': return { type: 'string' };
494
- case 'number': return { type: 'number' };
495
- case 'boolean': return { type: 'boolean' };
496
- // Avoid generating $ref to schemas that aren't registered in components
497
- default: return { type: 'object', description: name };
498
- }
448
+ return this.schemaFromNamedType(entityNameRight(typeNode.typeName), typeNode.typeArguments);
449
+ }
450
+ if (typescript_1.default.isImportTypeNode(typeNode) && typeNode.qualifier) {
451
+ return this.schemaFromNamedType(entityNameRight(typeNode.qualifier), typeNode.typeArguments);
499
452
  }
500
453
  if (typescript_1.default.isTypeLiteralNode(typeNode)) {
501
454
  const properties = {};
@@ -515,11 +468,25 @@ let DefaultControllerCache = class DefaultControllerCache extends di_1.AsyncServ
515
468
  }
516
469
  if (typescript_1.default.isUnionTypeNode(typeNode)) {
517
470
  const meaningful = typeNode.types.filter((t) => t.kind !== typescript_1.default.SyntaxKind.NullKeyword && t.kind !== typescript_1.default.SyntaxKind.UndefinedKeyword);
518
- if (meaningful.length === 1)
471
+ if (meaningful.length === 1) {
519
472
  return this.inferSchemaFromTypeNode(meaningful[0]);
473
+ }
520
474
  }
521
475
  return { type: 'object' };
522
476
  }
477
+ /**
478
+ * Schema for a named type: unwrap wrappers and `Array<T>`, otherwise tag it as a named object.
479
+ * The parser only names the type; http-swagger's providers expand it later.
480
+ */
481
+ schemaFromNamedType(name, typeArguments) {
482
+ if (TRANSPARENT_WRAPPERS.has(name) && typeArguments?.length) {
483
+ return this.inferSchemaFromTypeNode(typeArguments[0]);
484
+ }
485
+ if (name === 'Array' && typeArguments?.length) {
486
+ return { type: 'array', items: this.inferSchemaFromTypeNode(typeArguments[0]) };
487
+ }
488
+ return { type: 'object', description: name };
489
+ }
523
490
  };
524
491
  exports.DefaultControllerCache = DefaultControllerCache;
525
492
  __decorate([
@@ -537,20 +504,8 @@ __decorate([
537
504
  exports.DefaultControllerCache = DefaultControllerCache = __decorate([
538
505
  (0, di_1.Singleton)()
539
506
  ], DefaultControllerCache);
540
- /**
541
- * Pull parameter names from `Function.prototype.toString()` output. Modern V8
542
- * preserves the literal signature so we can regex out `(a, b = 1, ...rest)`.
543
- * Stripped of default values and TypeScript type annotations.
544
- */
545
- function parseFnParamNames(fn) {
546
- const src = Function.prototype.toString.call(fn);
547
- const match = src.match(/^[^(]*\(([\s\S]*?)\)/);
548
- if (!match)
549
- return [];
550
- return match[1]
551
- .split(',')
552
- .map((p) => p.trim())
553
- .filter(Boolean)
554
- .map((p) => p.replace(/^\.\.\./, '').split(/[=:]/)[0].trim());
507
+ /** Rightmost identifier of an entity name. */
508
+ function entityNameRight(name) {
509
+ return typescript_1.default.isIdentifier(name) ? name.text : name.right.text;
555
510
  }
556
511
  //# sourceMappingURL=cache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/cache.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAA4B;AAC5B,+BAAyE;AACzE,2BAAgC;AAChC,mCAAuC;AACvC,oCAA6E;AAC7E,oCAAgE;AAEhE,sCAA2C;AA2F3C,8EAA8E;AAE9E,uGAAuG;AACvG,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAS;IAC3C,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU;IAC5D,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW;IACnE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB;IACjD,2BAA2B,EAAE,WAAW;CACzC,CAAC,CAAC;AAGI,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,iBAAY;IAAjD;;QAmLL,8EAA8E;QAC9E,uBAAuB;QACvB,EAAE;QACF,2EAA2E;QAC3E,2EAA2E;QAC3E,iCAAiC;QACjC,8EAA8E;QAE9E;;;WAGG;QACa,kBAAa,GAAoB;YAC/C,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAA2B,EAAE,GAAG,CAAC,EAAE;YAClG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAwB,EAAE,GAAG,CAAC,EAAE;YAC5G,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAChF,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC9E,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC3F,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE;YAChF,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC9E,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;SACjF,CAAC;IAoSJ,CAAC;IAleQ,KAAK,CAAC,OAAO;QAClB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,kEAAkE;IAC3D,KAAK,CAAC,QAAQ,CAAC,UAAqC;QACzD,MAAM,IAAI,GAAG,IAAA,cAAW,EAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAE9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAErD,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAmC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAE7E,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YAEjF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAA6B,CAAC,CAAC;IACnG,CAAC;IAED,gFAAgF;IACzE,KAAK,CAAC,gBAAgB,CAAC,UAAqC;QACjE,MAAM,IAAI,GAAG,IAAA,cAAW,EAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAA6B,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,KAAK,CAAC,sBAAsB,CACjC,UAAqC,EACrC,WAAqB;QAErB,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAEzC,MAAM,YAAY,GAAG,IAAA,cAAW,EAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACpD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACxB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YAChD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,UAAU,QAAQ,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8EAA8E;IAC9E,oCAAoC;IACpC,8EAA8E;IAEtE,UAAU,CAAC,IAAY,EAAE,SAAiB;QAChD,MAAM,OAAO,GAAG,oBAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,UAAU,GAA6B,EAAE,CAAC;QAChD,MAAM,aAAa,GAA6B,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QAE3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QACvC,CAAC;QAED,oBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,CAAC,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS;gBAAE,OAAO;YAE1E,oBAAoB;YACpB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,YAAY;gBAAE,aAAa,CAAC,gBAAgB,GAAG,YAAY,CAAC;YAEhE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjG,IAAI,SAAS;gBAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAEnF,wBAAwB;YACxB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,oBAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;oBAAE,SAAS;gBAE9D,MAAM,UAAU,GAAW,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,MAAM,CAAC,IAAY,CAAC,WAAW,IAAI,EAAE,CAAC;gBACpH,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAE1B,4BAA4B;gBAC5B,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,IAAsB,CAAC,IAAI,CAAC,CAAC;gBAEtF,sBAAsB;gBACtB,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,2BAA2B;IAC3B,8EAA8E;IAEtE,gBAAgB,CAAC,MAA4B,EAAE,UAAyB;QAC9E,MAAM,GAAG,GAAe,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,IAAI,IAAI;gBAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACnC,CAAC;QAED,sDAAsD;QACtD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;YACnC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,GAAG,GAAyB,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACnE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACrB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAyBO,eAAe,CAAC,GAAyB,EAAE,GAAyB;QAC1E,MAAM,IAAI,GAAG,oBAAE,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,IAAY,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9F,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;YACrB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;YAC5C,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC;SAC3D,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAAsB,EAAE,GAAyB;QACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9E,CAAC;IAEO,kBAAkB,CAAC,GAAgB,EAAE,GAAyB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACvB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QAChC,IAAI,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/C,4EAA4E;QAC5E,IAAI,IAAwB,CAAC;QAC7B,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACtF,CAAC;IAEO,iBAAiB,CAAC,GAAgB,EAAE,GAAyB;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,EAAE;YAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,cAAc,CAAC,GAAgB,EAAE,GAAyB;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,iBAAiB,CAAC,GAAgB,EAAE,GAAyB;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG;YAAE,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;IACjC,CAAC;IAEO,kBAAkB,CAAC,GAAgB,EAAE,GAAyB;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YACf,oEAAoE;YACpE,gEAAgE;YAChE,qFAAqF;YACrF,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAa;QACnC,MAAM,MAAM,GAAI,IAAY,CAAC,KAA+B,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,gBAAgB,CAAC,IAAa,EAAE,OAAe;QACrD,MAAM,SAAS,GAAI,IAAY,CAAC,KAA+B,CAAC;QAChE,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI;gBAAE,SAAS;YAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC;YAC9E,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,eAAe,CAAC,IAAa;QACnC,MAAM,SAAS,GAAI,IAAY,CAAC,KAA+B,CAAC;QAChE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAEO,WAAW,CAAC,IAAyB,EAAE,UAAyB;QACtE,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,wDAAwD;IACxD,8EAA8E;IAE9E;;;;OAIG;IACK,cAAc,CAAC,IAAY;QACjC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;QACtC,MAAM,OAAO,GAAG,oBAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QAE5B,oBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,CAAC,oBAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAAE,OAAO;YAC1C,IAAI,CAAC,oBAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;gBAAE,OAAO;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YAE5C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC;YAC/C,IAAI,KAAK,IAAI,oBAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAChC,wDAAwD;oBACxD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,QAAgB,EAAE,SAAiB;QAC3D,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAA,cAAW,EAAC,IAAA,cAAO,EAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,SAAiB;QAC3C,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG;YACjB,GAAG,KAAK,OAAO;YACf,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;YACpC,SAAS;YACT,GAAG,KAAK,KAAK;YACb,GAAG,KAAK,KAAK;SACd,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAI,IAAA,iBAAU,EAAC,CAAC,CAAC,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,IAAY,EAAE,SAAiB;QACvD,MAAM,OAAO,GAAG,oBAAE,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,oBAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,IAAI,WAA+B,CAAC;QACpC,oBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACnC,IAAI,WAAW;gBAAE,OAAO;YACxB,IAAI,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjE,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,yEAAyE;QACzE,KAAK,WAAI,CAAC;QACV,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,GAAgB;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAQ,GAAG,CAAC,OAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/F,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,YAAY,CAAC,GAAgB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9F,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,8EAA8E;IAC9E,iDAAiD;IACjD,8EAA8E;IAEtE,uBAAuB,CAAC,QAAqB;QACnD,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7D,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7D,KAAK,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAC9D,KAAK,oBAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/B,KAAK,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC;YACpC,KAAK,oBAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/B,KAAK,oBAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAC9B,KAAK,oBAAE,CAAC,UAAU,CAAC,cAAc,CAAC;YAClC,KAAK,oBAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC/D,CAAC;QAED,IAAI,oBAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACtF,CAAC;QAED,IAAI,oBAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,oBAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,oBAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAgC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,oBAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACjE,IAAI,CAAC,MAAM,CAAC,aAAa;wBAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;YAC3D,IAAI,QAAQ,CAAC,MAAM;gBAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAChD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,oBAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAE,CAAC,UAAU,CAAC,gBAAgB,CACzF,CAAC;YACF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,IAAY,EAAE,aAAoD;QAC5F,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,IAAI,aAAa,EAAE,MAAM,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/C,CAAC;CACF,CAAA;AA5eY,wDAAsB;AAEvB;IADT,IAAA,YAAM,EAAC,MAAM,CAAC;8BACA,SAAG;mDAAC;AAGT;IADT,IAAA,eAAU,EAAC,yBAAyB,CAAC;8BACnB,OAAG;uDAAC;AAGb;IADT,IAAA,eAAU,EAAC,eAAU,CAAC;8BACL,eAAU;sDAAC;iCARlB,sBAAsB;IADlC,IAAA,cAAS,GAAE;GACC,sBAAsB,CA4elC;AAED,8CAA8C;AAC9C,SAAS,eAAe,CAAC,IAAmB;IAC1C,OAAO,oBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
2
  import Express from 'express';
3
- import { AsyncService, IContainer, ClassInfo, Class } from '@spinajs/di';
3
+ import { AsyncService, IContainer, ClassInfo } from '@spinajs/di';
4
4
  import { Log } from '@spinajs/log';
5
5
  import { DataValidator } from '@spinajs/validation';
6
6
  import { Configuration } from '@spinajs/configuration';
@@ -36,44 +36,14 @@ export declare abstract class BaseController extends AsyncService implements ICo
36
36
  }
37
37
  export declare class Controllers extends AsyncService {
38
38
  /**
39
- * File-scanned controller types (no instances). Each entry's `type` is
40
- * registered as `BaseController` in DI during `resolve()`, then every
41
- * controller — file-scanned and bootstrapper-registered alike — is
42
- * resolved through `Array.ofType(BaseController)`.
39
+ * Loaded controllers
43
40
  */
44
41
  Controllers: Promise<Array<ClassInfo<BaseController>>>;
45
42
  protected Log: Log;
46
43
  protected Container: IContainer;
47
44
  protected Server: HttpServer;
48
45
  protected ControllersCache: DefaultControllerCache;
49
- /**
50
- * Single Express router that all controllers' routers are mounted onto.
51
- * It occupies one fixed position in the parent Express stack, so
52
- * dynamically-added controllers (via {@link add}) land at the right place
53
- * automatically — Express evaluates sub-router stacks lazily on each
54
- * request. NotFound / Error middleware live AFTER this router via the
55
- * standard ServerMiddleware.after() lifecycle.
56
- */
57
- protected ControllersRouter: Express.Router;
58
- /**
59
- * Tracks which controller types have already been route-registered so
60
- * {@link add} is idempotent.
61
- */
62
- protected RegisteredTypes: Set<Class<BaseController>>;
63
- /**
64
- * Dynamically register a controller after startup. Equivalent to having
65
- * declared it via @Injectable / file-scan / bootstrapper registration
66
- * before `resolve()` ran, but usable at any point.
67
- *
68
- * Registers the type as BaseController (idempotent), resolves the
69
- * singleton instance, runs the per-controller cache + descriptor setup,
70
- * and mounts the controller's Router on the shared ControllersRouter.
71
- *
72
- * No Express stack mutation needed: the shared router was mounted once
73
- * during resolve() and lives at a fixed slot; the new controller's router
74
- * just becomes another entry in the shared router's internal stack.
75
- */
76
- add(type: Class<BaseController>): Promise<void>;
46
+ registerFromFile(file: string): Promise<void>;
77
47
  register(controller: ClassInfo<BaseController>): Promise<void>;
78
48
  resolve(): Promise<void>;
79
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAkB,SAAS,EAAa,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpG,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAiC,WAAW,EAAE,qBAAqB,EAAgG,0BAA0B,EAAW,MAAM,iBAAiB,CAAC;AAGvO,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMpD,8BAAsB,cAAe,SAAQ,YAAa,YAAW,WAAW;IAC9E;;OAEG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEtB,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,MAAM,CAAC;IAGnC,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAGlC,SAAS,CAAC,UAAU,EAAG,aAAa,CAAC;IAGrC,SAAS,CAAC,IAAI,EAAG,GAAG,CAAC;IAGrB,SAAS,CAAC,mBAAmB,EAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;IAG9E,SAAS,CAAC,IAAI,EAAG,aAAa,CAAC;IAI/B;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAAC,MAAM,CAElC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,qBAAqB,CAE7C;IAED;;;;OAIG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAEY,OAAO;CAqNrB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;;;;OAKG;IAEI,WAAW,EAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAG/D,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;IAGpB,SAAS,CAAC,SAAS,EAAG,UAAU,CAAC;IAGjC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC;IAG9B,SAAS,CAAC,gBAAgB,EAAG,sBAAsB,CAAC;IAEpD;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,EAAG,OAAO,CAAC,MAAM,CAAC;IAE7C;;;OAGG;IACH,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAa;IAElE;;;;;;;;;;;;OAYG;IACU,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC;IA6C9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmEtC"}
1
+ {"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAKrD,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAkB,SAAS,EAAa,MAAM,aAAa,CAAC;AAG7F,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAiC,WAAW,EAAE,qBAAqB,EAAgG,0BAA0B,EAAW,MAAM,iBAAiB,CAAC;AAGvO,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMpD,8BAAsB,cAAe,SAAQ,YAAa,YAAW,WAAW;IAC9E;;OAEG;IACH,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEtB,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,MAAM,CAAC;IAGnC,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC;IAGlC,SAAS,CAAC,UAAU,EAAG,aAAa,CAAC;IAGrC,SAAS,CAAC,IAAI,EAAG,GAAG,CAAC;IAGrB,SAAS,CAAC,mBAAmB,EAAG,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;IAG9E,SAAS,CAAC,IAAI,EAAG,aAAa,CAAC;IAI/B;;OAEG;IACH,IAAW,MAAM,IAAI,OAAO,CAAC,MAAM,CAElC;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,qBAAqB,CAE7C;IAED;;;;OAIG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAEY,OAAO;CAqNrB;AAED,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;OAEG;IAEI,WAAW,EAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAG/D,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;IAGpB,SAAS,CAAC,SAAS,EAAG,UAAU,CAAC;IAGjC,SAAS,CAAC,MAAM,EAAG,UAAU,CAAC;IAG9B,SAAS,CAAC,gBAAgB,EAAG,sBAAsB,CAAC;IAEvC,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAuC7B,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC;IAqC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CActC"}
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  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
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -15,6 +48,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
48
  exports.Controllers = exports.BaseController = void 0;
16
49
  const node_async_hooks_1 = require("node:async_hooks");
17
50
  const types_1 = require("node:util/types");
51
+ const node_path_1 = require("node:path");
52
+ const fs = __importStar(require("node:fs"));
18
53
  const express_1 = __importDefault(require("express"));
19
54
  const lodash_1 = __importDefault(require("lodash"));
20
55
  const di_1 = require("@spinajs/di");
@@ -257,49 +292,39 @@ __decorate([
257
292
  __metadata("design:type", configuration_1.Configuration)
258
293
  ], BaseController.prototype, "_cfg", void 0);
259
294
  class Controllers extends di_1.AsyncService {
260
- constructor() {
261
- super(...arguments);
262
- /**
263
- * Tracks which controller types have already been route-registered so
264
- * {@link add} is idempotent.
265
- */
266
- this.RegisteredTypes = new Set();
267
- }
268
- /**
269
- * Dynamically register a controller after startup. Equivalent to having
270
- * declared it via @Injectable / file-scan / bootstrapper registration
271
- * before `resolve()` ran, but usable at any point.
272
- *
273
- * Registers the type as BaseController (idempotent), resolves the
274
- * singleton instance, runs the per-controller cache + descriptor setup,
275
- * and mounts the controller's Router on the shared ControllersRouter.
276
- *
277
- * No Express stack mutation needed: the shared router was mounted once
278
- * during resolve() and lives at a fixed slot; the new controller's router
279
- * just becomes another entry in the shared router's internal stack.
280
- */
281
- async add(type) {
282
- if (this.RegisteredTypes.has(type)) {
283
- this.Log.trace(`Controller ${type.name} already registered, skipping`);
284
- return;
295
+ async registerFromFile(file) {
296
+ if (!fs.existsSync(file)) {
297
+ throw new exceptions_1.IOFail(`Controller file at path ${file} not found`);
285
298
  }
286
- di_1.DI.register(type).as(BaseController);
287
- const instance = (await di_1.DI.resolve(type));
299
+ const types = await di_1.DI.__spinajs_require__(file.replace('.js', '.d.ts'));
300
+ const typeName = (0, node_path_1.basename)((0, node_path_1.basename)(file, '.js'), '.ts');
301
+ const type = types[typeName];
302
+ const instance = await di_1.DI.resolve(type);
288
303
  const ci = new di_1.ClassInfo();
289
- ci.name = type.name;
290
- ci.type = type;
304
+ ci.file = file.replace('.js', '.d.ts');
291
305
  ci.instance = instance;
292
- // Source file was captured at decoration time by the route decorators.
293
- // Sentinel only if nothing was captured (no route decorators ran).
294
- ci.file = instance.Descriptor?.SourceFile ?? '<dynamic>';
306
+ ci.name = typeName;
307
+ ci.type = type;
308
+ // ensure dynamically added controllers are registered before 404/error middleware
309
+ const expressRouter = this.Server.Express?._router;
310
+ const tail = [];
311
+ if (expressRouter?.stack?.length) {
312
+ const last = expressRouter.stack[expressRouter.stack.length - 1];
313
+ if (last?.handle?.length === 4) {
314
+ tail.unshift(expressRouter.stack.pop());
315
+ }
316
+ const last2 = expressRouter.stack[expressRouter.stack.length - 1];
317
+ if (last2?.handle?.length === 3) {
318
+ tail.unshift(expressRouter.stack.pop());
319
+ }
320
+ }
295
321
  await this.register(ci);
322
+ if (tail.length && expressRouter?.stack) {
323
+ expressRouter.stack.push(...tail);
324
+ }
296
325
  }
297
326
  async register(controller) {
298
327
  this.Log.trace(`Loading controller: ${controller.name}`);
299
- if (controller.type && this.RegisteredTypes.has(controller.type)) {
300
- this.Log.trace(`Controller ${controller.name} already registered, skipping`);
301
- return;
302
- }
303
328
  const parameters = await this.ControllersCache.getCache(controller);
304
329
  if (!controller.instance) {
305
330
  this.Log.warn(`Controller ${controller.name} in file ${controller.file} is not resolved. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
@@ -327,76 +352,24 @@ class Controllers extends di_1.AsyncService {
327
352
  this.Log.warn(`Controller ${controller.name} in file ${controller.file} has no router instance. Check if it extends BaseController and super.resolve() is called in resolve method`);
328
353
  return;
329
354
  }
330
- this.ControllersRouter.use(controller.instance.Router);
331
- if (controller.type) {
332
- this.RegisteredTypes.add(controller.type);
333
- }
355
+ this.Server.use(controller.instance.Router);
334
356
  }
335
357
  }
336
358
  async resolve() {
337
359
  await super.resolve();
338
- // Shared sub-router. All controller routers mount onto this one; this
339
- // one mounts onto Express exactly once. Dynamic adds land here too,
340
- // which is how `add()` avoids the old Express-stack juggling.
341
- this.ControllersRouter = express_1.default.Router();
342
- // Two registration paths converge here:
343
- // 1. Directory-scanned controllers (existing behavior). @ListFromFiles
344
- // hands us the class types; we register each as `BaseController` so
345
- // they show up in the DI collection.
346
- // 2. Bootstrapper-registered controllers. A package's Bootstrapper can
347
- // conditionally call `DI.register(MyController).as(BaseController)`
348
- // before this service resolves. Those classes are already in the
349
- // collection by the time we get here.
350
- // Resolving `Array.ofType(BaseController)` then instantiates everything
351
- // in a single pass — file-scanned + bootstrap-registered, with class
352
- // identity dedupe (multiple `as(BaseController)` calls for the same type
353
- // resolve to one singleton).
354
- const listed = await this.Controllers;
355
- // Remember the original file path per type so the second loop can preserve
356
- // it. Without this every controller would end up tagged `<di>`, breaking
357
- // ControllersCache.getCache() which expects a real on-disk source file.
358
- const fileByType = new Map();
359
- for (const ci of lodash_1.default.uniqBy(listed, c => c.name)) {
360
- if (!ci.type) {
361
- this.Log.warn(`Controller ${ci.name} in file ${ci.file} has no type. Make sure it is decorated with @injectable and has a public constructor without required parameters`);
362
- continue;
363
- }
364
- ;
365
- fileByType.set(ci.type, ci);
366
- di_1.DI.register(ci.type).as(BaseController);
367
- this.Log.trace(`Controller ${ci.name} from ${ci.file} registered as BaseController`);
368
- }
369
- const instances = (await di_1.DI.resolve(Array.ofType(BaseController)));
370
- for (const instance of instances) {
371
- const type = instance.constructor;
372
- const originalCi = fileByType.get(type);
373
- const ci = originalCi ?? Object.assign(new di_1.ClassInfo(), {
374
- name: type.name,
375
- type,
376
- instance,
377
- // For DI-registered controllers without a file scan entry, fall back
378
- // to the source file captured at decoration time by `Controller()`.
379
- // Only sentinel '<di>' if nothing was captured (abstract base, or no
380
- // route decorators ran).
381
- file: instance.Descriptor?.SourceFile ?? '<di>',
382
- });
383
- // The file-scanned entry has no instance (List, not Resolve) — patch it.
384
- if (!ci.instance)
385
- ci.instance = instance;
386
- await this.register(ci);
360
+ const controllers = await this.Controllers;
361
+ for (const c of controllers) {
362
+ await this.register(c);
387
363
  }
388
- // Mount the shared controllers router on the Express app ONCE. From here
389
- // on, anything added via `this.ControllersRouter.use(...)` (including
390
- // future `add()` calls) is picked up by Express automatically.
391
- // NotFound / Error handling is handled by NotFoundMiddleware and
392
- // ErrorHandlerMiddleware (ServerMiddleware impls), attached to the
393
- // Express stack tail during HttpServer.start().
394
- this.Server.use(this.ControllersRouter);
364
+ this.Server.use((req, _res, next) => {
365
+ next(new exceptions_1.ResourceNotFound(`Route not found: ${req.method} ${req.originalUrl}`));
366
+ });
367
+ this.Server.use((0, error_js_1.__handle_error__)()); // Global error handler
395
368
  }
396
369
  }
397
370
  exports.Controllers = Controllers;
398
371
  __decorate([
399
- (0, reflection_1.ListFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
372
+ (0, reflection_1.ResolveFromFiles)('/**/!(*.d).{ts,js}', 'system.dirs.controllers'),
400
373
  __metadata("design:type", Promise)
401
374
  ], Controllers.prototype, "Controllers", void 0);
402
375
  __decorate([