@adaas/a-concept 0.0.64 → 0.1.2
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.
- package/dist/index.d.ts +24 -32
- package/dist/index.js +35 -52
- package/dist/index.js.map +1 -1
- package/dist/src/constants/env.constants.d.ts +15 -8
- package/dist/src/constants/env.constants.js +17 -10
- package/dist/src/constants/env.constants.js.map +1 -1
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +23 -0
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +69 -0
- package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.class.d.ts +47 -20
- package/dist/src/global/A-Abstraction/A-Abstraction.class.js +55 -48
- package/dist/src/global/A-Abstraction/A-Abstraction.class.js.map +1 -1
- package/dist/src/global/A-Abstraction/A-Abstraction.error.d.ts +7 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.error.js +12 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.error.js.map +1 -0
- package/dist/src/global/A-Abstraction/A-Abstraction.types.d.ts +27 -12
- package/dist/src/global/A-Abstraction/A-Abstraction.types.js +0 -8
- package/dist/src/global/A-Abstraction/A-Abstraction.types.js.map +1 -1
- package/dist/src/global/A-Caller/A_Caller.class.d.ts +33 -0
- package/dist/src/global/A-Caller/A_Caller.class.js +44 -0
- package/dist/src/global/A-Caller/A_Caller.class.js.map +1 -0
- package/dist/src/global/A-Caller/A_Caller.error.d.ts +7 -0
- package/dist/src/global/A-Caller/A_Caller.error.js +12 -0
- package/dist/src/global/A-Caller/A_Caller.error.js.map +1 -0
- package/dist/src/global/A-Caller/A_Caller.types.d.ts +18 -0
- package/dist/src/{base/A-Errors/A-Errors.types.js → global/A-Caller/A_Caller.types.js} +1 -1
- package/dist/src/global/A-Caller/A_Caller.types.js.map +1 -0
- package/dist/src/global/A-Component/A-Component.class.d.ts +20 -3
- package/dist/src/global/A-Component/A-Component.class.js +35 -19
- package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
- package/dist/src/global/A-Component/A-Component.constants.d.ts +6 -0
- package/dist/src/global/A-Component/A-Component.constants.js +11 -0
- package/dist/src/global/A-Component/A-Component.constants.js.map +1 -0
- package/dist/src/global/A-Component/A-Component.meta.d.ts +4 -4
- package/dist/src/global/A-Component/A-Component.meta.js +6 -8
- package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
- package/dist/src/global/A-Component/A-Component.types.d.ts +40 -22
- package/dist/src/global/A-Component/A-Component.types.js +1 -8
- package/dist/src/global/A-Component/A-Component.types.js.map +1 -1
- package/dist/src/global/A-Concept/A-Concept.class.d.ts +153 -0
- package/dist/src/global/A-Concept/A-Concept.class.js +260 -0
- package/dist/src/global/A-Concept/A-Concept.class.js.map +1 -0
- package/dist/src/global/A-Concept/A-Concept.constants.d.ts +33 -0
- package/dist/src/global/A-Concept/A-Concept.constants.js +39 -0
- package/dist/src/global/A-Concept/A-Concept.constants.js.map +1 -0
- package/dist/src/global/A-Concept/{A_Concept.meta.js → A-Concept.meta.js} +1 -2
- package/dist/src/global/A-Concept/A-Concept.meta.js.map +1 -0
- package/dist/src/global/A-Concept/A-Concept.types.d.ts +83 -0
- package/dist/src/global/{A-Channel/A-Channel.types.js → A-Concept/A-Concept.types.js} +1 -1
- package/dist/src/global/A-Concept/A-Concept.types.js.map +1 -0
- package/dist/src/global/A-Container/A-Container.class.d.ts +31 -35
- package/dist/src/global/A-Container/A-Container.class.js +34 -55
- package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
- package/dist/src/global/A-Container/A-Container.constants.d.ts +5 -0
- package/dist/src/global/A-Container/A-Container.constants.js +10 -0
- package/dist/src/global/A-Container/A-Container.constants.js.map +1 -0
- package/dist/src/global/A-Container/A-Container.meta.d.ts +6 -6
- package/dist/src/global/A-Container/A-Container.meta.js +5 -6
- package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
- package/dist/src/global/A-Container/A-Container.types.d.ts +31 -25
- package/dist/src/global/A-Container/A-Container.types.js +1 -7
- package/dist/src/global/A-Container/A-Container.types.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.class.d.ts +302 -76
- package/dist/src/global/A-Context/A-Context.class.js +436 -244
- package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
- package/dist/src/global/A-Context/A-Context.error.d.ts +20 -0
- package/dist/src/global/A-Context/A-Context.error.js +25 -0
- package/dist/src/global/A-Context/A-Context.error.js.map +1 -0
- package/dist/src/global/A-Context/A-Context.types.d.ts +5 -0
- package/dist/src/global/A-Context/A-Context.types.js +1 -0
- package/dist/src/global/A-Entity/A-Entity.class.d.ts +13 -39
- package/dist/src/global/A-Entity/A-Entity.class.js +30 -73
- package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
- package/dist/src/global/A-Entity/A-Entity.constants.d.ts +11 -0
- package/dist/src/global/A-Entity/A-Entity.constants.js +17 -0
- package/dist/src/global/A-Entity/A-Entity.constants.js.map +1 -0
- package/dist/src/global/A-Entity/A-Entity.error.d.ts +7 -0
- package/dist/src/global/A-Entity/A-Entity.error.js +12 -0
- package/dist/src/global/A-Entity/A-Entity.error.js.map +1 -0
- package/dist/src/global/A-Entity/A-Entity.meta.d.ts +2 -2
- package/dist/src/global/A-Entity/A-Entity.meta.js +2 -2
- package/dist/src/global/A-Entity/A-Entity.meta.js.map +1 -1
- package/dist/src/global/A-Entity/A-Entity.types.d.ts +24 -29
- package/dist/src/global/A-Entity/A-Entity.types.js +1 -13
- package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -1
- package/dist/src/global/A-Error/A_Error.class.d.ts +219 -0
- package/dist/src/global/A-Error/A_Error.class.js +267 -0
- package/dist/src/global/A-Error/A_Error.class.js.map +1 -0
- package/dist/src/global/A-Error/A_Error.constants.d.ts +5 -0
- package/dist/src/global/A-Error/A_Error.constants.js +9 -0
- package/dist/src/global/A-Error/A_Error.constants.js.map +1 -0
- package/dist/src/global/A-Error/A_Error.types.d.ts +89 -0
- package/dist/src/{decorators/A-Inject/A-Inject.decorator.types.js → global/A-Error/A_Error.types.js} +1 -1
- package/dist/src/global/A-Error/A_Error.types.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.d.ts +15 -0
- package/dist/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.js +21 -27
- package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -0
- package/dist/src/{decorators → global}/A-Feature/A-Feature-Extend.decorator.d.ts +26 -3
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +97 -0
- package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature.class.d.ts +120 -30
- package/dist/src/global/A-Feature/A-Feature.class.js +205 -73
- package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
- package/dist/src/global/A-Feature/A-Feature.error.d.ts +25 -0
- package/dist/src/global/A-Feature/A-Feature.error.js +33 -0
- package/dist/src/global/A-Feature/A-Feature.error.js.map +1 -0
- package/dist/src/global/A-Feature/A-Feature.types.d.ts +241 -18
- package/dist/src/global/A-Feature/A-Feature.types.js +16 -22
- package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
- package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +19 -27
- package/dist/src/global/A-Fragment/A-Fragment.class.js +21 -91
- package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -1
- package/dist/src/global/A-Fragment/A-Fragment.types.d.ts +19 -1
- package/dist/src/global/A-Fragment/A-Fragment.types.js +3 -0
- package/dist/src/global/A-Fragment/A-Fragment.types.js.map +1 -1
- package/dist/src/global/A-Inject/A-Inject.decorator.d.ts +80 -0
- package/dist/src/global/A-Inject/A-Inject.decorator.js +49 -0
- package/dist/src/global/A-Inject/A-Inject.decorator.js.map +1 -0
- package/dist/src/global/A-Inject/A-Inject.error.d.ts +5 -0
- package/dist/src/global/A-Inject/A-Inject.error.js +10 -0
- package/dist/src/global/A-Inject/A-Inject.error.js.map +1 -0
- package/dist/src/global/A-Inject/A-Inject.types.d.ts +42 -0
- package/dist/src/{decorators/A-Entity/A-Entity.decorator.types.js → global/A-Inject/A-Inject.types.js} +1 -1
- package/dist/src/global/A-Inject/A-Inject.types.js.map +1 -0
- package/dist/src/global/A-Meta/A-Meta.class.d.ts +1 -1
- package/dist/src/global/A-Meta/A-Meta.types.d.ts +14 -0
- package/dist/src/global/A-Meta/A-Meta.types.js +1 -0
- package/dist/src/global/A-Scope/A-Scope.class.d.ts +124 -142
- package/dist/src/global/A-Scope/A-Scope.class.js +163 -209
- package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
- package/dist/src/global/A-Scope/A-Scope.error.d.ts +6 -0
- package/dist/src/global/A-Scope/A-Scope.error.js +11 -0
- package/dist/src/global/A-Scope/A-Scope.error.js.map +1 -0
- package/dist/src/global/A-Scope/A-Scope.types.d.ts +48 -13
- package/dist/src/global/A-Stage/A-Stage.class.d.ts +31 -23
- package/dist/src/global/A-Stage/A-Stage.class.js +100 -68
- package/dist/src/global/A-Stage/A-Stage.class.js.map +1 -1
- package/dist/src/global/A-Stage/A-Stage.error.d.ts +2 -1
- package/dist/src/global/A-Stage/A-Stage.error.js +5 -2
- package/dist/src/global/A-Stage/A-Stage.error.js.map +1 -1
- package/dist/src/global/A-Stage/A-Stage.types.d.ts +4 -16
- package/dist/src/global/A-Stage/A-Stage.types.js +0 -16
- package/dist/src/global/A-Stage/A-Stage.types.js.map +1 -1
- package/dist/src/global/ASEID/ASEID.class.d.ts +130 -0
- package/dist/src/global/ASEID/ASEID.class.js +167 -0
- package/dist/src/global/ASEID/ASEID.class.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.constants.js +2 -0
- package/dist/src/global/ASEID/ASEID.constants.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.error.d.ts +5 -0
- package/dist/src/global/ASEID/ASEID.error.js +10 -0
- package/dist/src/global/ASEID/ASEID.error.js.map +1 -0
- package/dist/src/global/ASEID/ASEID.types.d.ts +65 -0
- package/dist/src/global/ASEID/ASEID.types.js +5 -0
- package/dist/src/global/ASEID/ASEID.types.js.map +1 -0
- package/dist/src/helpers/A_Common.helper.d.ts +28 -0
- package/dist/src/helpers/A_Common.helper.js +170 -0
- package/dist/src/helpers/A_Common.helper.js.map +1 -0
- package/dist/src/helpers/A_Formatter.helper.d.ts +35 -0
- package/dist/src/helpers/A_Formatter.helper.js +62 -0
- package/dist/src/helpers/A_Formatter.helper.js.map +1 -0
- package/dist/src/helpers/A_Identity.helper.d.ts +29 -0
- package/dist/src/helpers/A_Identity.helper.js +43 -0
- package/dist/src/helpers/A_Identity.helper.js.map +1 -0
- package/dist/src/helpers/{StepsManager.class.d.ts → A_StepsManager.class.d.ts} +4 -2
- package/dist/src/helpers/{StepsManager.class.js → A_StepsManager.class.js} +10 -5
- package/dist/src/helpers/A_StepsManager.class.js.map +1 -0
- package/dist/src/helpers/A_TypeGuards.helper.d.ts +205 -0
- package/dist/src/helpers/A_TypeGuards.helper.js +288 -0
- package/dist/src/helpers/A_TypeGuards.helper.js.map +1 -0
- package/dist/src/types/A_Common.types.d.ts +36 -0
- package/dist/src/types/A_Common.types.js +3 -0
- package/dist/src/types/A_Common.types.js.map +1 -0
- package/index.ts +27 -51
- package/jest.config.ts +1 -0
- package/package.json +1 -2
- package/src/constants/env.constants.ts +18 -11
- package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +103 -0
- package/src/global/A-Abstraction/A-Abstraction.class.ts +71 -65
- package/src/global/A-Abstraction/A-Abstraction.error.ts +9 -0
- package/src/global/A-Abstraction/A-Abstraction.types.ts +52 -13
- package/src/global/A-Caller/A_Caller.class.ts +61 -0
- package/src/global/A-Caller/A_Caller.error.ts +10 -0
- package/src/global/A-Caller/A_Caller.types.ts +25 -0
- package/src/global/A-Component/A-Component.class.ts +26 -15
- package/src/global/A-Component/A-Component.constants.ts +9 -0
- package/src/global/A-Component/A-Component.meta.ts +6 -16
- package/src/global/A-Component/A-Component.types.ts +53 -28
- package/src/global/A-Concept/A-Concept.class.ts +316 -0
- package/src/global/A-Concept/A-Concept.constants.ts +36 -0
- package/src/global/A-Concept/A-Concept.meta.ts +17 -0
- package/src/global/A-Concept/A-Concept.types.ts +100 -0
- package/src/global/A-Container/A-Container.class.ts +42 -83
- package/src/global/A-Container/A-Container.constants.ts +5 -0
- package/src/global/A-Container/A-Container.meta.ts +7 -11
- package/src/global/A-Container/A-Container.types.ts +38 -34
- package/src/global/A-Context/A-Context.class.ts +648 -412
- package/src/global/A-Context/A-Context.error.ts +44 -0
- package/src/global/A-Context/A-Context.types.ts +14 -0
- package/src/global/A-Entity/A-Entity.class.ts +33 -88
- package/src/global/A-Entity/A-Entity.constants.ts +12 -0
- package/src/global/A-Entity/A-Entity.error.ts +12 -0
- package/src/global/A-Entity/A-Entity.meta.ts +4 -4
- package/src/global/A-Entity/A-Entity.types.ts +31 -36
- package/src/global/A-Error/A_Error.class.ts +408 -0
- package/src/global/A-Error/A_Error.constants.ts +11 -0
- package/src/global/A-Error/A_Error.types.ts +96 -0
- package/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.ts +31 -37
- package/src/global/A-Feature/A-Feature-Extend.decorator.ts +187 -0
- package/src/global/A-Feature/A-Feature.class.ts +279 -122
- package/src/global/A-Feature/A-Feature.error.ts +33 -0
- package/src/global/A-Feature/A-Feature.types.ts +278 -40
- package/src/global/A-Fragment/A-Fragment.class.ts +29 -100
- package/src/global/A-Fragment/A-Fragment.types.ts +25 -3
- package/src/global/A-Inject/A-Inject.decorator.ts +167 -0
- package/src/global/A-Inject/A-Inject.error.ts +8 -0
- package/src/global/A-Inject/A-Inject.types.ts +75 -0
- package/src/global/A-Meta/A-Meta.class.ts +1 -1
- package/src/global/A-Meta/A-Meta.types.ts +21 -0
- package/src/global/A-Scope/A-Scope.class.ts +288 -299
- package/src/global/A-Scope/A-Scope.error.ts +13 -0
- package/src/global/A-Scope/A-Scope.types.ts +61 -27
- package/src/global/A-Stage/A-Stage.class.ts +142 -80
- package/src/global/A-Stage/A-Stage.error.ts +4 -2
- package/src/global/A-Stage/A-Stage.types.ts +4 -25
- package/src/global/ASEID/ASEID.class.ts +275 -0
- package/src/global/ASEID/ASEID.error.ts +12 -0
- package/src/global/ASEID/ASEID.types.ts +79 -0
- package/src/helpers/A_Common.helper.ts +204 -0
- package/src/helpers/A_Formatter.helper.ts +58 -0
- package/src/helpers/A_Identity.helper.ts +53 -0
- package/src/helpers/{StepsManager.class.ts → A_StepsManager.class.ts} +19 -3
- package/src/helpers/A_TypeGuards.helper.ts +318 -0
- package/src/types/A_Common.types.ts +79 -0
- package/tests/A-Common.test.ts +117 -0
- package/tests/A-Component.test.ts +11 -6
- package/tests/A-Concept.test.ts +19 -22
- package/tests/A-Entity.test.ts +24 -24
- package/tests/A-Error.test.ts +129 -0
- package/tests/A-Feature.test.ts +34 -25
- package/tests/A-Scope.test.ts +50 -22
- package/tests/ASEID.test.ts +74 -0
- package/tsconfig.build.json +2 -1
- package/tsconfig.json +3 -2
- package/dist/src/base/A-Config/A-Config.container.d.ts +0 -9
- package/dist/src/base/A-Config/A-Config.container.js +0 -69
- package/dist/src/base/A-Config/A-Config.container.js.map +0 -1
- package/dist/src/base/A-Config/A-Config.context.d.ts +0 -30
- package/dist/src/base/A-Config/A-Config.context.js +0 -60
- package/dist/src/base/A-Config/A-Config.context.js.map +0 -1
- package/dist/src/base/A-Config/A-Config.types.d.ts +0 -20
- package/dist/src/base/A-Config/A-Config.types.js +0 -7
- package/dist/src/base/A-Config/A-Config.types.js.map +0 -1
- package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +0 -29
- package/dist/src/base/A-Config/components/ConfigReader.component.js +0 -84
- package/dist/src/base/A-Config/components/ConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Config/components/ENVConfigReader.component.d.ts +0 -10
- package/dist/src/base/A-Config/components/ENVConfigReader.component.js +0 -37
- package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Config/components/FileConfigReader.component.d.ts +0 -11
- package/dist/src/base/A-Config/components/FileConfigReader.component.js +0 -48
- package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +0 -1
- package/dist/src/base/A-Errors/A-Error.entity.d.ts +0 -3
- package/dist/src/base/A-Errors/A-Error.entity.js +0 -8
- package/dist/src/base/A-Errors/A-Error.entity.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.component.d.ts +0 -19
- package/dist/src/base/A-Errors/A-Errors.component.js +0 -87
- package/dist/src/base/A-Errors/A-Errors.component.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.context.d.ts +0 -27
- package/dist/src/base/A-Errors/A-Errors.context.js +0 -50
- package/dist/src/base/A-Errors/A-Errors.context.js.map +0 -1
- package/dist/src/base/A-Errors/A-Errors.types.d.ts +0 -5
- package/dist/src/base/A-Errors/A-Errors.types.js.map +0 -1
- package/dist/src/base/A-Logger/A-Logger.component.d.ts +0 -31
- package/dist/src/base/A-Logger/A-Logger.component.js +0 -155
- package/dist/src/base/A-Logger/A-Logger.component.js.map +0 -1
- package/dist/src/base/A-Logger/A-Logger.types.js +0 -2
- package/dist/src/base/A-Logger/A-Logger.types.js.map +0 -1
- package/dist/src/base/A-Polyfill/A-Polyfill.component.d.ts +0 -5
- package/dist/src/base/A-Polyfill/A-Polyfill.component.js +0 -34
- package/dist/src/base/A-Polyfill/A-Polyfill.component.js.map +0 -1
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +0 -14
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js +0 -53
- package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js.map +0 -1
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.d.ts +0 -2
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js +0 -3
- package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.d.ts +0 -19
- package/dist/src/decorators/A-Connect/A-Connect.decorator.js +0 -31
- package/dist/src/decorators/A-Connect/A-Connect.decorator.js.map +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.d.ts +0 -1
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js +0 -3
- package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.d.ts +0 -1
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js +0 -8
- package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js.map +0 -1
- package/dist/src/decorators/A-Entity/A-Entity.decorator.types.d.ts +0 -14
- package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +0 -19
- package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +0 -81
- package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +0 -1
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +0 -96
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js +0 -3
- package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js.map +0 -1
- package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +0 -30
- package/dist/src/decorators/A-Inject/A-Inject.decorator.js +0 -47
- package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +0 -1
- package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +0 -48
- package/dist/src/decorators/A-Inject/A-Inject.decorator.types.js.map +0 -1
- package/dist/src/global/A-Channel/A-Channel.class.d.ts +0 -16
- package/dist/src/global/A-Channel/A-Channel.class.js +0 -59
- package/dist/src/global/A-Channel/A-Channel.class.js.map +0 -1
- package/dist/src/global/A-Channel/A-Channel.types.d.ts +0 -68
- package/dist/src/global/A-Channel/A-Channel.types.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.class.d.ts +0 -187
- package/dist/src/global/A-Command/A-Command.class.js +0 -349
- package/dist/src/global/A-Command/A-Command.class.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.constants.d.ts +0 -17
- package/dist/src/global/A-Command/A-Command.constants.js +0 -22
- package/dist/src/global/A-Command/A-Command.constants.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.meta.d.ts +0 -11
- package/dist/src/global/A-Command/A-Command.meta.js +0 -18
- package/dist/src/global/A-Command/A-Command.meta.js.map +0 -1
- package/dist/src/global/A-Command/A-Command.types.d.ts +0 -43
- package/dist/src/global/A-Command/A-Command.types.js +0 -10
- package/dist/src/global/A-Command/A-Command.types.js.map +0 -1
- package/dist/src/global/A-Command/context/A_Command.context.d.ts +0 -64
- package/dist/src/global/A-Command/context/A_Command.context.js +0 -85
- package/dist/src/global/A-Command/context/A_Command.context.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.class.d.ts +0 -104
- package/dist/src/global/A-Concept/A_Concept.class.js +0 -217
- package/dist/src/global/A-Concept/A_Concept.class.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.meta.js.map +0 -1
- package/dist/src/global/A-Concept/A_Concept.types.d.ts +0 -103
- package/dist/src/global/A-Concept/A_Concept.types.js +0 -28
- package/dist/src/global/A-Concept/A_Concept.types.js.map +0 -1
- package/dist/src/global/A-Feature/A-FeatureCaller.class.d.ts +0 -22
- package/dist/src/global/A-Feature/A-FeatureCaller.class.js +0 -26
- package/dist/src/global/A-Feature/A-FeatureCaller.class.js.map +0 -1
- package/dist/src/global/A-Scope/A-Scope.constants.d.ts +0 -2
- package/dist/src/global/A-Scope/A-Scope.constants.js +0 -11
- package/dist/src/global/A-Scope/A-Scope.constants.js.map +0 -1
- package/dist/src/helpers/StepsManager.class.js.map +0 -1
- package/dist/src/types/A_Module.types.d.ts +0 -17
- package/dist/src/types/A_Module.types.js +0 -22
- package/dist/src/types/A_Module.types.js.map +0 -1
- package/examples/entity/concept.ts +0 -68
- package/examples/entity/entities/Task.entity.ts +0 -110
- package/examples/entity/entities/User.entity.ts +0 -62
- package/examples/fe-be/channels/Test.channel.ts +0 -27
- package/examples/fe-be/components/BE-Controller.component.ts +0 -20
- package/examples/fe-be/components/FE.component.ts +0 -13
- package/examples/fe-be/containers/ServerApp.container.ts +0 -8
- package/examples/fe-be/containers/WebApp.container.ts +0 -13
- package/examples/multi-container/channels/Direct.channel.ts +0 -39
- package/examples/multi-container/concept.ts +0 -0
- package/examples/multi-container/containers/Command.container.ts +0 -41
- package/examples/multi-container/containers/Schedule.container.ts +0 -52
- package/examples/simple/components/A.component.ts +0 -71
- package/examples/simple/components/B.component.ts +0 -68
- package/examples/simple/concept.ts +0 -87
- package/examples/simple/containers/Main.container.ts +0 -88
- package/examples/simple/containers/Secondary.container.ts +0 -26
- package/examples/simple/context/Fragment_A.context.ts +0 -25
- package/examples/simple/context/Fragment_B.context.ts +0 -19
- package/examples/simple/entities/EntityA.entity.ts +0 -32
- package/examples/simple-http-server/components/http-error-handler.component.ts +0 -47
- package/examples/simple-http-server/components/http-request-handler.component.ts +0 -13
- package/examples/simple-http-server/concept.ts +0 -35
- package/examples/simple-http-server/containers/http-server.container.ts +0 -57
- package/examples/simple-http-server/contexts/http-request.context.ts +0 -59
- package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -0
- package/examples/simple-http-server/controllers/orders.controller.ts +0 -20
- package/examples/simple-http-server/controllers/users.controller.ts +0 -104
- package/examples/simple-http-server/test.ts +0 -290
- package/src/base/A-Config/A-Config.container.ts +0 -68
- package/src/base/A-Config/A-Config.context.ts +0 -114
- package/src/base/A-Config/A-Config.types.ts +0 -28
- package/src/base/A-Config/components/ConfigReader.component.ts +0 -68
- package/src/base/A-Config/components/ENVConfigReader.component.ts +0 -31
- package/src/base/A-Config/components/FileConfigReader.component.ts +0 -41
- package/src/base/A-Errors/A-Error.entity.ts +0 -10
- package/src/base/A-Errors/A-Errors.component.ts +0 -103
- package/src/base/A-Errors/A-Errors.context.ts +0 -90
- package/src/base/A-Errors/A-Errors.types.ts +0 -6
- package/src/base/A-Logger/A-Logger.component.ts +0 -192
- package/src/base/A-Logger/A-Logger.types.ts +0 -0
- package/src/base/A-Polyfill/A-Polyfill.component.ts +0 -18
- package/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.ts +0 -81
- package/src/decorators/A-Abstraction/A-Abstraction.decorator.types.ts +0 -21
- package/src/decorators/A-Connect/A-Connect.decorator.ts +0 -71
- package/src/decorators/A-Connect/A-Connect.decorator.types.ts +0 -6
- package/src/decorators/A-Entity/A-Entity-List.decorator.ts +0 -12
- package/src/decorators/A-Entity/A-Entity.decorator.types.ts +0 -18
- package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +0 -151
- package/src/decorators/A-Feature/A-Feature.decorator.types.ts +0 -142
- package/src/decorators/A-Inject/A-Inject.decorator.ts +0 -119
- package/src/decorators/A-Inject/A-Inject.decorator.types.ts +0 -85
- package/src/global/A-Channel/A-Channel.class.ts +0 -111
- package/src/global/A-Channel/A-Channel.types.ts +0 -114
- package/src/global/A-Command/A-Command.class.ts +0 -419
- package/src/global/A-Command/A-Command.constants.ts +0 -27
- package/src/global/A-Command/A-Command.meta.ts +0 -22
- package/src/global/A-Command/A-Command.types.ts +0 -73
- package/src/global/A-Command/context/A_Command.context.ts +0 -114
- package/src/global/A-Concept/A_Concept.class.ts +0 -298
- package/src/global/A-Concept/A_Concept.meta.ts +0 -32
- package/src/global/A-Concept/A_Concept.types.ts +0 -143
- package/src/global/A-Feature/A-FeatureCaller.class.ts +0 -38
- package/src/global/A-Scope/A-Scope.constants.ts +0 -9
- package/src/types/A_Module.types.ts +0 -23
- package/tests/A-Command.test.ts +0 -133
- package/tests/A-Config.test.ts +0 -172
- /package/dist/src/global/A-Concept/{A_Concept.meta.d.ts → A-Concept.meta.d.ts} +0 -0
- /package/dist/src/{base/A-Logger/A-Logger.types.d.ts → global/ASEID/ASEID.constants.d.ts} +0 -0
- /package/{examples/fe-be/concept.ts → src/global/ASEID/ASEID.constants.ts} +0 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.A_TypeGuards = void 0;
|
|
4
|
+
const A_Component_class_1 = require("../global/A-Component/A-Component.class");
|
|
5
|
+
const A_Component_meta_1 = require("../global/A-Component/A-Component.meta");
|
|
6
|
+
const A_Container_class_1 = require("../global/A-Container/A-Container.class");
|
|
7
|
+
const A_Container_meta_1 = require("../global/A-Container/A-Container.meta");
|
|
8
|
+
const A_Entity_class_1 = require("../global/A-Entity/A-Entity.class");
|
|
9
|
+
const A_Entity_meta_1 = require("../global/A-Entity/A-Entity.meta");
|
|
10
|
+
const A_Feature_class_1 = require("../global/A-Feature/A-Feature.class");
|
|
11
|
+
const A_Fragment_class_1 = require("../global/A-Fragment/A-Fragment.class");
|
|
12
|
+
const A_Scope_class_1 = require("../global/A-Scope/A-Scope.class");
|
|
13
|
+
const A_Caller_class_1 = require("../global/A-Caller/A_Caller.class");
|
|
14
|
+
const A_Error_class_1 = require("../global/A-Error/A_Error.class");
|
|
15
|
+
const A_Common_helper_1 = require("./A_Common.helper");
|
|
16
|
+
class A_TypeGuards {
|
|
17
|
+
// ===========================================================================
|
|
18
|
+
// ============================= BASE Type Guards ============================
|
|
19
|
+
// ===========================================================================
|
|
20
|
+
/**
|
|
21
|
+
* Check if value is a string
|
|
22
|
+
*
|
|
23
|
+
* @param value
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
static isString(value) {
|
|
27
|
+
return typeof value === 'string' || value instanceof String;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Check if value is a number
|
|
31
|
+
*
|
|
32
|
+
* @param value
|
|
33
|
+
* @returns
|
|
34
|
+
*/
|
|
35
|
+
static isNumber(value) {
|
|
36
|
+
return typeof value === 'number' && isFinite(value);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if value is a boolean
|
|
40
|
+
*
|
|
41
|
+
* @param value
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
static isBoolean(value) {
|
|
45
|
+
return typeof value === 'boolean';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if value is an array
|
|
49
|
+
*
|
|
50
|
+
* @param value
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
static isArray(value) {
|
|
54
|
+
return Array.isArray(value);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if value is an object
|
|
58
|
+
*
|
|
59
|
+
* @param value
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
static isObject(value) {
|
|
63
|
+
return value && typeof value === 'object' && !Array.isArray(value);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check if value is a function
|
|
67
|
+
*
|
|
68
|
+
* @param value
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
71
|
+
static isFunction(value) {
|
|
72
|
+
return typeof value === 'function';
|
|
73
|
+
}
|
|
74
|
+
static isUndefined(value) {
|
|
75
|
+
return typeof value === 'undefined';
|
|
76
|
+
}
|
|
77
|
+
static isRegExp(value) {
|
|
78
|
+
return value instanceof RegExp;
|
|
79
|
+
}
|
|
80
|
+
// ===========================================================================
|
|
81
|
+
// ==========================A-Concept Type Guards ===========================
|
|
82
|
+
// ===========================================================================
|
|
83
|
+
/**
|
|
84
|
+
* Type guard to check if the constructor is of type A_Container
|
|
85
|
+
*
|
|
86
|
+
* @param ctor
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
static isContainerConstructor(ctor) {
|
|
90
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Container_class_1.A_Container);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Type guard to check if the constructor is of type A_Component
|
|
94
|
+
*
|
|
95
|
+
* @param ctor
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
static isComponentConstructor(ctor) {
|
|
99
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Component_class_1.A_Component);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Type guard to check if the constructor is of type A_Fragment
|
|
103
|
+
*
|
|
104
|
+
* @param ctor
|
|
105
|
+
* @returns
|
|
106
|
+
*/
|
|
107
|
+
static isFragmentConstructor(ctor) {
|
|
108
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Fragment_class_1.A_Fragment);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Type guard to check if the constructor is of type A_Entity
|
|
112
|
+
*
|
|
113
|
+
* @param ctor
|
|
114
|
+
* @returns
|
|
115
|
+
*/
|
|
116
|
+
static isEntityConstructor(ctor) {
|
|
117
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Entity_class_1.A_Entity);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Type guard to check if the constructor is of type A_Scope
|
|
121
|
+
*
|
|
122
|
+
* @param ctor
|
|
123
|
+
* @returns
|
|
124
|
+
*/
|
|
125
|
+
static isScopeConstructor(ctor) {
|
|
126
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Scope_class_1.A_Scope);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Type guard to check if the constructor is of type A_Scope
|
|
130
|
+
*
|
|
131
|
+
* @param ctor
|
|
132
|
+
* @returns
|
|
133
|
+
*/
|
|
134
|
+
static isErrorConstructor(ctor) {
|
|
135
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Error_class_1.A_Error);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Type guard to check if the constructor is of type A_Feature
|
|
139
|
+
*
|
|
140
|
+
* @param ctor
|
|
141
|
+
* @returns
|
|
142
|
+
*/
|
|
143
|
+
static isFeatureConstructor(ctor) {
|
|
144
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Feature_class_1.A_Feature);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Type guard to check if the constructor is of type A_Caller
|
|
148
|
+
*
|
|
149
|
+
* @param ctor
|
|
150
|
+
* @returns
|
|
151
|
+
*/
|
|
152
|
+
static isCallerConstructor(ctor) {
|
|
153
|
+
return typeof ctor === 'function' && A_Common_helper_1.A_CommonHelper.isInheritedFrom(ctor, A_Caller_class_1.A_Caller);
|
|
154
|
+
}
|
|
155
|
+
// ----------------------------------------------------------------------------
|
|
156
|
+
// Instance type guards
|
|
157
|
+
// ----------------------------------------------------------------------------
|
|
158
|
+
/**
|
|
159
|
+
* Type guard to check if the instance is of type A_Container
|
|
160
|
+
*
|
|
161
|
+
* @param instance
|
|
162
|
+
* @returns
|
|
163
|
+
*/
|
|
164
|
+
static isContainerInstance(instance) {
|
|
165
|
+
return instance instanceof A_Container_class_1.A_Container;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Type guard to check if the instance is of type A_Component
|
|
169
|
+
*
|
|
170
|
+
* @param instance
|
|
171
|
+
* @returns
|
|
172
|
+
*/
|
|
173
|
+
static isComponentInstance(instance) {
|
|
174
|
+
return instance instanceof A_Component_class_1.A_Component;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Type guard to check if the instance is of type A_Feature
|
|
178
|
+
*
|
|
179
|
+
* @param instance
|
|
180
|
+
* @returns
|
|
181
|
+
*/
|
|
182
|
+
static isFeatureInstance(instance) {
|
|
183
|
+
return instance instanceof A_Feature_class_1.A_Feature;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Type guard to check if the instance is of type A_Fragment
|
|
187
|
+
*
|
|
188
|
+
* @param instance
|
|
189
|
+
* @returns
|
|
190
|
+
*/
|
|
191
|
+
static isFragmentInstance(instance) {
|
|
192
|
+
return instance instanceof A_Fragment_class_1.A_Fragment;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Type guard to check if the instance is of type A_Entity
|
|
196
|
+
*
|
|
197
|
+
* @param instance
|
|
198
|
+
* @returns
|
|
199
|
+
*/
|
|
200
|
+
static isEntityInstance(instance) {
|
|
201
|
+
return instance instanceof A_Entity_class_1.A_Entity;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Type guard to check if the instance is of type A_Scope
|
|
205
|
+
*
|
|
206
|
+
* @param instance
|
|
207
|
+
* @returns
|
|
208
|
+
*/
|
|
209
|
+
static isScopeInstance(instance) {
|
|
210
|
+
return instance instanceof A_Scope_class_1.A_Scope;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Type guard to check if the instance is of type A_Error
|
|
214
|
+
*
|
|
215
|
+
* @param instance
|
|
216
|
+
* @returns
|
|
217
|
+
*/
|
|
218
|
+
static isErrorInstance(instance) {
|
|
219
|
+
return instance instanceof A_Error_class_1.A_Error;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Type guard to check if the instance is of type A_ComponentMeta
|
|
223
|
+
*
|
|
224
|
+
* @param instance
|
|
225
|
+
* @returns
|
|
226
|
+
*/
|
|
227
|
+
static isComponentMetaInstance(instance) {
|
|
228
|
+
return instance instanceof A_Component_meta_1.A_ComponentMeta;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Type guard to check if the instance is of type A_ContainerMeta
|
|
232
|
+
*
|
|
233
|
+
* @param instance
|
|
234
|
+
* @returns
|
|
235
|
+
*/
|
|
236
|
+
static isContainerMetaInstance(instance) {
|
|
237
|
+
return instance instanceof A_Container_meta_1.A_ContainerMeta;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Type guard to check if the instance is of type A_EntityMeta
|
|
241
|
+
*
|
|
242
|
+
* @param instance
|
|
243
|
+
* @returns
|
|
244
|
+
*/
|
|
245
|
+
static isEntityMetaInstance(instance) {
|
|
246
|
+
return instance instanceof A_Entity_meta_1.A_EntityMeta;
|
|
247
|
+
}
|
|
248
|
+
// ==========================================================================
|
|
249
|
+
// ========================= SPECIAL Type Guards =============================
|
|
250
|
+
// ===========================================================================
|
|
251
|
+
static isConstructorAvailableForAbstraction(target) {
|
|
252
|
+
return A_TypeGuards.isContainerConstructor(target)
|
|
253
|
+
|| A_TypeGuards.isComponentConstructor(target);
|
|
254
|
+
}
|
|
255
|
+
static isTargetAvailableForInjection(target) {
|
|
256
|
+
return A_TypeGuards.isComponentConstructor(target)
|
|
257
|
+
|| A_TypeGuards.isComponentInstance(target)
|
|
258
|
+
|| A_TypeGuards.isContainerInstance(target);
|
|
259
|
+
}
|
|
260
|
+
static isAllowedForFeatureCall(param) {
|
|
261
|
+
return A_TypeGuards.isContainerInstance(param)
|
|
262
|
+
|| A_TypeGuards.isComponentInstance(param)
|
|
263
|
+
|| A_TypeGuards.isEntityInstance(param);
|
|
264
|
+
}
|
|
265
|
+
static isAllowedForFeatureDefinition(param) {
|
|
266
|
+
return A_TypeGuards.isContainerInstance(param)
|
|
267
|
+
|| A_TypeGuards.isComponentInstance(param)
|
|
268
|
+
|| A_TypeGuards.isEntityInstance(param);
|
|
269
|
+
}
|
|
270
|
+
static isAllowedForFeatureExtension(param) {
|
|
271
|
+
return A_TypeGuards.isComponentInstance(param);
|
|
272
|
+
}
|
|
273
|
+
static isAllowedForAbstractionDefinition(param) {
|
|
274
|
+
return A_TypeGuards.isContainerInstance(param)
|
|
275
|
+
|| A_TypeGuards.isComponentInstance(param);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Allows to check if the provided param is of constructor type.
|
|
279
|
+
*
|
|
280
|
+
* @param param
|
|
281
|
+
* @returns
|
|
282
|
+
*/
|
|
283
|
+
static isConstructorType(param) {
|
|
284
|
+
return !!param && A_TypeGuards.isObject(param) && !(param instanceof Error) && "message" in param;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.A_TypeGuards = A_TypeGuards;
|
|
288
|
+
//# sourceMappingURL=A_TypeGuards.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A_TypeGuards.helper.js","sourceRoot":"","sources":["../../../src/helpers/A_TypeGuards.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
type Decrement = [never, 0, 1, 2, 3, 4, 5];
|
|
2
|
+
export type A_TYPES__DeepPartial<T, D extends number = 5> = {
|
|
3
|
+
[P in keyof Required<T>]?: [
|
|
4
|
+
D
|
|
5
|
+
] extends [never] ? any : Required<T>[P] extends Array<infer U> ? Array<A_TYPES__DeepPartial<U, Decrement[D]>> : Required<T>[P] extends Function ? Required<T>[P] : Required<T>[P] extends object ? A_TYPES__DeepPartial<T[P], Decrement[D]> : T[P];
|
|
6
|
+
};
|
|
7
|
+
export type A_TYPES__ObjectKeyEnum<T, E> = {
|
|
8
|
+
[P in keyof Required<T>]?: T[P] extends object ? A_TYPES__ObjectKeyEnum<T[P], E> : E;
|
|
9
|
+
};
|
|
10
|
+
export type A_TYPES__Dictionary<T> = {
|
|
11
|
+
[Key: string]: T;
|
|
12
|
+
};
|
|
13
|
+
export type A_TYPES__NonObjectPaths<T> = T extends object ? {
|
|
14
|
+
[K in keyof T]: `${Exclude<K, symbol>}${""}`;
|
|
15
|
+
}[keyof T] : never;
|
|
16
|
+
export type A_TYPES__Paths<T, D extends number = 5> = [D] extends [never] ? never : (T extends object ? {
|
|
17
|
+
[K in keyof T]: `${Exclude<K, symbol>}${"" | `.${A_TYPES__Paths<T[K], Decrement[D]>}`}`;
|
|
18
|
+
}[keyof T] : never);
|
|
19
|
+
export type A_TYPES__UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
20
|
+
export type A_TYPES__PathsToObject<_Obj, T extends readonly string[]> = A_TYPES__UnionToIntersection<{
|
|
21
|
+
[K in keyof T]: T[K] extends `${infer Key}.${infer Rest}` ? {
|
|
22
|
+
[P in Key]: P extends keyof _Obj ? A_TYPES__PathsToObject<Required<_Obj>[P], [Rest]> : any;
|
|
23
|
+
} : {
|
|
24
|
+
[P in T[K]]: `${T[K]}` extends keyof Required<_Obj> ? Required<_Obj>[`${T[K]}`] : never;
|
|
25
|
+
};
|
|
26
|
+
}[number]>;
|
|
27
|
+
export type A_TYPES__Required<T, arr extends (A_TYPES__Paths<T>)[] = (A_TYPES__Paths<T>)[]> = A_TYPES__PathsToObject<T, arr> & T;
|
|
28
|
+
export type A_TYPES__ExtractNested<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? {
|
|
29
|
+
[Key in K]: A_TYPES__ExtractNested<T[K], Rest>;
|
|
30
|
+
} : never : P extends keyof T ? {
|
|
31
|
+
[Key in P]: T[P];
|
|
32
|
+
} : never;
|
|
33
|
+
export type A_TYPES__ExtractProperties<T, P extends A_TYPES__Paths<T>[]> = A_TYPES__UnionToIntersection<{
|
|
34
|
+
[K in keyof P]: P[K] extends string ? A_TYPES__ExtractNested<T, P[K]> : never;
|
|
35
|
+
}[number]>;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A_Common.types.js","sourceRoot":"","sources":["../../../src/types/A_Common.types.ts"],"names":[],"mappings":""}
|
package/index.ts
CHANGED
|
@@ -5,14 +5,11 @@ export * from './src/constants/env.constants';
|
|
|
5
5
|
|
|
6
6
|
// ---------------------- Major Components ----------------------
|
|
7
7
|
export { A_Context } from './src/global/A-Context/A-Context.class';
|
|
8
|
-
|
|
8
|
+
export * from './src/global/A-Context/A-Context.types';
|
|
9
9
|
|
|
10
|
-
export {
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
export { A_Concept } from './src/global/A-Concept/A_Concept.class';
|
|
14
|
-
export { A_ConceptMeta } from './src/global/A-Concept/A_Concept.meta';
|
|
15
|
-
export * from './src/global/A-Concept/A_Concept.types';
|
|
10
|
+
export { A_Concept } from './src/global/A-Concept/A-Concept.class';
|
|
11
|
+
export { A_ConceptMeta } from './src/global/A-Concept/A-Concept.meta';
|
|
12
|
+
export * from './src/global/A-Concept/A-Concept.types';
|
|
16
13
|
|
|
17
14
|
export { A_Container } from './src/global/A-Container/A-Container.class';
|
|
18
15
|
export { A_ContainerMeta } from './src/global/A-Container/A-Container.meta';
|
|
@@ -27,21 +24,35 @@ export * from './src/global/A-Entity/A-Entity.types';
|
|
|
27
24
|
|
|
28
25
|
|
|
29
26
|
// ---------------------- Common Components ----------------------
|
|
30
|
-
export {
|
|
31
|
-
export
|
|
27
|
+
export { A_Abstraction } from './src/global/A-Abstraction/A-Abstraction.class';
|
|
28
|
+
export { A_AbstractionError } from './src/global/A-Abstraction/A-Abstraction.error';
|
|
29
|
+
export * from './src/global/A-Abstraction/A-Abstraction.types';
|
|
30
|
+
|
|
31
|
+
export { A_Caller } from './src/global/A-Caller/A_Caller.class';
|
|
32
|
+
export { A_CallerError } from './src/global/A-Caller/A_Caller.error';
|
|
33
|
+
export * from './src/global/A-Caller/A_Caller.types';
|
|
34
|
+
|
|
35
|
+
export { A_Error } from './src/global/A-Error/A_Error.class';
|
|
36
|
+
export * from './src/global/A-Error/A_Error.types';
|
|
37
|
+
|
|
38
|
+
export { ASEID } from './src/global/ASEID/ASEID.class';
|
|
39
|
+
export { ASEID_Error } from './src/global/ASEID/ASEID.error';
|
|
40
|
+
export * from './src/global/ASEID/ASEID.types';
|
|
32
41
|
|
|
33
42
|
export { A_Feature } from './src/global/A-Feature/A-Feature.class';
|
|
34
|
-
export {
|
|
43
|
+
export { A_FeatureError } from './src/global/A-Feature/A-Feature.error';
|
|
35
44
|
export * from './src/global/A-Feature/A-Feature.types';
|
|
36
45
|
|
|
37
46
|
export { A_Stage } from './src/global/A-Stage/A-Stage.class';
|
|
47
|
+
export { A_StageError } from './src/global/A-Stage/A-Stage.error';
|
|
38
48
|
export * from './src/global/A-Stage/A-Stage.types';
|
|
39
49
|
|
|
40
50
|
export { A_Scope } from './src/global/A-Scope/A-Scope.class';
|
|
51
|
+
export { A_ScopeError } from './src/global/A-Scope/A-Scope.error';
|
|
41
52
|
export * from './src/global/A-Scope/A-Scope.types';
|
|
42
53
|
|
|
43
54
|
export { A_Meta } from './src/global/A-Meta/A-Meta.class';
|
|
44
|
-
|
|
55
|
+
export * from './src/global/A-Meta/A-Meta.types';
|
|
45
56
|
|
|
46
57
|
export { A_Fragment } from './src/global/A-Fragment/A-Fragment.class';
|
|
47
58
|
export * from './src/global/A-Fragment/A-Fragment.types';
|
|
@@ -50,43 +61,8 @@ export * from './src/global/A-Fragment/A-Fragment.types';
|
|
|
50
61
|
// =================================================================================================
|
|
51
62
|
// =============================== Export Decorators ============================================
|
|
52
63
|
// =================================================================================================
|
|
53
|
-
|
|
54
|
-
export
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
export {
|
|
58
|
-
export { A_Feature_Extend } from './src/decorators/A-Feature/A-Feature-Extend.decorator';
|
|
59
|
-
export * from './src/decorators/A-Feature/A-Feature.decorator.types';
|
|
60
|
-
|
|
61
|
-
export { A_Abstraction_Extend } from './src/decorators/A-Abstraction/A-Abstraction-Extend.decorator';
|
|
62
|
-
export * from './src/decorators/A-Abstraction/A-Abstraction.decorator.types';
|
|
63
|
-
|
|
64
|
-
export { A_Connect } from './src/decorators/A-Connect/A-Connect.decorator';
|
|
65
|
-
export * from './src/decorators/A-Connect/A-Connect.decorator.types';
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// =================================================================================================
|
|
69
|
-
// =============================== Export Base Entities ============================================
|
|
70
|
-
// =================================================================================================
|
|
71
|
-
export { A_ConfigLoader } from './src/base/A-Config/A-Config.container';
|
|
72
|
-
export { A_Config } from './src/base/A-Config/A-Config.context';
|
|
73
|
-
export * from './src/base/A-Config/A-Config.types';
|
|
74
|
-
export { ConfigReader } from './src/base/A-Config/components/ConfigReader.component';
|
|
75
|
-
export { ENVConfigReader } from './src/base/A-Config/components/ENVConfigReader.component';
|
|
76
|
-
export { FileConfigReader } from './src/base/A-Config/components/FileConfigReader.component';
|
|
77
|
-
export * from './src/base/A-Config/A-Config.types';
|
|
78
|
-
|
|
79
|
-
export * from './src/base/A-Logger/A-Logger.component';
|
|
80
|
-
// export * from './src/base/A-Logger/A-Logger.types';
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
export { A_Command } from './src/global/A-Command/A-Command.class';
|
|
85
|
-
export * from './src/global/A-Command/A-Command.types';
|
|
86
|
-
export * from './src/global/A-Command/A-Command.constants';
|
|
87
|
-
export { A_CommandContext } from './src/global/A-Command/context/A_Command.context';
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
export { A_ErrorsManager } from './src/base/A-Errors/A-Errors.component';
|
|
91
|
-
export { A_Errors } from './src/base/A-Errors/A-Errors.context';
|
|
92
|
-
export * from './src/base/A-Errors/A-Errors.types';
|
|
64
|
+
export { A_Inject } from './src/global/A-Inject/A-Inject.decorator';
|
|
65
|
+
export * from './src/global/A-Inject/A-Inject.types';
|
|
66
|
+
export { A_Feature_Define } from './src/global/A-Feature/A-Feature-Define.decorator';
|
|
67
|
+
export { A_Feature_Extend } from './src/global/A-Feature/A-Feature-Extend.decorator';
|
|
68
|
+
export { A_Abstraction_Extend } from './src/global/A-Abstraction/A-Abstraction-Extend.decorator';
|
package/jest.config.ts
CHANGED
|
@@ -14,6 +14,7 @@ const config: Config.InitialOptions = {
|
|
|
14
14
|
"@adaas/a-concept/helpers/(.*)": ["<rootDir>/src/helpers/$1"],
|
|
15
15
|
"@adaas/a-concept/decorators/(.*)": ["<rootDir>/src/decorators/$1"],
|
|
16
16
|
"@adaas/a-concept/base/(.*)": ["<rootDir>/src/base/$1"],
|
|
17
|
+
"@adaas/a-concept/utils/(.*)": ["<rootDir>/src/utils/$1"]
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaas/a-concept",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.2",
|
|
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,6 @@
|
|
|
51
51
|
},
|
|
52
52
|
"homepage": "https://github.com/ADAAS-org/adaas-adf-auth#readme",
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@adaas/a-utils": "^0.0.9",
|
|
55
54
|
"@types/node": "^20.10.0"
|
|
56
55
|
},
|
|
57
56
|
"devDependencies": {
|
|
@@ -5,15 +5,21 @@ export const A_CONSTANTS__DEFAULT_ENV_VARIABLES = {
|
|
|
5
5
|
// These environment variables are used by A-Concept core to configure the application
|
|
6
6
|
// ----------------------------------------------------------
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Name of the application
|
|
9
|
+
*
|
|
10
|
+
* DEFAULT value is 'a-concept'
|
|
11
|
+
*
|
|
9
12
|
* [!] Provided name will be used for all aseids in the application by default
|
|
10
13
|
*/
|
|
11
|
-
|
|
14
|
+
A_CONCEPT_NAME: 'A_CONCEPT_NAME',
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
16
|
+
* Root scope of the application
|
|
17
|
+
*
|
|
18
|
+
* DEFAULT value is 'root'
|
|
19
|
+
*
|
|
14
20
|
* [!] Provided name will be used for all aseids in the application by default
|
|
15
21
|
*/
|
|
16
|
-
|
|
22
|
+
A_CONCEPT_ROOT_SCOPE: 'A_CONCEPT_ROOT_SCOPE',
|
|
17
23
|
/**
|
|
18
24
|
* Environment of the application e.g. development, production, staging
|
|
19
25
|
*/
|
|
@@ -23,10 +29,10 @@ export const A_CONSTANTS__DEFAULT_ENV_VARIABLES = {
|
|
|
23
29
|
* [!] Automatically set by A-Concept when the application starts
|
|
24
30
|
*/
|
|
25
31
|
A_CONCEPT_ROOT_FOLDER: 'A_CONCEPT_ROOT_FOLDER',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
/**
|
|
33
|
+
* Allows to define a default error description for errors thrown without a description
|
|
34
|
+
*/
|
|
35
|
+
A_ERROR_DEFAULT_DESCRIPTION: 'A_ERROR_DEFAULT_DESCRIPTION',
|
|
30
36
|
} as const
|
|
31
37
|
|
|
32
38
|
|
|
@@ -35,10 +41,11 @@ export type A_TYPES__ConceptENVVariables = (typeof A_CONSTANTS__DEFAULT_ENV_VARI
|
|
|
35
41
|
|
|
36
42
|
|
|
37
43
|
export const A_CONSTANTS__DEFAULT_ENV_VARIABLES_ARRAY = [
|
|
38
|
-
A_CONSTANTS__DEFAULT_ENV_VARIABLES.
|
|
44
|
+
A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_NAME,
|
|
45
|
+
A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_ROOT_SCOPE,
|
|
39
46
|
A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_ENVIRONMENT,
|
|
40
47
|
A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_CONCEPT_ROOT_FOLDER,
|
|
41
|
-
|
|
42
|
-
A_CONSTANTS__DEFAULT_ENV_VARIABLES.
|
|
48
|
+
|
|
49
|
+
A_CONSTANTS__DEFAULT_ENV_VARIABLES.A_ERROR_DEFAULT_DESCRIPTION,
|
|
43
50
|
] as const;
|
|
44
51
|
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {
|
|
2
|
+
A_TYPES__AbstractionDecoratorConfig,
|
|
3
|
+
A_TYPES__AbstractionDecoratorDescriptor
|
|
4
|
+
} from "./A-Abstraction.types";
|
|
5
|
+
import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
|
|
6
|
+
import { A_Context } from "@adaas/a-concept/global/A-Context/A-Context.class";
|
|
7
|
+
import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
|
|
8
|
+
import { A_ContainerMeta } from "@adaas/a-concept/global/A-Container/A-Container.meta";
|
|
9
|
+
import { A_ComponentMeta } from "@adaas/a-concept/global/A-Component/A-Component.meta";
|
|
10
|
+
import { A_Meta } from "@adaas/a-concept/global/A-Meta/A-Meta.class";
|
|
11
|
+
import { A_TYPES__ConceptAbstractions } from "@adaas/a-concept/global/A-Concept/A-Concept.constants";
|
|
12
|
+
import { A_TYPES__ContainerMetaKey } from "@adaas/a-concept/global/A-Container/A-Container.constants";
|
|
13
|
+
import { A_TYPES__ComponentMetaKey } from "@adaas/a-concept/global/A-Component/A-Component.constants";
|
|
14
|
+
import { A_TYPES__ConceptAbstraction } from "@adaas/a-concept/global/A-Concept/A-Concept.types";
|
|
15
|
+
import { A_AbstractionError } from "./A-Abstraction.error";
|
|
16
|
+
import { A_TypeGuards } from "@adaas/a-concept/helpers/A_TypeGuards.helper";
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A-Abstraction Extend decorator allows to extends behavior of each concept abstraction execution.
|
|
21
|
+
* In case some components or containers requires to extend the behavior of the abstraction like 'start', 'build' or 'deploy'
|
|
22
|
+
* for example, this decorator allows to do so.
|
|
23
|
+
*
|
|
24
|
+
* @param name - abstraction name
|
|
25
|
+
* @param config - configuration of the abstraction extension
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
export function A_Abstraction_Extend(
|
|
29
|
+
/**
|
|
30
|
+
* Name of the Concept Abstraction to extend
|
|
31
|
+
*/
|
|
32
|
+
name: A_TYPES__ConceptAbstractions,
|
|
33
|
+
/**
|
|
34
|
+
* Configuration of the Abstraction Extension
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
37
|
+
config: Partial<A_TYPES__AbstractionDecoratorConfig> = {}
|
|
38
|
+
) {
|
|
39
|
+
return function (
|
|
40
|
+
target: A_Container | A_Component,
|
|
41
|
+
propertyKey: string,
|
|
42
|
+
descriptor: A_TYPES__AbstractionDecoratorDescriptor
|
|
43
|
+
) {
|
|
44
|
+
// for error messages
|
|
45
|
+
const componentName = (target as any)?.constructor?.name || String(target) || 'UnknownComponent';
|
|
46
|
+
|
|
47
|
+
if (!name)
|
|
48
|
+
throw new A_AbstractionError(
|
|
49
|
+
A_AbstractionError.AbstractionExtensionError,
|
|
50
|
+
`Abstraction name must be provided to extend abstraction for '${componentName}'.`,
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
// Only Containers and Components can extend Concept Abstractions
|
|
54
|
+
if (!A_TypeGuards.isConstructorAvailableForAbstraction(target)) {
|
|
55
|
+
throw new A_AbstractionError(
|
|
56
|
+
A_AbstractionError.AbstractionExtensionError,
|
|
57
|
+
`Unable to extend Abstraction '${name}' for '${componentName}'. Only A-Containers and A-Components can extend Abstractions.`,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
let metaKey;
|
|
62
|
+
const meta: A_ContainerMeta | A_ComponentMeta = A_Context.meta(target);
|
|
63
|
+
|
|
64
|
+
switch (true) {
|
|
65
|
+
case A_TypeGuards.isContainerConstructor(target):
|
|
66
|
+
metaKey = A_TYPES__ContainerMetaKey.ABSTRACTIONS
|
|
67
|
+
break;
|
|
68
|
+
case A_TypeGuards.isComponentConstructor(target):
|
|
69
|
+
metaKey = A_TYPES__ComponentMetaKey.ABSTRACTIONS
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Get the existed metadata or create a new one
|
|
74
|
+
const existedMeta: A_Meta<{
|
|
75
|
+
[Key: string]: A_TYPES__ConceptAbstraction[];
|
|
76
|
+
}> = meta.get(metaKey) || new A_Meta();
|
|
77
|
+
|
|
78
|
+
// Set the metadata of the method to define a custom Stage with name
|
|
79
|
+
const existedMetaValue = existedMeta.get(name) || [];
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
// Add the new method to the metadata
|
|
83
|
+
existedMetaValue.push({
|
|
84
|
+
name,
|
|
85
|
+
handler: propertyKey,
|
|
86
|
+
before: config.before || [],
|
|
87
|
+
after: config.after || [],
|
|
88
|
+
behavior: config.behavior || 'sync'
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Set the metadata of the method to define a custom Feature with name
|
|
92
|
+
existedMeta.set(name, existedMetaValue);
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
// Update the metadata of the container with the new Stage definition
|
|
96
|
+
A_Context
|
|
97
|
+
.meta(target)
|
|
98
|
+
.set(
|
|
99
|
+
metaKey,
|
|
100
|
+
existedMeta
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
}
|