@notjustcoders/ioc-arise 1.1.9 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +37 -115
  2. package/dist/analyser/ast-parser.d.ts.map +1 -1
  3. package/dist/analyser/ast-parser.js +4 -4
  4. package/dist/analyser/ast-parser.js.map +1 -1
  5. package/dist/analyser/class-analyzer.d.ts.map +1 -1
  6. package/dist/analyser/class-analyzer.js +8 -5
  7. package/dist/analyser/class-analyzer.js.map +1 -1
  8. package/dist/analyser/project-analyzer.d.ts.map +1 -1
  9. package/dist/analyser/project-analyzer.js +7 -6
  10. package/dist/analyser/project-analyzer.js.map +1 -1
  11. package/dist/commands/analyze.d.ts.map +1 -1
  12. package/dist/commands/analyze.js +12 -11
  13. package/dist/commands/analyze.js.map +1 -1
  14. package/dist/commands/generate.d.ts.map +1 -1
  15. package/dist/commands/generate.js +37 -16
  16. package/dist/commands/generate.js.map +1 -1
  17. package/dist/commands/visualize.d.ts.map +1 -1
  18. package/dist/commands/visualize.js +10 -9
  19. package/dist/commands/visualize.js.map +1 -1
  20. package/dist/errors/IoCError.d.ts +7 -0
  21. package/dist/errors/IoCError.d.ts.map +1 -1
  22. package/dist/errors/IoCError.js +16 -1
  23. package/dist/errors/IoCError.js.map +1 -1
  24. package/dist/errors/errorFactory.d.ts +1 -1
  25. package/dist/errors/errorFactory.d.ts.map +1 -1
  26. package/dist/errors/errorFactory.js +23 -23
  27. package/dist/errors/errorFactory.js.map +1 -1
  28. package/dist/generator/index.d.ts +2 -19
  29. package/dist/generator/index.d.ts.map +1 -1
  30. package/dist/generator/index.js +16 -34
  31. package/dist/generator/index.js.map +1 -1
  32. package/dist/generator/ioc-container-generator.d.ts +27 -0
  33. package/dist/generator/ioc-container-generator.d.ts.map +1 -0
  34. package/dist/generator/ioc-container-generator.js +353 -0
  35. package/dist/generator/ioc-container-generator.js.map +1 -0
  36. package/dist/generator/modular/module-dependency-resolver.js +2 -2
  37. package/dist/generator/modular/module-dependency-resolver.js.map +1 -1
  38. package/dist/generator/shared/instantiation-utils.d.ts.map +1 -1
  39. package/dist/generator/shared/instantiation-utils.js +3 -4
  40. package/dist/generator/shared/instantiation-utils.js.map +1 -1
  41. package/dist/generator/type-declaration-generator.d.ts +10 -0
  42. package/dist/generator/type-declaration-generator.d.ts.map +1 -0
  43. package/dist/generator/type-declaration-generator.js +140 -0
  44. package/dist/generator/type-declaration-generator.js.map +1 -0
  45. package/dist/utils/circular-dependency-detector.d.ts +16 -0
  46. package/dist/utils/circular-dependency-detector.d.ts.map +1 -0
  47. package/dist/utils/circular-dependency-detector.js +70 -0
  48. package/dist/utils/circular-dependency-detector.js.map +1 -0
  49. package/dist/utils/configManager.d.ts.map +1 -1
  50. package/dist/utils/configManager.js +6 -5
  51. package/dist/utils/configManager.js.map +1 -1
  52. package/dist/utils/configValidator.d.ts +1 -1
  53. package/dist/utils/configValidator.d.ts.map +1 -1
  54. package/dist/utils/configValidator.js +12 -11
  55. package/dist/utils/configValidator.js.map +1 -1
  56. package/dist/utils/moduleResolver.d.ts +1 -1
  57. package/dist/utils/moduleResolver.d.ts.map +1 -1
  58. package/dist/utils/moduleResolver.js +5 -5
  59. package/dist/utils/moduleResolver.js.map +1 -1
  60. package/package.json +3 -2
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeDeclarationGenerator = void 0;
4
+ const path_1 = require("path");
5
+ const fs_1 = require("fs");
6
+ class TypeDeclarationGenerator {
7
+ static generate(classes, outputPath) {
8
+ // outputPath already has .d.ts extension from the generator
9
+ const typeDeclarations = this.generateTypeDeclarations(classes, outputPath);
10
+ (0, fs_1.mkdirSync)((0, path_1.dirname)(outputPath), { recursive: true });
11
+ (0, fs_1.writeFileSync)(outputPath, typeDeclarations);
12
+ }
13
+ static generateTypeDeclarations(classes, outputPath) {
14
+ // Filter classes that have interface implementations or abstract class implementations
15
+ const interfaceClasses = classes.filter(cls => cls.interfaceName);
16
+ const abstractClasses = classes.filter(cls => cls.abstractClassName);
17
+ if (interfaceClasses.length === 0 && abstractClasses.length === 0) {
18
+ // No interfaces or abstract classes, generate minimal type file
19
+ return `/**
20
+ * This file is auto-generated by ioc-arise.
21
+ * Do not modify this file manually.
22
+ */
23
+
24
+ export interface ContainerRegistry {}
25
+ `;
26
+ }
27
+ const typeImports = this.generateTypeImports(interfaceClasses, abstractClasses, outputPath);
28
+ // Build registry entries for both interfaces and abstract classes
29
+ const registryEntries = [];
30
+ interfaceClasses.forEach(cls => {
31
+ registryEntries.push(` '${cls.interfaceName}': ${cls.interfaceName};`);
32
+ });
33
+ abstractClasses.forEach(cls => {
34
+ // For abstract classes, we use the concrete implementation type
35
+ registryEntries.push(` '${cls.abstractClassName}': ${cls.name};`);
36
+ });
37
+ return `/**
38
+ * This file is auto-generated by ioc-arise.
39
+ * Do not modify this file manually.
40
+ *
41
+ * This file provides type-safe resolution for string-based tokens.
42
+ */
43
+ ${typeImports}
44
+
45
+ export interface ContainerRegistry {
46
+ ${registryEntries.join('\n')}
47
+ }
48
+ `;
49
+ }
50
+ static generateTypeImports(interfaceClasses, abstractClasses, outputPath) {
51
+ const outputDir = (0, path_1.dirname)(outputPath);
52
+ const imports = [];
53
+ // Build a map of interface names to their actual file paths by searching the source
54
+ const interfaceLocations = this.findInterfaceLocations(interfaceClasses, outputDir);
55
+ interfaceClasses.forEach(cls => {
56
+ if (!cls.interfaceName)
57
+ return;
58
+ const relativePath = interfaceLocations.get(cls.interfaceName);
59
+ if (relativePath) {
60
+ imports.push(`import type { ${cls.interfaceName} } from '${relativePath}';`);
61
+ }
62
+ });
63
+ // For abstract classes, import the concrete implementation class
64
+ abstractClasses.forEach(cls => {
65
+ let relativePath = (0, path_1.relative)(outputDir, cls.filePath);
66
+ relativePath = relativePath.replace(/\.ts$/, '');
67
+ if (!relativePath.startsWith('.')) {
68
+ relativePath = `./${relativePath}`;
69
+ }
70
+ relativePath = relativePath.replace(/\\/g, '/');
71
+ imports.push(`import type { ${cls.name} } from '${relativePath}';`);
72
+ });
73
+ return imports.join('\n');
74
+ }
75
+ static findInterfaceLocations(classes, outputDir) {
76
+ const interfaceLocations = new Map();
77
+ const interfaceNames = new Set(classes.filter(c => c.interfaceName).map(c => c.interfaceName));
78
+ if (interfaceNames.size === 0)
79
+ return interfaceLocations;
80
+ // For each class with an interface, parse its file to find the actual interface import
81
+ classes.forEach(cls => {
82
+ if (!cls.interfaceName || interfaceLocations.has(cls.interfaceName))
83
+ return;
84
+ try {
85
+ const fileContent = (0, fs_1.readFileSync)(cls.filePath, 'utf-8');
86
+ // Match: import { InterfaceName } from './path';
87
+ // or: import type { InterfaceName } from './path';
88
+ const importRegex = new RegExp(`import\\s+(?:type\\s+)?\\{[^}]*\\b${cls.interfaceName}\\b[^}]*\\}\\s+from\\s+['"]([^'"]+)['"]`, 'g');
89
+ const match = importRegex.exec(fileContent);
90
+ if (match && match[1]) {
91
+ // Found the import path relative to the class file
92
+ const classDir = (0, path_1.dirname)(cls.filePath);
93
+ const interfacePathFromClass = match[1];
94
+ // Resolve the absolute path of the interface file
95
+ const interfaceAbsPath = require('path').resolve(classDir, interfacePathFromClass);
96
+ // Calculate relative path from output directory
97
+ let relativePath = (0, path_1.relative)(outputDir, interfaceAbsPath);
98
+ // Normalize
99
+ if (!relativePath.startsWith('.')) {
100
+ relativePath = `./${relativePath}`;
101
+ }
102
+ relativePath = relativePath.replace(/\\/g, '/');
103
+ interfaceLocations.set(cls.interfaceName, relativePath);
104
+ }
105
+ }
106
+ catch (error) {
107
+ // If we can't read the file or parse it, skip
108
+ console.warn(`Could not parse interface location for ${cls.interfaceName} in ${cls.filePath}`);
109
+ }
110
+ });
111
+ return interfaceLocations;
112
+ }
113
+ static generateRegistryInterface(classes) {
114
+ const registrations = classes
115
+ .filter(cls => cls.interfaceName)
116
+ .map(cls => ` '${cls.interfaceName}': ${cls.interfaceName};`)
117
+ .join('\n');
118
+ return `export interface ContainerRegistry {
119
+ ${registrations}
120
+ }`;
121
+ }
122
+ static generateModuleAugmentation() {
123
+ return `declare module 'ioc-arise' {
124
+ interface Container {
125
+ /**
126
+ * Type-safe resolve for registered string tokens.
127
+ * Returns the correctly typed instance based on the token.
128
+ */
129
+ resolve<K extends keyof ContainerRegistry>(token: K): ContainerRegistry[K];
130
+
131
+ /**
132
+ * Generic resolve for class constructors or other token types.
133
+ */
134
+ resolve<T>(token: import('ioc-arise').Token<T>): T;
135
+ }
136
+ }`;
137
+ }
138
+ }
139
+ exports.TypeDeclarationGenerator = TypeDeclarationGenerator;
140
+ //# sourceMappingURL=type-declaration-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-declaration-generator.js","sourceRoot":"","sources":["../../src/generator/type-declaration-generator.ts"],"names":[],"mappings":";;;AACA,+BAAyC;AACzC,2BAAwE;AAGxE,MAAa,wBAAwB;IACjC,MAAM,CAAC,QAAQ,CAAC,OAAoB,EAAE,UAAkB;QACpD,4DAA4D;QAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5E,IAAA,cAAS,EAAC,IAAA,cAAO,EAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAA,kBAAa,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAChD,CAAC;IAEO,MAAM,CAAC,wBAAwB,CAAC,OAAoB,EAAE,UAAkB;QAC5E,uFAAuF;QACvF,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAErE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChE,gEAAgE;YAChE,OAAO;;;;;;CAMlB,CAAC;QACM,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QAE5F,kEAAkE;QAClE,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3B,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,aAAa,MAAM,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,gEAAgE;YAChE,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,OAAO;;;;;;EAMb,WAAW;;;EAGX,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;CAE3B,CAAC;IACE,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,gBAA6B,EAAE,eAA4B,EAAE,UAAkB;QAC9G,MAAM,SAAS,GAAG,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,oFAAoF;QACpF,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;QAEpF,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,aAAa;gBAAE,OAAO;YAE/B,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC/D,IAAI,YAAY,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,aAAa,YAAY,YAAY,IAAI,CAAC,CAAC;YACjF,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,iEAAiE;QACjE,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,IAAI,YAAY,GAAG,IAAA,eAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChC,YAAY,GAAG,KAAK,YAAY,EAAE,CAAC;YACvC,CAAC;YACD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAEhD,OAAO,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,YAAY,YAAY,IAAI,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,OAAoB,EAAE,SAAiB;QACzE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAc,CAAC,CAAC,CAAC;QAEhG,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,kBAAkB,CAAC;QAEzD,uFAAuF;QACvF,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;gBAAE,OAAO;YAE5E,IAAI,CAAC;gBACD,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACxD,iDAAiD;gBACjD,mDAAmD;gBACnD,MAAM,WAAW,GAAG,IAAI,MAAM,CAC1B,qCAAqC,GAAG,CAAC,aAAa,yCAAyC,EAC/F,GAAG,CACN,CAAC;gBAEF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpB,mDAAmD;oBACnD,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM,sBAAsB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAExC,kDAAkD;oBAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;oBAEnF,gDAAgD;oBAChD,IAAI,YAAY,GAAG,IAAA,eAAQ,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;oBAEzD,YAAY;oBACZ,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChC,YAAY,GAAG,KAAK,YAAY,EAAE,CAAC;oBACvC,CAAC;oBACD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAEhD,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;gBAC5D,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,8CAA8C;gBAC9C,OAAO,CAAC,IAAI,CAAC,0CAA0C,GAAG,CAAC,aAAa,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnG,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,kBAAkB,CAAC;IAC9B,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,OAAoB;QACzD,MAAM,aAAa,GAAG,OAAO;aACxB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC;aAChC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,aAAa,MAAM,GAAG,CAAC,aAAa,GAAG,CAAC;aAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,OAAO;EACb,aAAa;EACb,CAAC;IACC,CAAC;IAEO,MAAM,CAAC,0BAA0B;QACrC,OAAO;;;;;;;;;;;;;EAab,CAAC;IACC,CAAC;CACJ;AA9JD,4DA8JC"}
@@ -0,0 +1,16 @@
1
+ import { ClassInfo } from '../types';
2
+ export declare class CircularDependencyDetector {
3
+ /**
4
+ * Detects circular dependencies in a list of classes
5
+ * @param classes - Array of analyzed classes
6
+ * @returns Array of cycles, where each cycle is an array of class names involved
7
+ */
8
+ static detect(classes: ClassInfo[]): string[][];
9
+ /**
10
+ * Detects circular dependencies between modules
11
+ * @param moduleGroupedClasses - Map of module name to classes in that module
12
+ * @returns Array of cycles, where each cycle is an array of module names involved
13
+ */
14
+ static detectModuleCycles(moduleGroupedClasses: Map<string, ClassInfo[]>): string[][];
15
+ }
16
+ //# sourceMappingURL=circular-dependency-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-dependency-detector.d.ts","sourceRoot":"","sources":["../../src/utils/circular-dependency-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,qBAAa,0BAA0B;IACnC;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE;IA0B/C;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE;CAuCxF"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CircularDependencyDetector = void 0;
4
+ const topological_sorter_1 = require("./topological-sorter");
5
+ class CircularDependencyDetector {
6
+ /**
7
+ * Detects circular dependencies in a list of classes
8
+ * @param classes - Array of analyzed classes
9
+ * @returns Array of cycles, where each cycle is an array of class names involved
10
+ */
11
+ static detect(classes) {
12
+ // Build a map from interface/class name to actual class name
13
+ const nameToClassName = new Map();
14
+ classes.forEach((cls) => {
15
+ nameToClassName.set(cls.name, cls.name); // Class name maps to itself
16
+ if (cls.interfaceName) {
17
+ nameToClassName.set(cls.interfaceName, cls.name); // Interface name maps to implementing class
18
+ }
19
+ });
20
+ const dependencyGraph = new Map();
21
+ // Build dependency graph using actual class names
22
+ classes.forEach((cls) => {
23
+ const resolvedDeps = cls.dependencies
24
+ .map((dep) => nameToClassName.get(dep.name))
25
+ .filter((name) => name !== undefined);
26
+ dependencyGraph.set(cls.name, resolvedDeps);
27
+ });
28
+ // Use TopologicalSorter to detect cycles
29
+ const result = topological_sorter_1.TopologicalSorter.sort(dependencyGraph);
30
+ return result.cycles;
31
+ }
32
+ /**
33
+ * Detects circular dependencies between modules
34
+ * @param moduleGroupedClasses - Map of module name to classes in that module
35
+ * @returns Array of cycles, where each cycle is an array of module names involved
36
+ */
37
+ static detectModuleCycles(moduleGroupedClasses) {
38
+ const moduleDependencyGraph = new Map();
39
+ // Build module dependency graph
40
+ for (const [moduleName, classes] of moduleGroupedClasses.entries()) {
41
+ const moduleDeps = new Set();
42
+ // For each class in this module, find which modules its dependencies belong to
43
+ for (const cls of classes) {
44
+ for (const dep of cls.dependencies) {
45
+ // Find which module this dependency belongs to
46
+ for (const [depModuleName, depModuleClasses] of moduleGroupedClasses.entries()) {
47
+ if (depModuleName === moduleName)
48
+ continue; // Skip self-dependencies
49
+ // Check if the dependency is in this other module (by interface name or class name)
50
+ const isInModule = depModuleClasses.some(depCls => depCls.interfaceName === dep.name || depCls.name === dep.name);
51
+ if (isInModule) {
52
+ moduleDeps.add(depModuleName);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ moduleDependencyGraph.set(moduleName, moduleDeps);
58
+ }
59
+ // Convert Set to Array for TopologicalSorter
60
+ const graphForSorter = new Map();
61
+ for (const [module, deps] of moduleDependencyGraph.entries()) {
62
+ graphForSorter.set(module, Array.from(deps));
63
+ }
64
+ // Use TopologicalSorter to detect cycles
65
+ const result = topological_sorter_1.TopologicalSorter.sort(graphForSorter);
66
+ return result.cycles;
67
+ }
68
+ }
69
+ exports.CircularDependencyDetector = CircularDependencyDetector;
70
+ //# sourceMappingURL=circular-dependency-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-dependency-detector.js","sourceRoot":"","sources":["../../src/utils/circular-dependency-detector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IAC7D,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,SAAS,EAAE,MAAM;IAM7B,OAAO,CAAC,UAAU;IAyBX,SAAS,IAAI,SAAS;IAItB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS;IAa/C,aAAa,IAAI,OAAO;IAIxB,aAAa,IAAI,MAAM;CAG/B"}
1
+ {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IAC7D,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,SAAS,EAAE,MAAM;IAM7B,OAAO,CAAC,UAAU;IAyBX,SAAS,IAAI,SAAS;IAItB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS;IAa/C,aAAa,IAAI,OAAO;IAIxB,aAAa,IAAI,MAAM;CAG/B"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigManager = void 0;
4
4
  const fs_1 = require("fs");
5
5
  const path_1 = require("path");
6
- const index_js_1 = require("../errors/index.js");
6
+ const errorFactory_1 = require("../errors/errorFactory");
7
+ const IoCError_1 = require("../errors/IoCError");
7
8
  class ConfigManager {
8
9
  constructor(sourceDir) {
9
10
  this.config = {};
@@ -19,12 +20,12 @@ class ConfigManager {
19
20
  }
20
21
  catch (error) {
21
22
  if (error instanceof SyntaxError) {
22
- const parseError = index_js_1.ErrorFactory.configParseError(this.configPath, error.message);
23
- console.warn(`⚠️ Warning: ${index_js_1.ErrorUtils.formatForConsole(parseError)}`);
23
+ const parseError = errorFactory_1.ErrorFactory.configParseError(this.configPath, error.message);
24
+ console.warn(`⚠️ Warning: ${IoCError_1.ErrorUtils.formatForConsole(parseError)}`);
24
25
  }
25
26
  else {
26
- const readError = index_js_1.ErrorFactory.fileReadError(this.configPath, error instanceof Error ? error.message : String(error));
27
- console.warn(`⚠️ Warning: ${index_js_1.ErrorUtils.formatForConsole(readError)}`);
27
+ const readError = errorFactory_1.ErrorFactory.fileReadError(this.configPath, error instanceof Error ? error.message : String(error));
28
+ console.warn(`⚠️ Warning: ${IoCError_1.ErrorUtils.formatForConsole(readError)}`);
28
29
  }
29
30
  console.warn(' Using default configuration.');
30
31
  this.config = {};
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAAwC;AACxC,iDAA8D;AAY9D,MAAa,aAAa;IAKxB,YAAY,SAAiB;QAHrB,WAAM,GAAc,EAAE,CAAC;QAI7B,4DAA4D;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,uBAAY,CAAC,gBAAgB,CAC9C,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,OAAO,CACd,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,qBAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,uBAAY,CAAC,aAAa,CAC1C,IAAI,CAAC,UAAU,EACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,qBAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAEM,SAAS;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAEM,mBAAmB,CAAC,UAAe;QACxC,+CAA+C;QAC/C,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK;YACxD,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB;YACrE,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAClD,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK;YACvE,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;YAC3D,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;SACnD,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;;AA3DH,sCA4DC;AA3DyB,8BAAgB,GAAG,iBAAiB,AAApB,CAAqB"}
1
+ {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/utils/configManager.ts"],"names":[],"mappings":";;;AAAA,2BAA8C;AAC9C,+BAAwC;AACxC,yDAAsD;AACtD,iDAAgD;AAYhD,MAAa,aAAa;IAKxB,YAAY,SAAiB;QAHrB,WAAM,GAAc,EAAE,CAAC;QAI7B,4DAA4D;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,IAAA,eAAU,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;oBACjC,MAAM,UAAU,GAAG,2BAAY,CAAC,gBAAgB,CAC9C,IAAI,CAAC,UAAU,EACf,KAAK,CAAC,OAAO,CACd,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,qBAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC1E,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,2BAAY,CAAC,aAAa,CAC1C,IAAI,CAAC,UAAU,EACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,gBAAgB,qBAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAEM,SAAS;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAEM,mBAAmB,CAAC,UAAe;QACxC,+CAA+C;QAC/C,OAAO;YACL,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK;YACxD,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,kBAAkB;YACrE,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YACxD,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAClD,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK;YACvE,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK;YAC3D,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;SACnD,CAAC;IACJ,CAAC;IAEM,aAAa;QAClB,OAAO,IAAA,eAAU,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;;AA3DH,sCA4DC;AA3DyB,8BAAgB,GAAG,iBAAiB,AAApB,CAAqB"}
@@ -1,5 +1,5 @@
1
1
  import { IoCConfig } from './configManager';
2
- import { IoCError } from '../errors/index.js';
2
+ import { IoCError } from '../errors/IoCError';
3
3
  export interface ValidationResult {
4
4
  isValid: boolean;
5
5
  errors: IoCError[];
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAA0D,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEtG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B;;;;OAIG;WACW,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB;IA8EjE;;;;;OAKG;WACW,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAuB7E;;;;;OAKG;WACW,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,gBAAgB;CAqBvG"}
1
+ {"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAA4C,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,eAAe;IAC1B;;;;OAIG;WACW,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB;IA8EjE;;;;;OAKG;WACW,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAuB7E;;;;;OAKG;WACW,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,SAAS,CAAC,EAAE,GAAG,gBAAgB;CAqBvG"}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConfigValidator = void 0;
4
4
  const moduleResolver_1 = require("./moduleResolver");
5
- const index_js_1 = require("../errors/index.js");
5
+ const errorFactory_1 = require("../errors/errorFactory");
6
+ const IoCError_1 = require("../errors/IoCError");
6
7
  class ConfigValidator {
7
8
  /**
8
9
  * Validates the complete IoC configuration
@@ -15,13 +16,13 @@ class ConfigValidator {
15
16
  // Validate source directory
16
17
  if (config.source !== undefined) {
17
18
  if (typeof config.source !== 'string' || config.source.trim() === '') {
18
- errors.push(index_js_1.ErrorFactory.configValidationError('source', config.source, 'non-empty string'));
19
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('source', config.source, 'non-empty string'));
19
20
  }
20
21
  }
21
22
  // Validate output file
22
23
  if (config.output !== undefined) {
23
24
  if (typeof config.output !== 'string' || config.output.trim() === '') {
24
- errors.push(index_js_1.ErrorFactory.configValidationError('output', config.output, 'non-empty string'));
25
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('output', config.output, 'non-empty string'));
25
26
  }
26
27
  else if (!config.output.endsWith('.ts') && !config.output.endsWith('.js')) {
27
28
  warnings.push('Output file should have .ts or .js extension');
@@ -30,41 +31,41 @@ class ConfigValidator {
30
31
  // Validate interface pattern
31
32
  if (config.interface !== undefined) {
32
33
  if (typeof config.interface !== 'string') {
33
- errors.push(index_js_1.ErrorFactory.configValidationError('interface', config.interface, 'string'));
34
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('interface', config.interface, 'string'));
34
35
  }
35
36
  else {
36
37
  try {
37
38
  new RegExp(config.interface);
38
39
  }
39
40
  catch (error) {
40
- errors.push(index_js_1.ErrorFactory.validationError(`Invalid interface pattern regex: ${config.interface}`, { configProperty: 'interface' }));
41
+ errors.push(errorFactory_1.ErrorFactory.validationError(`Invalid interface pattern regex: ${config.interface}`, { configProperty: 'interface' }));
41
42
  }
42
43
  }
43
44
  }
44
45
  // Validate exclude patterns
45
46
  if (config.exclude !== undefined) {
46
47
  if (!Array.isArray(config.exclude)) {
47
- errors.push(index_js_1.ErrorFactory.configValidationError('exclude', config.exclude, 'array'));
48
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('exclude', config.exclude, 'array'));
48
49
  }
49
50
  else {
50
51
  config.exclude.forEach((pattern, index) => {
51
52
  if (typeof pattern !== 'string') {
52
- errors.push(index_js_1.ErrorFactory.validationError(`Exclude pattern at index ${index} must be a string`, { configProperty: 'exclude' }));
53
+ errors.push(errorFactory_1.ErrorFactory.validationError(`Exclude pattern at index ${index} must be a string`, { configProperty: 'exclude' }));
53
54
  }
54
55
  });
55
56
  }
56
57
  }
57
58
  // Validate boolean flags
58
59
  if (config.checkCycles !== undefined && typeof config.checkCycles !== 'boolean') {
59
- errors.push(index_js_1.ErrorFactory.configValidationError('checkCycles', config.checkCycles, 'boolean'));
60
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('checkCycles', config.checkCycles, 'boolean'));
60
61
  }
61
62
  if (config.verbose !== undefined && typeof config.verbose !== 'boolean') {
62
- errors.push(index_js_1.ErrorFactory.configValidationError('verbose', config.verbose, 'boolean'));
63
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('verbose', config.verbose, 'boolean'));
63
64
  }
64
65
  // Validate modules configuration
65
66
  if (config.modules !== undefined) {
66
67
  if (typeof config.modules !== 'object' || config.modules === null || Array.isArray(config.modules)) {
67
- errors.push(index_js_1.ErrorFactory.configValidationError('modules', config.modules, 'object'));
68
+ errors.push(errorFactory_1.ErrorFactory.configValidationError('modules', config.modules, 'object'));
68
69
  }
69
70
  else {
70
71
  const moduleErrors = moduleResolver_1.ModuleResolver.validateModuleConfig(config.modules);
@@ -96,7 +97,7 @@ class ConfigValidator {
96
97
  console.error(`❌ Configuration validation failed${configSource}`);
97
98
  console.error('\n Validation errors:');
98
99
  result.errors.forEach(error => {
99
- console.error(` • ${index_js_1.ErrorUtils.formatForConsole(error)}`);
100
+ console.error(` • ${IoCError_1.ErrorUtils.formatForConsole(error)}`);
100
101
  });
101
102
  return false;
102
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configValidator.js","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { ClassInfo } from '../types';
2
- import { IoCError } from '../errors/index.js';
2
+ import { IoCError } from '../errors/IoCError';
3
3
  export declare class ModuleResolver {
4
4
  private moduleConfig;
5
5
  private sourceDirectory;
@@ -1 +1 @@
1
- {"version":3,"file":"moduleResolver.d.ts","sourceRoot":"","sources":["../../src/utils/moduleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAgB,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAS;gBAEpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM;IAK3E;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAcxD;;;;OAIG;IACI,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAgB3E;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;OAIG;WACW,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE;CAkCvF"}
1
+ {"version":3,"file":"moduleResolver.d.ts","sourceRoot":"","sources":["../../src/utils/moduleResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,eAAe,CAAS;gBAEpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,MAAM;IAK3E;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAcxD;;;;OAIG;IACI,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;IAgB3E;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;OAIG;WACW,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE;CAkCvF"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModuleResolver = void 0;
4
4
  const minimatch_1 = require("minimatch");
5
5
  const path_1 = require("path");
6
- const index_js_1 = require("../errors/index.js");
6
+ const errorFactory_1 = require("../errors/errorFactory");
7
7
  class ModuleResolver {
8
8
  constructor(moduleConfig, sourceDirectory) {
9
9
  this.moduleConfig = moduleConfig;
@@ -80,22 +80,22 @@ class ModuleResolver {
80
80
  for (const [moduleName, patterns] of Object.entries(moduleConfig)) {
81
81
  // Validate module name
82
82
  if (!moduleName || typeof moduleName !== 'string') {
83
- errors.push(index_js_1.ErrorFactory.moduleConfigInvalid(moduleName, 'Invalid module name'));
83
+ errors.push(errorFactory_1.ErrorFactory.moduleConfigInvalid(moduleName, 'Invalid module name'));
84
84
  continue;
85
85
  }
86
86
  // Validate patterns
87
87
  if (!Array.isArray(patterns)) {
88
- errors.push(index_js_1.ErrorFactory.moduleConfigInvalid(moduleName, 'patterns must be an array'));
88
+ errors.push(errorFactory_1.ErrorFactory.moduleConfigInvalid(moduleName, 'patterns must be an array'));
89
89
  continue;
90
90
  }
91
91
  for (const pattern of patterns) {
92
92
  if (typeof pattern !== 'string') {
93
- errors.push(index_js_1.ErrorFactory.moduleConfigInvalid(moduleName, `contains invalid pattern: ${pattern}`));
93
+ errors.push(errorFactory_1.ErrorFactory.moduleConfigInvalid(moduleName, `contains invalid pattern: ${pattern}`));
94
94
  continue;
95
95
  }
96
96
  // Check for duplicate patterns
97
97
  if (allPatterns.has(pattern)) {
98
- errors.push(index_js_1.ErrorFactory.modulePatternInvalid(pattern, moduleName));
98
+ errors.push(errorFactory_1.ErrorFactory.modulePatternInvalid(pattern, moduleName));
99
99
  }
100
100
  else {
101
101
  allPatterns.add(pattern);
@@ -1 +1 @@
1
- {"version":3,"file":"moduleResolver.js","sourceRoot":"","sources":["../../src/utils/moduleResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"moduleResolver.js","sourceRoot":"","sources":["../../src/utils/moduleResolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notjustcoders/ioc-arise",
3
- "version": "1.1.9",
3
+ "version": "1.1.11",
4
4
  "description": "Arise type-safe IoC containers from your code. Zero overhead, zero coupling.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -45,7 +45,8 @@
45
45
  "@notjustcoders/one-logger-client-sdk": "^1.0.10",
46
46
  "commander": "^11.1.0",
47
47
  "glob": "^10.3.10",
48
- "minimatch": "^10.0.1"
48
+ "minimatch": "^10.0.1",
49
+ "ioc-arise": "npm:@notjustcoders/di-container@1.0.1"
49
50
  },
50
51
  "devDependencies": {
51
52
  "@types/minimatch": "^5.1.2",