@adaas/a-concept 0.0.60 → 0.0.62

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 (79) hide show
  1. package/dist/index.d.ts +4 -4
  2. package/dist/index.js +5 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/base/A-Config/A-Config.container.js +2 -2
  5. package/dist/src/base/A-Config/A-Config.container.js.map +1 -1
  6. package/dist/src/base/A-Config/A-Config.context.js +3 -3
  7. package/dist/src/base/A-Config/A-Config.context.js.map +1 -1
  8. package/dist/src/base/A-Config/components/ENVConfigReader.component.js +1 -5
  9. package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +1 -1
  10. package/dist/src/base/A-Config/components/FileConfigReader.component.js +2 -1
  11. package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +1 -1
  12. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +2 -1
  13. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js +9 -2
  14. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +1 -1
  15. package/dist/src/{base/A-Command/A_Command.entity.d.ts → global/A-Command/A-Command.class.d.ts} +72 -10
  16. package/dist/src/{base/A-Command/A_Command.entity.js → global/A-Command/A-Command.class.js} +119 -46
  17. package/dist/src/global/A-Command/A-Command.class.js.map +1 -0
  18. package/dist/src/{base/A-Command/A_Command.constants.js → global/A-Command/A-Command.constants.js} +1 -1
  19. package/dist/src/global/A-Command/A-Command.constants.js.map +1 -0
  20. package/dist/src/global/A-Command/A-Command.meta.d.ts +11 -0
  21. package/dist/src/global/A-Command/A-Command.meta.js +18 -0
  22. package/dist/src/global/A-Command/A-Command.meta.js.map +1 -0
  23. package/dist/src/global/A-Command/A-Command.types.d.ts +43 -0
  24. package/dist/src/global/A-Command/A-Command.types.js +10 -0
  25. package/dist/src/global/A-Command/A-Command.types.js.map +1 -0
  26. package/dist/src/{base → global}/A-Command/context/A_Command.context.d.ts +1 -1
  27. package/dist/src/{base → global}/A-Command/context/A_Command.context.js +1 -1
  28. package/dist/src/global/A-Command/context/A_Command.context.js.map +1 -0
  29. package/dist/src/global/A-Concept/A_Concept.class.js +2 -0
  30. package/dist/src/global/A-Concept/A_Concept.class.js.map +1 -1
  31. package/dist/src/global/A-Concept/A_Concept.types.d.ts +10 -0
  32. package/dist/src/global/A-Concept/A_Concept.types.js.map +1 -1
  33. package/dist/src/global/A-Context/A-Context.class.d.ts +3 -1
  34. package/dist/src/global/A-Context/A-Context.class.js +16 -6
  35. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  36. package/dist/src/global/A-Entity/A-Entity.class.js +1 -4
  37. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
  38. package/dist/src/global/A-Feature/A-FeatureCaller.class.d.ts +4 -3
  39. package/dist/src/global/A-Feature/A-FeatureCaller.class.js.map +1 -1
  40. package/dist/src/global/A-Scope/A-Scope.class.d.ts +15 -1
  41. package/dist/src/global/A-Scope/A-Scope.class.js +59 -5
  42. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
  43. package/dist/src/global/A-Scope/A-Scope.types.d.ts +7 -0
  44. package/dist/src/global/A-Stage/A-Stage.class.d.ts +1 -1
  45. package/index.ts +4 -4
  46. package/package.json +2 -2
  47. package/src/base/A-Config/A-Config.container.ts +2 -2
  48. package/src/base/A-Config/A-Config.context.ts +6 -3
  49. package/src/base/A-Config/components/ENVConfigReader.component.ts +1 -6
  50. package/src/base/A-Config/components/FileConfigReader.component.ts +2 -1
  51. package/src/decorators/A-Feature/A-Feature-Define.decorator.ts +13 -6
  52. package/src/{base/A-Command/A_Command.entity.ts → global/A-Command/A-Command.class.ts} +149 -35
  53. package/src/global/A-Command/A-Command.meta.ts +22 -0
  54. package/src/global/A-Command/A-Command.types.ts +71 -0
  55. package/src/global/A-Concept/A_Concept.class.ts +3 -0
  56. package/src/global/A-Concept/A_Concept.types.ts +10 -0
  57. package/src/global/A-Context/A-Context.class.ts +23 -5
  58. package/src/global/A-Entity/A-Entity.class.ts +1 -4
  59. package/src/global/A-Feature/A-FeatureCaller.class.ts +4 -3
  60. package/src/global/A-Scope/A-Scope.class.ts +77 -9
  61. package/src/global/A-Scope/A-Scope.types.ts +7 -0
  62. package/tests/A-Command.test.ts +16 -13
  63. package/tests/A-Component.test.ts +2 -0
  64. package/tests/A-Concept.test.ts +112 -0
  65. package/tests/A-Config.test.ts +72 -6
  66. package/tests/A-Entity.test.ts +2 -0
  67. package/tests/A-Feature.test.ts +2 -0
  68. package/tests/A-Scope.test.ts +47 -4
  69. package/tests/test.setup.ts +30 -0
  70. package/dist/src/base/A-Command/A_Command.constants.js.map +0 -1
  71. package/dist/src/base/A-Command/A_Command.entity.js.map +0 -1
  72. package/dist/src/base/A-Command/A_Command.types.d.ts +0 -15
  73. package/dist/src/base/A-Command/A_Command.types.js +0 -3
  74. package/dist/src/base/A-Command/A_Command.types.js.map +0 -1
  75. package/dist/src/base/A-Command/context/A_Command.context.js.map +0 -1
  76. package/src/base/A-Command/A_Command.types.ts +0 -34
  77. /package/dist/src/{base/A-Command/A_Command.constants.d.ts → global/A-Command/A-Command.constants.d.ts} +0 -0
  78. /package/src/{base/A-Command/A_Command.constants.ts → global/A-Command/A-Command.constants.ts} +0 -0
  79. /package/src/{base → global}/A-Command/context/A_Command.context.ts +0 -0
