@inversifyjs/core 5.2.0 → 5.3.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 (82) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/lib/cjs/binding/calculations/cloneBinding.d.ts +9 -0
  3. package/lib/cjs/binding/calculations/cloneBinding.d.ts.map +1 -0
  4. package/lib/cjs/binding/calculations/cloneBinding.js +37 -0
  5. package/lib/cjs/binding/calculations/cloneBinding.js.map +1 -0
  6. package/lib/cjs/binding/calculations/cloneBinding.spec.d.ts +2 -0
  7. package/lib/cjs/binding/calculations/cloneBinding.spec.d.ts.map +1 -0
  8. package/lib/cjs/binding/calculations/cloneBindingCache.d.ts +4 -0
  9. package/lib/cjs/binding/calculations/cloneBindingCache.d.ts.map +1 -0
  10. package/lib/cjs/binding/calculations/cloneBindingCache.js +14 -0
  11. package/lib/cjs/binding/calculations/cloneBindingCache.js.map +1 -0
  12. package/lib/cjs/binding/calculations/cloneBindingCache.spec.d.ts +2 -0
  13. package/lib/cjs/binding/calculations/cloneBindingCache.spec.d.ts.map +1 -0
  14. package/lib/cjs/binding/calculations/cloneConstantValueBinding.d.ts +6 -0
  15. package/lib/cjs/binding/calculations/cloneConstantValueBinding.d.ts.map +1 -0
  16. package/lib/cjs/binding/calculations/cloneConstantValueBinding.js +23 -0
  17. package/lib/cjs/binding/calculations/cloneConstantValueBinding.js.map +1 -0
  18. package/lib/cjs/binding/calculations/cloneConstantValueBinding.spec.d.ts +2 -0
  19. package/lib/cjs/binding/calculations/cloneConstantValueBinding.spec.d.ts.map +1 -0
  20. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.d.ts +6 -0
  21. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.d.ts.map +1 -0
  22. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.js +23 -0
  23. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.js.map +1 -0
  24. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.spec.d.ts +2 -0
  25. package/lib/cjs/binding/calculations/cloneDynamicValueBinding.spec.d.ts.map +1 -0
  26. package/lib/cjs/binding/calculations/cloneFactoryBinding.d.ts +7 -0
  27. package/lib/cjs/binding/calculations/cloneFactoryBinding.d.ts.map +1 -0
  28. package/lib/cjs/binding/calculations/cloneFactoryBinding.js +22 -0
  29. package/lib/cjs/binding/calculations/cloneFactoryBinding.js.map +1 -0
  30. package/lib/cjs/binding/calculations/cloneFactoryBinding.spec.d.ts +2 -0
  31. package/lib/cjs/binding/calculations/cloneFactoryBinding.spec.d.ts.map +1 -0
  32. package/lib/cjs/binding/calculations/cloneInstanceBinding.d.ts +6 -0
  33. package/lib/cjs/binding/calculations/cloneInstanceBinding.d.ts.map +1 -0
  34. package/lib/cjs/binding/calculations/cloneInstanceBinding.js +22 -0
  35. package/lib/cjs/binding/calculations/cloneInstanceBinding.js.map +1 -0
  36. package/lib/cjs/binding/calculations/cloneInstanceBinding.spec.d.ts +2 -0
  37. package/lib/cjs/binding/calculations/cloneInstanceBinding.spec.d.ts.map +1 -0
  38. package/lib/cjs/binding/calculations/cloneProviderBinding.d.ts +7 -0
  39. package/lib/cjs/binding/calculations/cloneProviderBinding.d.ts.map +1 -0
  40. package/lib/cjs/binding/calculations/cloneProviderBinding.js +22 -0
  41. package/lib/cjs/binding/calculations/cloneProviderBinding.js.map +1 -0
  42. package/lib/cjs/binding/calculations/cloneProviderBinding.spec.d.ts +2 -0
  43. package/lib/cjs/binding/calculations/cloneProviderBinding.spec.d.ts.map +1 -0
  44. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.d.ts +6 -0
  45. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.d.ts.map +1 -0
  46. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.js +23 -0
  47. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.js.map +1 -0
  48. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.spec.d.ts +2 -0
  49. package/lib/cjs/binding/calculations/cloneResolvedValueBinding.spec.d.ts.map +1 -0
  50. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.d.ts +6 -0
  51. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.d.ts.map +1 -0
  52. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.js +17 -0
  53. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.js.map +1 -0
  54. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.spec.d.ts +2 -0
  55. package/lib/cjs/binding/calculations/cloneServiceRedirectionBinding.spec.d.ts.map +1 -0
  56. package/lib/cjs/binding/models/BaseBinding.d.ts +1 -1
  57. package/lib/cjs/binding/models/BaseBinding.d.ts.map +1 -1
  58. package/lib/cjs/binding/services/BindingService.d.ts +6 -0
  59. package/lib/cjs/binding/services/BindingService.d.ts.map +1 -1
  60. package/lib/cjs/binding/services/BindingService.js +21 -2
  61. package/lib/cjs/binding/services/BindingService.js.map +1 -1
  62. package/lib/cjs/common/models/OneToManyMapStar.d.ts +5 -3
  63. package/lib/cjs/common/models/OneToManyMapStar.d.ts.map +1 -1
  64. package/lib/cjs/common/models/OneToManyMapStar.js +28 -6
  65. package/lib/cjs/common/models/OneToManyMapStar.js.map +1 -1
  66. package/lib/cjs/common/models/WeakList.d.ts +14 -0
  67. package/lib/cjs/common/models/WeakList.d.ts.map +1 -0
  68. package/lib/cjs/common/models/WeakList.int.spec.d.ts +2 -0
  69. package/lib/cjs/common/models/WeakList.int.spec.d.ts.map +1 -0
  70. package/lib/cjs/common/models/WeakList.js +71 -0
  71. package/lib/cjs/common/models/WeakList.js.map +1 -0
  72. package/lib/cjs/index.d.ts +2 -1
  73. package/lib/cjs/index.d.ts.map +1 -1
  74. package/lib/cjs/index.js.map +1 -1
  75. package/lib/cjs/planning/services/PlanResultCacheService.d.ts.map +1 -1
  76. package/lib/cjs/planning/services/PlanResultCacheService.js +3 -2
  77. package/lib/cjs/planning/services/PlanResultCacheService.js.map +1 -1
  78. package/lib/esm/index.d.ts +3 -2
  79. package/lib/esm/index.d.ts.map +1 -1
  80. package/lib/esm/index.js +1 -1
  81. package/lib/esm/index.js.map +1 -1
  82. package/package.json +10 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @inversifyjs/core
