@notjustcoders/ioc-arise 1.0.0

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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +266 -0
  3. package/dist/__tests__/analyser/ast-parser.test.d.ts +2 -0
  4. package/dist/__tests__/analyser/ast-parser.test.d.ts.map +1 -0
  5. package/dist/__tests__/analyser/ast-parser.test.js +268 -0
  6. package/dist/__tests__/analyser/ast-parser.test.js.map +1 -0
  7. package/dist/__tests__/analyser/class-analyzer.test.d.ts +2 -0
  8. package/dist/__tests__/analyser/class-analyzer.test.d.ts.map +1 -0
  9. package/dist/__tests__/analyser/class-analyzer.test.js +259 -0
  10. package/dist/__tests__/analyser/class-analyzer.test.js.map +1 -0
  11. package/dist/__tests__/analyser/dependency-resolver.test.d.ts +2 -0
  12. package/dist/__tests__/analyser/dependency-resolver.test.d.ts.map +1 -0
  13. package/dist/__tests__/analyser/dependency-resolver.test.js +128 -0
  14. package/dist/__tests__/analyser/dependency-resolver.test.js.map +1 -0
  15. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts +26 -0
  16. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.d.ts.map +1 -0
  17. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js +178 -0
  18. package/dist/__tests__/analyser/fixtures/ast-parser-fixtures.js.map +1 -0
  19. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts +54 -0
  20. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.d.ts.map +1 -0
  21. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js +285 -0
  22. package/dist/__tests__/analyser/fixtures/class-analyzer-fixtures.js.map +1 -0
  23. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts +13 -0
  24. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.d.ts.map +1 -0
  25. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js +266 -0
  26. package/dist/__tests__/analyser/fixtures/dependency-resolver-fixtures.js.map +1 -0
  27. package/dist/__tests__/generator/container-generator.test.d.ts +2 -0
  28. package/dist/__tests__/generator/container-generator.test.d.ts.map +1 -0
  29. package/dist/__tests__/generator/container-generator.test.js +185 -0
  30. package/dist/__tests__/generator/container-generator.test.js.map +1 -0
  31. package/dist/__tests__/generator/dependency-resolver.test.d.ts +2 -0
  32. package/dist/__tests__/generator/dependency-resolver.test.d.ts.map +1 -0
  33. package/dist/__tests__/generator/dependency-resolver.test.js +330 -0
  34. package/dist/__tests__/generator/dependency-resolver.test.js.map +1 -0
  35. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts +23 -0
  36. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.d.ts.map +1 -0
  37. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js +254 -0
  38. package/dist/__tests__/generator/fixtures/dependency-resolver.fixtures.js.map +1 -0
  39. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts +10 -0
  40. package/dist/__tests__/generator/fixtures/import-generator.fixtures.d.ts.map +1 -0
  41. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js +194 -0
  42. package/dist/__tests__/generator/fixtures/import-generator.fixtures.js.map +1 -0
  43. package/dist/__tests__/generator/import-generator.test.d.ts +2 -0
  44. package/dist/__tests__/generator/import-generator.test.d.ts.map +1 -0
  45. package/dist/__tests__/generator/import-generator.test.js +121 -0
  46. package/dist/__tests__/generator/import-generator.test.js.map +1 -0
  47. package/dist/__tests__/generator/instantiation-generator.test.d.ts +2 -0
  48. package/dist/__tests__/generator/instantiation-generator.test.d.ts.map +1 -0
  49. package/dist/__tests__/generator/instantiation-generator.test.js +251 -0
  50. package/dist/__tests__/generator/instantiation-generator.test.js.map +1 -0
  51. package/dist/analyser/ast-parser.d.ts +12 -0
  52. package/dist/analyser/ast-parser.d.ts.map +1 -0
  53. package/dist/analyser/ast-parser.js +192 -0
  54. package/dist/analyser/ast-parser.js.map +1 -0
  55. package/dist/analyser/class-analyzer.d.ts +11 -0
  56. package/dist/analyser/class-analyzer.d.ts.map +1 -0
  57. package/dist/analyser/class-analyzer.js +78 -0
  58. package/dist/analyser/class-analyzer.js.map +1 -0
  59. package/dist/analyser/dependency-resolver.d.ts +10 -0
  60. package/dist/analyser/dependency-resolver.d.ts.map +1 -0
  61. package/dist/analyser/dependency-resolver.js +46 -0
  62. package/dist/analyser/dependency-resolver.js.map +1 -0
  63. package/dist/analyser/file-discovery.d.ts +7 -0
  64. package/dist/analyser/file-discovery.d.ts.map +1 -0
  65. package/dist/analyser/file-discovery.js +30 -0
  66. package/dist/analyser/file-discovery.js.map +1 -0
  67. package/dist/analyser/index.d.ts +3 -0
  68. package/dist/analyser/index.d.ts.map +1 -0
  69. package/dist/analyser/index.js +14 -0
  70. package/dist/analyser/index.js.map +1 -0
  71. package/dist/analyser/module-dependency-resolver.d.ts +17 -0
  72. package/dist/analyser/module-dependency-resolver.d.ts.map +1 -0
  73. package/dist/analyser/module-dependency-resolver.js +66 -0
  74. package/dist/analyser/module-dependency-resolver.js.map +1 -0
  75. package/dist/analyser/project-analyzer.d.ts +8 -0
  76. package/dist/analyser/project-analyzer.d.ts.map +1 -0
  77. package/dist/analyser/project-analyzer.js +20 -0
  78. package/dist/analyser/project-analyzer.js.map +1 -0
  79. package/dist/commands/analyze.d.ts +3 -0
  80. package/dist/commands/analyze.d.ts.map +1 -0
  81. package/dist/commands/analyze.js +66 -0
  82. package/dist/commands/analyze.js.map +1 -0
  83. package/dist/commands/generate.d.ts +3 -0
  84. package/dist/commands/generate.d.ts.map +1 -0
  85. package/dist/commands/generate.js +150 -0
  86. package/dist/commands/generate.js.map +1 -0
  87. package/dist/container.d.ts +5 -0
  88. package/dist/container.d.ts.map +1 -0
  89. package/dist/container.js +8 -0
  90. package/dist/container.js.map +1 -0
  91. package/dist/generator/container-file-generator.d.ts +20 -0
  92. package/dist/generator/container-file-generator.d.ts.map +1 -0
  93. package/dist/generator/container-file-generator.js +255 -0
  94. package/dist/generator/container-file-generator.js.map +1 -0
  95. package/dist/generator/container-generator.d.ts +8 -0
  96. package/dist/generator/container-generator.d.ts.map +1 -0
  97. package/dist/generator/container-generator.js +35 -0
  98. package/dist/generator/container-generator.js.map +1 -0
  99. package/dist/generator/dependency-resolver.d.ts +11 -0
  100. package/dist/generator/dependency-resolver.d.ts.map +1 -0
  101. package/dist/generator/dependency-resolver.js +83 -0
  102. package/dist/generator/dependency-resolver.js.map +1 -0
  103. package/dist/generator/file-writer.d.ts +6 -0
  104. package/dist/generator/file-writer.d.ts.map +1 -0
  105. package/dist/generator/file-writer.js +19 -0
  106. package/dist/generator/file-writer.js.map +1 -0
  107. package/dist/generator/import-generator.d.ts +7 -0
  108. package/dist/generator/import-generator.d.ts.map +1 -0
  109. package/dist/generator/import-generator.js +31 -0
  110. package/dist/generator/import-generator.js.map +1 -0
  111. package/dist/generator/index.d.ts +4 -0
  112. package/dist/generator/index.d.ts.map +1 -0
  113. package/dist/generator/index.js +25 -0
  114. package/dist/generator/index.js.map +1 -0
  115. package/dist/generator/instantiation-generator.d.ts +8 -0
  116. package/dist/generator/instantiation-generator.d.ts.map +1 -0
  117. package/dist/generator/instantiation-generator.js +153 -0
  118. package/dist/generator/instantiation-generator.js.map +1 -0
  119. package/dist/generator/module-container-generator.d.ts +10 -0
  120. package/dist/generator/module-container-generator.d.ts.map +1 -0
  121. package/dist/generator/module-container-generator.js +51 -0
  122. package/dist/generator/module-container-generator.js.map +1 -0
  123. package/dist/index.d.ts +3 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +20 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/types.d.ts +30 -0
  128. package/dist/types.d.ts.map +1 -0
  129. package/dist/types.js +3 -0
  130. package/dist/types.js.map +1 -0
  131. package/dist/utils/configManager.d.ts +21 -0
  132. package/dist/utils/configManager.d.ts.map +1 -0
  133. package/dist/utils/configManager.js +50 -0
  134. package/dist/utils/configManager.js.map +1 -0
  135. package/dist/utils/moduleResolver.d.ts +38 -0
  136. package/dist/utils/moduleResolver.d.ts.map +1 -0
  137. package/dist/utils/moduleResolver.js +108 -0
  138. package/dist/utils/moduleResolver.js.map +1 -0
  139. package/dist/utils/naming.d.ts +7 -0
  140. package/dist/utils/naming.d.ts.map +1 -0
  141. package/dist/utils/naming.js +12 -0
  142. package/dist/utils/naming.js.map +1 -0
  143. package/dist/utils/topological-sorter.d.ts +17 -0
  144. package/dist/utils/topological-sorter.d.ts.map +1 -0
  145. package/dist/utils/topological-sorter.js +69 -0
  146. package/dist/utils/topological-sorter.js.map +1 -0
  147. package/package.json +72 -0
