@notjustcoders/ioc-arise 1.1.30 → 1.1.32

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 (31) hide show
  1. package/README.md +58 -1
  2. package/dist/analyser/ast-parser.d.ts +8 -0
  3. package/dist/analyser/ast-parser.d.ts.map +1 -1
  4. package/dist/analyser/ast-parser.js +45 -1
  5. package/dist/analyser/ast-parser.js.map +1 -1
  6. package/dist/analyser/class-analyzer.d.ts.map +1 -1
  7. package/dist/analyser/class-analyzer.js +11 -1
  8. package/dist/analyser/class-analyzer.js.map +1 -1
  9. package/dist/analyser/external-types.test.d.ts +10 -0
  10. package/dist/analyser/external-types.test.d.ts.map +1 -0
  11. package/dist/analyser/external-types.test.js +222 -0
  12. package/dist/analyser/external-types.test.js.map +1 -0
  13. package/dist/analyser/factory-analyzer.d.ts.map +1 -1
  14. package/dist/analyser/factory-analyzer.js +16 -4
  15. package/dist/analyser/factory-analyzer.js.map +1 -1
  16. package/dist/commands/generate.d.ts.map +1 -1
  17. package/dist/commands/generate.js +13 -3
  18. package/dist/commands/generate.js.map +1 -1
  19. package/dist/generator/ioc-container-generator.d.ts +1 -1
  20. package/dist/generator/ioc-container-generator.d.ts.map +1 -1
  21. package/dist/generator/ioc-container-generator.js +44 -37
  22. package/dist/generator/ioc-container-generator.js.map +1 -1
  23. package/dist/utils/configManager.d.ts +1 -0
  24. package/dist/utils/configManager.d.ts.map +1 -1
  25. package/dist/utils/configManager.js +1 -0
  26. package/dist/utils/configManager.js.map +1 -1
  27. package/dist/utils/generatedCodeValidator.d.ts +10 -0
  28. package/dist/utils/generatedCodeValidator.d.ts.map +1 -0
  29. package/dist/utils/generatedCodeValidator.js +83 -0
  30. package/dist/utils/generatedCodeValidator.js.map +1 -0
  31. package/package.json +7 -3
