fragment-ts 1.0.28 → 1.0.30

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 (51) hide show
  1. package/dist/cli/commands/init.command.js +1 -1
  2. package/dist/core/container/di-container.d.ts +7 -6
  3. package/dist/core/container/di-container.d.ts.map +1 -1
  4. package/dist/core/container/di-container.js +162 -129
  5. package/dist/core/container/di-container.js.map +1 -1
  6. package/dist/core/decorators/application.decorator.d.ts.map +1 -1
  7. package/dist/core/decorators/application.decorator.js +2 -1
  8. package/dist/core/decorators/application.decorator.js.map +1 -1
  9. package/dist/core/decorators/auto-configuration.decorator.d.ts.map +1 -1
  10. package/dist/core/decorators/auto-configuration.decorator.js +4 -3
  11. package/dist/core/decorators/auto-configuration.decorator.js.map +1 -1
  12. package/dist/core/decorators/controller.decorator.d.ts.map +1 -1
  13. package/dist/core/decorators/controller.decorator.js +1 -0
  14. package/dist/core/decorators/controller.decorator.js.map +1 -1
  15. package/dist/core/decorators/http.decorators.d.ts.map +1 -1
  16. package/dist/core/decorators/http.decorators.js +9 -0
  17. package/dist/core/decorators/http.decorators.js.map +1 -1
  18. package/dist/core/decorators/injectable.decorator.d.ts.map +1 -1
  19. package/dist/core/decorators/injectable.decorator.js +1 -0
  20. package/dist/core/decorators/injectable.decorator.js.map +1 -1
  21. package/dist/core/decorators/injection.decorators.d.ts.map +1 -1
  22. package/dist/core/decorators/injection.decorators.js +49 -19
  23. package/dist/core/decorators/injection.decorators.js.map +1 -1
  24. package/dist/core/decorators/repository.decorator.d.ts.map +1 -1
  25. package/dist/core/decorators/repository.decorator.js +1 -0
  26. package/dist/core/decorators/repository.decorator.js.map +1 -1
  27. package/dist/core/decorators/service.decorator.d.ts.map +1 -1
  28. package/dist/core/decorators/service.decorator.js +1 -0
  29. package/dist/core/decorators/service.decorator.js.map +1 -1
  30. package/dist/core/metadata/metadata-storage.d.ts +11 -0
  31. package/dist/core/metadata/metadata-storage.d.ts.map +1 -1
  32. package/dist/core/metadata/metadata-storage.js +22 -0
  33. package/dist/core/metadata/metadata-storage.js.map +1 -1
  34. package/dist/web/application.d.ts +0 -6
  35. package/dist/web/application.d.ts.map +1 -1
  36. package/dist/web/application.js +75 -38
  37. package/dist/web/application.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/cli/commands/init.command.ts +1 -1
  40. package/src/core/container/di-container.ts +247 -181
  41. package/src/core/decorators/application.decorator.ts +2 -1
  42. package/src/core/decorators/auto-configuration.decorator.ts +9 -8
  43. package/src/core/decorators/controller.decorator.ts +2 -1
  44. package/src/core/decorators/http.decorators.ts +17 -0
  45. package/src/core/decorators/injectable.decorator.ts +1 -0
  46. package/src/core/decorators/injection.decorators.ts +62 -22
  47. package/src/core/decorators/repository.decorator.ts +1 -0
  48. package/src/core/decorators/service.decorator.ts +1 -0
  49. package/src/core/metadata/metadata-storage.ts +47 -0
  50. package/src/web/application.ts +107 -64
  51. package/tsconfig.json +4 -3
@@ -180,7 +180,7 @@ class InitCommand {
180
180
  "migrate:revert": "fragment migrate:revert",
181
181
  },
182
182
  dependencies: {
183
- "fragment-ts": "^1.0.28",
183
+ "fragment-ts": "^1.0.30",
184
184
  "reflect-metadata": "^0.1.13",
185
185
  },
