@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,249 +1,347 @@
1
1
  'use strict';
2
2
 
3
3
  var aConcept = require('@adaas/a-concept');
4
- var AreIndex_context = require('../AreIndex/AreIndex.context');
5
- var node = require('@adaas/are/node');
6
- var props = require('@adaas/are/props');
7
- var store = require('@adaas/are/store');
8
- var sceneInstruction = require('@adaas/are/scene-instruction');
4
+ var aFrame = require('@adaas/a-frame');
5
+ var AreDeclaration_instruction = require('@adaas/are/instruction/types/AreDeclaration.instruction');
6
+ var AreInstruction_entity = require('@adaas/are/instruction/AreInstruction.entity');
7
+ var AreScene_error = require('./AreScene.error');
8
+ var AreMutation_instruction = require('@adaas/are/instruction/types/AreMutation.instruction');
9
+ var AreScene_constants = require('./AreScene.constants');
9
10
 
10
- class AreScene extends aConcept.A_Fragment {
11
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
12
+ var __decorateClass = (decorators, target, key, kind) => {
13
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
14
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
15
+ if (decorator = decorators[i])
16
+ result = (decorator(result)) || result;
17
+ return result;
18
+ };
19
+ exports.AreScene = class AreScene extends aConcept.A_Fragment {
11
20
  constructor(id) {
12
21
  super({ name: id.toString() });
13
- this._state = /* @__PURE__ */ new Set();
22
+ // -----------------------------------------------------------------------------------
23
+ // -----------------------------------Scene Index-------------------------------------
24
+ // -----------------------------------------------------------------------------------
25
+ this._groupToInstructionsMap = /* @__PURE__ */ new Map();
26
+ /**
27
+ * Plan is a queue of changes that should be applied to render the node
28
+ *
29
+ * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
30
+ */
31
+ this._plan = [];
32
+ /**
33
+ * State is a list of instructions that are currently applied to the node,
34
+ * so it represents the current state of the node in the scene.
35
+ *
36
+ * 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.
37
+ *
38
+ * 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.
39
+ */
40
+ this._state = [];
41
+ /**
42
+ * 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.
43
+ */
44
+ this._status = AreScene_constants.AreSceneStatuses.Active;
14
45
  }
46
+ /**
47
+ * Scene ID that corresponds to the root node's ID (part of ASEID)
48
+ */
15
49
  get id() {
16
50
  return this.name;
17
51
  }
18
52
  /**
19
- * Get the root scene of the current scene
53
+ * The scope where scene is registered. This scope is owned by AreNode
20
54
  */
21
- get root() {
22
- let currentScope = this.scope;
23
- let rootScene = this;
24
- while (currentScope) {
25
- const parentScene = currentScope.parent?.resolve(this.constructor);
26
- if (parentScene) {
27
- rootScene = parentScene;
28
- }
29
- currentScope = currentScope.parent;
30
- }
31
- return rootScene;
32
- }
33
55
  get scope() {
34
56
  return aConcept.A_Context.scope(this);
35
57
  }
36
- get index() {
37
- return aConcept.A_Context.scope(this).resolveFlat(AreIndex_context.AreIndex);
58
+ /**
59
+ * The owner node of the scene, which is the node that registered the scene in its scope.
60
+ * This is typically the node that is responsible for rendering the scene and managing its lifecycle.
61
+ */
62
+ get owner() {
63
+ return this.scope.issuer();
38
64
  }
39
- get parent() {
40
- return aConcept.A_Context.scope(this).parent?.resolveFlat(AreScene);
65
+ /**
66
+ * 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.
67
+ */
68
+ get host() {
69
+ return this._host;
41
70
  }
42
- get children() {
43
- return this.scope.resolveFlatAll(node.AreNode).map((n) => n.scope.resolveFlat(AreScene)).filter((s) => !!s);
71
+ /**
72
+ * 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.
73
+ */
74
+ get status() {
75
+ return this._status;
44
76
  }
45
- get depth() {
46
- let depth = 0;
47
- let currentScope = this.scope;
48
- while (currentScope) {
49
- if (currentScope.parent && currentScope.parent.resolve(this.constructor)) {
50
- depth++;
51
- }
52
- currentScope = currentScope.parent;
53
- }
54
- return depth;
77
+ get isActive() {
78
+ return this.status === AreScene_constants.AreSceneStatuses.Active;
55
79
  }
56
- get instructions() {
57
- return this.scope.resolveFlatAll(sceneInstruction.AreSceneInstruction) || [];
58
- }
59
- nodes(filter) {
60
- const nodes = [];
61
- for (const path of this.paths()) {
62
- const node = this.index.nodeOf(path);
63
- if (!node) {
64
- continue;
65
- }
66
- if (filter && !filter(node)) {
67
- continue;
80
+ get isInactive() {
81
+ return this.status === AreScene_constants.AreSceneStatuses.Inactive;
82
+ }
83
+ /**
84
+ * 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.
85
+ */
86
+ get declarations() {
87
+ return this.scope.resolve(new aConcept.A_Dependency(AreDeclaration_instruction.AreDeclaration, {
88
+ flat: true,
89
+ pagination: {
90
+ count: -1
68
91
  }
69
- nodes.push(node);
70
- }
71
- return nodes;
72
- }
73
- renderPlanFor(node, filter) {
74
- const actions = [];
75
- const order = filter?.order || [];
76
- const filterFn = filter?.filter;
77
- let plan = this.instructions;
78
- plan = plan.sort((a, b) => {
79
- const aIndex = order.findIndex((instructionType) => a instanceof instructionType);
80
- const bIndex = order.findIndex((instructionType) => b instanceof instructionType);
81
- return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);
82
- });
83
- if (filterFn) {
84
- plan = plan.filter(filterFn);
85
- }
86
- for (const action of plan) {
87
- if (action.node === node) {
88
- actions.push(action);
92
+ })) || [];
93
+ }
94
+ /**
95
+ * 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.
96
+ */
97
+ get mutations() {
98
+ return this.scope.resolve(new aConcept.A_Dependency(AreMutation_instruction.AreMutation, {
99
+ flat: true,
100
+ pagination: {
101
+ count: -1
89
102
  }
90
- }
91
- return actions;
103
+ })) || [];
104
+ }
105
+ /**
106
+ * Returns All instructions are registered in the scene scope.
107
+ */
108
+ get instructions() {
109
+ return this.scope.resolveFlatAll(AreInstruction_entity.AreInstruction) || [];
110
+ }
111
+ /**
112
+ * Plan is a queue of changes that should be applied to render the node
113
+ *
114
+ * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.
115
+ */
116
+ get planned() {
117
+ return this._plan;
92
118
  }
93
- get debugPrefix() {
94
- return `${" - ".repeat(this.depth)}`;
119
+ /**
120
+ * State is a list of instructions that are currently applied to the node,
121
+ * so it represents the current state of the node in the scene.
122
+ *
123
+ * 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.
124
+ *
125
+ * 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.
126
+ */
127
+ get applied() {
128
+ return this._state.reverse();
129
+ }
130
+ /**
131
+ * Should return instructions to be reverted and to be applied.
132
+ * A difference between plan vs state is that plan is what should be applied to the scene,
133
+ * while state is what currently applied to the scene.
134
+ *
135
+ */
136
+ get changes() {
137
+ const toApply = this.planned.filter((i) => !this.isApplied(i));
138
+ const toRevert = this.applied.filter((i) => !this.isInPlan(i));
139
+ return {
140
+ toApply,
141
+ toRevert
142
+ };
95
143
  }
96
- get path() {
97
- if (!this.parent)
98
- return "";
99
- else {
100
- const ownerNode = this.parent.scope.resolve(new aConcept.A_Dependency(node.AreNode, {
144
+ //===============================================================================================
145
+ //============================= Scene Primary Methods ===========================================
146
+ //===============================================================================================
147
+ activate() {
148
+ this._status = AreScene_constants.AreSceneStatuses.Active;
149
+ }
150
+ deactivate() {
151
+ this._status = AreScene_constants.AreSceneStatuses.Inactive;
152
+ }
153
+ /**
154
+ * 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.
155
+ *
156
+ * @param instruction
157
+ */
158
+ setHost(instruction) {
159
+ if (this.host) {
160
+ const dependentInstructions = this.scope.resolve(new aConcept.A_Dependency(AreMutation_instruction.AreMutation, {
101
161
  flat: true,
162
+ pagination: {
163
+ count: -1
164
+ },
102
165
  query: {
103
- aseid: this.id
166
+ parent: this.host.aseid.toString()
104
167
  }
105
- }));
106
- const NodePath = this.parent.index.pathOf(ownerNode);
107
- return this.parent.path ? this.parent.path + "." + NodePath : NodePath;
168
+ })) || [];
169
+ dependentInstructions.forEach((element) => {
170
+ element.attachTo(instruction);
171
+ element.groupWith(instruction);
172
+ });
108
173
  }
174
+ this._host = instruction;
109
175
  }
110
- *paths() {
111
- let paths = this.index.paths;
112
- paths.sort((a, b) => {
113
- const aParsed = a.split(".").map((part) => parseInt(part, 10));
114
- const bParsed = b.split(".").map((part) => parseInt(part, 10));
115
- const len = Math.min(aParsed.length, bParsed.length);
116
- for (let i = 0; i < len; i++) {
117
- if (aParsed[i] !== bParsed[i]) {
118
- return aParsed[i] - bParsed[i];
119
- }
120
- }
121
- return aParsed.length - bParsed.length;
122
- });
123
- for (const path of paths) {
124
- yield path;
125
- }
176
+ /**
177
+ * Unsets the current host instruction from the scene.
178
+ *
179
+ * 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.
180
+ */
181
+ removeHost() {
182
+ if (this.host)
183
+ throw new AreScene_error.AreSceneError({
184
+ title: AreScene_error.AreSceneError.HostInstructionHasConnectedInstructions,
185
+ 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.`
186
+ });
187
+ this._host = void 0;
126
188
  }
189
+ // ------------------------------------------------------------------------------------------------------------
190
+ // Scene Render Plan Methods
191
+ // ------------------------------------------------------------------------------------------------------------
192
+ /**
193
+ * Method that should register the instruction in the plan, so it will be rendered in the next render cycle.
194
+ *
195
+ * @param instruction
196
+ */
127
197
  plan(instruction) {
128
198
  try {
129
199
  this.scope.register(instruction);
130
200
  } catch (error) {
131
201
  }
132
- }
133
- unPlan(instruction) {
134
- const planned = this.getPlanned(instruction);
135
- try {
136
- if (planned)
137
- this.scope.deregister(planned);
138
- } catch (error) {
202
+ this._plan.push(instruction);
203
+ if (!this._groupToInstructionsMap.has(instruction.group || "default")) {
204
+ this._groupToInstructionsMap.set(instruction.group || "default", /* @__PURE__ */ new Set());
139
205
  }
206
+ this._groupToInstructionsMap.get(instruction.group || "default").add(instruction);
140
207
  }
141
- isAttached(node$1) {
142
- return !!this.scope.resolve(new aConcept.A_Dependency(node.AreNode, {
143
- flat: true,
144
- query: {
145
- aseid: node$1.aseid
208
+ planBefore(instruction, beforeInstruction) {
209
+ const beforeIndex = this._plan.findIndex((i) => i.aseid.toString() === beforeInstruction.aseid.toString());
210
+ const instructionIndex = this._plan.findIndex((i) => i.aseid.toString() === instruction.aseid.toString());
211
+ if (beforeIndex === -1) {
212
+ throw new AreScene_error.AreSceneError({
213
+ title: AreScene_error.AreSceneError.SceneError,
214
+ description: `Instruction ${beforeInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} before it.`
215
+ });
216
+ }
217
+ if (instructionIndex === -1) {
218
+ try {
219
+ this.scope.register(instruction);
220
+ } catch (error) {
146
221
  }
147
- }));
148
- }
149
- attach(node) {
150
- this.scope.register(node);
151
- node.scope.inherit(this.scope);
152
- }
153
- sceneOf(node) {
154
- return node.scope.resolveFlat(AreScene);
222
+ this._plan.splice(beforeIndex, 0, instruction);
223
+ } else {
224
+ this._plan.splice(instructionIndex, 1);
225
+ this._plan.splice(beforeIndex, 0, instruction);
226
+ }
155
227
  }
156
- propsOf(node) {
157
- return node.scope.resolveFlat(props.AreProps);
228
+ planAfter(instruction, afterInstruction) {
229
+ const afterIndex = this._plan.findIndex((i) => i.aseid.toString() === afterInstruction.aseid.toString());
230
+ const instructionIndex = this._plan.findIndex((i) => i.aseid.toString() === instruction.aseid.toString());
231
+ if (afterIndex === -1) {
232
+ throw new AreScene_error.AreSceneError({
233
+ title: AreScene_error.AreSceneError.SceneError,
234
+ description: `Instruction ${afterInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} after it.`
235
+ });
236
+ }
237
+ if (instructionIndex === -1) {
238
+ this.scope.register(instruction);
239
+ this._plan.splice(afterIndex + 1, 0, instruction);
240
+ } else {
241
+ this._plan.splice(instructionIndex, 1);
242
+ this._plan.splice(afterIndex + 1, 0, instruction);
243
+ }
158
244
  }
159
- storeOf(node) {
160
- return node.scope.resolveFlat(store.AreStore);
245
+ moveBefore(instruction, beforeInstruction) {
246
+ if (!this.isInPlan(instruction)) {
247
+ throw new AreScene_error.AreSceneError({
248
+ title: AreScene_error.AreSceneError.SceneError,
249
+ 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.`
250
+ });
251
+ }
252
+ this.planBefore(instruction, beforeInstruction);
161
253
  }
162
- isPlanned(action) {
163
- return this.getPlanned(action) !== void 0;
254
+ moveAfter(instruction, afterInstruction) {
255
+ if (!this.isInPlan(instruction)) {
256
+ throw new AreScene_error.AreSceneError({
257
+ title: AreScene_error.AreSceneError.SceneError,
258
+ 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.`
259
+ });
260
+ }
261
+ this.planAfter(instruction, afterInstruction);
164
262
  }
165
263
  /**
166
- * It returns planned instruction instance from the scene
264
+ * 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.
167
265
  *
168
- * [!] Only Planned instructions can be used for state checking
266
+ * @param instruction
267
+ */
268
+ unPlan(instruction) {
269
+ this._plan = this._plan.filter((i) => i.aseid.toString() !== instruction.aseid.toString());
270
+ }
271
+ /**
272
+ * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
169
273
  *
170
274
  * @param instruction
171
275
  * @returns
172
276
  */
173
277
  getPlanned(instruction) {
174
- const planned = this.scope.resolve(new aConcept.A_Dependency(sceneInstruction.AreSceneInstruction, {
175
- flat: true,
176
- query: {
177
- aseid: instruction.aseid.toString()
178
- }
179
- }));
180
- return planned;
278
+ const found = this._plan.find((i) => i.aseid.toString() === instruction.aseid.toString());
279
+ return found;
181
280
  }
182
281
  /**
183
- * Operation Only applicable from Plan -> State
184
- *
185
- * So only instructions presented in the plan can be moved to state
186
- * State is a set of instructions that are currently applied to the scene
282
+ * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.
187
283
  *
188
284
  * @param instruction
285
+ * @returns
189
286
  */
190
- setState(instruction) {
191
- const planned = this.getPlanned(instruction);
192
- if (planned) {
193
- this._state.delete(planned.aseid.toString());
194
- this._state.add(instruction.aseid.toString());
195
- }
287
+ isInPlan(instruction) {
288
+ return !!this.getPlanned(instruction);
196
289
  }
197
- dropState(instruction) {
198
- const planned = this.getPlanned(instruction);
199
- if (planned) {
200
- this._state.delete(planned.aseid.toString());
201
- }
202
- }
203
- resetPlan(node) {
204
- for (const instruction of this.renderPlanFor(node)) {
205
- if (instruction.node === node) {
206
- this.unPlan(instruction);
207
- }
290
+ // -------------------------------------------------------------------------------------------------------------
291
+ // Scene Apply Methods
292
+ // -------------------------------------------------------------------------------------------------------------
293
+ /**
294
+ * 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.
295
+ *
296
+ * @param instruction
297
+ */
298
+ apply(instruction) {
299
+ if (!this.isApplied(instruction)) {
300
+ this._state.push(instruction);
208
301
  }
209
302
  }
210
- resetState(node) {
211
- for (const instruction of this.renderPlanFor(node)) {
212
- if (instruction.node === node) {
213
- this._state.delete(instruction.aseid.toString());
214
- }
215
- }
303
+ /**
304
+ * 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.
305
+ *
306
+ * @param instruction
307
+ */
308
+ unApply(instruction) {
309
+ this._state = this._state.filter((i) => i.aseid.toString() !== instruction.aseid.toString());
216
310
  }
217
- getState(instruction) {
218
- const planned = this.getPlanned(instruction);
219
- if (!planned) {
220
- return void 0;
221
- }
222
- if (this._state.has(planned.aseid.toString()))
223
- return planned;
224
- else
225
- return void 0;
311
+ /**
312
+ * Checks if the instruction is already in the state, so it is currently applied to the scene.
313
+ *
314
+ * @param instruction
315
+ * @returns
316
+ */
317
+ getApplied(instruction) {
318
+ const found = this._state.find((i) => i.aseid.toString() === instruction.aseid.toString());
319
+ return found;
226
320
  }
227
- revert(instruction) {
228
- this._state.delete(instruction.aseid.toString());
321
+ /**
322
+ * Checks if the instruction is already in the state, so it is currently applied to the scene.
323
+ *
324
+ * @param instruction
325
+ * @returns
326
+ */
327
+ isApplied(instruction) {
328
+ return !!this.getApplied(instruction);
229
329
  }
330
+ /**
331
+ * 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.
332
+ *
333
+ */
230
334
  reset() {
231
- this.index.clear();
232
- this._state.clear();
335
+ this._plan = [];
336
+ this._state = [];
233
337
  }
234
- toJSON() {
235
- return {
236
- ...super.toJSON(),
237
- children: Object.fromEntries(
238
- Array.from(this.children).map((child) => [
239
- child.id.toString(),
240
- child.toJSON()
241
- ])
242
- )
243
- };
244
- }
245
- }
246
-
247
- exports.AreScene = AreScene;
338
+ };
339
+ exports.AreScene = __decorateClass([
340
+ aFrame.A_Frame.Component({
341
+ namespace: "A-ARE",
342
+ name: "AreScene",
343
+ description: "Persistent runtime structure that owns the rendering state for a component's lifetime. Maintains two sets \u2014 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."
344
+ })
345
+ ], exports.AreScene);
248
346
  //# sourceMappingURL=AreScene.context.js.map
249
347
  //# sourceMappingURL=AreScene.context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/AreScene/AreScene.context.ts"],"names":["A_Fragment","A_Context","AreIndex","AreNode","AreSceneInstruction","A_Dependency","node","AreProps","AreStore"],"mappings":"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","file":"AreScene.context.js","sourcesContent":["import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { AreIndex } from \"../AreIndex/AreIndex.context\";\nimport { AreNode } from \"@adaas/are/node\";\nimport { AreSCene_Serialized } from \"./AreScene.types\";\nimport { AreProps } from \"@adaas/are/props\";\nimport { AreStore } from \"@adaas/are/store\";\nimport { AreSceneInstruction } from \"@adaas/are/scene-instruction\";\n\nexport class AreScene extends A_Fragment {\n\n protected _state: Set<string> = new Set();\n\n constructor(\n /**\n * Scene identity will be used to identify mounting point in the parent scene\n */\n id: string | ASEID,\n ) {\n super({ name: id.toString() });\n }\n\n get id(): string {\n return this.name;\n }\n\n /**\n * Get the root scene of the current scene\n */\n get root(): AreScene {\n let currentScope: A_Scope | undefined = this.scope;\n let rootScene: AreScene = this;\n\n while (currentScope) {\n const parentScene = currentScope.parent?.resolve<AreScene>(this.constructor as typeof AreScene);\n if (parentScene) {\n rootScene = parentScene;\n }\n currentScope = currentScope.parent;\n }\n\n return rootScene;\n }\n\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n\n get index(): AreIndex<string> {\n return A_Context.scope(this).resolveFlat<AreIndex<string>>(AreIndex)!;\n }\n\n get parent(): AreScene | undefined {\n return A_Context.scope(this).parent?.resolveFlat<AreScene>(AreScene);\n }\n\n get children(): Array<AreScene> {\n return this.scope.resolveFlatAll<AreNode>(AreNode)\n .map(n => n.scope.resolveFlat<AreScene>(AreScene))\n .filter(s => !!s);\n }\n\n\n get depth(): number {\n let depth = 0;\n let currentScope: A_Scope | undefined = this.scope;\n\n while (currentScope) {\n if (currentScope.parent && currentScope.parent.resolve<AreScene>(this.constructor as typeof AreScene)) {\n depth++;\n }\n currentScope = currentScope.parent;\n }\n\n return depth;\n }\n\n\n get instructions(): Array<AreSceneInstruction> {\n return this.scope.resolveFlatAll<AreSceneInstruction>(AreSceneInstruction) || [];\n }\n\n\n nodes(\n filter?: (node: AreNode) => boolean\n ): AreNode[] {\n\n const nodes: AreNode[] = [];\n\n for (const path of this.paths()) {\n\n const node = this.index.nodeOf(path);\n\n if (!node) {\n continue;\n }\n\n if (filter && !filter(node)) {\n continue;\n }\n\n nodes.push(node);\n }\n\n return nodes;\n }\n\n\n renderPlanFor(\n node: AreNode,\n filter?: {\n filter?: (instruction: AreSceneInstruction) => boolean,\n changes?: Array<new (...args: any[]) => AreSceneInstruction>,\n order?: Array<new (...args: any[]) => AreSceneInstruction>,\n }\n ) {\n\n const actions: AreSceneInstruction[] = [];\n\n const order = filter?.order || [];\n const filterFn = filter?.filter;\n\n let plan = this.instructions;\n\n plan = plan.sort((a, b) => {\n const aIndex = order.findIndex(instructionType => a instanceof instructionType);\n const bIndex = order.findIndex(instructionType => b instanceof instructionType);\n\n return (aIndex === -1 ? order.length : aIndex) - (bIndex === -1 ? order.length : bIndex);\n });\n\n if (filterFn) {\n plan = plan.filter(filterFn);\n }\n\n for (const action of plan) {\n if (action.node === node) {\n actions.push(action);\n }\n }\n return actions;\n }\n\n get debugPrefix() {\n return `${' - '.repeat(this.depth)}`\n }\n\n get path(): string {\n if (!this.parent)\n return '';\n else {\n const ownerNode = this.parent.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: this.id\n }\n })) as AreNode;\n\n const NodePath = this.parent.index.pathOf(ownerNode);\n\n return this.parent.path ? (this.parent.path + '.' + NodePath) : NodePath!;\n }\n }\n\n *paths(): Iterable<string> {\n let paths = this.index.paths;\n\n // create proper tree sequence\n paths.sort((a, b) => {\n const aParsed = a.split('.').map(part => parseInt(part, 10));\n const bParsed = b.split('.').map(part => parseInt(part, 10));\n\n const len = Math.min(aParsed.length, bParsed.length);\n for (let i = 0; i < len; i++) {\n if (aParsed[i] !== bParsed[i]) {\n return aParsed[i] - bParsed[i];\n }\n }\n return aParsed.length - bParsed.length;\n });\n\n // yield paths\n for (const path of paths) {\n yield path;\n }\n }\n\n plan(instruction: AreSceneInstruction) {\n try {\n this.scope.register(instruction);\n } catch (error) {\n }\n }\n\n unPlan(\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n try {\n if (planned)\n this.scope.deregister(planned);\n } catch (error) {\n\n }\n }\n\n isAttached(node: AreNode): boolean {\n return !!(this.scope.resolve<AreNode>(new A_Dependency(AreNode, {\n flat: true,\n query: {\n aseid: node.aseid\n }\n })));\n }\n\n attach(node: AreNode): void {\n this.scope.register(node);\n node.scope.inherit(this.scope)\n }\n\n sceneOf(node: AreNode): AreScene | undefined {\n return node.scope.resolveFlat<AreScene>(AreScene);\n }\n\n propsOf(node: AreNode): AreProps {\n return node.scope.resolveFlat<AreProps>(AreProps)!;\n }\n\n storeOf(node: AreNode): AreStore {\n return node.scope.resolveFlat<AreStore>(AreStore)!;\n }\n isPlanned(action: AreSceneInstruction): boolean {\n return this.getPlanned(action) !== undefined;\n }\n\n /**\n * It returns planned instruction instance from the scene\n * \n * [!] Only Planned instructions can be used for state checking\n * \n * @param instruction \n * @returns \n */\n getPlanned<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get\n */\n instruction: T\n ): T | undefined {\n\n const planned = this.scope.resolve<AreSceneInstruction>(new A_Dependency(AreSceneInstruction, {\n flat: true,\n query: {\n aseid: instruction.aseid.toString()\n }\n })) as T | undefined;\n\n return planned;\n }\n\n /**\n * Operation Only applicable from Plan -> State\n * \n * So only instructions presented in the plan can be moved to state\n * State is a set of instructions that are currently applied to the scene\n * \n * @param instruction \n */\n setState(\n /**\n * Should be instruction instance to apply\n */\n instruction: AreSceneInstruction\n ) {\n const planned = this.getPlanned(instruction);\n\n\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n this._state.add(instruction.aseid.toString());\n }\n }\n\n\n dropState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to drop\n */\n instruction: T\n ) {\n const planned = this.getPlanned(instruction);\n\n if (planned) {\n this._state.delete(planned.aseid.toString());\n }\n }\n\n\n resetPlan(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n this.unPlan(instruction);\n }\n }\n }\n\n resetState(\n node: AreNode\n ) {\n for (const instruction of this.renderPlanFor(node)) {\n if (instruction.node === node) {\n\n this._state.delete(instruction.aseid.toString());\n }\n }\n }\n\n\n getState<T extends AreSceneInstruction>(\n /**\n * Should be instruction instance to get state for\n */\n instruction: T\n ): T | undefined {\n\n\n const planned = this.getPlanned(instruction);\n\n\n if (!planned) {\n return undefined;\n }\n\n if (this._state.has(planned.aseid.toString()))\n return planned as T;\n else\n return undefined;\n }\n\n revert(\n /**\n * Should be instruction instance to revert\n */\n instruction: AreSceneInstruction\n ) {\n this._state.delete(instruction!.aseid.toString());\n }\n\n\n reset() {\n this.index.clear();\n this._state.clear();\n }\n\n\n toJSON(): AreSCene_Serialized {\n return {\n ...super.toJSON(),\n children: Object.fromEntries(\n Array.from(this.children).map(child => [\n child.id.toString(),\n child.toJSON()\n ])\n )\n }\n }\n}\n\n\n\n\n\n// Just to cover the proper lifecycle\n\n/*\n1) Create Scene with template from mounting point content\n2) Do indexing of the scene \n\n*/"]}
1
+ {"version":3,"sources":["../../../../src/lib/AreScene/AreScene.context.ts"],"names":["AreScene","A_Fragment","AreSceneStatuses","A_Context","A_Dependency","AreDeclaration","AreMutation","AreInstruction","AreSceneError","A_Frame"],"mappings":"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","file":"AreScene.context.js","sourcesContent":["import { A_Context, A_Dependency, A_Fragment, A_Scope, ASEID } from \"@adaas/a-concept\";\nimport { A_Frame } from \"@adaas/a-frame\";\nimport type { AreNode } from \"@adaas/are/node/AreNode.entity\";\nimport { AreDeclaration } from \"@adaas/are/instruction/types/AreDeclaration.instruction\";\nimport { AreInstruction } from \"@adaas/are/instruction/AreInstruction.entity\";\nimport { AreSceneChanges, AreSceneStatusNames } from \"./AreScene.types\";\nimport { AreSceneError } from \"./AreScene.error\";\nimport { AreMutation } from \"@adaas/are/instruction/types/AreMutation.instruction\";\nimport { AreSceneStatuses } from \"./AreScene.constants\";\n\n\n\n@A_Frame.Component({\n namespace: 'A-ARE',\n name: 'AreScene',\n 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.\"\n})\nexport class AreScene extends A_Fragment {\n // -----------------------------------------------------------------------------------\n // -----------------------------------Scene Index-------------------------------------\n // -----------------------------------------------------------------------------------\n protected _groupToInstructionsMap: Map<string, Set<AreInstruction>> = new Map();\n\n /**\n * Plan is a queue of changes that should be applied to render the node\n * \n * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.\n */\n protected _plan: Array<AreInstruction> = [];\n /**\n * State is a list of instructions that are currently applied to the node, \n * so it represents the current state of the node in the scene.\n * \n * 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.\n * \n * 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.\n */\n protected _state: Array<AreInstruction> = [];\n\n\n protected _host: AreDeclaration | undefined;\n /**\n * 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.\n */\n protected _status: AreSceneStatusNames = AreSceneStatuses.Active;\n\n\n constructor(\n /**\n * Scene identity will be used to identify mounting point in the parent scene\n */\n id: string | ASEID,\n ) {\n super({ name: id.toString() });\n }\n\n /**\n * Scene ID that corresponds to the root node's ID (part of ASEID) \n */\n get id(): string {\n return this.name;\n }\n /**\n * The scope where scene is registered. This scope is owned by AreNode \n */\n get scope(): A_Scope {\n return A_Context.scope(this);\n }\n /**\n * The owner node of the scene, which is the node that registered the scene in its scope. \n * This is typically the node that is responsible for rendering the scene and managing its lifecycle.\n */\n get owner(): AreNode {\n return this.scope.issuer() as AreNode;\n }\n /**\n * 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.\n */\n get host(): AreDeclaration | undefined {\n return this._host;\n }\n /**\n * 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.\n */\n get status(): AreSceneStatusNames {\n return this._status;\n }\n\n get isActive(): boolean {\n return this.status === AreSceneStatuses.Active;\n }\n\n get isInactive(): boolean {\n return this.status === AreSceneStatuses.Inactive;\n }\n\n /**\n * 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.\n */\n get declarations(): AreDeclaration[] {\n return this.scope.resolve<AreDeclaration>(new A_Dependency(AreDeclaration, {\n flat: true,\n pagination: {\n count: -1,\n }\n })) as AreDeclaration[] || [];\n }\n /**\n * 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.\n */\n get mutations(): AreMutation[] {\n return this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {\n flat: true,\n pagination: {\n count: -1,\n }\n })) as AreMutation[] || [];\n }\n /**\n * Returns All instructions are registered in the scene scope. \n */\n get instructions(): AreInstruction[] {\n return this.scope.resolveFlatAll<AreInstruction>(AreInstruction) || [];\n }\n /**\n * Plan is a queue of changes that should be applied to render the node\n * \n * It works as FIFO, so the first instruction that should be applied is the first one in the queue, and so on.\n */\n get planned(): AreInstruction[] {\n return this._plan;\n }\n /**\n * State is a list of instructions that are currently applied to the node, \n * so it represents the current state of the node in the scene.\n * \n * 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.\n * \n * 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.\n */\n get applied(): AreInstruction[] {\n 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.\n }\n\n /**\n * Should return instructions to be reverted and to be applied. \n * A difference between plan vs state is that plan is what should be applied to the scene, \n * while state is what currently applied to the scene. \n * \n */\n get changes(): AreSceneChanges {\n const toApply = this.planned.filter(i => !this.isApplied(i));\n const toRevert = this.applied.filter(i => !this.isInPlan(i));\n\n return {\n toApply,\n toRevert,\n }\n }\n\n\n //===============================================================================================\n //============================= Scene Primary Methods ===========================================\n //===============================================================================================\n activate(): void {\n this._status = AreSceneStatuses.Active;\n }\n\n deactivate(): void {\n\n this._status = AreSceneStatuses.Inactive;\n }\n /**\n * 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.\n * \n * @param instruction \n */\n setHost(instruction: AreDeclaration): void {\n if (this.host) {\n const dependentInstructions = this.scope.resolve<AreMutation>(new A_Dependency(AreMutation, {\n flat: true,\n pagination: {\n count: -1,\n },\n query: {\n parent: this.host.aseid.toString(),\n\n }\n })) as Array<AreMutation> || [];\n\n dependentInstructions.forEach(element => {\n element.attachTo(instruction)\n element.groupWith(instruction);\n });\n }\n\n this._host = instruction;\n }\n /**\n * Unsets the current host instruction from the scene. \n * \n * 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.\n */\n removeHost(): void {\n if (this.host)\n throw new AreSceneError({\n title: AreSceneError.HostInstructionHasConnectedInstructions,\n 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.`,\n });\n\n this._host = undefined;\n\n }\n\n // ------------------------------------------------------------------------------------------------------------\n // Scene Render Plan Methods\n // ------------------------------------------------------------------------------------------------------------\n /**\n * Method that should register the instruction in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n */\n plan(instruction: AreInstruction) {\n // const registered = this.getPlanned(instruction);\n\n // if (!registered) {\n try {\n this.scope.register(instruction);\n\n } catch (error) {\n\n }\n this._plan.push(instruction);\n\n // 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.\n if (!this._groupToInstructionsMap.has(instruction.group || 'default')) {\n this._groupToInstructionsMap.set(instruction.group || 'default', new Set());\n }\n this._groupToInstructionsMap.get(instruction.group || 'default')!.add(instruction);\n // }\n }\n\n planBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {\n const beforeIndex = this._plan.findIndex(i => i.aseid.toString() === beforeInstruction.aseid.toString());\n const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());\n\n if (beforeIndex === -1) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${beforeInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} before it.`,\n });\n }\n\n if (instructionIndex === -1) {\n\n try {\n this.scope.register(instruction);\n\n } catch (error) {\n\n }\n this._plan.splice(beforeIndex, 0, instruction);\n } else {\n // Instruction is already in the plan, we just need to move it before the beforeInstruction\n this._plan.splice(instructionIndex, 1); // remove from current position\n this._plan.splice(beforeIndex, 0, instruction); // insert before the beforeInstruction\n }\n }\n\n planAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {\n const afterIndex = this._plan.findIndex(i => i.aseid.toString() === afterInstruction.aseid.toString());\n const instructionIndex = this._plan.findIndex(i => i.aseid.toString() === instruction.aseid.toString());\n\n if (afterIndex === -1) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n description: `Instruction ${afterInstruction.aseid} is not in the plan of scene ${this.id}. Cannot plan instruction ${instruction.aseid} after it.`,\n });\n }\n\n if (instructionIndex === -1) {\n this.scope.register(instruction);\n this._plan.splice(afterIndex + 1, 0, instruction);\n } else {\n // Instruction is already in the plan, we just need to move it after the afterInstruction\n this._plan.splice(instructionIndex, 1); // remove from current position\n this._plan.splice(afterIndex + 1, 0, instruction); // insert after the afterInstruction\n }\n }\n\n\n moveBefore(instruction: AreInstruction, beforeInstruction: AreInstruction) {\n if (!this.isInPlan(instruction)) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n 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.`,\n });\n }\n\n this.planBefore(instruction, beforeInstruction);\n }\n\n moveAfter(instruction: AreInstruction, afterInstruction: AreInstruction) {\n if (!this.isInPlan(instruction)) {\n throw new AreSceneError({\n title: AreSceneError.SceneError,\n 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.`,\n });\n }\n\n this.planAfter(instruction, afterInstruction);\n }\n\n\n /**\n * 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.\n * \n * @param instruction \n */\n unPlan(\n instruction: AreInstruction\n ) {\n // const registered = this.getPlanned(instruction);\n\n // if (registered) {\n // this.scope.deregister(instruction);\n this._plan = this._plan.filter(i => i.aseid.toString() !== instruction.aseid.toString());\n // }\n\n }\n /**\n * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n * @returns \n */\n getPlanned(instruction: AreInstruction): AreInstruction | undefined {\n const found = this._plan.find(i => i.aseid.toString() === instruction.aseid.toString());\n\n return found;\n }\n /**\n * Checks if the instruction is already in the plan, so it will be rendered in the next render cycle.\n * \n * @param instruction \n * @returns \n */\n isInPlan(instruction: AreInstruction): boolean {\n return !!this.getPlanned(instruction);\n }\n\n // -------------------------------------------------------------------------------------------------------------\n // Scene Apply Methods\n // -------------------------------------------------------------------------------------------------------------\n /**\n * 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.\n * \n * @param instruction \n */\n apply(instruction: AreInstruction) {\n if (!this.isApplied(instruction)) {\n this._state.push(instruction);\n }\n }\n /**\n * 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.\n * \n * @param instruction \n */\n unApply(\n instruction: AreInstruction\n ) {\n this._state = this._state.filter(i => i.aseid.toString() !== instruction.aseid.toString());\n }\n /**\n * Checks if the instruction is already in the state, so it is currently applied to the scene.\n * \n * @param instruction \n * @returns \n */\n getApplied(instruction: AreInstruction): AreInstruction | undefined {\n const found = this._state.find(i => i.aseid.toString() === instruction.aseid.toString());\n\n return found;\n }\n /**\n * Checks if the instruction is already in the state, so it is currently applied to the scene.\n * \n * @param instruction \n * @returns \n */\n isApplied(instruction: AreInstruction): boolean {\n return !!this.getApplied(instruction);\n }\n /**\n * 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.\n * \n */\n reset() {\n this._plan = [];\n this._state = [];\n }\n}"]}