@adaas/are 0.0.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/.conf/tsconfig.base.json +110 -0
- package/.conf/tsconfig.browser.json +43 -0
- package/.conf/tsconfig.node.json +47 -0
- package/.nvmrc +1 -0
- package/LICENSE +22 -0
- package/README.md +2 -0
- package/dist/browser/index.d.mts +1134 -0
- package/dist/browser/index.mjs +2624 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/node/chunk-EQQGB2QZ.mjs +15 -0
- package/dist/node/chunk-EQQGB2QZ.mjs.map +1 -0
- package/dist/node/engines/html/AreHTML.compiler.d.mts +114 -0
- package/dist/node/engines/html/AreHTML.compiler.d.ts +114 -0
- package/dist/node/engines/html/AreHTML.compiler.js +408 -0
- package/dist/node/engines/html/AreHTML.compiler.js.map +1 -0
- package/dist/node/engines/html/AreHTML.compiler.mjs +398 -0
- package/dist/node/engines/html/AreHTML.compiler.mjs.map +1 -0
- package/dist/node/engines/html/AreHTML.engine.d.mts +36 -0
- package/dist/node/engines/html/AreHTML.engine.d.ts +36 -0
- package/dist/node/engines/html/AreHTML.engine.js +122 -0
- package/dist/node/engines/html/AreHTML.engine.js.map +1 -0
- package/dist/node/engines/html/AreHTML.engine.mjs +112 -0
- package/dist/node/engines/html/AreHTML.engine.mjs.map +1 -0
- package/dist/node/engines/html/index.d.mts +26 -0
- package/dist/node/engines/html/index.d.ts +26 -0
- package/dist/node/engines/html/index.js +17 -0
- package/dist/node/engines/html/index.js.map +1 -0
- package/dist/node/engines/html/index.mjs +5 -0
- package/dist/node/engines/html/index.mjs.map +1 -0
- package/dist/node/engines/json/AreJSON.compiler.d.mts +21 -0
- package/dist/node/engines/json/AreJSON.compiler.d.ts +21 -0
- package/dist/node/engines/json/AreJSON.compiler.js +24 -0
- package/dist/node/engines/json/AreJSON.compiler.js.map +1 -0
- package/dist/node/engines/json/AreJSON.compiler.mjs +17 -0
- package/dist/node/engines/json/AreJSON.compiler.mjs.map +1 -0
- package/dist/node/index-BD-6iOuR.d.ts +238 -0
- package/dist/node/index-DMXWCL7R.d.mts +238 -0
- package/dist/node/index.d.mts +40 -0
- package/dist/node/index.d.ts +40 -0
- package/dist/node/index.js +105 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/index.mjs +16 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.container.d.mts +22 -0
- package/dist/node/lib/AreApp/AreApp.container.d.ts +22 -0
- package/dist/node/lib/AreApp/AreApp.container.js +60 -0
- package/dist/node/lib/AreApp/AreApp.container.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.container.mjs +48 -0
- package/dist/node/lib/AreApp/AreApp.container.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.env.d.mts +2 -0
- package/dist/node/lib/AreApp/AreApp.env.d.ts +2 -0
- package/dist/node/lib/AreApp/AreApp.env.js +4 -0
- package/dist/node/lib/AreApp/AreApp.env.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.env.mjs +3 -0
- package/dist/node/lib/AreApp/AreApp.env.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.error.d.mts +6 -0
- package/dist/node/lib/AreApp/AreApp.error.d.ts +6 -0
- package/dist/node/lib/AreApp/AreApp.error.js +10 -0
- package/dist/node/lib/AreApp/AreApp.error.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.error.mjs +9 -0
- package/dist/node/lib/AreApp/AreApp.error.mjs.map +1 -0
- package/dist/node/lib/AreApp/AreApp.types.d.mts +2 -0
- package/dist/node/lib/AreApp/AreApp.types.d.ts +2 -0
- package/dist/node/lib/AreApp/AreApp.types.js +4 -0
- package/dist/node/lib/AreApp/AreApp.types.js.map +1 -0
- package/dist/node/lib/AreApp/AreApp.types.mjs +3 -0
- package/dist/node/lib/AreApp/AreApp.types.mjs.map +1 -0
- package/dist/node/lib/AreApp/index.d.mts +17 -0
- package/dist/node/lib/AreApp/index.d.ts +17 -0
- package/dist/node/lib/AreApp/index.js +24 -0
- package/dist/node/lib/AreApp/index.js.map +1 -0
- package/dist/node/lib/AreApp/index.mjs +6 -0
- package/dist/node/lib/AreApp/index.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.mts +238 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.d.ts +238 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.js +647 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs +637 -0
- package/dist/node/lib/AreCompiler/AreCompiler.component.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.d.mts +8 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.d.ts +8 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.js +12 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.mjs +11 -0
- package/dist/node/lib/AreCompiler/AreCompiler.error.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.d.mts +2 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.d.ts +2 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.js +4 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.js.map +1 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.mjs +3 -0
- package/dist/node/lib/AreCompiler/AreCompiler.types.mjs.map +1 -0
- package/dist/node/lib/AreCompiler/index.d.mts +17 -0
- package/dist/node/lib/AreCompiler/index.d.ts +17 -0
- package/dist/node/lib/AreCompiler/index.js +24 -0
- package/dist/node/lib/AreCompiler/index.js.map +1 -0
- package/dist/node/lib/AreCompiler/index.mjs +6 -0
- package/dist/node/lib/AreCompiler/index.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.component.d.mts +45 -0
- package/dist/node/lib/AreComponent/Are.component.d.ts +45 -0
- package/dist/node/lib/AreComponent/Are.component.js +165 -0
- package/dist/node/lib/AreComponent/Are.component.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.component.mjs +156 -0
- package/dist/node/lib/AreComponent/Are.component.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.constants.d.mts +32 -0
- package/dist/node/lib/AreComponent/Are.constants.d.ts +32 -0
- package/dist/node/lib/AreComponent/Are.constants.js +27 -0
- package/dist/node/lib/AreComponent/Are.constants.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.constants.mjs +27 -0
- package/dist/node/lib/AreComponent/Are.constants.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.context.d.mts +22 -0
- package/dist/node/lib/AreComponent/Are.context.d.ts +22 -0
- package/dist/node/lib/AreComponent/Are.context.js +45 -0
- package/dist/node/lib/AreComponent/Are.context.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.context.mjs +38 -0
- package/dist/node/lib/AreComponent/Are.context.mjs.map +1 -0
- package/dist/node/lib/AreComponent/Are.types.d.mts +2 -0
- package/dist/node/lib/AreComponent/Are.types.d.ts +2 -0
- package/dist/node/lib/AreComponent/Are.types.js +4 -0
- package/dist/node/lib/AreComponent/Are.types.js.map +1 -0
- package/dist/node/lib/AreComponent/Are.types.mjs +3 -0
- package/dist/node/lib/AreComponent/Are.types.mjs.map +1 -0
- package/dist/node/lib/AreComponent/index.d.mts +11 -0
- package/dist/node/lib/AreComponent/index.d.ts +11 -0
- package/dist/node/lib/AreComponent/index.js +31 -0
- package/dist/node/lib/AreComponent/index.js.map +1 -0
- package/dist/node/lib/AreComponent/index.mjs +7 -0
- package/dist/node/lib/AreComponent/index.mjs.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.context.d.mts +8 -0
- package/dist/node/lib/AreEvent/AreEvent.context.d.ts +8 -0
- package/dist/node/lib/AreEvent/AreEvent.context.js +34 -0
- package/dist/node/lib/AreEvent/AreEvent.context.js.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.context.mjs +27 -0
- package/dist/node/lib/AreEvent/AreEvent.context.mjs.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.types.d.mts +16 -0
- package/dist/node/lib/AreEvent/AreEvent.types.d.ts +16 -0
- package/dist/node/lib/AreEvent/AreEvent.types.js +4 -0
- package/dist/node/lib/AreEvent/AreEvent.types.js.map +1 -0
- package/dist/node/lib/AreEvent/AreEvent.types.mjs +3 -0
- package/dist/node/lib/AreEvent/AreEvent.types.mjs.map +1 -0
- package/dist/node/lib/AreEvent/index.d.mts +8 -0
- package/dist/node/lib/AreEvent/index.d.ts +8 -0
- package/dist/node/lib/AreEvent/index.js +19 -0
- package/dist/node/lib/AreEvent/index.js.map +1 -0
- package/dist/node/lib/AreEvent/index.mjs +5 -0
- package/dist/node/lib/AreEvent/index.mjs.map +1 -0
- package/dist/node/lib/AreIndex/AreIndex.context.d.mts +8 -0
- package/dist/node/lib/AreIndex/AreIndex.context.d.ts +8 -0
- package/dist/node/lib/AreIndex/AreIndex.context.js +142 -0
- package/dist/node/lib/AreIndex/AreIndex.context.js.map +1 -0
- package/dist/node/lib/AreIndex/AreIndex.context.mjs +141 -0
- package/dist/node/lib/AreIndex/AreIndex.context.mjs.map +1 -0
- package/dist/node/lib/AreIndex/index.d.mts +8 -0
- package/dist/node/lib/AreIndex/index.d.ts +8 -0
- package/dist/node/lib/AreIndex/index.js +12 -0
- package/dist/node/lib/AreIndex/index.js.map +1 -0
- package/dist/node/lib/AreIndex/index.mjs +4 -0
- package/dist/node/lib/AreIndex/index.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.constants.d.mts +36 -0
- package/dist/node/lib/AreNode/AreNode.constants.d.ts +36 -0
- package/dist/node/lib/AreNode/AreNode.constants.js +17 -0
- package/dist/node/lib/AreNode/AreNode.constants.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.constants.mjs +17 -0
- package/dist/node/lib/AreNode/AreNode.constants.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.entity.d.mts +8 -0
- package/dist/node/lib/AreNode/AreNode.entity.d.ts +8 -0
- package/dist/node/lib/AreNode/AreNode.entity.js +164 -0
- package/dist/node/lib/AreNode/AreNode.entity.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.entity.mjs +157 -0
- package/dist/node/lib/AreNode/AreNode.entity.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.error.d.mts +2 -0
- package/dist/node/lib/AreNode/AreNode.error.d.ts +2 -0
- package/dist/node/lib/AreNode/AreNode.error.js +4 -0
- package/dist/node/lib/AreNode/AreNode.error.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.error.mjs +3 -0
- package/dist/node/lib/AreNode/AreNode.error.mjs.map +1 -0
- package/dist/node/lib/AreNode/AreNode.types.d.mts +13 -0
- package/dist/node/lib/AreNode/AreNode.types.d.ts +13 -0
- package/dist/node/lib/AreNode/AreNode.types.js +4 -0
- package/dist/node/lib/AreNode/AreNode.types.js.map +1 -0
- package/dist/node/lib/AreNode/AreNode.types.mjs +3 -0
- package/dist/node/lib/AreNode/AreNode.types.mjs.map +1 -0
- package/dist/node/lib/AreNode/index.d.mts +9 -0
- package/dist/node/lib/AreNode/index.d.ts +9 -0
- package/dist/node/lib/AreNode/index.js +26 -0
- package/dist/node/lib/AreNode/index.js.map +1 -0
- package/dist/node/lib/AreNode/index.mjs +6 -0
- package/dist/node/lib/AreNode/index.mjs.map +1 -0
- package/dist/node/lib/AreProps/AreProps.context.d.mts +9 -0
- package/dist/node/lib/AreProps/AreProps.context.d.ts +9 -0
- package/dist/node/lib/AreProps/AreProps.context.js +32 -0
- package/dist/node/lib/AreProps/AreProps.context.js.map +1 -0
- package/dist/node/lib/AreProps/AreProps.context.mjs +25 -0
- package/dist/node/lib/AreProps/AreProps.context.mjs.map +1 -0
- package/dist/node/lib/AreProps/index.d.mts +3 -0
- package/dist/node/lib/AreProps/index.d.ts +3 -0
- package/dist/node/lib/AreProps/index.js +12 -0
- package/dist/node/lib/AreProps/index.js.map +1 -0
- package/dist/node/lib/AreProps/index.mjs +4 -0
- package/dist/node/lib/AreProps/index.mjs.map +1 -0
- package/dist/node/lib/AreRoot/AreRoot.component.d.mts +18 -0
- package/dist/node/lib/AreRoot/AreRoot.component.d.ts +18 -0
- package/dist/node/lib/AreRoot/AreRoot.component.js +53 -0
- package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -0
- package/dist/node/lib/AreRoot/AreRoot.component.mjs +41 -0
- package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -0
- package/dist/node/lib/AreRoot/index.d.mts +11 -0
- package/dist/node/lib/AreRoot/index.d.ts +11 -0
- package/dist/node/lib/AreRoot/index.js +12 -0
- package/dist/node/lib/AreRoot/index.js.map +1 -0
- package/dist/node/lib/AreRoot/index.mjs +4 -0
- package/dist/node/lib/AreRoot/index.mjs.map +1 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.mts +17 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.d.ts +17 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.js +37 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.js.map +1 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs +25 -0
- package/dist/node/lib/AreRouter/AreRouter.componeent.mjs.map +1 -0
- package/dist/node/lib/AreRouter/index.d.mts +12 -0
- package/dist/node/lib/AreRouter/index.d.ts +12 -0
- package/dist/node/lib/AreRouter/index.js +12 -0
- package/dist/node/lib/AreRouter/index.js.map +1 -0
- package/dist/node/lib/AreRouter/index.mjs +4 -0
- package/dist/node/lib/AreRouter/index.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.context.d.mts +8 -0
- package/dist/node/lib/AreScene/AreScene.context.d.ts +8 -0
- package/dist/node/lib/AreScene/AreScene.context.js +249 -0
- package/dist/node/lib/AreScene/AreScene.context.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.context.mjs +248 -0
- package/dist/node/lib/AreScene/AreScene.context.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.error.d.mts +14 -0
- package/dist/node/lib/AreScene/AreScene.error.d.ts +14 -0
- package/dist/node/lib/AreScene/AreScene.error.js +18 -0
- package/dist/node/lib/AreScene/AreScene.error.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.error.mjs +17 -0
- package/dist/node/lib/AreScene/AreScene.error.mjs.map +1 -0
- package/dist/node/lib/AreScene/AreScene.types.d.mts +9 -0
- package/dist/node/lib/AreScene/AreScene.types.d.ts +9 -0
- package/dist/node/lib/AreScene/AreScene.types.js +4 -0
- package/dist/node/lib/AreScene/AreScene.types.js.map +1 -0
- package/dist/node/lib/AreScene/AreScene.types.mjs +3 -0
- package/dist/node/lib/AreScene/AreScene.types.mjs.map +1 -0
- package/dist/node/lib/AreScene/index.d.mts +9 -0
- package/dist/node/lib/AreScene/index.d.ts +9 -0
- package/dist/node/lib/AreScene/index.js +24 -0
- package/dist/node/lib/AreScene/index.js.map +1 -0
- package/dist/node/lib/AreScene/index.mjs +6 -0
- package/dist/node/lib/AreScene/index.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.mts +7 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.ts +7 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js +12 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs +12 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.mts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.ts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js +95 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs +94 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.mts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.ts +8 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js +4 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs +3 -0
- package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/index.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/index.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/index.js +33 -0
- package/dist/node/lib/AreSceneInstruction/index.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/index.mjs +7 -0
- package/dist/node/lib/AreSceneInstruction/index.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.mts +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.ts +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.mts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.ts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs +22 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.mts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.ts +19 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js +27 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs +26 -0
- package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.mts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.ts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js +41 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs +40 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.mts +15 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.ts +15 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js +21 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs +20 -0
- package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.mts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.ts +17 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js +23 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs +22 -0
- package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.mts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.ts +23 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js +34 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs +33 -0
- package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.mts +16 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.ts +16 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js +20 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs +19 -0
- package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/index.d.mts +18 -0
- package/dist/node/lib/AreSceneInstruction/types/index.d.ts +18 -0
- package/dist/node/lib/AreSceneInstruction/types/index.js +52 -0
- package/dist/node/lib/AreSceneInstruction/types/index.js.map +1 -0
- package/dist/node/lib/AreSceneInstruction/types/index.mjs +12 -0
- package/dist/node/lib/AreSceneInstruction/types/index.mjs.map +1 -0
- package/dist/node/lib/AreSlot/AreSlot.component.d.mts +8 -0
- package/dist/node/lib/AreSlot/AreSlot.component.d.ts +8 -0
- package/dist/node/lib/AreSlot/AreSlot.component.js +37 -0
- package/dist/node/lib/AreSlot/AreSlot.component.js.map +1 -0
- package/dist/node/lib/AreSlot/AreSlot.component.mjs +36 -0
- package/dist/node/lib/AreSlot/AreSlot.component.mjs.map +1 -0
- package/dist/node/lib/AreStore/AreStore.context.d.mts +10 -0
- package/dist/node/lib/AreStore/AreStore.context.d.ts +10 -0
- package/dist/node/lib/AreStore/AreStore.context.js +35 -0
- package/dist/node/lib/AreStore/AreStore.context.js.map +1 -0
- package/dist/node/lib/AreStore/AreStore.context.mjs +28 -0
- package/dist/node/lib/AreStore/AreStore.context.mjs.map +1 -0
- package/dist/node/lib/AreStore/index.d.mts +3 -0
- package/dist/node/lib/AreStore/index.d.ts +3 -0
- package/dist/node/lib/AreStore/index.js +12 -0
- package/dist/node/lib/AreStore/index.js.map +1 -0
- package/dist/node/lib/AreStore/index.mjs +4 -0
- package/dist/node/lib/AreStore/index.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.mts +89 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.d.ts +89 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.js +241 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs +232 -0
- package/dist/node/lib/AreSyntax/AreSyntax.component.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.mts +80 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.d.ts +80 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.js +117 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs +110 -0
- package/dist/node/lib/AreSyntax/AreSyntax.context.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.d.mts +9 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.d.ts +9 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.js +13 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.mjs +12 -0
- package/dist/node/lib/AreSyntax/AreSyntax.error.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.mts +132 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.d.ts +132 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.js +4 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.js.map +1 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.mjs +3 -0
- package/dist/node/lib/AreSyntax/AreSyntax.types.mjs.map +1 -0
- package/dist/node/lib/AreSyntax/index.d.mts +12 -0
- package/dist/node/lib/AreSyntax/index.d.ts +12 -0
- package/dist/node/lib/AreSyntax/index.js +29 -0
- package/dist/node/lib/AreSyntax/index.js.map +1 -0
- package/dist/node/lib/AreSyntax/index.mjs +7 -0
- package/dist/node/lib/AreSyntax/index.mjs.map +1 -0
- package/dist/node/signals/AreInit.signal.d.mts +7 -0
- package/dist/node/signals/AreInit.signal.d.ts +7 -0
- package/dist/node/signals/AreInit.signal.js +13 -0
- package/dist/node/signals/AreInit.signal.js.map +1 -0
- package/dist/node/signals/AreInit.signal.mjs +12 -0
- package/dist/node/signals/AreInit.signal.mjs.map +1 -0
- package/dist/node/signals/AreRoute.signal.d.mts +12 -0
- package/dist/node/signals/AreRoute.signal.d.ts +12 -0
- package/dist/node/signals/AreRoute.signal.js +24 -0
- package/dist/node/signals/AreRoute.signal.js.map +1 -0
- package/dist/node/signals/AreRoute.signal.mjs +23 -0
- package/dist/node/signals/AreRoute.signal.mjs.map +1 -0
- package/dist/node/signals/index.d.mts +4 -0
- package/dist/node/signals/index.d.ts +4 -0
- package/dist/node/signals/index.js +17 -0
- package/dist/node/signals/index.js.map +1 -0
- package/dist/node/signals/index.mjs +5 -0
- package/dist/node/signals/index.mjs.map +1 -0
- package/docs/a-logo-docs.png +0 -0
- package/examples/jumpstart/concept.ts +60 -0
- package/examples/jumpstart/containers/UI.container.ts +172 -0
- package/examples/jumpstart/dist/index.html +22 -0
- package/examples/jumpstart/dist/mls3rrlq-lofs95.js +129 -0
- package/examples/jumpstart/dist/static/css/main.css +40 -0
- package/examples/jumpstart/dist/static/img/test.png +0 -0
- package/examples/jumpstart/public/index.html +22 -0
- package/examples/jumpstart/public/static/css/main.css +40 -0
- package/examples/jumpstart/public/static/img/test.png +0 -0
- package/examples/jumpstart/src/components/A-Btn.component.ts +124 -0
- package/examples/jumpstart/src/components/A-Input.component.ts +78 -0
- package/examples/jumpstart/src/components/A-Navigation.component.ts +167 -0
- package/examples/jumpstart/src/components/SignInComponent.component.ts +127 -0
- package/examples/jumpstart/src/concept.ts +92 -0
- package/jest.config.ts +26 -0
- package/package.json +92 -0
- package/src/engines/html/AreHTML.compiler.ts +657 -0
- package/src/engines/html/AreHTML.engine.ts +62 -0
- package/src/engines/html/index.ts +2 -0
- package/src/engines/json/AreJSON.compiler.ts +13 -0
- package/src/index.ts +15 -0
- package/src/lib/AreApp/AreApp.container.ts +77 -0
- package/src/lib/AreApp/AreApp.env.ts +0 -0
- package/src/lib/AreApp/AreApp.error.ts +7 -0
- package/src/lib/AreApp/AreApp.types.ts +0 -0
- package/src/lib/AreApp/index.ts +4 -0
- package/src/lib/AreCompiler/AreCompiler.component.ts +1023 -0
- package/src/lib/AreCompiler/AreCompiler.error.ts +9 -0
- package/src/lib/AreCompiler/AreCompiler.types.ts +0 -0
- package/src/lib/AreCompiler/index.ts +3 -0
- package/src/lib/AreComponent/Are.component.ts +203 -0
- package/src/lib/AreComponent/Are.constants.ts +39 -0
- package/src/lib/AreComponent/Are.context.ts +43 -0
- package/src/lib/AreComponent/Are.types.ts +0 -0
- package/src/lib/AreComponent/index.ts +4 -0
- package/src/lib/AreEvent/AreEvent.context.ts +38 -0
- package/src/lib/AreEvent/AreEvent.types.ts +16 -0
- package/src/lib/AreEvent/index.ts +2 -0
- package/src/lib/AreIndex/AreIndex.context.ts +174 -0
- package/src/lib/AreIndex/index.ts +1 -0
- package/src/lib/AreNode/AreNode.constants.ts +37 -0
- package/src/lib/AreNode/AreNode.entity.ts +249 -0
- package/src/lib/AreNode/AreNode.error.ts +0 -0
- package/src/lib/AreNode/AreNode.types.ts +15 -0
- package/src/lib/AreNode/index.ts +4 -0
- package/src/lib/AreProps/AreProps.context.ts +26 -0
- package/src/lib/AreProps/index.ts +1 -0
- package/src/lib/AreRoot/AreRoot.component.ts +54 -0
- package/src/lib/AreRoot/index.ts +1 -0
- package/src/lib/AreRouter/AreRouter.componeent.ts +24 -0
- package/src/lib/AreRouter/index.ts +1 -0
- package/src/lib/AreScene/AreScene.context.ts +382 -0
- package/src/lib/AreScene/AreScene.error.ts +22 -0
- package/src/lib/AreScene/AreScene.types.ts +7 -0
- package/src/lib/AreScene/index.ts +3 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts +7 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts +156 -0
- package/src/lib/AreSceneInstruction/AreSceneInstruction.types.ts +8 -0
- package/src/lib/AreSceneInstruction/index.ts +4 -0
- package/src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts +34 -0
- package/src/lib/AreSceneInstruction/types/AddDirective.instruction.ts +36 -0
- package/src/lib/AreSceneInstruction/types/AddStyle.instruction.ts +26 -0
- package/src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts +32 -0
- package/src/lib/AreSceneInstruction/types/AttachListener.instruction.ts +57 -0
- package/src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts +23 -0
- package/src/lib/AreSceneInstruction/types/MountNode.instruction.ts +29 -0
- package/src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts +45 -0
- package/src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts +22 -0
- package/src/lib/AreSceneInstruction/types/index.ts +10 -0
- package/src/lib/AreSlot/AreSlot.component.ts +48 -0
- package/src/lib/AreStore/AreStore.context.ts +36 -0
- package/src/lib/AreStore/index.ts +1 -0
- package/src/lib/AreSyntax/AreSyntax.component.ts +378 -0
- package/src/lib/AreSyntax/AreSyntax.context.ts +114 -0
- package/src/lib/AreSyntax/AreSyntax.error.ts +11 -0
- package/src/lib/AreSyntax/AreSyntax.types.ts +156 -0
- package/src/lib/AreSyntax/index.ts +4 -0
- package/src/signals/AreInit.signal.ts +7 -0
- package/src/signals/AreRoute.signal.ts +25 -0
- package/src/signals/index.ts +2 -0
- package/tests/A-HttpChannel.test.ts +204 -0
- package/tests/A-HttpServerError.test.ts +204 -0
- package/tests/A-Request.test.ts +742 -0
- package/tests/A-Service.test.ts +18 -0
- package/tsconfig.json +68 -0
- package/tslint.json +98 -0
- package/tsup.config.ts +78 -0
|
@@ -0,0 +1,1023 @@
|
|
|
1
|
+
import { A_Caller, A_Component, A_Container, A_Context, A_Dependency, A_Error, A_Feature, A_FormatterHelper, A_Inject, A_Scope, A_TYPES__EntityFeatures, ASEID } from "@adaas/a-concept";
|
|
2
|
+
import { A_Frame } from "@adaas/a-frame";
|
|
3
|
+
import { AreIndex } from "@adaas/are/index";
|
|
4
|
+
import { AreScene } from "@adaas/are/scene";
|
|
5
|
+
import { AreNode, AreNodeFeatures } from "@adaas/are/node";
|
|
6
|
+
import {
|
|
7
|
+
AreSceneInstructionFeatures,
|
|
8
|
+
AttachRootNodeInstruction,
|
|
9
|
+
MountNodeInstruction,
|
|
10
|
+
UnmountNodeInstruction,
|
|
11
|
+
AddStyleInstruction,
|
|
12
|
+
AttachListenerInstruction,
|
|
13
|
+
AddAttributeInstruction,
|
|
14
|
+
ReplaceInterpolationInstruction,
|
|
15
|
+
AddDirectiveInstruction,
|
|
16
|
+
} from "@adaas/are/scene-instruction";
|
|
17
|
+
import { AreSyntax } from "@adaas/are/syntax";
|
|
18
|
+
import { A_ExecutionContext } from "@adaas/a-utils/a-execution";
|
|
19
|
+
import { A_Logger } from "@adaas/a-utils/a-logger";
|
|
20
|
+
import { A_SignalBusFeatures, A_SignalState, A_SignalVector } from "@adaas/a-utils/a-signal";
|
|
21
|
+
import { Are, AreContext, AreFeatures } from "@adaas/are/component";
|
|
22
|
+
import { AreProps } from "@adaas/are/props";
|
|
23
|
+
import { AreStore } from "@adaas/are/store";
|
|
24
|
+
import { AreEvent } from "@adaas/are/event";
|
|
25
|
+
import { AreCompilerError } from "./AreCompiler.error";
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@A_Frame.Component({
|
|
30
|
+
namespace: 'A-ARE',
|
|
31
|
+
name: 'AreCompiler',
|
|
32
|
+
description: 'AreCompiler is responsible for compiling AreNodes into their respective components, managing the compilation lifecycle, and ensuring that each node is processed according to its defined behavior within the A-Concept Rendering Engine (ARE) framework.'
|
|
33
|
+
})
|
|
34
|
+
export class AreCompiler extends A_Component {
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
// ==================================================================================
|
|
39
|
+
// ========================= COMPONENT METHODS ======================================
|
|
40
|
+
// ==================================================================================
|
|
41
|
+
index(node: AreNode) {
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
component(node: AreNode): Are | undefined {
|
|
46
|
+
let scope: A_Scope
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
scope = node.scope
|
|
50
|
+
} catch (error) {
|
|
51
|
+
scope = A_Context.scope(this)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return scope.resolve<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity)) as Are | undefined;
|
|
55
|
+
}
|
|
56
|
+
// ==================================================================================
|
|
57
|
+
// ========================= ARE-NODE METHODS ======================================
|
|
58
|
+
// ==================================================================================
|
|
59
|
+
|
|
60
|
+
// -----------------------------------------------------------------------------------------
|
|
61
|
+
// ----------------------------Are-Node Load Section----------------------------------------
|
|
62
|
+
// -----------------------------------------------------------------------------------------
|
|
63
|
+
/**
|
|
64
|
+
* Handles before load lifecycle of the AreNode
|
|
65
|
+
*
|
|
66
|
+
* @param node
|
|
67
|
+
* @param scope
|
|
68
|
+
* @param feature
|
|
69
|
+
* @param args
|
|
70
|
+
*/
|
|
71
|
+
@A_Feature.Extend({
|
|
72
|
+
name: A_TYPES__EntityFeatures.LOAD,
|
|
73
|
+
before: /.*/,
|
|
74
|
+
scope: [AreNode]
|
|
75
|
+
})
|
|
76
|
+
async beforeLoad(
|
|
77
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
78
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
79
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
80
|
+
...args: any[]
|
|
81
|
+
) {
|
|
82
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));
|
|
86
|
+
|
|
87
|
+
if (component)
|
|
88
|
+
await feature.chain(component, AreFeatures.onBeforeLoad, node.scope);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Loads the AreNode into the AreScene
|
|
93
|
+
*
|
|
94
|
+
* @param node
|
|
95
|
+
* @param scope
|
|
96
|
+
* @param syntax
|
|
97
|
+
* @param feature
|
|
98
|
+
* @param logger
|
|
99
|
+
* @param args
|
|
100
|
+
*/
|
|
101
|
+
@A_Feature.Extend({
|
|
102
|
+
name: A_TYPES__EntityFeatures.LOAD,
|
|
103
|
+
scope: [AreNode]
|
|
104
|
+
})
|
|
105
|
+
async load(
|
|
106
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
107
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
108
|
+
@A_Inject(AreSyntax) syntax: AreSyntax,
|
|
109
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
110
|
+
|
|
111
|
+
@A_Inject(A_Logger) logger?: A_Logger,
|
|
112
|
+
...args: any[]
|
|
113
|
+
) {
|
|
114
|
+
const loadTimerLabel = `Load Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;
|
|
115
|
+
console.time(loadTimerLabel);
|
|
116
|
+
|
|
117
|
+
console.time(`Load: Component Resolution for <${node.aseid.entity}>`);
|
|
118
|
+
const component = this.component(node);
|
|
119
|
+
console.timeEnd(`Load: Component Resolution for <${node.aseid.entity}>`);
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
if (!component && syntax.isCustomNode(node)) {
|
|
123
|
+
logger?.warning(
|
|
124
|
+
'Component Not Found',
|
|
125
|
+
`No component registered for entity: ${node.aseid.entity}. Please ensure that the component is registered in the scope before rendering.`
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
console.time(`Load: Scene/Store/Props Creation for <${node.aseid.entity}>`);
|
|
130
|
+
const newNodeScene = new AreScene(node.aseid);
|
|
131
|
+
const newNodeIndex = new AreIndex(node.aseid);
|
|
132
|
+
const newNodeStore = new AreStore(node.aseid);
|
|
133
|
+
const newNodeProps = new AreProps(node.aseid);
|
|
134
|
+
|
|
135
|
+
scope.register(newNodeScene);
|
|
136
|
+
scope.register(newNodeIndex);
|
|
137
|
+
|
|
138
|
+
if (syntax.isCustomNode(node)) {
|
|
139
|
+
scope.register(newNodeStore);
|
|
140
|
+
scope.register(newNodeProps);
|
|
141
|
+
}
|
|
142
|
+
console.timeEnd(`Load: Scene/Store/Props Creation for <${node.aseid.entity}>`);
|
|
143
|
+
|
|
144
|
+
if (component) {
|
|
145
|
+
console.time(`Load: Component Lifecycle Chains for <${node.aseid.entity}>`);
|
|
146
|
+
await feature.chain(component, AreFeatures.onData, scope);
|
|
147
|
+
await feature.chain(component, AreFeatures.onStyles, scope);
|
|
148
|
+
await feature.chain(component, AreFeatures.onTemplate, scope);
|
|
149
|
+
console.timeEnd(`Load: Component Lifecycle Chains for <${node.aseid.entity}>`);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
console.time(`Load: Node Indexing for <${node.aseid.entity}>`);
|
|
153
|
+
this.index(node);
|
|
154
|
+
console.timeEnd(`Load: Node Indexing for <${node.aseid.entity}>`);
|
|
155
|
+
|
|
156
|
+
logger?.debug(newNodeScene.debugPrefix + `Loaded component <${node.aseid.entity}> with ${this.constructor.name}`);
|
|
157
|
+
|
|
158
|
+
console.time(`Load: Child Nodes Processing for <${node.aseid.entity}>`);
|
|
159
|
+
const sceneNodes = newNodeScene.nodes();
|
|
160
|
+
for (let i = 0; i < sceneNodes.length; i++) {
|
|
161
|
+
const sceneNode = sceneNodes[i];
|
|
162
|
+
const childTimerLabel = `Load: Child Node [${i}] <${sceneNode.aseid.entity}> for Parent <${node.aseid.entity}>`;
|
|
163
|
+
console.time(childTimerLabel);
|
|
164
|
+
|
|
165
|
+
if (!newNodeScene.isAttached(sceneNode)) {
|
|
166
|
+
newNodeScene.attach(sceneNode)
|
|
167
|
+
await sceneNode.load();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
console.timeEnd(childTimerLabel);
|
|
171
|
+
}
|
|
172
|
+
console.timeEnd(`Load: Child Nodes Processing for <${node.aseid.entity}>`);
|
|
173
|
+
|
|
174
|
+
console.timeEnd(loadTimerLabel);
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Handles after load lifecycle of the AreNode
|
|
179
|
+
*
|
|
180
|
+
* @param node
|
|
181
|
+
* @param scope
|
|
182
|
+
* @param scene
|
|
183
|
+
* @param feature
|
|
184
|
+
* @param args
|
|
185
|
+
*/
|
|
186
|
+
@A_Feature.Extend({
|
|
187
|
+
name: A_TYPES__EntityFeatures.LOAD,
|
|
188
|
+
after: /.*/,
|
|
189
|
+
scope: [AreNode]
|
|
190
|
+
})
|
|
191
|
+
async afterLoad(
|
|
192
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
193
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
194
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
195
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
196
|
+
...args: any[]
|
|
197
|
+
) {
|
|
198
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
199
|
+
|
|
200
|
+
logger?.debug(scene.debugPrefix + `[Load -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
201
|
+
|
|
202
|
+
const component = this.component(node);
|
|
203
|
+
|
|
204
|
+
if (component)
|
|
205
|
+
await feature.chain(component, AreFeatures.onAfterLoad, node.scope);
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// -----------------------------------------------------------------------------------------
|
|
210
|
+
// ----------------------------Are-Node Compile Section----------------------------------------
|
|
211
|
+
// -----------------------------------------------------------------------------------------
|
|
212
|
+
/**
|
|
213
|
+
* Handles before compile lifecycle of the AreNode
|
|
214
|
+
*
|
|
215
|
+
* @param node
|
|
216
|
+
* @param scope
|
|
217
|
+
* @param scene
|
|
218
|
+
* @param feature
|
|
219
|
+
* @param args
|
|
220
|
+
*/
|
|
221
|
+
@A_Feature.Extend({
|
|
222
|
+
name: AreNodeFeatures.onCompile,
|
|
223
|
+
before: /.*/,
|
|
224
|
+
scope: [AreNode]
|
|
225
|
+
})
|
|
226
|
+
beforeCompile(
|
|
227
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
228
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
229
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
230
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
231
|
+
...args: any[]
|
|
232
|
+
) {
|
|
233
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
234
|
+
|
|
235
|
+
logger?.debug(scene.debugPrefix + `[Compile -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
236
|
+
|
|
237
|
+
const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));
|
|
238
|
+
|
|
239
|
+
if (component)
|
|
240
|
+
feature.chain(component, AreFeatures.onBeforeCompile, node.scope);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Compiles the AreNode using AreCompiler
|
|
244
|
+
*
|
|
245
|
+
*
|
|
246
|
+
* @param logger
|
|
247
|
+
*/
|
|
248
|
+
@A_Feature.Extend({
|
|
249
|
+
name: AreNodeFeatures.onCompile,
|
|
250
|
+
scope: [AreNode]
|
|
251
|
+
})
|
|
252
|
+
compile(
|
|
253
|
+
/**
|
|
254
|
+
* Actual Node no be compiled
|
|
255
|
+
*/
|
|
256
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
257
|
+
/**
|
|
258
|
+
* Nodes owned Scene, Node content
|
|
259
|
+
*/
|
|
260
|
+
@A_Dependency.Flat()
|
|
261
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
262
|
+
/**
|
|
263
|
+
* Parent Scene where the node is registered
|
|
264
|
+
*/
|
|
265
|
+
@A_Dependency.Parent()
|
|
266
|
+
@A_Inject(AreScene) parentScene: AreScene,
|
|
267
|
+
/**
|
|
268
|
+
* Global Syntax Definition for parsing markup
|
|
269
|
+
*/
|
|
270
|
+
@A_Inject(AreSyntax) syntax: AreSyntax,
|
|
271
|
+
|
|
272
|
+
@A_Inject(AreProps) props: AreProps,
|
|
273
|
+
@A_Inject(AreStore) store: AreStore,
|
|
274
|
+
|
|
275
|
+
@A_Dependency.Parent()
|
|
276
|
+
@A_Inject(AreStore) parentStore: AreStore,
|
|
277
|
+
|
|
278
|
+
@A_Inject(A_Logger) logger?: A_Logger,
|
|
279
|
+
|
|
280
|
+
@A_Inject(A_Scope) scope?: A_Scope,
|
|
281
|
+
) {
|
|
282
|
+
const compileTimerLabel = `Compile Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;
|
|
283
|
+
console.time(compileTimerLabel);
|
|
284
|
+
|
|
285
|
+
try {
|
|
286
|
+
// the case when it's NOT a RootNode
|
|
287
|
+
if (!syntax.isRootNode(node)) {
|
|
288
|
+
|
|
289
|
+
logger?.debug('violet', scene.debugPrefix + `Compiling node <${node.aseid.entity}> in Scene <${parentScene.name}>`);
|
|
290
|
+
|
|
291
|
+
console.time(`Compile: Mount Instruction Planning for <${node.aseid.entity}>`);
|
|
292
|
+
// -------------------------------------------------------
|
|
293
|
+
// 1) index the scene and plan Mount Node instruction
|
|
294
|
+
// -------------------------------------------------------
|
|
295
|
+
const mountInstruction = new MountNodeInstruction(node, scene.path);
|
|
296
|
+
|
|
297
|
+
if (!parentScene.isPlanned(mountInstruction)) {
|
|
298
|
+
logger?.debug('red', scene.debugPrefix + `Planning Node Mount for Node <${node.type}> ASEID: <${node.aseid.entity}>`);
|
|
299
|
+
|
|
300
|
+
parentScene.plan(mountInstruction);
|
|
301
|
+
mountInstruction.init();
|
|
302
|
+
}
|
|
303
|
+
console.timeEnd(`Compile: Mount Instruction Planning for <${node.aseid.entity}>`);
|
|
304
|
+
|
|
305
|
+
console.time(`Compile: Template Interpolation Processing for <${node.aseid.entity}>`);
|
|
306
|
+
if (syntax.isCustomNode(node)) {
|
|
307
|
+
const interpolations = syntax.extractInterpolations(node.template);
|
|
308
|
+
for (let i = 0; i < interpolations.length; i++) {
|
|
309
|
+
const interpolation = interpolations[i];
|
|
310
|
+
console.time(`Compile: Interpolation [${i}] "${interpolation.name}" for <${node.aseid.entity}>`);
|
|
311
|
+
|
|
312
|
+
const value = store.get(interpolation.name) || parentStore.get(interpolation.name);
|
|
313
|
+
|
|
314
|
+
const instruction = new ReplaceInterpolationInstruction(node, interpolation, value);
|
|
315
|
+
|
|
316
|
+
const stateInstruction = parentScene.getState(instruction);
|
|
317
|
+
|
|
318
|
+
instruction.update({ value, prevValue: stateInstruction?.value });
|
|
319
|
+
|
|
320
|
+
if (!parentScene.isPlanned(instruction)) {
|
|
321
|
+
parentScene.plan(instruction);
|
|
322
|
+
instruction.init();
|
|
323
|
+
} else {
|
|
324
|
+
parentScene.dropState(instruction);
|
|
325
|
+
parentScene.unPlan(instruction);
|
|
326
|
+
parentScene.plan(instruction);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
console.timeEnd(`Compile: Interpolation [${i}] "${interpolation.name}" for <${node.aseid.entity}>`);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
console.timeEnd(`Compile: Template Interpolation Processing for <${node.aseid.entity}>`);
|
|
333
|
+
|
|
334
|
+
console.time(`Compile: Attributes Processing for <${node.aseid.entity}>`);
|
|
335
|
+
// 1) extract all props from the markup and set them in the props store
|
|
336
|
+
const attributes = syntax.extractAttributes(node.markup);
|
|
337
|
+
for (let i = 0; i < attributes.length; i++) {
|
|
338
|
+
const attr = attributes[i];
|
|
339
|
+
console.time(`Compile: Attribute [${i}] "${attr.name}" for <${node.aseid.entity}>`);
|
|
340
|
+
|
|
341
|
+
const name = attr.name;
|
|
342
|
+
const value = (syntax.isBindingProp(attr) ?
|
|
343
|
+
store.get(attr.value) || parentStore.get(attr.value)
|
|
344
|
+
: attr.value) || '';
|
|
345
|
+
|
|
346
|
+
props.set(name, value);
|
|
347
|
+
|
|
348
|
+
parentScene.plan(new AddAttributeInstruction(node, name, value));
|
|
349
|
+
|
|
350
|
+
console.timeEnd(`Compile: Attribute [${i}] "${attr.name}" for <${node.aseid.entity}>`);
|
|
351
|
+
}
|
|
352
|
+
console.timeEnd(`Compile: Attributes Processing for <${node.aseid.entity}>`);
|
|
353
|
+
|
|
354
|
+
console.time(`Compile: Directives Processing for <${node.aseid.entity}>`);
|
|
355
|
+
// 3a) Process directives first before other operations
|
|
356
|
+
const directives = syntax.extractDirectives(node.markup);
|
|
357
|
+
for (let i = 0; i < directives.length; i++) {
|
|
358
|
+
const directive = directives[i];
|
|
359
|
+
console.time(`Compile: Directive [${i}] "${directive.name}" for <${node.aseid.entity}>`);
|
|
360
|
+
|
|
361
|
+
let directiveValue: any;
|
|
362
|
+
|
|
363
|
+
// Get the directive value from store or props
|
|
364
|
+
if (directive.value) {
|
|
365
|
+
directiveValue = store.get(directive.value) || parentStore.get(directive.value);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
let instruction = new AddDirectiveInstruction(node, directive, directiveValue);
|
|
369
|
+
|
|
370
|
+
const stateInstruction = parentScene.getState(instruction);
|
|
371
|
+
|
|
372
|
+
if (!stateInstruction || stateInstruction.value !== directiveValue) {
|
|
373
|
+
parentScene.unPlan(instruction);
|
|
374
|
+
parentScene.plan(instruction);
|
|
375
|
+
|
|
376
|
+
instruction.init();
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
console.timeEnd(`Compile: Directive [${i}] "${directive.name}" for <${node.aseid.entity}>`);
|
|
380
|
+
}
|
|
381
|
+
console.timeEnd(`Compile: Directives Processing for <${node.aseid.entity}>`);
|
|
382
|
+
|
|
383
|
+
console.time(`Compile: Styles Processing for <${node.aseid.entity}>`);
|
|
384
|
+
// -------------------------------------------------------
|
|
385
|
+
// 2) replace all style interpolations in the styles
|
|
386
|
+
// -------------------------------------------------------
|
|
387
|
+
let styles = node.styles || '';
|
|
388
|
+
const styleInterpolations = syntax.extractInterpolations(styles);
|
|
389
|
+
for (let i = 0; i < styleInterpolations.length; i++) {
|
|
390
|
+
const interpolation = styleInterpolations[i];
|
|
391
|
+
console.time(`Compile: Style Interpolation [${i}] "${interpolation.name}" for <${node.aseid.entity}>`);
|
|
392
|
+
|
|
393
|
+
const value = store.get(interpolation.name);
|
|
394
|
+
styles = syntax.replaceInterpolation(styles, interpolation, value);
|
|
395
|
+
|
|
396
|
+
console.timeEnd(`Compile: Style Interpolation [${i}] "${interpolation.name}" for <${node.aseid.entity}>`);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
if (styles.trim()) {
|
|
400
|
+
const instruction = new AddStyleInstruction(node, styles);
|
|
401
|
+
|
|
402
|
+
if (!parentScene.isPlanned(instruction)) {
|
|
403
|
+
parentScene.plan(instruction);
|
|
404
|
+
instruction.init();
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
console.timeEnd(`Compile: Styles Processing for <${node.aseid.entity}>`);
|
|
408
|
+
|
|
409
|
+
console.time(`Compile: Listeners Processing for <${node.aseid.entity}>`);
|
|
410
|
+
// -------------------------------------------------------
|
|
411
|
+
// 3) go through all listeners and register them in the scene
|
|
412
|
+
// -------------------------------------------------------
|
|
413
|
+
const listeners = syntax.extractListeners(node.markup);
|
|
414
|
+
for (let i = 0; i < listeners.length; i++) {
|
|
415
|
+
const listener = listeners[i];
|
|
416
|
+
console.time(`Compile: Listener [${i}] "${listener.name}" for <${node.aseid.entity}>`);
|
|
417
|
+
|
|
418
|
+
// target emitter should be custom component that owns the listener
|
|
419
|
+
let currentScene = scene;
|
|
420
|
+
let targetNode = node
|
|
421
|
+
|
|
422
|
+
while (!syntax.isCustomNode(targetNode) && currentScene.parent) {
|
|
423
|
+
targetNode = currentScene.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {
|
|
424
|
+
query: {
|
|
425
|
+
aseid: currentScene.id
|
|
426
|
+
}
|
|
427
|
+
})) as AreNode
|
|
428
|
+
|
|
429
|
+
currentScene = currentScene.parent;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
const instruction = new AttachListenerInstruction(node, targetNode, listener);
|
|
433
|
+
|
|
434
|
+
if (!parentScene.isPlanned(instruction)) {
|
|
435
|
+
parentScene.plan(instruction);
|
|
436
|
+
instruction.init();
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
console.timeEnd(`Compile: Listener [${i}] "${listener.name}" for <${node.aseid.entity}>`);
|
|
440
|
+
}
|
|
441
|
+
console.timeEnd(`Compile: Listeners Processing for <${node.aseid.entity}>`);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
console.time(`Compile: Child Nodes Compilation for <${node.aseid.entity}>`);
|
|
445
|
+
const sceneNodes = scene.nodes();
|
|
446
|
+
for (let i = 0; i < sceneNodes.length; i++) {
|
|
447
|
+
const sceneNode = sceneNodes[i];
|
|
448
|
+
const childTimerLabel = `Compile: Child Node [${i}] <${sceneNode.aseid.entity}> for Parent <${node.aseid.entity}>`;
|
|
449
|
+
console.time(childTimerLabel);
|
|
450
|
+
|
|
451
|
+
sceneNode.compile();
|
|
452
|
+
|
|
453
|
+
console.timeEnd(childTimerLabel);
|
|
454
|
+
}
|
|
455
|
+
console.timeEnd(`Compile: Child Nodes Compilation for <${node.aseid.entity}>`);
|
|
456
|
+
|
|
457
|
+
} catch (error) {
|
|
458
|
+
logger?.error(error);
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
console.timeEnd(compileTimerLabel);
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Handles after compile lifecycle of the AreNode
|
|
465
|
+
*
|
|
466
|
+
* @param node
|
|
467
|
+
* @param scope
|
|
468
|
+
* @param scene
|
|
469
|
+
* @param feature
|
|
470
|
+
* @param args
|
|
471
|
+
*/
|
|
472
|
+
@A_Feature.Extend({
|
|
473
|
+
name: AreNodeFeatures.onCompile,
|
|
474
|
+
after: /.*/,
|
|
475
|
+
scope: [AreNode]
|
|
476
|
+
})
|
|
477
|
+
afterCompile(
|
|
478
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
479
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
480
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
481
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
482
|
+
...args: any[]
|
|
483
|
+
) {
|
|
484
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
485
|
+
const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));
|
|
486
|
+
|
|
487
|
+
logger?.debug(scene.debugPrefix + `[Compile -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
488
|
+
|
|
489
|
+
if (component)
|
|
490
|
+
feature.chain(component, AreFeatures.onAfterCompile, node.scope);
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
// -----------------------------------------------------------------------------------------
|
|
495
|
+
// ----------------------------Are-Node Event Section----------------------------------------
|
|
496
|
+
// -----------------------------------------------------------------------------------------
|
|
497
|
+
/**
|
|
498
|
+
* Handles events triggered on the AreNode
|
|
499
|
+
*
|
|
500
|
+
* @param node
|
|
501
|
+
* @param scope
|
|
502
|
+
* @param event
|
|
503
|
+
* @param scene
|
|
504
|
+
* @param feature
|
|
505
|
+
* @param args
|
|
506
|
+
*/
|
|
507
|
+
@A_Feature.Extend({
|
|
508
|
+
name: AreNodeFeatures.onEvent,
|
|
509
|
+
scope: [AreNode]
|
|
510
|
+
})
|
|
511
|
+
async event(
|
|
512
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
513
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
514
|
+
@A_Inject(AreEvent) event: AreEvent,
|
|
515
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
516
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
517
|
+
...args: any[]
|
|
518
|
+
) {
|
|
519
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
520
|
+
|
|
521
|
+
logger?.debug(scene.debugPrefix + `Event Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}} for event: ${event.name}`);
|
|
522
|
+
|
|
523
|
+
const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));
|
|
524
|
+
|
|
525
|
+
if (component) {
|
|
526
|
+
|
|
527
|
+
try {
|
|
528
|
+
|
|
529
|
+
await feature.chain(component, event.name, scope);
|
|
530
|
+
|
|
531
|
+
} catch (error) {
|
|
532
|
+
logger?.error(error);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// -----------------------------------------------------------------------------------------
|
|
538
|
+
// ----------------------------Are-Node Render Section----------------------------------------
|
|
539
|
+
// -----------------------------------------------------------------------------------------
|
|
540
|
+
/**
|
|
541
|
+
* Handles before render lifecycle of the AreNode
|
|
542
|
+
*
|
|
543
|
+
* @param node
|
|
544
|
+
* @param scope
|
|
545
|
+
* @param scene
|
|
546
|
+
* @param feature
|
|
547
|
+
* @param args
|
|
548
|
+
*/
|
|
549
|
+
@A_Feature.Extend({
|
|
550
|
+
name: AreNodeFeatures.onBeforeRender,
|
|
551
|
+
before: /.*/,
|
|
552
|
+
scope: [AreNode]
|
|
553
|
+
})
|
|
554
|
+
beforeRender(
|
|
555
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
556
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
557
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
558
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
559
|
+
...args: any[]
|
|
560
|
+
) {
|
|
561
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
562
|
+
const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));
|
|
563
|
+
|
|
564
|
+
logger?.debug(scene.debugPrefix + `[Render -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
565
|
+
|
|
566
|
+
if (component)
|
|
567
|
+
feature.chain(component, AreFeatures.onBeforeRender, node.scope);
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Renders the AreNode into the AreScene
|
|
571
|
+
*
|
|
572
|
+
* @param scope
|
|
573
|
+
* @param node
|
|
574
|
+
* @param scene
|
|
575
|
+
* @param logger
|
|
576
|
+
*/
|
|
577
|
+
@A_Feature.Extend({
|
|
578
|
+
name: AreNodeFeatures.onRender,
|
|
579
|
+
scope: [AreNode]
|
|
580
|
+
})
|
|
581
|
+
render(
|
|
582
|
+
/**
|
|
583
|
+
* Node to be mounted
|
|
584
|
+
*/
|
|
585
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
586
|
+
/**
|
|
587
|
+
* Template Parsing Syntax to be used
|
|
588
|
+
*/
|
|
589
|
+
@A_Inject(AreSyntax) syntax: AreSyntax,
|
|
590
|
+
/**
|
|
591
|
+
* Node Content
|
|
592
|
+
*/
|
|
593
|
+
@A_Dependency.Flat()
|
|
594
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
595
|
+
/**
|
|
596
|
+
* Scene where target node is registered
|
|
597
|
+
*
|
|
598
|
+
* [!] For Root Node it doesn't exists
|
|
599
|
+
*/
|
|
600
|
+
@A_Dependency.Parent()
|
|
601
|
+
@A_Inject(AreScene) parentScene?: AreScene,
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
@A_Inject(A_Logger) logger?: A_Logger,
|
|
605
|
+
...args: any[]
|
|
606
|
+
) {
|
|
607
|
+
const renderTimerLabel = `Render Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;
|
|
608
|
+
console.time(renderTimerLabel);
|
|
609
|
+
|
|
610
|
+
if (syntax.isRootNode(node)) {
|
|
611
|
+
logger?.debug('red', scene.debugPrefix + `Rendering Root Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
612
|
+
|
|
613
|
+
console.time(`Render: Root Node Attachment for <${node.aseid.entity}>`);
|
|
614
|
+
new AttachRootNodeInstruction(node).apply(node.scope);
|
|
615
|
+
console.timeEnd(`Render: Root Node Attachment for <${node.aseid.entity}>`);
|
|
616
|
+
} else {
|
|
617
|
+
|
|
618
|
+
if (!parentScene) {
|
|
619
|
+
throw new AreCompilerError(
|
|
620
|
+
AreCompilerError.RenderError,
|
|
621
|
+
`Parent Scene not found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} during render process.`
|
|
622
|
+
);
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
logger?.debug('red', scene.debugPrefix + `Rendering Child Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, parentScene);
|
|
626
|
+
|
|
627
|
+
console.time(`Render: Mount/Unmount Instructions Processing for <${node.aseid.entity}>`);
|
|
628
|
+
// 1) should be mounted or unmounted
|
|
629
|
+
const mountUnmountInstructions = parentScene.renderPlanFor(node, {
|
|
630
|
+
filter: (inst) => inst instanceof MountNodeInstruction || inst instanceof UnmountNodeInstruction,
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
for (let i = 0; i < mountUnmountInstructions.length; i++) {
|
|
634
|
+
const instruction = mountUnmountInstructions[i];
|
|
635
|
+
const instructionTimerLabel = `Render: Mount/Unmount Instruction [${i}] "${instruction.action}" for <${node.aseid.entity}>`;
|
|
636
|
+
console.time(instructionTimerLabel);
|
|
637
|
+
|
|
638
|
+
if (parentScene.getState(instruction)) {
|
|
639
|
+
logger?.debug('yellow', scene.debugPrefix + `Skipping Action '${instruction.action}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} already processed.`);
|
|
640
|
+
console.timeEnd(instructionTimerLabel);
|
|
641
|
+
continue;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
logger?.debug('red', scene.debugPrefix + `Processing ${instruction.action} Instruction for Node <${node.aseid.entity}> `);
|
|
645
|
+
|
|
646
|
+
instruction.apply();
|
|
647
|
+
parentScene.setState(instruction);
|
|
648
|
+
|
|
649
|
+
console.timeEnd(instructionTimerLabel);
|
|
650
|
+
}
|
|
651
|
+
console.timeEnd(`Render: Mount/Unmount Instructions Processing for <${node.aseid.entity}>`);
|
|
652
|
+
|
|
653
|
+
// if There's no Mount Instruction planned, ite means that this node should not be rendered
|
|
654
|
+
// and any other instructions related to it should be ignored
|
|
655
|
+
if (!parentScene.isPlanned(new MountNodeInstruction(node, scene.path))) {
|
|
656
|
+
logger?.debug('yellow', scene.debugPrefix + `No Mount Instruction found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}. Skipping...`);
|
|
657
|
+
console.timeEnd(renderTimerLabel);
|
|
658
|
+
return;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
console.time(`Render: Other Instructions Processing for <${node.aseid.entity}>`);
|
|
662
|
+
// 2) process other instructions
|
|
663
|
+
const otherInstructions = parentScene.renderPlanFor(node, {
|
|
664
|
+
order: [
|
|
665
|
+
AddStyleInstruction,
|
|
666
|
+
AttachListenerInstruction,
|
|
667
|
+
AddAttributeInstruction,
|
|
668
|
+
ReplaceInterpolationInstruction
|
|
669
|
+
]
|
|
670
|
+
});
|
|
671
|
+
|
|
672
|
+
for (let i = 0; i < otherInstructions.length; i++) {
|
|
673
|
+
const instruction = otherInstructions[i];
|
|
674
|
+
const instructionTimerLabel = `Render: Instruction [${i}] "${instruction.action}" for <${node.aseid.entity}>`;
|
|
675
|
+
console.time(instructionTimerLabel);
|
|
676
|
+
|
|
677
|
+
if (parentScene.getState(instruction)) {
|
|
678
|
+
logger?.debug('yellow', scene.debugPrefix + `Skipping Action '${instruction.action}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} already processed.`);
|
|
679
|
+
console.timeEnd(instructionTimerLabel);
|
|
680
|
+
continue;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
try {
|
|
684
|
+
console.time(`Render: Execution Context Creation for Instruction [${i}] <${node.aseid.entity}>`);
|
|
685
|
+
const executionContext = new A_ExecutionContext('AreBrowserCompiler: Mount Node Instruction');
|
|
686
|
+
executionContext.set('content', scene)
|
|
687
|
+
const applyScope = new A_Scope({ fragments: [executionContext] }).inherit(node.scope);
|
|
688
|
+
console.timeEnd(`Render: Execution Context Creation for Instruction [${i}] <${node.aseid.entity}>`);
|
|
689
|
+
|
|
690
|
+
console.time(`Render: Instruction Apply for [${i}] "${instruction.action}" <${node.aseid.entity}>`);
|
|
691
|
+
instruction.apply(applyScope);
|
|
692
|
+
console.timeEnd(`Render: Instruction Apply for [${i}] "${instruction.action}" <${node.aseid.entity}>`);
|
|
693
|
+
|
|
694
|
+
applyScope.destroy();
|
|
695
|
+
parentScene.setState(instruction);
|
|
696
|
+
|
|
697
|
+
} catch (error) {
|
|
698
|
+
logger?.error(error);
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
console.timeEnd(instructionTimerLabel);
|
|
702
|
+
}
|
|
703
|
+
console.timeEnd(`Render: Other Instructions Processing for <${node.aseid.entity}>`);
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
console.time(`Render: Child Nodes Rendering for <${node.aseid.entity}>`);
|
|
707
|
+
const childNodes = scene.nodes();
|
|
708
|
+
for (let i = 0; i < childNodes.length; i++) {
|
|
709
|
+
const child = childNodes[i];
|
|
710
|
+
const childTimerLabel = `Render: Child Node [${i}] <${child.aseid.entity}> for Parent <${node.aseid.entity}>`;
|
|
711
|
+
console.time(childTimerLabel);
|
|
712
|
+
|
|
713
|
+
console.log(scene.debugPrefix + `Rendering Child Node <${child.aseid.entity}> ASEID: ${child.aseid.toString()}`);
|
|
714
|
+
child.render();
|
|
715
|
+
|
|
716
|
+
console.timeEnd(childTimerLabel);
|
|
717
|
+
}
|
|
718
|
+
console.timeEnd(`Render: Child Nodes Rendering for <${node.aseid.entity}>`);
|
|
719
|
+
|
|
720
|
+
console.timeEnd(renderTimerLabel);
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Handles after render lifecycle of the AreNode
|
|
724
|
+
*
|
|
725
|
+
* @param node
|
|
726
|
+
* @param scope
|
|
727
|
+
* @param scene
|
|
728
|
+
* @param feature
|
|
729
|
+
* @param args
|
|
730
|
+
*/
|
|
731
|
+
@A_Feature.Extend({
|
|
732
|
+
name: AreNodeFeatures.onAfterRender,
|
|
733
|
+
after: /.*/,
|
|
734
|
+
scope: [AreNode]
|
|
735
|
+
})
|
|
736
|
+
afterRender(
|
|
737
|
+
/**
|
|
738
|
+
* Node to be rendered
|
|
739
|
+
*/
|
|
740
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
741
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
742
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
743
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
744
|
+
...args: any[]
|
|
745
|
+
) {
|
|
746
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
747
|
+
const component = this.component(node);
|
|
748
|
+
|
|
749
|
+
logger?.debug(scene.debugPrefix + `[Render -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
750
|
+
|
|
751
|
+
|
|
752
|
+
if (component)
|
|
753
|
+
feature.chain(component, AreFeatures.onAfterRender, node.scope);
|
|
754
|
+
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
// -----------------------------------------------------------------------------------------
|
|
758
|
+
// ----------------------------Are-Node Update Section----------------------------------------
|
|
759
|
+
// -----------------------------------------------------------------------------------------
|
|
760
|
+
/**
|
|
761
|
+
* Handles before update lifecycle of the AreNode
|
|
762
|
+
*
|
|
763
|
+
* @param node
|
|
764
|
+
* @param scope
|
|
765
|
+
* @param scene
|
|
766
|
+
* @param feature
|
|
767
|
+
* @param args
|
|
768
|
+
*/
|
|
769
|
+
@A_Feature.Extend({
|
|
770
|
+
name: AreNodeFeatures.onUpdate,
|
|
771
|
+
before: /.*/,
|
|
772
|
+
scope: [AreNode]
|
|
773
|
+
})
|
|
774
|
+
beforeUpdate(
|
|
775
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
776
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
777
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
778
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
779
|
+
...args: any[]
|
|
780
|
+
) {
|
|
781
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
782
|
+
|
|
783
|
+
logger?.debug(scene.debugPrefix + `[Update -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
784
|
+
|
|
785
|
+
const component = this.component(node);
|
|
786
|
+
|
|
787
|
+
if (component)
|
|
788
|
+
feature.chain(component, AreFeatures.onBeforeUpdate, node.scope);
|
|
789
|
+
}
|
|
790
|
+
/**
|
|
791
|
+
* Updates the AreNode in the AreScene
|
|
792
|
+
*
|
|
793
|
+
* @param node
|
|
794
|
+
* @param scene
|
|
795
|
+
* @param args
|
|
796
|
+
*/
|
|
797
|
+
@A_Feature.Extend({
|
|
798
|
+
name: AreNodeFeatures.onUpdate,
|
|
799
|
+
scope: [AreNode]
|
|
800
|
+
})
|
|
801
|
+
update(
|
|
802
|
+
/**
|
|
803
|
+
* Node to be updated
|
|
804
|
+
*/
|
|
805
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
806
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
807
|
+
|
|
808
|
+
...args: any[]
|
|
809
|
+
) {
|
|
810
|
+
console.time(scene.debugPrefix + `Updating Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
811
|
+
|
|
812
|
+
console.time(`Node Compile Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);
|
|
813
|
+
node.compile();
|
|
814
|
+
console.timeEnd(`Node Compile Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);
|
|
815
|
+
|
|
816
|
+
console.time(`Node Render Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);
|
|
817
|
+
node.render();
|
|
818
|
+
console.timeEnd(`Node Render Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);
|
|
819
|
+
|
|
820
|
+
console.timeEnd(scene.debugPrefix + `Updating Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
821
|
+
|
|
822
|
+
}
|
|
823
|
+
/**
|
|
824
|
+
* Handles after update lifecycle of the AreNode
|
|
825
|
+
*
|
|
826
|
+
* @param node
|
|
827
|
+
* @param scope
|
|
828
|
+
* @param scene
|
|
829
|
+
* @param feature
|
|
830
|
+
* @param args
|
|
831
|
+
*/
|
|
832
|
+
@A_Feature.Extend({
|
|
833
|
+
name: AreNodeFeatures.onUpdate,
|
|
834
|
+
after: /.*/,
|
|
835
|
+
scope: [AreNode]
|
|
836
|
+
})
|
|
837
|
+
afterUpdate(
|
|
838
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
839
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
840
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
841
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
842
|
+
...args: any[]
|
|
843
|
+
) {
|
|
844
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
845
|
+
|
|
846
|
+
logger?.debug(scene.debugPrefix + `[Update -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
847
|
+
|
|
848
|
+
const component = this.component(node);
|
|
849
|
+
|
|
850
|
+
if (component)
|
|
851
|
+
feature.chain(component, AreFeatures.onAfterUpdate, node.scope);
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
// -----------------------------------------------------------------------------------------
|
|
855
|
+
// ----------------------------Are-Node Unmount Section----------------------------------------
|
|
856
|
+
// -----------------------------------------------------------------------------------------
|
|
857
|
+
/**
|
|
858
|
+
* Handles before unmount lifecycle of the AreNode
|
|
859
|
+
*
|
|
860
|
+
* @param node
|
|
861
|
+
* @param scope
|
|
862
|
+
* @param scene
|
|
863
|
+
* @param feature
|
|
864
|
+
* @param args
|
|
865
|
+
*/
|
|
866
|
+
@A_Feature.Extend({
|
|
867
|
+
name: AreNodeFeatures.onUnmount,
|
|
868
|
+
before: /.*/,
|
|
869
|
+
scope: [AreNode]
|
|
870
|
+
})
|
|
871
|
+
beforeUnmount(
|
|
872
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
873
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
874
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
875
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
876
|
+
...args: any[]
|
|
877
|
+
) {
|
|
878
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
879
|
+
|
|
880
|
+
logger?.debug(scene.debugPrefix + `[Unmount -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
881
|
+
|
|
882
|
+
const component = this.component(node);
|
|
883
|
+
|
|
884
|
+
if (component)
|
|
885
|
+
feature.chain(component, AreFeatures.onBeforeUnmount, node.scope);
|
|
886
|
+
}
|
|
887
|
+
/**
|
|
888
|
+
* Unmounts the AreNode from the AreScene
|
|
889
|
+
*
|
|
890
|
+
* @param node
|
|
891
|
+
* @param syntax
|
|
892
|
+
* @param scene
|
|
893
|
+
* @param parentScene
|
|
894
|
+
* @param logger
|
|
895
|
+
*/
|
|
896
|
+
@A_Feature.Extend({
|
|
897
|
+
name: AreNodeFeatures.onUnmount,
|
|
898
|
+
scope: [AreNode]
|
|
899
|
+
})
|
|
900
|
+
unmount(
|
|
901
|
+
/**
|
|
902
|
+
* Node to be unmounted
|
|
903
|
+
*/
|
|
904
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
905
|
+
/**
|
|
906
|
+
* Template Parsing Syntax to be used
|
|
907
|
+
*/
|
|
908
|
+
@A_Inject(AreSyntax) syntax: AreSyntax,
|
|
909
|
+
/**
|
|
910
|
+
* Node Content
|
|
911
|
+
*/
|
|
912
|
+
@A_Dependency.Flat()
|
|
913
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
914
|
+
/**
|
|
915
|
+
* Scene where target node is registered
|
|
916
|
+
*
|
|
917
|
+
* [!] For Root Node it doesn't exists
|
|
918
|
+
*/
|
|
919
|
+
@A_Dependency.Parent()
|
|
920
|
+
@A_Inject(AreScene) parentScene?: AreScene,
|
|
921
|
+
|
|
922
|
+
@A_Inject(A_Logger) logger?: A_Logger,
|
|
923
|
+
) {
|
|
924
|
+
try {
|
|
925
|
+
|
|
926
|
+
|
|
927
|
+
logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
|
|
928
|
+
|
|
929
|
+
if (!syntax.isRootNode(node)) {
|
|
930
|
+
if (!parentScene) {
|
|
931
|
+
throw new AreCompilerError(
|
|
932
|
+
AreCompilerError.RenderError,
|
|
933
|
+
`Parent Scene not found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} during unmount process.`
|
|
934
|
+
);
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
for (const instruction of parentScene.renderPlanFor(node)) {
|
|
938
|
+
if (instruction.node === node) {
|
|
939
|
+
instruction.revert(node.scope);
|
|
940
|
+
parentScene.dropState(instruction);
|
|
941
|
+
parentScene.unPlan(instruction);
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
for (const child of scene.nodes()) {
|
|
947
|
+
child.unmount();
|
|
948
|
+
}
|
|
949
|
+
|
|
950
|
+
// await node.reset();
|
|
951
|
+
} catch (error) {
|
|
952
|
+
logger?.error(error);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
/**
|
|
956
|
+
* Handles after unmount lifecycle of the AreNode
|
|
957
|
+
*
|
|
958
|
+
* @param node
|
|
959
|
+
* @param scope
|
|
960
|
+
* @param scene
|
|
961
|
+
* @param feature
|
|
962
|
+
* @param args
|
|
963
|
+
*/
|
|
964
|
+
@A_Feature.Extend({
|
|
965
|
+
name: AreNodeFeatures.onUnmount,
|
|
966
|
+
after: /.*/,
|
|
967
|
+
scope: [AreNode]
|
|
968
|
+
})
|
|
969
|
+
afterUnmount(
|
|
970
|
+
@A_Inject(A_Caller) node: AreNode,
|
|
971
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
972
|
+
@A_Inject(AreScene) scene: AreScene,
|
|
973
|
+
@A_Inject(A_Feature) feature: A_Feature,
|
|
974
|
+
...args: any[]
|
|
975
|
+
) {
|
|
976
|
+
const logger = scope.resolve<A_Logger>(A_Logger);
|
|
977
|
+
|
|
978
|
+
logger?.debug(scene.debugPrefix + `[Unmount -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);
|
|
979
|
+
|
|
980
|
+
const component = this.component(node);
|
|
981
|
+
|
|
982
|
+
if (component)
|
|
983
|
+
feature.chain(component, AreFeatures.onAfterUnmount, node.scope);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
|
|
987
|
+
@A_Feature.Extend({
|
|
988
|
+
name: A_SignalBusFeatures.onNext,
|
|
989
|
+
})
|
|
990
|
+
handleSignalVector(
|
|
991
|
+
@A_Inject(A_SignalVector) vector: A_SignalVector,
|
|
992
|
+
@A_Inject(AreContext) context: AreContext,
|
|
993
|
+
@A_Inject(A_SignalState) state: A_SignalState,
|
|
994
|
+
@A_Inject(A_Scope) scope: A_Scope,
|
|
995
|
+
@A_Inject(A_Logger) logger?: A_Logger,
|
|
996
|
+
) {
|
|
997
|
+
logger?.info(`Handling Signal Vector with ${context.roots.length} root nodes.`);
|
|
998
|
+
|
|
999
|
+
try {
|
|
1000
|
+
for (const root of context.roots) {
|
|
1001
|
+
|
|
1002
|
+
const callScope = new A_Scope({
|
|
1003
|
+
fragments: [new AreEvent(
|
|
1004
|
+
AreFeatures.onSignal, {
|
|
1005
|
+
event: 'SignalVectorNext',
|
|
1006
|
+
data: { vector }
|
|
1007
|
+
})]
|
|
1008
|
+
})
|
|
1009
|
+
.import(scope, root.scope);
|
|
1010
|
+
|
|
1011
|
+
console.log('Emitting signal for root node:', vector);
|
|
1012
|
+
|
|
1013
|
+
root.emit(callScope);
|
|
1014
|
+
|
|
1015
|
+
callScope.destroy();
|
|
1016
|
+
}
|
|
1017
|
+
} catch (error) {
|
|
1018
|
+
logger?.error(error);
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
}
|