2
2
 
3
+ ## 5.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 50ef5eb: Updated `BindingService` with `getBoundServices`
8
+
9
+ ### Patch Changes
10
+
11
+ - 5d8c35d: Fixed child container memory leak in most cases
12
+
13
+ Provided that there is a [job](https://tc39.es/ecma262/multipage/executable-code-and-execution-contexts.html#job) in the event loop after constructing a child container, its cache service will eventually be garbage collected along with the child container itself, rather than persisting until the parent container's garbage collection.
14
+
15
+ - edbefaa: Updated `BindingService.clone` to properly clone bindings.
16
+
3
17
  ## 5.2.0
4
18
 
5
19
  ### Minor Changes
@@ -0,0 +1,9 @@
1
+ import { Binding } from '../models/Binding';
2
+ /**
3
+ * Creates a deep clone of a binding.
4
+ *
5
+ * @param binding - The binding to clone
6
+ * @returns A clone of the binding
7
+ */
8
+ export declare function cloneBinding<TActivated>(binding: Binding<TActivated>): Binding<TActivated>;
9
+ //# sourceMappingURL=cloneBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAc5C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EACrC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneBinding = cloneBinding;
4
+ const BindingType_1 = require("../models/BindingType");
5
+ const cloneConstantValueBinding_1 = require("./cloneConstantValueBinding");
6
+ const cloneDynamicValueBinding_1 = require("./cloneDynamicValueBinding");
7
+ const cloneFactoryBinding_1 = require("./cloneFactoryBinding");
8
+ const cloneInstanceBinding_1 = require("./cloneInstanceBinding");
9
+ const cloneProviderBinding_1 = require("./cloneProviderBinding");
10
+ const cloneResolvedValueBinding_1 = require("./cloneResolvedValueBinding");
11
+ const cloneServiceRedirectionBinding_1 = require("./cloneServiceRedirectionBinding");
12
+ /**
13
+ * Creates a deep clone of a binding.
14
+ *
15
+ * @param binding - The binding to clone
16
+ * @returns A clone of the binding
17
+ */
18
+ function cloneBinding(binding) {
19
+ // Switch based on binding type to delegate to specific clone functions
20
+ switch (binding.type) {
21
+ case BindingType_1.bindingTypeValues.ConstantValue:
22
+ return (0, cloneConstantValueBinding_1.cloneConstantValueBinding)(binding);
23
+ case BindingType_1.bindingTypeValues.DynamicValue:
24
+ return (0, cloneDynamicValueBinding_1.cloneDynamicValueBinding)(binding);
25
+ case BindingType_1.bindingTypeValues.Factory:
26
+ return (0, cloneFactoryBinding_1.cloneFactoryBinding)(binding);
27
+ case BindingType_1.bindingTypeValues.Instance:
28
+ return (0, cloneInstanceBinding_1.cloneInstanceBinding)(binding);
29
+ case BindingType_1.bindingTypeValues.Provider:
30
+ return (0, cloneProviderBinding_1.cloneProviderBinding)(binding);
31
+ case BindingType_1.bindingTypeValues.ResolvedValue:
32
+ return (0, cloneResolvedValueBinding_1.cloneResolvedValueBinding)(binding);
33
+ case BindingType_1.bindingTypeValues.ServiceRedirection:
34
+ return (0, cloneServiceRedirectionBinding_1.cloneServiceRedirectionBinding)(binding);
35
+ }
36
+ }
37
+ //# sourceMappingURL=cloneBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBinding.ts"],"names":[],"mappings":";;AAoBA,oCAwBC;AA3CD,uDAA0D;AAK1D,2EAAwE;AACxE,yEAAsE;AACtE,+DAA4D;AAC5D,iEAA8D;AAC9D,iEAA8D;AAC9D,2EAAwE;AACxE,qFAAkF;AAElF;;;;;GAKG;AACH,SAAgB,YAAY,CAC1B,OAA4B;IAE5B,uEAAuE;IACvE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,+BAAiB,CAAC,aAAa;YAClC,OAAO,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,+BAAiB,CAAC,YAAY;YACjC,OAAO,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,+BAAiB,CAAC,OAAO;YAC5B,OAAO,IAAA,yCAAmB,EACxB,OAAwD,CAClC,CAAC;QAC3B,KAAK,+BAAiB,CAAC,QAAQ;YAC7B,OAAO,IAAA,2CAAoB,EAAC,OAAO,CAAC,CAAC;QACvC,KAAK,+BAAiB,CAAC,QAAQ;YAC7B,OAAO,IAAA,2CAAoB,EACzB,OAA0D,CACpC,CAAC;QAC3B,KAAK,+BAAiB,CAAC,aAAa;YAClC,OAAO,IAAA,qDAAyB,EAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,+BAAiB,CAAC,kBAAkB;YACvC,OAAO,IAAA,+DAA8B,EAAC,OAAO,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Either } from '@inversifyjs/common';
2
+ import { Resolved } from '../../resolution/models/Resolved';
3
+ export declare function cloneBindingCache<TActivated>(cache: Either<undefined, Resolved<TActivated>>): Either<undefined, Resolved<TActivated>>;
4
+ //# sourceMappingURL=cloneBindingCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBindingCache.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBindingCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,UAAU,EAC1C,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,GAC7C,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAUzC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneBindingCache = cloneBindingCache;
4
+ function cloneBindingCache(cache) {
5
+ if (cache.isRight) {
6
+ return {
7
+ isRight: true,
8
+ value: cache.value,
9
+ };
10
+ }
11
+ // A left cache is not cloned, just returned
12
+ return cache;
13
+ }
14
+ //# sourceMappingURL=cloneBindingCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBindingCache.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBindingCache.ts"],"names":[],"mappings":";;AAIA,8CAYC;AAZD,SAAgB,iBAAiB,CAC/B,KAA8C;IAE9C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneBindingCache.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneBindingCache.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneBindingCache.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ConstantValueBinding } from '../models/ConstantValueBinding';
2
+ /**
3
+ * Clones a ConstantValueBinding
4
+ */
5
+ export declare function cloneConstantValueBinding<TActivated>(binding: ConstantValueBinding<TActivated>): ConstantValueBinding<TActivated>;
6
+ //# sourceMappingURL=cloneConstantValueBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneConstantValueBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneConstantValueBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAClD,OAAO,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACxC,oBAAoB,CAAC,UAAU,CAAC,CAclC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneConstantValueBinding = cloneConstantValueBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones a ConstantValueBinding
7
+ */
8
+ function cloneConstantValueBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ id: binding.id,
12
+ isSatisfiedBy: binding.isSatisfiedBy,
13
+ moduleId: binding.moduleId,
14
+ onActivation: binding.onActivation,
15
+ onDeactivation: binding.onDeactivation,
16
+ scope: binding.scope,
17
+ serviceIdentifier: binding.serviceIdentifier,
18
+ type: binding.type,
19
+ // The value is not cloned as it's a resolved value
20
+ value: binding.value,
21
+ };
22
+ }
23
+ //# sourceMappingURL=cloneConstantValueBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneConstantValueBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneConstantValueBinding.ts"],"names":[],"mappings":";;AAMA,8DAgBC;AArBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,yBAAyB,CACvC,OAAyC;IAEzC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,mDAAmD;QACnD,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneConstantValueBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneConstantValueBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneConstantValueBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { DynamicValueBinding } from '../models/DynamicValueBinding';
2
+ /**
3
+ * Clones a DynamicValueBinding
4
+ */
5
+ export declare function cloneDynamicValueBinding<TActivated>(binding: DynamicValueBinding<TActivated>): DynamicValueBinding<TActivated>;
6
+ //# sourceMappingURL=cloneDynamicValueBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneDynamicValueBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneDynamicValueBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGpE;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EACjD,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,GACvC,mBAAmB,CAAC,UAAU,CAAC,CAcjC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneDynamicValueBinding = cloneDynamicValueBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones a DynamicValueBinding
7
+ */
8
+ function cloneDynamicValueBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ id: binding.id,
12
+ isSatisfiedBy: binding.isSatisfiedBy,
13
+ moduleId: binding.moduleId,
14
+ onActivation: binding.onActivation,
15
+ onDeactivation: binding.onDeactivation,
16
+ scope: binding.scope,
17
+ serviceIdentifier: binding.serviceIdentifier,
18
+ type: binding.type,
19
+ // The value is not cloned
20
+ value: binding.value,
21
+ };
22
+ }
23
+ //# sourceMappingURL=cloneDynamicValueBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneDynamicValueBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneDynamicValueBinding.ts"],"names":[],"mappings":";;AAMA,4DAgBC;AArBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,wBAAwB,CACtC,OAAwC;IAExC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,0BAA0B;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneDynamicValueBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneDynamicValueBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneDynamicValueBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { Factory } from '../models/Factory';
2
+ import { FactoryBinding } from '../models/FactoryBinding';
3
+ /**
4
+ * Clones a FactoryBinding
5
+ */
6
+ export declare function cloneFactoryBinding<TFactory extends Factory<unknown>>(binding: FactoryBinding<TFactory>): FactoryBinding<TFactory>;
7
+ //# sourceMappingURL=cloneFactoryBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneFactoryBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneFactoryBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,OAAO,CAAC,OAAO,CAAC,EACnE,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,GAChC,cAAc,CAAC,QAAQ,CAAC,CAa1B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneFactoryBinding = cloneFactoryBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones a FactoryBinding
7
+ */
8
+ function cloneFactoryBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ factory: binding.factory,
12
+ id: binding.id,
13
+ isSatisfiedBy: binding.isSatisfiedBy,
14
+ moduleId: binding.moduleId,
15
+ onActivation: binding.onActivation,
16
+ onDeactivation: binding.onDeactivation,
17
+ scope: binding.scope,
18
+ serviceIdentifier: binding.serviceIdentifier,
19
+ type: binding.type,
20
+ };
21
+ }
22
+ //# sourceMappingURL=cloneFactoryBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneFactoryBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneFactoryBinding.ts"],"names":[],"mappings":";;AAOA,kDAeC;AApBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,mBAAmB,CACjC,OAAiC;IAEjC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneFactoryBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneFactoryBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneFactoryBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { InstanceBinding } from '../models/InstanceBinding';
2
+ /**
3
+ * Clones an InstanceBinding
4
+ */
5
+ export declare function cloneInstanceBinding<TActivated>(binding: InstanceBinding<TActivated>): InstanceBinding<TActivated>;
6
+ //# sourceMappingURL=cloneInstanceBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneInstanceBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneInstanceBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAC7C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,GACnC,eAAe,CAAC,UAAU,CAAC,CAa7B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneInstanceBinding = cloneInstanceBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones an InstanceBinding
7
+ */
8
+ function cloneInstanceBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ id: binding.id,
12
+ implementationType: binding.implementationType,
13
+ isSatisfiedBy: binding.isSatisfiedBy,
14
+ moduleId: binding.moduleId,
15
+ onActivation: binding.onActivation,
16
+ onDeactivation: binding.onDeactivation,
17
+ scope: binding.scope,
18
+ serviceIdentifier: binding.serviceIdentifier,
19
+ type: binding.type,
20
+ };
21
+ }
22
+ //# sourceMappingURL=cloneInstanceBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneInstanceBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneInstanceBinding.ts"],"names":[],"mappings":";;AAMA,oDAeC;AApBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,oBAAoB,CAClC,OAAoC;IAEpC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneInstanceBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneInstanceBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneInstanceBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { Provider } from '../models/Provider';
2
+ import { ProviderBinding } from '../models/ProviderBinding';
3
+ /**
4
+ * Clones a ProviderBinding
5
+ */
6
+ export declare function cloneProviderBinding<TProvider extends Provider<unknown>>(binding: ProviderBinding<TProvider>): ProviderBinding<TProvider>;
7
+ //# sourceMappingURL=cloneProviderBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneProviderBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneProviderBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,SAAS,QAAQ,CAAC,OAAO,CAAC,EACtE,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,GAClC,eAAe,CAAC,SAAS,CAAC,CAa5B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneProviderBinding = cloneProviderBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones a ProviderBinding
7
+ */
8
+ function cloneProviderBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ id: binding.id,
12
+ isSatisfiedBy: binding.isSatisfiedBy,
13
+ moduleId: binding.moduleId,
14
+ onActivation: binding.onActivation,
15
+ onDeactivation: binding.onDeactivation,
16
+ provider: binding.provider,
17
+ scope: binding.scope,
18
+ serviceIdentifier: binding.serviceIdentifier,
19
+ type: binding.type,
20
+ };
21
+ }
22
+ //# sourceMappingURL=cloneProviderBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneProviderBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneProviderBinding.ts"],"names":[],"mappings":";;AAOA,oDAeC;AApBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,oBAAoB,CAClC,OAAmC;IAEnC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneProviderBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneProviderBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneProviderBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ResolvedValueBinding } from '../models/ResolvedValueBinding';
2
+ /**
3
+ * Clones a ResolvedValueBinding
4
+ */
5
+ export declare function cloneResolvedValueBinding<TActivated>(binding: ResolvedValueBinding<TActivated>): ResolvedValueBinding<TActivated>;
6
+ //# sourceMappingURL=cloneResolvedValueBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneResolvedValueBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneResolvedValueBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAClD,OAAO,EAAE,oBAAoB,CAAC,UAAU,CAAC,GACxC,oBAAoB,CAAC,UAAU,CAAC,CAclC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneResolvedValueBinding = cloneResolvedValueBinding;
4
+ const cloneBindingCache_1 = require("./cloneBindingCache");
5
+ /**
6
+ * Clones a ResolvedValueBinding
7
+ */
8
+ function cloneResolvedValueBinding(binding) {
9
+ return {
10
+ cache: (0, cloneBindingCache_1.cloneBindingCache)(binding.cache),
11
+ factory: binding.factory,
12
+ id: binding.id,
13
+ isSatisfiedBy: binding.isSatisfiedBy,
14
+ metadata: binding.metadata,
15
+ moduleId: binding.moduleId,
16
+ onActivation: binding.onActivation,
17
+ onDeactivation: binding.onDeactivation,
18
+ scope: binding.scope,
19
+ serviceIdentifier: binding.serviceIdentifier,
20
+ type: binding.type,
21
+ };
22
+ }
23
+ //# sourceMappingURL=cloneResolvedValueBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneResolvedValueBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneResolvedValueBinding.ts"],"names":[],"mappings":";;AAMA,8DAgBC;AArBD,2DAAwD;AAExD;;GAEG;AACH,SAAgB,yBAAyB,CACvC,OAAyC;IAEzC,OAAO;QACL,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,KAAK,CAAC;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneResolvedValueBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneResolvedValueBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneResolvedValueBinding.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { ServiceRedirectionBinding } from '../models/ServiceRedirectionBinding';
2
+ /**
3
+ * Clones a ServiceRedirectionBinding
4
+ */
5
+ export declare function cloneServiceRedirectionBinding<TActivated>(binding: ServiceRedirectionBinding<TActivated>): ServiceRedirectionBinding<TActivated>;
6
+ //# sourceMappingURL=cloneServiceRedirectionBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneServiceRedirectionBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneServiceRedirectionBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EACvD,OAAO,EAAE,yBAAyB,CAAC,UAAU,CAAC,GAC7C,yBAAyB,CAAC,UAAU,CAAC,CASvC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneServiceRedirectionBinding = cloneServiceRedirectionBinding;
4
+ /**
5
+ * Clones a ServiceRedirectionBinding
6
+ */
7
+ function cloneServiceRedirectionBinding(binding) {
8
+ return {
9
+ id: binding.id,
10
+ isSatisfiedBy: binding.isSatisfiedBy,
11
+ moduleId: binding.moduleId,
12
+ serviceIdentifier: binding.serviceIdentifier,
13
+ targetServiceIdentifier: binding.targetServiceIdentifier,
14
+ type: binding.type,
15
+ };
16
+ }
17
+ //# sourceMappingURL=cloneServiceRedirectionBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneServiceRedirectionBinding.js","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneServiceRedirectionBinding.ts"],"names":[],"mappings":";;AAKA,wEAWC;AAdD;;GAEG;AACH,SAAgB,8BAA8B,CAC5C,OAA8C;IAE9C,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;QACxD,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cloneServiceRedirectionBinding.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneServiceRedirectionBinding.spec.d.ts","sourceRoot":"","sources":["../../../../src/binding/calculations/cloneServiceRedirectionBinding.spec.ts"],"names":[],"mappings":""}
@@ -6,6 +6,6 @@ export interface BaseBinding<TType extends BindingType, TActivated> {
6
6
  readonly moduleId: number | undefined;
7
7
  readonly serviceIdentifier: ServiceIdentifier<TActivated>;
8
8
  readonly type: TType;
9
- isSatisfiedBy(constraints: BindingConstraints): boolean;
9
+ readonly isSatisfiedBy: (constraints: BindingConstraints) => boolean;
10
10
  }
