@adaas/a-concept 0.1.4 → 0.1.5

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 (46) hide show
  1. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +5 -4
  2. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -1
  3. package/dist/src/global/A-Abstraction/A-Abstraction.class.d.ts +2 -1
  4. package/dist/src/global/A-Abstraction/A-Abstraction.class.js +7 -1
  5. package/dist/src/global/A-Abstraction/A-Abstraction.class.js.map +1 -1
  6. package/dist/src/global/A-Abstraction/A-Abstraction.types.d.ts +2 -1
  7. package/dist/src/global/A-Component/A-Component.meta.js +1 -1
  8. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
  9. package/dist/src/global/A-Container/A-Container.constants.d.ts +2 -1
  10. package/dist/src/global/A-Container/A-Container.constants.js +1 -0
  11. package/dist/src/global/A-Container/A-Container.constants.js.map +1 -1
  12. package/dist/src/global/A-Container/A-Container.meta.d.ts +11 -3
  13. package/dist/src/global/A-Container/A-Container.meta.js +25 -0
  14. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
  15. package/dist/src/global/A-Container/A-Container.types.d.ts +24 -1
  16. package/dist/src/global/A-Context/A-Context.class.d.ts +6 -14
  17. package/dist/src/global/A-Context/A-Context.class.js +16 -20
  18. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  19. package/dist/src/global/A-Feature/A-Feature.class.d.ts +1 -1
  20. package/dist/src/global/A-Feature/A-Feature.class.js +6 -4
  21. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
  22. package/dist/src/global/A-Feature/A-Feature.types.d.ts +9 -2
  23. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
  24. package/dist/src/global/A-Scope/A-Scope.class.d.ts +7 -1
  25. package/dist/src/global/A-Scope/A-Scope.class.js +22 -2
  26. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
  27. package/dist/src/global/A-Scope/A-Scope.types.d.ts +6 -0
  28. package/dist/src/helpers/A_TypeGuards.helper.d.ts +3 -1
  29. package/dist/src/helpers/A_TypeGuards.helper.js +10 -2
  30. package/dist/src/helpers/A_TypeGuards.helper.js.map +1 -1
  31. package/package.json +1 -1
  32. package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +5 -4
  33. package/src/global/A-Abstraction/A-Abstraction.class.ts +12 -2
  34. package/src/global/A-Abstraction/A-Abstraction.types.ts +2 -1
  35. package/src/global/A-Component/A-Component.meta.ts +1 -1
  36. package/src/global/A-Container/A-Container.constants.ts +1 -0
  37. package/src/global/A-Container/A-Container.meta.ts +38 -3
  38. package/src/global/A-Container/A-Container.types.ts +27 -2
  39. package/src/global/A-Context/A-Context.class.ts +22 -21
  40. package/src/global/A-Feature/A-Feature.class.ts +7 -5
  41. package/src/global/A-Feature/A-Feature.types.ts +9 -2
  42. package/src/global/A-Scope/A-Scope.class.ts +62 -13
  43. package/src/global/A-Scope/A-Scope.types.ts +7 -3
  44. package/src/helpers/A_TypeGuards.helper.ts +12 -3
  45. package/tests/A-Abstraction.test.ts +72 -0
  46. package/tests/A-Common.test.ts +2 -1
@@ -247,6 +247,11 @@ class A_Scope {
247
247
  found = this.isAllowedFragment(ctor);
248
248
  break;
249
249
  }
250
+ // check scope issuer
251
+ case this.issuer().constructor === ctor: {
252
+ found = true;
253
+ break;
254
+ }
250
255
  }
251
256
  if (!found && !!this._parent)
252
257
  return this._parent.has(ctor);
