@adaas/are 0.0.2 → 0.0.3

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