@@ -0,0 +1,54 @@
1
+ import { ClassInfo, ConstructorParameter, InjectionScope } from '../../../types';
2
+ export declare const testFileContents: {
3
+ basicClassWithInterface: string;
4
+ classWithJSDocScope: string;
5
+ classWithTypeAliases: string;
6
+ classWithOptionalParams: string;
7
+ multipleClasses: string;
8
+ classWithoutInterface: string;
9
+ emptyFile: string;
10
+ invalidSyntax: string;
11
+ complexConstructorParams: string;
12
+ nonMatchingInterface: string;
13
+ };
14
+ export declare const importPathTestCases: {
15
+ filePath: string;
16
+ expected: string;
17
+ }[];
18
+ export declare const generateImportPathTestCases: {
19
+ sourceDir: string;
20
+ filePath: string;
21
+ expected: string;
22
+ }[];
23
+ export declare const dependencyResolutionTestParams: {
24
+ name: string;
25
+ type: string;
26
+ isOptional: boolean;
27
+ }[];
28
+ export declare const typeAliasesForDependencyTest: Map<string, string>;
29
+ export declare const constructorParamsWithAliases: {
30
+ name: string;
31
+ type: string;
32
+ isOptional: boolean;
33
+ }[];
34
+ export declare const mockClassInfos: ClassInfo[];
35
+ export declare const mockConstructorParams: ConstructorParameter[];
36
+ export declare const mockTypeAliases: Map<string, string>;
37
+ export declare const expectedResults: {
38
+ basicClass: {
39
+ name: string;
40
+ interfaceName: string;
41
+ dependencies: string[];
42
+ importPath: string;
43
+ };
44
+ classWithScope: {
45
+ name: string;
46
+ interfaceName: string;
47
+ scope: InjectionScope;
48
+ };
49
+ multipleClasses: {
50
+ name: string;
51
+ interfaceName: string;
52
+ }[];
53
+ };
54
+ //# sourceMappingURL=class-analyzer-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-analyzer-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/class-analyzer-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGjF,eAAO,MAAM,gBAAgB;;;;;;;;;;;CAkJ5B,CAAC;AAGF,eAAO,MAAM,mBAAmB;;;GAa/B,CAAC;AAGF,eAAO,MAAM,2BAA2B;;;;GAgBvC,CAAC;AAGF,eAAO,MAAM,8BAA8B;;;;GAK1C,CAAC;AAGF,eAAO,MAAM,4BAA4B,qBAGvC,CAAC;AAGH,eAAO,MAAM,4BAA4B;;;;GAGxC,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,SAAS,EAuCrC,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,EAmBvD,CAAC;AAGF,eAAO,MAAM,eAAe,qBAI1B,CAAC;AAGH,eAAO,MAAM,eAAe;;;;;;;;;;eAUF,cAAc;;;;;;CAYvC,CAAC"}
@@ -0,0 +1,285 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.expectedResults = exports.mockTypeAliases = exports.mockConstructorParams = exports.mockClassInfos = exports.constructorParamsWithAliases = exports.typeAliasesForDependencyTest = exports.dependencyResolutionTestParams = exports.generateImportPathTestCases = exports.importPathTestCases = exports.testFileContents = void 0;
4
+ // Test file contents for different scenarios
5
+ exports.testFileContents = {
6
+ // Basic class implementing an interface
7
+ basicClassWithInterface: `
8
+ import { IUserService } from './interfaces/IUserService';
9
+ import { IUserRepository } from './interfaces/IUserRepository';
10
+ import { ILogger } from './interfaces/ILogger';
11
+
12
+ export class UserService implements IUserService {
13
+ constructor(
14
+ private userRepository: IUserRepository,
15
+ private logger: ILogger
16
+ ) {}
17
+
18
+ async getUser(id: string): Promise<User> {
19
+ this.logger.log('Getting user');
20
+ return this.userRepository.findById(id);
21
+ }
22
+ }
23
+ `,
24
+ // Class with JSDoc scope annotation
25
+ classWithJSDocScope: `
26
+ import { IEmailService } from './interfaces/IEmailService';
27
+ import { ITemplateEngine } from './interfaces/ITemplateEngine';
28
+
29
+ /**
30
+ * @scope singleton
31
+ */
32
+ export class EmailService implements IEmailService {
33
+ constructor(
34
+ private templateEngine: ITemplateEngine
35
+ ) {}
36
+
37
+ async sendEmail(to: string, template: string): Promise<void> {
38
+ const content = this.templateEngine.render(template);
39
+ // Send email logic
40
+ }
41
+ }
42
+ `,
43
+ // Class with type aliases
44
+ classWithTypeAliases: `
45
+ import { IPaymentService } from './interfaces/IPaymentService';
46
+ import { INotificationService as NotificationSvc } from './interfaces/INotificationService';
47
+ import { ILogger as Log } from './interfaces/ILogger';
48
+
49
+ export class PaymentService implements IPaymentService {
50
+ constructor(
51
+ private notificationService: NotificationSvc,
52
+ private logger: Log
53
+ ) {}
54
+
55
+ async processPayment(amount: number): Promise<void> {
56
+ this.logger.log('Processing payment');
57
+ await this.notificationService.notify('Payment processed');
58
+ }
59
+ }
60
+ `,
61
+ // Class with optional parameters
62
+ classWithOptionalParams: `
63
+ import { IOrderService } from './interfaces/IOrderService';
64
+ import { IInventoryService } from './interfaces/IInventoryService';
65
+ import { ILogger } from './interfaces/ILogger';
66
+
67
+ export class OrderService implements IOrderService {
68
+ constructor(
69
+ private inventoryService: IInventoryService,
70
+ private logger?: ILogger
71
+ ) {}
72
+
73
+ async createOrder(items: string[]): Promise<void> {
74
+ this.logger?.log('Creating order');
75
+ await this.inventoryService.checkAvailability(items);
76
+ }
77
+ }
78
+ `,
79
+ // Multiple classes in one file
80
+ multipleClasses: `
81
+ import { IUserService } from './interfaces/IUserService';
82
+ import { IAdminService } from './interfaces/IAdminService';
83
+ import { ILogger } from './interfaces/ILogger';
84
+ import { IDatabase } from './interfaces/IDatabase';
85
+
86
+ export class UserService implements IUserService {
87
+ constructor(private logger: ILogger) {}
88
+ }
89
+
90
+ export class AdminService implements IAdminService {
91
+ constructor(
92
+ private database: IDatabase,
93
+ private logger: ILogger
94
+ ) {}
95
+ }
96
+ `,
97
+ // Class without interface (should be ignored)
98
+ classWithoutInterface: `
99
+ export class UtilityClass {
100
+ constructor(private config: any) {}
101
+
102
+ doSomething(): void {
103
+ // Implementation
104
+ }
105
+ }
106
+ `,
107
+ // Empty file
108
+ emptyFile: '',
109
+ // File with syntax errors
110
+ invalidSyntax: `
111
+ import { IService } from './interfaces/IService';
112
+
113
+ export class BrokenService implements IService {
114
+ constructor(
115
+ private dependency: IDependency
116
+ ) {
117
+ // Missing closing brace
118
+ `,
119
+ // Class with complex constructor parameters
120
+ complexConstructorParams: `
121
+ import { IComplexService } from './interfaces/IComplexService';
122
+ import { ILogger } from './interfaces/ILogger';
123
+ import { IConfig } from './interfaces/IConfig';
124
+
125
+ export class ComplexService implements IComplexService {
126
+ constructor(
127
+ private readonly logger: ILogger,
128
+ protected config: IConfig,
129
+ public readonly name: string,
130
+ private optional?: ILogger
131
+ ) {}
132
+ }
133
+ `,
134
+ // Class with interface pattern that should be filtered
135
+ nonMatchingInterface: `
136
+ import { IInternalService } from './interfaces/IInternalService';
137
+
138
+ export class InternalService implements IInternalService {
139
+ constructor() {}
140
+ }
141
+ `
142
+ };
143
+ // Test cases for import path generation
144
+ exports.importPathTestCases = [
145
+ {
146
+ filePath: '/src/services/user.service.ts',
147
+ expected: './services/user.service'
148
+ },
149
+ {
150
+ filePath: '/src/repositories/user.repository.ts',
151
+ expected: './repositories/user.repository'
152
+ },
153
+ {
154
+ filePath: '/src/utils/logger.ts',
155
+ expected: './utils/logger'
156
+ }
157
+ ];
158
+ // Test cases for generateImportPath method
159
+ exports.generateImportPathTestCases = [
160
+ {
161
+ sourceDir: '/project/src',
162
+ filePath: '/project/src/services/user.service.ts',
163
+ expected: './services/user.service'
164
+ },
165
+ {
166
+ sourceDir: '/project/src',
167
+ filePath: '/project/src/repositories/data/user.repository.ts',
168
+ expected: './repositories/data/user.repository'
169
+ },
170
+ {
171
+ sourceDir: '/app/source',
172
+ filePath: '/app/source/utils/logger.ts',
173
+ expected: './utils/logger'
174
+ }
175
+ ];
176
+ // Mock constructor parameters for dependency resolution tests
177
+ exports.dependencyResolutionTestParams = [
178
+ { name: 'userRepo', type: 'IUserRepository', isOptional: false },
179
+ { name: 'logger', type: 'ILogger', isOptional: false },
180
+ { name: 'config', type: 'string', isOptional: false }, // Should be filtered out
181
+ { name: 'count', type: 'number', isOptional: false } // Should be filtered out
182
+ ];
183
+ // Type aliases for dependency resolution tests
184
+ exports.typeAliasesForDependencyTest = new Map([
185
+ ['UserRepo', 'IUserRepository'],
186
+ ['Log', 'ILogger']
187
+ ]);
188
+ // Constructor parameters with type aliases
189
+ exports.constructorParamsWithAliases = [
190
+ { name: 'userRepo', type: 'UserRepo', isOptional: false },
191
+ { name: 'logger', type: 'Log', isOptional: false }
192
+ ];
193
+ // Mock ClassInfo objects for testing
194
+ exports.mockClassInfos = [
195
+ {
196
+ name: 'UserService',
197
+ filePath: '/src/services/user.service.ts',
198
+ dependencies: ['IUserRepository', 'ILogger'],
199
+ constructorParams: [
200
+ {
201
+ name: 'userRepository',
202
+ type: 'IUserRepository',
203
+ isOptional: false,
204
+ accessModifier: 'private'
205
+ },
206
+ {
207
+ name: 'logger',
208
+ type: 'ILogger',
209
+ isOptional: false,
210
+ accessModifier: 'private'
211
+ }
212
+ ],
213
+ interfaceName: 'IUserService',
214
+ importPath: './services/user.service',
215
+ scope: 'transient'
216
+ },
217
+ {
218
+ name: 'EmailService',
219
+ filePath: '/src/services/email.service.ts',
220
+ dependencies: ['ITemplateEngine'],
221
+ constructorParams: [
222
+ {
223
+ name: 'templateEngine',
224
+ type: 'ITemplateEngine',
225
+ isOptional: false,
226
+ accessModifier: 'private'
227
+ }
228
+ ],
229
+ interfaceName: 'IEmailService',
230
+ importPath: './services/email.service',
231
+ scope: 'singleton'
232
+ }
233
+ ];
234
+ // Mock constructor parameters for testing
235
+ exports.mockConstructorParams = [
236
+ {
237
+ name: 'userRepository',
238
+ type: 'IUserRepository',
239
+ isOptional: false,
240
+ accessModifier: 'private'
241
+ },
242
+ {
243
+ name: 'logger',
244
+ type: 'ILogger',
245
+ isOptional: true,
246
+ accessModifier: 'private'
247
+ },
248
+ {
249
+ name: 'config',
250
+ type: 'string',
251
+ isOptional: false,
252
+ accessModifier: 'public'
253
+ }
254
+ ];
255
+ // Mock type aliases for testing
256
+ exports.mockTypeAliases = new Map([
257
+ ['NotificationSvc', 'INotificationService'],
258
+ ['Log', 'ILogger'],
259
+ ['DB', 'IDatabase']
260
+ ]);
261
+ // Expected results for various test scenarios
262
+ exports.expectedResults = {
263
+ basicClass: {
264
+ name: 'UserService',
265
+ interfaceName: 'IUserService',
266
+ dependencies: ['IUserRepository', 'ILogger'],
267
+ importPath: './services/user.service'
268
+ },
269
+ classWithScope: {
270
+ name: 'EmailService',
271
+ interfaceName: 'IEmailService',
272
+ scope: 'singleton'
273
+ },
274
+ multipleClasses: [
275
+ {
276
+ name: 'UserService',
277
+ interfaceName: 'IUserService'
278
+ },
279
+ {
280
+ name: 'AdminService',
281
+ interfaceName: 'IAdminService'
282
+ }
283
+ ]
284
+ };
285
+ //# sourceMappingURL=class-analyzer-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"class-analyzer-fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/class-analyzer-fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { ClassInfo } from '../../../types';
2
+ export declare const basicMockClasses: ClassInfo[];
3
+ export declare const simpleClasses: ClassInfo[];
4
+ export declare const circularClasses: ClassInfo[];
5
+ export declare const selfRefClasses: ClassInfo[];
6
+ export declare const classesWithExternal: ClassInfo[];
7
+ export declare const simpleBinaryCircular: ClassInfo[];
8
+ export declare const multiCircularClasses: ClassInfo[];
9
+ export declare const externalDependencyClasses: ClassInfo[];
10
+ export declare const standaloneClasses: ClassInfo[];
11
+ export declare const diamondClasses: ClassInfo[];
12
+ export declare const optionalDepClasses: ClassInfo[];
13
+ //# sourceMappingURL=dependency-resolver-fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-resolver-fixtures.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/dependency-resolver-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,eAAO,MAAM,gBAAgB,EAAE,SAAS,EA0CvC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAAS,EASpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,EA+BtC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,EAWrC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,SAAS,EAoB1C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAiB3C,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,EAmC3C,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SAAS,EAiBhD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,SAAS,EASxC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,EAwCrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAAS,EAoBzC,CAAC"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.optionalDepClasses = exports.diamondClasses = exports.standaloneClasses = exports.externalDependencyClasses = exports.multiCircularClasses = exports.simpleBinaryCircular = exports.classesWithExternal = exports.selfRefClasses = exports.circularClasses = exports.simpleClasses = exports.basicMockClasses = void 0;
4
+ exports.basicMockClasses = [
5
+ {
6
+ name: 'UserService',
7
+ dependencies: ['UserRepository', 'Logger'],
8
+ constructorParams: [
9
+ { name: 'userRepo', type: 'UserRepository', isOptional: false },
10
+ { name: 'logger', type: 'Logger', isOptional: false }
11
+ ],
12
+ scope: 'singleton',
13
+ interfaceName: 'IUserService',
14
+ importPath: './user-service',
15
+ filePath: '/test/user-service.ts'
16
+ },
17
+ {
18
+ name: 'UserRepository',
19
+ dependencies: ['DatabaseConnection'],
20
+ constructorParams: [
21
+ { name: 'db', type: 'DatabaseConnection', isOptional: false }
22
+ ],
23
+ scope: 'singleton',
24
+ interfaceName: 'IUserRepository',
25
+ importPath: './user-repository',
26
+ filePath: '/test/user-repository.ts'
27
+ },
28
+ {
29
+ name: 'DatabaseConnection',
30
+ dependencies: [],
31
+ constructorParams: [],
32
+ scope: 'singleton',
33
+ interfaceName: 'IDatabaseConnection',
34
+ importPath: './database-connection',
35
+ filePath: '/test/database-connection.ts'
36
+ },
37
+ {
38
+ name: 'Logger',
39
+ dependencies: [],
40
+ constructorParams: [],
41
+ scope: 'singleton',
42
+ interfaceName: 'ILogger',
43
+ importPath: './logger',
44
+ filePath: '/test/logger.ts'
45
+ }
46
+ ];
47
+ exports.simpleClasses = [
48
+ {
49
+ name: 'SimpleClass',
50
+ dependencies: [],
51
+ constructorParams: [],
52
+ scope: 'singleton',
53
+ importPath: './simple',
54
+ filePath: '/test/simple.ts'
55
+ }
56
+ ];
57
+ exports.circularClasses = [
58
+ {
59
+ name: 'ClassA',
60
+ dependencies: ['ClassB'],
61
+ constructorParams: [
62
+ { name: 'classB', type: 'ClassB', isOptional: false }
63
+ ],
64
+ scope: 'singleton',
65
+ importPath: './class-a',
66
+ filePath: '/test/class-a.ts'
67
+ },
68
+ {
69
+ name: 'ClassB',
70
+ dependencies: ['ClassC'],
71
+ constructorParams: [
72
+ { name: 'classC', type: 'ClassC', isOptional: false }
73
+ ],
74
+ scope: 'singleton',
75
+ importPath: './class-b',
76
+ filePath: '/test/class-b.ts'
77
+ },
78
+ {
79
+ name: 'ClassC',
80
+ dependencies: ['ClassA'],
81
+ constructorParams: [
82
+ { name: 'classA', type: 'ClassA', isOptional: false }
83
+ ],
84
+ scope: 'singleton',
85
+ importPath: './class-c',
86
+ filePath: '/test/class-c.ts'
87
+ }
88
+ ];
89
+ exports.selfRefClasses = [
90
+ {
91
+ name: 'SelfRef',
92
+ dependencies: ['SelfRef'],
93
+ constructorParams: [
94
+ { name: 'self', type: 'SelfRef', isOptional: false }
95
+ ],
96
+ scope: 'singleton',
97
+ importPath: './self-ref',
98
+ filePath: '/test/self-ref.ts'
99
+ }
100
+ ];
101
+ exports.classesWithExternal = [
102
+ {
103
+ name: 'ServiceWithExternal',
104
+ dependencies: ['ManagedDep', 'ExternalLibrary'],
105
+ constructorParams: [
106
+ { name: 'managed', type: 'ManagedDep', isOptional: false },
107
+ { name: 'external', type: 'ExternalLibrary', isOptional: false }
108
+ ],
109
+ scope: 'singleton',
110
+ importPath: './service',
111
+ filePath: '/test/service.ts'
112
+ },
113
+ {
114
+ name: 'ManagedDep',
115
+ dependencies: [],
116
+ constructorParams: [],
117
+ scope: 'singleton',
118
+ importPath: './managed',
119
+ filePath: '/test/managed.ts'
120
+ }
121
+ ];
122
+ exports.simpleBinaryCircular = [
123
+ {
124
+ name: 'A',
125
+ dependencies: ['B'],
126
+ constructorParams: [{ name: 'b', type: 'B', isOptional: false }],
127
+ scope: 'singleton',
128
+ importPath: './a',
129
+ filePath: '/test/a.ts'
130
+ },
131
+ {
132
+ name: 'B',
133
+ dependencies: ['A'],
134
+ constructorParams: [{ name: 'a', type: 'A', isOptional: false }],
135
+ scope: 'singleton',
136
+ importPath: './b',
137
+ filePath: '/test/b.ts'
138
+ }
139
+ ];
140
+ exports.multiCircularClasses = [
141
+ // First cycle: A -> B -> A
142
+ {
143
+ name: 'A',
144
+ dependencies: ['B'],
145
+ constructorParams: [{ name: 'b', type: 'B', isOptional: false }],
146
+ scope: 'singleton',
147
+ importPath: './a',
148
+ filePath: '/test/a.ts'
149
+ },
150
+ {
151
+ name: 'B',
152
+ dependencies: ['A'],
153
+ constructorParams: [{ name: 'a', type: 'A', isOptional: false }],
154
+ scope: 'singleton',
155
+ importPath: './b',
156
+ filePath: '/test/b.ts'
157
+ },
158
+ // Second cycle: C -> D -> C
159
+ {
160
+ name: 'C',
161
+ dependencies: ['D'],
162
+ constructorParams: [{ name: 'd', type: 'D', isOptional: false }],
163
+ scope: 'singleton',
164
+ importPath: './c',
165
+ filePath: '/test/c.ts'
166
+ },
167
+ {
168
+ name: 'D',
169
+ dependencies: ['C'],
170
+ constructorParams: [{ name: 'c', type: 'C', isOptional: false }],
171
+ scope: 'singleton',
172
+ importPath: './d',
173
+ filePath: '/test/d.ts'
174
+ }
175
+ ];
176
+ exports.externalDependencyClasses = [
177
+ {
178
+ name: 'TestClass',
179
+ dependencies: ['ManagedClass', 'ExternalLibrary', 'AnotherExternal'],
180
+ constructorParams: [],
181
+ scope: 'singleton',
182
+ importPath: '/test/test.ts',
183
+ filePath: '/test/test.ts'
184
+ },
185
+ {
186
+ name: 'ManagedClass',
187
+ dependencies: [],
188
+ constructorParams: [],
189
+ scope: 'singleton',
190
+ importPath: '/test/managed.ts',
191
+ filePath: '/test/managed.ts'
192
+ }
193
+ ];
194
+ exports.standaloneClasses = [
195
+ {
196
+ name: 'Standalone',
197
+ dependencies: [],
198
+ constructorParams: [],
199
+ scope: 'singleton',
200
+ importPath: '/test/standalone.ts',
201
+ filePath: '/test/standalone.ts'
202
+ }
203
+ ];
204
+ exports.diamondClasses = [
205
+ {
206
+ name: 'Top',
207
+ dependencies: ['Left', 'Right'],
208
+ constructorParams: [
209
+ { name: 'left', type: 'Left', isOptional: false },
210
+ { name: 'right', type: 'Right', isOptional: false }
211
+ ],
212
+ scope: 'singleton',
213
+ importPath: '/test/top.ts',
214
+ filePath: '/test/top.ts'
215
+ },
216
+ {
217
+ name: 'Left',
218
+ dependencies: ['Bottom'],
219
+ constructorParams: [
220
+ { name: 'bottom', type: 'Bottom', isOptional: false }
221
+ ],
222
+ scope: 'singleton',
223
+ importPath: '/test/left.ts',
224
+ filePath: '/test/left.ts'
225
+ },
226
+ {
227
+ name: 'Right',
228
+ dependencies: ['Bottom'],
229
+ constructorParams: [
230
+ { name: 'bottom', type: 'Bottom', isOptional: false }
231
+ ],
232
+ scope: 'singleton',
233
+ importPath: '/test/right.ts',
234
+ filePath: '/test/right.ts'
235
+ },
236
+ {
237
+ name: 'Bottom',
238
+ dependencies: [],
239
+ constructorParams: [],
240
+ scope: 'singleton',
241
+ importPath: '/test/bottom.ts',
242
+ filePath: '/test/bottom.ts'
243
+ }
244
+ ];
245
+ exports.optionalDepClasses = [
246
+ {
247
+ name: 'ServiceWithOptional',
248
+ dependencies: ['RequiredDep'],
249
+ constructorParams: [
250
+ { name: 'required', type: 'RequiredDep', isOptional: false },
251
+ { name: 'optional', type: 'OptionalDep', isOptional: true }
252
+ ],
253
+ scope: 'singleton',
254
+ importPath: '/test/service.ts',
255
+ filePath: '/test/service.ts'
256
+ },
257
+ {
258
+ name: 'RequiredDep',
259
+ dependencies: [],
260
+ constructorParams: [],
261
+ scope: 'singleton',
262
+ importPath: '/test/required.ts',
263
+ filePath: '/test/required.ts'
264
+ }
265
+ ];
266
+ //# sourceMappingURL=dependency-resolver-fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-resolver-fixtures.js","sourceRoot":"","sources":["../../../../src/__tests__/analyser/fixtures/dependency-resolver-fixtures.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAgB;IAC3C;QACE,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC;QAC1C,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,EAAE;YAC/D,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,cAAc;QAC7B,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,uBAAuB;KAClC;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,YAAY,EAAE,CAAC,oBAAoB,CAAC;QACpC,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,KAAK,EAAE;SAC9D;QACD,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,iBAAiB;QAChC,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,0BAA0B;KACrC;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,qBAAqB;QACpC,UAAU,EAAE,uBAAuB;QACnC,QAAQ,EAAE,8BAA8B;KACzC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,iBAAiB;KAC5B;CACF,CAAC;AAEW,QAAA,aAAa,GAAgB;IACxC;QACE,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,iBAAiB;KAC5B;CACF,CAAC;AAEW,QAAA,eAAe,GAAgB;IAC1C;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC;AAEW,QAAA,cAAc,GAAgB;IACzC;QACE,IAAI,EAAE,SAAS;QACf,YAAY,EAAE,CAAC,SAAS,CAAC;QACzB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE;SACrD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,mBAAmB;KAC9B;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAgB;IAC9C;QACE,IAAI,EAAE,qBAAqB;QAC3B,YAAY,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;QAC/C,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE;YAC1D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,KAAK,EAAE;SACjE;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAgB;IAC/C;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;IACD;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;CACF,CAAC;AAEW,QAAA,oBAAoB,GAAgB;IAC/C,2BAA2B;IAC3B;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;IACD;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;IACD,4BAA4B;IAC5B;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;IACD;QACE,IAAI,EAAE,GAAG;QACT,YAAY,EAAE,CAAC,GAAG,CAAC;QACnB,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAChE,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,YAAY;KACvB;CACF,CAAC;AAEW,QAAA,yBAAyB,GAAgB;IACpD;QACE,IAAI,EAAE,WAAW;QACjB,YAAY,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;QACpE,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,kBAAkB;KAC7B;CACF,CAAC;AAEW,QAAA,iBAAiB,GAAgB;IAC5C;QACE,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,qBAAqB;QACjC,QAAQ,EAAE,qBAAqB;KAChC;CACF,CAAC;AAEW,QAAA,cAAc,GAAgB;IACzC;QACE,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/B,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;YACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE;SACpD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,cAAc;KACzB;IACD;QACE,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,eAAe;QAC3B,QAAQ,EAAE,eAAe;KAC1B;IACD;QACE,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,CAAC,QAAQ,CAAC;QACxB,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;SACtD;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,gBAAgB;KAC3B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,iBAAiB;KAC5B;CACF,CAAC;AAEW,QAAA,kBAAkB,GAAgB;IAC7C;QACE,IAAI,EAAE,qBAAqB;QAC3B,YAAY,EAAE,CAAC,aAAa,CAAC;QAC7B,iBAAiB,EAAE;YACjB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE;YAC5D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;SAC5D;QACD,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,kBAAkB;KAC7B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,mBAAmB;QAC/B,QAAQ,EAAE,mBAAmB;KAC9B;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=container-generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container-generator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/generator/container-generator.test.ts"],"names":[],"mappings":""}