assemblerjs 1.1.20 → 1.1.22

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 (72) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index11.js +2 -2
  3. package/dist/index11.mjs +2 -2
  4. package/dist/index13.js +2 -2
  5. package/dist/index13.mjs +2 -2
  6. package/dist/index16.js +1 -1
  7. package/dist/index16.mjs +1 -1
  8. package/dist/index17.js +1 -1
  9. package/dist/index17.mjs +1 -1
  10. package/dist/index18.js +1 -1
  11. package/dist/index18.mjs +1 -1
  12. package/dist/index19.js +1 -1
  13. package/dist/index19.mjs +1 -1
  14. package/dist/index2.js +2 -2
  15. package/dist/index2.mjs +2 -2
  16. package/dist/index20.js +1 -1
  17. package/dist/index20.mjs +1 -1
  18. package/dist/index21.js +1 -1
  19. package/dist/index21.mjs +1 -1
  20. package/dist/index22.js +12 -6
  21. package/dist/index22.mjs +12 -6
  22. package/dist/index23.js +14 -8
  23. package/dist/index23.mjs +14 -8
  24. package/dist/index24.js +2 -2
  25. package/dist/index24.mjs +2 -2
  26. package/dist/index25.js +1 -1
  27. package/dist/index25.mjs +1 -1
  28. package/dist/index26.js +1 -1
  29. package/dist/index26.mjs +1 -1
  30. package/dist/index29.js +158 -17
  31. package/dist/index29.mjs +157 -14
  32. package/dist/index3.js +1 -1
  33. package/dist/index3.mjs +1 -1
  34. package/dist/index30.js +43 -100
  35. package/dist/index30.mjs +43 -98
  36. package/dist/index31.js +66 -145
  37. package/dist/index31.mjs +67 -145
  38. package/dist/index32.js +50 -45
  39. package/dist/index32.mjs +50 -45
  40. package/dist/index33.js +28 -76
  41. package/dist/index33.mjs +28 -76
  42. package/dist/index34.js +170 -50
  43. package/dist/index34.mjs +170 -50
  44. package/dist/index35.js +60 -28
  45. package/dist/index35.mjs +60 -28
  46. package/dist/index36.js +16 -165
  47. package/dist/index36.mjs +13 -165
  48. package/dist/index37.js +100 -56
  49. package/dist/index37.mjs +98 -56
  50. package/dist/index38.js +20 -38
  51. package/dist/index38.mjs +20 -37
  52. package/dist/index39.js +35 -100
  53. package/dist/index39.mjs +34 -100
  54. package/dist/index4.js +7 -7
  55. package/dist/index4.mjs +7 -7
  56. package/dist/index40.js +101 -24
  57. package/dist/index40.mjs +101 -24
  58. package/dist/index41.js +24 -18
  59. package/dist/index41.mjs +24 -18
  60. package/dist/index42.js +29 -49
  61. package/dist/index42.mjs +28 -49
  62. package/dist/index44.js +49 -29
  63. package/dist/index44.mjs +49 -28
  64. package/dist/index45.js +36 -13
  65. package/dist/index45.mjs +36 -13
  66. package/dist/index49.js +1 -1
  67. package/dist/index49.mjs +1 -1
  68. package/dist/index50.js +2 -2
  69. package/dist/index50.mjs +2 -2
  70. package/dist/index51.js +1 -1
  71. package/dist/index51.mjs +1 -1
  72. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -387,10 +387,14 @@ export declare interface AssemblerDebugOptions {
387
387
  logger?: (level: 'info' | 'warn' | 'error', message: string, data?: any) => void;
388
388
  logPhases?: {
389
389
  registration?: boolean;
390
+ registrationUse?: boolean;
391
+ registrationGlobals?: boolean;
390
392
  resolution?: boolean;
391
393
  construction?: boolean;
392
394
  hooks?: boolean;
393
395
  cache?: boolean;
396
+ injectionUse?: boolean;
397
+ injectionGlobal?: boolean;
394
398
  };
395
399
  logTimings?: boolean;
396
400
  logDependencyTree?: boolean;
package/dist/index11.js CHANGED
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const constants = require('./index28.js');
6
- const reflection = require('./index29.js');
6
+ const reflection = require('./index36.js');
7
7
  const decorator = require('./index2.js');
8
- const schema = require('./index30.js');
8
+ const schema = require('./index37.js');
9
9
 
10
10
  function isTransversal(e) {
11
11
  try {
package/dist/index11.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ReflectValue } from './index28.mjs';
2
- import { getCustomMetadata, defineCustomMetadata } from './index29.mjs';
2
+ import { getCustomMetadata, defineCustomMetadata } from './index36.mjs';
3
3
  import { Assemblage } from './index2.mjs';
4
- import { getDefinition } from './index30.mjs';
4
+ import { getDefinition } from './index37.mjs';
5
5
 
6
6
  function isTransversal(e) {
7
7
  try {
package/dist/index13.js CHANGED
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const core = require('@assemblerjs/core');
6
- const pointcutMatcher = require('./index40.js');
6
+ const pointcutMatcher = require('./index41.js');
7
7
  const affect = require('./index12.js');
8
- const schema = require('./index30.js');
8
+ const schema = require('./index37.js');
9
9
 
10
10
  class TransversalManager {
11
11
  static getInstance(e) {
package/dist/index13.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { isClass } from '@assemblerjs/core';
2
- import { PointcutMatcher } from './index40.mjs';
2
+ import { PointcutMatcher } from './index41.mjs';
3
3
  import { getAffectedMethods } from './index12.mjs';
4
- import { getDefinition } from './index30.mjs';
4
+ import { getDefinition } from './index37.mjs';
5
5
 
6
6
  class TransversalManager {
7
7
  static getInstance(e) {
package/dist/index16.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
6
 
7
7
  const t = (t)=>()=>{
8
8
  return (e, c, n)=>{
package/dist/index16.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getOwnCustomMetadata, defineCustomMetadata } from './index29.mjs';
1
+ import { getOwnCustomMetadata, defineCustomMetadata } from './index36.mjs';
2
2
 
3
3
  const t = (t)=>()=>{
4
4
  return (e, c, n)=>{
package/dist/index17.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
6
 
7
7
  class ParameterDecoratorFactory {
8
8
  static create(e) {
package/dist/index17.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getOwnCustomMetadata, defineCustomMetadata } from './index29.mjs';
1
+ import { getOwnCustomMetadata, defineCustomMetadata } from './index36.mjs';
2
2
 
3
3
  class ParameterDecoratorFactory {
4
4
  static create(e) {
package/dist/index18.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index41.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let ContextResolver = class ContextResolver {
9
9
  resolve(e, r, t) {
package/dist/index18.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index41.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let ContextResolver = class ContextResolver {
5
5
  resolve(e, r, t) {
package/dist/index19.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index41.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let ConfigurationResolver = class ConfigurationResolver {
9
9
  resolve(r, o, e, n) {
package/dist/index19.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index41.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let ConfigurationResolver = class ConfigurationResolver {
5
5
  resolve(r, o, e, n) {
package/dist/index2.js CHANGED
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const constants = require('./index28.js');
6
- const reflection = require('./index29.js');
7
- const schema = require('./index30.js');
6
+ const reflection = require('./index36.js');
7
+ const schema = require('./index37.js');
8
8
 
9
9
  const Assemblage = (e)=>{
10
10
  return (r)=>{
package/dist/index2.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import { ReflectFlags, ReflectValue } from './index28.mjs';
2
- import { defineCustomMetadata } from './index29.mjs';
3
- import { validateDefinition } from './index30.mjs';
2
+ import { defineCustomMetadata } from './index36.mjs';
3
+ import { validateDefinition } from './index37.mjs';
4
4
 
5
5
  const Assemblage = (e)=>{
6
6
  return (r)=>{
package/dist/index20.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index41.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let DefinitionResolver = class DefinitionResolver {
9
9
  resolve(e, r) {
package/dist/index20.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index41.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let DefinitionResolver = class DefinitionResolver {
5
5
  resolve(e, r) {
package/dist/index21.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const parameterDecoratorFactory = require('./index17.js');
6
- const resolverStore = require('./index41.js');
6
+ const resolverStore = require('./index38.js');
7
7
 
8
8
  let DisposeResolver = class DisposeResolver {
9
9
  resolve(e, r, s) {
package/dist/index21.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParameterDecoratorFactory } from './index17.mjs';
2
- import { ResolverStore } from './index41.mjs';
2
+ import { ResolverStore } from './index38.mjs';
3
3
 
4
4
  let DisposeResolver = class DisposeResolver {
5
5
  resolve(e, r, s) {
package/dist/index22.js CHANGED
@@ -2,16 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
+ const debugLogger = require('./index34.js');
6
7
  const parameterDecoratorFactory = require('./index17.js');
7
8
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index41.js');
9
+ const resolverStore = require('./index38.js');
9
10
 
10
11
  let UseResolver = class UseResolver {
11
- resolve(r, o, t) {
12
- const a = reflection.getOwnCustomMetadata(helpers.getParamValueKey('Use'), t);
13
- const m = a[r];
14
- return o.privateContext.require(m);
12
+ resolve(o, t, a) {
13
+ const n = reflection.getOwnCustomMetadata(helpers.getParamValueKey('Use'), a);
14
+ const m = n[o];
15
+ debugLogger.DebugLogger.getInstance().logInjection('use', {
16
+ target: a?.name,
17
+ index: o,
18
+ identifier: typeof m === 'symbol' ? m.toString() : m
19
+ });
20
+ return t.privateContext.require(m);
15
21
  }
16
22
  };
17
23
  const decorateUse = (e, r, o)=>{
package/dist/index22.mjs CHANGED
@@ -1,13 +1,19 @@
1
- import { getOwnCustomMetadata } from './index29.mjs';
1
+ import { getOwnCustomMetadata } from './index36.mjs';
2
+ import { DebugLogger } from './index34.mjs';
2
3
  import { ParameterDecoratorFactory } from './index17.mjs';
3
4
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index41.mjs';
5
+ import { ResolverStore } from './index38.mjs';
5
6
 
6
7
  let UseResolver = class UseResolver {
7
- resolve(r, o, t) {
8
- const a = getOwnCustomMetadata(getParamValueKey('Use'), t);
9
- const m = a[r];
10
- return o.privateContext.require(m);
8
+ resolve(o, t, a) {
9
+ const n = getOwnCustomMetadata(getParamValueKey('Use'), a);
10
+ const m = n[o];
11
+ DebugLogger.getInstance().logInjection('use', {
12
+ target: a?.name,
13
+ index: o,
14
+ identifier: typeof m === 'symbol' ? m.toString() : m
15
+ });
16
+ return t.privateContext.require(m);
11
17
  }
12
18
  };
13
19
  const decorateUse = (e, r, o)=>{
package/dist/index23.js CHANGED
@@ -2,20 +2,26 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
+ const debugLogger = require('./index34.js');
6
7
  const parameterDecoratorFactory = require('./index17.js');
7
8
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index41.js');
9
+ const resolverStore = require('./index38.js');
9
10
 
10
11
  let GlobalResolver = class GlobalResolver {
11
- resolve(e, r, a) {
12
- const t = reflection.getOwnCustomMetadata(helpers.getParamValueKey('Global'), a);
13
- const s = t[e];
14
- return r.privateContext.global(s);
12
+ resolve(r, l, a) {
13
+ const s = reflection.getOwnCustomMetadata(helpers.getParamValueKey('Global'), a);
14
+ const n = s[r];
15
+ debugLogger.DebugLogger.getInstance().logInjection('global', {
16
+ target: a?.name,
17
+ index: r,
18
+ identifier: typeof n === 'symbol' ? n.toString() : n
19
+ });
20
+ return l.privateContext.global(n);
15
21
  }
16
22
  };
17
- const decorateGlobal = (o, e, r)=>{
18
- Global(o)(e, undefined, r);
23
+ const decorateGlobal = (e, o, r)=>{
24
+ Global(e)(o, undefined, r);
19
25
  };
20
26
  const Global = (()=>{
21
27
  resolverStore.ResolverStore.register('Global', GlobalResolver);
package/dist/index23.mjs CHANGED
@@ -1,17 +1,23 @@
1
- import { getOwnCustomMetadata } from './index29.mjs';
1
+ import { getOwnCustomMetadata } from './index36.mjs';
2
+ import { DebugLogger } from './index34.mjs';
2
3
  import { ParameterDecoratorFactory } from './index17.mjs';
3
4
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index41.mjs';
5
+ import { ResolverStore } from './index38.mjs';
5
6
 
6
7
  let GlobalResolver = class GlobalResolver {
7
- resolve(e, r, a) {
8
- const t = getOwnCustomMetadata(getParamValueKey('Global'), a);
9
- const s = t[e];
10
- return r.privateContext.global(s);
8
+ resolve(r, l, a) {
9
+ const s = getOwnCustomMetadata(getParamValueKey('Global'), a);
10
+ const n = s[r];
11
+ DebugLogger.getInstance().logInjection('global', {
12
+ target: a?.name,
13
+ index: r,
14
+ identifier: typeof n === 'symbol' ? n.toString() : n
15
+ });
16
+ return l.privateContext.global(n);
11
17
  }
12
18
  };
13
- const decorateGlobal = (o, e, r)=>{
14
- Global(o)(e, undefined, r);
19
+ const decorateGlobal = (e, o, r)=>{
20
+ Global(e)(o, undefined, r);
15
21
  };
16
22
  const Global = (()=>{
17
23
  ResolverStore.register('Global', GlobalResolver);
package/dist/index24.js CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
  const helpers = require('./index25.js');
8
- const resolverStore = require('./index41.js');
8
+ const resolverStore = require('./index38.js');
9
9
 
10
10
  let OptionalResolver = class OptionalResolver {
11
11
  resolve(o, t, n) {
package/dist/index24.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { getParamTypes, getOwnCustomMetadata } from './index29.mjs';
1
+ import { getParamTypes, getOwnCustomMetadata } from './index36.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
  import { getParamValueKey } from './index25.mjs';
4
- import { ResolverStore } from './index41.mjs';
4
+ import { ResolverStore } from './index38.mjs';
5
5
 
6
6
  let OptionalResolver = class OptionalResolver {
7
7
  resolve(o, t, n) {
package/dist/index25.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const reflection = require('./index29.js');
5
+ const reflection = require('./index36.js');
6
6
  const parameterDecoratorFactory = require('./index17.js');
7
7
 
8
8
  const getParamIndexKey = (e)=>{
package/dist/index25.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getOwnCustomMetadata } from './index29.mjs';
1
+ import { getOwnCustomMetadata } from './index36.mjs';
2
2
  import { ParameterDecoratorFactory } from './index17.mjs';
3
3
 
4
4
  const getParamIndexKey = (e)=>{
package/dist/index26.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const constants = require('./index28.js');
6
- const reflection = require('./index29.js');
6
+ const reflection = require('./index36.js');
7
7
  const helpers = require('./index25.js');
8
8
  const parameterDecoratorFactory = require('./index17.js');
9
9
  const decorator = require('./index2.js');
package/dist/index26.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ReflectParamTypes, ReflectValue } from './index28.mjs';
2
- import { getOwnCustomMetadata, defineCustomMetadata } from './index29.mjs';
2
+ import { getOwnCustomMetadata, defineCustomMetadata } from './index36.mjs';
3
3
  import { getDecoratedParametersIndexes, getParamValueKey, getParamIndexKey } from './index25.mjs';
4
4
  import { ParameterDecoratorFactory } from './index17.mjs';
5
5
  import { decorateAssemblage } from './index2.mjs';
package/dist/index29.js CHANGED
@@ -2,22 +2,163 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const constants = require('./index28.js');
5
+ const hookManager = require('./index31.js');
6
+ const resolutionStrategies = require('./index42.js');
7
+ const debugLogger = require('./index34.js');
8
+ const core = require('@assemblerjs/core');
9
+ const use = require('./index43.js');
10
+ const inject = require('./index44.js');
11
+ const injectable = require('./index45.js');
6
12
 
7
- const defineCustomMetadata = (t, o, n)=>{
8
- Reflect.defineMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o, n);
9
- };
10
- const getCustomMetadata = (t, o)=>{
11
- return Reflect.getMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o);
12
- };
13
- const getOwnCustomMetadata = (t, o)=>{
14
- return Reflect.getOwnMetadata(`${constants.ReflectPrefix}${t}${constants.ReflectSuffix}`, o);
15
- };
16
- const getParamTypes = (e)=>{
17
- return Reflect.getMetadata(constants.ReflectParamTypes, e) || [];
18
- };
13
+ function formatIdentifier(e) {
14
+ if (e === undefined) return 'undefined';
15
+ if (e === null) return 'null';
16
+ if (typeof e === 'function') {
17
+ if (e.name) return e.name;
18
+ if (e.constructor?.name && e.constructor.name !== 'Function') {
19
+ return e.constructor.name;
20
+ }
21
+ return 'AnonymousFunction';
22
+ }
23
+ if (typeof e === 'string') return e;
24
+ if (typeof e === 'symbol') return e.toString();
25
+ if (typeof e === 'number') return String(e);
26
+ if (typeof e === 'boolean') return String(e);
27
+ if (typeof e === 'object') {
28
+ if (e.name && typeof e.name === 'string') {
29
+ return e.name;
30
+ }
31
+ const t = e.constructor?.name;
32
+ if (t && t !== 'Object') {
33
+ return t;
34
+ }
35
+ try {
36
+ const t = JSON.stringify(e);
37
+ if (t.length > 100) {
38
+ return t.substring(0, 100) + '...';
39
+ }
40
+ return t;
41
+ } catch {
42
+ return '[UnknownObject]';
43
+ }
44
+ }
45
+ return String(e);
46
+ }
47
+ function c(e) {
48
+ if (core.isClass(e)) {
49
+ const t = e.prototype && Object.getOwnPropertyNames(e.prototype).length > 1;
50
+ return t ? 'class' : 'class';
51
+ }
52
+ if (typeof e === 'function') return 'function';
53
+ if (typeof e === 'string') return 'string';
54
+ if (typeof e === 'symbol') return 'symbol';
55
+ if (typeof e === 'object' && e !== null) return 'object';
56
+ return 'unknown';
57
+ }
58
+ class InjectableManager {
59
+ setContexts(e, t) {
60
+ this.privateContext = e;
61
+ this.publicContext = t;
62
+ }
63
+ register(i, o = false) {
64
+ const a = debugLogger.DebugLogger.getInstance();
65
+ const c = o === true ? use.resolveInstanceInjectionTuple(i) : inject.resolveInjectionTuple(i);
66
+ if (this.has(c.identifier)) {
67
+ const e = `An assemblage is already registered with identifier '${c.identifier.name}'.`;
68
+ a.log('error', 'Duplicate registration', {
69
+ identifier: c.identifier.name,
70
+ error: e
71
+ });
72
+ throw new Error(e);
73
+ }
74
+ const f = injectable.Injectable.of(c, this.privateContext, this.publicContext);
75
+ a.logRegistration(f);
76
+ this.injectables.set(f.identifier, f);
77
+ if (f.concrete) {
78
+ hookManager.HookManager.callHook(f.concrete, 'onRegister', this.publicContext, f.configuration);
79
+ }
80
+ return f;
81
+ }
82
+ has(e) {
83
+ return this.injectables.has(e);
84
+ }
85
+ require(e, t, n) {
86
+ if (!this.injectables.has(e)) {
87
+ const r = this.resolvingStack.has(e);
88
+ const i = r ? 'Circular dependency detected' : 'Dependency not registered';
89
+ const o = formatIdentifier(e);
90
+ const a = c(e);
91
+ const f = t?.__paramIndex;
92
+ const u = t?.__paramCount;
93
+ const l = t?.__expectedType;
94
+ const g = r ? `Circular dependency detected: '${o}' is already being resolved.` : `Dependency '${o}' has not been registered (Class/Service not found in current assemblages).`;
95
+ const d = {
96
+ identifier: o,
97
+ caller: n ? formatIdentifier(n) : 'unknown',
98
+ type: a,
99
+ error: g
100
+ };
101
+ if (f !== undefined) {
102
+ d.paramIndex = f;
103
+ }
104
+ if (u !== undefined) {
105
+ d.paramCount = u;
106
+ }
107
+ if (l !== undefined) {
108
+ const e = l?.name || formatIdentifier(l);
109
+ d.expectedType = e;
110
+ }
111
+ debugLogger.DebugLogger.getInstance().log('error', i, d);
112
+ throw new Error(g);
113
+ }
114
+ const r = this.injectables.get(e);
115
+ this.resolvingStack.add(r.identifier);
116
+ try {
117
+ if (r.isSingleton) {
118
+ return this.singletonStrategy.resolve(r, t);
119
+ } else {
120
+ return this.transientStrategy.resolve(r, t);
121
+ }
122
+ } finally{
123
+ this.resolvingStack.delete(r.identifier);
124
+ }
125
+ }
126
+ concrete(e) {
127
+ const t = this.injectables.get(e);
128
+ if (t) return t.concrete;
129
+ return;
130
+ }
131
+ tagged(...e) {
132
+ const t = [];
133
+ for (const n of e){
134
+ for (const [e, r] of this.injectables){
135
+ if (r.tags.includes(n)) t.push(r.build());
136
+ }
137
+ }
138
+ return t;
139
+ }
140
+ dispose() {
141
+ for (const [e, t] of this.injectables){
142
+ t.dispose();
143
+ }
144
+ this.resolvingStack.clear();
145
+ }
146
+ get size() {
147
+ return this.injectables.size;
148
+ }
149
+ getRegisteredIdentifiers() {
150
+ return Array.from(this.injectables.keys()).map((e)=>e?.name || String(e));
151
+ }
152
+ getInjectables() {
153
+ return this.injectables;
154
+ }
155
+ constructor(){
156
+ this.injectables = new Map();
157
+ this.resolvingStack = new Set();
158
+ this.singletonStrategy = new resolutionStrategies.SingletonStrategy();
159
+ this.transientStrategy = new resolutionStrategies.TransientStrategy();
160
+ }
161
+ }
19
162
 
20
- exports.defineCustomMetadata = defineCustomMetadata;
21
- exports.getCustomMetadata = getCustomMetadata;
22
- exports.getOwnCustomMetadata = getOwnCustomMetadata;
23
- exports.getParamTypes = getParamTypes;
163
+ exports.InjectableManager = InjectableManager;
164
+ exports.formatIdentifier = formatIdentifier;