@@ -374,11 +379,16 @@ class A_Scope {
374
379
  * @returns
375
380
  */
376
381
  resolveOnce(component, instructions) {
382
+ if (!component || !this.has(component))
383
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.ResolutionError, `Injected Component ${component} not found in the scope`);
377
384
  if (A_TypeGuards_helper_1.A_TypeGuards.isScopeConstructor(component))
378
385
  component;
379
386
  if (typeof component == 'function' && component.name === 'A_Scope')
380
387
  component;
381
388
  switch (true) {
389
+ case A_TypeGuards_helper_1.A_TypeGuards.isConstructorAllowedForScopeAllocation(component): {
390
+ return this.resolveIssuer(component);
391
+ }
382
392
  case A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(component): {
383
393
  return this.resolveEntity(component, instructions);
384
394
  }
@@ -392,8 +402,18 @@ class A_Scope {
392
402
  return this.resolveComponent(component);
393
403
  }
394
404
  default:
395
- throw new Error(`Injected Component ${component} not found in the scope`);
405
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.ResolutionError, `Injected Component ${component} not found in the scope`);
406
+ }
407
+ }
408
+ resolveIssuer(ctor) {
409
+ const isCurrent = ctor === this.issuer().constructor;
410
+ if (isCurrent) {
411
+ return this.issuer();
412
+ }
413
+ if (!!this._parent) {
414
+ return this._parent.resolveIssuer(ctor);
396
415
  }
416
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.ResolutionError, `Issuer ${ctor.name} not found in the scope ${this.name}`);
397
417
  }
398
418
  /**
399
419
  * This method is used internally to resolve a single entity from the scope based on the provided instructions
@@ -423,7 +443,7 @@ class A_Scope {
423
443
  case !found && !!this._parent:
424
444
  return this._parent.resolveEntity(entity, instructions);
425
445
  default:
426
- throw new Error(`Entity ${entity.name} not found in the scope ${this.name}`);
446
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.ResolutionError, `Entity ${entity.name} not found in the scope ${this.name}`);
427
447
  }
428
448
  }
429
449
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ import { A_Caller } from "../A-Caller/A_Caller.class";
9
9
  import { A_Error } from "../A-Error/A_Error.class";
10
10
  import { A_TYPES__Error_Constructor } from "../A-Error/A_Error.types";
11
11
  import { A_Scope } from "./A-Scope.class";
12
+ import { A_TYPES__Container_Constructor } from "../A-Container/A-Container.types";
13
+ import { A_TYPES__Feature_Constructor } from "../A-Feature/A-Feature.types";
12
14
  /**
13
15
  * Scope constructor type
14
16
  * Uses the generic type T to specify the type of the Scope
@@ -56,6 +58,10 @@ export type A_TYPES__ScopeConfig = {
56
58
  * Scope serialized type
57
59
  */
58
60
  export type A_TYPES__Scope_Serialized = {};
61
+ /**
62
+ *
63
+ */
64
+ export type A_TYPES__ScopeLinkedConstructors = A_TYPES__Container_Constructor | A_TYPES__Feature_Constructor;
59
65
  /**
60
66
  * A list of components that can have a scope associated with them
61
67
  */
@@ -16,7 +16,7 @@ import { A_Scope } from "../global/A-Scope/A-Scope.class";
16
16
  import { A_TYPES__Caller_Constructor } from "../global/A-Caller/A_Caller.types";
17
17
  import { A_Error } from "../global/A-Error/A_Error.class";
18
18
  import { A_TYPES__AbstractionAvailableComponents } from "../global/A-Abstraction/A-Abstraction.types";
19
- import { A_TYPES__Scope_Constructor } from "../global/A-Scope/A-Scope.types";
19
+ import { A_TYPES__Scope_Constructor, A_TYPES__ScopeLinkedComponents, A_TYPES__ScopeLinkedConstructors } from "../global/A-Scope/A-Scope.types";
20
20
  import { A_TYPES__InjectableTargets } from "../global/A-Inject/A-Inject.types";
