@adaas/are 0.0.2 → 0.0.4

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 (760) 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/LICENSE +10 -19
  6. package/README.md +216 -2
  7. package/dist/browser/index.d.mts +1375 -727
  8. package/dist/browser/index.mjs +2812 -2170
  9. package/dist/browser/index.mjs.map +1 -1
  10. package/dist/node/Are.context-9Ija_fdC.d.ts +846 -0
  11. package/dist/node/Are.context-D7w32H1G.d.mts +846 -0
  12. package/dist/node/index.d.mts +32 -31
  13. package/dist/node/index.d.ts +32 -31
  14. package/dist/node/index.js +371 -42
  15. package/dist/node/index.mjs +61 -14
  16. package/dist/node/lib/AreAttribute/AreAttribute.constants.d.mts +24 -0
  17. package/dist/node/lib/AreAttribute/AreAttribute.constants.d.ts +24 -0
  18. package/dist/node/lib/AreAttribute/AreAttribute.constants.js +28 -0
  19. package/dist/node/lib/AreAttribute/AreAttribute.constants.js.map +1 -0
  20. package/dist/node/lib/AreAttribute/AreAttribute.constants.mjs +28 -0
  21. package/dist/node/lib/AreAttribute/AreAttribute.constants.mjs.map +1 -0
  22. package/dist/node/lib/AreAttribute/AreAttribute.entity.d.mts +14 -0
  23. package/dist/node/lib/AreAttribute/AreAttribute.entity.d.ts +14 -0
  24. package/dist/node/lib/AreAttribute/AreAttribute.entity.js +113 -0
  25. package/dist/node/lib/AreAttribute/AreAttribute.entity.js.map +1 -0
  26. package/dist/node/lib/AreAttribute/AreAttribute.entity.mjs +104 -0
  27. package/dist/node/lib/AreAttribute/AreAttribute.entity.mjs.map +1 -0
  28. package/dist/node/lib/AreAttribute/AreAttribute.types.d.mts +47 -0
  29. package/dist/node/lib/AreAttribute/AreAttribute.types.d.ts +47 -0
  30. package/dist/node/lib/AreAttribute/AreAttribute.types.js +4 -0
  31. package/dist/node/lib/AreAttribute/AreAttribute.types.js.map +1 -0
  32. package/dist/node/lib/AreAttribute/AreAttribute.types.mjs +3 -0
  33. package/dist/node/lib/AreAttribute/AreAttribute.types.mjs.map +1 -0
  34. package/dist/node/lib/AreCompiler/AreCompiler.component.d.mts +19 -224
  35. package/dist/node/lib/AreCompiler/AreCompiler.component.d.ts +19 -224
  36. package/dist/node/lib/AreCompiler/AreCompiler.component.js +31 -607
  37. package/dist/node/lib/AreCompiler/AreCompiler.component.js.map +1 -1
  38. package/dist/node/lib/AreCompiler/AreCompiler.component.mjs +29 -605
  39. package/dist/node/lib/AreCompiler/AreCompiler.component.mjs.map +1 -1
  40. package/dist/node/lib/AreComponent/Are.component.d.mts +59 -7
  41. package/dist/node/lib/AreComponent/Are.component.d.ts +59 -7
  42. package/dist/node/lib/AreComponent/Are.component.js +84 -25
  43. package/dist/node/lib/AreComponent/Are.component.js.map +1 -1
  44. package/dist/node/lib/AreComponent/Are.component.mjs +85 -26
  45. package/dist/node/lib/AreComponent/Are.component.mjs.map +1 -1
  46. package/dist/node/lib/AreComponent/Are.constants.d.mts +46 -30
  47. package/dist/node/lib/AreComponent/Are.constants.d.ts +46 -30
  48. package/dist/node/lib/AreComponent/Are.constants.js +58 -21
  49. package/dist/node/lib/AreComponent/Are.constants.js.map +1 -1
  50. package/dist/node/lib/AreComponent/Are.constants.mjs +58 -21
  51. package/dist/node/lib/AreComponent/Are.constants.mjs.map +1 -1
  52. package/dist/node/lib/AreComponent/Are.context.d.mts +13 -21
  53. package/dist/node/lib/AreComponent/Are.context.d.ts +13 -21
  54. package/dist/node/lib/AreComponent/Are.context.js +91 -2
  55. package/dist/node/lib/AreComponent/Are.context.js.map +1 -1
  56. package/dist/node/lib/AreComponent/Are.context.mjs +92 -3
  57. package/dist/node/lib/AreComponent/Are.context.mjs.map +1 -1
  58. package/dist/node/lib/AreComponent/Are.meta.d.mts +14 -0
  59. package/dist/node/lib/AreComponent/Are.meta.d.ts +14 -0
  60. package/dist/node/lib/AreComponent/Are.meta.js +10 -0
  61. package/dist/node/lib/AreComponent/Are.meta.js.map +1 -0
  62. package/dist/node/lib/AreComponent/Are.meta.mjs +9 -0
  63. package/dist/node/lib/AreComponent/Are.meta.mjs.map +1 -0
  64. package/dist/node/lib/AreComponent/Are.types.d.mts +30 -1
  65. package/dist/node/lib/AreComponent/Are.types.d.ts +30 -1
  66. package/dist/node/lib/AreEngine/AreEngine.component.d.mts +77 -0
  67. package/dist/node/lib/AreEngine/AreEngine.component.d.ts +77 -0
  68. package/dist/node/lib/AreEngine/AreEngine.component.js +259 -0
  69. package/dist/node/lib/AreEngine/AreEngine.component.js.map +1 -0
  70. package/dist/node/lib/AreEngine/AreEngine.component.mjs +249 -0
  71. package/dist/node/lib/AreEngine/AreEngine.component.mjs.map +1 -0
  72. package/dist/node/lib/AreEngine/AreEngine.constants.d.mts +7 -0
  73. package/dist/node/lib/AreEngine/AreEngine.constants.d.ts +7 -0
  74. package/dist/node/lib/AreEngine/AreEngine.constants.js +11 -0
  75. package/dist/node/lib/AreEngine/AreEngine.constants.js.map +1 -0
  76. package/dist/node/lib/AreEngine/AreEngine.constants.mjs +11 -0
  77. package/dist/node/lib/AreEngine/AreEngine.constants.mjs.map +1 -0
  78. package/dist/node/lib/AreEngine/AreEngine.error.d.mts +7 -0
  79. package/dist/node/lib/AreEngine/AreEngine.error.d.ts +7 -0
  80. package/dist/node/lib/AreEngine/AreEngine.error.js +11 -0
  81. package/dist/node/lib/AreEngine/AreEngine.error.js.map +1 -0
  82. package/dist/node/lib/AreEngine/AreEngine.error.mjs +10 -0
  83. package/dist/node/lib/AreEngine/AreEngine.error.mjs.map +1 -0
  84. package/dist/node/lib/AreEngine/AreEngine.types.d.mts +40 -0
  85. package/dist/node/lib/AreEngine/AreEngine.types.d.ts +40 -0
  86. package/dist/node/lib/AreEngine/AreEngine.types.js +4 -0
  87. package/dist/node/lib/AreEngine/AreEngine.types.js.map +1 -0
  88. package/dist/node/lib/AreEngine/AreEngine.types.mjs +3 -0
  89. package/dist/node/lib/AreEngine/AreEngine.types.mjs.map +1 -0
  90. package/dist/node/lib/AreEvent/AreEvent.context.d.mts +6 -8
  91. package/dist/node/lib/AreEvent/AreEvent.context.d.ts +6 -8
  92. package/dist/node/lib/AreEvent/AreEvent.context.js +2 -12
  93. package/dist/node/lib/AreEvent/AreEvent.context.js.map +1 -1
  94. package/dist/node/lib/AreEvent/AreEvent.context.mjs +2 -12
  95. package/dist/node/lib/AreEvent/AreEvent.context.mjs.map +1 -1
  96. package/dist/node/lib/AreInstruction/AreInstruction.constants.d.mts +21 -0
  97. package/dist/node/lib/AreInstruction/AreInstruction.constants.d.ts +21 -0
  98. package/dist/node/lib/AreInstruction/AreInstruction.constants.js +26 -0
  99. package/dist/node/lib/AreInstruction/AreInstruction.constants.js.map +1 -0
  100. package/dist/node/lib/AreInstruction/AreInstruction.constants.mjs +25 -0
  101. package/dist/node/lib/AreInstruction/AreInstruction.constants.mjs.map +1 -0
  102. package/dist/node/lib/AreInstruction/AreInstruction.entity.d.mts +14 -0
  103. package/dist/node/lib/AreInstruction/AreInstruction.entity.d.ts +14 -0
  104. package/dist/node/lib/AreInstruction/AreInstruction.entity.js +152 -0
  105. package/dist/node/lib/AreInstruction/AreInstruction.entity.js.map +1 -0
  106. package/dist/node/lib/AreInstruction/AreInstruction.entity.mjs +145 -0
  107. package/dist/node/lib/AreInstruction/AreInstruction.entity.mjs.map +1 -0
  108. package/dist/node/lib/AreInstruction/AreInstruction.error.d.mts +6 -0
  109. package/dist/node/lib/AreInstruction/AreInstruction.error.d.ts +6 -0
  110. package/dist/node/lib/AreInstruction/AreInstruction.error.js +10 -0
  111. package/dist/node/lib/AreInstruction/AreInstruction.error.js.map +1 -0
  112. package/dist/node/lib/AreInstruction/AreInstruction.error.mjs +9 -0
  113. package/dist/node/lib/AreInstruction/AreInstruction.error.mjs.map +1 -0
  114. package/dist/node/lib/AreInstruction/AreInstruction.types.d.mts +14 -0
  115. package/dist/node/lib/AreInstruction/AreInstruction.types.d.ts +14 -0
  116. package/dist/node/lib/AreInstruction/AreInstruction.types.js +4 -0
  117. package/dist/node/lib/AreInstruction/AreInstruction.types.js.map +1 -0
  118. package/dist/node/lib/AreInstruction/AreInstruction.types.mjs +3 -0
  119. package/dist/node/lib/AreInstruction/AreInstruction.types.mjs.map +1 -0
  120. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.d.mts +14 -0
  121. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.d.ts +14 -0
  122. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.js +37 -0
  123. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.js.map +1 -0
  124. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.mjs +30 -0
  125. package/dist/node/lib/AreInstruction/types/AreDeclaration.instruction.mjs.map +1 -0
  126. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.d.mts +14 -0
  127. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.d.ts +14 -0
  128. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.js +52 -0
  129. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.js.map +1 -0
  130. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.mjs +45 -0
  131. package/dist/node/lib/AreInstruction/types/AreMutation.instruction.mjs.map +1 -0
  132. package/dist/node/lib/AreInterpreter/AreInterpreter.component.d.mts +49 -0
  133. package/dist/node/lib/AreInterpreter/AreInterpreter.component.d.ts +49 -0
  134. package/dist/node/lib/AreInterpreter/AreInterpreter.component.js +164 -0
  135. package/dist/node/lib/AreInterpreter/AreInterpreter.component.js.map +1 -0
  136. package/dist/node/lib/AreInterpreter/AreInterpreter.component.mjs +154 -0
  137. package/dist/node/lib/AreInterpreter/AreInterpreter.component.mjs.map +1 -0
  138. package/dist/node/lib/AreInterpreter/AreInterpreter.constants.js +4 -0
  139. package/dist/node/lib/AreInterpreter/AreInterpreter.constants.js.map +1 -0
  140. package/dist/node/lib/AreInterpreter/AreInterpreter.constants.mjs +3 -0
  141. package/dist/node/lib/AreInterpreter/AreInterpreter.constants.mjs.map +1 -0
  142. package/dist/node/lib/AreInterpreter/AreInterpreter.error.d.mts +6 -0
  143. package/dist/node/lib/AreInterpreter/AreInterpreter.error.d.ts +6 -0
  144. package/dist/node/lib/AreInterpreter/AreInterpreter.error.js +10 -0
  145. package/dist/node/lib/AreInterpreter/AreInterpreter.error.js.map +1 -0
  146. package/dist/node/lib/AreInterpreter/AreInterpreter.error.mjs +9 -0
  147. package/dist/node/lib/AreInterpreter/AreInterpreter.error.mjs.map +1 -0
  148. package/dist/node/lib/AreInterpreter/AreInterpreter.types.js +4 -0
  149. package/dist/node/lib/AreInterpreter/AreInterpreter.types.js.map +1 -0
  150. package/dist/node/lib/AreInterpreter/AreInterpreter.types.mjs +3 -0
  151. package/dist/node/lib/AreInterpreter/AreInterpreter.types.mjs.map +1 -0
  152. package/dist/node/lib/AreLifecycle/AreLifecycle.component.d.mts +188 -0
  153. package/dist/node/lib/AreLifecycle/AreLifecycle.component.d.ts +188 -0
  154. package/dist/node/lib/AreLifecycle/AreLifecycle.component.js +349 -0
  155. package/dist/node/lib/AreLifecycle/AreLifecycle.component.js.map +1 -0
  156. package/dist/node/lib/AreLifecycle/AreLifecycle.component.mjs +339 -0
  157. package/dist/node/lib/AreLifecycle/AreLifecycle.component.mjs.map +1 -0
  158. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.d.mts +2 -0
  159. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.d.ts +2 -0
  160. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.js +4 -0
  161. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.js.map +1 -0
  162. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.mjs +3 -0
  163. package/dist/node/lib/AreLifecycle/AreLifecycle.constants.mjs.map +1 -0
  164. package/dist/node/lib/AreLifecycle/AreLifecycle.error.d.mts +7 -0
  165. package/dist/node/lib/AreLifecycle/AreLifecycle.error.d.ts +7 -0
  166. package/dist/node/lib/AreLifecycle/AreLifecycle.error.js +11 -0
  167. package/dist/node/lib/AreLifecycle/AreLifecycle.error.js.map +1 -0
  168. package/dist/node/lib/AreLifecycle/AreLifecycle.error.mjs +10 -0
  169. package/dist/node/lib/AreLifecycle/AreLifecycle.error.mjs.map +1 -0
  170. package/dist/node/lib/AreLifecycle/AreLifecycle.types.d.mts +2 -0
  171. package/dist/node/lib/AreLifecycle/AreLifecycle.types.d.ts +2 -0
  172. package/dist/node/lib/AreLifecycle/AreLifecycle.types.js +4 -0
  173. package/dist/node/lib/AreLifecycle/AreLifecycle.types.js.map +1 -0
  174. package/dist/node/lib/AreLifecycle/AreLifecycle.types.mjs +3 -0
  175. package/dist/node/lib/AreLifecycle/AreLifecycle.types.mjs.map +1 -0
  176. package/dist/node/lib/AreLoader/AreLoader.component.d.mts +31 -0
  177. package/dist/node/lib/AreLoader/AreLoader.component.d.ts +31 -0
  178. package/dist/node/lib/AreLoader/AreLoader.component.js +64 -0
  179. package/dist/node/lib/AreLoader/AreLoader.component.js.map +1 -0
  180. package/dist/node/lib/AreLoader/AreLoader.component.mjs +54 -0
  181. package/dist/node/lib/AreLoader/AreLoader.component.mjs.map +1 -0
  182. package/dist/node/lib/AreLoader/AreLoader.constants.d.mts +2 -0
  183. package/dist/node/lib/AreLoader/AreLoader.constants.d.ts +2 -0
  184. package/dist/node/lib/AreLoader/AreLoader.constants.js +4 -0
  185. package/dist/node/lib/AreLoader/AreLoader.constants.js.map +1 -0
  186. package/dist/node/lib/AreLoader/AreLoader.constants.mjs +3 -0
  187. package/dist/node/lib/AreLoader/AreLoader.constants.mjs.map +1 -0
  188. package/dist/node/lib/AreLoader/AreLoader.error.d.mts +8 -0
  189. package/dist/node/lib/AreLoader/AreLoader.error.d.ts +8 -0
  190. package/dist/node/lib/AreLoader/AreLoader.error.js +12 -0
  191. package/dist/node/lib/AreLoader/AreLoader.error.js.map +1 -0
  192. package/dist/node/lib/AreLoader/AreLoader.error.mjs +11 -0
  193. package/dist/node/lib/AreLoader/AreLoader.error.mjs.map +1 -0
  194. package/dist/node/lib/AreLoader/AreLoader.types.d.mts +2 -0
  195. package/dist/node/lib/AreLoader/AreLoader.types.d.ts +2 -0
  196. package/dist/node/lib/AreLoader/AreLoader.types.js +4 -0
  197. package/dist/node/lib/AreLoader/AreLoader.types.js.map +1 -0
  198. package/dist/node/lib/AreLoader/AreLoader.types.mjs +3 -0
  199. package/dist/node/lib/AreLoader/AreLoader.types.mjs.map +1 -0
  200. package/dist/node/lib/AreNode/AreNode.constants.d.mts +87 -17
  201. package/dist/node/lib/AreNode/AreNode.constants.d.ts +87 -17
  202. package/dist/node/lib/AreNode/AreNode.constants.js +111 -11
  203. package/dist/node/lib/AreNode/AreNode.constants.js.map +1 -1
  204. package/dist/node/lib/AreNode/AreNode.constants.mjs +111 -12
  205. package/dist/node/lib/AreNode/AreNode.constants.mjs.map +1 -1
  206. package/dist/node/lib/AreNode/AreNode.entity.d.mts +12 -6
  207. package/dist/node/lib/AreNode/AreNode.entity.d.ts +12 -6
  208. package/dist/node/lib/AreNode/AreNode.entity.js +281 -49
  209. package/dist/node/lib/AreNode/AreNode.entity.js.map +1 -1
  210. package/dist/node/lib/AreNode/AreNode.entity.mjs +282 -50
  211. package/dist/node/lib/AreNode/AreNode.entity.mjs.map +1 -1
  212. package/dist/node/lib/AreNode/AreNode.types.d.mts +14 -13
  213. package/dist/node/lib/AreNode/AreNode.types.d.ts +14 -13
  214. package/dist/node/lib/AreScene/AreScene.constants.d.mts +7 -0
  215. package/dist/node/lib/AreScene/AreScene.constants.d.ts +7 -0
  216. package/dist/node/lib/AreScene/AreScene.constants.js +11 -0
  217. package/dist/node/lib/AreScene/AreScene.constants.js.map +1 -0
  218. package/dist/node/lib/AreScene/AreScene.constants.mjs +11 -0
  219. package/dist/node/lib/AreScene/AreScene.constants.mjs.map +1 -0
  220. package/dist/node/lib/AreScene/AreScene.context.d.mts +12 -6
  221. package/dist/node/lib/AreScene/AreScene.context.d.ts +12 -6
  222. package/dist/node/lib/AreScene/AreScene.context.js +284 -186
  223. package/dist/node/lib/AreScene/AreScene.context.js.map +1 -1
  224. package/dist/node/lib/AreScene/AreScene.context.mjs +277 -185
  225. package/dist/node/lib/AreScene/AreScene.context.mjs.map +1 -1
  226. package/dist/node/lib/AreScene/AreScene.error.d.mts +4 -0
  227. package/dist/node/lib/AreScene/AreScene.error.d.ts +4 -0
  228. package/dist/node/lib/AreScene/AreScene.error.js +4 -0
  229. package/dist/node/lib/AreScene/AreScene.error.js.map +1 -1
  230. package/dist/node/lib/AreScene/AreScene.error.mjs +4 -0
  231. package/dist/node/lib/AreScene/AreScene.error.mjs.map +1 -1
  232. package/dist/node/lib/AreScene/AreScene.types.d.mts +14 -9
  233. package/dist/node/lib/AreScene/AreScene.types.d.ts +14 -9
  234. package/dist/node/lib/AreSignals/AreSignal.entity.d.mts +6 -0
  235. package/dist/node/lib/AreSignals/AreSignal.entity.d.ts +6 -0
  236. package/dist/node/lib/AreSignals/AreSignal.entity.js +24 -0
  237. package/dist/node/lib/AreSignals/AreSignal.entity.js.map +1 -0
  238. package/dist/node/lib/AreSignals/AreSignal.entity.mjs +17 -0
  239. package/dist/node/lib/AreSignals/AreSignal.entity.mjs.map +1 -0
  240. package/dist/node/lib/AreSignals/AreSignals.component.d.mts +35 -0
  241. package/dist/node/lib/AreSignals/AreSignals.component.d.ts +35 -0
  242. package/dist/node/lib/AreSignals/AreSignals.component.js +90 -0
  243. package/dist/node/lib/AreSignals/AreSignals.component.js.map +1 -0
  244. package/dist/node/lib/AreSignals/AreSignals.component.mjs +80 -0
  245. package/dist/node/lib/AreSignals/AreSignals.component.mjs.map +1 -0
  246. package/dist/node/lib/AreSignals/AreSignals.constants.d.mts +2 -0
  247. package/dist/node/lib/AreSignals/AreSignals.constants.d.ts +2 -0
  248. package/dist/node/lib/AreSignals/AreSignals.constants.js +4 -0
  249. package/dist/node/lib/AreSignals/AreSignals.constants.js.map +1 -0
  250. package/dist/node/lib/AreSignals/AreSignals.constants.mjs +3 -0
  251. package/dist/node/lib/AreSignals/AreSignals.constants.mjs.map +1 -0
  252. package/dist/node/lib/AreSignals/AreSignals.context.d.mts +86 -0
  253. package/dist/node/lib/AreSignals/AreSignals.context.d.ts +86 -0
  254. package/dist/node/lib/AreSignals/AreSignals.context.js +153 -0
  255. package/dist/node/lib/AreSignals/AreSignals.context.js.map +1 -0
  256. package/dist/node/lib/AreSignals/AreSignals.context.mjs +146 -0
  257. package/dist/node/lib/AreSignals/AreSignals.context.mjs.map +1 -0
  258. package/dist/node/lib/AreSignals/AreSignals.meta.d.mts +15 -0
  259. package/dist/node/lib/AreSignals/AreSignals.meta.d.ts +15 -0
  260. package/dist/node/lib/AreSignals/AreSignals.meta.js +48 -0
  261. package/dist/node/lib/AreSignals/AreSignals.meta.js.map +1 -0
  262. package/dist/node/lib/AreSignals/AreSignals.meta.mjs +47 -0
  263. package/dist/node/lib/AreSignals/AreSignals.meta.mjs.map +1 -0
  264. package/dist/node/lib/AreSignals/AreSignals.types.d.mts +18 -0
  265. package/dist/node/lib/AreSignals/AreSignals.types.d.ts +18 -0
  266. package/dist/node/lib/AreSignals/AreSignals.types.js +4 -0
  267. package/dist/node/lib/AreSignals/AreSignals.types.js.map +1 -0
  268. package/dist/node/lib/AreSignals/AreSignals.types.mjs +3 -0
  269. package/dist/node/lib/AreSignals/AreSignals.types.mjs.map +1 -0
  270. package/dist/node/lib/AreSignals/entities/AreInit.signal.d.mts +8 -0
  271. package/dist/node/lib/AreSignals/entities/AreInit.signal.d.ts +8 -0
  272. package/dist/node/lib/AreSignals/entities/AreInit.signal.js +13 -0
  273. package/dist/node/lib/AreSignals/entities/AreInit.signal.js.map +1 -0
  274. package/dist/node/lib/AreSignals/entities/AreInit.signal.mjs +12 -0
  275. package/dist/node/lib/AreSignals/entities/AreInit.signal.mjs.map +1 -0
  276. package/dist/node/lib/AreSignals/entities/AreRoute.signal.d.mts +12 -0
  277. package/dist/node/lib/AreSignals/entities/AreRoute.signal.d.ts +12 -0
  278. package/dist/node/lib/AreSignals/entities/AreRoute.signal.js +25 -0
  279. package/dist/node/lib/AreSignals/entities/AreRoute.signal.js.map +1 -0
  280. package/dist/node/lib/AreSignals/entities/AreRoute.signal.mjs +24 -0
  281. package/dist/node/lib/AreSignals/entities/AreRoute.signal.mjs.map +1 -0
  282. package/dist/node/lib/AreStore/AreStore.constants.d.mts +5 -0
  283. package/dist/node/lib/AreStore/AreStore.constants.d.ts +5 -0
  284. package/dist/node/lib/AreStore/AreStore.constants.js +9 -0
  285. package/dist/node/lib/AreStore/AreStore.constants.js.map +1 -0
  286. package/dist/node/lib/AreStore/AreStore.constants.mjs +9 -0
  287. package/dist/node/lib/AreStore/AreStore.constants.mjs.map +1 -0
  288. package/dist/node/lib/AreStore/AreStore.context.d.mts +14 -10
  289. package/dist/node/lib/AreStore/AreStore.context.d.ts +14 -10
  290. package/dist/node/lib/AreStore/AreStore.context.js +162 -6
  291. package/dist/node/lib/AreStore/AreStore.context.js.map +1 -1
  292. package/dist/node/lib/AreStore/AreStore.context.mjs +162 -6
  293. package/dist/node/lib/AreStore/AreStore.context.mjs.map +1 -1
  294. package/dist/node/lib/AreStore/AreStore.types.d.mts +9 -0
  295. package/dist/node/lib/AreStore/AreStore.types.d.ts +9 -0
  296. package/dist/node/lib/AreStore/AreStore.types.js +4 -0
  297. package/dist/node/lib/AreStore/AreStore.types.js.map +1 -0
  298. package/dist/node/lib/AreStore/AreStore.types.mjs +3 -0
  299. package/dist/node/lib/AreStore/AreStore.types.mjs.map +1 -0
  300. package/dist/node/lib/AreSyntax/AreSyntax.constants.d.mts +2 -0
  301. package/dist/node/lib/AreSyntax/AreSyntax.constants.d.ts +2 -0
  302. package/dist/node/lib/AreSyntax/AreSyntax.constants.js +4 -0
  303. package/dist/node/lib/AreSyntax/AreSyntax.constants.js.map +1 -0
  304. package/dist/node/lib/AreSyntax/AreSyntax.constants.mjs +3 -0
  305. package/dist/node/lib/AreSyntax/AreSyntax.constants.mjs.map +1 -0
  306. package/dist/node/lib/AreSyntax/AreSyntax.context.d.mts +99 -51
  307. package/dist/node/lib/AreSyntax/AreSyntax.context.d.ts +99 -51
  308. package/dist/node/lib/AreSyntax/AreSyntax.context.js +305 -73
  309. package/dist/node/lib/AreSyntax/AreSyntax.context.js.map +1 -1
  310. package/dist/node/lib/AreSyntax/AreSyntax.context.mjs +306 -74
  311. package/dist/node/lib/AreSyntax/AreSyntax.context.mjs.map +1 -1
  312. package/dist/node/lib/AreSyntax/AreSyntax.types.d.mts +14 -132
  313. package/dist/node/lib/AreSyntax/AreSyntax.types.d.ts +14 -132
  314. package/dist/node/lib/AreSyntax/AreSyntax.types.js.map +1 -1
  315. package/dist/node/lib/AreSyntax/AreSyntax.types.mjs.map +1 -1
  316. package/dist/node/lib/AreTokenizer/AreTokenizer.component.d.mts +43 -0
  317. package/dist/node/lib/AreTokenizer/AreTokenizer.component.d.ts +43 -0
  318. package/dist/node/lib/AreTokenizer/AreTokenizer.component.js +238 -0
  319. package/dist/node/lib/AreTokenizer/AreTokenizer.component.js.map +1 -0
  320. package/dist/node/lib/AreTokenizer/AreTokenizer.component.mjs +228 -0
  321. package/dist/node/lib/AreTokenizer/AreTokenizer.component.mjs.map +1 -0
  322. package/dist/node/lib/AreTokenizer/AreTokenizer.error.d.mts +6 -0
  323. package/dist/node/lib/AreTokenizer/AreTokenizer.error.d.ts +6 -0
  324. package/dist/node/lib/AreTokenizer/AreTokenizer.error.js +10 -0
  325. package/dist/node/lib/AreTokenizer/AreTokenizer.error.js.map +1 -0
  326. package/dist/node/lib/AreTokenizer/AreTokenizer.error.mjs +9 -0
  327. package/dist/node/lib/AreTokenizer/AreTokenizer.error.mjs.map +1 -0
  328. package/dist/node/lib/AreTransformer/AreTransformer.component.d.mts +20 -0
  329. package/dist/node/lib/AreTransformer/AreTransformer.component.d.ts +20 -0
  330. package/dist/node/lib/AreTransformer/AreTransformer.component.js +48 -0
  331. package/dist/node/lib/AreTransformer/AreTransformer.component.js.map +1 -0
  332. package/dist/node/lib/AreTransformer/AreTransformer.component.mjs +38 -0
  333. package/dist/node/lib/AreTransformer/AreTransformer.component.mjs.map +1 -0
  334. package/dist/node/lib/AreTransformer/AreTransformer.constants.d.mts +2 -0
  335. package/dist/node/lib/AreTransformer/AreTransformer.constants.d.ts +2 -0
  336. package/dist/node/lib/AreTransformer/AreTransformer.constants.js +4 -0
  337. package/dist/node/lib/AreTransformer/AreTransformer.constants.js.map +1 -0
  338. package/dist/node/lib/AreTransformer/AreTransformer.constants.mjs +3 -0
  339. package/dist/node/lib/AreTransformer/AreTransformer.constants.mjs.map +1 -0
  340. package/dist/node/lib/AreTransformer/AreTransformer.types.d.mts +2 -0
  341. package/dist/node/lib/AreTransformer/AreTransformer.types.d.ts +2 -0
  342. package/dist/node/lib/AreTransformer/AreTransformer.types.js +4 -0
  343. package/dist/node/lib/AreTransformer/AreTransformer.types.js.map +1 -0
  344. package/dist/node/lib/AreTransformer/AreTransformer.types.mjs +3 -0
  345. package/dist/node/lib/AreTransformer/AreTransformer.types.mjs.map +1 -0
  346. package/dist/node/lib/AreWatcher/AreWatcher.component.d.mts +18 -0
  347. package/dist/node/lib/AreWatcher/AreWatcher.component.d.ts +18 -0
  348. package/dist/node/lib/AreWatcher/AreWatcher.component.js +78 -0
  349. package/dist/node/lib/AreWatcher/AreWatcher.component.js.map +1 -0
  350. package/dist/node/lib/AreWatcher/AreWatcher.component.mjs +71 -0
  351. package/dist/node/lib/AreWatcher/AreWatcher.component.mjs.map +1 -0
  352. package/dist/node/lib/AreWatcher/AreWatcher.constants.d.mts +2 -0
  353. package/dist/node/lib/AreWatcher/AreWatcher.constants.d.ts +2 -0
  354. package/dist/node/lib/AreWatcher/AreWatcher.constants.js +4 -0
  355. package/dist/node/lib/AreWatcher/AreWatcher.constants.js.map +1 -0
  356. package/dist/node/lib/AreWatcher/AreWatcher.constants.mjs +3 -0
  357. package/dist/node/lib/AreWatcher/AreWatcher.constants.mjs.map +1 -0
  358. package/dist/node/lib/AreWatcher/AreWatcher.context.d.mts +2 -0
  359. package/dist/node/lib/AreWatcher/AreWatcher.context.d.ts +2 -0
  360. package/dist/node/lib/AreWatcher/AreWatcher.context.js +4 -0
  361. package/dist/node/lib/AreWatcher/AreWatcher.context.js.map +1 -0
  362. package/dist/node/lib/AreWatcher/AreWatcher.context.mjs +3 -0
  363. package/dist/node/lib/AreWatcher/AreWatcher.context.mjs.map +1 -0
  364. package/dist/node/lib/AreWatcher/AreWatcher.types.d.mts +2 -0
  365. package/dist/node/lib/AreWatcher/AreWatcher.types.d.ts +2 -0
  366. package/dist/node/lib/AreWatcher/AreWatcher.types.js +4 -0
  367. package/dist/node/lib/AreWatcher/AreWatcher.types.js.map +1 -0
  368. package/dist/node/lib/AreWatcher/AreWatcher.types.mjs +3 -0
  369. package/dist/node/lib/AreWatcher/AreWatcher.types.mjs.map +1 -0
  370. package/jest.config.ts +30 -19
  371. package/package.json +39 -23
  372. package/src/index.ts +92 -15
  373. package/src/lib/AreAttribute/AreAttribute.constants.ts +22 -0
  374. package/src/lib/AreAttribute/AreAttribute.entity.ts +136 -0
  375. package/src/lib/AreAttribute/AreAttribute.types.ts +51 -0
  376. package/src/lib/AreCompiler/AreCompiler.component.ts +48 -980
  377. package/src/lib/AreComponent/Are.component.ts +102 -50
  378. package/src/lib/AreComponent/Are.constants.ts +59 -39
  379. package/src/lib/AreComponent/Are.context.ts +120 -8
  380. package/src/lib/AreComponent/Are.meta.ts +16 -0
  381. package/src/lib/AreComponent/Are.types.ts +30 -0
  382. package/src/lib/AreEngine/AreEngine.component.ts +317 -0
  383. package/src/lib/AreEngine/AreEngine.constants.ts +7 -0
  384. package/src/lib/AreEngine/AreEngine.error.ts +9 -0
  385. package/src/lib/AreEngine/AreEngine.types.ts +24 -0
  386. package/src/lib/AreEvent/AreEvent.context.ts +3 -27
  387. package/src/lib/AreInstruction/AreInstruction.constants.ts +23 -0
  388. package/src/lib/AreInstruction/AreInstruction.entity.ts +207 -0
  389. package/src/lib/AreInstruction/AreInstruction.error.ts +7 -0
  390. package/src/lib/AreInstruction/AreInstruction.types.ts +63 -0
  391. package/src/lib/AreInstruction/types/AreDeclaration.instruction.ts +77 -0
  392. package/src/lib/AreInstruction/types/AreMutation.instruction.ts +87 -0
  393. package/src/lib/AreInterpreter/AreInterpreter.component.ts +208 -0
  394. package/src/lib/AreInterpreter/AreInterpreter.error.ts +6 -0
  395. package/src/lib/AreLifecycle/AreLifecycle.component.ts +638 -0
  396. package/src/lib/AreLifecycle/AreLifecycle.constants.ts +0 -0
  397. package/src/lib/AreLifecycle/AreLifecycle.error.ts +9 -0
  398. package/src/lib/AreLifecycle/AreLifecycle.types.ts +0 -0
  399. package/src/lib/AreLoader/AreLoader.component.ts +89 -0
  400. package/src/lib/AreLoader/AreLoader.constants.ts +0 -0
  401. package/src/lib/AreLoader/AreLoader.error.ts +10 -0
  402. package/src/lib/AreLoader/AreLoader.types.ts +0 -0
  403. package/src/lib/AreNode/AreNode.constants.ts +111 -16
  404. package/src/lib/AreNode/AreNode.entity.ts +380 -91
  405. package/src/lib/AreNode/AreNode.types.ts +7 -11
  406. package/src/lib/AreScene/AreScene.constants.ts +7 -0
  407. package/src/lib/AreScene/AreScene.context.ts +305 -284
  408. package/src/lib/AreScene/AreScene.error.ts +9 -1
  409. package/src/lib/AreScene/AreScene.types.ts +21 -3
  410. package/src/lib/AreSignals/AreSignal.entity.ts +17 -0
  411. package/src/lib/AreSignals/AreSignals.component.ts +98 -0
  412. package/src/lib/AreSignals/AreSignals.constants.ts +0 -0
  413. package/src/lib/AreSignals/AreSignals.context.ts +196 -0
  414. package/src/lib/AreSignals/AreSignals.meta.ts +75 -0
  415. package/src/lib/AreSignals/AreSignals.types.ts +18 -0
  416. package/src/lib/AreSignals/entities/AreInit.signal.ts +7 -0
  417. package/src/lib/AreSignals/entities/AreRoute.signal.ts +27 -0
  418. package/src/lib/AreStore/AreStore.constants.ts +6 -0
  419. package/src/lib/AreStore/AreStore.context.ts +243 -14
  420. package/src/lib/AreStore/AreStore.types.ts +19 -0
  421. package/src/lib/AreSyntax/AreSyntax.constants.ts +0 -0
  422. package/src/lib/AreSyntax/AreSyntax.context.ts +352 -78
  423. package/src/lib/AreSyntax/AreSyntax.types.ts +75 -139
  424. package/src/lib/AreTokenizer/AreTokenizer.component.ts +289 -0
  425. package/src/lib/AreTokenizer/AreTokenizer.error.ts +7 -0
  426. package/src/lib/AreTransformer/AreTransformer.component.ts +46 -0
  427. package/src/lib/AreTransformer/AreTransformer.constants.ts +0 -0
  428. package/src/lib/AreTransformer/AreTransformer.types.ts +0 -0
  429. package/src/lib/AreWatcher/AreWatcher.component.ts +84 -0
  430. package/src/lib/AreWatcher/AreWatcher.constants.ts +0 -0
  431. package/src/lib/AreWatcher/AreWatcher.context.ts +0 -0
  432. package/src/lib/AreWatcher/AreWatcher.types.ts +0 -0
  433. package/tests/AreInstruction.test.ts +73 -0
  434. package/tests/AreScene.test.ts +62 -0
  435. package/tests/AreSignals.test.ts +55 -0
  436. package/tests/AreTokenizer.test.ts +254 -0
  437. package/tests/jest.setup.ts +30 -0
  438. package/tsconfig.json +19 -19
  439. package/tsup.config.ts +6 -0
  440. package/dist/node/engines/html/AreHTML.compiler.d.mts +0 -114
  441. package/dist/node/engines/html/AreHTML.compiler.d.ts +0 -114
  442. package/dist/node/engines/html/AreHTML.compiler.js +0 -408
  443. package/dist/node/engines/html/AreHTML.compiler.js.map +0 -1
  444. package/dist/node/engines/html/AreHTML.compiler.mjs +0 -398
  445. package/dist/node/engines/html/AreHTML.compiler.mjs.map +0 -1
  446. package/dist/node/engines/html/AreHTML.engine.d.mts +0 -36
  447. package/dist/node/engines/html/AreHTML.engine.d.ts +0 -36
  448. package/dist/node/engines/html/AreHTML.engine.js +0 -122
  449. package/dist/node/engines/html/AreHTML.engine.js.map +0 -1
  450. package/dist/node/engines/html/AreHTML.engine.mjs +0 -112
  451. package/dist/node/engines/html/AreHTML.engine.mjs.map +0 -1
  452. package/dist/node/engines/html/index.d.mts +0 -26
  453. package/dist/node/engines/html/index.d.ts +0 -26
  454. package/dist/node/engines/html/index.js +0 -17
  455. package/dist/node/engines/html/index.js.map +0 -1
  456. package/dist/node/engines/html/index.mjs +0 -5
  457. package/dist/node/engines/html/index.mjs.map +0 -1
  458. package/dist/node/engines/json/AreJSON.compiler.d.mts +0 -21
  459. package/dist/node/engines/json/AreJSON.compiler.d.ts +0 -21
  460. package/dist/node/engines/json/AreJSON.compiler.js +0 -24
  461. package/dist/node/engines/json/AreJSON.compiler.js.map +0 -1
  462. package/dist/node/engines/json/AreJSON.compiler.mjs +0 -17
  463. package/dist/node/engines/json/AreJSON.compiler.mjs.map +0 -1
  464. package/dist/node/index-BD-6iOuR.d.ts +0 -238
  465. package/dist/node/index-DMXWCL7R.d.mts +0 -238
  466. package/dist/node/lib/AreApp/AreApp.container.d.mts +0 -22
  467. package/dist/node/lib/AreApp/AreApp.container.d.ts +0 -22
  468. package/dist/node/lib/AreApp/AreApp.container.js +0 -60
  469. package/dist/node/lib/AreApp/AreApp.container.js.map +0 -1
  470. package/dist/node/lib/AreApp/AreApp.container.mjs +0 -48
  471. package/dist/node/lib/AreApp/AreApp.container.mjs.map +0 -1
  472. package/dist/node/lib/AreApp/AreApp.env.js +0 -4
  473. package/dist/node/lib/AreApp/AreApp.env.js.map +0 -1
  474. package/dist/node/lib/AreApp/AreApp.env.mjs +0 -3
  475. package/dist/node/lib/AreApp/AreApp.env.mjs.map +0 -1
  476. package/dist/node/lib/AreApp/AreApp.error.d.mts +0 -6
  477. package/dist/node/lib/AreApp/AreApp.error.d.ts +0 -6
  478. package/dist/node/lib/AreApp/AreApp.error.js +0 -10
  479. package/dist/node/lib/AreApp/AreApp.error.js.map +0 -1
  480. package/dist/node/lib/AreApp/AreApp.error.mjs +0 -9
  481. package/dist/node/lib/AreApp/AreApp.error.mjs.map +0 -1
  482. package/dist/node/lib/AreApp/AreApp.types.js +0 -4
  483. package/dist/node/lib/AreApp/AreApp.types.js.map +0 -1
  484. package/dist/node/lib/AreApp/AreApp.types.mjs +0 -3
  485. package/dist/node/lib/AreApp/AreApp.types.mjs.map +0 -1
  486. package/dist/node/lib/AreApp/index.d.mts +0 -17
  487. package/dist/node/lib/AreApp/index.d.ts +0 -17
  488. package/dist/node/lib/AreApp/index.js +0 -24
  489. package/dist/node/lib/AreApp/index.js.map +0 -1
  490. package/dist/node/lib/AreApp/index.mjs +0 -6
  491. package/dist/node/lib/AreApp/index.mjs.map +0 -1
  492. package/dist/node/lib/AreCompiler/index.d.mts +0 -17
  493. package/dist/node/lib/AreCompiler/index.d.ts +0 -17
  494. package/dist/node/lib/AreCompiler/index.js +0 -24
  495. package/dist/node/lib/AreCompiler/index.js.map +0 -1
  496. package/dist/node/lib/AreCompiler/index.mjs +0 -6
  497. package/dist/node/lib/AreCompiler/index.mjs.map +0 -1
  498. package/dist/node/lib/AreComponent/index.d.mts +0 -11
  499. package/dist/node/lib/AreComponent/index.d.ts +0 -11
  500. package/dist/node/lib/AreComponent/index.js +0 -31
  501. package/dist/node/lib/AreComponent/index.js.map +0 -1
  502. package/dist/node/lib/AreComponent/index.mjs +0 -7
  503. package/dist/node/lib/AreComponent/index.mjs.map +0 -1
  504. package/dist/node/lib/AreEvent/index.d.mts +0 -8
  505. package/dist/node/lib/AreEvent/index.d.ts +0 -8
  506. package/dist/node/lib/AreEvent/index.js +0 -19
  507. package/dist/node/lib/AreEvent/index.js.map +0 -1
  508. package/dist/node/lib/AreEvent/index.mjs +0 -5
  509. package/dist/node/lib/AreEvent/index.mjs.map +0 -1
  510. package/dist/node/lib/AreIndex/AreIndex.context.d.mts +0 -8
  511. package/dist/node/lib/AreIndex/AreIndex.context.d.ts +0 -8
  512. package/dist/node/lib/AreIndex/AreIndex.context.js +0 -142
  513. package/dist/node/lib/AreIndex/AreIndex.context.js.map +0 -1
  514. package/dist/node/lib/AreIndex/AreIndex.context.mjs +0 -141
  515. package/dist/node/lib/AreIndex/AreIndex.context.mjs.map +0 -1
  516. package/dist/node/lib/AreIndex/index.d.mts +0 -8
  517. package/dist/node/lib/AreIndex/index.d.ts +0 -8
  518. package/dist/node/lib/AreIndex/index.js +0 -12
  519. package/dist/node/lib/AreIndex/index.js.map +0 -1
  520. package/dist/node/lib/AreIndex/index.mjs +0 -4
  521. package/dist/node/lib/AreIndex/index.mjs.map +0 -1
  522. package/dist/node/lib/AreNode/index.d.mts +0 -9
  523. package/dist/node/lib/AreNode/index.d.ts +0 -9
  524. package/dist/node/lib/AreNode/index.js +0 -26
  525. package/dist/node/lib/AreNode/index.js.map +0 -1
  526. package/dist/node/lib/AreNode/index.mjs +0 -6
  527. package/dist/node/lib/AreNode/index.mjs.map +0 -1
  528. package/dist/node/lib/AreProps/AreProps.context.d.mts +0 -9
  529. package/dist/node/lib/AreProps/AreProps.context.d.ts +0 -9
  530. package/dist/node/lib/AreProps/AreProps.context.js +0 -32
  531. package/dist/node/lib/AreProps/AreProps.context.js.map +0 -1
  532. package/dist/node/lib/AreProps/AreProps.context.mjs +0 -25
  533. package/dist/node/lib/AreProps/AreProps.context.mjs.map +0 -1
  534. package/dist/node/lib/AreProps/index.d.mts +0 -3
  535. package/dist/node/lib/AreProps/index.d.ts +0 -3
  536. package/dist/node/lib/AreProps/index.js +0 -12
  537. package/dist/node/lib/AreProps/index.js.map +0 -1
  538. package/dist/node/lib/AreProps/index.mjs +0 -4
  539. package/dist/node/lib/AreProps/index.mjs.map +0 -1
  540. package/dist/node/lib/AreRoot/AreRoot.component.d.mts +0 -18
  541. package/dist/node/lib/AreRoot/AreRoot.component.d.ts +0 -18
  542. package/dist/node/lib/AreRoot/AreRoot.component.js +0 -53
  543. package/dist/node/lib/AreRoot/AreRoot.component.js.map +0 -1
  544. package/dist/node/lib/AreRoot/AreRoot.component.mjs +0 -41
  545. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +0 -1
  546. package/dist/node/lib/AreRoot/index.d.mts +0 -11
  547. package/dist/node/lib/AreRoot/index.d.ts +0 -11
  548. package/dist/node/lib/AreRoot/index.js +0 -12
  549. package/dist/node/lib/AreRoot/index.js.map +0 -1
  550. package/dist/node/lib/AreRoot/index.mjs +0 -4
  551. package/dist/node/lib/AreRoot/index.mjs.map +0 -1
  552. package/dist/node/lib/AreRouter/AreRouter.componeent.d.mts +0 -17
  553. package/dist/node/lib/AreRouter/AreRouter.componeent.d.ts +0 -17
  554. package/dist/node/lib/AreRouter/AreRouter.componeent.js +0 -37
  555. package/dist/node/lib/AreRouter/AreRouter.componeent.js.map +0 -1
  556. package/dist/node/lib/AreRouter/AreRouter.componeent.mjs +0 -25
  557. package/dist/node/lib/AreRouter/AreRouter.componeent.mjs.map +0 -1
  558. package/dist/node/lib/AreRouter/index.d.mts +0 -12
  559. package/dist/node/lib/AreRouter/index.d.ts +0 -12
  560. package/dist/node/lib/AreRouter/index.js +0 -12
  561. package/dist/node/lib/AreRouter/index.js.map +0 -1
  562. package/dist/node/lib/AreRouter/index.mjs +0 -4
  563. package/dist/node/lib/AreRouter/index.mjs.map +0 -1
  564. package/dist/node/lib/AreScene/index.d.mts +0 -9
  565. package/dist/node/lib/AreScene/index.d.ts +0 -9
  566. package/dist/node/lib/AreScene/index.js +0 -24
  567. package/dist/node/lib/AreScene/index.js.map +0 -1
  568. package/dist/node/lib/AreScene/index.mjs +0 -6
  569. package/dist/node/lib/AreScene/index.mjs.map +0 -1
  570. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.mts +0 -7
  571. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.ts +0 -7
  572. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js +0 -12
  573. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js.map +0 -1
  574. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs +0 -12
  575. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs.map +0 -1
  576. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.mts +0 -8
  577. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.ts +0 -8
  578. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js +0 -95
  579. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js.map +0 -1
  580. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs +0 -94
  581. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs.map +0 -1
  582. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.mts +0 -8
  583. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.ts +0 -8
  584. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js +0 -4
  585. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js.map +0 -1
  586. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs +0 -3
  587. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs.map +0 -1
  588. package/dist/node/lib/AreSceneInstruction/index.d.mts +0 -19
  589. package/dist/node/lib/AreSceneInstruction/index.d.ts +0 -19
  590. package/dist/node/lib/AreSceneInstruction/index.js +0 -33
  591. package/dist/node/lib/AreSceneInstruction/index.js.map +0 -1
  592. package/dist/node/lib/AreSceneInstruction/index.mjs +0 -7
  593. package/dist/node/lib/AreSceneInstruction/index.mjs.map +0 -1
  594. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.mts +0 -19
  595. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.ts +0 -19
  596. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js +0 -27
  597. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js.map +0 -1
  598. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs +0 -26
  599. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs.map +0 -1
  600. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.mts +0 -20
  601. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.ts +0 -20
  602. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js +0 -27
  603. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js.map +0 -1
  604. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs +0 -26
  605. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs.map +0 -1
  606. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.mts +0 -17
  607. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.ts +0 -17
  608. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js +0 -23
  609. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js.map +0 -1
  610. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs +0 -22
  611. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs.map +0 -1
  612. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.mts +0 -19
  613. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.ts +0 -19
  614. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js +0 -27
  615. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js.map +0 -1
  616. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs +0 -26
  617. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs.map +0 -1
  618. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.mts +0 -23
  619. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.ts +0 -23
  620. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js +0 -41
  621. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js.map +0 -1
  622. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs +0 -40
  623. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs.map +0 -1
  624. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.mts +0 -15
  625. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.ts +0 -15
  626. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js +0 -21
  627. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js.map +0 -1
  628. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs +0 -20
  629. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs.map +0 -1
  630. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.mts +0 -17
  631. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.ts +0 -17
  632. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js +0 -23
  633. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js.map +0 -1
  634. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs +0 -22
  635. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs.map +0 -1
  636. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.mts +0 -23
  637. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.ts +0 -23
  638. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js +0 -34
  639. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js.map +0 -1
  640. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs +0 -33
  641. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs.map +0 -1
  642. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.mts +0 -16
  643. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.ts +0 -16
  644. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js +0 -20
  645. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js.map +0 -1
  646. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs +0 -19
  647. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs.map +0 -1
  648. package/dist/node/lib/AreSceneInstruction/types/index.d.mts +0 -18
  649. package/dist/node/lib/AreSceneInstruction/types/index.d.ts +0 -18
  650. package/dist/node/lib/AreSceneInstruction/types/index.js +0 -52
  651. package/dist/node/lib/AreSceneInstruction/types/index.js.map +0 -1
  652. package/dist/node/lib/AreSceneInstruction/types/index.mjs +0 -12
  653. package/dist/node/lib/AreSceneInstruction/types/index.mjs.map +0 -1
  654. package/dist/node/lib/AreSlot/AreSlot.component.d.mts +0 -8
  655. package/dist/node/lib/AreSlot/AreSlot.component.d.ts +0 -8
  656. package/dist/node/lib/AreSlot/AreSlot.component.js +0 -37
  657. package/dist/node/lib/AreSlot/AreSlot.component.js.map +0 -1
  658. package/dist/node/lib/AreSlot/AreSlot.component.mjs +0 -36
  659. package/dist/node/lib/AreSlot/AreSlot.component.mjs.map +0 -1
  660. package/dist/node/lib/AreStore/index.d.mts +0 -3
  661. package/dist/node/lib/AreStore/index.d.ts +0 -3
  662. package/dist/node/lib/AreStore/index.js +0 -12
  663. package/dist/node/lib/AreStore/index.js.map +0 -1
  664. package/dist/node/lib/AreStore/index.mjs +0 -4
  665. package/dist/node/lib/AreStore/index.mjs.map +0 -1
  666. package/dist/node/lib/AreSyntax/AreSyntax.component.d.mts +0 -89
  667. package/dist/node/lib/AreSyntax/AreSyntax.component.d.ts +0 -89
  668. package/dist/node/lib/AreSyntax/AreSyntax.component.js +0 -241
  669. package/dist/node/lib/AreSyntax/AreSyntax.component.js.map +0 -1
  670. package/dist/node/lib/AreSyntax/AreSyntax.component.mjs +0 -232
  671. package/dist/node/lib/AreSyntax/AreSyntax.component.mjs.map +0 -1
  672. package/dist/node/lib/AreSyntax/index.d.mts +0 -12
  673. package/dist/node/lib/AreSyntax/index.d.ts +0 -12
  674. package/dist/node/lib/AreSyntax/index.js +0 -29
  675. package/dist/node/lib/AreSyntax/index.js.map +0 -1
  676. package/dist/node/lib/AreSyntax/index.mjs +0 -7
  677. package/dist/node/lib/AreSyntax/index.mjs.map +0 -1
  678. package/dist/node/signals/AreInit.signal.d.mts +0 -7
  679. package/dist/node/signals/AreInit.signal.d.ts +0 -7
  680. package/dist/node/signals/AreInit.signal.js +0 -13
  681. package/dist/node/signals/AreInit.signal.js.map +0 -1
  682. package/dist/node/signals/AreInit.signal.mjs +0 -12
  683. package/dist/node/signals/AreInit.signal.mjs.map +0 -1
  684. package/dist/node/signals/AreRoute.signal.d.mts +0 -12
  685. package/dist/node/signals/AreRoute.signal.d.ts +0 -12
  686. package/dist/node/signals/AreRoute.signal.js +0 -24
  687. package/dist/node/signals/AreRoute.signal.js.map +0 -1
  688. package/dist/node/signals/AreRoute.signal.mjs +0 -23
  689. package/dist/node/signals/AreRoute.signal.mjs.map +0 -1
  690. package/dist/node/signals/index.d.mts +0 -4
  691. package/dist/node/signals/index.d.ts +0 -4
  692. package/dist/node/signals/index.js +0 -17
  693. package/dist/node/signals/index.js.map +0 -1
  694. package/dist/node/signals/index.mjs +0 -5
  695. package/dist/node/signals/index.mjs.map +0 -1
  696. package/examples/jumpstart/concept.ts +0 -60
  697. package/examples/jumpstart/containers/UI.container.ts +0 -172
  698. package/examples/jumpstart/dist/index.html +0 -22
  699. package/examples/jumpstart/dist/mls3rrlq-lofs95.js +0 -129
  700. package/examples/jumpstart/dist/static/css/main.css +0 -40
  701. package/examples/jumpstart/dist/static/img/test.png +0 -0
  702. package/examples/jumpstart/public/index.html +0 -22
  703. package/examples/jumpstart/public/static/css/main.css +0 -40
  704. package/examples/jumpstart/public/static/img/test.png +0 -0
  705. package/examples/jumpstart/src/components/A-Btn.component.ts +0 -124
  706. package/examples/jumpstart/src/components/A-Input.component.ts +0 -78
  707. package/examples/jumpstart/src/components/A-Navigation.component.ts +0 -167
  708. package/examples/jumpstart/src/components/SignInComponent.component.ts +0 -127
  709. package/examples/jumpstart/src/concept.ts +0 -92
  710. package/src/engines/html/AreHTML.compiler.ts +0 -657
  711. package/src/engines/html/AreHTML.engine.ts +0 -62
  712. package/src/engines/html/index.ts +0 -2
  713. package/src/engines/json/AreJSON.compiler.ts +0 -13
  714. package/src/lib/AreApp/AreApp.container.ts +0 -77
  715. package/src/lib/AreApp/AreApp.error.ts +0 -7
  716. package/src/lib/AreApp/index.ts +0 -4
  717. package/src/lib/AreCompiler/index.ts +0 -3
  718. package/src/lib/AreComponent/index.ts +0 -4
  719. package/src/lib/AreEvent/index.ts +0 -2
  720. package/src/lib/AreIndex/AreIndex.context.ts +0 -174
  721. package/src/lib/AreIndex/index.ts +0 -1
  722. package/src/lib/AreNode/index.ts +0 -4
  723. package/src/lib/AreProps/AreProps.context.ts +0 -26
  724. package/src/lib/AreProps/index.ts +0 -1
  725. package/src/lib/AreRoot/AreRoot.component.ts +0 -54
  726. package/src/lib/AreRoot/index.ts +0 -1
  727. package/src/lib/AreRouter/AreRouter.componeent.ts +0 -24
  728. package/src/lib/AreRouter/index.ts +0 -1
  729. package/src/lib/AreScene/index.ts +0 -3
  730. package/src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts +0 -7
  731. package/src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts +0 -156
  732. package/src/lib/AreSceneInstruction/AreSceneInstruction.types.ts +0 -8
  733. package/src/lib/AreSceneInstruction/index.ts +0 -4
  734. package/src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts +0 -34
  735. package/src/lib/AreSceneInstruction/types/AddDirective.instruction.ts +0 -36
  736. package/src/lib/AreSceneInstruction/types/AddStyle.instruction.ts +0 -26
  737. package/src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts +0 -32
  738. package/src/lib/AreSceneInstruction/types/AttachListener.instruction.ts +0 -57
  739. package/src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts +0 -23
  740. package/src/lib/AreSceneInstruction/types/MountNode.instruction.ts +0 -29
  741. package/src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts +0 -45
  742. package/src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts +0 -22
  743. package/src/lib/AreSceneInstruction/types/index.ts +0 -10
  744. package/src/lib/AreSlot/AreSlot.component.ts +0 -48
  745. package/src/lib/AreStore/index.ts +0 -1
  746. package/src/lib/AreSyntax/AreSyntax.component.ts +0 -378
  747. package/src/lib/AreSyntax/index.ts +0 -4
  748. package/src/signals/AreInit.signal.ts +0 -7
  749. package/src/signals/AreRoute.signal.ts +0 -25
  750. package/src/signals/index.ts +0 -2
  751. package/tests/A-HttpChannel.test.ts +0 -204
  752. package/tests/A-HttpServerError.test.ts +0 -204
  753. package/tests/A-Request.test.ts +0 -742
  754. package/tests/A-Service.test.ts +0 -18
  755. /package/dist/node/lib/{AreApp/AreApp.env.d.mts → AreInterpreter/AreInterpreter.constants.d.mts} +0 -0
  756. /package/dist/node/lib/{AreApp/AreApp.env.d.ts → AreInterpreter/AreInterpreter.constants.d.ts} +0 -0
  757. /package/dist/node/lib/{AreApp/AreApp.types.d.mts → AreInterpreter/AreInterpreter.types.d.mts} +0 -0
  758. /package/dist/node/lib/{AreApp/AreApp.types.d.ts → AreInterpreter/AreInterpreter.types.d.ts} +0 -0
  759. /package/src/lib/{AreApp/AreApp.env.ts → AreInterpreter/AreInterpreter.constants.ts} +0 -0
  760. /package/src/lib/{AreApp/AreApp.types.ts → AreInterpreter/AreInterpreter.types.ts} +0 -0
