@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/AreComponent/Are.constants.ts","../../src/lib/AreComponent/Are.component.ts","../../src/lib/AreComponent/Are.context.ts","../../src/lib/AreSyntax/AreSyntax.context.ts","../../src/lib/AreNode/AreNode.constants.ts","../../src/lib/AreIndex/AreIndex.context.ts","../../src/lib/AreProps/AreProps.context.ts","../../src/lib/AreStore/AreStore.context.ts","../../src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts","../../src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts","../../src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts","../../src/lib/AreSceneInstruction/types/AddDirective.instruction.ts","../../src/lib/AreSceneInstruction/types/AddStyle.instruction.ts","../../src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts","../../src/lib/AreEvent/AreEvent.context.ts","../../src/lib/AreSceneInstruction/types/AttachListener.instruction.ts","../../src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts","../../src/lib/AreSceneInstruction/types/MountNode.instruction.ts","../../src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts","../../src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts","../../src/lib/AreScene/AreScene.context.ts","../../src/lib/AreScene/AreScene.error.ts","../../src/lib/AreNode/AreNode.entity.ts","../../src/lib/AreSyntax/AreSyntax.component.ts","../../src/lib/AreSyntax/AreSyntax.error.ts","../../src/signals/AreInit.signal.ts","../../src/signals/AreRoute.signal.ts","../../src/lib/AreApp/AreApp.container.ts","../../src/lib/AreApp/AreApp.error.ts","../../src/lib/AreCompiler/AreCompiler.error.ts","../../src/lib/AreCompiler/AreCompiler.component.ts","../../src/lib/AreRoot/AreRoot.component.ts","../../src/engines/html/AreHTML.compiler.ts","../../src/engines/html/AreHTML.engine.ts"],"names":["AreFeatures","A_Frame","A_Fragment","AreNodeFeatures","A_Context","A_ExecutionContext","AreSceneInstructionFeatures","A_Entity","A_Scope","A_Error","A_Component","A_Signal","A_Feature","A_Dependency","A_FormatterHelper","A_Logger","A_Inject","A_ServiceFeatures","A_Caller","A_SignalVector","ASEID","node"],"mappings":"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","file":"index.mjs","sourcesContent":["\n\nexport enum AreFeatures {\n /**\n * Runs before the component is loaded into memory\n * \n * Before template, styles and data are fetched\n */\n onBeforeLoad = '_Are_onBeforeLoad',\n /**\n * Runs after the component is loaded into memory\n * \n * After template, styles and data are fetched\n */\n onAfterLoad = '_Are_onAfterLoad',\n onBeforeMount = '_Are_onBeforeMount',\n onAfterMount = '_Are_onAfterMount',\n onBeforeUnmount = '_Are_onBeforeUnmount',\n onAfterUnmount = '_Are_onAfterUnmount',\n onBeforeUpdate = '_Are_onBeforeUpdate',\n onAfterUpdate = '_Are_onAfterUpdate',\n onBeforeDestroy = '_Are_onBeforeDestroy',\n onAfterDestroy = '_Are_onAfterDestroy',\n\n\n onBeforeCompile = '_Are_onBeforeCompile',\n onAfterCompile = '_Are_onAfterCompile',\n\n onBeforeRender = '_Are_onBeforeRender',\n onAfterRender = '_Are_onAfterRender',\n\n\n\n onTemplate = '_Are_onTemplate',\n onStyles = '_Are_onStyles',\n onData = '_Are_onData',\n\n onSignal = '_Are_onSignal',\n}","import { A_Component, A_Feature } from \"@adaas/a-concept\";\nimport { AreFeatures } from \"./Are.constants\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'Are',\n description: 'Base component class for A-Concept Rendering Engine (ARE) components. It provides lifecycle decorators and methods for defining templates, styles, and data, facilitating the creation of dynamic and interactive UI components within the ARE framework.'\n})\nexport class Are extends A_Component {\n\n\n //==================================================================================\n //======================== LIFECYCLE DECORATORS ====================================\n //==================================================================================\n\n static get EventHandler() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: propertyKey,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onBeforeLoad() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onBeforeLoad,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n static get onAfterLoad() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onAfterLoad,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n static get onBeforeCompile() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onBeforeCompile,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onAfterCompile() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onAfterCompile,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onBeforeMount() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onBeforeMount,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onAfterMount() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onAfterMount,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onBeforeUnmount() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onBeforeUnmount,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onAfterUnmount() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onAfterUnmount,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onBeforeUpdate() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onBeforeUpdate,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get onAfterUpdate() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onAfterUpdate,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n static get Template() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onTemplate,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n\n static get Styles() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onStyles,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get Data() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onData,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n static get Signal() {\n return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {\n return A_Feature.Extend({\n name: AreFeatures.onSignal,\n scope: [target.constructor],\n })(target, propertyKey, descriptor);\n }\n }\n\n // ==================================================================================\n // ========================= COMPONENT METHODS ======================================\n // ==================================================================================\n\n /**\n * Returns the template string for the component\n * \n * Could be overridden to provide dynamic templates based on component state\n * \n * @returns \n */\n @Are.Template\n async template(\n ...args: any[]\n ): Promise<void> {\n\n }\n\n /**\n * Returns the styles string for the component\n * \n * Could be overridden to provide dynamic styles based on component state\n * \n * @returns \n */\n @Are.Styles\n async styles(\n ...args: any[]\n ): Promise<void> {\n\n }\n\n /**\n * Returns the data object for the component\n * \n * Uses as the initial state of the component\n * \n * @returns \n */\n @Are.Data\n async data(\n ...args: any[]\n ): Promise<void> {\n\n }\n\n}","import { A_Context, A_Fragment } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreNode } from \"@adaas/are/node\";\n\n\n\n@A_Frame.Fragment({\n namespace: 'A-ARE',\n name: 'AreContext',\n description: 'Context fragment for the A-Concept Rendering Engine (ARE) framework, serving as a foundational component for managing shared state and configurations within the ARE environment. This Context uses to encapsulate global settings, resources, and utilities that can be accessed by various ARE components and entities during the rendering and interaction processes.'\n})\nexport class AreContext extends A_Fragment {\n\n protected _source: string;\n protected _roots: Array<AreNode> = [];\n\n constructor(source: string = '') {\n super({ name: 'AreContext' });\n this._source = source;\n }\n\n get scope() {\n return A_Context.scope(this);\n }\n\n get roots(): Array<AreNode> {\n return this._roots;\n }\n\n get source(): string {\n return this._source;\n }\n\n addRoot(node: AreNode) {\n this._roots.push(node);\n this.scope.register(node);\n }\n\n removeRoot(node: AreNode) {\n this._roots = this._roots.filter(r => r.aseid.toString() !== node.aseid.toString());\n }\n\n}\n","import { A_Fragment } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreSyntaxInitOptions } from \"./AreSyntax.types\";\n\n@A_Frame.Fragment({\n namespace: 'A-ARE',\n name: 'AreSyntaxContext',\n description: 'Context that defines the syntax rules and structures for the A-Concept Rendering Engine (ARE). It provides mechanisms for parsing and interpreting templates, attributes, directives, interpolations, and event listeners, enabling dynamic and interactive UI rendering within the ARE framework.'\n})\nexport class AreSyntaxContext extends A_Fragment {\n\n\n constructor(\n /**\n * Initialization options for configuring the AreSyntax context.\n */\n protected readonly config: Partial<AreSyntaxInitOptions> = {}\n ) {\n super({ name: 'AreSyntaxContext' });\n\n }\n\n\n /**\n * identifier of the root tag to use when compiling in browser context.\n * \n * @return {string} The root tag identifier.\n */\n get rootTag(): string {\n return this.config.rootTag || 'are-root';\n }\n /**\n * List of standard HTML tags to recognize.\n * [!] This is a set of tags that can be ignored when determining if a node is a custom component.\n * \n * @return {Set<string>} A set of standard HTML tag names.\n */\n get standardTags(): Set<string> {\n return new Set(this.config.standardTags || [])\n };\n /**\n * Enable or disable debug mode for syntax parsing.\n * When enabled, additional debug information will be logged during parsing.\n * \n * @return {boolean} True if debug mode is enabled, false otherwise.\n */\n get debugMode(): boolean {\n return this.config.debugMode || false;\n }\n /**\n * Custom interpolation delimiters for template parsing.\n * Default is ['{{', '}}'].\n * \n * @return {[string, string]} The opening and closing interpolation delimiters.\n */\n get interpolationDelimiters(): [string, string] {\n return this.config.interpolationDelimiters || ['{{', '}}'];\n }\n /**\n * Custom binding delimiter for data binding parsing.\n * Default is ':'.\n * @return {string} The binding delimiter.\n */\n get bindingDelimiter(): string {\n return this.config.bindingDelimiter || ':';\n }\n /**\n * Custom listener delimiter for event binding parsing.\n * Default is '@'.\n * \n * @return {string} The listener delimiter.\n */\n get listenerDelimiter(): string {\n return this.config.listenerDelimiter || '@';\n }\n /**\n * Enable or disable strict mode for syntax parsing.\n * When enabled, the parser will throw errors for any syntax violations.\n * Default is true.\n * \n * @return {boolean} True if strict mode is enabled, false otherwise.\n */\n get strictMode(): boolean {\n return this.config.strictMode !== false;\n }\n /**\n * Enable or disable whitespace trimming in templates.\n * When enabled, leading and trailing whitespace in template expressions will be trimmed.\n * Default is true.\n * \n * @return {boolean} True if whitespace trimming is enabled, false otherwise.\n */\n get trimWhitespace(): boolean {\n return this.config.trimWhitespace !== false;\n }\n /**\n * Custom directive delimiter for directive parsing.\n * Default is '$'.\n * \n * @return {string} The directive delimiter.\n */\n get directiveDelimiter(): string {\n return this.config.directiveDelimiter || '$';\n }\n\n /*\n * A list of custom directives to be recognized by the syntax parser.\n * Each directive should be a string representing the directive name.\n * Default is an empty array.\n */\n get customDirectives(): string[] {\n return this.config.customDirectives || [];\n }\n}","\n\n\nexport enum AreNodeFeatures {\n /**\n * Event fired when the element node is about to be rendered\n */\n onBeforeRender = '_AreNode_onBeforeRender',\n /**\n * Event fired when the element node is rendered\n */\n onRender = '_AreNode_onRender',\n /**\n * Event fired when the element node is after rendered\n */\n onAfterRender = '_AreNode_onAfterRender',\n /**\n * Feature that is called to compile the element node\n */\n onCompile = '_AreNode_onCompile',\n /**\n * Feature that is called to handle events\n */\n onEvent = '_AreNode_onEvent',\n /**\n * Feature that is called to update the element node\n */\n onUpdate = '_AreNode_onUpdate',\n /**\n * Feature that is called to mount the element node\n */\n onMount = '_AreNode_onMount',\n /**\n * Feature that is called to unmount the element node\n */\n onUnmount = '_AreNode_onUnmount',\n}","import { A_Context, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { AreNode } from \"@adaas/are/node\";\n\n\n\nexport class AreIndex<\n _PathType = any\n> extends A_Fragment {\n\n constructor(aseid: string | ASEID) {\n super({\n name: aseid instanceof ASEID ? aseid.toString() : aseid\n });\n }\n\n /**\n * Platform-agnostic element index\n * Element can be DOM Element, PDF element, DOCX element, etc.\n * The actual type depends on the compiler being used\n */\n protected _index: {\n ASEID_to_Path: Map<string, _PathType>,\n Path_to_ASEID: Map<_PathType, string>,\n\n \n Node_to_Path: Map<AreNode, _PathType>,\n Path_to_Node: Map<_PathType, AreNode>,\n } = {\n ASEID_to_Path: new Map(),\n Path_to_ASEID: new Map(),\n Node_to_Path: new Map(),\n Path_to_Node: new Map(),\n }\n\n\n /**\n * Unique hash representing the current state of the index\n * Can be used to identify changes in the index\n */\n get state(): string {\n const entries = Array.from(this._index.ASEID_to_Path.entries())\n .sort(([aseidA], [aseidB]) => aseidA.localeCompare(aseidB))\n .map(([aseid, path]) => `${aseid}:${JSON.stringify(path)}`);\n return entries.join('|');\n }\n\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n\n get parent() {\n return A_Context.scope(this).parent?.resolve<AreIndex>(AreIndex);\n }\n\n get size(): number {\n return this._index.ASEID_to_Path.size;\n }\n\n get nodes(): Array<AreNode> {\n return Array.from(this._index.Node_to_Path.keys());\n }\n\n get paths(): Array<_PathType> {\n return Array.from(this._index.Path_to_Node.keys());\n }\n\n protected get depth(): number {\n let depth = 0;\n let currentScope: A_Scope | undefined = this.scope;\n\n while (currentScope) {\n depth++;\n currentScope = currentScope.parent;\n }\n\n return depth;\n }\n \n\n /**\n * Adds a platform-agnostic element to the index\n * @param node - AreNode to index\n * @param path - Platform-specific element (DOM, PDF, DOCX, etc.)\n */\n add(node: AreNode, path: _PathType) {\n this._index.ASEID_to_Path.set(node.aseid.toString(), path);\n this._index.Path_to_ASEID.set(path, node.aseid.toString());\n this._index.Node_to_Path.set(node, path);\n this._index.Path_to_Node.set(path, node);\n }\n\n /**\n * Retrieves platform-specific element by AreNode\n * @param node - AreNode to look up\n * @returns Platform-specific element or undefined\n */\n pathOf(node: AreNode): _PathType | undefined {\n return this._index.Node_to_Path.get(node);\n }\n\n /**\n * Retrieves AreNode by platform-specific element\n * @param element - Platform-specific element to look up\n * @returns AreNode or undefined\n */\n nodeOf(path: _PathType): AreNode | undefined {\n return this._index.Path_to_Node.get(path);\n }\n\n /**\n * Removes index entry by AreNode\n * @param node - AreNode to remove from index\n */\n removeByNode(node: AreNode) {\n const path = this._index.Node_to_Path.get(node);\n if (path) {\n this._index.ASEID_to_Path.delete(node.aseid.toString());\n this._index.Path_to_ASEID.delete(path);\n this._index.Node_to_Path.delete(node);\n this._index.Path_to_Node.delete(path);\n }\n }\n\n\n replaceByNode(oldNode: AreNode, newNode: AreNode) {\n const path = this._index.Node_to_Path.get(oldNode);\n if (path) {\n this._index.ASEID_to_Path.delete(oldNode.aseid.toString());\n this._index.Path_to_ASEID.set(path, newNode.aseid.toString());\n this._index.Node_to_Path.delete(oldNode);\n this._index.Node_to_Path.set(newNode, path);\n this._index.Path_to_Node.set(path, newNode);\n }\n }\n\n\n replacePath(oldPath: _PathType, newPath: _PathType) {\n const aseid = this._index.Path_to_ASEID.get(oldPath);\n const node = this._index.Path_to_Node.get(oldPath);\n if (aseid && node) {\n this._index.ASEID_to_Path.set(aseid, newPath);\n this._index.Path_to_ASEID.delete(oldPath);\n this._index.Path_to_ASEID.set(newPath, aseid);\n this._index.Node_to_Path.set(node, newPath);\n this._index.Path_to_Node.delete(oldPath);\n this._index.Path_to_Node.set(newPath, node);\n }\n }\n \n\n /**\n * Removes index entry by platform-specific element\n * @param path - Platform-specific element to remove from index\n */\n removeByElement(path: _PathType) {\n const aseid = this._index.Path_to_ASEID.get(path);\n if (aseid) {\n const node = this._index.Path_to_Node.get(path);\n if (node) {\n this._index.ASEID_to_Path.delete(aseid);\n this._index.Path_to_ASEID.delete(path);\n this._index.Node_to_Path.delete(node);\n this._index.Path_to_Node.delete(path);\n }\n }\n }\n\n clear() {\n this._index.ASEID_to_Path.clear();\n this._index.Path_to_ASEID.clear();\n this._index.Node_to_Path.clear();\n this._index.Path_to_Node.clear();\n }\n}","import { ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\n\n\n\n@A_Frame.Fragment({\n namespace: 'A-ARE',\n name: 'AreProps',\n description: 'Execution context for managing properties within the A-Concept Rendering Engine (ARE) framework, allowing for type-safe storage and retrieval of key-value pairs associated with a specific ASEID.'\n})\nexport class AreProps<\n T extends Record<string, any> = Record<string, any>\n> extends A_ExecutionContext<T> {\n\n constructor(aseid: ASEID) {\n super(aseid.toString());\n }\n\n\n setMultiple(values: Partial<T>): void {\n Object.entries(values).forEach(([key, value]) => {\n this.set(key as keyof T, value);\n });\n }\n}","import { ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\n\n\n\n@A_Frame.Fragment({\n description: \"Are Store uses to keep AreNode related information for interpolations, runtime data, etc. This object can be injected to manipulate with data at runtime.\",\n})\nexport class AreStore<\n T extends Record<string, any> = Record<string, any>\n> extends A_ExecutionContext<T> {\n\n constructor(aseid: ASEID) {\n super(aseid.toString());\n }\n\n\n\n set<K extends keyof T>(values: Partial<T>): this \n set<K extends keyof T>(key: K, value: T[K]): this \n set<K extends keyof T>(\n param1: K | Partial<T>,\n param2?: T[K]\n ): this {\n if (typeof param1 === 'object') {\n Object.entries(param1).forEach(([key, value]) => {\n super.set(key as K, value as T[K]);\n });\n } else if (param2 !== undefined) {\n super.set(param1 as K, param2);\n }\n return this;\n }\n\n}","\n\nexport enum AreSceneInstructionFeatures {\n Init = '_AreSceneInstructionInit',\n Apply = '_AreSceneInstructionApply',\n Revert = '_AreSceneInstructionRevert'\n}","\nimport { A_Context, A_Entity, A_FormatterHelper, A_Scope } from \"@adaas/a-concept\";\nimport { AreSceneInstructionNewProps } from \"./AreSceneInstruction.types\";\nimport type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstructionFeatures } from \"./AreSceneInstruction.constants\";\nimport { AreScene } from \"@adaas/are/scene\";\n\n\n\nexport class AreSceneInstruction<T extends Record<string, any> = Record<string, any>> extends A_Entity<AreSceneInstructionNewProps<T>> {\n\n action!: string\n node!: AreNode\n\n params?: T\n\n\n hashSource!: string\n\n\n get scene(): AreScene {\n return A_Context.scope(this).resolve(AreScene)!\n }\n\n /**\n * Generates even hash uses for deduplication\n * \n * @param str \n */\n protected createHash(str?: string): string\n protected createHash(str?: undefined): string\n protected createHash(str?: Record<string, any>): string\n protected createHash(str?: Array<any>): string\n protected createHash(str?: number): string\n protected createHash(str?: boolean): string\n protected createHash(str?: null): string\n protected createHash(map?: Map<any, any>): string\n protected createHash(set?: Set<any>): string\n protected createHash(str?: any): string {\n let hashSource: string;\n\n if (str instanceof Map) {\n hashSource = JSON.stringify(Array.from(str.entries()));\n } else if (str instanceof Set) {\n hashSource = JSON.stringify(Array.from(str.values()));\n } else {\n switch (typeof str) {\n case 'string':\n hashSource = str;\n break;\n case 'undefined':\n hashSource = 'undefined';\n break;\n\n case 'object':\n if ('toJSON' in str)\n hashSource = JSON.stringify(str.toJSON());\n\n else\n hashSource = JSON.stringify(str);\n break;\n case 'number':\n hashSource = str.toString();\n break;\n case 'boolean':\n hashSource = str ? 'true' : 'false';\n break;\n case 'function':\n hashSource = str.toString();\n break;\n default:\n hashSource = String(str);\n }\n }\n\n let hash = 0, i, chr;\n for (i = 0; i < hashSource.length; i++) {\n chr = hashSource.charCodeAt(i);\n hash = ((hash << 5) - hash) + chr;\n hash |= 0; // Convert to 32bit integer\n }\n\n const hashString = hash.toString();\n\n return hashString;\n }\n\n fromNew(newEntity: AreSceneInstructionNewProps<T>): void {\n const identity = newEntity.id || {\n name: newEntity.action,\n node: newEntity.node.aseid.toString(),\n };\n\n const id = this.createHash(identity);\n\n\n this.aseid = this.generateASEID({\n entity: A_FormatterHelper.toKebabCase(newEntity.action),\n id: id,\n });\n\n this.action = newEntity.action;\n this.node = newEntity.node;\n this.params = newEntity.params;\n\n }\n\n\n update(params: Partial<T>): void {\n this.params = {\n ...this.params,\n ...params,\n } as T;\n }\n\n\n init(\n scope?: A_Scope\n ): void {\n try {\n this.call(AreSceneInstructionFeatures.Init, scope);\n } catch (error) {\n\n }\n }\n\n apply(\n scope?: A_Scope\n ): void {\n try {\n return this.call(AreSceneInstructionFeatures.Apply, scope);\n } catch (error) {\n\n }\n }\n\n revert(\n scope?: A_Scope\n ): void {\n try {\n this.call(AreSceneInstructionFeatures.Revert, scope);\n } catch (error) {\n\n }\n }\n\n\n}\n\n\n\n\n\n\n\n\n","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\n\n\nexport class AddAttributeInstruction extends AreSceneInstruction<{\n name: string;\n value: string;\n}> {\n\n get name(): string {\n return this.params!.name;\n }\n\n get value(): string {\n return this.params!.value;\n }\n\n constructor(\n node: AreNode,\n name: string,\n value: string\n ) {\n super({\n id: [name, node],\n action: 'add-attribute',\n node,\n params: {\n name,\n value,\n }\n });\n }\n}","import { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\nimport type { AreNode } from \"@adaas/are/node\";\nimport { AreDirective } from \"@adaas/are/syntax\";\n\n\n\n\nexport class AddDirectiveInstruction extends AreSceneInstruction<{\n directive: AreDirective;\n value: any;\n}> {\n\n get directive(): AreDirective {\n return this.params!.directive;\n }\n\n get value(): any {\n return this.params!.value;\n }\n\n constructor(\n node: AreNode,\n directive: AreDirective,\n value: any\n ) {\n super({\n id: [directive, node],\n action: 'directive',\n node,\n params: {\n directive,\n value,\n }\n });\n }\n}","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\nexport class AddStyleInstruction extends AreSceneInstruction<{\n styles: string;\n}> {\n\n get styles(): string {\n return this.params!.styles;\n }\n\n\n constructor(\n node: AreNode,\n styles: string,\n ) {\n super({\n id: [styles, node],\n action: 'add-style',\n node,\n params: {\n styles,\n }\n });\n }\n}","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\nexport class AddStylePropertyInstruction extends AreSceneInstruction<{\n property: string;\n value: string;\n}> {\n\n get styles(): string {\n return this.params!.property;\n }\n\n get value(): string {\n return this.params!.value;\n }\n\n constructor(\n node: AreNode,\n property: string,\n value: string\n ) {\n super({\n id: [property, node],\n action: 'add-style',\n node,\n params: {\n property,\n value,\n }\n });\n }\n}","import { A_Fragment } from \"@adaas/a-concept\"\nimport { A_Frame } from \"@adaas/a-frame\"\nimport type { AreNode } from \"@adaas/are/node\"\nimport { AreEventProps } from \"./AreEvent.types\"\n\n\n\n@A_Frame.Fragment({\n namespace: 'A-ARE',\n name: 'AreEvent',\n description: 'Event context for managing events within the A-Concept Rendering Engine (ARE) framework, encapsulating event data and associated nodes to facilitate event-driven interactions.'\n})\nexport class AreEvent<\n T extends any = any\n> extends A_Fragment {\n\n\n protected _node?: AreNode\n\n protected _props: AreEventProps<T>\n\n constructor(eventName: string, props: AreEventProps<T>) {\n super({ name: eventName })\n\n\n this._props = props;\n }\n\n get data(): T {\n return this._props.data\n }\n\n get event(): string {\n return this._props.event\n }\n\n\n}","import type { AreNode } from \"@adaas/are/node\";\nimport type { AreListener } from \"@adaas/are/syntax\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\nimport { AreEvent } from \"@adaas/are/event\";\n\nexport class AttachListenerInstruction extends AreSceneInstruction<{\n target: AreNode;\n listener: AreListener;\n}> {\n\n private _callback!: (e: any) => Promise<void>;\n\n get listener(): AreListener {\n return this.params!.listener;\n }\n\n get event(): string {\n return this.params!.listener.handler;\n }\n\n\n get target(): AreNode {\n return this.params!.target;\n }\n\n get callback(): (e: any) => Promise<void> {\n return this._callback;\n }\n\n\n\n constructor(\n node: AreNode,\n target: AreNode,\n listener: AreListener,\n ) {\n super({\n id: [node, listener.name],\n action: 'listener',\n node,\n params: {\n target,\n listener,\n }\n });\n\n this._callback = async (e) => {\n const newEvent = new AreEvent(listener.handler, {\n event: listener.name,\n data: e\n });\n\n await this.target.emit(newEvent);\n\n }\n }\n}","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\n\n\nexport class AttachRootNodeInstruction extends AreSceneInstruction<{}> {\n\n\n get id(): string {\n return this.node.aseid.toString();\n }\n\n constructor(\n node: AreNode,\n ) {\n super({\n id: [node],\n action: 'attach-root-node',\n node,\n params: {}\n });\n }\n}","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\n\n\n\nexport class MountNodeInstruction extends AreSceneInstruction<{\n path: string;\n}> {\n\n\n get path(): string {\n return this.params!.path;\n }\n\n constructor(\n node: AreNode,\n path: string,\n ) {\n super({\n id: [node],\n action: 'mount-node',\n node,\n params: {\n path\n }\n });\n }\n}\n","import { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\nimport type { AreNode } from \"@adaas/are/node\";\nimport type { AreInterpolation } from \"@adaas/are/syntax\";\n\n\nexport class ReplaceInterpolationInstruction extends AreSceneInstruction<{\n interpolation: AreInterpolation;\n value: string;\n prevValue?: string;\n}> {\n\n get placement() {\n return this.params?.prevValue || this.interpolation.raw;\n }\n\n get position() {\n return this.interpolation.position;\n }\n\n get interpolation(): AreInterpolation {\n return this.params!.interpolation;\n }\n\n get value(): string {\n return this.params?.value || '';\n }\n\n constructor(\n node: AreNode,\n interpolation: AreInterpolation,\n value: string,\n prevValue?: string,\n ) {\n super({\n id: [node, interpolation],\n action: 'replace-interpolation',\n node: node,\n params: {\n interpolation,\n prevValue: prevValue,\n value,\n }\n });\n }\n}","import type { AreNode } from \"@adaas/are/node\";\nimport { AreSceneInstruction } from \"../AreSceneInstruction.entity\";\n\n\nexport class UnmountNodeInstruction extends AreSceneInstruction<{\n path: string\n}> {\n\n constructor(\n node: AreNode,\n path: string\n ) {\n super({\n id: [node],\n action: 'unmount-node',\n node,\n params: {\n path\n }\n });\n }\n}","import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { AreIndex } from \"../AreIndex/AreIndex.context\";\nimport { AreNode } from \"@adaas/are/node\";\nimport { AreSCene_Serialized } from \"./AreScene.types\";\nimport { AreProps } from \"@adaas/are/props\";\nimport { AreStore } from \"@adaas/are/store\";\nimport { AreSceneInstruction } from \"@adaas/are/scene-instruction\";\n\nexport class AreScene extends A_Fragment {\n\n protected _state: Set<string> = new Set();\n\n constructor(\n /**\n * Scene identity will be used to identify mounting point in the parent scene\n */\n id: string | ASEID,\n ) {\n super({ name: id.toString() });\n }\n\n get id(): string {\n return this.name;\n }\n\n /**\n * Get the root scene of the current scene\n */\n get root(): AreScene {\n let currentScope: A_Scope | undefined = this.scope;\n let rootScene: AreScene = this;\n\n while (currentScope) {\n const parentScene = currentScope.parent?.resolve<AreScene>(this.constructor as typeof AreScene);\n if (parentScene) {\n rootScene = parentScene;\n }\n currentScope = currentScope.parent;\n }\n\n return rootScene;\n }\n\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n\n get index(): AreIndex<string> {\n return A_Context.scope(this).resolveFlat<AreIndex<string>>(AreIndex)!;\n }\n\n get parent(): AreScene | undefined {\n return A_Context.scope(this).parent?.resolveFlat<AreScene>(AreScene);\n }\n\n get children(): Array<AreScene> {\n return this.scope.resolveFlatAll<AreNode>(AreNode)\n .map(n => n.scope.resolveFlat<AreScene>(AreScene))\n .filter(s => !!s);\n }\n\n\n get depth(): number {\n let depth = 0;\n let currentScope: A_Scope | undefined = this.scope;\n\n while (currentScope) {\n if (currentScope.parent && currentScope.parent.resolve<AreScene>(this.constructor as typeof AreScene)) {\n depth++;\n }\n currentScope = currentScope.parent;\n }\n\n return depth;\n }\n\n\n get instructions(): Array<AreSceneInstruction> {\n return this.scope.resolveFlatAll<AreSceneInstruction>(AreSceneInstruction) || [];\n }\n\n\n nodes(\n filter?: (node: AreNode) => boolean\n ): AreNode[] {\n\n const nodes: AreNode[] = [];\n\n for (const path of this.paths()) {\n\n const node = this.index.nodeOf(path);\n\n if (!node) {\n continue;\n }\n\n if (filter && !filter(node)) {\n continue;\n }\n\n nodes.push(node);\n }\n\n return nodes;\n }\n\n\n renderPlanFor(\n node: AreNode,\n filter?: {\n filter?: (instruction: AreSceneInstruction) => boolean,\n changes?: Array<new (...args: any[]) => AreSceneInstruction>,\n order?: Array<new (...args: any[]) => AreSceneInstruction>,\n }\n ) {\n\n const actions: AreSceneInstruction[] = [];\n\n const order = filter?.order || [];\n const filterFn = filter?.filter;\n\n let plan = this.instructions;\n\n plan = plan.sort((a, b) => {\n const aIndex = order.findIndex(instructionType => a instanceof instructionType);\n const bIndex = order.findIndex(instructionType => b instanceof instructionType);\n\n return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);\n });\n\n if (filterFn) {\n plan = plan.filter(filterFn);\n }\n\n for (const action of plan) {\n if (action.node === node) {\n actions.push(action);\n }\n }\n return actions;\n }\n\n get debugPrefix() {\n return `${' - '.repeat(this.depth)}`\n }\n\n get path(): string {\n if (!this.parent)\n return '';\n else {\n const ownerNode = this.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: this.id\n }\n })) as AreNode;\n\n const NodePath = this.parent.index.pathOf(ownerNode);\n\n return this.parent.path ? (this.parent.path + '.' + NodePath) : NodePath!;\n }\n }\n\n *paths(): Iterable<string> {\n let paths = this.index.paths;\n\n // create proper tree sequence\n paths.sort((a, b) => {\n const aParsed = a.split('.').map(part => parseInt(part, 10));\n const bParsed = b.split('.').map(part => parseInt(part, 10));\n\n const len = Math.min(aParsed.length, bParsed.length);\n for (let i = 0; i < len; i++) {\n if (aParsed[i] !== bParsed[i]) {\n return aParsed[i] - bParsed[i];\n }\n }\n return aParsed.length - bParsed.length;\n });\n\n // yield paths\n for (const path of paths) {\n yield path;\n }\n }\n\n plan(instruction: AreSceneInstruction) {\n try {\n this.scope.register(instruction);\n } catch (error) {\n }\n }\n\n unPlan(\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n try {\n if (planned)\n this.scope.deregister(planned);\n } catch (error) {\n\n }\n }\n\n isAttached(node: AreNode): boolean {\n return !!(this.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: node.aseid\n }\n })));\n }\n\n attach(node: AreNode): void {\n this.scope.register(node);\n node.scope.inherit(this.scope)\n }\n\n sceneOf(node: AreNode): AreScene | undefined {\n return node.scope.resolveFlat<AreScene>(AreScene);\n }\n\n propsOf(node: AreNode): AreProps {\n return node.scope.resolveFlat<AreProps>(AreProps)!;\n }\n\n storeOf(node: AreNode): AreStore {\n return node.scope.resolveFlat<AreStore>(AreStore)!;\n }\n isPlanned(action: AreSceneInstruction): boolean {\n return this.getPlanned(action) !== undefined;\n }\n\n /**\n * It returns planned instruction instance from the scene\n * \n * [!] Only Planned instructions can be used for state checking\n * \n * @param instruction \n * @returns \n */\n getPlanned<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get\n */\n instruction: T\n ): T | undefined {\n\n const planned = this.scope.resolve<AreSceneInstruction>(new A_Dependency(AreSceneInstruction, {\n flat: true,\n query: {\n aseid: instruction.aseid.toString()\n }\n })) as T | undefined;\n\n return planned;\n }\n\n /**\n * Operation Only applicable from Plan -> State\n * \n * So only instructions presented in the plan can be moved to state\n * State is a set of instructions that are currently applied to the scene\n * \n * @param instruction \n */\n setState(\n /**\n * Should be instruction instance to apply\n */\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n this._state.add(instruction.aseid.toString());\n }\n }\n\n\n dropState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to drop\n */\n instruction: T\n ) {\n const planned = this.getPlanned(instruction);\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n }\n }\n\n\n resetPlan(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n this.unPlan(instruction);\n }\n }\n }\n\n resetState(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n\n this._state.delete(instruction.aseid.toString());\n }\n }\n }\n\n\n getState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get state for\n */\n instruction: T\n ): T | undefined {\n\n\n const planned = this.getPlanned(instruction);\n\n\n if (!planned) {\n return undefined;\n }\n\n if (this._state.has(planned.aseid.toString()))\n return planned as T;\n else\n return undefined;\n }\n\n revert(\n /**\n * Should be instruction instance to revert\n */\n instruction: AreSceneInstruction\n ) {\n this._state.delete(instruction!.aseid.toString());\n }\n\n\n reset() {\n this.index.clear();\n this._state.clear();\n }\n\n\n toJSON(): AreSCene_Serialized {\n return {\n ...super.toJSON(),\n children: Object.fromEntries(\n Array.from(this.children).map(child => [\n child.id.toString(),\n child.toJSON()\n ])\n )\n }\n }\n}\n\n\n\n\n\n// Just to cover the proper lifecycle\n\n/*\n1) Create Scene with template from mounting point content\n2) Do indexing of the scene \n\n*/","import { A_Error } from \"@adaas/a-concept\";\n\n\nexport class AreSceneError extends A_Error {\n\n static readonly SceneError = 'AreSceneError.SceneError';\n\n static readonly RootNotFound = 'AreSceneError.RootNotFound';\n\n static readonly UpdateFailed = 'AreSceneError.UpdateFailed';\n \n static readonly MountFailed = 'AreSceneError.MountFailed';\n\n static readonly UnmountFailed = 'AreSceneError.UnmountFailed';\n\n static readonly MountPointNotFound = 'AreSceneError.MountPointNotFound';\n\n static readonly InvalidTemplate = 'AreSceneError.InvalidTemplate';\n\n static readonly RenderFailed = 'AreSceneError.RenderFailed';\n\n}","import { A_Context, A_Entity, A_Error, A_FormatterHelper, A_IdentityHelper, A_Scope, A_TypeGuards, ASEID } from \"@adaas/a-concept\";\nimport { AreNodeNewProps } from \"./AreNode.types\";\nimport { AreEvent } from \"@adaas/are/event\";\nimport { AreNodeFeatures } from \"./AreNode.constants\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { A_Frame } from \"@adaas/a-frame\";\n\n\n\n@A_Frame.Entity({\n namespace: 'A-ARE',\n name: 'AreNode',\n description: 'An AreNode entity represents a node within the A-Concept Rendering Engine (ARE) framework. It encapsulates template, markup, and styles, and manages its own scope for nested fragments and entities. AreNodes are responsible for handling events, compiling, rendering, updating, and lifecycle management within the ARE context.'\n})\nexport class AreNode extends A_Entity<AreNodeNewProps> {\n /**\n * Template string defined for the node\n * Example: `<div>{{name}}</div>`\n */\n _template!: string\n /**\n * Markup string defined for the node\n * Example: `<custom-component :prop=\"value\"> <div>Inner Content</div> </custom-component>`\n */\n _markup!: string\n /**\n * Styles string defined for the node\n */\n _styles!: string\n /**\n * The scope associated with this node\n * uses to store all nested fragments and entities like other AreNodes and Scene\n */\n protected _scope!: A_Scope\n\n get id(): string {\n return this.aseid.id;\n }\n\n get scope(): A_Scope {\n if (!this._scope) {\n this._scope = new A_Scope({\n name: `${this.aseid.id}`,\n });\n }\n\n return this._scope;\n }\n\n get content(): AreScene {\n return this.scope.resolveFlat<AreScene>(AreScene)!;\n }\n\n get type(): string {\n return this.aseid.entity;\n }\n\n get template(): string {\n return this._template;\n }\n\n\n get markup(): string {\n return this._markup;\n }\n\n get styles(): string {\n return this._styles;\n }\n\n\n fromNew(newEntity: AreNodeNewProps): void {\n this.aseid = this.generateASEID({\n id: newEntity.id,\n entity: newEntity.component,\n scope: newEntity.scope,\n });\n\n this._template = newEntity.template || '';\n this._markup = newEntity.markup || '';\n this._styles = newEntity.styles || '';\n }\n\n\n fromASEID(aseid: string | ASEID): void {\n super.fromASEID(aseid);\n\n this._template = '';\n this._markup = '';\n this._styles = '';\n }\n\n\n setTemplate(template: string): void {\n this._template = template;\n }\n\n setMarkup(markup: string): void {\n this._markup = markup;\n }\n\n setStyles(styles: string): void {\n this._styles = styles;\n }\n\n\n\n async emit(\n scope: A_Scope,\n )\n async emit(\n event: AreEvent,\n )\n async emit(\n eventOrScope: AreEvent | A_Scope,\n ) {\n this.checkScopeInheritance();\n\n /**\n * isolated event scope to avoid polluting the node scope\n */\n const eventScope = A_TypeGuards.isScopeInstance(eventOrScope)\n ? eventOrScope\n .inherit(this.scope)\n : new A_Scope({\n name: `${eventOrScope.name}-scope`,\n fragments: [eventOrScope]\n })\n .inherit(this.scope)\n\n try {\n\n await this.call(AreNodeFeatures.onEvent, eventScope)\n\n eventScope.destroy()\n\n } catch (error) {\n\n eventScope.destroy();\n\n throw error;\n }\n\n }\n\n compile(): void {\n\n this.checkScopeInheritance();\n\n try {\n\n this.call(AreNodeFeatures.onCompile, this.scope);\n\n } catch (error) {\n throw error;\n }\n }\n\n render(): void {\n this.checkScopeInheritance();\n\n try {\n\n return this.call(AreNodeFeatures.onRender, this.scope);\n\n } catch (error) {\n throw error;\n }\n }\n\n\n async update(): Promise<void> {\n\n this.checkScopeInheritance();\n\n try {\n await this.call(AreNodeFeatures.onUpdate, this.scope);\n\n } catch (error) {\n throw error;\n }\n }\n\n\n async reset(): Promise<void> {\n this.scope.destroy();\n\n this._template = '';\n this._styles = '';\n\n this._scope = new A_Scope({\n name: `${this.aseid.id}`,\n });\n }\n\n unmount(): void {\n this.checkScopeInheritance();\n\n try {\n this.call(AreNodeFeatures.onUnmount, this.scope);\n } catch (error) {\n throw error;\n }\n }\n\n\n async load(): Promise<any> {\n return await super.load(this.scope);\n }\n\n async destroy(): Promise<any> {\n this.checkScopeInheritance();\n try {\n\n await super.destroy(this.scope);\n\n this.scope.destroy();\n\n } catch (error) {\n\n this._scope.destroy();\n\n throw error;\n }\n }\n\n\n //============================================================================================\n // Helpers Methods\n //============================================================================================\n /**\n * Method to ensure that the current scope is inherited from the context scope\n * \n * @throws A_Error if the scope is not inherited from the context scope\n */\n protected checkScopeInheritance(): void {\n let attachedScope: A_Scope;\n\n try {\n attachedScope = A_Context.scope(this);\n } catch (error) {\n throw new A_Error({\n title: `A_UI_Node Scope Inheritance Error`,\n description: `The A_UI_Node entity with ASEID '${this.aseid.toString()}' is not bound to any context scope. Please ensure that the entity is created within a valid context.`,\n originalError: error\n });\n }\n }\n}","import { A_Component, A_Context, A_Error } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreDirective, AreInterpolation, AreAttribute, AreListener } from \"./AreSyntax.types\";\nimport { AreSyntaxContext } from \"./AreSyntax.context\";\nimport { AreNode } from \"@adaas/are/node\";\nimport type { AreStore } from \"@adaas/are/store\";\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreSyntax',\n description: 'Context component that defines the syntax rules and structures for the A-Concept Rendering Engine (ARE). It provides mechanisms for parsing and interpreting templates, attributes, directives, interpolations, and event listeners, enabling dynamic and interactive UI rendering within the ARE framework.'\n})\nexport class AreSyntax extends A_Component {\n\n\n get config(): AreSyntaxContext {\n return A_Context.scope(this).resolveFlat<AreSyntaxContext>(AreSyntaxContext)!;\n }\n\n\n /**\n * Determines if a tag is a root node\n * \n * @param node \n * @returns \n */\n @A_Frame.Method({\n description: 'Determines if a given AreNode is a root node based on its entity type.'\n })\n isRootNode(node: AreNode): boolean {\n return node.aseid.entity.toLowerCase() === this.config.rootTag;\n }\n\n /**\n * Determines if a tag is a custom component or standard HTML\n * \n * @param node \n * @returns \n */\n @A_Frame.Method({\n description: 'Determines if a given AreNode represents a custom component as opposed to a standard HTML tag.'\n })\n isCustomNode(node: AreNode): boolean {\n return !this.config.standardTags.has(node.aseid.entity.toLowerCase());\n }\n\n\n /**\n * Extracts root AreNode elements from the document based on the configured root tag.\n * \n * @returns An iterable of AreNode instances representing the root elements.\n */\n @A_Frame.Method({\n description: 'Extracts root AreNode elements from the document based on the configured root tag.'\n })\n extractRoots(template: string): AreNode[] {\n const rootTag = this.config.rootTag;\n const rootTagRegex = new RegExp(`<${rootTag}([\\\\s>])`, 'gi');\n let match: RegExpExecArray | null;\n const nodes: AreNode[] = [];\n\n while ((match = rootTagRegex.exec(template)) !== null) {\n const startIndex = match.index;\n const endTag = `</${rootTag}>`;\n const endIndex = template.indexOf(endTag, startIndex);\n\n if (endIndex === -1) {\n throw new A_Error(`Missing closing tag for <${rootTag}> starting at index ${startIndex}`);\n }\n\n const attributes = this.extractAttributes(template.slice(startIndex, endIndex + endTag.length));\n let rootId = `auto-root-${startIndex}`;\n \n for (let i = 0; i < attributes.length; i++) {\n if (attributes[i].name === 'id') {\n rootId = attributes[i].value;\n break;\n }\n }\n\n const markup = template.slice(startIndex, endIndex + endTag.length);\n const content = markup.slice(rootTag.length + 2, -endTag.length).trim();\n \n\n const node = new AreNode({\n id: rootId,\n scope: 'are',\n component: 'are-root',\n markup: markup,\n template: content,\n });\n\n nodes.push(node);\n }\n \n return nodes;\n }\n\n\n /**\n * Extracts interpolations from template (syntax-agnostic).\n * \n * Simply finds all interpolation patterns and returns their position, raw text, and name.\n * Works with any template format - HTML, plain text, or any other syntax.\n * \n * Example: `Hello {{name}}, welcome to {{place}}!`\n * Returns: [\n * { raw: \"{{name}}\", name: \"name\", position: 6 },\n * { raw: \"{{place}}\", name: \"place\", position: 26 }\n * ]\n * \n * @param template - Template string in any format\n */\n @A_Frame.Method({\n description: 'Extracts interpolations from a template string based on the configured interpolation delimiters.'\n })\n extractInterpolations(template: string): AreInterpolation[] {\n const interpolationRegex = new RegExp(`${this.config.interpolationDelimiters[0]}\\\\s*([a-zA-Z0-9_.$]+)\\\\s*${this.config.interpolationDelimiters[1]}`, 'g');\n const interpolations: AreInterpolation[] = [];\n\n let match: RegExpExecArray | null;\n while ((match = interpolationRegex.exec(template)) !== null) {\n interpolations.push({\n raw: match[0],\n name: match[1],\n position: match.index!\n });\n }\n \n return interpolations;\n }\n\n /**\n * Extracts custom directives from the FIRST/TOP-LEVEL opening tag ONLY.\n * Directives start with `$`\n *\n * Examples:\n * $if=\"condition\"\n * $show\n * $no-update=\"\"\n * \n * Note: This method intentionally ignores nested elements and only processes\n * the very first opening tag in the provided template string.\n */\n @A_Frame.Method({\n description: 'Extracts custom directives from the first opening tag of a template string.'\n })\n extractDirectives(template: string): AreDirective[] {\n // Trim whitespace to ensure we start at the actual first tag\n const trimmedTemplate = template.trim();\n\n // Match ONLY the very first opening tag (anchored with ^)\n const firstTagMatch = trimmedTemplate.match(\n /^<([a-zA-Z][^\\s/>]*)(\\s[^>]*?)?>/\n );\n\n if (!firstTagMatch) return [];\n\n const tag = firstTagMatch[1];\n const attributesPart = firstTagMatch[2];\n\n // If no attributes, no directives possible\n if (!attributesPart) return [];\n\n /**\n * Extract directives from the first tag's attributes only.\n * Matches patterns like:\n * $if=\"condition\"\n * $show\n * $no-update=\"\"\n */\n const directiveRegex = new RegExp(\n `\\\\s+(\\\\${this.config.directiveDelimiter}[a-zA-Z0-9_-]+)(?:\\\\s*=\\\\s*(?:\"([^\"]*)\"|'([^']*)'))?`,\n 'g'\n );\n\n let match: RegExpExecArray | null;\n const directives: AreDirective[] = [];\n\n while ((match = directiveRegex.exec(attributesPart)) !== null) {\n const name = match[1];\n\n // Optional whitelist support - only apply if whitelist is explicitly provided\n if (\n this.config.customDirectives &&\n this.config.customDirectives.length > 0 &&\n !this.config.customDirectives.includes(name)\n ) {\n continue;\n }\n\n const raw = match[0];\n const value = match[2] ?? match[3];\n const tagTemplate = firstTagMatch[0]; // Only the first tag\n\n directives.push({\n tag,\n name,\n raw,\n value,\n template: tagTemplate\n });\n }\n \n return directives;\n }\n\n\n /**\n * Extracts component props from the FIRST opening tag.\n *\n * Examples:\n * label=\"Click\"\n * :label=\"'Click Me'\"\n *\n * Excludes:\n * @click\n * $if\n */\n extractAttributes(template: string): AreAttribute[] {\n // Match first opening tag\n const firstTagMatch = template.match(\n /^<([a-zA-Z][^\\s/>]*)(\\s[^>]*?)?>/\n );\n\n if (!firstTagMatch) return [];\n\n const tag = firstTagMatch[1];\n const attributesPart = firstTagMatch[2];\n\n if (!attributesPart) return [];\n\n /**\n * Matches:\n * label=\"text\"\n * :label=\"'Click'\"\n *\n * Skips:\n * @click\n * $if\n */\n const propRegex = new RegExp(\n `\\\\s+(\\\\${this.config.bindingDelimiter}?)([a-zA-Z][a-zA-Z0-9._-]*)\\\\s*=\\\\s*(?:\"([^\"]*)\"|'([^']*)')`,\n 'g'\n );\n\n let match: RegExpExecArray | null;\n const attributes: AreAttribute[] = [];\n\n while ((match = propRegex.exec(attributesPart)) !== null) {\n const isBinding = match[1] === this.config.bindingDelimiter;\n const name = match[2];\n\n // Exclude listeners & directives explicitly\n if (\n name.startsWith(this.config.listenerDelimiter) ||\n name.startsWith(this.config.directiveDelimiter)\n ) {\n continue;\n }\n\n const raw = match[0];\n const value = match[3] ?? match[4];\n\n attributes.push({\n tag,\n name,\n raw,\n value: value || '',\n binding: isBinding\n });\n }\n \n return attributes;\n }\n\n\n /**\n * Extracts event listeners from the FIRST/TOP-LEVEL opening tag ONLY in the template.\n * Supports:\n * - @event=\"handler\"\n * - @event='handler'\n * \n * Note: This method intentionally ignores nested elements and only processes\n * the very first opening tag in the provided template string.\n */\n extractListeners(template: string): AreListener[] {\n // Trim whitespace to ensure we start at the actual first tag\n const trimmedTemplate = template.trim();\n\n // Match ONLY the very first opening tag (anchored with ^)\n const firstTagMatch = trimmedTemplate.match(\n /^<([a-zA-Z][^\\s/>]*)(\\s[^>]*?)?>/\n );\n\n if (!firstTagMatch) return [];\n\n const tag = firstTagMatch[1];\n const attributesPart = firstTagMatch[2];\n\n // If no attributes, no listeners possible\n if (!attributesPart) return [];\n\n /**\n * Extract listeners from the first tag's attributes only.\n * Match listener attributes:\n * @input=\"onChange\"\n * @change='handleChange'\n */\n const listenerRegex = new RegExp(\n `\\\\s+${this.config.listenerDelimiter}([a-zA-Z0-9_:-]+)` +\n `\\\\s*=\\\\s*(?:\"([^\"]*)\"|'([^']*)')`,\n 'g'\n );\n\n let match: RegExpExecArray | null;\n const listeners: AreListener[] = [];\n\n while ((match = listenerRegex.exec(attributesPart)) !== null) {\n const raw = match[0];\n const name = match[1];\n const handler = match[2] ?? match[3] ?? \"\";\n\n listeners.push({\n tag,\n name,\n raw,\n handler\n });\n }\n \n return listeners;\n }\n\n\n\n isBindingProp(prop: AreAttribute): boolean {\n return prop.raw.trim().startsWith(this.config.bindingDelimiter)\n }\n\n\n extractPropValue(prop: AreAttribute, parentStore: AreStore): any {\n\n if (prop.value == null) {\n return undefined;\n }\n\n // Binding prop (starts with :)\n if (prop.binding) {\n const value = prop.value.trim();\n\n // Static literal binding: :label=\"'Click'\" or :\"Click\"\n if (\n (value.startsWith(\"'\") && value.endsWith(\"'\")) ||\n (value.startsWith('\"') && value.endsWith('\"'))\n ) {\n return value.slice(1, -1);\n }\n\n // Dynamic binding: :label=\"someKey\"\n // (future: expressions, paths, computed, etc.)\n return parentStore?.get(value);\n }\n\n // Static prop: label=\"Click\"\n return prop.value;\n }\n\n\n replaceInterpolation(template: string, interpolation: AreInterpolation | string, value: any): string {\n const key = typeof interpolation === 'string' ? interpolation : interpolation.name;\n\n return template.replace(new RegExp(`${this.config.interpolationDelimiters[0]}\\\\s*${key}\\\\s*${this.config.interpolationDelimiters[1]}`, 'g'), value !== undefined ? String(value) : '');\n }\n\n\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class AreSyntaxError extends A_Error {\n\n static readonly SyntaxParseError = 'Are Syntax Parse Error';\n static readonly SyntaxNotSupportedError = 'Are Syntax Not Supported Error';\n static readonly MethodNotImplementedError = 'Are Syntax Method Not Implemented Error';\n\n}","import { A_Signal } from \"@adaas/a-utils/a-signal\";\n\nexport class AreInitSignal extends A_Signal {\n static async default(): Promise<A_Signal| undefined> {\n return new AreInitSignal({ data: { ready: false } });\n }\n}","import { A_Route } from \"@adaas/a-utils/a-route\";\nimport { A_Signal } from \"@adaas/a-utils/a-signal\";\n\n\n\nexport class AreRouteSignal extends A_Signal<{\n route: A_Route;\n}> {\n\n constructor(path: string | RegExp) {\n super({\n data: {\n route: new A_Route(path)\n }\n });\n }\n\n get route(): A_Route {\n return this.data.route;\n }\n\n static async default(): Promise<A_Signal | undefined> {\n return new AreRouteSignal(document.location.href);\n }\n}","import { A_Dependency, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { AreContext } from \"@adaas/are/component\";\nimport { AreSyntax } from \"@adaas/are/syntax\";\nimport { AreInitSignal } from \"@adaas/are/signals\";\nimport { A_Service, A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_SignalBus } from \"@adaas/a-utils/a-signal\";\n\n\n\nexport class AreApp extends A_Service {\n\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onAfterLoad](\n @A_Dependency.Required()\n @A_Inject(AreContext) context: AreContext,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ): Promise<void> {\n\n }\n\n\n // @A_Feature.Extend()\n // protected async [A_ServiceFeatures.onBeforeLoad](\n // @A_Inject(AreSyntax) syntax: AreSyntax,\n // @A_Inject(AreContext) context: AreContext,\n\n // @A_Inject(A_Logger) logger?: A_Logger,\n // ): Promise<void> {\n // logger?.debug('cyan', `Initializing AreScene in AreBrowserCompiler...`);\n\n\n // }\n\n\n @A_Feature.Extend()\n protected async [A_ServiceFeatures.onStart](\n @A_Dependency.Required()\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(A_SignalBus) bus: A_SignalBus,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ): Promise<void> {\n\n for (const root of syntax.extractRoots(context.source)) {\n\n context.addRoot(root)\n\n let startTime = Date.now();\n\n await root.load();\n\n logger?.info('red', `Root <${root.aseid.id}> loaded in ${Date.now() - startTime} ms.`);\n\n startTime = Date.now();\n\n root.compile();\n\n logger?.info('red', `Root <${root.aseid.id}> compiled in ${Date.now() - startTime} ms.`);\n\n startTime = Date.now();\n\n root.render();\n\n logger?.info('red', `Root <${root.aseid.id}> rendered in ${Date.now() - startTime} ms.`);\n }\n\n logger?.debug('cyan', `UI Application started at <${context.roots.map(root => root.aseid.id).join(', ')}> with ${context.roots.length} root nodes.`);\n\n await bus.next(new AreInitSignal())\n }\n\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\nexport class AreAppError extends A_Error {\n\n\n}","import { A_Error } from \"@adaas/a-concept\";\n\n\n\nexport class AreCompilerError extends A_Error {\n\n static readonly RenderError = 'Are Compiler Render Error';\n static readonly CompilationError = 'Are Compiler Compilation Error';\n}","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\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreIndex } from \"@adaas/are/index\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { AreNode, AreNodeFeatures } from \"@adaas/are/node\";\nimport {\n AreSceneInstructionFeatures,\n AttachRootNodeInstruction,\n MountNodeInstruction,\n UnmountNodeInstruction,\n AddStyleInstruction,\n AttachListenerInstruction,\n AddAttributeInstruction,\n ReplaceInterpolationInstruction,\n AddDirectiveInstruction,\n} from \"@adaas/are/scene-instruction\";\nimport { AreSyntax } from \"@adaas/are/syntax\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\nimport { A_SignalBusFeatures, A_SignalState, A_SignalVector } from \"@adaas/a-utils/a-signal\";\nimport { Are, AreContext, AreFeatures } from \"@adaas/are/component\";\nimport { AreProps } from \"@adaas/are/props\";\nimport { AreStore } from \"@adaas/are/store\";\nimport { AreEvent } from \"@adaas/are/event\";\nimport { AreCompilerError } from \"./AreCompiler.error\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreCompiler',\n 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.'\n})\nexport class AreCompiler extends A_Component {\n\n\n\n // ==================================================================================\n // ========================= COMPONENT METHODS ======================================\n // ==================================================================================\n index(node: AreNode) {\n\n }\n\n component(node: AreNode): Are | undefined {\n let scope: A_Scope\n\n try {\n scope = node.scope\n } catch (error) {\n scope = A_Context.scope(this)\n }\n\n return scope.resolve<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity)) as Are | undefined;\n }\n // ==================================================================================\n // ========================= ARE-NODE METHODS ======================================\n // ==================================================================================\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Load Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles before load lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: A_TYPES__EntityFeatures.LOAD,\n before: /.*/,\n scope: [AreNode]\n })\n async beforeLoad(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n\n const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));\n\n if (component)\n await feature.chain(component, AreFeatures.onBeforeLoad, node.scope);\n }\n\n /**\n * Loads the AreNode into the AreScene\n * \n * @param node \n * @param scope \n * @param syntax \n * @param feature \n * @param logger \n * @param args \n */\n @A_Feature.Extend({\n name: A_TYPES__EntityFeatures.LOAD,\n scope: [AreNode]\n })\n async load(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n @A_Inject(A_Feature) feature: A_Feature,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n const loadTimerLabel = `Load Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;\n console.time(loadTimerLabel);\n\n console.time(`Load: Component Resolution for <${node.aseid.entity}>`);\n const component = this.component(node);\n console.timeEnd(`Load: Component Resolution for <${node.aseid.entity}>`);\n\n\n if (!component && syntax.isCustomNode(node)) {\n logger?.warning(\n 'Component Not Found',\n `No component registered for entity: ${node.aseid.entity}. Please ensure that the component is registered in the scope before rendering.`\n );\n }\n\n console.time(`Load: Scene/Store/Props Creation for <${node.aseid.entity}>`);\n const newNodeScene = new AreScene(node.aseid);\n const newNodeIndex = new AreIndex(node.aseid);\n const newNodeStore = new AreStore(node.aseid);\n const newNodeProps = new AreProps(node.aseid);\n\n scope.register(newNodeScene);\n scope.register(newNodeIndex);\n\n if (syntax.isCustomNode(node)) {\n scope.register(newNodeStore);\n scope.register(newNodeProps);\n }\n console.timeEnd(`Load: Scene/Store/Props Creation for <${node.aseid.entity}>`);\n\n if (component) {\n console.time(`Load: Component Lifecycle Chains for <${node.aseid.entity}>`);\n await feature.chain(component, AreFeatures.onData, scope);\n await feature.chain(component, AreFeatures.onStyles, scope);\n await feature.chain(component, AreFeatures.onTemplate, scope);\n console.timeEnd(`Load: Component Lifecycle Chains for <${node.aseid.entity}>`);\n }\n\n console.time(`Load: Node Indexing for <${node.aseid.entity}>`);\n this.index(node);\n console.timeEnd(`Load: Node Indexing for <${node.aseid.entity}>`);\n\n logger?.debug(newNodeScene.debugPrefix + `Loaded component <${node.aseid.entity}> with ${this.constructor.name}`);\n\n console.time(`Load: Child Nodes Processing for <${node.aseid.entity}>`);\n const sceneNodes = newNodeScene.nodes();\n for (let i = 0; i < sceneNodes.length; i++) {\n const sceneNode = sceneNodes[i];\n const childTimerLabel = `Load: Child Node [${i}] <${sceneNode.aseid.entity}> for Parent <${node.aseid.entity}>`;\n console.time(childTimerLabel);\n\n if (!newNodeScene.isAttached(sceneNode)) {\n newNodeScene.attach(sceneNode)\n await sceneNode.load();\n }\n\n console.timeEnd(childTimerLabel);\n }\n console.timeEnd(`Load: Child Nodes Processing for <${node.aseid.entity}>`);\n\n console.timeEnd(loadTimerLabel);\n\n }\n /**\n * Handles after load lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: A_TYPES__EntityFeatures.LOAD,\n after: /.*/,\n scope: [AreNode]\n })\n async afterLoad(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Load -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = this.component(node);\n\n if (component)\n await feature.chain(component, AreFeatures.onAfterLoad, node.scope);\n\n }\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Compile Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles before compile lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onCompile,\n before: /.*/,\n scope: [AreNode]\n })\n beforeCompile(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Compile -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));\n\n if (component)\n feature.chain(component, AreFeatures.onBeforeCompile, node.scope);\n }\n /**\n * Compiles the AreNode using AreCompiler\n * \n * \n * @param logger \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onCompile,\n scope: [AreNode]\n })\n compile(\n /**\n * Actual Node no be compiled\n */\n @A_Inject(A_Caller) node: AreNode,\n /**\n * Nodes owned Scene, Node content\n */\n @A_Dependency.Flat()\n @A_Inject(AreScene) scene: AreScene,\n /**\n * Parent Scene where the node is registered\n */\n @A_Dependency.Parent()\n @A_Inject(AreScene) parentScene: AreScene,\n /**\n * Global Syntax Definition for parsing markup\n */\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(AreProps) props: AreProps,\n @A_Inject(AreStore) store: AreStore,\n\n @A_Dependency.Parent()\n @A_Inject(AreStore) parentStore: AreStore,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n\n @A_Inject(A_Scope) scope?: A_Scope,\n ) {\n const compileTimerLabel = `Compile Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;\n console.time(compileTimerLabel);\n\n try {\n // the case when it's NOT a RootNode\n if (!syntax.isRootNode(node)) {\n\n logger?.debug('violet', scene.debugPrefix + `Compiling node <${node.aseid.entity}> in Scene <${parentScene.name}>`);\n\n console.time(`Compile: Mount Instruction Planning for <${node.aseid.entity}>`);\n // -------------------------------------------------------\n // 1) index the scene and plan Mount Node instruction\n // -------------------------------------------------------\n const mountInstruction = new MountNodeInstruction(node, scene.path);\n\n if (!parentScene.isPlanned(mountInstruction)) {\n logger?.debug('red', scene.debugPrefix + `Planning Node Mount for Node <${node.type}> ASEID: <${node.aseid.entity}>`);\n\n parentScene.plan(mountInstruction);\n mountInstruction.init();\n }\n console.timeEnd(`Compile: Mount Instruction Planning for <${node.aseid.entity}>`);\n\n console.time(`Compile: Template Interpolation Processing for <${node.aseid.entity}>`);\n if (syntax.isCustomNode(node)) {\n const interpolations = syntax.extractInterpolations(node.template);\n for (let i = 0; i < interpolations.length; i++) {\n const interpolation = interpolations[i];\n console.time(`Compile: Interpolation [${i}] \"${interpolation.name}\" for <${node.aseid.entity}>`);\n\n const value = store.get(interpolation.name) || parentStore.get(interpolation.name);\n\n const instruction = new ReplaceInterpolationInstruction(node, interpolation, value);\n\n const stateInstruction = parentScene.getState(instruction);\n\n instruction.update({ value, prevValue: stateInstruction?.value });\n\n if (!parentScene.isPlanned(instruction)) {\n parentScene.plan(instruction);\n instruction.init();\n } else {\n parentScene.dropState(instruction);\n parentScene.unPlan(instruction);\n parentScene.plan(instruction);\n }\n\n console.timeEnd(`Compile: Interpolation [${i}] \"${interpolation.name}\" for <${node.aseid.entity}>`);\n }\n }\n console.timeEnd(`Compile: Template Interpolation Processing for <${node.aseid.entity}>`);\n\n console.time(`Compile: Attributes Processing for <${node.aseid.entity}>`);\n // 1) extract all props from the markup and set them in the props store\n const attributes = syntax.extractAttributes(node.markup);\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n console.time(`Compile: Attribute [${i}] \"${attr.name}\" for <${node.aseid.entity}>`);\n\n const name = attr.name;\n const value = (syntax.isBindingProp(attr) ?\n store.get(attr.value) || parentStore.get(attr.value)\n : attr.value) || '';\n\n props.set(name, value);\n\n parentScene.plan(new AddAttributeInstruction(node, name, value));\n\n console.timeEnd(`Compile: Attribute [${i}] \"${attr.name}\" for <${node.aseid.entity}>`);\n }\n console.timeEnd(`Compile: Attributes Processing for <${node.aseid.entity}>`);\n\n console.time(`Compile: Directives Processing for <${node.aseid.entity}>`);\n // 3a) Process directives first before other operations\n const directives = syntax.extractDirectives(node.markup);\n for (let i = 0; i < directives.length; i++) {\n const directive = directives[i];\n console.time(`Compile: Directive [${i}] \"${directive.name}\" for <${node.aseid.entity}>`);\n\n let directiveValue: any;\n\n // Get the directive value from store or props\n if (directive.value) {\n directiveValue = store.get(directive.value) || parentStore.get(directive.value);\n }\n\n let instruction = new AddDirectiveInstruction(node, directive, directiveValue);\n\n const stateInstruction = parentScene.getState(instruction);\n\n if (!stateInstruction || stateInstruction.value !== directiveValue) {\n parentScene.unPlan(instruction);\n parentScene.plan(instruction);\n\n instruction.init();\n }\n\n console.timeEnd(`Compile: Directive [${i}] \"${directive.name}\" for <${node.aseid.entity}>`);\n }\n console.timeEnd(`Compile: Directives Processing for <${node.aseid.entity}>`);\n\n console.time(`Compile: Styles Processing for <${node.aseid.entity}>`);\n // -------------------------------------------------------\n // 2) replace all style interpolations in the styles\n // -------------------------------------------------------\n let styles = node.styles || '';\n const styleInterpolations = syntax.extractInterpolations(styles);\n for (let i = 0; i < styleInterpolations.length; i++) {\n const interpolation = styleInterpolations[i];\n console.time(`Compile: Style Interpolation [${i}] \"${interpolation.name}\" for <${node.aseid.entity}>`);\n\n const value = store.get(interpolation.name);\n styles = syntax.replaceInterpolation(styles, interpolation, value);\n\n console.timeEnd(`Compile: Style Interpolation [${i}] \"${interpolation.name}\" for <${node.aseid.entity}>`);\n }\n\n if (styles.trim()) {\n const instruction = new AddStyleInstruction(node, styles);\n\n if (!parentScene.isPlanned(instruction)) {\n parentScene.plan(instruction);\n instruction.init();\n }\n }\n console.timeEnd(`Compile: Styles Processing for <${node.aseid.entity}>`);\n\n console.time(`Compile: Listeners Processing for <${node.aseid.entity}>`);\n // -------------------------------------------------------\n // 3) go through all listeners and register them in the scene\n // -------------------------------------------------------\n const listeners = syntax.extractListeners(node.markup);\n for (let i = 0; i < listeners.length; i++) {\n const listener = listeners[i];\n console.time(`Compile: Listener [${i}] \"${listener.name}\" for <${node.aseid.entity}>`);\n\n // target emitter should be custom component that owns the listener\n let currentScene = scene;\n let targetNode = node\n\n while (!syntax.isCustomNode(targetNode) && currentScene.parent) {\n targetNode = currentScene.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n query: {\n aseid: currentScene.id\n }\n })) as AreNode\n\n currentScene = currentScene.parent;\n }\n\n const instruction = new AttachListenerInstruction(node, targetNode, listener);\n\n if (!parentScene.isPlanned(instruction)) {\n parentScene.plan(instruction);\n instruction.init();\n }\n\n console.timeEnd(`Compile: Listener [${i}] \"${listener.name}\" for <${node.aseid.entity}>`);\n }\n console.timeEnd(`Compile: Listeners Processing for <${node.aseid.entity}>`);\n }\n\n console.time(`Compile: Child Nodes Compilation for <${node.aseid.entity}>`);\n const sceneNodes = scene.nodes();\n for (let i = 0; i < sceneNodes.length; i++) {\n const sceneNode = sceneNodes[i];\n const childTimerLabel = `Compile: Child Node [${i}] <${sceneNode.aseid.entity}> for Parent <${node.aseid.entity}>`;\n console.time(childTimerLabel);\n\n sceneNode.compile();\n\n console.timeEnd(childTimerLabel);\n }\n console.timeEnd(`Compile: Child Nodes Compilation for <${node.aseid.entity}>`);\n\n } catch (error) {\n logger?.error(error);\n }\n\n console.timeEnd(compileTimerLabel);\n }\n /**\n * Handles after compile lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onCompile,\n after: /.*/,\n scope: [AreNode]\n })\n afterCompile(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));\n\n logger?.debug(scene.debugPrefix + `[Compile -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n if (component)\n feature.chain(component, AreFeatures.onAfterCompile, node.scope);\n }\n\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Event Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles events triggered on the AreNode\n * \n * @param node \n * @param scope \n * @param event \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onEvent,\n scope: [AreNode]\n })\n async event(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreEvent) event: AreEvent,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `Event Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}} for event: ${event.name}`);\n\n const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));\n\n if (component) {\n\n try {\n\n await feature.chain(component, event.name, scope);\n\n } catch (error) {\n logger?.error(error);\n }\n }\n }\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Render Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles before render lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onBeforeRender,\n before: /.*/,\n scope: [AreNode]\n })\n beforeRender(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n const component = scope.resolveOnce<Are>(A_FormatterHelper.toPascalCase(node.aseid.entity));\n\n logger?.debug(scene.debugPrefix + `[Render -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n if (component)\n feature.chain(component, AreFeatures.onBeforeRender, node.scope);\n }\n /**\n * Renders the AreNode into the AreScene\n * \n * @param scope \n * @param node \n * @param scene \n * @param logger \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onRender,\n scope: [AreNode]\n })\n render(\n /**\n * Node to be mounted\n */\n @A_Inject(A_Caller) node: AreNode,\n /**\n * Template Parsing Syntax to be used\n */\n @A_Inject(AreSyntax) syntax: AreSyntax,\n /**\n * Node Content\n */\n @A_Dependency.Flat()\n @A_Inject(AreScene) scene: AreScene,\n /**\n * Scene where target node is registered\n * \n * [!] For Root Node it doesn't exists\n */\n @A_Dependency.Parent()\n @A_Inject(AreScene) parentScene?: AreScene,\n\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ...args: any[]\n ) {\n const renderTimerLabel = `Render Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`;\n console.time(renderTimerLabel);\n\n if (syntax.isRootNode(node)) {\n logger?.debug('red', scene.debugPrefix + `Rendering Root Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n console.time(`Render: Root Node Attachment for <${node.aseid.entity}>`);\n new AttachRootNodeInstruction(node).apply(node.scope);\n console.timeEnd(`Render: Root Node Attachment for <${node.aseid.entity}>`);\n } else {\n\n if (!parentScene) {\n throw new AreCompilerError(\n AreCompilerError.RenderError,\n `Parent Scene not found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} during render process.`\n );\n }\n\n logger?.debug('red', scene.debugPrefix + `Rendering Child Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, parentScene);\n\n console.time(`Render: Mount/Unmount Instructions Processing for <${node.aseid.entity}>`);\n // 1) should be mounted or unmounted\n const mountUnmountInstructions = parentScene.renderPlanFor(node, {\n filter: (inst) => inst instanceof MountNodeInstruction || inst instanceof UnmountNodeInstruction,\n });\n\n for (let i = 0; i < mountUnmountInstructions.length; i++) {\n const instruction = mountUnmountInstructions[i];\n const instructionTimerLabel = `Render: Mount/Unmount Instruction [${i}] \"${instruction.action}\" for <${node.aseid.entity}>`;\n console.time(instructionTimerLabel);\n\n if (parentScene.getState(instruction)) {\n logger?.debug('yellow', scene.debugPrefix + `Skipping Action '${instruction.action}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} already processed.`);\n console.timeEnd(instructionTimerLabel);\n continue;\n }\n\n logger?.debug('red', scene.debugPrefix + `Processing ${instruction.action} Instruction for Node <${node.aseid.entity}> `);\n\n instruction.apply();\n parentScene.setState(instruction);\n\n console.timeEnd(instructionTimerLabel);\n }\n console.timeEnd(`Render: Mount/Unmount Instructions Processing for <${node.aseid.entity}>`);\n\n // if There's no Mount Instruction planned, ite means that this node should not be rendered \n // and any other instructions related to it should be ignored\n if (!parentScene.isPlanned(new MountNodeInstruction(node, scene.path))) {\n logger?.debug('yellow', scene.debugPrefix + `No Mount Instruction found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}. Skipping...`);\n console.timeEnd(renderTimerLabel);\n return;\n }\n\n console.time(`Render: Other Instructions Processing for <${node.aseid.entity}>`);\n // 2) process other instructions\n const otherInstructions = parentScene.renderPlanFor(node, {\n order: [\n AddStyleInstruction,\n AttachListenerInstruction,\n AddAttributeInstruction,\n ReplaceInterpolationInstruction\n ]\n });\n\n for (let i = 0; i < otherInstructions.length; i++) {\n const instruction = otherInstructions[i];\n const instructionTimerLabel = `Render: Instruction [${i}] \"${instruction.action}\" for <${node.aseid.entity}>`;\n console.time(instructionTimerLabel);\n\n if (parentScene.getState(instruction)) {\n logger?.debug('yellow', scene.debugPrefix + `Skipping Action '${instruction.action}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} already processed.`);\n console.timeEnd(instructionTimerLabel);\n continue;\n }\n\n try {\n console.time(`Render: Execution Context Creation for Instruction [${i}] <${node.aseid.entity}>`);\n const executionContext = new A_ExecutionContext('AreBrowserCompiler: Mount Node Instruction');\n executionContext.set('content', scene)\n const applyScope = new A_Scope({ fragments: [executionContext] }).inherit(node.scope);\n console.timeEnd(`Render: Execution Context Creation for Instruction [${i}] <${node.aseid.entity}>`);\n\n console.time(`Render: Instruction Apply for [${i}] \"${instruction.action}\" <${node.aseid.entity}>`);\n instruction.apply(applyScope);\n console.timeEnd(`Render: Instruction Apply for [${i}] \"${instruction.action}\" <${node.aseid.entity}>`);\n\n applyScope.destroy();\n parentScene.setState(instruction);\n\n } catch (error) {\n logger?.error(error);\n }\n\n console.timeEnd(instructionTimerLabel);\n }\n console.timeEnd(`Render: Other Instructions Processing for <${node.aseid.entity}>`);\n }\n\n console.time(`Render: Child Nodes Rendering for <${node.aseid.entity}>`);\n const childNodes = scene.nodes();\n for (let i = 0; i < childNodes.length; i++) {\n const child = childNodes[i];\n const childTimerLabel = `Render: Child Node [${i}] <${child.aseid.entity}> for Parent <${node.aseid.entity}>`;\n console.time(childTimerLabel);\n\n console.log(scene.debugPrefix + `Rendering Child Node <${child.aseid.entity}> ASEID: ${child.aseid.toString()}`);\n child.render();\n\n console.timeEnd(childTimerLabel);\n }\n console.timeEnd(`Render: Child Nodes Rendering for <${node.aseid.entity}>`);\n\n console.timeEnd(renderTimerLabel);\n }\n /**\n * Handles after render lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onAfterRender,\n after: /.*/,\n scope: [AreNode]\n })\n afterRender(\n /**\n * Node to be rendered\n */\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n const component = this.component(node);\n\n logger?.debug(scene.debugPrefix + `[Render -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n\n if (component)\n feature.chain(component, AreFeatures.onAfterRender, node.scope);\n\n }\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Update Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles before update lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUpdate,\n before: /.*/,\n scope: [AreNode]\n })\n beforeUpdate(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Update -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = this.component(node);\n\n if (component)\n feature.chain(component, AreFeatures.onBeforeUpdate, node.scope);\n }\n /**\n * Updates the AreNode in the AreScene\n * \n * @param node \n * @param scene \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUpdate,\n scope: [AreNode]\n })\n update(\n /**\n * Node to be updated\n */\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreScene) scene: AreScene,\n\n ...args: any[]\n ) {\n console.time(scene.debugPrefix + `Updating Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n console.time(`Node Compile Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);\n node.compile();\n console.timeEnd(`Node Compile Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);\n\n console.time(`Node Render Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);\n node.render();\n console.timeEnd(`Node Render Time for <${node.aseid.entity}> ASEID: ${node.aseid.toString()}>`);\n\n console.timeEnd(scene.debugPrefix + `Updating Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n }\n /**\n * Handles after update lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUpdate,\n after: /.*/,\n scope: [AreNode]\n })\n afterUpdate(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Update -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = this.component(node);\n\n if (component)\n feature.chain(component, AreFeatures.onAfterUpdate, node.scope);\n }\n\n // -----------------------------------------------------------------------------------------\n // ----------------------------Are-Node Unmount Section----------------------------------------\n // -----------------------------------------------------------------------------------------\n /**\n * Handles before unmount lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUnmount,\n before: /.*/,\n scope: [AreNode]\n })\n beforeUnmount(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Unmount -> Before] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = this.component(node);\n\n if (component)\n feature.chain(component, AreFeatures.onBeforeUnmount, node.scope);\n }\n /**\n * Unmounts the AreNode from the AreScene\n * \n * @param node \n * @param syntax \n * @param scene \n * @param parentScene \n * @param logger \n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUnmount,\n scope: [AreNode]\n })\n unmount(\n /**\n * Node to be unmounted\n */\n @A_Inject(A_Caller) node: AreNode,\n /**\n * Template Parsing Syntax to be used\n */\n @A_Inject(AreSyntax) syntax: AreSyntax,\n /**\n * Node Content\n */\n @A_Dependency.Flat()\n @A_Inject(AreScene) scene: AreScene,\n /**\n * Scene where target node is registered\n * \n * [!] For Root Node it doesn't exists\n */\n @A_Dependency.Parent()\n @A_Inject(AreScene) parentScene?: AreScene,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n\n\n logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n if (!syntax.isRootNode(node)) {\n if (!parentScene) {\n throw new AreCompilerError(\n AreCompilerError.RenderError,\n `Parent Scene not found for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} during unmount process.`\n );\n }\n\n for (const instruction of parentScene.renderPlanFor(node)) {\n if (instruction.node === node) {\n instruction.revert(node.scope);\n parentScene.dropState(instruction);\n parentScene.unPlan(instruction);\n }\n }\n }\n\n for (const child of scene.nodes()) {\n child.unmount();\n }\n\n // await node.reset();\n } catch (error) {\n logger?.error(error);\n }\n }\n /**\n * Handles after unmount lifecycle of the AreNode\n * \n * @param node \n * @param scope \n * @param scene \n * @param feature \n * @param args\n */\n @A_Feature.Extend({\n name: AreNodeFeatures.onUnmount,\n after: /.*/,\n scope: [AreNode]\n })\n afterUnmount(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_Feature) feature: A_Feature,\n ...args: any[]\n ) {\n const logger = scope.resolve<A_Logger>(A_Logger);\n\n logger?.debug(scene.debugPrefix + `[Unmount -> After] Component Trigger for <${node.aseid.entity}> with aseid :{${node.aseid.toString()}}`);\n\n const component = this.component(node);\n\n if (component)\n feature.chain(component, AreFeatures.onAfterUnmount, node.scope);\n }\n\n\n @A_Feature.Extend({\n name: A_SignalBusFeatures.onNext,\n })\n handleSignalVector(\n @A_Inject(A_SignalVector) vector: A_SignalVector,\n @A_Inject(AreContext) context: AreContext,\n @A_Inject(A_SignalState) state: A_SignalState,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n logger?.info(`Handling Signal Vector with ${context.roots.length} root nodes.`);\n\n try {\n for (const root of context.roots) {\n\n const callScope = new A_Scope({\n fragments: [new AreEvent(\n AreFeatures.onSignal, {\n event: 'SignalVectorNext',\n data: { vector }\n })]\n })\n .import(scope, root.scope);\n\n console.log('Emitting signal for root node:', vector);\n\n root.emit(callScope);\n\n callScope.destroy();\n }\n } catch (error) {\n logger?.error(error);\n }\n\n }\n\n}","import { A_Caller, A_Dependency, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { Are } from \"@adaas/are/component\";\nimport { AreStore } from \"@adaas/are/store\";\nimport { AreNode } from \"@adaas/are/node\";\nimport { AreEvent } from \"@adaas/are/event\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\nimport { A_SignalVector } from \"@adaas/a-utils/a-signal\";\n\n\n\nexport class AreRoot extends Are {\n\n @A_Feature.Extend({\n name: A_ServiceFeatures.onLoad\n })\n async attachListeners() {\n \n }\n\n\n\n @Are.Template\n async template(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreStore) store: AreStore,\n ) {\n\n\n\n // node.setTemplate(`\n // <h2>Welcome to Adaas ARE Framework!</h2>\n // `);\n }\n\n\n @Are.Signal\n async onSignal(\n @A_Inject(A_Caller) node: AreNode,\n @A_Inject(AreStore) store: AreStore,\n @A_Inject(AreScene) scene: AreScene,\n @A_Inject(A_SignalVector) vector: A_SignalVector,\n @A_Inject(AreEvent) event: AreEvent,\n // @A_Dependency.All()\n // @A_Inject(A_Signal) signals: A_Signal[],\n ) {\n // Handle signals here\n // console.log('Signals received :', signals);\n console.log('Vector received :', vector);\n console.log('Node received :', node);\n\n\n }\n}\n","import { A_Caller, A_Container, A_Error, A_Feature, A_Inject, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreCompiler } from \"@adaas/are/compiler\";\nimport { AreIndex } from \"@adaas/are/index\";\nimport { AreScene } from \"@adaas/are/scene\";\nimport { AreNode } from \"@adaas/are/node\";\nimport {\n AreSceneInstructionFeatures,\n AttachRootNodeInstruction,\n MountNodeInstruction,\n UnmountNodeInstruction,\n AddStyleInstruction,\n AttachListenerInstruction,\n AddAttributeInstruction,\n ReplaceInterpolationInstruction,\n AddDirectiveInstruction,\n} from \"@adaas/are/scene-instruction\";\nimport { AreSyntax } from \"@adaas/are/syntax\";\nimport { A_ExecutionContext } from \"@adaas/a-utils/a-execution\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLCompiler',\n description: 'HTML-specific compiler for A-Concept Rendering Engine (ARE) components, extending the base AreCompiler to handle HTML templates, styles, and rendering logic tailored for web environments.'\n})\nexport class AreHTMLCompiler extends AreCompiler {\n\n\n\n // ==================================================================================\n // ========================= COMPONENT METHODS =======================================\n // ==================================================================================\n /**\n * Get DOM element by string path from root element\n * Works with paths generated by the string-based parser\n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given path from the root element.'\n })\n getElementByPath(\n root: Element,\n path?: string\n ): Element | undefined {\n\n if (path === undefined || path.trim() === '') {\n return root;\n }\n\n const indices = path.split('.').map(index => parseInt(index, 10));\n let current: Element | undefined = root;\n\n for (const index of indices) {\n if (!current) {\n return undefined;\n }\n // Get only element children (not text nodes, comments, etc.)\n\n const elementChildren = Array.from(current.childNodes).filter(child => child.nodeType === Node.ELEMENT_NODE ||\n child.nodeType === Node.DOCUMENT_NODE || child.nodeType === Node.COMMENT_NODE\n );\n\n if (index >= elementChildren.length) {\n return undefined;\n }\n\n current = elementChildren[index] as Element;\n }\n return current;\n }\n /**\n * Get DOM element by AreNode based on its scene path\n * \n * @param node \n * @returns \n */\n @A_Frame.Method({\n description: 'Get DOM element corresponding to the given AreNode based on its scene path.'\n })\n getElementByNode(node: AreNode): Element | undefined {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n\n return this.getElementByPath(root, scene.path);\n }\n /**\n * Insert DOM element at specified path within root element\n * \n * @param root \n * @param path \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element at the specified path within the root element.'\n })\n insertElementAtPath(\n root: Element,\n path: string,\n element: Element\n ): void {\n const parentPath = path.split('.').slice(0, -1).join('.');\n const parentElement = this.getElementByPath(root, parentPath);\n const index = parseInt(path.split('.').slice(-1)[0], 10);\n if (parentElement) {\n const children = Array.from(parentElement.children).filter(child => child.nodeType === Node.ELEMENT_NODE);\n if (index >= children.length) {\n parentElement.appendChild(element);\n } else {\n parentElement.insertBefore(element, children[index]);\n }\n }\n }\n /**\n * Insert DOM element corresponding to AreNode at its scene path\n * \n * @param node \n * @param element \n */\n @A_Frame.Method({\n description: 'Insert a DOM element corresponding to the given AreNode at its scene path.'\n })\n insertElementByNode(\n node: AreNode,\n element: Element\n ): void {\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const root = document.getElementById(new ASEID(scene.root.id).id)!;\n this.insertElementAtPath(root, scene.path, element);\n }\n /**\n * Index the elements of the given AreNode within its scene\n * \n * @param node \n */\n @A_Frame.Method({\n description: 'Indexes the elements of the given AreNode within its scene, preserving the original markup structure.'\n })\n index(\n node: AreNode\n ) {\n const index = node.scope.resolveFlat<AreIndex>(AreIndex)!;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n\n index.clear();\n scene.reset();\n\n // Use a position-based approach that maps DOM paths to original markup exactly\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = node.template;\n\n // Create a mapping of DOM paths to original markup using DOM traversal\n const markupMap = this.createPositionBasedMarkupMap(node.template);\n\n this.indexElementsFromDOM(tempDiv, index, [], markupMap);\n }\n\n /**\n * Create a position-based mapping by parsing the original template with DOM\n * This ensures 1:1 correspondence between DOM structure and original markup\n */\n private createPositionBasedMarkupMap(template: string): Map<string, string> {\n const markupMap = new Map<string, string>();\n const originalDiv = document.createElement('div');\n originalDiv.innerHTML = template;\n\n // Traverse the original DOM and map each position to its outerHTML\n this.mapDOMPositions(originalDiv, [], markupMap);\n\n return markupMap;\n }\n\n /**\n * Recursively map DOM positions to their exact original markup\n */\n private mapDOMPositions(\n parentElement: Element,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Store the exact outerHTML for this position\n markupMap.set(pathKey, element.outerHTML);\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.mapDOMPositions(element, currentPath, markupMap);\n // }\n }\n }\n\n /**\n * Index elements using actual DOM structure with position-based markup mapping\n */\n private indexElementsFromDOM(\n parentElement: Element,\n index: AreIndex,\n parentPath: number[],\n markupMap: Map<string, string>\n ): void {\n const children = Array.from(parentElement.children);\n\n for (let i = 0; i < children.length; i++) {\n const element = children[i];\n const currentPath = [...parentPath, i];\n const pathKey = currentPath.join('.');\n\n // Get the exact markup for this position from our mapping\n const originalMarkup = markupMap.get(pathKey);\n\n\n // Create AreNode with preserved original markup\n const areNode = new AreNode({\n scope: index.name,\n component: element.tagName.toLowerCase(),\n markup: originalMarkup || element.outerHTML,\n template: element.innerHTML,\n });\n\n // Add to index\n index.add(areNode, currentPath.join('.'));\n\n // Recursively process children\n // if (element.children.length > 0) {\n // this.indexElementsFromDOM(element, index, currentPath, markupMap);\n // }\n }\n }\n\n\n\n\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachRootNodeInstruction]\n })\n applyAttachRootNodeInstruction(\n @A_Inject(A_Caller) instruction: AttachRootNodeInstruction,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n\n // ensure root identified\n const rootElement = document.getElementById(node.id);\n\n if (!rootElement) {\n logger?.warning(`Root element with id <${node.id}> not found in DOM.`);\n return;\n }\n rootElement.innerHTML = node.template;\n\n rootElement.setAttribute('aseid', node.aseid.toString());\n\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [MountNodeInstruction]\n })\n applyMountNodeInstruction(\n @A_Inject(A_Caller) instruction: MountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n try {\n\n const node = instruction.node;\n const scene = instruction.scene;\n\n if (syntax.isCustomNode(node)) {\n\n logger?.debug('red', scene.debugPrefix + `Mounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} at path `);\n const wrapper = document.createElement('div');\n\n wrapper.setAttribute('aseid', node.aseid.toString());\n\n wrapper.innerHTML = node.template;\n\n const element = this.getElementByNode(node);\n\n // Replace the placement with the rendered content\n if (!element) {\n this.insertElementByNode(node, wrapper);\n } else {\n (element).replaceWith(wrapper);\n }\n }\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [UnmountNodeInstruction]\n })\n applyUnmountNodeInstruction(\n @A_Inject(A_Caller) instruction: UnmountNodeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n try {\n // element.remove();\n\n element.replaceWith(document.createComment(` Unmounted Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} `));\n\n node.unmount();\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddStyleInstruction]\n })\n applyAddStyleInstruction(\n @A_Inject(A_Caller) instruction: AddStyleInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n try {\n\n\n const node = instruction.node;\n const scene = instruction.scene;\n const styles = instruction.params?.styles || '';\n\n logger?.debug('green', scene.debugPrefix + `Applying styles for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n const styleElementId = `a-style-${node.aseid.entity}`;\n let styleElement = document.querySelector(`#${styleElementId}`) as HTMLStyleElement | null;\n\n if (!styleElement) {\n styleElement = document.createElement('style');\n styleElement.id = styleElementId;\n document.head.appendChild(styleElement);\n }\n styleElement.innerHTML = styles;\n\n } catch (error) {\n logger?.error(error)\n }\n }\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AttachListenerInstruction]\n })\n applyAttachListenerInstruction(\n @A_Inject(A_Caller) instruction: AttachListenerInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(instruction.node)!;\n const mountPoint = context.get('mountPoint')!;\n\n logger?.debug('green', scene.debugPrefix + `Attaching listener '${instruction.listener.name}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n\n element.addEventListener(instruction.listener.name, instruction.callback as EventListener);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddAttributeInstruction]\n })\n applyAddAttributeInstruction(\n @A_Inject(A_Caller) instruction: AddAttributeInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const content = context.get('content')!;\n\n const element = this.getElementByNode(node)!;\n\n logger?.debug('green', scene.debugPrefix + `Setting attribute '${instruction.name}'='${instruction.value}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, element);\n\n element.setAttribute(instruction.name, instruction.value);\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Revert,\n scope: [ReplaceInterpolationInstruction]\n })\n revertInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n ) {\n this.interpolationTextNodes.delete(instruction.aseid.toString());\n }\n\n\n interpolationTextNodes: Map<string, Text> = new Map();\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [ReplaceInterpolationInstruction]\n })\n applyReplaceInterpolationInstruction(\n @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n @A_Inject(AreSyntax) syntax: AreSyntax,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node)!;\n\n logger?.debug('magenta', scene.debugPrefix + `Replacing interpolation '${instruction.interpolation.name}' with value '${instruction.value}' for target <${node.aseid.entity}>`, instruction);\n\n const textNode = this.interpolationTextNodes.get(instruction.aseid.toString());\n\n if (textNode) {\n textNode.nodeValue = instruction.value;\n } else {\n\n const treeTextNodesWalker = document.createTreeWalker(\n element,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: (node) => {\n if (node.nodeValue && node.nodeValue.includes(instruction.interpolation.raw)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_REJECT;\n }\n },\n );\n\n const foundNode = treeTextNodesWalker.nextNode() as Text | null;\n\n\n // then I have to split this node into multiple text nodes\n if (foundNode) {\n const parts = foundNode.nodeValue!.split(instruction.interpolation.raw);\n\n const parent = foundNode.parentNode;\n\n if (parent) {\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n\n if (part) {\n const textNodePart = document.createTextNode(part);\n parent.insertBefore(textNodePart, foundNode);\n }\n\n if (i < parts.length - 1) {\n const valueNode = document.createTextNode(instruction.value);\n parent.insertBefore(valueNode, foundNode);\n\n // store reference to this text node for future updates\n this.interpolationTextNodes.set(instruction.aseid.toString(), valueNode);\n }\n }\n\n // remove the original node\n parent.removeChild(foundNode);\n }\n }\n }\n }\n\n\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Init,\n scope: [AddDirectiveInstruction]\n })\n initAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n const node = instruction.node;\n const scene = node.scope.resolveFlat<AreScene>(AreScene)!;\n const parentScene = instruction.scene;\n\n logger?.debug('green', scene.debugPrefix + `Initializing directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, scene, parentScene);\n\n\n switch (instruction.directive.name) {\n case '$if': {\n const mountInstruction = new MountNodeInstruction(node, scene.path);\n const unmountInstruction = new UnmountNodeInstruction(node, scene.path);\n\n\n if (instruction.value) {\n parentScene.unPlan(unmountInstruction);\n\n parentScene.plan(mountInstruction);\n parentScene.dropState(mountInstruction);\n } else {\n parentScene.unPlan(mountInstruction);\n\n parentScene.plan(unmountInstruction);\n parentScene.dropState(unmountInstruction);\n }\n\n // switch (true) {\n // case !instruction.value && !!parentScene.getState(mountInstruction):\n // parentScene.unPlan(mountInstruction);\n\n // parentScene.plan(unmountInstruction);\n // parentScene.dropState(unmountInstruction);\n\n // break;\n // case !instruction.value && !parentScene.getState(mountInstruction):\n\n // parentScene.unPlan(mountInstruction);\n\n // break;\n // case instruction.value && !!parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n\n // parentScene.plan(mountInstruction);\n // parentScene.dropState(mountInstruction);\n // break;\n // case instruction.value && !parentScene.getState(unmountInstruction):\n\n // parentScene.unPlan(unmountInstruction);\n // break;\n // default:\n // break;\n // }\n\n break;\n }\n default:\n logger?.warning(`Unknown directive '${instruction.directive.name}' for Node <${node.type}> ASEID: ${node.aseid.toString()}`);\n }\n\n\n\n\n // Directives may have async initialization logic in future\n }\n\n\n @A_Feature.Extend({\n name: AreSceneInstructionFeatures.Apply,\n scope: [AddDirectiveInstruction]\n })\n applyAddDirectiveInstruction(\n @A_Inject(A_Caller) instruction: AddDirectiveInstruction,\n @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{\n element: Element,\n mountPoint: Element,\n content: AreScene,\n }>,\n @A_Inject(A_Scope) scope: A_Scope,\n\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n\n const node = instruction.node;\n const scene = instruction.scene;\n const element = this.getElementByNode(node);\n\n try {\n\n logger?.debug('green', scene.debugPrefix + `Applying directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, instruction);\n\n // switch (instruction.directive.name) {\n // case '$if': {\n // if (!instruction.value && element) {\n // element.replaceWith(document.createComment(`$if directive removed node <${node.aseid.entity}>`));\n // }\n // break;\n // }\n // default:\n // logger?.warning('yellow', scene.debugPrefix + `Unknown directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);\n // }\n\n // Directive application logic goes here\n } catch (error) {\n logger?.error(error)\n }\n }\n}","import { A_Caller, A_Component, A_Container, A_Feature, A_Inject } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport { AreSyntaxContext } from \"@adaas/are/syntax\";\nimport { AreHTMLCompiler } from \"./AreHTML.compiler\";\nimport { A_ServiceFeatures } from \"@adaas/a-utils/a-service\";\nimport { A_Logger } from \"@adaas/a-utils/a-logger\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreHTMLEngine',\n description: 'HTML Rendering Engine for A-Concept Rendering Engine (ARE), responsible for processing and rendering HTML templates within the ARE framework.'\n})\nexport class AreHTMLEngine extends A_Component {\n\n /**\n * Inject AreHTMLSyntax into the container scope before loading\n * \n * @param container \n */\n @A_Feature.Extend({\n name: A_ServiceFeatures.onBeforeLoad,\n before: /.*/\n })\n async injectSyntax(\n @A_Inject(A_Caller) container: A_Container,\n @A_Inject(AreSyntaxContext) syntax?: AreSyntaxContext,\n @A_Inject(AreHTMLCompiler) compiler?: AreHTMLCompiler,\n @A_Inject(A_Logger) logger?: A_Logger,\n ) {\n if (!syntax) {\n logger?.info('cyan', 'Injecting AreHTMLSyntax into container scope...');\n\n const htmlSyntax = new AreSyntaxContext({\n rootTag: 'are-root',\n standardTags: [\n \"html\", \"head\", \"body\", \"div\", \"span\", \"p\", \"a\", \"ul\", \"ol\", \"li\",\n \"table\", \"thead\", \"tbody\", \"tr\", \"td\", \"th\", \"form\", \"input\", \"button\",\n \"select\", \"option\", \"textarea\", \"label\", \"img\", \"h1\", \"h2\", \"h3\", \"h4\",\n \"h5\", \"h6\", \"script\", \"style\", \"link\", \"meta\", \"nav\", \"footer\", \"header\",\n \"section\", \"article\", \"aside\", \"main\", \"canvas\", \"video\", \"audio\", \"br\",\n \"hr\", \"strong\", \"em\", \"small\", \"pre\", \"code\", \"iframe\", \"details\",\n \"summary\", \"svg\", \"path\", \"circle\", \"rect\", \"polygon\", \"g\", \"defs\"\n ],\n debugMode: true,\n interpolationDelimiters: ['{{', '}}'],\n bindingDelimiter: ':',\n listenerDelimiter: '@',\n directiveDelimiter: '$',\n });\n\n container.scope.register(htmlSyntax);\n }\n\n if (!compiler) {\n logger?.info('cyan', 'Injecting AreHTMLCompiler into container scope...');\n container.scope.register(AreHTMLCompiler);\n }\n }\n\n}"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
|
|
12
|
+
|
|
13
|
+
export { __decorateClass, __decorateParam };
|
|
14
|
+
//# sourceMappingURL=chunk-EQQGB2QZ.mjs.map
|
|
15
|
+
//# sourceMappingURL=chunk-EQQGB2QZ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-EQQGB2QZ.mjs"}
|