21
21
  export declare class A_TypeGuards {
22
22
  /**
@@ -189,6 +189,8 @@ export declare class A_TypeGuards {
189
189
  * @returns
190
190
  */
191
191
  static isEntityMetaInstance(instance: any): instance is A_EntityMeta;
192
+ static isConstructorAllowedForScopeAllocation(target: any): target is A_TYPES__ScopeLinkedConstructors;
193
+ static isInstanceAllowedForScopeAllocation(target: any): target is A_TYPES__ScopeLinkedComponents;
192
194
  static isConstructorAvailableForAbstraction(target: any): target is A_TYPES__AbstractionAvailableComponents;
193
195
  static isTargetAvailableForInjection(target: any): target is A_TYPES__InjectableTargets;
194
196
  static isAllowedForFeatureCall(param: any): param is A_TYPES__FeatureAvailableComponents;
@@ -248,9 +248,17 @@ class A_TypeGuards {
248
248
  // ==========================================================================
249
249
  // ========================= SPECIAL Type Guards =============================
250
250
  // ===========================================================================
251
- static isConstructorAvailableForAbstraction(target) {
251
+ static isConstructorAllowedForScopeAllocation(target) {
252
252
  return A_TypeGuards.isContainerConstructor(target)
253
- || A_TypeGuards.isComponentConstructor(target);
253
+ || A_TypeGuards.isFeatureConstructor(target);
254
+ }
255
+ static isInstanceAllowedForScopeAllocation(target) {
256
+ return A_TypeGuards.isContainerInstance(target)
257
+ || A_TypeGuards.isFeatureInstance(target);
258
+ }
259
+ static isConstructorAvailableForAbstraction(target) {
260
+ return A_TypeGuards.isContainerInstance(target)
261
+ || A_TypeGuards.isComponentInstance(target);
254
262
  }
255
263
  static isTargetAvailableForInjection(target) {
256
264
  return A_TypeGuards.isComponentConstructor(target)
@@ -1 +1 @@
1
- {"version":3,"file":"A_TypeGuards.helper.js","sourceRoot":"","sources":["../../../src/helpers/A_TypeGuards.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A_TypeGuards.helper.js","sourceRoot":"","sources":["../../../src/helpers/A_TypeGuards.helper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-concept",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "A-Concept is a framework to build new Applications within or outside the ADAAS ecosystem. This framework is designed to be modular structure regardless environment and program goal.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -62,10 +62,10 @@ export function A_Abstraction_Extend(
62
62
  const meta: A_ContainerMeta | A_ComponentMeta = A_Context.meta(target);
63
63
 
64
64
  switch (true) {
65
- case A_TypeGuards.isContainerConstructor(target):
65
+ case A_TypeGuards.isContainerConstructor(target) || A_TypeGuards.isContainerInstance(target):
66
66
  metaKey = A_TYPES__ContainerMetaKey.ABSTRACTIONS
67
67
  break;
68
- case A_TypeGuards.isComponentConstructor(target):
68
+ case A_TypeGuards.isComponentConstructor(target) || A_TypeGuards.isComponentInstance(target):
69
69
  metaKey = A_TYPES__ComponentMetaKey.ABSTRACTIONS
70
70
  break;
71
71
  }
@@ -78,10 +78,11 @@ export function A_Abstraction_Extend(
78
78
  // Set the metadata of the method to define a custom Stage with name
79
79
  const existedMetaValue = existedMeta.get(name) || [];
80
80
 
81
+ const setName = `CONCEPT_ABSTRACTION::${name}`;
81
82
 
82
83
  // Add the new method to the metadata
83
84
  existedMetaValue.push({
84
- name,
85
+ name: setName,
85
86
  handler: propertyKey,
86
87
  before: config.before || [],
87
88
  after: config.after || [],
@@ -89,7 +90,7 @@ export function A_Abstraction_Extend(
89
90
  });
90
91
 
91
92
  // Set the metadata of the method to define a custom Feature with name
92
- existedMeta.set(name, existedMetaValue);
93
+ existedMeta.set(setName, existedMetaValue);
93
94
 
94
95
 
95
96
  // Update the metadata of the container with the new Stage definition
@@ -2,6 +2,8 @@ import { A_Abstraction_Extend } from "@adaas/a-concept/global/A-Abstraction/A-Ab
2
2
  import { A_Feature } from "../A-Feature/A-Feature.class";
3
3
  import { A_TYPES__Abstraction_Init } from "./A-Abstraction.types";
4
4
  import { A_Scope } from "../A-Scope/A-Scope.class";
5
+ import { A_Context } from "../A-Context/A-Context.class";
6
+ import { A_TYPES__ConceptAbstractions } from "../A-Concept/A-Concept.constants";
5
7
 
6
8
 
7
9
 
@@ -10,7 +12,7 @@ export class A_Abstraction {
10
12
  /**
11
13
  * The name of the Abstraction e.g. 'deploy', 'start', 'test', etc.
12
14
  */
13
- protected _name: string;
15
+ protected _name: A_TYPES__ConceptAbstractions;
14
16
  /**
15
17
  * List of features that are part of this Abstraction
16
18
  */
@@ -51,7 +53,15 @@ export class A_Abstraction {
51
53
  this._name = params.name;
52
54
 
53
55
  this._features = params.containers.map(container => {
54
- return new A_Feature({ name: this._name, component: container, })
56
+ const template = A_Context.abstractionTemplate(
57
+ this._name,
58
+ container
59
+ );
60
+ return new A_Feature({
61
+ name: this._name,
62
+ component: container,
63
+ template
64
+ })
55
65
  });
56
66
 
57
67
  this._current = this._features[0];
@@ -1,4 +1,5 @@
1
1
  import { A_Component } from "../A-Component/A-Component.class";
2
+ import { A_TYPES__ConceptAbstractions } from "../A-Concept/A-Concept.constants";
2
3
  import { A_Container } from "../A-Container/A-Container.class";
3
4
  import { A_Feature } from "../A-Feature/A-Feature.class";
4
5
  import { A_TYPES__FeatureExtendDecoratorConfig } from "../A-Feature/A-Feature.types";
@@ -21,7 +22,7 @@ export type A_TYPES__Abstraction_Init = {
21
22
  /**
22
23
  * Name of the A-Abstraction
23
24
  */
24
- name: string,
25
+ name: A_TYPES__ConceptAbstractions,
25
26
  /**
26
27
  * Features that compose the A-Abstraction
27
28
  */
@@ -88,7 +88,7 @@ export class A_ComponentMeta extends A_Meta<A_TYPES__ComponentMeta> {
88
88
 
89
89
  abstractions
90
90
  // returns all extensions that match the feature
91
- ?.find(abstraction)
91
+ ?.find(`CONCEPT_ABSTRACTION::${abstraction}`)
92
92
  .forEach(([handler, extensions]) => {
93
93
  extensions.forEach(extension => {
94
94
  const args = injections?.get(extension.handler) || [];
@@ -2,4 +2,5 @@ export enum A_TYPES__ContainerMetaKey {
2
2
  FEATURES = 'a-container-features',
3
3
  INJECTIONS = 'a-container-injections',
4
4
  ABSTRACTIONS = 'a-container-abstractions',
5
+ EXTENSIONS = 'a-container-extensions',
5
6
  }
@@ -1,9 +1,10 @@
1
- import { A_TYPES__ContainerMeta, } from "./A-Container.types";
1
+ import { A_TYPES__ContainerMeta, A_TYPES__ContainerMetaExtension, } from "./A-Container.types";
2
2
  import { A_TYPES__A_InjectDecorator_Meta } from "@adaas/a-concept/global/A-Inject/A-Inject.types";
3
3
  import { A_TYPES__ConceptAbstraction, A_TYPES__ConceptAbstractionMeta } from "../A-Concept/A-Concept.types";
4
4
  import { A_Meta } from "../A-Meta/A-Meta.class";
5
5
  import { A_TYPES__ContainerMetaKey } from "./A-Container.constants";
6
6
  import { A_TYPES__FeatureDefineDecoratorMeta } from "../A-Feature/A-Feature.types";
7
+ import { A_TYPES__ConceptAbstractions } from "../A-Concept/A-Concept.constants";
7
8
 
8
9
 
9
10
 
@@ -48,14 +49,13 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
48
49
  * @returns
49
50
  */
50
51
  abstractions(
51
- abstraction: A_TYPES__ConceptAbstraction
52
+ abstraction: A_TYPES__ConceptAbstractions
52
53
  ): A_TYPES__ConceptAbstractionMeta[] {
53
54
  const steps: A_TYPES__ConceptAbstractionMeta[] = [];
54
55
 
55
56
  const abstractions = this.get(A_TYPES__ContainerMetaKey.ABSTRACTIONS);
56
57
  const injections = this.get(A_TYPES__ContainerMetaKey.INJECTIONS);
57
58
 
58
-
59
59
  abstractions
60
60
  // returns all extensions that match the feature
61
61
  ?.find(`CONCEPT_ABSTRACTION::${abstraction}`)
@@ -79,4 +79,39 @@ export class A_ContainerMeta extends A_Meta<A_TYPES__ContainerMeta> {
79
79
  return steps;
80
80
  }
81
81
 
82
+
83
+ /**
84
+ * Allows to get all the extensions for a given feature
85
+ *
86
+ * @param feature
87
+ * @returns
88
+ */
89
+ extensions(
90
+ feature: string
91
+ ): A_TYPES__ContainerMetaExtension[] {
92
+ const steps: A_TYPES__ContainerMetaExtension[] = [];
93
+
94
+ const extensions = this.get(A_TYPES__ContainerMetaKey.EXTENSIONS);
95
+
96
+ extensions
97
+ // returns all extensions that match the feature
98
+ ?.find(feature)
99
+ .forEach(([handler, extensions]) => {
100
+ extensions.forEach(extension => {
101
+ steps.push({
102
+ // component: constructor,
103
+ name: extension.name,
104
+ handler: extension.handler,
105
+ behavior: extension.behavior,
106
+ before: extension.before || [],
107
+ after: extension.after || []
108
+ });
109
+
110
+ });
111
+ });
112
+
113
+
114
+ return steps;
115
+ }
116
+
82
117
  }
@@ -4,7 +4,7 @@ import { A_Meta } from "../A-Meta/A-Meta.class";
4
4
  import { A_TYPES__Scope_Init } from "../A-Scope/A-Scope.types";
5
5
  import { A_TYPES__ContainerMetaKey } from "./A-Container.constants";
6
6
  import { A_Container } from "./A-Container.class";
7
- import { A_TYPES__FeatureDefineDecoratorMeta } from "../A-Feature/A-Feature.types";
7
+ import { A_TYPES__FeatureDefineDecoratorMeta, A_TYPES__FeatureExtendDecoratorBehaviorConfig, A_TYPES__FeatureExtendDecoratorMeta } from "../A-Feature/A-Feature.types";
8
8
 
9
9
 
10
10
  // ============================================================================
@@ -43,6 +43,19 @@ export type A_TYPES__Container_Serialized = {
43
43
  * Meta information stored in each Container
44
44
  */
45
45
  export type A_TYPES__ContainerMeta = {
46
+ /**
47
+ * Extensions applied to the component per handler
48
+ */
49
+ [A_TYPES__ContainerMetaKey.EXTENSIONS]: A_Meta<{
50
+ /**
51
+ * Where Key the regexp for what to apply the extension
52
+ * A set of container names or a wildcard, or a regexp
53
+ *
54
+ *
55
+ * Where value is the extension instructions
56
+ */
57
+ [Key: string]: A_TYPES__FeatureExtendDecoratorMeta[]
58
+ }>,
46
59
  [A_TYPES__ContainerMetaKey.FEATURES]: A_Meta<{
47
60
  /**
48
61
  * Where Key is the name of the feature
@@ -69,4 +82,16 @@ export type A_TYPES__ContainerMeta = {
69
82
  */
70
83
  [Key: string]: A_TYPES__A_InjectDecorator_Meta
71
84
  }>
72
- }
85
+ }
86
+
87
+
88
+ export type A_TYPES__ContainerMetaExtension = {
89
+ /**
90
+ * The name of original Extension Definition
91
+ */
92
+ name: string,
93
+ /**
94
+ * The name of the handler that will be used to apply the extension
95
+ */
96
+ handler: string,
97
+ } & A_TYPES__FeatureExtendDecoratorBehaviorConfig
@@ -36,6 +36,7 @@ import { A_FormatterHelper } from "@adaas/a-concept/helpers/A_Formatter.helper";
36
36
  import { A_Fragment } from "../A-Fragment/A-Fragment.class";
37
37
  import { A_TYPES__InjectableTargets } from "../A-Inject/A-Inject.types";
38
38
  import { A_TYPES__ConceptAbstraction } from "../A-Concept/A-Concept.types";
39
+ import { A_TYPES__ConceptAbstractions } from "../A-Concept/A-Concept.constants";
39
40
 
40
41
 
41
42
 
@@ -577,7 +578,7 @@ export class A_Context {
577
578
  /**
578
579
  * Provide the scope that dictates which components are active and can provide extensions for the feature.
579
580
  */
580
- scope: A_Scope
581
+ scope: A_Scope = this.scope(component)
581
582
  ): Array<A_TYPES__A_StageStep> {
582
583
  // name for error messages
583
584
  const componentName = (component as any)?.constructor?.name || String(component);
@@ -643,18 +644,22 @@ export class A_Context {
643
644
  const steps: A_TYPES__A_StageStep[] = [];
644
645
 
645
646
  // We need to get all components that has extensions for the feature in component
646
- for (const [component, meta] of instance._metaStorage) {
647
+ for (const [cmp, meta] of instance._metaStorage) {
647
648
  // Just try to make sure that component not only Indexed but also presented in scope
648
- if (scope.has(component) && A_TypeGuards.isComponentMetaInstance(meta))
649
+ if (scope.has(cmp) && (
650
+ A_TypeGuards.isComponentMetaInstance(meta)
651
+ || A_TypeGuards.isContainerMetaInstance(meta)
652
+ )) {
649
653
  // Get all extensions for the feature
650
654
  meta
651
655
  .extensions(callName)
652
656
  .forEach((declaration) => {
653
657
  steps.push({
654
- component,
658
+ component: cmp,
655
659
  ...declaration
656
660
  });
657
661
  });
662
+ }
658
663
  }
659
664
 
660
665
  return steps;
@@ -729,15 +734,11 @@ export class A_Context {
729
734
  /**
730
735
  * Provide the abstraction stage to get the definition for.
731
736
  */
732
- abstraction: A_TYPES__ConceptAbstraction,
737
+ abstraction: A_TYPES__ConceptAbstractions,
733
738
  /**
734
739
  * Provide the component to get the abstraction definition from.
735
740
  */
736
741
  component: A_TYPES__FeatureAvailableComponents,
737
- /**
738
- * Provide the scope that dictates which components are active and can provide extensions for the abstraction.
739
- */
740
- scope: A_Scope
741
742
  ): Array<A_TYPES__A_StageStep> {
742
743
  // name for error messages
743
744
  const componentName = (component as any)?.constructor?.name || String(component);
@@ -761,7 +762,7 @@ export class A_Context {
761
762
  // ...this.abstractionDefinition(abstraction, component),
762
763
 
763
764
  // 2) Get all extensions for the abstraction from other components in the scope
764
- ...this.abstractionExtensions(abstraction, component, scope)
765
+ ...this.abstractionExtensions(abstraction, component)
765
766
  ];
766
767
 
767
768
  return steps;
@@ -775,15 +776,11 @@ export class A_Context {
775
776
  /**
776
777
  * Provide the abstraction name to get the definition for.
777
778
  */
778
- abstraction: A_TYPES__ConceptAbstraction,
779
+ abstraction: A_TYPES__ConceptAbstractions,
779
780
  /**
780
781
  * Provide the component to get the abstraction definition from.
781
782
  */
782
783
  component: A_TYPES__FeatureAvailableComponents,
783
- /**
784
- * Provide the scope that dictates which components are active and can provide extensions for the abstraction.
785
- */
786
- scope: A_Scope
787
784
  ): Array<A_TYPES__A_StageStep> {
788
785
  const instance = this.getInstance();
789
786
  // name for error messages
@@ -805,23 +802,27 @@ export class A_Context {
805
802
  `Unable to get feature template. Component of type ${componentName} is not allowed for feature definition.`
806
803
  );
807
804
 
808
- const callName = `${component.constructor.name}.${abstraction}`;
809
-
810
805
  const steps: A_TYPES__A_StageStep[] = [];
811
806
 
807
+ const scope = this.scope(component);
808
+
812
809
  // We need to get all components that has extensions for the feature in component
813
- for (const [component, meta] of instance._metaStorage) {
810
+ for (const [cmp, meta] of instance._metaStorage) {
814
811
  // Just try to make sure that component not only Indexed but also presented in scope
815
- if (scope.has(component) && A_TypeGuards.isComponentMetaInstance(meta))
812
+ if (scope.has(cmp) && (
813
+ A_TypeGuards.isComponentMetaInstance(meta)
814
+ || A_TypeGuards.isContainerMetaInstance(meta)
815
+ )) {
816
816
  // Get all extensions for the feature
817
817
  meta
818
- .abstractions(callName)
818
+ .abstractions(abstraction)
819
819
  .forEach((declaration) => {
820
820
  steps.push({
821
- component,
821
+ component: cmp,
822
822
  ...declaration
823
823
  });
824
824
  });
825
+ }
825
826
  }
826
827
 
827
828
  return steps;
@@ -203,7 +203,7 @@ export class A_Feature<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__
203
203
  ): (param1: any) => void | (() => void) {
204
204
 
205
205
  switch (true) {
206
- case 'component' in params:
206
+ case !('template' in params):
207
207
  return this.fromComponent;
208
208
 
209
209
  case 'template' in params:
@@ -221,7 +221,7 @@ export class A_Feature<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__
221
221
  * @param params
222
222
  */
223
223
  protected fromTemplate(
224
- params: A_TYPES__Feature_InitWithTemplate
224
+ params: A_TYPES__Feature_InitWithTemplate<T>
225
225
  ) {
226
226
  if (!params.template || !Array.isArray(params.template)) {
227
227
  throw new A_FeatureError(
@@ -230,7 +230,7 @@ export class A_Feature<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__
230
230
  );
231
231
  }
232
232
 
233
- if (!params.scope || !(params.scope instanceof A_Scope)) {
233
+ if (!params.component && (!params.scope || !(params.scope instanceof A_Scope))) {
234
234
  throw new A_FeatureError(
235
235
  A_FeatureError.FeatureInitializationError,
236
236
  `Invalid A-Feature scope provided of type: ${typeof params.scope} with value: ${JSON.stringify(params.scope).slice(0, 100)}...`
@@ -241,12 +241,14 @@ export class A_Feature<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__
241
241
  this._name = params.name;
242
242
 
243
243
  // 2) get scope from where feature is called
244
- const componentScope = params.scope;
244
+ const componentScope = params.component
245
+ ? A_Context.scope(params.component)
246
+ : params.scope as A_Scope;
245
247
 
246
248
  // 3) create caller wrapper for the simple injection of the caller component
247
249
  // - Just to prevent issues with undefined caller in features without component
248
250
  // - TODO: maybe would be better to allow passing caller in params?
249
- this._caller = new A_Caller<T>(new A_Component() as T);
251
+ this._caller = new A_Caller<T>(params.component || new A_Component() as T);
250
252
 
251
253
  // 4) allocate new scope for the feature
252
254
  const scope = A_Context.allocate(this);