package/README.md CHANGED
@@ -13,6 +13,7 @@ A command-line tool that automatically generates type-safe IoC (Inversion of Con
13
13
  - [Examples](#examples)
14
14
  - [Basic Example](#basic-example)
15
15
  - [Instance Factories](#instance-factories)
16
+ - [External & Monorepo Types](#external--monorepo-types)
16
17
  - [Usage in Your Code](#usage-in-your-code)
17
18
  - [Development](#development)
18
19
  - [Limitations](#limitations)
@@ -29,6 +30,7 @@ A command-line tool that automatically generates type-safe IoC (Inversion of Con
29
30
  - 🔌 **Instance Factories**: Functions with an explicit interface return type automatically act as implementation providers for that interface
30
31
  - 💎 **Value Objects**: Supports `@value`-annotated constants registered with `useValue`
31
32
  - 📦 **Modular Containers**: Generates per-module files with `ContainerModule` for large projects
33
+ - 🌐 **External Package Types**: Constructor and factory parameters typed with interfaces from external npm packages or sibling monorepo packages are correctly resolved using the TypeScript symbol name as the DI token
32
34
 
33
35
  ## Installation
34
36
 
@@ -190,6 +192,61 @@ container.register('IUserRepository', {
190
192
 
191
193
  > **Uniqueness rule**: an interface can have at most one implementation provider — either a class that `implements` it, or an instance factory that returns it. Registering both throws an error at generation time.
192
194
 
195
+ ### External & Monorepo Types
196
+
197
+ Dependencies typed with interfaces from external npm packages or sibling monorepo packages are fully supported. The TypeScript symbol name is used as the DI token — the same convention as for local interfaces.
198
+
199
+ **Shape 1 — Direct external import:**
200
+
201
+ ```typescript
202
+ // services/OrderService.ts
203
+ import type { IPaymentGateway } from '@payments/sdk';
204
+ import type { IOrderService } from './IOrderService';
205
+
206
+ export class OrderService implements IOrderService {
207
+ constructor(private gateway: IPaymentGateway) {}
208
+ }
209
+ ```
210
+
211
+ Generated registration:
212
+
213
+ ```typescript
214
+ container.register('IOrderService', {
215
+ useClass: OrderService,
216
+ dependencies: ['IPaymentGateway'],
217
+ lifecycle: Lifecycle.Singleton,
218
+ });
219
+ ```
220
+
221
+ **Shape 2 — Local re-export stub (common monorepo pattern):**
222
+
223
+ ```typescript
224
+ // src/ports/ITombstoneRepository.ts — re-export stub
225
+ export type { ITombstoneRepository } from '@word-tracker/sync';
226
+
227
+ // src/PermanentlyDeleteWordUseCase.ts — factory using it
228
+ import type { IWordEntryRepository } from './IWordEntryRepository'; // local
229
+ import type { ITombstoneRepository } from './ports/ITombstoneRepository'; // re-export stub
230
+
231
+ /** @factory */
232
+ export function createPermanentlyDeleteWordUseCase(deps: {
233
+ wordEntryRepository: IWordEntryRepository;
234
+ tombstoneRepository: ITombstoneRepository;
235
+ }) { ... }
236
+ ```
237
+
238
+ Generated registration:
239
+
240
+ ```typescript
241
+ container.register('createPermanentlyDeleteWordUseCase', {
242
+ useFactory: (wordEntryRepository, tombstoneRepository) =>
243
+ createPermanentlyDeleteWordUseCase({ wordEntryRepository, tombstoneRepository }),
244
+ dependencies: ['IWordEntryRepository', 'ITombstoneRepository'],
245
+ });
246
+ ```
247
+
248
+ The token for the external type (`ITombstoneRepository`) is the TypeScript symbol name. You are responsible for registering a concrete implementation under that token elsewhere (e.g., in another module).
249
+
193
250
  ## Usage in Your Code
194
251
 
195
252
  ```typescript
@@ -213,7 +270,7 @@ pnpm run build
213
270
 
214
271
  ## Limitations
215
272
 
216
- - Constructor parameters must be typed with classes that are also analyzed
273
+ - Constructor parameters typed with non-interface types (e.g., concrete classes from external packages) are not auto-resolved
217
274
  - Circular dependencies are detected and warned about
218
275
  - Only analyzes TypeScript files (`.ts` extension)
219
276
 
@@ -27,5 +27,13 @@ export declare class ASTParser {
27
27
  extractValueName(valueNode: any): string | undefined;
28
28
  extractValueType(valueNode: any): string | undefined;
29
29
  isExportedValue(valueNode: any): boolean;
30
+ /**
31
+ * Finds names that are re-exported from external (non-relative) packages.
32
+ * Handles: export type { IFoo, IBar } from 'some-package'
33
+ * export { IFoo } from 'some-package'
34
+ * These names should be treated as valid DI tokens even though they have no
35
+ * local declaration.
36
+ */
37
+ extractExternalReExports(root: any): string[];
30
38
  }
31
39
  //# sourceMappingURL=ast-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-parser.d.ts","sourceRoot":"","sources":["../../src/analyser/ast-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAMhE,qBAAa,SAAS;IACpB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAYhC,iCAAiC,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAQnD,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAQ7C,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IA0BhC,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAuBpD,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIxD,sBAAsB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAI1D,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAMxC,4BAA4B,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,EAAE;IA+EpE,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAoE5D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,cAAc;IAIlG,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IA4ClD,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IA2DrD,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE;IA+CtC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IA2FlC,mBAAmB,CAAC,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAuE1D,yBAAyB,CAAC,YAAY,EAAE,GAAG,GAAG,oBAAoB,EAAE;IAuEpE,2BAA2B,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;IAsCnG,yBAAyB,CAAC,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAkBhE,kBAAkB,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO;IA0B9C,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAwDvC,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAkCpD,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IA8CpD,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;CA6BzC"}
1
+ {"version":3,"file":"ast-parser.d.ts","sourceRoot":"","sources":["../../src/analyser/ast-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAMhE,qBAAa,SAAS;IACpB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG;IAYhC,iCAAiC,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAQnD,2BAA2B,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAQ7C,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IA0BhC,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAuBpD,oBAAoB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAIxD,sBAAsB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAI1D,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IAMxC,4BAA4B,CAAC,SAAS,EAAE,GAAG,GAAG,oBAAoB,EAAE;IA+EpE,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAoE5D,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,cAAc;IAIlG,kBAAkB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IA4ClD,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IA4DrD,iBAAiB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE;IA+CtC,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IA2FlC,mBAAmB,CAAC,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAuE1D,yBAAyB,CAAC,YAAY,EAAE,GAAG,GAAG,oBAAoB,EAAE;IAuEpE,2BAA2B,CAAC,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;IAsCnG,yBAAyB,CAAC,YAAY,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAkBhE,kBAAkB,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO;IA0B9C,qBAAqB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE;IAwDvC,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAkCpD,gBAAgB,CAAC,SAAS,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IA8CpD,eAAe,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;IA8BxC;;;;;;OAMG;IACH,wBAAwB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE;CAoC9C"}
@@ -267,7 +267,8 @@ class ASTParser {
267
267
  const importPath = pathMatch[1];
268
268
  // Handle different import patterns
269
269
  // Named imports: import { A, B } from './path'
270
- const namedImportsMatch = importText.match(/import\s*{\s*([^}]+)\s*}\s*from/);
270
+ // Also handles: import type { A, B } from './path'
271
+ const namedImportsMatch = importText.match(/import(?:\s+type)?\s*{\s*([^}]+)\s*}\s*from/);
271
272
  if (namedImportsMatch) {
272
273
  const namedImports = namedImportsMatch[1].split(',');
273
274
  for (const namedImport of namedImports) {
@@ -771,6 +772,49 @@ class ASTParser {
771
772
  return false;
772
773
  }
773
774
  }
775
+ /**
776
+ * Finds names that are re-exported from external (non-relative) packages.
777
+ * Handles: export type { IFoo, IBar } from 'some-package'
778
+ * export { IFoo } from 'some-package'
779
+ * These names should be treated as valid DI tokens even though they have no
780
+ * local declaration.
781
+ */
782
+ extractExternalReExports(root) {
783
+ const names = [];
784
+ try {
785
+ const exportStatements = root.findAll({
786
+ rule: { kind: 'export_statement' }
787
+ });
788
+ for (const exportNode of exportStatements) {
789
+ const text = exportNode.text();
790
+ // Only care about re-exports (must have a `from` clause)
791
+ const fromMatch = text.match(/from\s+['"]([^'"]+)['"]/);
792
+ if (!fromMatch)
793
+ continue;
794
+ const fromPath = fromMatch[1];
795
+ // Skip local re-exports (they will be resolved by following the local file)
796
+ if (fromPath.startsWith('.'))
797
+ continue;
798
+ // Extract named exports: export [type] { X, Y as Z } from ...
799
+ const namedMatch = text.match(/export\s+(?:type\s+)?\{\s*([^}]+)\s*\}/);
800
+ if (!namedMatch)
801
+ continue;
802
+ const parts = namedMatch[1].split(',');
803
+ for (const part of parts) {
804
+ const trimmed = part.trim();
805
+ if (!trimmed)
806
+ continue;
807
+ // 'OriginalName as LocalName' → use LocalName (the exported symbol)
808
+ const aliasMatch = trimmed.match(/^(\w+)\s+as\s+(\w+)$/);
809
+ names.push(aliasMatch ? aliasMatch[2] : trimmed);
810
+ }
811
+ }
812
+ }
813
+ catch (error) {
814
+ logger_1.Logger.warn('Warning: Could not extract external re-exports:', { error });
815
+ }
816
+ return names;
817
+ }
774
818
  }
775
819
  exports.ASTParser = ASTParser;
776
820
  //# sourceMappingURL=ast-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast-parser.js","sourceRoot":"","sources":["../../src/analyser/ast-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast-parser.js","sourceRoot":"","sources":["../../src/analyser/ast-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"class-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyser/class-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAwD,MAAM,UAAU,CAAC;AAM3F,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAMlD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAsC/H,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkExM,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAWpI,kBAAkB;IAoKhC,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,kBAAkB;CAM3B"}
1
+ {"version":3,"file":"class-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyser/class-analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAwD,MAAM,UAAU,CAAC;AAM3F,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAMlD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IA0C/H,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAsExM,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YAWpI,kBAAkB;IAoKhC,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,mBAAmB;IAuC3B,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -27,6 +27,9 @@ class ClassAnalyzer {
27
27
  for (const [alias] of typeAliases.entries()) {
28
28
  interfaces.add(alias);
29
29
  }
30
+ // Collect names re-exported from external packages (e.g. from a monorepo sibling)
31
+ const externalReExports = this.astParser.extractExternalReExports(root);
32
+ externalReExports.forEach(name => interfaces.add(name));
30
33
  // Collect class names and abstract classes
31
34
  const classNodes = this.astParser.findAllClasses(root);
32
35
  for (const classNode of classNodes) {
@@ -63,6 +66,9 @@ class ClassAnalyzer {
63
66
  // Collect interfaces
64
67
  const interfaces = this.astParser.extractInterfaces(root);
65
68
  interfaces.forEach(interfaceName => allInterfaces.add(interfaceName));
69
+ // Collect names re-exported from external packages
70
+ const externalReExports = this.astParser.extractExternalReExports(root);
71
+ externalReExports.forEach(name => allInterfaces.add(name));
66
72
  // Collect class names and abstract classes
67
73
  const classNodes = this.astParser.findAllClasses(root);
68
74
  for (const classNode of classNodes) {
@@ -265,7 +271,11 @@ class ClassAnalyzer {
265
271
  const isValidAbstractClass = allAbstractClasses.has(typeInfo.resolvedType);
266
272
  const isValidFactory = allFactoryNames.has(typeInfo.resolvedType);
267
273
  const isValidValue = allValueNames.has(typeInfo.resolvedType);
268
- return isValidClass || isValidInterface || isValidAbstractClass || isValidFactory || isValidValue;
274
+ // Also accept types imported directly from external packages (non-relative path).
275
+ // This covers: import type { IFoo } from 'some-package'
276
+ const rawImportPath = importMappings.get(typeInfo.originalType) || importMappings.get(typeInfo.resolvedType);
277
+ const isExternalImport = rawImportPath !== undefined && !rawImportPath.startsWith('.');
278
+ return isValidClass || isValidInterface || isValidAbstractClass || isValidFactory || isValidValue || isExternalImport;
269
279
  })
270
280
  .map(typeInfo => {
271
281
  // Get import path from import mappings, fallback to resolvedType if not found
@@ -1 +1 @@
1
- {"version":3,"file":"class-analyzer.js","sourceRoot":"","sources":["../../src/analyser/class-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-analyzer.js","sourceRoot":"","sources":["../../src/analyser/class-analyzer.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAGhC,4CAAyC;AACzC,yDAAsD;AACtD,iDAAkD;AAClD,4CAAyC;AACzC,MAAa,aAAa;IAKxB,YAAY,SAAiB,EAAE,gBAAyB;QACtD,IAAI,CAAC,SAAS,GAAG,qBAAS,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAmB;QACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QACrC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAEhD,qBAAqB;gBACrB,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACnE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpD,uBAAuB;gBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC5D,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC5C,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBAED,kFAAkF;gBAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;gBACxE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAExD,2CAA2C;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAC7D,IAAI,SAAS,EAAE,CAAC;wBACd,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;4BAC9C,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,eAAM,CAAC,IAAI,CAAC,0CAA0C,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAmB,EAAE,MAA+I;QACrL,MAAM,UAAU,GAAgB,EAAE,CAAC;QAEnC,sFAAsF;QACtF,IAAI,aAAa,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,GAAG,EAAU,CAAC;QAC5D,IAAI,aAAa,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,GAAG,EAAU,CAAC;QAC5D,IAAI,kBAAkB,GAAG,MAAM,EAAE,eAAe,IAAI,IAAI,GAAG,EAAU,CAAC;QACtE,IAAI,eAAe,GAAG,MAAM,EAAE,YAAY,IAAI,IAAI,GAAG,EAAU,CAAC;QAChE,IAAI,aAAa,GAAG,MAAM,EAAE,UAAU,IAAI,IAAI,GAAG,EAAU,CAAC;QAE5D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,uFAAuF;YACvF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBAChD,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAE/B,qBAAqB;oBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC1D,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;oBAEtE,mDAAmD;oBACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;oBACxE,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAE3D,2CAA2C;oBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oBACvD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAC7D,IAAI,SAAS,EAAE,CAAC;4BACd,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;4BAC7D,IAAI,UAAU,EAAE,CAAC;gCACf,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;4BACpC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,eAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,IAAI,CAAC;oBACD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;YACL,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;gBAChJ,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,mCAAmC;QACnC,+DAA+D;QAC/D,8DAA8D;QAE9D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,aAA0B,EAAE,aAA0B,EAAE,kBAA+B;QACzH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAChD,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;QACzG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAEhE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,IAAS,EAAE,aAA0B,EAAE,aAA0B,EAAE,kBAA+B,EAAE,kBAA+B,IAAI,GAAG,EAAE,EAAE,gBAA6B,IAAI,GAAG,EAAE;QACrO,MAAM,OAAO,GAAgB,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAE5D,+CAA+C;YAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAElE,uEAAuE;YACvE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC9D,eAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAA;YAEhE,qDAAqD;YACrD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;YACxF,MAAM,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;YACpF,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;YAE9C,wCAAwC;YACxC,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE,CAAC;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAErE,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAE3C,2CAA2C;gBAC3C,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;wBAAE,SAAS;gBAC7C,CAAC;gBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;gBACjF,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;gBAChL,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAE7D,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEnC,eAAM,CAAC,KAAK,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAC;gBAC9D,eAAM,CAAC,KAAK,CAAC,iBAAiB,SAAS,GAAG,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;gBAC/D,eAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC5E,eAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClF,eAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjE,eAAM,CAAC,KAAK,CAAC,aAAa,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnD,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBAE3C,sDAAsD;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACf,eAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,4CAA4C,CAAC,CAAC;oBAChG,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,YAAY;oBACZ,iBAAiB;oBACjB,aAAa;oBACb,iBAAiB,EAAE,SAAS,EAAE,kDAAkD;oBAChF,UAAU;oBACV,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;YAED,0CAA0C;YAC1C,KAAK,MAAM,SAAS,IAAI,0BAA0B,EAAE,CAAC;gBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC7D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAEzE,IAAI,CAAC,SAAS,IAAI,CAAC,eAAe,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAEnF,8EAA8E;gBAC9E,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAEjE,qCAAqC;gBACrC,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;oBACjF,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;oBAChL,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;oBAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;oBAE7D,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAEnC,eAAM,CAAC,KAAK,CAAC,8BAA8B,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,SAAS,YAAY,eAAe,EAAE,CAAC,CAAC;oBAChI,eAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAC5E,eAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;oBACjE,eAAM,CAAC,KAAK,CAAC,aAAa,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;oBACnD,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;oBAE3C,sDAAsD;oBACtD,IAAI,UAAU,EAAE,CAAC;wBACf,eAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,4CAA4C,CAAC,CAAC;wBAChG,SAAS;oBACX,CAAC;oBAED,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,SAAS;wBACf,QAAQ;wBACR,YAAY;wBACZ,iBAAiB;wBACjB,aAAa,EAAE,SAAS,EAAE,sDAAsD;wBAChF,iBAAiB,EAAE,eAAe,EAAE,0CAA0C;wBAC9E,UAAU;wBACV,KAAK;qBACN,CAAC,CAAC;oBAEH,eAAM,CAAC,KAAK,CAAC,eAAe,SAAS,8BAA8B,eAAe,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;YAED,8DAA8D;YAC9D,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;gBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAE7D,IAAI,CAAC,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAE/D,gGAAgG;gBAChG,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAEhF,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;gBACjF,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;gBAChL,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAE7D,eAAM,CAAC,KAAK,CAAC,uCAAuC,SAAS,EAAE,CAAC,CAAC;gBACjE,eAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,GAAG,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBAC5E,eAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,GAAG,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;gBACjE,eAAM,CAAC,KAAK,CAAC,aAAa,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBACnD,eAAM,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;gBAE3C,sDAAsD;gBACtD,IAAI,UAAU,EAAE,CAAC;oBACf,eAAM,CAAC,KAAK,CAAC,4BAA4B,SAAS,4CAA4C,CAAC,CAAC;oBAChG,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,SAAS;oBACf,QAAQ;oBACR,YAAY;oBACZ,iBAAiB;oBACjB,aAAa,EAAE,SAAS,EAAE,iCAAiC;oBAC3D,iBAAiB,EAAE,SAAS,EAAE,2CAA2C;oBACzE,UAAU;oBACV,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,2BAAY,CAAC,SAAS,CAC1B,KAAc,EACd,uBAAY,CAAC,eAAe,EAC5B,EAAE,QAAQ,EAAE,CACb,CAAC;QACJ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mBAAmB,CACzB,iBAAyC,EACzC,WAAgC,EAChC,cAAmC,EACnC,aAA0B,EAC1B,aAA0B,EAC1B,qBAAkC,IAAI,GAAG,EAAE,EAC3C,kBAA+B,IAAI,GAAG,EAAE,EACxC,gBAA6B,IAAI,GAAG,EAAE;QAGtC,MAAM,MAAM,GAAG,iBAAiB;aAC7B,GAAG,CAAC,KAAK,CAAC,EAAE;YACX,iDAAiD;YACjD,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;YAC/D,OAAO;gBACL,YAAY,EAAE,KAAK,CAAC,IAAI;gBACxB,YAAY,EAAE,YAAY;aAC3B,CAAC;QACJ,CAAC,CAAC;aACD,MAAM,CAAC,QAAQ,CAAC,EAAE;YACjB,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC3E,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAE9D,kFAAkF;YAClF,wDAAwD;YACxD,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAC7G,MAAM,gBAAgB,GAAG,aAAa,KAAK,SAAS,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAEvF,OAAO,YAAY,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,cAAc,IAAI,YAAY,IAAI,gBAAgB,CAAC;QACxH,CAAC,CAAC;aACD,GAAG,CAAC,QAAQ,CAAC,EAAE;YACd,8EAA8E;YAC9E,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1D,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACzC,KAAK,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,2BAA2B;YAE3D,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,YAAY;gBAC3B,UAAU,EAAE,UAAU;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,OAAO,MAAM,CAAC;IAEhB,CAAC;IAEO,mBAAmB,CAAC,OAAoB;QAC9C,0FAA0F;QAC1F,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC1B,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACnC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,sEAAsE;QACtE,iFAAiF;QACjF,sEAAsE;QACtE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YACjD,MAAM,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,qBAAqB,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC7G,MAAM,yBAAyB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEzH,qBAAqB;YACrB,yEAAyE;YACzE,4EAA4E;YAC5E,8DAA8D;YAC9D,MAAM,UAAU,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,IAAI,qBAAqB,IAAI,yBAAyB,CAAC;YAEhI,2CAA2C;YAE3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,eAAM,CAAC,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,iDAAiD,CAAC,CAAC;YAC/G,CAAC;YAED,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,eAAM,CAAC,KAAK,CAAC,qBAAqB,OAAO,CAAC,MAAM,OAAO,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAEjF,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,kBAAkB,CAAC,QAAgB,EAAE,SAAiB;QAC5D,0DAA0D;QAC1D,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,oBAAoB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/D,OAAO,KAAK,oBAAoB,EAAE,CAAC;IACrC,CAAC;CACF;AAxYD,sCAwYC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Tests for DI token resolution when types originate in external packages.
3
+ *
4
+ * Covers three shapes:
5
+ * 1. Direct external import: import type { IFoo } from 'some-package'
6
+ * 2. Local re-export stub: export type { IFoo } from 'some-package' (chain)
7
+ * 3. Mixed: local + external deps in the same factory / class
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=external-types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-types.test.d.ts","sourceRoot":"","sources":["../../src/analyser/external-types.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ /**
3
+ * Tests for DI token resolution when types originate in external packages.
4
+ *
5
+ * Covers three shapes:
6
+ * 1. Direct external import: import type { IFoo } from 'some-package'
7
+ * 2. Local re-export stub: export type { IFoo } from 'some-package' (chain)
8
+ * 3. Mixed: local + external deps in the same factory / class
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const vitest_1 = require("vitest");
12
+ const fs_1 = require("fs");
13
+ const path_1 = require("path");
14
+ const os_1 = require("os");
15
+ const class_analyzer_1 = require("./class-analyzer");
16
+ const factory_analyzer_1 = require("./factory-analyzer");
17
+ const ast_parser_1 = require("./ast-parser");
18
+ // ---------------------------------------------------------------------------
19
+ // Helpers
20
+ // ---------------------------------------------------------------------------
21
+ function tmpDir(prefix) {
22
+ const dir = (0, path_1.join)((0, os_1.tmpdir)(), `ioc-arise-test-${prefix}-${Date.now()}`);
23
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
24
+ return dir;
25
+ }
26
+ function write(dir, relativePath, content) {
27
+ const full = (0, path_1.join)(dir, relativePath);
28
+ (0, fs_1.mkdirSync)((0, path_1.join)(full, '..'), { recursive: true });
29
+ (0, fs_1.writeFileSync)(full, content, 'utf-8');
30
+ return full;
31
+ }
32
+ // ---------------------------------------------------------------------------
33
+ // ASTParser.extractExternalReExports
34
+ // ---------------------------------------------------------------------------
35
+ (0, vitest_1.describe)('ASTParser.extractExternalReExports', () => {
36
+ let parser;
37
+ let dir;
38
+ (0, vitest_1.beforeEach)(() => {
39
+ parser = new ast_parser_1.ASTParser();
40
+ dir = tmpDir('ast-parser');
41
+ });
42
+ (0, vitest_1.afterEach)(() => (0, fs_1.rmSync)(dir, { recursive: true, force: true }));
43
+ (0, vitest_1.it)('extracts names from export type { X } from external package', () => {
44
+ const file = write(dir, 'stub.ts', `export type { ITombstoneRepository } from '@word-tracker/sync';`);
45
+ const root = parser.parseFile(file);
46
+ const names = parser.extractExternalReExports(root);
47
+ (0, vitest_1.expect)(names).toContain('ITombstoneRepository');
48
+ });
49
+ (0, vitest_1.it)('extracts multiple names from a single export statement', () => {
50
+ const file = write(dir, 'stub.ts', `export type { IFoo, IBar } from 'some-package';`);
51
+ const root = parser.parseFile(file);
52
+ const names = parser.extractExternalReExports(root);
53
+ (0, vitest_1.expect)(names).toContain('IFoo');
54
+ (0, vitest_1.expect)(names).toContain('IBar');
55
+ });
56
+ (0, vitest_1.it)('handles export with alias: export type { Foo as IFoo } from pkg', () => {
57
+ const file = write(dir, 'stub.ts', `export type { InternalFoo as IFoo } from 'some-package';`);
58
+ const root = parser.parseFile(file);
59
+ const names = parser.extractExternalReExports(root);
60
+ (0, vitest_1.expect)(names).toContain('IFoo');
61
+ (0, vitest_1.expect)(names).not.toContain('InternalFoo');
62
+ });
63
+ (0, vitest_1.it)('ignores re-exports from local (relative) paths', () => {
64
+ const file = write(dir, 'stub.ts', `export type { IFoo } from './local-file';`);
65
+ const root = parser.parseFile(file);
66
+ const names = parser.extractExternalReExports(root);
67
+ (0, vitest_1.expect)(names).toHaveLength(0);
68
+ });
69
+ (0, vitest_1.it)('returns empty array for a file with no re-exports', () => {
70
+ const file = write(dir, 'stub.ts', `export interface IFoo { doSomething(): void; }`);
71
+ const root = parser.parseFile(file);
72
+ const names = parser.extractExternalReExports(root);
73
+ (0, vitest_1.expect)(names).toHaveLength(0);
74
+ });
75
+ });
76
+ // ---------------------------------------------------------------------------
77
+ // FactoryAnalyzer — direct external import
78
+ // ---------------------------------------------------------------------------
79
+ (0, vitest_1.describe)('FactoryAnalyzer — external package types as DI tokens', () => {
80
+ let dir;
81
+ (0, vitest_1.beforeEach)(() => { dir = tmpDir('factory-analyzer'); });
82
+ (0, vitest_1.afterEach)(() => (0, fs_1.rmSync)(dir, { recursive: true, force: true }));
83
+ (0, vitest_1.it)('resolves a dep typed as an interface imported directly from node_modules', async () => {
84
+ // Local interface that resolves fine
85
+ write(dir, 'ILocalRepo.ts', `export interface ILocalRepo { find(): void; }`);
86
+ // Factory that depends on both a local and an external interface
87
+ write(dir, 'MyUseCase.ts', `
88
+ import type { ILocalRepo } from './ILocalRepo';
89
+ import type { IExternalService } from 'some-external-package';
90
+
91
+ /** @factory */
92
+ export function createMyUseCase(localRepo: ILocalRepo, externalService: IExternalService) {
93
+ return { localRepo, externalService };
94
+ }
95
+ `);
96
+ const analyzer = new factory_analyzer_1.FactoryAnalyzer(dir);
97
+ const filePaths = [(0, path_1.join)(dir, 'ILocalRepo.ts'), (0, path_1.join)(dir, 'MyUseCase.ts')];
98
+ const factories = await analyzer.analyzeFiles(filePaths);
99
+ const uc = factories.find(f => f.name === 'createMyUseCase');
100
+ (0, vitest_1.expect)(uc).toBeDefined();
101
+ const depNames = uc.dependencies.map(d => d.name);
102
+ (0, vitest_1.expect)(depNames).toContain('ILocalRepo');
103
+ (0, vitest_1.expect)(depNames).toContain('IExternalService');
104
+ });
105
+ (0, vitest_1.it)('resolves a dep typed via a local re-export stub for an external package', async () => {
106
+ // Re-export stub: local file that only re-exports from external
107
+ write(dir, 'ports/ITombstoneRepository.ts', `export type { ITombstoneRepository } from '@word-tracker/sync';`);
108
+ // Local interface
109
+ write(dir, 'IWordEntryRepository.ts', `export interface IWordEntryRepository { find(): void; }`);
110
+ // Factory using both
111
+ write(dir, 'PermanentlyDeleteWordUseCase.ts', `
112
+ import type { IWordEntryRepository } from './IWordEntryRepository';
113
+ import type { ITombstoneRepository } from './ports/ITombstoneRepository';
114
+
115
+ /** @factory */
116
+ export function createPermanentlyDeleteWordUseCase(deps: {
117
+ wordEntryRepository: IWordEntryRepository;
118
+ tombstoneRepository: ITombstoneRepository;
119
+ }) {
120
+ return deps;
121
+ }
122
+ `);
123
+ const analyzer = new factory_analyzer_1.FactoryAnalyzer(dir);
124
+ const filePaths = [
125
+ (0, path_1.join)(dir, 'ports/ITombstoneRepository.ts'),
126
+ (0, path_1.join)(dir, 'IWordEntryRepository.ts'),
127
+ (0, path_1.join)(dir, 'PermanentlyDeleteWordUseCase.ts'),
128
+ ];
129
+ const factories = await analyzer.analyzeFiles(filePaths);
130
+ const uc = factories.find(f => f.name === 'createPermanentlyDeleteWordUseCase');
131
+ (0, vitest_1.expect)(uc).toBeDefined();
132
+ const depNames = uc.dependencies.map(d => d.name);
133
+ (0, vitest_1.expect)(depNames).toContain('IWordEntryRepository');
134
+ (0, vitest_1.expect)(depNames).toContain('ITombstoneRepository');
135
+ });
136
+ (0, vitest_1.it)('mixed: local deps and external deps both appear in dependencies[]', async () => {
137
+ write(dir, 'ILocalA.ts', `export interface ILocalA { a(): void; }`);
138
+ write(dir, 'ILocalB.ts', `export interface ILocalB { b(): void; }`);
139
+ write(dir, 'MyService.ts', `
140
+ import type { ILocalA } from './ILocalA';
141
+ import type { ILocalB } from './ILocalB';
142
+ import type { IExternal } from 'external-pkg';
143
+
144
+ /** @factory */
145
+ export function createMyService(a: ILocalA, b: ILocalB, ext: IExternal) {
146
+ return { a, b, ext };
147
+ }
148
+ `);
149
+ const analyzer = new factory_analyzer_1.FactoryAnalyzer(dir);
150
+ const filePaths = [
151
+ (0, path_1.join)(dir, 'ILocalA.ts'),
152
+ (0, path_1.join)(dir, 'ILocalB.ts'),
153
+ (0, path_1.join)(dir, 'MyService.ts'),
154
+ ];
155
+ const factories = await analyzer.analyzeFiles(filePaths);
156
+ const svc = factories.find(f => f.name === 'createMyService');
157
+ (0, vitest_1.expect)(svc).toBeDefined();
158
+ const depNames = svc.dependencies.map(d => d.name);
159
+ (0, vitest_1.expect)(depNames).toContain('ILocalA');
160
+ (0, vitest_1.expect)(depNames).toContain('ILocalB');
161
+ (0, vitest_1.expect)(depNames).toContain('IExternal');
162
+ });
163
+ });
164
+ // ---------------------------------------------------------------------------
165
+ // ClassAnalyzer — external package types as DI tokens
166
+ // ---------------------------------------------------------------------------
167
+ (0, vitest_1.describe)('ClassAnalyzer — external package types as DI tokens', () => {
168
+ let dir;
169
+ (0, vitest_1.beforeEach)(() => { dir = tmpDir('class-analyzer'); });
170
+ (0, vitest_1.afterEach)(() => (0, fs_1.rmSync)(dir, { recursive: true, force: true }));
171
+ (0, vitest_1.it)('resolves a constructor dep imported directly from an external package', async () => {
172
+ write(dir, 'ILocalDep.ts', `export interface ILocalDep { doLocal(): void; }`);
173
+ write(dir, 'MyService.ts', `
174
+ import type { ILocalDep } from './ILocalDep';
175
+ import type { IExternalDep } from 'some-external-lib';
176
+ import type { IMyService } from './IMyService';
177
+
178
+ export class MyService implements IMyService {
179
+ constructor(private local: ILocalDep, private ext: IExternalDep) {}
180
+ }
181
+ `);
182
+ write(dir, 'IMyService.ts', `export interface IMyService { run(): void; }`);
183
+ const analyzer = new class_analyzer_1.ClassAnalyzer(dir);
184
+ const filePaths = [
185
+ (0, path_1.join)(dir, 'ILocalDep.ts'),
186
+ (0, path_1.join)(dir, 'IMyService.ts'),
187
+ (0, path_1.join)(dir, 'MyService.ts'),
188
+ ];
189
+ const classes = await analyzer.analyzeFiles(filePaths);
190
+ const svc = classes.find(c => c.name === 'MyService');
191
+ (0, vitest_1.expect)(svc).toBeDefined();
192
+ const depNames = svc.dependencies.map(d => d.name);
193
+ (0, vitest_1.expect)(depNames).toContain('ILocalDep');
194
+ (0, vitest_1.expect)(depNames).toContain('IExternalDep');
195
+ });
196
+ (0, vitest_1.it)('resolves a constructor dep coming via a local re-export stub', async () => {
197
+ // Re-export stub
198
+ write(dir, 'ports/IExternalPort.ts', `export type { IExternalPort } from 'monorepo-pkg';`);
199
+ write(dir, 'IMyService.ts', `export interface IMyService { run(): void; }`);
200
+ write(dir, 'MyService.ts', `
201
+ import type { IExternalPort } from './ports/IExternalPort';
202
+ import type { IMyService } from './IMyService';
203
+
204
+ export class MyService implements IMyService {
205
+ constructor(private port: IExternalPort) {}
206
+ run() {}
207
+ }
208
+ `);
209
+ const analyzer = new class_analyzer_1.ClassAnalyzer(dir);
210
+ const filePaths = [
211
+ (0, path_1.join)(dir, 'ports/IExternalPort.ts'),
212
+ (0, path_1.join)(dir, 'IMyService.ts'),
213
+ (0, path_1.join)(dir, 'MyService.ts'),
214
+ ];
215
+ const classes = await analyzer.analyzeFiles(filePaths);
216
+ const svc = classes.find(c => c.name === 'MyService');
217
+ (0, vitest_1.expect)(svc).toBeDefined();
218
+ const depNames = svc.dependencies.map(d => d.name);
219
+ (0, vitest_1.expect)(depNames).toContain('IExternalPort');
220
+ });
221
+ });
222
+ //# sourceMappingURL=external-types.test.js.map