11
11
  //# sourceMappingURL=BaseBinding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/models/BaseBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,WAAW,EAAE,UAAU;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,aAAa,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC;CACzD"}
1
+ {"version":3,"file":"BaseBinding.d.ts","sourceRoot":"","sources":["../../../../src/binding/models/BaseBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,WAAW,EAAE,UAAU;IAChE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1D,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,QAAQ,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,kBAAkB,KAAK,OAAO,CAAC;CACtE"}
@@ -1,5 +1,6 @@
1
1
  import { ServiceIdentifier } from '@inversifyjs/common';
2
2
  import { Cloneable } from '../../common/models/Cloneable';
3
+ import { OneToManyMapStar, OneToManyMapStartSpec } from '../../common/models/OneToManyMapStar';
3
4
  import { Binding } from '../models/Binding';
4
5
  declare enum BindingRelationKind {
5
6
  id = "id",
@@ -11,12 +12,17 @@ export interface BindingRelation {
11
12
  [BindingRelationKind.moduleId]?: number;
12
13
  [BindingRelationKind.serviceId]: ServiceIdentifier;
13
14
  }
15
+ export declare class OneToManyBindingMapStar extends OneToManyMapStar<Binding<unknown>, BindingRelation> {
16
+ protected _buildNewInstance(spec: OneToManyMapStartSpec<BindingRelation>): this;
17
+ protected _cloneModel(model: Binding<unknown>): Binding<unknown>;
18
+ }
14
19
  export declare class BindingService implements Cloneable<BindingService> {
15
20
  #private;
16
21
  private constructor();
17
22
  static build(parent: BindingService | undefined): BindingService;
18
23
  clone(): BindingService;
19
24
  get<TResolved>(serviceIdentifier: ServiceIdentifier): Iterable<Binding<TResolved>> | undefined;
25
+ getBoundServices(): Iterable<ServiceIdentifier>;
20
26
  getById<TResolved>(id: number): Iterable<Binding<TResolved>> | undefined;
21
27
  getByModuleId<TResolved>(moduleId: number): Iterable<Binding<TResolved>> | undefined;
22
28
  getNonParentBindings<TResolved>(serviceId: ServiceIdentifier): Iterable<Binding<TResolved>> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"BindingService.d.ts","sourceRoot":"","sources":["../../../../src/binding/services/BindingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,aAAK,mBAAmB;IACtB,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACpD;AAED,qBAAa,cAAe,YAAW,SAAS,CAAC,cAAc,CAAC;;IAI9D,OAAO;WAqBO,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc;IAIhE,KAAK,IAAI,cAAc;IASvB,GAAG,CAAC,SAAS,EAClB,iBAAiB,EAAE,iBAAiB,GACnC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAOpC,OAAO,CAAC,SAAS,EACtB,EAAE,EAAE,MAAM,GACT,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAQpC,aAAa,CAAC,SAAS,EAC5B,QAAQ,EAAE,MAAM,GACf,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAQpC,oBAAoB,CAAC,SAAS,EACnC,SAAS,EAAE,iBAAiB,GAC3B,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAMpC,yBAAyB,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAIxD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOxD,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;CAYzD"}
1
+ {"version":3,"file":"BindingService.d.ts","sourceRoot":"","sources":["../../../../src/binding/services/BindingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,aAAK,mBAAmB;IACtB,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACpD;AAED,qBAAa,uBAAwB,SAAQ,gBAAgB,CAC3D,OAAO,CAAC,OAAO,CAAC,EAChB,eAAe,CAChB;cACoB,iBAAiB,CAClC,IAAI,EAAE,qBAAqB,CAAC,eAAe,CAAC,GAC3C,IAAI;cAIY,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAG1E;AAED,qBAAa,cAAe,YAAW,SAAS,CAAC,cAAc,CAAC;;IAI9D,OAAO;WAqBO,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc;IAIhE,KAAK,IAAI,cAAc;IASvB,GAAG,CAAC,SAAS,EAClB,iBAAiB,EAAE,iBAAiB,GACnC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAOpC,gBAAgB,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAe/C,OAAO,CAAC,SAAS,EACtB,EAAE,EAAE,MAAM,GACT,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAQpC,aAAa,CAAC,SAAS,EAC5B,QAAQ,EAAE,MAAM,GACf,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAQpC,oBAAoB,CAAC,SAAS,EACnC,SAAS,EAAE,iBAAiB,GAC3B,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS;IAMpC,yBAAyB,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAIxD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI3C,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAOxD,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;CAYzD"}
@@ -1,20 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BindingService = void 0;
3
+ exports.BindingService = exports.OneToManyBindingMapStar = void 0;
4
4
  const OneToManyMapStar_1 = require("../../common/models/OneToManyMapStar");
5
+ const cloneBinding_1 = require("../calculations/cloneBinding");
5
6
  var BindingRelationKind;
6
7
  (function (BindingRelationKind) {
7
8
  BindingRelationKind["id"] = "id";
8
9
  BindingRelationKind["moduleId"] = "moduleId";
9
10
  BindingRelationKind["serviceId"] = "serviceId";
10
11
  })(BindingRelationKind || (BindingRelationKind = {}));
12
+ class OneToManyBindingMapStar extends OneToManyMapStar_1.OneToManyMapStar {
13
+ _buildNewInstance(spec) {
14
+ return new OneToManyBindingMapStar(spec);
15
+ }
16
+ _cloneModel(model) {
17
+ return (0, cloneBinding_1.cloneBinding)(model);
18
+ }
19
+ }
20
+ exports.OneToManyBindingMapStar = OneToManyBindingMapStar;
11
21
  class BindingService {
12
22
  #bindingMaps;
13
23
  #parent;
14
24
  constructor(parent, bindingMaps) {
15
25
  this.#bindingMaps =
16
26
  bindingMaps ??
17
- new OneToManyMapStar_1.OneToManyMapStar({
27
+ new OneToManyBindingMapStar({
18
28
  id: {
19
29
  isOptional: false,
20
30
  },
@@ -38,6 +48,15 @@ class BindingService {
38
48
  return (this.getNonParentBindings(serviceIdentifier) ??
39
49
  this.#parent?.get(serviceIdentifier));
40
50
  }
51
+ getBoundServices() {
52
+ const serviceIdentifierSet = new Set(this.#bindingMaps.getAllKeys(BindingRelationKind.serviceId));
53
+ if (this.#parent !== undefined) {
54
+ for (const serviceIdentifier of this.#parent.getBoundServices()) {
55
+ serviceIdentifierSet.add(serviceIdentifier);
56
+ }
57
+ }
58
+ return serviceIdentifierSet;
59
+ }
41
60
  getById(id) {
42
61
  return (this.#bindingMaps.get(BindingRelationKind.id, id) ?? this.#parent?.getById(id));
43
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BindingService.js","sourceRoot":"","sources":["../../../../src/binding/services/BindingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BindingService.js","sourceRoot":"","sources":["../../../../src/binding/services/BindingService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Cloneable } from './Cloneable';
2
- type OneToManyMapStartSpec<TRelation extends object> = {
2
+ export type OneToManyMapStartSpec<TRelation extends object> = {
3
3
  [TKey in keyof TRelation]: {
4
4
  isOptional: undefined extends TRelation[TKey] ? true : false;
5
5
  };
@@ -11,10 +11,12 @@ export declare class OneToManyMapStar<TModel, TRelation extends object> implemen
11
11
  #private;
12
12
  constructor(spec: OneToManyMapStartSpec<TRelation>);
13
13
  add(model: TModel, relation: TRelation): void;
14
- clone(): OneToManyMapStar<TModel, TRelation>;
14
+ clone(): this;
15
15
  get<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): Iterable<TModel> | undefined;
16
16
  getAllKeys<TKey extends keyof TRelation>(key: TKey): Iterable<TRelation[TKey]>;
17
17
  removeByRelation<TKey extends keyof TRelation>(key: TKey, value: Required<TRelation>[TKey]): void;
18
+ protected _buildNewInstance(spec: OneToManyMapStartSpec<TRelation>): this;
19
+ protected _cloneModel(model: TModel): TModel;
20
+ protected _cloneRelation(relation: TRelation): TRelation;
18
21
  }
19
- export {};
20
22
  //# sourceMappingURL=OneToManyMapStar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,KAAK,qBAAqB,CAAC,SAAS,SAAS,MAAM,IAAI;KACpD,IAAI,IAAI,MAAM,SAAS,GAAG;QACzB,UAAU,EAAE,SAAS,SAAS,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;KAC9D;CACF,CAAC;AAMF;;GAEG;AACH,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,CAC5D,YAAW,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBAM7C,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAY3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;IAY7C,KAAK,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC;IAwB5C,GAAG,CAAC,IAAI,SAAS,MAAM,SAAS,EACrC,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS;IAIxB,UAAU,CAAC,IAAI,SAAS,MAAM,SAAS,EAC5C,GAAG,EAAE,IAAI,GACR,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAIrB,gBAAgB,CAAC,IAAI,SAAS,MAAM,SAAS,EAClD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,IAAI;CAiGR"}
1
+ {"version":3,"file":"OneToManyMapStar.d.ts","sourceRoot":"","sources":["../../../../src/common/models/OneToManyMapStar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,MAAM,IAAI;KAC3D,IAAI,IAAI,MAAM,SAAS,GAAG;QACzB,UAAU,EAAE,SAAS,SAAS,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;KAC9D;CACF,CAAC;AAMF;;GAEG;AACH,qBAAa,gBAAgB,CAAC,MAAM,EAAE,SAAS,SAAS,MAAM,CAC5D,YAAW,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;;gBAM7C,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC;IAY3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,GAAG,IAAI;IAY7C,KAAK,IAAI,IAAI;IAsBb,GAAG,CAAC,IAAI,SAAS,MAAM,SAAS,EACrC,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS;IAIxB,UAAU,CAAC,IAAI,SAAS,MAAM,SAAS,EAC5C,GAAG,EAAE,IAAI,GACR,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAIrB,gBAAgB,CAAC,IAAI,SAAS,MAAM,SAAS,EAClD,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAC/B,IAAI;IA2BP,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,GAAG,IAAI;IAIzE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI5C,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS;CA+FzD"}