@@ -1,14 +1,49 @@
1
1
  import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from "@adaas/a-concept";
2
- import { AreIndex } from "../AreIndex/AreIndex.context";
3
- import { AreNode } from "@adaas/are/node";
4
- import { AreSCene_Serialized } from "./AreScene.types";
5
- import { AreProps } from "@adaas/are/props";
6
- import { AreStore } from "@adaas/are/store";
7
- import { AreSceneInstruction } from "@adaas/are/scene-instruction";
8
-
2
+ import { A_Frame } from "@adaas/a-frame";
3
+ import type { AreNode } from "@adaas/are/node/AreNode.entity";
4
+ import { AreDeclaration } from "@adaas/are/instruction/types/AreDeclaration.instruction";
5
+ import { AreInstruction } from "@adaas/are/instruction/AreInstruction.entity";
6
+ import { AreSceneChanges, AreSceneStatusNames } from "./AreScene.types";
7
+ import { AreSceneError } from "./AreScene.error";
8
+ import { AreMutation } from "@adaas/are/instruction/types/AreMutation.instruction";
9
+ import { AreSceneStatuses } from "./AreScene.constants";
10
+
11
+
12
+
13
+ @A_Frame.Component({
14
+ namespace: 'A-ARE',
15
+ name: 'AreScene',
16
+ description: "Persistent runtime structure that owns the rendering state for a component's lifetime. Maintains two sets — applied (what is currently in the DOM) and planned (what should be). Acts as the single source of truth for all rendering decisions. The Compiler produces it once, the Interpreter reads it on every update."
17
+ })
9
18
  export class AreScene extends A_Fragment {
19
+ // -----------------------------------------------------------------------------------
20
+ // -----------------------------------Scene Index-------------------------------------
21
+ // -----------------------------------------------------------------------------------
22
+ protected _groupToInstructionsMap: Map<string, Set<AreInstruction>> = new Map();
23
+
24
+ /**
25
+ * Plan is a queue of changes that should be applied to render the node
26
+ *
27
+ * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
28
+ */
29
+ protected _plan: Array<AreInstruction> = [];
30
+ /**
31
+ * State is a list of instructions that are currently applied to the node,
32
+ * so it represents the current state of the node in the scene.
33
+ *
34
+ * It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.
35
+ *
36
+ * For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.
37
+ */
38
+ protected _state: Array<AreInstruction> = [];
39
+
40
+
41
+ protected _host: AreDeclaration | undefined;
42
+ /**
43
+ * Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.
44
+ */
45
+ protected _status: AreSceneStatusNames = AreSceneStatuses.Active;
10
46
 
11
- protected _state: Set<string> = new Set();
12
47
 
13
48
  constructor(
14
49
  /**
@@ -19,364 +54,350 @@ export class AreScene extends A_Fragment {
19
54
  super({ name: id.toString() });
20
55
  }
21
56
 
57
+ /**
58
+ * Scene ID that corresponds to the root node's ID (part of ASEID)
59
+ */
22
60
  get id(): string {
23
61
  return this.name;
24
62
  }
25
-
26
63
  /**
27
- * Get the root scene of the current scene
64
+ * The scope where scene is registered. This scope is owned by AreNode
28
65
  */
29
- get root(): AreScene {
30
- let currentScope: A_Scope | undefined = this.scope;
31
- let rootScene: AreScene = this;
32
-
33
- while (currentScope) {
34
- const parentScene = currentScope.parent?.resolve<AreScene>(this.constructor as typeof AreScene);
35
- if (parentScene) {
36
- rootScene = parentScene;
37
- }
38
- currentScope = currentScope.parent;
39
- }
40
-
41
- return rootScene;
42
- }
43
-
44
66
  get scope(): A_Scope {
45
67
  return A_Context.scope(this);
46
68
  }
47
-
48
- get index(): AreIndex<string> {
49
- return A_Context.scope(this).resolveFlat<AreIndex<string>>(AreIndex)!;
69
+ /**
70
+ * The owner node of the scene, which is the node that registered the scene in its scope.
71
+ * This is typically the node that is responsible for rendering the scene and managing its lifecycle.
72
+ */
73
+ get owner(): AreNode {
74
+ return this.scope.issuer() as AreNode;
50
75
  }
51
-
52
- get parent(): AreScene | undefined {
53
- return A_Context.scope(this).parent?.resolveFlat<AreScene>(AreScene);
76
+ /**
77
+ * It's a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle.
78
+ */
79
+ get host(): AreDeclaration | undefined {
80
+ return this._host;
54
81
  }
55
-
56
- get children(): Array<AreScene> {
57
- return this.scope.resolveFlatAll<AreNode>(AreNode)
58
- .map(n => n.scope.resolveFlat<AreScene>(AreScene))
59
- .filter(s => !!s);
82
+ /**
83
+ * Scene status is used to determine the current lifecycle stage of the scene, which can be 'active', 'inactive' or 'destroyed'. This status can be used to control the behavior of the scene and its instructions, for example, we can prevent applying new instructions to an inactive or destroyed scene, or we can trigger certain actions when the scene becomes active or inactive. The default status of the scene is 'inactive', which means that the scene is not yet rendered and its instructions are not applied, and it will become 'active' when it is mounted and its instructions are applied, and it will become 'destroyed' when it is unmounted and its instructions are reverted.
84
+ */
85
+ get status(): AreSceneStatusNames {
86
+ return this._status;
60
87
  }
61
88
 
89
+ get isActive(): boolean {
90
+ return this.status === AreSceneStatuses.Active;
91
+ }
62
92
 
63
- get depth(): number {
64
- let depth = 0;
65
- let currentScope: A_Scope | undefined = this.scope;
93
+ get isInactive(): boolean {
94
+ return this.status === AreSceneStatuses.Inactive;
95
+ }
66
96
 
67
- while (currentScope) {
68
- if (currentScope.parent && currentScope.parent.resolve<AreScene>(this.constructor as typeof AreScene)) {
69
- depth++;
97
+ /**
98
+ * Returns All declaration instructions are registered in the scene scope. Since declaration instructions are the main instructions that represent the structure of the node, we have a separate getter for them to easily access and manage them in the scene.
99
+ */
100
+ get declarations(): AreDeclaration[] {
101
+ return this.scope.resolve<AreDeclaration>(new A_Dependency(AreDeclaration, {
102
+ flat: true,
103
+ pagination: {
104
+ count: -1,
70
105
  }
71
- currentScope = currentScope.parent;
72
- }
73
-
74
- return depth;
106
+ })) as AreDeclaration[] || [];
75
107
  }
76
-
77
-
78
- get instructions(): Array<AreSceneInstruction> {
79
- return this.scope.resolveFlatAll<AreSceneInstruction>(AreSceneInstruction) || [];
108
+ /**
109
+ * Returns All mutation instructions are registered in the scene scope. Mutation instructions are the instructions that represent the changes to be applied to the node, so we have a separate getter for them to easily access and manage them in the scene, especially when we want to apply or revert changes based on the mutations.
110
+ */
111
+ get mutations(): AreMutation[] {
112
+ return this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {
113
+ flat: true,
114
+ pagination: {
115
+ count: -1,
116
+ }
117
+ })) as AreMutation[] || [];
118
+ }
119
+ /**
120
+ * Returns All instructions are registered in the scene scope.
121
+ */
122
+ get instructions(): AreInstruction[] {
123
+ return this.scope.resolveFlatAll<AreInstruction>(AreInstruction) || [];
124
+ }
125
+ /**
126
+ * Plan is a queue of changes that should be applied to render the node
127
+ *
128
+ * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
129
+ */
130
+ get planned(): AreInstruction[] {
131
+ return this._plan;
132
+ }
133
+ /**
134
+ * State is a list of instructions that are currently applied to the node,
135
+ * so it represents the current state of the node in the scene.
136
+ *
137
+ * It always in a reverse order of the plan, so the last instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.
138
+ *
139
+ * For example, if we have a node with two instructions in the plan: [Instruction A, Instruction B], and both of them are applied to the node, then the state will be [Instruction B, Instruction A], so when we need to revert the changes, we will revert Instruction B first, and then Instruction A.
140
+ */
141
+ get applied(): AreInstruction[] {
142
+ return this._state.reverse(); // we reverse the state to have the correct order of instructions, so the first instruction in the state is the first one that should be reverted when we need to revert the changes, and so on.
80
143
  }
81
144
 
145
+ /**
146
+ * Should return instructions to be reverted and to be applied.
147
+ * A difference between plan vs state is that plan is what should be applied to the scene,
148
+ * while state is what currently applied to the scene.
149
+ *
150
+ */
151
+ get changes(): AreSceneChanges {
152
+ const toApply = this.planned.filter(i => !this.isApplied(i));
153
+ const toRevert = this.applied.filter(i => !this.isInPlan(i));
82
154
 
83
- nodes(
84
- filter?: (node: AreNode) => boolean
85
- ): AreNode[] {
155
+ return {
156
+ toApply,
157
+ toRevert,
158
+ }
159
+ }
86
160
 
87
- const nodes: AreNode[] = [];
88
161
 
89
- for (const path of this.paths()) {
162
+ //===============================================================================================
163
+ //============================= Scene Primary Methods ===========================================
164
+ //===============================================================================================
165
+ activate(): void {
166
+ this._status = AreSceneStatuses.Active;
167
+ }
90
168
 
91
- const node = this.index.nodeOf(path);
169
+ deactivate(): void {
92
170
 
93
- if (!node) {
94
- continue;
95
- }
171
+ this._status = AreSceneStatuses.Inactive;
172
+ }
173
+ /**
174
+ * Each scene has a primary declaration instruction that represents the node in the scene, so it should be registered as a host instruction for the scene, and it will be used to keep track of the node in the scene and to manage its lifecycle. This method allows to set the host instruction for the scene, but it will throw an error if we try to set another host instruction while there is already a host instruction set, so we can ensure that there is only one host instruction for the scene at any given time.
175
+ *
176
+ * @param instruction
177
+ */
178
+ setHost(instruction: AreDeclaration): void {
179
+ if (this.host) {
180
+ const dependentInstructions = this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {
181
+ flat: true,
182
+ pagination: {
183
+ count: -1,
184
+ },
185
+ query: {
186
+ parent: this.host.aseid.toString(),
96
187
 
97
- if (filter && !filter(node)) {
98
- continue;
99
- }
188
+ }
189
+ })) as Array<AreMutation> || [];
100
190
 
101
- nodes.push(node);
191
+ dependentInstructions.forEach(element => {
192
+ element.attachTo(instruction)
193
+ element.groupWith(instruction);
194
+ });
102
195
  }
103
196
 
104
- return nodes;
197
+ this._host = instruction;
105
198
  }
199
+ /**
200
+ * Unsets the current host instruction from the scene.
201
+ *
202
+ * This method should be used when we want to remove the primary declaration instruction that represents the node in the scene, for example, when we want to unmount the node or when we want to replace it with another node. Unsetting the host instruction will allow us to set a new host instruction for the scene if needed.
203
+ */
204
+ removeHost(): void {
205
+ if (this.host)
206
+ throw new AreSceneError({
207
+ title: AreSceneError.HostInstructionHasConnectedInstructions,
208
+ description: `Cannot remove host instruction (${this.host.aseid}) from scene ${this.id} because it has planned instructions in the scene. Please unPlan all instructions related to the host instruction before removing it.`,
209
+ });
106
210
 
211
+ this._host = undefined;
107
212
 
108
- renderPlanFor(
109
- node: AreNode,
110
- filter?: {
111
- filter?: (instruction: AreSceneInstruction) => boolean,
112
- changes?: Array<new (...args: any[]) => AreSceneInstruction>,
113
- order?: Array<new (...args: any[]) => AreSceneInstruction>,
114
- }
115
- ) {
116
-
117
- const actions: AreSceneInstruction[] = [];
118
-
119
- const order = filter?.order || [];
120
- const filterFn = filter?.filter;
213
+ }
121
214
 
122
- let plan = this.instructions;
215
+ // ------------------------------------------------------------------------------------------------------------
216
+ // Scene Render Plan Methods
217
+ // ------------------------------------------------------------------------------------------------------------
218
+ /**
219
+ * Method that should register the instruction in the plan, so it will be rendered in the next render cycle.
220
+ *
221
+ * @param instruction
222
+ */
223
+ plan(instruction: AreInstruction) {
224
+ // const registered = this.getPlanned(instruction);
123
225
 
124
- plan = plan.sort((a, b) => {
125
- const aIndex = order.findIndex(instructionType => a instanceof instructionType);
126
- const bIndex = order.findIndex(instructionType => b instanceof instructionType);
226
+ // if (!registered) {
227
+ try {
228
+ this.scope.register(instruction);
127
229
 
128
- return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);
129
- });
230
+ } catch (error) {
130
231
 
131
- if (filterFn) {
132
- plan = plan.filter(filterFn);
133
232
  }
233
+ this._plan.push(instruction);
134
234
 
135
- for (const action of plan) {
136
- if (action.node === node) {
137
- actions.push(action);
138
- }
235
+ // We also add the instruction to the group map, so we can easily manage instructions by group, for example, when we want to unPlan all instructions related to a specific host instruction, we can easily find them in the group map and unPlan them.
236
+ if (!this._groupToInstructionsMap.has(instruction.group || 'default')) {
237
+ this._groupToInstructionsMap.set(instruction.group || 'default', new Set());
139
238
  }
140
- return actions;
239
+ this._groupToInstructionsMap.get(instruction.group || 'default')!.add(instruction);
240
+ // }
141
241
  }
142
242
 
143
- get debugPrefix() {
144
- return `${' - '.repeat(this.depth)}`
145
- }
243
+ planBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {
244
+ const beforeIndex = this._plan.findIndex(i => i.aseid.toString() === beforeInstruction.aseid.toString());
245
+ const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());
146
246
 
147
- get path(): string {
148
- if (!this.parent)
149
- return '';
150
- else {
151
- const ownerNode = this.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {
152
- flat: true,
153
- query: {
154
- aseid: this.id
155
- }
156
- })) as AreNode;
157
-
158
- const NodePath = this.parent.index.pathOf(ownerNode);
159
-
160
- return this.parent.path ? (this.parent.path + '.' + NodePath) : NodePath!;
247
+ if (beforeIndex === -1) {
248
+ throw new AreSceneError({
249
+ title: AreSceneError.SceneError,
250
+ description: `Instruction ${beforeInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} before it.`,
251
+ });
161
252
  }
162
- }
163
253
 
164
- *paths(): Iterable<string> {
165
- let paths = this.index.paths;
254
+ if (instructionIndex === -1) {
166
255
 
167
- // create proper tree sequence
168
- paths.sort((a, b) => {
169
- const aParsed = a.split('.').map(part => parseInt(part, 10));
170
- const bParsed = b.split('.').map(part => parseInt(part, 10));
256
+ try {
257
+ this.scope.register(instruction);
171
258
 
172
- const len = Math.min(aParsed.length, bParsed.length);
173
- for (let i = 0; i < len; i++) {
174
- if (aParsed[i] !== bParsed[i]) {
175
- return aParsed[i] - bParsed[i];
176
- }
177
- }
178
- return aParsed.length - bParsed.length;
179
- });
259
+ } catch (error) {
180
260
 
181
- // yield paths
182
- for (const path of paths) {
183
- yield path;
261
+ }
262
+ this._plan.splice(beforeIndex, 0, instruction);
263
+ } else {
264
+ // Instruction is already in the plan, we just need to move it before the beforeInstruction
265
+ this._plan.splice(instructionIndex, 1); // remove from current position
266
+ this._plan.splice(beforeIndex, 0, instruction); // insert before the beforeInstruction
184
267
  }
185
268
  }
186
269
 
187
- plan(instruction: AreSceneInstruction) {
188
- try {
270
+ planAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {
271
+ const afterIndex = this._plan.findIndex(i => i.aseid.toString() === afterInstruction.aseid.toString());
272
+ const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());
273
+
274
+ if (afterIndex === -1) {
275
+ throw new AreSceneError({
276
+ title: AreSceneError.SceneError,
277
+ description: `Instruction ${afterInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} after it.`,
278
+ });
279
+ }
280
+
281
+ if (instructionIndex === -1) {
189
282
  this.scope.register(instruction);
190
- } catch (error) {
283
+ this._plan.splice(afterIndex + 1, 0, instruction);
284
+ } else {
285
+ // Instruction is already in the plan, we just need to move it after the afterInstruction
286
+ this._plan.splice(instructionIndex, 1); // remove from current position
287
+ this._plan.splice(afterIndex + 1, 0, instruction); // insert after the afterInstruction
191
288
  }
192
289
  }
193
290
 
194
- unPlan(
195
- instruction: AreSceneInstruction
196
- ) {
197
- const planned = this.getPlanned(instruction);
198
-
199
- try {
200
- if (planned)
201
- this.scope.deregister(planned);
202
- } catch (error) {
203
291
 
292
+ moveBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {
293
+ if (!this.isInPlan(instruction)) {
294
+ throw new AreSceneError({
295
+ title: AreSceneError.SceneError,
296
+ description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction before ${beforeInstruction.aseid}. Please plan the instruction before moving it.`,
297
+ });
204
298
  }
205
- }
206
-
207
- isAttached(node: AreNode): boolean {
208
- return !!(this.scope.resolve<AreNode>(new A_Dependency(AreNode, {
209
- flat: true,
210
- query: {
211
- aseid: node.aseid
212
- }
213
- })));
214
- }
215
299
 
216
- attach(node: AreNode): void {
217
- this.scope.register(node);
218
- node.scope.inherit(this.scope)
300
+ this.planBefore(instruction, beforeInstruction);
219
301
  }
220
302
 
221
- sceneOf(node: AreNode): AreScene | undefined {
222
- return node.scope.resolveFlat<AreScene>(AreScene);
223
- }
303
+ moveAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {
304
+ if (!this.isInPlan(instruction)) {
305
+ throw new AreSceneError({
306
+ title: AreSceneError.SceneError,
307
+ description: `Instruction ${instruction.aseid} is not in the plan of scene ${this.id}. Cannot move instruction after ${afterInstruction.aseid}. Please plan the instruction before moving it.`,
308
+ });
309
+ }
224
310
 
225
- propsOf(node: AreNode): AreProps {
226
- return node.scope.resolveFlat<AreProps>(AreProps)!;
311
+ this.planAfter(instruction, afterInstruction);
227
312
  }
228
313
 
229
- storeOf(node: AreNode): AreStore {
230
- return node.scope.resolveFlat<AreStore>(AreStore)!;
231
- }
232
- isPlanned(action: AreSceneInstruction): boolean {
233
- return this.getPlanned(action) !== undefined;
234
- }
235
314
 
236
315
  /**
237
- * It returns planned instruction instance from the scene
238
- *
239
- * [!] Only Planned instructions can be used for state checking
316
+ * Allows to remove instruction from the plan, so it will not be rendered anymore, but it will still be registered in the scene scope, so it can be planned again if needed.
240
317
  *
241
318
  * @param instruction
242
- * @returns
243
319
  */
244
- getPlanned<T extends AreSceneInstruction>(
245
- /**
246
- * Should be instruction instance to get
247
- */
248
- instruction: T
249
- ): T | undefined {
320
+ unPlan(
321
+ instruction: AreInstruction
322
+ ) {
323
+ // const registered = this.getPlanned(instruction);
250
324
 
251
- const planned = this.scope.resolve<AreSceneInstruction>(new A_Dependency(AreSceneInstruction, {
252
- flat: true,
253
- query: {
254
- aseid: instruction.aseid.toString()
255
- }
256
- })) as T | undefined;
325
+ // if (registered) {
326
+ // this.scope.deregister(instruction);
327
+ this._plan = this._plan.filter(i => i.aseid.toString() !== instruction.aseid.toString());
328
+ // }
257
329
 
258
- return planned;
259
330
  }
260
-
261
331
  /**
262
- * Operation Only applicable from Plan -> State
263
- *
264
- * So only instructions presented in the plan can be moved to state
265
- * State is a set of instructions that are currently applied to the scene
332
+ * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
266
333
  *
267
334
  * @param instruction
335
+ * @returns
268
336
  */
269
- setState(
270
- /**
271
- * Should be instruction instance to apply
272
- */
273
- instruction: AreSceneInstruction
274
- ) {
275
- const planned = this.getPlanned(instruction);
276
-
277
-
337
+ getPlanned(instruction: AreInstruction): AreInstruction | undefined {
338
+ const found = this._plan.find(i => i.aseid.toString() === instruction.aseid.toString());
278
339
 
279
- if (planned) {
280
- this._state.delete(planned.aseid.toString());
281
- this._state.add(instruction.aseid.toString());
282
- }
340
+ return found;
283
341
  }
284
-
285
-
286
- dropState<T extends AreSceneInstruction>(
287
- /**
288
- * Should be instruction instance to drop
289
- */
290
- instruction: T
291
- ) {
292
- const planned = this.getPlanned(instruction);
293
-
294
- if (planned) {
295
- this._state.delete(planned.aseid.toString());
296
- }
342
+ /**
343
+ * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
344
+ *
345
+ * @param instruction
346
+ * @returns
347
+ */
348
+ isInPlan(instruction: AreInstruction): boolean {
349
+ return !!this.getPlanned(instruction);
297
350
  }
298
351
 
299
-
300
- resetPlan(
301
- node: AreNode
302
- ) {
303
- for (const instruction of this.renderPlanFor(node)) {
304
- if (instruction.node === node) {
305
- this.unPlan(instruction);
306
- }
352
+ // -------------------------------------------------------------------------------------------------------------
353
+ // Scene Apply Methods
354
+ // -------------------------------------------------------------------------------------------------------------
355
+ /**
356
+ * Method moves the instruction to state to keep it applied and to be able to revert it later if needed. The instruction should be already registered in the scene scope and planned to be applied, otherwise it will not be applied.
357
+ *
358
+ * @param instruction
359
+ */
360
+ apply(instruction: AreInstruction) {
361
+ if (!this.isApplied(instruction)) {
362
+ this._state.push(instruction);
307
363
  }
308
364
  }
309
-
310
- resetState(
311
- node: AreNode
365
+ /**
366
+ * Method moves the instruction from state to unapply it and to be able to apply it later if needed. The instruction should be already registered in the scene scope and applied, otherwise it will not be unapplied.
367
+ *
368
+ * @param instruction
369
+ */
370
+ unApply(
371
+ instruction: AreInstruction
312
372
  ) {
313
- for (const instruction of this.renderPlanFor(node)) {
314
- if (instruction.node === node) {
315
-
316
- this._state.delete(instruction.aseid.toString());
317
- }
318
- }
373
+ this._state = this._state.filter(i => i.aseid.toString() !== instruction.aseid.toString());
319
374
  }
375
+ /**
376
+ * Checks if the instruction is already in the state, so it is currently applied to the scene.
377
+ *
378
+ * @param instruction
379
+ * @returns
380
+ */
381
+ getApplied(instruction: AreInstruction): AreInstruction | undefined {
382
+ const found = this._state.find(i => i.aseid.toString() === instruction.aseid.toString());
320
383
 
321
-
322
- getState<T extends AreSceneInstruction>(
323
- /**
324
- * Should be instruction instance to get state for
325
- */
326
- instruction: T
327
- ): T | undefined {
328
-
329
-
330
- const planned = this.getPlanned(instruction);
331
-
332
-
333
- if (!planned) {
334
- return undefined;
335
- }
336
-
337
- if (this._state.has(planned.aseid.toString()))
338
- return planned as T;
339
- else
340
- return undefined;
384
+ return found;
341
385
  }
342
-
343
- revert(
344
- /**
345
- * Should be instruction instance to revert
346
- */
347
- instruction: AreSceneInstruction
348
- ) {
349
- this._state.delete(instruction!.aseid.toString());
386
+ /**
387
+ * Checks if the instruction is already in the state, so it is currently applied to the scene.
388
+ *
389
+ * @param instruction
390
+ * @returns
391
+ */
392
+ isApplied(instruction: AreInstruction): boolean {
393
+ return !!this.getApplied(instruction);
350
394
  }
351
-
352
-
395
+ /**
396
+ * Method that should reset the scene to the initial state, so it will clear the plan and state, but it will not deregister the instructions from the scene scope, so they will still be registered in the scene and can be planned and applied again if needed.
397
+ *
398
+ */
353
399
  reset() {
354
- this.index.clear();
355
- this._state.clear();
400
+ this._plan = [];
401
+ this._state = [];
356
402
  }
357
-
358
-
359
- toJSON(): AreSCene_Serialized {
360
- return {
361
- ...super.toJSON(),
362
- children: Object.fromEntries(
363
- Array.from(this.children).map(child => [
364
- child.id.toString(),
365
- child.toJSON()
366
- ])
367
- )
368
- }
369
- }
370
- }
371
-
372
-
373
-
374
-
375
-
376
- // Just to cover the proper lifecycle
377
-
378
- /*
379
- 1) Create Scene with template from mounting point content
380
- 2) Do indexing of the scene
381
-
382
- */
403
+ }