inviton-backduck 1.0.12 → 1.0.15

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.
@@ -93,6 +93,17 @@ export declare class TypeResolver {
93
93
  private sourceFileCache;
94
94
  /** Cache for directory file listings */
95
95
  private directoryFilesCache;
96
+ /** Negative cache: type names already searched for and not found. Avoids repeated whole-tree walks. */
97
+ private notFoundCache;
98
+ /** Lazily-built index of declaration name -> file path(s). Replaces full tree walks. */
99
+ private typeNameIndex;
100
+ /** Per-source-file import map cache, used to resolve ambiguous type names via the file's actual imports. */
101
+ private sourceFileImportsCache;
102
+ /**
103
+ * Type names that are guaranteed not to resolve to a user-defined declaration
104
+ * (TS primitives, common built-ins, TS utility-type tags). Filtered out before any disk walk.
105
+ */
106
+ private static readonly UNRESOLVABLE_NAMES;
96
107
  constructor(serverDir: string);
97
108
  /**
98
109
  * Resolve a type by name and return its OpenAPI schema
@@ -227,9 +238,38 @@ export declare class TypeResolver {
227
238
  */
228
239
  private resolveTypeFromSymbol;
229
240
  /**
230
- * Find type declaration by name
241
+ * Find type declaration by name.
242
+ *
243
+ * Lookup order, fastest first:
244
+ * 0. Reject obvious non-declaration names (primitives, type expressions like "string|null").
245
+ * 1. Negative cache (we already failed to find this name in a previous call).
246
+ * 2. Inside the provided source file (cheap, hash-keyed).
247
+ * 3. Follow imports of the provided source file to the file that actually declares the
248
+ * type — this disambiguates name collisions across the codebase.
249
+ * 4. Indexed lookup against a regex-built `typeNameIndex` (built once, ~50ms for ~2k files).
250
+ * 5. Fallback scan of files already loaded into the ts-morph project, in case the
251
+ * regex index missed something (transitive types pulled in by the TypeChecker).
252
+ * 6. Record a negative-cache entry so subsequent lookups for the same missing name are O(1).
231
253
  */
232
254
  private findTypeDeclaration;
255
+ /**
256
+ * Identify type names that can never name a user declaration so we can skip the disk walk.
257
+ * Catches primitives, TS utility-type tags, and any compound type expression.
258
+ */
259
+ private static isUnresolvableTypeName;
260
+ /**
261
+ * Try to locate the declaration of `typeName` by following the source file's imports.
262
+ * Returns a Node if found via a direct import or a one-level `export { X } from './x'`
263
+ * re-export. Used to disambiguate when the same name is declared in multiple files.
264
+ */
265
+ private findTypeViaImports;
266
+ /** Resolve a relative module specifier to an absolute file path (.ts/.tsx/.d.ts/index.ts). */
267
+ private resolveModuleSpecifier;
268
+ /**
269
+ * Build the type-name → file-path index by regex-scanning every .ts file under the
270
+ * configured services + apiInterfaces + data directories. Run once on first miss.
271
+ */
272
+ private buildTypeNameIndex;
233
273
  /**
234
274
  * Find type in a specific source file
235
275
  */
@@ -1 +1 @@
1
- {"version":3,"file":"type-resolver.d.ts","sourceRoot":"","sources":["../../src/apidoc/type-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-resolver.d.ts","sourceRoot":"","sources":["../../src/apidoc/type-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIX,iBAAiB,EACjB,UAAU,EAEV,IAAI,EAEJ,MAAM,UAAU,CAAC;AASlB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,WAAW,CAAC;IAClB,uCAAuC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,wBAAwB;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,yGAAyG;IACzG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC/C,iCAAiC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,qCAAqC;IACrC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC5B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uDAAuD;IACvD,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,mCAAmC;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACjC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,YAAY;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,qBAAqB,CAAuD;IACpF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAM;IAC3C,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,oCAAoC;IACpC,OAAO,CAAC,eAAe,CAAsC;IAC7D,wCAAwC;IACxC,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,uGAAuG;IACvG,OAAO,CAAC,aAAa,CAA0B;IAC/C,wFAAwF;IACxF,OAAO,CAAC,aAAa,CAAsC;IAC3D,4GAA4G;IAC5G,OAAO,CAAC,sBAAsB,CAAgF;IAE9G;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAOvC;gBAES,SAAS,EAAE,MAAM;IAQ7B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI;IAmC3E;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,WAAW;IA+B5D;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW;IA8B/D;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgQ/B;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;IAYhE;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC;IAIhD;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAiBvD;;;;;OAKG;IACH,mCAAmC,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,IAAI;IA2ClI;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAsCvC;;OAEG;IACH,OAAO,CAAC,uCAAuC;IAU/C;;;;;OAKG;IACH,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA6CnF;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+D3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAiDpB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAqD5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAgCjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoFxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2BvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAapC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqDvB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAyD7B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,mBAAmB;IA2D3B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAoBrC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAyH1B,8FAA8F;IAC9F,OAAO,CAAC,sBAAsB;IAsB9B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoE1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2C5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAuBrB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,WAAW;CAgBnB"}
@@ -20,6 +20,24 @@ export class TypeResolver {
20
20
  sourceFileCache = new Map();
21
21
  /** Cache for directory file listings */
22
22
  directoryFilesCache = new Map();
23
+ /** Negative cache: type names already searched for and not found. Avoids repeated whole-tree walks. */
24
+ notFoundCache = new Set();
25
+ /** Lazily-built index of declaration name -> file path(s). Replaces full tree walks. */
26
+ typeNameIndex = null;
27
+ /** Per-source-file import map cache, used to resolve ambiguous type names via the file's actual imports. */
28
+ sourceFileImportsCache = new Map();
29
+ /**
30
+ * Type names that are guaranteed not to resolve to a user-defined declaration
31
+ * (TS primitives, common built-ins, TS utility-type tags). Filtered out before any disk walk.
32
+ */
33
+ static UNRESOLVABLE_NAMES = new Set([
34
+ 'string', 'number', 'boolean', 'bigint', 'symbol',
35
+ 'void', 'never', 'unknown', 'any', 'object', 'undefined', 'null',
36
+ 'Pick', 'Omit', 'Partial', 'Required', 'Readonly', 'Record',
37
+ 'Promise', 'Array', 'Map', 'Set', 'Date', 'RegExp', 'Error',
38
+ 'Buffer', 'ArrayBuffer', 'Uint8Array',
39
+ 'this',
40
+ ]);
23
41
  constructor(serverDir) {
24
42
  this.serverDir = path.resolve(serverDir);
25
43
  this.project = new Project({
@@ -1064,55 +1082,261 @@ export class TypeResolver {
1064
1082
  return this.resolveType(name, sourceFile);
1065
1083
  }
1066
1084
  /**
1067
- * Find type declaration by name
1085
+ * Find type declaration by name.
1086
+ *
1087
+ * Lookup order, fastest first:
1088
+ * 0. Reject obvious non-declaration names (primitives, type expressions like "string|null").
1089
+ * 1. Negative cache (we already failed to find this name in a previous call).
1090
+ * 2. Inside the provided source file (cheap, hash-keyed).
1091
+ * 3. Follow imports of the provided source file to the file that actually declares the
1092
+ * type — this disambiguates name collisions across the codebase.
1093
+ * 4. Indexed lookup against a regex-built `typeNameIndex` (built once, ~50ms for ~2k files).
1094
+ * 5. Fallback scan of files already loaded into the ts-morph project, in case the
1095
+ * regex index missed something (transitive types pulled in by the TypeChecker).
1096
+ * 6. Record a negative-cache entry so subsequent lookups for the same missing name are O(1).
1068
1097
  */
1069
1098
  findTypeDeclaration(typeName, sourceFile) {
1070
- // First search in the provided source file
1099
+ if (TypeResolver.isUnresolvableTypeName(typeName)) {
1100
+ return null;
1101
+ }
1102
+ if (this.notFoundCache.has(typeName)) {
1103
+ return null;
1104
+ }
1071
1105
  if (sourceFile) {
1072
- const found = this.findTypeInSourceFile(typeName, sourceFile);
1073
- if (found) {
1074
- return found;
1106
+ const direct = this.findTypeInSourceFile(typeName, sourceFile);
1107
+ if (direct) {
1108
+ return direct;
1109
+ }
1110
+ const viaImport = this.findTypeViaImports(typeName, sourceFile);
1111
+ if (viaImport) {
1112
+ return viaImport;
1075
1113
  }
1076
1114
  }
1077
- // Search in all loaded source files
1115
+ if (!this.typeNameIndex) {
1116
+ this.buildTypeNameIndex();
1117
+ }
1118
+ const candidatePaths = this.typeNameIndex.get(typeName);
1119
+ if (candidatePaths) {
1120
+ for (const filePath of candidatePaths) {
1121
+ try {
1122
+ const sf = this.project.addSourceFileAtPath(filePath);
1123
+ const found = this.findTypeInSourceFile(typeName, sf);
1124
+ if (found) {
1125
+ return found;
1126
+ }
1127
+ }
1128
+ catch {
1129
+ // Loaded already or invalid path
1130
+ }
1131
+ }
1132
+ }
1133
+ // Fallback: scan files already in the ts-morph project. This covers types the
1134
+ // regex-based index can't see (e.g. inline-declared types in already-loaded files).
1078
1135
  for (const sf of this.project.getSourceFiles()) {
1079
1136
  const found = this.findTypeInSourceFile(typeName, sf);
1080
1137
  if (found) {
1081
1138
  return found;
1082
1139
  }
1083
1140
  }
1084
- // Try to find in services directory
1085
- const servicesDir = ApiDocConfig.getConfig().getSourcePath(this.serverDir, 'services');
1086
- const argsFiles = this.findFilesRecursive(servicesDir, '**/*.ts');
1087
- for (const filePath of argsFiles) {
1088
- try {
1089
- const sf = this.project.addSourceFileAtPath(filePath);
1090
- const found = this.findTypeInSourceFile(typeName, sf);
1091
- if (found) {
1092
- return found;
1141
+ this.notFoundCache.add(typeName);
1142
+ return null;
1143
+ }
1144
+ /**
1145
+ * Identify type names that can never name a user declaration so we can skip the disk walk.
1146
+ * Catches primitives, TS utility-type tags, and any compound type expression.
1147
+ */
1148
+ static isUnresolvableTypeName(typeName) {
1149
+ if (!typeName) {
1150
+ return true;
1151
+ }
1152
+ const trimmed = typeName.trim();
1153
+ if (trimmed.length === 0 || trimmed === '__type') {
1154
+ return true;
1155
+ }
1156
+ if (TypeResolver.UNRESOLVABLE_NAMES.has(trimmed)) {
1157
+ return true;
1158
+ }
1159
+ // Any of these characters indicates the input isn't a bare identifier
1160
+ // (unions, intersections, generics, tuples, literals, parens, predicates).
1161
+ return /[\s|&\[\](){}<>'"`,;]/.test(trimmed);
1162
+ }
1163
+ /**
1164
+ * Try to locate the declaration of `typeName` by following the source file's imports.
1165
+ * Returns a Node if found via a direct import or a one-level `export { X } from './x'`
1166
+ * re-export. Used to disambiguate when the same name is declared in multiple files.
1167
+ */
1168
+ findTypeViaImports(typeName, sourceFile) {
1169
+ const sfPath = sourceFile.getFilePath();
1170
+ let importMap = this.sourceFileImportsCache.get(sfPath);
1171
+ if (!importMap) {
1172
+ importMap = new Map();
1173
+ for (const importDecl of sourceFile.getImportDeclarations()) {
1174
+ const moduleSpec = importDecl.getModuleSpecifierValue();
1175
+ if (!moduleSpec) {
1176
+ continue;
1177
+ }
1178
+ const defaultImport = importDecl.getDefaultImport();
1179
+ if (defaultImport) {
1180
+ importMap.set(defaultImport.getText(), moduleSpec);
1181
+ }
1182
+ for (const named of importDecl.getNamedImports()) {
1183
+ const alias = named.getAliasNode();
1184
+ const localName = alias ? alias.getText() : named.getName();
1185
+ const originalName = named.getName();
1186
+ importMap.set(localName, { spec: moduleSpec, name: originalName });
1093
1187
  }
1094
1188
  }
1095
- catch {
1096
- // File already added or invalid
1097
- }
1189
+ this.sourceFileImportsCache.set(sfPath, importMap);
1098
1190
  }
1099
- // Try to find in data directory
1100
- const dataDir = path.join(this.serverDir, 'src', 'data');
1101
- const dataFiles = this.findFilesRecursive(dataDir, '**/*.ts');
1102
- for (const filePath of dataFiles) {
1103
- try {
1104
- const sf = this.project.addSourceFileAtPath(filePath);
1105
- const found = this.findTypeInSourceFile(typeName, sf);
1106
- if (found) {
1107
- return found;
1191
+ const entry = importMap.get(typeName);
1192
+ if (!entry) {
1193
+ return null;
1194
+ }
1195
+ const moduleSpec = typeof entry === 'string' ? entry : entry.spec;
1196
+ const lookupName = typeof entry === 'string' ? typeName : entry.name;
1197
+ // Only relative paths can be resolved without a full module resolver.
1198
+ if (!moduleSpec.startsWith('.')) {
1199
+ return null;
1200
+ }
1201
+ const resolvedPath = this.resolveModuleSpecifier(sfPath, moduleSpec);
1202
+ if (!resolvedPath) {
1203
+ return null;
1204
+ }
1205
+ let targetSf;
1206
+ try {
1207
+ targetSf = this.project.addSourceFileAtPath(resolvedPath);
1208
+ }
1209
+ catch {
1210
+ return null;
1211
+ }
1212
+ const direct = this.findTypeInSourceFile(lookupName, targetSf);
1213
+ if (direct) {
1214
+ return direct;
1215
+ }
1216
+ // Follow one level of re-export: `export { X } from './x'` or `export * from './x'`.
1217
+ for (const exportDecl of targetSf.getExportDeclarations()) {
1218
+ const expSpec = exportDecl.getModuleSpecifierValue();
1219
+ if (!expSpec) {
1220
+ continue;
1221
+ }
1222
+ const nestedPath = this.resolveModuleSpecifier(resolvedPath, expSpec);
1223
+ if (!nestedPath) {
1224
+ continue;
1225
+ }
1226
+ const named = exportDecl.getNamedExports();
1227
+ if (named.length === 0) {
1228
+ // `export * from './x'`
1229
+ try {
1230
+ const nestedSf = this.project.addSourceFileAtPath(nestedPath);
1231
+ const found = this.findTypeInSourceFile(lookupName, nestedSf);
1232
+ if (found) {
1233
+ return found;
1234
+ }
1235
+ }
1236
+ catch {
1237
+ // ignore
1108
1238
  }
1109
1239
  }
1110
- catch {
1111
- // File already added or invalid
1240
+ else {
1241
+ for (const n of named) {
1242
+ const aliasNode = n.getAliasNode();
1243
+ const exportedAs = aliasNode ? aliasNode.getText() : n.getName();
1244
+ if (exportedAs !== lookupName) {
1245
+ continue;
1246
+ }
1247
+ const realName = n.getName();
1248
+ try {
1249
+ const nestedSf = this.project.addSourceFileAtPath(nestedPath);
1250
+ const found = this.findTypeInSourceFile(realName, nestedSf);
1251
+ if (found) {
1252
+ return found;
1253
+ }
1254
+ }
1255
+ catch {
1256
+ // ignore
1257
+ }
1258
+ }
1112
1259
  }
1113
1260
  }
1114
1261
  return null;
1115
1262
  }
1263
+ /** Resolve a relative module specifier to an absolute file path (.ts/.tsx/.d.ts/index.ts). */
1264
+ resolveModuleSpecifier(fromFile, moduleSpec) {
1265
+ const fromDir = path.dirname(fromFile);
1266
+ const base = path.resolve(fromDir, moduleSpec);
1267
+ const candidates = [
1268
+ `${base}.ts`,
1269
+ `${base}.tsx`,
1270
+ `${base}.d.ts`,
1271
+ path.join(base, 'index.ts'),
1272
+ path.join(base, 'index.tsx'),
1273
+ path.join(base, 'index.d.ts'),
1274
+ ];
1275
+ for (const candidate of candidates) {
1276
+ if (fs.existsSync(candidate)) {
1277
+ return candidate;
1278
+ }
1279
+ }
1280
+ return null;
1281
+ }
1282
+ /**
1283
+ * Build the type-name → file-path index by regex-scanning every .ts file under the
1284
+ * configured services + apiInterfaces + data directories. Run once on first miss.
1285
+ */
1286
+ buildTypeNameIndex() {
1287
+ const index = new Map();
1288
+ const scanRoots = [];
1289
+ try {
1290
+ const cfg = ApiDocConfig.getConfig();
1291
+ const servicesDir = cfg.getSourcePath(this.serverDir, 'services');
1292
+ if (servicesDir && fs.existsSync(servicesDir)) {
1293
+ scanRoots.push(servicesDir);
1294
+ }
1295
+ if (cfg.apiInterfaces) {
1296
+ for (const key of Object.keys(cfg.apiInterfaces)) {
1297
+ const p = cfg.getSourcePath(this.serverDir, key);
1298
+ if (p && fs.existsSync(p) && !scanRoots.includes(p)) {
1299
+ scanRoots.push(p);
1300
+ }
1301
+ }
1302
+ }
1303
+ }
1304
+ catch {
1305
+ // Config not set yet - the data dir fallback below still indexes shared types.
1306
+ }
1307
+ const dataDir = path.join(this.serverDir, 'src', 'data');
1308
+ if (fs.existsSync(dataDir) && !scanRoots.includes(dataDir)) {
1309
+ scanRoots.push(dataDir);
1310
+ }
1311
+ // `export (default|abstract|declare)* (interface|class|type|enum|const enum) Name`
1312
+ const declRegex = /\bexport\s+(?:default\s+|abstract\s+|declare\s+)*(?:interface|class|type|enum|const\s+enum)\s+([A-Za-z_$][\w$]*)/g;
1313
+ for (const root of scanRoots) {
1314
+ const files = this.findFilesRecursive(root, '**/*.ts');
1315
+ for (const filePath of files) {
1316
+ let content;
1317
+ try {
1318
+ content = fs.readFileSync(filePath, 'utf8');
1319
+ }
1320
+ catch {
1321
+ continue;
1322
+ }
1323
+ let m;
1324
+ declRegex.lastIndex = 0;
1325
+ while ((m = declRegex.exec(content)) !== null) {
1326
+ const name = m[1];
1327
+ let arr = index.get(name);
1328
+ if (!arr) {
1329
+ arr = [];
1330
+ index.set(name, arr);
1331
+ }
1332
+ if (!arr.includes(filePath)) {
1333
+ arr.push(filePath);
1334
+ }
1335
+ }
1336
+ }
1337
+ }
1338
+ this.typeNameIndex = index;
1339
+ }
1116
1340
  /**
1117
1341
  * Find type in a specific source file
1118
1342
  */
@@ -1 +1 @@
1
- {"version":3,"file":"type-resolver.js","sourceRoot":"","sources":["../../src/apidoc/type-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-resolver.js","sourceRoot":"","sources":["../../src/apidoc/type-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"expressRouter.d.ts","sourceRoot":"","sources":["../../src/express/expressRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,IAAI,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAyC,MAAM,mBAAmB,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO5C,UAAU,eAAe;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,YAAY,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAClD,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3C;AA+FD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,YAAY,GAAG,oBAAoB,MAC5E,KAAK,UAAU,EACf,KAAK,UAAU,EACf,MAAM,YAAY,kBAalB,CAAC;AAmCF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,eAAe,EAAE,EACzB,YAAY,cAAc,EAAE,EAC5B,oBAAmB,oBAAoB,EAAO,KAC5C,OAAO,CAAC,aAAa,CA0CvB,CAAC"}
1
+ {"version":3,"file":"expressRouter.d.ts","sourceRoot":"","sources":["../../src/express/expressRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,IAAI,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAyC,MAAM,mBAAmB,CAAC;AACnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAO5C,UAAU,eAAe;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,YAAY,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAClD,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3C;AA0HD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,YAAY,GAAG,oBAAoB,MAC5E,KAAK,UAAU,EACf,KAAK,UAAU,EACf,MAAM,YAAY,kBAalB,CAAC;AAmCF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,QAAQ,eAAe,EAAE,EACzB,YAAY,cAAc,EAAE,EAC5B,oBAAmB,oBAAoB,EAAO,KAC5C,OAAO,CAAC,aAAa,CA0CvB,CAAC"}
@@ -6,21 +6,48 @@ import { createMultipartMiddleware } from '../multipart';
6
6
  const UNI_REQ_KEY = Symbol('uniReq');
7
7
  const UNI_RES_KEY = Symbol('uniRes');
8
8
  /**
9
- * Convert Express request to WebRequest
9
+ * Convert Express request to WebRequest.
10
+ *
11
+ * `getOrCreateUniversal` caches the universal-req on the FIRST middleware that
12
+ * wraps the request via `toExpressHandler`. In apps that register a
13
+ * `pathMiddleware` on a body-method route, that first wrap happens BEFORE the
14
+ * per-route `express.json()`/`urlencoded`/multipart parsers populate `req.body`
15
+ * (or `req.files`), and BEFORE inner sub-routers resolve `req.params`. A naive
16
+ * snapshot would freeze those fields to their pre-middleware values forever —
17
+ * the controller's `args = req.body` would crash with `Cannot read properties
18
+ * of undefined (...)`.
19
+ *
20
+ * To stay safe regardless of mount order, fields that downstream middleware can
21
+ * still populate are exposed through getters that read the live Express request
22
+ * on each access. Fields that are stable for the lifetime of the request
23
+ * (`method`, `url`, `originalUrl`, `query`, `headers`, `ip`) remain plain
24
+ * values.
10
25
  */
11
26
  const expressToUniversalReq = (req) => ({
12
27
  method: req.method,
13
28
  url: req.url,
14
29
  originalUrl: req.originalUrl,
15
- path: req.path,
30
+ // `path` is derived from `url`, which can shift as Express dispatches into
31
+ // sub-routers — read live.
32
+ get path() { return req.path; },
16
33
  query: req.query,
17
- params: req.params,
18
- body: req.body,
34
+ // `params` is populated by sub-router pattern matching, which happens AFTER
35
+ // the snapshot is taken for any earlier-mounted wrapped middleware.
36
+ get params() { return req.params; },
37
+ // `body` is populated by per-route body parsers (json/urlencoded/multipart)
38
+ // that run AFTER any wrapped path-level middleware.
39
+ get body() { return req.body; },
19
40
  headers: { get: (name) => req.get(name) },
20
41
  ip: req.ip || req.socket?.remoteAddress || '',
21
- cookies: req.cookies,
22
- signedCookies: req.signedCookies,
23
- files: req.files,
42
+ // `cookies`/`signedCookies` are populated by the server-level `cookieParser`
43
+ // which runs before any wrapped middleware, so they are safe as values —
44
+ // but using getters costs nothing and keeps them consistent with the
45
+ // late-population guarantee above.
46
+ get cookies() { return req.cookies; },
47
+ get signedCookies() { return req.signedCookies; },
48
+ // `files` is populated by the per-route multipart middleware, same timing
49
+ // as `body`.
50
+ get files() { return req.files; },
24
51
  });
25
52
  /**
26
53
  * Convert Express response to WebResponse
@@ -1 +1 @@
1
- {"version":3,"file":"expressRouter.js","sourceRoot":"","sources":["../../src/express/expressRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressRouter.js","sourceRoot":"","sources":["../../src/express/expressRouter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,4EAA4E;AAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAiBrC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,qBAAqB,GAAG,CAAC,GAAe,EAAc,EAAE,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,GAAG,EAAE,GAAG,CAAC,GAAG;IACZ,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,2EAA2E;IAC3E,2BAA2B;IAC3B,IAAI,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,KAAK,EAAE,GAAG,CAAC,KAA4B;IACvC,4EAA4E;IAC5E,oEAAoE;IACpE,IAAI,MAAM,KAAK,OAAO,GAAG,CAAC,MAAa,CAAC,CAAC,CAAC;IAC1C,4EAA4E;IAC5E,oDAAoD;IACpD,IAAI,IAAI,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;IACjD,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,EAAE;IAC7C,6EAA6E;IAC7E,yEAAyE;IACzE,qEAAqE;IACrE,mCAAmC;IACnC,IAAI,OAAO,KAAK,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACrC,IAAI,aAAa,KAAK,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IACjD,0EAA0E;IAC1E,aAAa;IACb,IAAI,KAAK,KAAK,OAAQ,GAAW,CAAC,KAAmC,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC;AAEH;;GAEG;AAEH,MAAM,qBAAqB,GAAG,CAAC,GAAe,EAAe,EAAE;IAC9D,MAAM,MAAM,GAAgB;QAC3B,UAAU,EAAE,GAAG;QACf,MAAM,CAAC,IAAY;YAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,EAAE,CAAC,IAAS,EAAE,EAAE;YACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,UAAU,EAAE,CAAC,IAAuC,EAAE,EAAE;YACvD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QACD,SAAS,EAAE,CAAC,IAAY,EAAE,KAAsB,EAAE,EAAE;YACnD,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,MAAM,CAAC;QACf,CAAC;QACD,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE;YACzB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,WAAW;YACd,OAAO,GAAG,CAAC,WAAW,CAAC;QACxB,CAAC;QACD,MAAM,EAAE,CACP,IAAY,EACZ,KAAa,EACb,OAAa,EACZ,EAAE;YACH,GAAG,CAAC,MAAM,CACT,IAAI,EACJ,KAAK,EACL,OAAO,CACP,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC;QACD,WAAW,EAAE,CAAC,IAAY,EAAE,OAAa,EAAE,EAAE;YAC5C,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC/B,OAAO,MAAM,CAAC;QACf,CAAC;QACD,QAAQ,EAAE,CAAC,QAAoB,EAAE,EAAE;YAClC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC;KACD,CAAC;IAEF,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,CAAC,GAAe,EAAE,GAAe,EAA+C,EAAE;IAC9G,IAAI,CAAE,GAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,GAAW,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACtD,GAAW,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACN,MAAM,EAAG,GAAW,CAAC,WAAW,CAAC;QACjC,MAAM,EAAG,GAAW,CAAC,WAAW,CAAC;KACjC,CAAC;AACH,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA4C,EAAE,EAAE,CAAC,KAAK,EACtF,GAAe,EACf,GAAe,EACf,IAAkB,EACjB,EAAE;IACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,CAAC;QACJ,MAAM,OAAO,CACZ,MAAM,EACN,MAAM,EACN,IAAI,CACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,CAAC;IACX,CAAC;AACF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAC9C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,YAAY,GAAG,CAAC,MAAc,EAAW,EAAE,CAChD,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC,OAAY,EAAE,WAAoB,EAAS,EAAE;IAC9E,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO;YACN,yBAAyB,CAAC,WAAW,CAAC;YACtC,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC;IACH,CAAC;IAED,OAAO;QACN,yBAAyB,EAAE;QAC3B,OAAO,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,EAAE;KACd,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACtC,MAAyB,EACzB,UAA4B,EAC5B,oBAA4C,EAAE,EACrB,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAkB,OAAO,CAAC,MAAM,EAAE,CAAC;IAE/C,yEAAyE;IACzE,0CAA0C;IAC1C,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,UAAU,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,YAAY,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;IAClB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAiD,CAAC;QACzF,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,yDAAyD;QACzD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;YACvC,CAAC,CAAC;gBACA,GAAG,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC;gBACvD,GAAG,eAAe;aAClB;YACF,CAAC,CAAC,eAAe,CAAC;QAEnB,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,CAAC;YAC7C,CAAC;YACD,6DAA6D;QAC9D,CAAC;aAAM,CAAC;YACP,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inviton-backduck",
3
- "version": "1.0.12",
3
+ "version": "1.0.15",
4
4
  "description": "Runtime-agnostic utilities for building web servers with Express and Bun support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",