@@ -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":";;;AAAA,4CAAuD;AAEvD,qEAA4D;AAC5D,kEAAyD;AACzD,wEAE0C;AAC1C,wEAA+D;AAC/D,+DAAsD;AAMtD,kEAAyD;AAGzD;;;;;;;;;;;;GAYG;AACH,MAAa,OAAO;IAchB,YACI,MAA0C,EAC1C,SAAwC,EAAE;QAdrC,SAAI,GAAW,EAAE,CAAC;QAEnB,gBAAW,GAAiD,IAAI,OAAO,EAAE,CAAC;QAC1E,eAAU,GAAgD,IAAI,OAAO,EAAE,CAAC;QACxE,cAAS,GAA2B,IAAI,GAAG,EAAE,CAAC;QAC9C,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAWjD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAEjD,yBAAyB;QACzB,MAAM,aAAa,GAA8B;YAC7C,IAAI,EAAE,EAAE;YACR,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;SACf,CAAC;QAGF,IAAI,CAAC,MAAM,mCACJ,aAAa,GACb,MAAM,CACZ,CAAA;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QACjC,CAAC;IACL,CAAC;IAGO,cAAc,CAAC,WAAgD;QACnE,qCAAqC;QACrC,wDAAwD;QACxD,KAAK;IACT,CAAC;IAEO,YAAY,CAAC,SAA0B;QAC3C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAGO,aAAa,CAAC,UAA6B;QAC/C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;IACvC,CAAC;IAKD,MAAM,CACF,QAAkB;QAElB,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,eAAe,CAAC,KAAc;QAC1B,IAAI,OAAO,GAAwB,IAAI,CAAC;QAExC,OAAO,OAAO,EAAE,CAAC;YACb,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,OAAO,CAAC,MAAe;QACnB,+BAA+B;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,GAAG,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAID;;;;;;OAMG;IACH,wBAAwB,CAAC,KAAc;QACnC,MAAM,gBAAgB,GAAkB,EAAE,CAAC;QAC3C,IAAI,OAAO,GAAwB,IAAI,CAAC,OAAO,CAAC;QAEhD,OAAO,OAAO,EAAE,CAAC;YACb,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpB,OAAO,gBAAgB,CAAC;YAC5B,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAGD,qBAAqB;QACjB,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,OAAO,GAAwB,IAAI,CAAC;QAExC,OAAO,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,CAAC;IAqBD,GAAG,CACC,MAAgD;QAIhD,QAAQ,IAAI,EAAE,CAAC;YAEX,KAAK,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;gBAC9B,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;gBAE9E,IAAI,iBAAiB,EAAE,CAAC;oBACpB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;gBAE5E,IAAI,gBAAgB,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;oBAChE,OAAO,IAAI,CAAC;gBAChB,CAAC;gBAED,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;oBACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEpC,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,KAAK,OAAO,MAAM,KAAK,UAAU;mBAC1B,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,+BAAW,CAAC;gBAAE,CAAC;oBACrD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAA8C,CAAC,CAAC;oBAEvF,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;oBAC3C,CAAC;oBAED,OAAO,KAAK,CAAC;gBACjB,CAAC;YAEL,KAAK,OAAO,MAAM,KAAK,UAAU;mBAC1B,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,yBAAQ,CAAC;gBAAE,CAAC;oBAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;oBAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC;oBAEtD,OAAO,CAAC,CAAC,KAAK,CAAC;gBACnB,CAAC;YAEL,KAAK,OAAO,MAAM,KAAK,UAAU;mBAC1B,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,6BAAU,CAAC;gBAAE,CAAC;oBACpD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAE1C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;wBACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;oBAE3C,OAAO,KAAK,CAAC;gBACjB,CAAC;YACL,KAAK,OAAO,MAAM,KAAK,UAAU;mBAC1B,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,2BAAS,CAAC;gBAAE,CAAC;oBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAA4C,CAAC,CAAC;oBAEnF,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;wBACxB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAa,CAAC,CAAC;oBAE3C,OAAO,KAAK,CAAC;gBACjB,CAAC;YAGL,OAAO,CAAC,CAAC,CAAC;gBACN,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IAGD;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAqB;QACvB,MAAM,MAAM,GAAG,IAAI,OAAO,CACtB;YACI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,EAAE;YACzC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;gBAC3B,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;gBACzB,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU;aACpC,CAAC,CAAC;YACH,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;gBAC1B,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;gBACxB,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS;aACnC,CAAC,CAAC;YACH,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;gBACzB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACvB,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ;aAClC,CAAC,CAAC;SACN,EACD;YACI,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO;SAC/C,CACJ,CAAC;QAEF,OAAO,MAAM,CAAC;IAClB,CAAC;IAGD;;;;;;;;;;OAUG;IACH,kBAAkB,CAAmC,IAAY;QAC7D,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wBAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACjG,IAAI,SAAS;YAAE,OAAO,SAAgB,CAAC;QAEvC,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,WAAmB,CAAC,MAAM,KAAK,IAAI;eAC5E,CAAC,CAAC,WAAmB,CAAC,IAAI,KAAK,wBAAc,CAAC,YAAY,CAAC,IAAI,CAAC;eAChE,CAAC,CAAC,WAAmB,CAAC,MAAM,KAAK,wBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CACxE,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,WAAkB,CAAC;QAE7C,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAE,CAAS,CAAC,IAAI,KAAK,IAAI;eAC/D,CAAS,CAAC,IAAI,KAAK,wBAAc,CAAC,YAAY,CAAC,IAAI,CAAC;eACpD,CAAS,CAAC,IAAI,KAAK,wBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAC1D,CAAC;QACF,IAAI,OAAO;YAAE,OAAO,OAAc,CAAC;QAEnC,oDAAoD;QACpD,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,CAAC;IAyBD,kBAAkB;IAClB,OAAO,CACH,MAA6B,EAC7B,MAAiF;QAIjF,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAa,EAAE,MAAa,CAAC,CAAC,CAAC;YAC3E,CAAC;YAED,KAAK,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAa,EAAE,MAAa,CAAC,CAAC;YAC1D,CAAC;YAED,KAAK,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;gBAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAa,CAAoB,CAAC;YAChE,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;IACL,CAAC;IAGO,aAAa,CAAC,IAAY;QAC9B,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpE,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEvD,iBAAiB;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAChE,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEnD,kBAAkB;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC9E,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAkB,CAAC,CAAC;QAEvE,iBAAiB;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC3E,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAkB,CAAC,CAAC;QAEjE,oDAAoD;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5G,CAAC;IAYO,WAAW,CACf,SAAY,EACZ,YAA8E;QAI9E,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,wBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,yBAAQ,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAgB,EAAE,YAAY,CAAoB,CAAC;YACjF,CAAC;YAED,KAAK,wBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,6BAAU,CAAC,CAAC,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,eAAe,CAAC,SAA8B,CAAoB,CAAC;YACnF,CAAC;YAED,KAAK,wBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC,YAAY,CAAC,SAA2B,CAAoB,CAAC;YAC7E,CAAC;YAED,KAAK,wBAAc,CAAC,eAAe,CAAC,SAAS,EAAE,+BAAW,CAAC,CAAC,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAA+B,CAAoB,CAAC;YACrF,CAAC;YAED;gBACI,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,yBAAyB,CAAC,CAAC;QAClF,CAAC;IACL,CAAC;IAGO,aAAa,CACjB,MAAS,EACT,YAA+F;;QAG/F,MAAM,KAAK,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,KAAI,EAA+E,CAAC;QACrH,MAAM,KAAK,GAAG,CAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,0CAAE,KAAK,KAAI,CAAC,CAAC;QAEnD,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC;gBAEtD,QAAQ,IAAI,EAAE,CAAC;oBACX,KAAK,CAAC,CAAC,KAAK;wBACR,OAAO,KAAwB,CAAC;oBAEpC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;wBACzB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;oBAE5D;wBACI,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,CAAC,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrF,CAAC;YACL,CAAC;YAED,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;mBACX,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;mBAC/B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;gBAAE,CAAC;oBACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAoB,CAAC;gBAC9D,CAAC;YAEL,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK;mBACX,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;mBAC/B,KAAK,CAAC,KAAK,YAAY,eAAK;mBAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAoB,CAAC;gBACzE,CAAC;YAEL,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEd,oDAAoD;gBACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,MAAM,CAC3B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACP,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAC5C,CAAC,CAAC,CAAC;gBAEH,OAAO,KAAwB,CAAC;YACpC,CAAC;YAED,OAAO,CAAC,CAAC,CAAC;gBACN,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;gBAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,MAAM,CAC3B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACT,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;wBAChD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;4BACX,OAAQ,CAAS,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;wBACrC,CAAC;wBACD,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC;gBAEH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;oBACpC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAE5D,IAAI,KAAK,KAAK,CAAC;oBACX,OAAO,KAAK,CAAC,CAAC,CAAoB,CAAC;gBAEvC,OAAO,KAA0B,CAAC;YACtC,CAAC;QAEL,CAAC;IACL,CAAC;IAIO,eAAe,CAA8B,QAAW;QAE5D,MAAM,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,QAAQ,CAAC,CAAC;QAGpF,QAAQ,IAAI,EAAE,CAAC;YAEX,KAAK,yBAAyB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEzC,KAAK,yBAAyB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,QAAQ,CAAoB,CAAC;YAEhF,KAAK,CAAC,yBAAyB,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;gBAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAElD;gBACI,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;IACL,CAAC;IAGO,YAAY,CAAC,KAAqB;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAGO,gBAAgB,CAAwB,SAE/C;QAEG,uGAAuG;QACvG,2EAA2E;QAC3E,2GAA2G;QAC3G,QAAQ,IAAI,EAAE,CAAC;YACX,kEAAkE;YAClE,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC1E,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YAED,kEAAkE;YAClE,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3E,MAAM,aAAa,GAAG,2BAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBAE/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,6CAAyB,CAAC,UAAU,CAAC,CAAC;gBAEzE,MAAM,YAAY,GAAG,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAC,aAAa,CAAC,KAAI,EAAE,CAAC;qBACpD,GAAG,CAAC,GAAG,CAAC,EAAE;oBACP,IAAI,cAAc,IAAI,GAAG,EAAE,CAAC;wBACxB,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAA;wBACpC,OAAO,IAAI,CAAC,OAAO,CACf,MAAM,EACN,YAAY,CACf,CAAC;oBACN,CAAC;oBACD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;gBACnC,CAAC,CAAC,CAAC;gBAEP,MAAM,YAAY,GAAG,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC,CAAA;gBAEnD,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAE5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;YAED,iFAAiF;YACjF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAc,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAErH,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,wBAAc,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;gBAExF,OAAO,IAAI,CAAC,gBAAgB,CAAI,KAAY,CAAC,CAAC;YAClD,CAAC;YAED,wFAAwF;YACxF,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;YAED;gBACI,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,CAAC,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3F,CAAC;IACL,CAAC;IAGD;;;;OAIG;IACK,cAAc,CAAsB,OAE3C;QACG,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC;QAEvD,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,CAAC,CAAC,KAAK;gBACR,OAAO,KAAU,CAAC;YAEtB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO;gBACzB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAEhD;gBACI,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,IAAI,2BAA2B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;IAeD,QAAQ,CACJ,MAKyC;QAEzC,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,MAAM,YAAY,+BAAW,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAEjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAkB,CAAC,CAAC;gBACpD,CAAC;gBAED,2BAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACV,CAAC;YAED,KAAK,MAAM,YAAY,yBAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;gBACpD,2BAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACV,CAAC;YAED,KAAK,MAAM,YAAY,6BAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,MAAM,CAAC,WAAW,CAAC,CAAC;gBAEpF,IAAI,CAAC,eAAe,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAChD,2BAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACV,CAAC;YAED,KAAK,MAAM,YAAY,+BAAW,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAEjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAkB,CAAC,CAAC;gBACpD,CAAC;gBAED,2BAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACV,CAAC;YAED,KAAK,OAAO,MAAM,KAAK,UAAU,IAAI,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,+BAAW,CAAC,CAAC,CAAC,CAAC;gBACvF,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;gBAEjE,IAAI,CAAC,gBAAgB;oBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,MAAM;YACV,CAAC;YACD,KAAK,OAAO,MAAM,KAAK,UAAU,IAAI,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,yBAAQ,CAAC,CAAC,CAAC,CAAC;gBACpF,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC;gBAE/E,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAK,MAAc,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM;YACV,CAAC;YACD,KAAK,OAAO,MAAM,KAAK,UAAU,IAAI,wBAAc,CAAC,eAAe,CAAC,MAAM,EAAE,2BAAS,CAAC,CAAC,CAAC,CAAC;gBACrF,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;gBAE7D,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM;YACV,CAAC;YAED;gBACI,IAAI,MAAM,YAAY,yBAAQ;oBAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC/G,IAAI,MAAM,YAAY,6BAAU;oBACjC,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,uCAAuC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;oBAEvG,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,iBAAiB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;IAIL,CAAC;IAKD,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YAE3C,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAA;YAEpC,uCACO,GAAG,KACN,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,IAChC;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACJ;AAnuBD,0BAmuBC"}
@@ -1,3 +1,4 @@
1
+ import { A_Command } from "../A-Command/A-Command.class";
1
2
  import { A_Component } from "../A-Component/A-Component.class";