186
186
  devDependencies: {
@@ -5,17 +5,18 @@ export declare class DIContainer {
5
5
  private factories;
6
6
  private constructing;
7
7
  private registered;
8
+ private metadataStorage;
9
+ private constructor();
8
10
  static getInstance(): DIContainer;
9
11
  register(token: any, instance?: any, factory?: () => any): void;
10
12
  resolve<T>(token: any): T;
11
13
  private createInstance;
12
14
  private injectProperties;
13
- private checkForDecoratedProperties;
14
- private tryInjectAutowired;
15
- private tryInjectByToken;
16
- private tryInjectValue;
17
- private tryInjectRepository;
18
- private tryInjectLazy;
15
+ private injectAutowiredProperty;
16
+ private injectTokenProperty;
17
+ private injectRepositoryProperty;
18
+ private injectValueProperty;
19
+ private injectLazyProperty;
19
20
  private resolveValue;
20
21
  private resolveRepository;
21
22
  has(token: any): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAuB;IAEzC,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI;IAU/D,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAsDzB,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,2BAA2B;IAkDnC,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,iBAAiB;IAiBzB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIxB,eAAe,IAAI,GAAG,EAAE;IAIxB,KAAK,IAAI,IAAI;IAQb,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"di-container.d.ts","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,WAAW;IAOjC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,IAAI;IAe/D,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAsEzB,OAAO,CAAC,cAAc;IAiDtB,OAAO,CAAC,gBAAgB;IAsFxB,OAAO,CAAC,uBAAuB;IA6B/B,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,YAAY;IAsEpB,OAAO,CAAC,iBAAiB;IAyBzB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAQxB,eAAe,IAAI,GAAG,EAAE;IAIxB,KAAK,IAAI,IAAI;IASb,KAAK,IAAI,IAAI;CAId"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DIContainer = void 0;
4
4
  const metadata_keys_1 = require("../metadata/metadata-keys");
5
+ const metadata_storage_1 = require("../metadata/metadata-storage");
5
6
  class DIContainer {
6
7
  constructor() {
7
8
  this.singletons = new Map();
@@ -9,6 +10,7 @@ class DIContainer {
9
10
  this.factories = new Map();
10
11
  this.constructing = new Set();
11
12
  this.registered = new Set();
13
+ this.metadataStorage = metadata_storage_1.MetadataStorage.getInstance();
12
14
  }
13
15
  static getInstance() {
14
16
  if (!DIContainer.instance) {
@@ -18,197 +20,191 @@ class DIContainer {
18
20
  }
19
21
  register(token, instance, factory) {
20
22
  this.registered.add(token);
23
+ console.log(` ✓ Registered token: ${typeof token === "function" ? token.name : token}`);
21
24
  if (instance) {
22
25
  this.singletons.set(token, instance);
26
+ console.log(` ➤ Singleton instance created`);
23
27
  }
24
28
  else if (factory) {
25
29
  this.factories.set(token, factory);
30
+ console.log(` ➤ Factory registered`);
26
31
  }
27
32
  }
28
33
  resolve(token) {
29
34
  if (typeof token === "function" && !this.registered.has(token)) {
30
- throw new Error(`Cannot resolve ${token.name}: Not registered as injectable. ` +
31
- `Did you forget to add @Injectable(), @Service(), @Controller(), or @Repository()?`);
35
+ console.log(` ℹ️ Token ${token.name} not explicitly registered, attempting to create instance`);
32
36
  }
33
37
  if (this.constructing.has(token)) {
34
38
  throw new Error(`Circular dependency detected for ${token.name || token}`);
35
39
  }
40
+ // Check singletons first
36
41
  if (this.singletons.has(token)) {
42
+ console.log(` ✓ Resolved from singleton cache: ${typeof token === "function" ? token.name : token}`);
37
43
  return this.singletons.get(token);
38
44
  }
45
+ // Check factories
39
46
  if (this.factories.has(token)) {
47
+ console.log(` 🏭 Creating instance from factory: ${typeof token === "function" ? token.name : token}`);
40
48
  const factory = this.factories.get(token);
41
49
  const instance = factory();
42
50
  const scope = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.SCOPE, token) || "singleton";
43
51
  if (scope === "singleton") {
44
52
  this.singletons.set(token, instance);
53
+ console.log(` ➤ Cached as singleton`);
45
54
  }
46
55
  return instance;
47
56
  }
57
+ // Create new instance for class tokens
48
58
  if (typeof token === "function") {
59
+ console.log(` 🔨 Creating new instance: ${token.name}`);
49
60
  this.constructing.add(token);
50
61
  try {
51
62
  const instance = this.createInstance(token);
52
63
  const scope = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.SCOPE, token) || "singleton";
53
64
  if (scope === "singleton") {
54
65
  this.singletons.set(token, instance);
66
+ console.log(` ➤ Registered as singleton`);
55
67
  }
56
68
  this.constructing.delete(token);
57
69
  return instance;
58
70
  }
59
71
  catch (error) {
60
72
  this.constructing.delete(token);
73
+ console.error(` ❌ Failed to create instance of ${token.name}: ${error}`);
61
74
  throw error;
62
75
  }
63
76
  }
64
- throw new Error(`Cannot resolve dependency: ${token}`);
77
+ throw new Error(`Cannot resolve dependency: ${typeof token === "function" ? token.name : token}`);
65
78
  }
66
79
  createInstance(target) {
67
- console.log(` 🔨 Creating instance of ${target.name}`);
80
+ const className = target.name;
81
+ console.log(` 🏗️ Constructing instance of ${className}`);
82
+ // Get constructor parameter types
68
83
  const paramTypes = Reflect.getMetadata("design:paramtypes", target) || [];
84
+ console.log(` 📋 Constructor parameters for ${className}: ${paramTypes.length}`);
69
85
  const params = paramTypes.map((type, index) => {
70
86
  if (!type || type === Object) {
71
- console.warn(` ⚠️ Constructor param ${index} of ${target.name} has no type`);
87
+ console.warn(` ⚠️ Constructor param ${index} of ${className} has no type information`);
72
88
  return undefined;
73
89
  }
74
- console.log(` 📦 Resolving constructor dependency: ${type.name}`);
90
+ console.log(` 🔌 Resolving constructor dependency [${index}]: ${type.name || type}`);
75
91
  return this.resolve(type);
76
92
  });
93
+ console.log(` 🚀 Instantiating ${className}`);
77
94
  const instance = new target(...params);
78
- // CRITICAL: Inject properties
95
+ // Inject properties
79
96
  this.injectProperties(instance);
80
97
  // Call @PostConstruct
81
98
  const postConstructMethod = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.POST_CONSTRUCT, target);
82
99
  if (postConstructMethod &&
83
100
  typeof instance[postConstructMethod] === "function") {
84
- console.log(` 🎯 Calling @PostConstruct: ${target.name}.${postConstructMethod}()`);
101
+ console.log(` 🎯 Calling @PostConstruct method: ${className}.${String(postConstructMethod)}()`);
85
102
  instance[postConstructMethod]();
86
103
  }
87
104
  return instance;
88
105
  }
89
106
  injectProperties(instance) {
90
107
  const constructor = instance.constructor;
91
- console.log(`🔍 Checking properties for injection on ${constructor.name}`);
92
- // Get all own property keys of the instance (including inherited via getters/setters if needed)
93
- // But primarily own enumerable + non-enumerable properties
94
- let props = [];
95
- let obj = instance;
96
- // Walk up the prototype chain to include properties from parent classes
97
- while (obj && obj !== Object.prototype) {
98
- props = props.concat(Object.getOwnPropertyNames(obj));
99
- obj = Object.getPrototypeOf(obj);
100
- }
101
- // Deduplicate
102
- const uniqueProps = Array.from(new Set(props));
103
- console.log(`📋 Instance properties (including inherited): ${uniqueProps.filter((p) => p !== "constructor").join(", ") || "none"}`);
104
- for (const prop of uniqueProps) {
105
- if (prop === "constructor")
106
- continue;
107
- // Check each injection type on the instance and its prototype
108
- this.tryInjectAutowired(instance, instance, prop, constructor.name);
109
- this.tryInjectByToken(instance, instance, prop, constructor.name);
110
- this.tryInjectValue(instance, instance, prop, constructor.name);
111
- this.tryInjectRepository(instance, instance, prop, constructor.name);
112
- this.tryInjectLazy(instance, instance, prop, constructor.name);
108
+ const className = constructor.name;
109
+ console.log(` 🔍 Scanning for property injections on ${className}`);
110
+ // Get all property injections from metadata storage
111
+ const propertyInjections = this.metadataStorage.getPropertyInjections(constructor);
112
+ if (propertyInjections.length === 0) {
113
+ console.log(` ℹ️ No property injections registered for ${className}`);
114
+ return;
113
115
  }
114
- }
115
- checkForDecoratedProperties(instance, constructor) {
116
- // Check all metadata keys that might be attached to properties
117
- const propertyKeys = [
118
- ...(Reflect.getMetadataKeys(constructor.prototype) || []),
119
- ...(Reflect.getMetadataKeys(instance) || []),
120
- ];
121
- // Filter for property-related metadata
122
- for (const key of propertyKeys) {
123
- if (key.includes("fragment:")) {
124
- // This is a Fragment metadata key, need to check if it's attached to a property
125
- const metadataValue = Reflect.getMetadata(key, constructor.prototype);
126
- if (metadataValue && typeof metadataValue === "object") {
127
- // Could be a property metadata
128
- for (const prop of Object.keys(metadataValue)) {
129
- if (prop !== "constructor") {
130
- this.tryInjectAutowired(instance, constructor.prototype, prop, constructor.name);
131
- this.tryInjectByToken(instance, constructor.prototype, prop, constructor.name);
132
- this.tryInjectValue(instance, constructor.prototype, prop, constructor.name);
133
- this.tryInjectRepository(instance, constructor.prototype, prop, constructor.name);
134
- }
116
+ console.log(` 📌 Found ${propertyInjections.length} property injection(s) for ${className}`);
117
+ for (const { propertyKey, injections } of propertyInjections) {
118
+ console.log(` ➤ Property: ${propertyKey}`);
119
+ for (const injection of injections) {
120
+ console.log(` • Injection type: ${injection.type}`);
121
+ try {
122
+ switch (injection.type) {
123
+ case "autowired":
124
+ this.injectAutowiredProperty(instance, propertyKey, injection.metadata?.type, className);
125
+ break;
126
+ case "inject":
127
+ this.injectTokenProperty(instance, propertyKey, injection.metadata?.token, className);
128
+ break;
129
+ case "repository":
130
+ this.injectRepositoryProperty(instance, propertyKey, injection.metadata?.entity, className);
131
+ break;
132
+ case "value":
133
+ this.injectValueProperty(instance, propertyKey, injection.metadata?.expression, className);
134
+ break;
135
+ case "lazy":
136
+ this.injectLazyProperty(instance, propertyKey, className);
137
+ break;
135
138
  }
136
139
  }
140
+ catch (error) {
141
+ const isOptional = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.OPTIONAL, constructor.prototype, propertyKey);
142
+ if (!isOptional) {
143
+ console.error(` ❌ Failed to inject ${propertyKey} in ${className}: ${error}`);
144
+ throw error;
145
+ }
146
+ console.warn(` ⚠️ Optional dependency ${propertyKey} not available for ${className}`);
147
+ instance[propertyKey] = undefined;
148
+ }
137
149
  }
138
150
  }
139
151
  }
140
- tryInjectAutowired(instance, proto, prop, className) {
141
- const type = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.AUTOWIRED, proto, prop);
142
- if (!type)
143
- return;
144
- console.log(` 💉 @Autowired found: ${className}.${prop} -> ${type.name}`);
145
- const isOptional = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.OPTIONAL, proto, prop);
146
- try {
147
- instance[prop] = this.resolve(type);
148
- console.log(` ✅ Injected ${type.name} into ${className}.${prop}`);
149
- }
150
- catch (error) {
151
- if (!isOptional) {
152
- throw new Error(`Failed to autowire ${type.name} into ${className}.${prop}: ${error}`);
152
+ injectAutowiredProperty(instance, propertyKey, type, className) {
153
+ if (!type) {
154
+ const designType = Reflect.getMetadata("design:type", instance, propertyKey);
155
+ if (designType && designType !== Object) {
156
+ type = designType;
157
+ console.warn(` ⚠️ Using design:type metadata for ${className}.${propertyKey} as fallback`);
153
158
  }
154
- console.warn(` ⚠️ Optional dependency ${type.name} not available for ${className}.${prop}`);
155
- instance[prop] = undefined;
156
- }
157
- }
158
- tryInjectByToken(instance, proto, prop, className) {
159
- const token = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.INJECT, proto, prop);
160
- if (!token)
161
- return;
162
- const tokenName = typeof token === "string" ? token : token.name;
163
- console.log(` 💉 @Inject found: ${className}.${prop} -> ${tokenName}`);
164
- const isOptional = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.OPTIONAL, proto, prop);
165
- try {
166
- instance[prop] = this.resolve(token);
167
- console.log(` ✅ Injected ${tokenName} into ${className}.${prop}`);
168
- }
169
- catch (error) {
170
- if (!isOptional) {
171
- throw new Error(`Failed to inject ${tokenName} into ${className}.${prop}: ${error}`);
159
+ else {
160
+ throw new Error(`Type information not available for ${className}.${propertyKey}`);
172
161
  }
173
- console.warn(` ⚠️ Optional dependency ${tokenName} not available for ${className}.${prop}`);
174
- instance[prop] = undefined;
175
162
  }
163
+ console.log(` 💉 @Autowired: ${className}.${propertyKey} -> ${type.name}`);
164
+ instance[propertyKey] = this.resolve(type);
165
+ console.log(` ✅ Injected ${type.name} into ${className}.${propertyKey}`);
176
166
  }
177
- tryInjectValue(instance, proto, prop, className) {
178
- const expression = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.VALUE, proto, prop);
179
- if (expression === undefined)
180
- return;
181
- console.log(` 🔧 @Value found: ${className}.${prop} = ${expression}`);
182
- instance[prop] = this.resolveValue(expression);
183
- console.log(` ✅ Set value for ${className}.${prop}`);
167
+ injectTokenProperty(instance, propertyKey, token, className) {
168
+ if (!token) {
169
+ throw new Error(`Token not provided for @Inject on ${className}.${propertyKey}`);
170
+ }
171
+ const tokenName = typeof token === "string" ? token : token.name;
172
+ console.log(` 💉 @Inject: ${className}.${propertyKey} -> ${tokenName}`);
173
+ instance[propertyKey] = this.resolve(token);
174
+ console.log(` ✅ Injected ${tokenName} into ${className}.${propertyKey}`);
184
175
  }
185
- tryInjectRepository(instance, proto, prop, className) {
186
- const entity = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.INJECT_REPOSITORY, proto, prop);
187
- if (!entity)
188
- return;
189
- console.log(` 💾 @InjectRepository found: ${className}.${prop} -> Repository<${entity.name}>`);
190
- try {
191
- instance[prop] = this.resolveRepository(entity);
192
- console.log(` ✅ Injected Repository<${entity.name}> into ${className}.${prop}`);
176
+ injectRepositoryProperty(instance, propertyKey, entity, className) {
177
+ if (!entity) {
178
+ throw new Error(`Entity not provided for @InjectRepository on ${className}.${propertyKey}`);
193
179
  }
194
- catch (error) {
195
- throw new Error(`Failed to inject repository for ${entity.name} into ${className}.${prop}: ${error}`);
180
+ console.log(` 💾 @InjectRepository: ${className}.${propertyKey} -> Repository<${entity.name}>`);
181
+ instance[propertyKey] = this.resolveRepository(entity);
182
+ console.log(` ✅ Injected Repository<${entity.name}> into ${className}.${propertyKey}`);
183
+ }
184
+ injectValueProperty(instance, propertyKey, expression, className) {
185
+ if (!expression) {
186
+ throw new Error(`Expression not provided for @Value on ${className}.${propertyKey}`);
196
187
  }
188
+ console.log(` 🔧 @Value: ${className}.${propertyKey} = ${expression}`);
189
+ instance[propertyKey] = this.resolveValue(expression);
190
+ console.log(` ✅ Set value for ${className}.${propertyKey}`);
197
191
  }
198
- tryInjectLazy(instance, proto, prop, className) {
199
- const isLazy = Reflect.getMetadata(metadata_keys_1.METADATA_KEYS.LAZY, proto, prop);
200
- if (!isLazy)
201
- return;
202
- const type = Reflect.getMetadata("design:type", proto, prop);
203
- console.log(` ⏳ @Lazy found: ${className}.${prop} (${type?.name || "unknown"})`);
192
+ injectLazyProperty(instance, propertyKey, className) {
193
+ // Get the type for later resolution
194
+ const type = Reflect.getMetadata("design:type", instance, propertyKey);
195
+ if (!type) {
196
+ throw new Error(`Type information not available for @Lazy ${className}.${propertyKey}`);
197
+ }
198
+ console.log(` ⏳ @Lazy: ${className}.${propertyKey} (${type.name})`);
204
199
  let cached = null;
205
200
  let resolved = false;
206
- Object.defineProperty(instance, prop, {
201
+ Object.defineProperty(instance, propertyKey, {
207
202
  get: () => {
208
203
  if (!resolved) {
209
- console.log(` 🔓 Lazy-loading ${type.name} for ${className}.${prop}`);
204
+ console.log(` 🔓 Lazy-loading ${type.name} for ${className}.${propertyKey}`);
210
205
  cached = this.resolve(type);
211
206
  resolved = true;
207
+ console.log(` ✅ Lazy-loaded ${type.name} for ${className}.${propertyKey}`);
212
208
  }
213
209
  return cached;
214
210
  },
@@ -217,57 +213,93 @@ class DIContainer {
217
213
  });
218
214
  }
219
215
  resolveValue(expression) {
220
- const match = expression.match(/\$\{([^:}]+)(?::([^}]*))?\}|\$([A-Z_][A-Z0-9_]*)/i);
221
- if (match) {
222
- const key = match[1] || match[3];
223
- const defaultValue = match[2];
224
- const value = process.env[key];
225
- if (value === undefined) {
226
- if (defaultValue !== undefined) {
227
- return defaultValue;
216
+ // Standardize expression format (remove ${} if present)
217
+ let key = expression.replace(/\$\{|\}/g, "");
218
+ let defaultValue = undefined;
219
+ // Handle default values (format: KEY:default)
220
+ const defaultMatch = key.match(/^(.*?):(.*)$/);
221
+ if (defaultMatch) {
222
+ key = defaultMatch[1].trim();
223
+ defaultValue = defaultMatch[2].trim();
224
+ // Try to parse default value as JSON or number if possible
225
+ try {
226
+ defaultValue = JSON.parse(defaultValue);
227
+ }
228
+ catch {
229
+ // Try number conversion
230
+ const numValue = parseFloat(defaultValue);
231
+ if (!isNaN(numValue) && defaultValue.trim() === numValue.toString()) {
232
+ defaultValue = numValue;
233
+ }
234
+ // Try boolean conversion
235
+ else if (defaultValue.toLowerCase() === "true") {
236
+ defaultValue = true;
237
+ }
238
+ else if (defaultValue.toLowerCase() === "false") {
239
+ defaultValue = false;
228
240
  }
229
- console.warn(` ⚠️ Environment variable "${key}" not defined`);
230
- return "";
231
241
  }
232
- if (value.startsWith("{") || value.startsWith("[")) {
242
+ }
243
+ console.log(` 🔍 Resolving config value: ${key}${defaultValue !== undefined ? ` (default: ${defaultValue})` : ""}`);
244
+ // Check environment variables first
245
+ const envValue = process.env[key.toUpperCase()] || process.env[key];
246
+ if (envValue !== undefined) {
247
+ console.log(` 🌍 Found in environment: ${envValue}`);
248
+ // Try to parse as JSON if it looks like an object/array
249
+ if (envValue.startsWith("{") || envValue.startsWith("[")) {
233
250
  try {
234
- return JSON.parse(value);
251
+ return JSON.parse(envValue);
235
252
  }
236
253
  catch {
237
- return value;
254
+ return envValue;
238
255
  }
239
256
  }
240
- if (/^\d+(\.\d+)?$/.test(value)) {
241
- return parseFloat(value);
257
+ // Try to parse as number
258
+ const numValue = parseFloat(envValue);
259
+ if (!isNaN(numValue) && envValue.trim() === numValue.toString()) {
260
+ return numValue;
242
261
  }
243
- if (value.toLowerCase() === "true")
262
+ // Try to parse as boolean
263
+ if (envValue.toLowerCase() === "true")
244
264
  return true;
245
- if (value.toLowerCase() === "false")
265
+ if (envValue.toLowerCase() === "false")
246
266
  return false;
247
- return value;
267
+ return envValue;
268
+ }
269
+ // Return default value if available
270
+ if (defaultValue !== undefined) {
271
+ console.log(` 📦 Using default value: ${defaultValue}`);
272
+ return defaultValue;
248
273
  }
249
- return expression;
274
+ console.warn(` ⚠️ Config value not found: ${key}`);
275
+ return undefined;
250
276
  }
251
277
  resolveRepository(entity) {
252
278
  try {
279
+ console.log(` 🔍 Resolving repository for entity: ${entity.name}`);
253
280
  const { TypeORMModule } = require("../../typeorm/typeorm-module");
254
281
  const dataSource = TypeORMModule.getDataSource();
255
282
  if (!dataSource || !dataSource.isInitialized) {
256
283
  throw new Error("TypeORM DataSource not initialized");
257
284
  }
285
+ console.log(` ✅ Found DataSource, creating repository for ${entity.name}`);
258
286
  return dataSource.getRepository(entity);
259
287
  }
260
288
  catch (error) {
289
+ console.error(` ❌ Failed to resolve repository for ${entity.name}: ${error.message}`);
261
290
  throw new Error(`Failed to resolve repository for ${entity.name}: ${error?.message}`);
262
291
  }
263
292
  }
264
293
  has(token) {
265
- return this.registered.has(token);
294
+ return (this.registered.has(token) ||
295
+ this.singletons.has(token) ||
296
+ this.factories.has(token));
266
297
  }
267
298
  getAllInstances() {
268
299
  return Array.from(this.singletons.values());
269
300
  }
270
301
  clear() {
302
+ console.log("🧹 Clearing DI Container");
271
303
  this.singletons.clear();
272
304
  this.transients.clear();
273
305
  this.factories.clear();
@@ -276,6 +308,7 @@ class DIContainer {
276
308
  }
277
309
  reset() {
278
310
  this.clear();
311
+ console.log("🔁 DI Container reset complete");
279
312
  }
280
313
  }
281
314
  exports.DIContainer = DIContainer;
@@ -1 +1 @@
1
- {"version":3,"file":"di-container.js","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"di-container.js","sourceRoot":"","sources":["../../../src/core/container/di-container.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"application.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAchB"}
1
+ {"version":3,"file":"application.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,kBAAuB,GAC/B,cAAc,CAehB"}
@@ -4,12 +4,13 @@ exports.FragmentApplication = FragmentApplication;
4
4
  const metadata_keys_1 = require("../metadata/metadata-keys");
5
5
  function FragmentApplication(options = {}) {
6
6
  return (target) => {
7
+ console.log(`🚀 Registering Fragment application: ${target.name}`);
7
8
  Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.APPLICATION, {
8
9
  ...options,
9
10
  port: options.port || 3000,
10
11
  host: options.host || "0.0.0.0",
11
12
  configPath: options.configPath || "fragment.json",
12
- autoScan: options.autoScan || true,
13
+ autoScan: options.autoScan !== false, // default to true
13
14
  }, target);
14
15
  };
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"application.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":";;AASA,kDAgBC;AAzBD,6DAA0D;AAS1D,SAAgB,mBAAmB,CACjC,UAA8B,EAAE;IAEhC,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,cAAc,CACpB,6BAAa,CAAC,WAAW,EACzB;YACE,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,eAAe;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;SACnC,EACD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"application.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/application.decorator.ts"],"names":[],"mappings":";;AASA,kDAiBC;AA1BD,6DAA0D;AAS1D,SAAgB,mBAAmB,CACjC,UAA8B,EAAE;IAEhC,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,cAAc,CACpB,6BAAa,CAAC,WAAW,EACzB;YACE,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS;YAC/B,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,eAAe;YACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,kBAAkB;SACzD,EACD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-configuration.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,cAAc,CAYlD"}
1
+ {"version":3,"file":"auto-configuration.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,cAAc,CAalD"}
@@ -6,13 +6,14 @@ const metadata_keys_1 = require("../metadata/metadata-keys");
6
6
  const metadata_storage_1 = require("../metadata/metadata-storage");
7
7
  function AutoConfiguration() {
8
8
  return (target) => {
9
- (0, injectable_decorator_1.Injectable)('singleton')(target);
9
+ console.log(`🔧 Registering AutoConfiguration: ${target.name}`);
10
+ (0, injectable_decorator_1.Injectable)("singleton")(target);
10
11
  Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.AUTO_CONFIGURATION, true, target);
11
12
  const storage = metadata_storage_1.MetadataStorage.getInstance();
12
13
  storage.addClass({
13
14
  target,
14
- type: 'auto-configuration',
15
- scope: 'singleton'
15
+ type: "auto-configuration",
16
+ scope: "singleton",
16
17
  });
17
18
  };
18
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auto-configuration.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":";;AAIA,8CAYC;AAhBD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC;YACf,MAAM;YACN,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"auto-configuration.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/auto-configuration.decorator.ts"],"names":[],"mappings":";;AAIA,8CAaC;AAjBD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,iBAAiB;IAC/B,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,kBAAkB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC;YACf,MAAM;YACN,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,cAAc,CAa5D"}
1
+ {"version":3,"file":"controller.decorator.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,GAAG,cAAc,CAc5D"}
@@ -6,6 +6,7 @@ const metadata_keys_1 = require("../metadata/metadata-keys");
6
6
  const metadata_storage_1 = require("../metadata/metadata-storage");
7
7
  function Controller(path = "") {
8
8
  return (target) => {
9
+ console.log(`🎮 Registering Controller: ${target.name} at ${path || '/'}`);
9
10
  (0, injectable_decorator_1.Injectable)("singleton")(target);
10
11
  Reflect.defineMetadata(metadata_keys_1.METADATA_KEYS.CONTROLLER, path, target);
11
12
  const storage = metadata_storage_1.MetadataStorage.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAIA,gCAaC;AAjBD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,UAAU,CAAC,OAAe,EAAE;IAC1C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC;YACf,MAAM;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"controller.decorator.js","sourceRoot":"","sources":["../../../src/core/decorators/controller.decorator.ts"],"names":[],"mappings":";;AAIA,gCAcC;AAlBD,iEAAoD;AACpD,6DAA0D;AAC1D,mEAA+D;AAE/D,SAAgB,UAAU,CAAC,OAAe,EAAE;IAC1C,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,CAAC,IAAI,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3E,IAAA,iCAAU,EAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,cAAc,CAAC,6BAAa,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/D,MAAM,OAAO,GAAG,kCAAe,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC;YACf,MAAM;YACN,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,WAAW;YAClB,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,GAAG,UA/BA,MAAM,KAAQ,eA+BqB,CAAC;AACpD,eAAO,MAAM,IAAI,UAhCD,MAAM,KAAQ,eAgCuB,CAAC;AACtD,eAAO,MAAM,GAAG,UAjCA,MAAM,KAAQ,eAiCqB,CAAC;AACpD,eAAO,MAAM,MAAM,UAlCH,MAAM,KAAQ,eAkC2B,CAAC;AAC1D,eAAO,MAAM,KAAK,UAnCF,MAAM,KAAQ,eAmCyB,CAAC;AA0BxD,eAAO,MAAM,IAAI,eAvBK,MAAM,KAAG,kBAuBiB,CAAC;AACjD,eAAO,MAAM,KAAK,eAxBI,MAAM,KAAG,kBAwBmB,CAAC;AACnD,eAAO,MAAM,KAAK,eAzBI,MAAM,KAAG,kBAyBmB,CAAC;AACnD,eAAO,MAAM,MAAM,eA1BG,MAAM,KAAG,kBA0BqB,CAAC;AACrD,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC;AAC3E,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC"}
1
+ {"version":3,"file":"http.decorators.d.ts","sourceRoot":"","sources":["../../../src/core/decorators/http.decorators.ts"],"names":[],"mappings":"AA0CA,eAAO,MAAM,GAAG,UAtCA,MAAM,KAAQ,eAsCqB,CAAC;AACpD,eAAO,MAAM,IAAI,UAvCD,MAAM,KAAQ,eAuCuB,CAAC;AACtD,eAAO,MAAM,GAAG,UAxCA,MAAM,KAAQ,eAwCqB,CAAC;AACpD,eAAO,MAAM,MAAM,UAzCH,MAAM,KAAQ,eAyC2B,CAAC;AAC1D,eAAO,MAAM,KAAK,UA1CF,MAAM,KAAQ,eA0CyB,CAAC;AAoCxD,eAAO,MAAM,IAAI,eAjCK,MAAM,KAAG,kBAiCiB,CAAC;AACjD,eAAO,MAAM,KAAK,eAlCI,MAAM,KAAG,kBAkCmB,CAAC;AACnD,eAAO,MAAM,KAAK,eAnCI,MAAM,KAAG,kBAmCmB,CAAC;AACnD,eAAO,MAAM,MAAM,eApCG,MAAM,KAAG,kBAoCqB,CAAC;AACrD,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC;AAC3E,eAAO,MAAM,GAAG,QAAO,kBAAmD,CAAC"}