2
3
  import { A_Entity } from "../A-Entity/A-Entity.class";
3
4
  import { A_Fragment } from "../A-Fragment/A-Fragment.class";
@@ -22,6 +23,12 @@ export type A_TYPES__ScopeConstructor = {
22
23
  *
23
24
  */
24
25
  entities: Array<A_Entity>;
26
+ /**
27
+ * A set of Commands available in the Scope
28
+ */
29
+ commands: Array<{
30
+ new (...args: any[]): A_Command;
31
+ }>;
25
32
  };
26
33
  export type A_TYPES__ScopeConfig = {
27
34
  /**
@@ -32,7 +32,7 @@ export declare class A_Stage {
32
32
  * @param step
33
33
  * @returns
34
34
  */
35
- protected getStepArgs(step: A_TYPES__A_StageStep, scope: A_Scope): Promise<(import("../A-Component/A-Component.class").A_Component | A_Container | A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON> | A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON>[] | A_Feature)[]>;
35
+ protected getStepArgs(step: A_TYPES__A_StageStep, scope: A_Scope): Promise<(import("../A-Component/A-Component.class").A_Component | A_Container | A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON> | A_Feature | A_Entity<any, import("../A-Entity/A-Entity.types").A_TYPES__Entity_JSON>[] | import("../A-Command/A-Command.class").A_Command<import("../A-Command/A-Command.types").A_TYPES__Command_Constructor, Record<string, any>>)[]>;
36
36
  /**
37
37
  * Adds a step to the stage
38
38
  *
package/index.ts CHANGED
@@ -80,10 +80,10 @@ export * from './src/base/A-Logger/A-Logger.component';
80
80
 
81
81
 
82
82
 
83
- export { A_Command } from './src/base/A-Command/A_Command.entity';
84
- export * from './src/base/A-Command/A_Command.types';
85
- export * from './src/base/A-Command/A_Command.constants';
86
- export { A_CommandContext } from './src/base/A-Command/context/A_Command.context';
83
+ export { A_Command } from './src/global/A-Command/A-Command.class';
84
+ export * from './src/global/A-Command/A-Command.types';
85
+ export * from './src/global/A-Command/A-Command.constants';
86
+ export { A_CommandContext } from './src/global/A-Command/context/A_Command.context';
87
87
 
88
88
 
89
89
  export { A_ErrorsManager } from './src/base/A-Errors/A-Errors.component';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-concept",
3
- "version": "0.0.60",
3
+ "version": "0.0.62",
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",
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "homepage": "https://github.com/ADAAS-org/adaas-adf-auth#readme",
53
53
  "dependencies": {
54
- "@adaas/a-utils": "^0.0.7",
54
+ "@adaas/a-utils": "^0.0.8",
55
55
  "@types/node": "^20.10.0"
56
56
  },
57
57
  "devDependencies": {
@@ -32,11 +32,11 @@ export class A_ConfigLoader extends A_Container {
32
32
 
33
33
  switch (true) {
34
34
 
35
- case A_Context.environment === 'server' && !!fs.existsSync(`${this.Scope.name}.conf.json`):
35
+ case A_Context.environment === 'server' && !!fs.existsSync(`${A_Context.root.name}.conf.json`):
36
36
  this.reader = this.Scope.resolve(FileConfigReader);
37
37
  break;
38
38
 
39
- case A_Context.environment === 'server': !fs.existsSync(`${this.Scope.name}.conf.json`)
39
+ case A_Context.environment === 'server': !fs.existsSync(`${A_Context.root.name}.conf.json`)
40
40
  this.reader = this.Scope.resolve(ENVConfigReader);
41
41
  break;
42
42
 
@@ -33,7 +33,10 @@ export class A_Config<
33
33
  this.CONFIG_PROPERTIES = this.config.variables ? this.config.variables : [] as any as T;
34
34
 
35
35
  this.config.variables.forEach((variable) => {
36
- this.VARIABLES.set(variable, this.config.defaults[variable]);
36
+ this.VARIABLES.set(
37
+ A_CommonHelper.toUpperSnakeCase(variable),
38
+ this.config.defaults[variable]
39
+ );
37
40
  });
38
41
  }
39
42
 
@@ -51,7 +54,7 @@ export class A_Config<
51
54
  || this.DEFAULT_ALLOWED_TO_READ_PROPERTIES.includes(property as any)
52
55
  || !(this.config.strict)
53
56
  )
54
- return this.VARIABLES.get(property as string) as _OutType;
57
+ return this.VARIABLES.get(A_CommonHelper.toUpperSnakeCase(property)) as _OutType;
55
58
 
56
59
  throw new Error('Property not exists or not allowed to read') as never;
57
60
  // return this.concept.Errors.throw(A_SDK_CONSTANTS__ERROR_CODES.CONFIGURATION_PROPERTY_NOT_EXISTS_OR_NOT_ALLOWED_TO_READ) as never;
@@ -105,7 +108,7 @@ export class A_Config<
105
108
  ? this.config.defaults[property as T[number]]
106
109
  : undefined;
107
110
 
108
- this.VARIABLES.set(property as string, targetValue);
111
+ this.VARIABLES.set(A_CommonHelper.toUpperSnakeCase(property), targetValue);
109
112
  }
110
113
  }
111
114
  }
@@ -1,7 +1,5 @@
1
1
  import { A_CommonHelper } from "@adaas/a-utils";
2
2
  import { ConfigReader } from "./ConfigReader.component";
3
- import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
4
- import { A_CONSTANTS__DEFAULT_ENV_VARIABLES_ARRAY } from "@adaas/a-concept/constants/env.constants";
5
3
 
6
4
 
7
5
  export class ENVConfigReader extends ConfigReader {
@@ -12,10 +10,7 @@ export class ENVConfigReader extends ConfigReader {
12
10
  * @param property
13
11
  */
14
12
  getConfigurationProperty_ENV_Alias(property: string): string {
15
- if (A_CONSTANTS__DEFAULT_ENV_VARIABLES_ARRAY.some(p => p === property))
16
- return A_CommonHelper.toUpperSnakeCase(property);
17
-
18
- return `${A_CommonHelper.toUpperSnakeCase(A_Context.root.name)}_${A_CommonHelper.toUpperSnakeCase(property)}`;
13
+ return A_CommonHelper.toUpperSnakeCase(property);
19
14
  }
20
15
 
21
16
 
@@ -1,5 +1,6 @@
1
1
  import { A_CommonHelper, A_Polyfills } from "@adaas/a-utils";
2
2
  import { ConfigReader } from "./ConfigReader.component";
3
+ import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
3
4
 
4
5
  export class FileConfigReader extends ConfigReader {
5
6
 
@@ -24,7 +25,7 @@ export class FileConfigReader extends ConfigReader {
24
25
  ): Promise<Record<T, any>> {
25
26
  const fs = await A_Polyfills.fs();
26
27
  try {
27
- const data = fs.readFileSync(`${this.scope.name}.conf.json`, 'utf8');
28
+ const data = fs.readFileSync(`${A_Context.root.name}.conf.json`, 'utf8');
28
29
 
29
30
  const config: Record<T, any> = JSON.parse(data);
30
31
 
@@ -14,6 +14,9 @@ import { A_ComponentMeta } from "@adaas/a-concept/global/A-Component/A-Component
14
14
  import { A_TYPES__EntityMetaKey } from "@adaas/a-concept/global/A-Entity/A-Entity.types";
15
15
  import { A_TYPES__ComponentMetaKey } from "@adaas/a-concept/global/A-Component/A-Component.types";
16
16
  import { A_Meta } from "@adaas/a-concept/global/A-Meta/A-Meta.class";
17
+ import { A_Command } from "@adaas/a-concept/global/A-Command/A-Command.class";
18
+ import { A_TYPES__CommandMetaKey } from "@adaas/a-concept/global/A-Command/A-Command.types";
19
+ import { A_CommandMeta } from "@adaas/a-concept/global/A-Command/A-Command.meta";
17
20
 
18
21
  /**
19
22
  * A-Feature decorator
@@ -32,12 +35,12 @@ export function A_Feature_Define(
32
35
  config: Partial<A_TYPES__A_FeatureDecoratorConfig> = {}
33
36
  ) {
34
37
  return function (
35
- target: A_Container | A_Entity | A_Component,
38
+ target: A_Container | A_Entity | A_Component | A_Command,
36
39
  propertyKey: string,
37
40
  descriptor: A_TYPES__A_FeatureDecoratorDescriptor
38
41
  ) {
39
42
 
40
- const meta: A_EntityMeta | A_ContainerMeta | A_ComponentMeta = A_Context.meta(target.constructor as any);
43
+ const meta: A_EntityMeta | A_ContainerMeta | A_ComponentMeta | A_CommandMeta = A_Context.meta(target.constructor as any);
41
44
 
42
45
  let metaKey;
43
46
 
@@ -52,8 +55,13 @@ export function A_Feature_Define(
52
55
  case target instanceof A_Component:
53
56
  metaKey = A_TYPES__ComponentMetaKey.FEATURES
54
57
  break;
55
- default:
56
- throw new Error(`A-Feature cannot be defined on the ${target} level`);
58
+ case target instanceof A_Command:
59
+ metaKey = A_TYPES__CommandMetaKey.FEATURES
60
+ break;
61
+ default: {
62
+ console.log(target);
63
+ throw new Error(`A-Feature cannot be defined on the ${(target as any).constructor.name} level`);
64
+ }
57
65
  }
58
66
 
59
67
 
@@ -72,7 +80,7 @@ export function A_Feature_Define(
72
80
  const handlerName = config.name || propertyKey;
73
81
  // default to false
74
82
  const invoke = config.invoke || false;
75
-
83
+
76
84
 
77
85
  // Set the metadata of the method to define a custom Feature with name
78
86
  existedMeta.set(propertyKey, {
@@ -102,7 +110,6 @@ export function A_Feature_Define(
102
110
  const originalMethod = descriptor.value!;
103
111
 
104
112
 
105
-
106
113
  // Wrap the original method to add the call to `call`
107
114
  // this helps to automatically call the container/entity/component method when it's called
108
115
  descriptor.value = function (...args: any[]) {
@@ -1,21 +1,69 @@
1
- import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class";
2
- import { A_TYPES__Command_Constructor, A_TYPES__Command_Listener, A_TYPES__Command_Serialized } from "./A_Command.types";
3
- import { A_Error } from "@adaas/a-utils";
1
+ import { A_TYPES__Command_Constructor, A_TYPES__Command_Listener, A_TYPES__Command_Serialized } from "./A-Command.types";
2
+ import { A_CommonHelper, A_Error, ASEID } from "@adaas/a-utils";
4
3
  import { A_Scope } from "@adaas/a-concept/global/A-Scope/A-Scope.class";
5
- import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
6
4
  import { A_CommandContext } from "./context/A_Command.context";
7
- import { A_CONSTANTS__A_Command_Event, A_CONSTANTS__A_Command_Status, A_CONSTANTS_A_Command_Features } from "./A_Command.constants";
5
+ import { A_CONSTANTS__A_Command_Event, A_CONSTANTS__A_Command_Status } from "./A-Command.constants";
6
+ import { A_Context } from "../A-Context/A-Context.class";
7
+ import { A_CONSTANTS__DEFAULT_ENV_VARIABLES } from "@adaas/a-concept/constants/env.constants";
8
8
 
9
9
 
10
10
  export class A_Command<
11
11
  InvokeType extends A_TYPES__Command_Constructor = A_TYPES__Command_Constructor,
12
12
  ResultType extends Record<string, any> = Record<string, any>
13
- > extends A_Entity<
14
- InvokeType,
15
- A_TYPES__Command_Serialized<ResultType>
16
13
  > {
17
14
 
18
- protected _scope!: A_Scope;
15
+ // ====================================================================
16
+ // ================== Static A-Command Information ====================
17
+ // ====================================================================
18
+
19
+ /**
20
+ * Command Identifier that corresponds to the class name
21
+ */
22
+ static get code(): string {
23
+ return A_CommonHelper.toKebabCase(this.name);
24
+ }
25
+
26
+ /**
27
+ * DEFAULT Namespace of the command from environment variable A_CONCEPT_NAMESPACE
28
+ * [!] If environment variable is not set, it will default to 'a-concept'
29
+ */
30
+ static get namespace(): string {
31
+ return A_Context.root.name;
32
+ }
33
+
34
+ /**
35
+ * DEFAULT Scope of the command from environment variable A_CONCEPT_DEFAULT_SCOPE
36
+ * [!] If environment variable is not set, it will default to 'core'
37
+ * [!] Scope is an application specific identifier that can be used to group commands together
38
+ * [!] e.g. 'default', 'core', 'public', 'internal', etc
39
+ */
40
+ static get scope(): string {
41
+ return process && process.env ? process.env[A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_DEFAULT_SCOPE] || 'core' : 'core';
42
+ }
43
+
44
+ // ====================================================================
45
+ // ================ Instance A-Command Information ====================
46
+ // ====================================================================
47
+
48
+ /**
49
+ * ASEID is a command identifier that is unique across the system
50
+ * A - A_Concept or Application
51
+ * S - System or Scope
52
+ * E - Entity
53
+ * ID - Identifier
54
+ *
55
+ * [!] ASEID is immutable and should not be changed after the entity is created
56
+ *
57
+ * [!] ASEID is composed of the following parts:
58
+ * - namespace: an application specific identifier from where the command is coming from
59
+ * - scope: the scope of the command from Application Namespace
60
+ * - entity: the name of the command from Application Namespace
61
+ * - id: the unique identifier of the command
62
+ *
63
+ * [!] For more information about ASEID, please refer to the ASEID class documentation
64
+ */
65
+ aseid!: ASEID;
66
+
19
67
  protected _result?: ResultType;
20
68
  protected _errors?: Set<A_Error>;
21
69
 
@@ -45,7 +93,7 @@ export class A_Command<
45
93
  * Command execution context is stored in A_CommandContext fragment within this scope
46
94
  */
47
95
  get Scope(): A_Scope {
48
- return this._scope;
96
+ return A_Context.scope(this);
49
97
  }
50
98
 
51
99
  /**
@@ -54,7 +102,7 @@ export class A_Command<
54
102
  *
55
103
  */
56
104
  get Code(): string {
57
- return (this.constructor as typeof A_Command).name;
105
+ return (this.constructor as typeof A_Command).code;
58
106
  }
59
107
  /**
60
108
  * Current status of the command
@@ -111,7 +159,44 @@ export class A_Command<
111
159
  */
112
160
  params: InvokeType | A_TYPES__Command_Serialized<ResultType>
113
161
  ) {
114
- super(params as any);
162
+ if (params && typeof params === 'object' && 'aseid' in params) {
163
+ this.fromJSON(params);
164
+ } else {
165
+ this.fromNew(params);
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Extracts the ID from the ASEID
171
+ * ID is the unique identifier of the entity
172
+ */
173
+ get id(): string | number {
174
+ return this.aseid.id;
175
+ }
176
+
177
+ /**
178
+ * Extracts the namespace from the ASEID
179
+ * namespace is an application specific identifier from where the entity is coming from
180
+ */
181
+ get namespace(): string {
182
+ return this.aseid.namespace
183
+ }
184
+
185
+ /**
186
+ * Extracts the scope from the ASEID
187
+ * scope is the scope of the entity from Application Namespace
188
+ */
189
+ get scope(): string {
190
+ return this.aseid.scope;
191
+ }
192
+
193
+ /**
194
+ * Extracts the entity from the ASEID
195
+ * entity is the name of the entity from Application Namespace
196
+ *
197
+ */
198
+ get entity(): string {
199
+ return this.aseid.entity;
115
200
  }
116
201
 
117
202
 
@@ -123,13 +208,14 @@ export class A_Command<
123
208
  /**
124
209
  * Executes the command logic.
125
210
  */
126
- @A_Feature.Define()
127
- async [A_CONSTANTS_A_Command_Features.EXECUTE](): Promise<any> {
211
+ async execute(): Promise<any> {
128
212
  this._status = A_CONSTANTS__A_Command_Status.IN_PROGRESS;
129
213
  this._startTime = new Date();
214
+
130
215
  try {
131
- await this.call('execute', this._scope);
216
+ await this.call('execute');
132
217
  await this.complete();
218
+
133
219
  } catch (error) {
134
220
  await this.fail();
135
221
  }
@@ -138,26 +224,24 @@ export class A_Command<
138
224
  /**
139
225
  * Marks the command as completed
140
226
  */
141
- @A_Feature.Define()
142
- async [A_CONSTANTS_A_Command_Features.COMPLETE]() {
227
+ async complete() {
143
228
  this._status = A_CONSTANTS__A_Command_Status.COMPLETED;
144
229
  this._endTime = new Date();
145
230
  this._result = this.Scope.resolve(A_CommandContext).toJSON() as ResultType;
146
231
 
147
- this.call('complete', this._scope);
232
+ this.call('complete');
148
233
  }
149
234
 
150
235
 
151
236
  /**
152
237
  * Marks the command as failed
153
238
  */
154
- @A_Feature.Define()
155
- async [A_CONSTANTS_A_Command_Features.FAIL]() {
239
+ async fail() {
156
240
  this._status = A_CONSTANTS__A_Command_Status.FAILED;
157
241
  this._endTime = new Date();
158
242
  this._errors = this.Scope.resolve(A_CommandContext).Errors;
159
243
 
160
- this.call('fail', this._scope);
244
+ this.call('fail');
161
245
  }
162
246
 
163
247
 
@@ -211,19 +295,24 @@ export class A_Command<
211
295
  * @param newEntity
212
296
  */
213
297
  fromNew(newEntity: InvokeType): void {
214
- super.fromNew(newEntity);
215
298
 
299
+ this.aseid = new ASEID({
300
+ namespace: (this.constructor as typeof A_Command).namespace,
301
+ scope: (this.constructor as typeof A_Command).scope,
302
+ entity: (this.constructor as typeof A_Command).code,
303
+ id: `${new Date().getTime().toString()}-${Math.floor(Math.random() * 10000000).toString()}`,
304
+ });
216
305
 
217
- this._params = newEntity;
218
-
219
- this._status = A_CONSTANTS__A_Command_Status.INITIALIZED;
220
-
221
- this._scope = new A_Scope({
306
+ A_Context.allocate(this, {
222
307
  name: `a-command-scope::${this.id}`,
223
308
  fragments: [
224
309
  new A_CommandContext<ResultType>()
225
310
  ]
226
311
  });
312
+
313
+ this._params = newEntity;
314
+
315
+ this._status = A_CONSTANTS__A_Command_Status.INITIALIZED;
227
316
  }
228
317
 
229
318
 
@@ -236,19 +325,21 @@ export class A_Command<
236
325
  * @param serialized
237
326
  */
238
327
  fromJSON(serialized: A_TYPES__Command_Serialized<ResultType>): void {
239
- super.fromJSON(serialized);
240
- if (serialized.startedAt) this._startTime = new Date(serialized.startedAt);
241
- if (serialized.endedAt) this._endTime = new Date(serialized.endedAt);
242
-
243
-
328
+ this.aseid = new ASEID(serialized.aseid);
244
329
  const context = new A_CommandContext<ResultType>();
245
330
 
246
- this._scope = new A_Scope({
331
+ A_Context.allocate(this, {
247
332
  name: `a-command-scope::${this.id}`,
248
333
  fragments: [
249
334
  context
250
335
  ]
251
- })
336
+ });
337
+
338
+ if (serialized.startedAt) this._startTime = new Date(serialized.startedAt);
339
+ if (serialized.endedAt) this._endTime = new Date(serialized.endedAt);
340
+
341
+
342
+
252
343
  // Restore result and errors in the context
253
344
  if (serialized.result) {
254
345
  Object.entries(serialized.result).forEach(([key, value]) => {
@@ -273,7 +364,7 @@ export class A_Command<
273
364
  */
274
365
  toJSON(): A_TYPES__Command_Serialized<ResultType> {
275
366
  return {
276
- ...super.toJSON(),
367
+ aseid: this.aseid.toString(),
277
368
  code: this.Code,
278
369
  status: this._status,
279
370
  startedAt: this._startTime ? this._startTime.toISOString() : undefined,
@@ -284,4 +375,27 @@ export class A_Command<
284
375
  }
285
376
  };
286
377
 
378
+
379
+
380
+ /**
381
+ * Call a feature of the component with the provided scope
382
+ *
383
+ * [!] If the provided scope is not inherited from the entity scope, it will be inherited
384
+ *
385
+ * @param lifecycleMethod
386
+ * @param args
387
+ */
388
+ async call(
389
+ feature: string,
390
+ scope: A_Scope = this.Scope
391
+ ) {
392
+ if (scope && !scope.isInheritedFrom(this.Scope)) {
393
+ scope = scope.inherit(this.Scope);
394
+ }
395
+
396
+ const newFeature = A_Context.feature(this, feature, scope);
397
+
398
+ return await newFeature.process();
399
+ }
400
+
287
401
  }
@@ -0,0 +1,22 @@
1
+ import { A_Meta } from "../A-Meta/A-Meta.class";
2
+ import { A_TYPES__CommandMeta, A_TYPES__CommandMetaKey } from "./A-Command.types";
3
+ import { A_TYPES__A_DefineDecorator_Meta } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types";
4
+
5
+
6
+ export class A_CommandMeta extends A_Meta<A_TYPES__CommandMeta> {
7
+
8
+ /**
9
+ * Returns all features defined in the Container
10
+ *
11
+ * @returns
12
+ */
13
+ features(): Array<A_TYPES__A_DefineDecorator_Meta> {
14
+
15
+ const features = this.get(A_TYPES__CommandMetaKey.FEATURES);
16
+
17
+ return features?.toArray()
18
+ // returns all extensions that match the feature
19
+ .map(([, feature]) => feature) || [];
20
+ }
21
+
22
+ }
@@ -0,0 +1,71 @@
1
+ import { A_Command } from "./A-Command.class";
2
+ import { A_CONSTANTS__A_Command_Status } from "./A-Command.constants";
3
+ import { A_TYPES__Error } from "@adaas/a-utils";
4
+ import { A_Meta } from "../A-Meta/A-Meta.class";
5
+ import { A_TYPES__A_DefineDecorator_Meta, A_TYPES__A_ExtendDecorator_Meta } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types";
6
+
7
+
8
+
9
+ export type A_TYPES__Command_Constructor = {
10
+ }
11
+
12
+
13
+
14
+ export type A_TYPES__Command_Serialized<
15
+ ResultType extends Record<string, any> = Record<string, any>
16
+ > = {
17
+ aseid: string,
18
+ code: string;
19
+ status: A_CONSTANTS__A_Command_Status;
20
+
21
+ startedAt?: string;
22
+ endedAt?: string;
23
+ duration?: number;
24
+
25
+ result?: ResultType;
26
+ errors?: Array<A_TYPES__Error>;
27
+
28
+ }
29
+
30
+
31
+
32
+
33
+ export type A_TYPES__Command_Listener<
34
+ T extends Record<string, any> = Record<string, any>
35
+ > = (command?: A_Command<any, T>) => void;
36
+
37
+
38
+
39
+
40
+
41
+
42
+ export type A_TYPES__CommandMeta = {
43
+ [A_TYPES__CommandMetaKey.EXTENSIONS]: A_Meta<{
44
+
45
+ /**
46
+ * Where Key the regexp for what to apply the extension
47
+ * A set of container names or a wildcard, or a regexp
48
+ *
49
+ *
50
+ * Where value is the extension instructions
51
+ */
52
+ [Key: string]: A_TYPES__A_ExtendDecorator_Meta[]
53
+
54
+ }>, case
55
+
56
+
57
+ [A_TYPES__CommandMetaKey.FEATURES]: A_Meta<{
58
+ /**
59
+ * Where Key is the name of the feature
60
+ *
61
+ * Where value is the list of features
62
+ */
63
+ [Key: string]: A_TYPES__A_DefineDecorator_Meta
64
+ }>
65
+ }
66
+
67
+ export enum A_TYPES__CommandMetaKey {
68
+ EXTENSIONS = 'a-command-extensions',
69
+ FEATURES = 'a-command-features',
70
+ ABSTRACTIONS = 'a-command-abstractions',
71
+ }