@adaas/are 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/.conf/tsconfig.base.json +110 -0
  2. package/.conf/tsconfig.browser.json +43 -0
  3. package/.conf/tsconfig.node.json +47 -0
  4. package/.nvmrc +1 -0
  5. package/LICENSE +22 -0
  6. package/README.md +2 -0
  7. package/dist/browser/index.d.mts +1134 -0
  8. package/dist/browser/index.mjs +2624 -0
  9. package/dist/browser/index.mjs.map +1 -0
  10. package/dist/node/chunk-EQQGB2QZ.mjs +15 -0
  11. package/dist/node/chunk-EQQGB2QZ.mjs.map +1 -0
  12. package/dist/node/engines/html/AreHTML.compiler.d.mts +114 -0
  13. package/dist/node/engines/html/AreHTML.compiler.d.ts +114 -0
  14. package/dist/node/engines/html/AreHTML.compiler.js +408 -0
  15. package/dist/node/engines/html/AreHTML.compiler.js.map +1 -0
  16. package/dist/node/engines/html/AreHTML.compiler.mjs +398 -0
  17. package/dist/node/engines/html/AreHTML.compiler.mjs.map +1 -0
  18. package/dist/node/engines/html/AreHTML.engine.d.mts +36 -0
  19. package/dist/node/engines/html/AreHTML.engine.d.ts +36 -0
  20. package/dist/node/engines/html/AreHTML.engine.js +122 -0
  21. package/dist/node/engines/html/AreHTML.engine.js.map +1 -0
  22. package/dist/node/engines/html/AreHTML.engine.mjs +112 -0
  23. package/dist/node/engines/html/AreHTML.engine.mjs.map +1 -0
  24. package/dist/node/engines/html/index.d.mts +26 -0
  25. package/dist/node/engines/html/index.d.ts +26 -0
  26. package/dist/node/engines/html/index.js +17 -0
  27. package/dist/node/engines/html/index.js.map +1 -0
  28. package/dist/node/engines/html/index.mjs +5 -0
  29. package/dist/node/engines/html/index.mjs.map +1 -0
  30. package/dist/node/engines/json/AreJSON.compiler.d.mts +21 -0
  31. package/dist/node/engines/json/AreJSON.compiler.d.ts +21 -0
  32. package/dist/node/engines/json/AreJSON.compiler.js +24 -0
  33. package/dist/node/engines/json/AreJSON.compiler.js.map +1 -0
  34. package/dist/node/engines/json/AreJSON.compiler.mjs +17 -0
  35. package/dist/node/engines/json/AreJSON.compiler.mjs.map +1 -0
  36. package/dist/node/index-BD-6iOuR.d.ts +238 -0
  37. package/dist/node/index-DMXWCL7R.d.mts +238 -0
  38. package/dist/node/index.d.mts +40 -0
  39. package/dist/node/index.d.ts +40 -0
  40. package/dist/node/index.js +105 -0
  41. package/dist/node/index.js.map +1 -0
  42. package/dist/node/index.mjs +16 -0
  43. package/dist/node/index.mjs.map +1 -0
  44. package/dist/node/lib/AreApp/AreApp.container.d.mts +22 -0
  45. package/dist/node/lib/AreApp/AreApp.container.d.ts +22 -0
  46. package/dist/node/lib/AreApp/AreApp.container.js +60 -0
  47. package/dist/node/lib/AreApp/AreApp.container.js.map +1 -0
  48. package/dist/node/lib/AreApp/AreApp.container.mjs +48 -0
  49. package/dist/node/lib/AreApp/AreApp.container.mjs.map +1 -0
  50. package/dist/node/lib/AreApp/AreApp.env.d.mts +2 -0
  51. package/dist/node/lib/AreApp/AreApp.env.d.ts +2 -0
  52. package/dist/node/lib/AreApp/AreApp.env.js +4 -0
  53. package/dist/node/lib/AreApp/AreApp.env.js.map +1 -0
  54. package/dist/node/lib/AreApp/AreApp.env.mjs +3 -0
  55. package/dist/node/lib/AreApp/AreApp.env.mjs.map +1 -0
  56. package/dist/node/lib/AreApp/AreApp.error.d.mts +6 -0
  57. package/dist/node/lib/AreApp/AreApp.error.d.ts +6 -0
  58. package/dist/node/lib/AreApp/AreApp.error.js +10 -0
  59. package/dist/node/lib/AreApp/AreApp.error.js.map +1 -0
  60. package/dist/node/lib/AreApp/AreApp.error.mjs +9 -0
  61. package/dist/node/lib/AreApp/AreApp.error.mjs.map +1 -0
  62. package/dist/node/lib/AreApp/AreApp.types.d.mts +2 -0
  63. package/dist/node/lib/AreApp/AreApp.types.d.ts +2 -0
  64. package/dist/node/lib/AreApp/AreApp.types.js +4 -0
  65. package/dist/node/lib/AreApp/AreApp.types.js.map +1 -0
  66. package/dist/node/lib/AreApp/AreApp.types.mjs +3 -0
  67. package/dist/node/lib/AreApp/AreApp.types.mjs.map +1 -0
  68. package/dist/node/lib/AreApp/index.d.mts +17 -0
  69. package/dist/node/lib/AreApp/index.d.ts +17 -0
  70. package/dist/node/lib/AreApp/index.js +24 -0
  71. package/dist/node/lib/AreApp/index.js.map +1 -0
  72. package/dist/node/lib/AreApp/index.mjs +6 -0
  73. package/dist/node/lib/AreApp/index.mjs.map +1 -0
  74. package/dist/node/lib/AreCompiler/AreCompiler.component.d.mts +238 -0
  75. package/dist/node/lib/AreCompiler/AreCompiler.component.d.ts +238 -0
  76. package/dist/node/lib/AreCompiler/AreCompiler.component.js +647 -0
  77. package/dist/node/lib/AreCompiler/AreCompiler.component.js.map +1 -0
  78. package/dist/node/lib/AreCompiler/AreCompiler.component.mjs +637 -0
  79. package/dist/node/lib/AreCompiler/AreCompiler.component.mjs.map +1 -0
  80. package/dist/node/lib/AreCompiler/AreCompiler.error.d.mts +8 -0
  81. package/dist/node/lib/AreCompiler/AreCompiler.error.d.ts +8 -0
  82. package/dist/node/lib/AreCompiler/AreCompiler.error.js +12 -0
  83. package/dist/node/lib/AreCompiler/AreCompiler.error.js.map +1 -0
  84. package/dist/node/lib/AreCompiler/AreCompiler.error.mjs +11 -0
  85. package/dist/node/lib/AreCompiler/AreCompiler.error.mjs.map +1 -0
  86. package/dist/node/lib/AreCompiler/AreCompiler.types.d.mts +2 -0
  87. package/dist/node/lib/AreCompiler/AreCompiler.types.d.ts +2 -0
  88. package/dist/node/lib/AreCompiler/AreCompiler.types.js +4 -0
  89. package/dist/node/lib/AreCompiler/AreCompiler.types.js.map +1 -0
  90. package/dist/node/lib/AreCompiler/AreCompiler.types.mjs +3 -0
  91. package/dist/node/lib/AreCompiler/AreCompiler.types.mjs.map +1 -0
  92. package/dist/node/lib/AreCompiler/index.d.mts +17 -0
  93. package/dist/node/lib/AreCompiler/index.d.ts +17 -0
  94. package/dist/node/lib/AreCompiler/index.js +24 -0
  95. package/dist/node/lib/AreCompiler/index.js.map +1 -0
  96. package/dist/node/lib/AreCompiler/index.mjs +6 -0
  97. package/dist/node/lib/AreCompiler/index.mjs.map +1 -0
  98. package/dist/node/lib/AreComponent/Are.component.d.mts +45 -0
  99. package/dist/node/lib/AreComponent/Are.component.d.ts +45 -0
  100. package/dist/node/lib/AreComponent/Are.component.js +165 -0
  101. package/dist/node/lib/AreComponent/Are.component.js.map +1 -0
  102. package/dist/node/lib/AreComponent/Are.component.mjs +156 -0
  103. package/dist/node/lib/AreComponent/Are.component.mjs.map +1 -0
  104. package/dist/node/lib/AreComponent/Are.constants.d.mts +32 -0
  105. package/dist/node/lib/AreComponent/Are.constants.d.ts +32 -0
  106. package/dist/node/lib/AreComponent/Are.constants.js +27 -0
  107. package/dist/node/lib/AreComponent/Are.constants.js.map +1 -0
  108. package/dist/node/lib/AreComponent/Are.constants.mjs +27 -0
  109. package/dist/node/lib/AreComponent/Are.constants.mjs.map +1 -0
  110. package/dist/node/lib/AreComponent/Are.context.d.mts +22 -0
  111. package/dist/node/lib/AreComponent/Are.context.d.ts +22 -0
  112. package/dist/node/lib/AreComponent/Are.context.js +45 -0
  113. package/dist/node/lib/AreComponent/Are.context.js.map +1 -0
  114. package/dist/node/lib/AreComponent/Are.context.mjs +38 -0
  115. package/dist/node/lib/AreComponent/Are.context.mjs.map +1 -0
  116. package/dist/node/lib/AreComponent/Are.types.d.mts +2 -0
  117. package/dist/node/lib/AreComponent/Are.types.d.ts +2 -0
  118. package/dist/node/lib/AreComponent/Are.types.js +4 -0
  119. package/dist/node/lib/AreComponent/Are.types.js.map +1 -0
  120. package/dist/node/lib/AreComponent/Are.types.mjs +3 -0
  121. package/dist/node/lib/AreComponent/Are.types.mjs.map +1 -0
  122. package/dist/node/lib/AreComponent/index.d.mts +11 -0
  123. package/dist/node/lib/AreComponent/index.d.ts +11 -0
  124. package/dist/node/lib/AreComponent/index.js +31 -0
  125. package/dist/node/lib/AreComponent/index.js.map +1 -0
  126. package/dist/node/lib/AreComponent/index.mjs +7 -0
  127. package/dist/node/lib/AreComponent/index.mjs.map +1 -0
  128. package/dist/node/lib/AreEvent/AreEvent.context.d.mts +8 -0
  129. package/dist/node/lib/AreEvent/AreEvent.context.d.ts +8 -0
  130. package/dist/node/lib/AreEvent/AreEvent.context.js +34 -0
  131. package/dist/node/lib/AreEvent/AreEvent.context.js.map +1 -0
  132. package/dist/node/lib/AreEvent/AreEvent.context.mjs +27 -0
  133. package/dist/node/lib/AreEvent/AreEvent.context.mjs.map +1 -0
  134. package/dist/node/lib/AreEvent/AreEvent.types.d.mts +16 -0
  135. package/dist/node/lib/AreEvent/AreEvent.types.d.ts +16 -0
  136. package/dist/node/lib/AreEvent/AreEvent.types.js +4 -0
  137. package/dist/node/lib/AreEvent/AreEvent.types.js.map +1 -0
  138. package/dist/node/lib/AreEvent/AreEvent.types.mjs +3 -0
  139. package/dist/node/lib/AreEvent/AreEvent.types.mjs.map +1 -0
  140. package/dist/node/lib/AreEvent/index.d.mts +8 -0
  141. package/dist/node/lib/AreEvent/index.d.ts +8 -0
  142. package/dist/node/lib/AreEvent/index.js +19 -0
  143. package/dist/node/lib/AreEvent/index.js.map +1 -0
  144. package/dist/node/lib/AreEvent/index.mjs +5 -0
  145. package/dist/node/lib/AreEvent/index.mjs.map +1 -0
  146. package/dist/node/lib/AreIndex/AreIndex.context.d.mts +8 -0
  147. package/dist/node/lib/AreIndex/AreIndex.context.d.ts +8 -0
  148. package/dist/node/lib/AreIndex/AreIndex.context.js +142 -0
  149. package/dist/node/lib/AreIndex/AreIndex.context.js.map +1 -0
  150. package/dist/node/lib/AreIndex/AreIndex.context.mjs +141 -0
  151. package/dist/node/lib/AreIndex/AreIndex.context.mjs.map +1 -0
  152. package/dist/node/lib/AreIndex/index.d.mts +8 -0
  153. package/dist/node/lib/AreIndex/index.d.ts +8 -0
  154. package/dist/node/lib/AreIndex/index.js +12 -0
  155. package/dist/node/lib/AreIndex/index.js.map +1 -0
  156. package/dist/node/lib/AreIndex/index.mjs +4 -0
  157. package/dist/node/lib/AreIndex/index.mjs.map +1 -0
  158. package/dist/node/lib/AreNode/AreNode.constants.d.mts +36 -0
  159. package/dist/node/lib/AreNode/AreNode.constants.d.ts +36 -0
  160. package/dist/node/lib/AreNode/AreNode.constants.js +17 -0
  161. package/dist/node/lib/AreNode/AreNode.constants.js.map +1 -0
  162. package/dist/node/lib/AreNode/AreNode.constants.mjs +17 -0
  163. package/dist/node/lib/AreNode/AreNode.constants.mjs.map +1 -0
  164. package/dist/node/lib/AreNode/AreNode.entity.d.mts +8 -0
  165. package/dist/node/lib/AreNode/AreNode.entity.d.ts +8 -0
  166. package/dist/node/lib/AreNode/AreNode.entity.js +164 -0
  167. package/dist/node/lib/AreNode/AreNode.entity.js.map +1 -0
  168. package/dist/node/lib/AreNode/AreNode.entity.mjs +157 -0
  169. package/dist/node/lib/AreNode/AreNode.entity.mjs.map +1 -0
  170. package/dist/node/lib/AreNode/AreNode.error.d.mts +2 -0
  171. package/dist/node/lib/AreNode/AreNode.error.d.ts +2 -0
  172. package/dist/node/lib/AreNode/AreNode.error.js +4 -0
  173. package/dist/node/lib/AreNode/AreNode.error.js.map +1 -0
  174. package/dist/node/lib/AreNode/AreNode.error.mjs +3 -0
  175. package/dist/node/lib/AreNode/AreNode.error.mjs.map +1 -0
  176. package/dist/node/lib/AreNode/AreNode.types.d.mts +13 -0
  177. package/dist/node/lib/AreNode/AreNode.types.d.ts +13 -0
  178. package/dist/node/lib/AreNode/AreNode.types.js +4 -0
  179. package/dist/node/lib/AreNode/AreNode.types.js.map +1 -0
  180. package/dist/node/lib/AreNode/AreNode.types.mjs +3 -0
  181. package/dist/node/lib/AreNode/AreNode.types.mjs.map +1 -0
  182. package/dist/node/lib/AreNode/index.d.mts +9 -0
  183. package/dist/node/lib/AreNode/index.d.ts +9 -0
  184. package/dist/node/lib/AreNode/index.js +26 -0
  185. package/dist/node/lib/AreNode/index.js.map +1 -0
  186. package/dist/node/lib/AreNode/index.mjs +6 -0
  187. package/dist/node/lib/AreNode/index.mjs.map +1 -0
  188. package/dist/node/lib/AreProps/AreProps.context.d.mts +9 -0
  189. package/dist/node/lib/AreProps/AreProps.context.d.ts +9 -0
  190. package/dist/node/lib/AreProps/AreProps.context.js +32 -0
  191. package/dist/node/lib/AreProps/AreProps.context.js.map +1 -0
  192. package/dist/node/lib/AreProps/AreProps.context.mjs +25 -0
  193. package/dist/node/lib/AreProps/AreProps.context.mjs.map +1 -0
  194. package/dist/node/lib/AreProps/index.d.mts +3 -0
  195. package/dist/node/lib/AreProps/index.d.ts +3 -0
  196. package/dist/node/lib/AreProps/index.js +12 -0
  197. package/dist/node/lib/AreProps/index.js.map +1 -0
  198. package/dist/node/lib/AreProps/index.mjs +4 -0
  199. package/dist/node/lib/AreProps/index.mjs.map +1 -0
  200. package/dist/node/lib/AreRoot/AreRoot.component.d.mts +18 -0
  201. package/dist/node/lib/AreRoot/AreRoot.component.d.ts +18 -0
  202. package/dist/node/lib/AreRoot/AreRoot.component.js +53 -0
  203. package/dist/node/lib/AreRoot/AreRoot.component.js.map +1 -0
  204. package/dist/node/lib/AreRoot/AreRoot.component.mjs +41 -0
  205. package/dist/node/lib/AreRoot/AreRoot.component.mjs.map +1 -0
  206. package/dist/node/lib/AreRoot/index.d.mts +11 -0
  207. package/dist/node/lib/AreRoot/index.d.ts +11 -0
  208. package/dist/node/lib/AreRoot/index.js +12 -0
  209. package/dist/node/lib/AreRoot/index.js.map +1 -0
  210. package/dist/node/lib/AreRoot/index.mjs +4 -0
  211. package/dist/node/lib/AreRoot/index.mjs.map +1 -0
  212. package/dist/node/lib/AreRouter/AreRouter.componeent.d.mts +17 -0
  213. package/dist/node/lib/AreRouter/AreRouter.componeent.d.ts +17 -0
  214. package/dist/node/lib/AreRouter/AreRouter.componeent.js +37 -0
  215. package/dist/node/lib/AreRouter/AreRouter.componeent.js.map +1 -0
  216. package/dist/node/lib/AreRouter/AreRouter.componeent.mjs +25 -0
  217. package/dist/node/lib/AreRouter/AreRouter.componeent.mjs.map +1 -0
  218. package/dist/node/lib/AreRouter/index.d.mts +12 -0
  219. package/dist/node/lib/AreRouter/index.d.ts +12 -0
  220. package/dist/node/lib/AreRouter/index.js +12 -0
  221. package/dist/node/lib/AreRouter/index.js.map +1 -0
  222. package/dist/node/lib/AreRouter/index.mjs +4 -0
  223. package/dist/node/lib/AreRouter/index.mjs.map +1 -0
  224. package/dist/node/lib/AreScene/AreScene.context.d.mts +8 -0
  225. package/dist/node/lib/AreScene/AreScene.context.d.ts +8 -0
  226. package/dist/node/lib/AreScene/AreScene.context.js +249 -0
  227. package/dist/node/lib/AreScene/AreScene.context.js.map +1 -0
  228. package/dist/node/lib/AreScene/AreScene.context.mjs +248 -0
  229. package/dist/node/lib/AreScene/AreScene.context.mjs.map +1 -0
  230. package/dist/node/lib/AreScene/AreScene.error.d.mts +14 -0
  231. package/dist/node/lib/AreScene/AreScene.error.d.ts +14 -0
  232. package/dist/node/lib/AreScene/AreScene.error.js +18 -0
  233. package/dist/node/lib/AreScene/AreScene.error.js.map +1 -0
  234. package/dist/node/lib/AreScene/AreScene.error.mjs +17 -0
  235. package/dist/node/lib/AreScene/AreScene.error.mjs.map +1 -0
  236. package/dist/node/lib/AreScene/AreScene.types.d.mts +9 -0
  237. package/dist/node/lib/AreScene/AreScene.types.d.ts +9 -0
  238. package/dist/node/lib/AreScene/AreScene.types.js +4 -0
  239. package/dist/node/lib/AreScene/AreScene.types.js.map +1 -0
  240. package/dist/node/lib/AreScene/AreScene.types.mjs +3 -0
  241. package/dist/node/lib/AreScene/AreScene.types.mjs.map +1 -0
  242. package/dist/node/lib/AreScene/index.d.mts +9 -0
  243. package/dist/node/lib/AreScene/index.d.ts +9 -0
  244. package/dist/node/lib/AreScene/index.js +24 -0
  245. package/dist/node/lib/AreScene/index.js.map +1 -0
  246. package/dist/node/lib/AreScene/index.mjs +6 -0
  247. package/dist/node/lib/AreScene/index.mjs.map +1 -0
  248. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.mts +7 -0
  249. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.d.ts +7 -0
  250. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js +12 -0
  251. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.js.map +1 -0
  252. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs +12 -0
  253. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.constants.mjs.map +1 -0
  254. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.mts +8 -0
  255. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.d.ts +8 -0
  256. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js +95 -0
  257. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.js.map +1 -0
  258. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs +94 -0
  259. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.entity.mjs.map +1 -0
  260. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.mts +8 -0
  261. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.d.ts +8 -0
  262. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js +4 -0
  263. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.js.map +1 -0
  264. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs +3 -0
  265. package/dist/node/lib/AreSceneInstruction/AreSceneInstruction.types.mjs.map +1 -0
  266. package/dist/node/lib/AreSceneInstruction/index.d.mts +19 -0
  267. package/dist/node/lib/AreSceneInstruction/index.d.ts +19 -0
  268. package/dist/node/lib/AreSceneInstruction/index.js +33 -0
  269. package/dist/node/lib/AreSceneInstruction/index.js.map +1 -0
  270. package/dist/node/lib/AreSceneInstruction/index.mjs +7 -0
  271. package/dist/node/lib/AreSceneInstruction/index.mjs.map +1 -0
  272. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.mts +19 -0
  273. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.d.ts +19 -0
  274. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js +27 -0
  275. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.js.map +1 -0
  276. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs +26 -0
  277. package/dist/node/lib/AreSceneInstruction/types/AddAttribute.instruction.mjs.map +1 -0
  278. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.mts +20 -0
  279. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.d.ts +20 -0
  280. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js +27 -0
  281. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.js.map +1 -0
  282. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs +26 -0
  283. package/dist/node/lib/AreSceneInstruction/types/AddDirective.instruction.mjs.map +1 -0
  284. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.mts +17 -0
  285. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.d.ts +17 -0
  286. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js +23 -0
  287. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.js.map +1 -0
  288. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs +22 -0
  289. package/dist/node/lib/AreSceneInstruction/types/AddStyle.instruction.mjs.map +1 -0
  290. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.mts +19 -0
  291. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.d.ts +19 -0
  292. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js +27 -0
  293. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.js.map +1 -0
  294. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs +26 -0
  295. package/dist/node/lib/AreSceneInstruction/types/AddStyleProperty.instruction.mjs.map +1 -0
  296. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.mts +23 -0
  297. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.d.ts +23 -0
  298. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js +41 -0
  299. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.js.map +1 -0
  300. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs +40 -0
  301. package/dist/node/lib/AreSceneInstruction/types/AttachListener.instruction.mjs.map +1 -0
  302. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.mts +15 -0
  303. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.d.ts +15 -0
  304. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js +21 -0
  305. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.js.map +1 -0
  306. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs +20 -0
  307. package/dist/node/lib/AreSceneInstruction/types/AttachRootNode.instruction.mjs.map +1 -0
  308. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.mts +17 -0
  309. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.d.ts +17 -0
  310. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js +23 -0
  311. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.js.map +1 -0
  312. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs +22 -0
  313. package/dist/node/lib/AreSceneInstruction/types/MountNode.instruction.mjs.map +1 -0
  314. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.mts +23 -0
  315. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.d.ts +23 -0
  316. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js +34 -0
  317. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.js.map +1 -0
  318. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs +33 -0
  319. package/dist/node/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.mjs.map +1 -0
  320. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.mts +16 -0
  321. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.d.ts +16 -0
  322. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js +20 -0
  323. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.js.map +1 -0
  324. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs +19 -0
  325. package/dist/node/lib/AreSceneInstruction/types/UnmountNode.instruction.mjs.map +1 -0
  326. package/dist/node/lib/AreSceneInstruction/types/index.d.mts +18 -0
  327. package/dist/node/lib/AreSceneInstruction/types/index.d.ts +18 -0
  328. package/dist/node/lib/AreSceneInstruction/types/index.js +52 -0
  329. package/dist/node/lib/AreSceneInstruction/types/index.js.map +1 -0
  330. package/dist/node/lib/AreSceneInstruction/types/index.mjs +12 -0
  331. package/dist/node/lib/AreSceneInstruction/types/index.mjs.map +1 -0
  332. package/dist/node/lib/AreSlot/AreSlot.component.d.mts +8 -0
  333. package/dist/node/lib/AreSlot/AreSlot.component.d.ts +8 -0
  334. package/dist/node/lib/AreSlot/AreSlot.component.js +37 -0
  335. package/dist/node/lib/AreSlot/AreSlot.component.js.map +1 -0
  336. package/dist/node/lib/AreSlot/AreSlot.component.mjs +36 -0
  337. package/dist/node/lib/AreSlot/AreSlot.component.mjs.map +1 -0
  338. package/dist/node/lib/AreStore/AreStore.context.d.mts +10 -0
  339. package/dist/node/lib/AreStore/AreStore.context.d.ts +10 -0
  340. package/dist/node/lib/AreStore/AreStore.context.js +35 -0
  341. package/dist/node/lib/AreStore/AreStore.context.js.map +1 -0
  342. package/dist/node/lib/AreStore/AreStore.context.mjs +28 -0
  343. package/dist/node/lib/AreStore/AreStore.context.mjs.map +1 -0
  344. package/dist/node/lib/AreStore/index.d.mts +3 -0
  345. package/dist/node/lib/AreStore/index.d.ts +3 -0
  346. package/dist/node/lib/AreStore/index.js +12 -0
  347. package/dist/node/lib/AreStore/index.js.map +1 -0
  348. package/dist/node/lib/AreStore/index.mjs +4 -0
  349. package/dist/node/lib/AreStore/index.mjs.map +1 -0
  350. package/dist/node/lib/AreSyntax/AreSyntax.component.d.mts +89 -0
  351. package/dist/node/lib/AreSyntax/AreSyntax.component.d.ts +89 -0
  352. package/dist/node/lib/AreSyntax/AreSyntax.component.js +241 -0
  353. package/dist/node/lib/AreSyntax/AreSyntax.component.js.map +1 -0
  354. package/dist/node/lib/AreSyntax/AreSyntax.component.mjs +232 -0
  355. package/dist/node/lib/AreSyntax/AreSyntax.component.mjs.map +1 -0
  356. package/dist/node/lib/AreSyntax/AreSyntax.context.d.mts +80 -0
  357. package/dist/node/lib/AreSyntax/AreSyntax.context.d.ts +80 -0
  358. package/dist/node/lib/AreSyntax/AreSyntax.context.js +117 -0
  359. package/dist/node/lib/AreSyntax/AreSyntax.context.js.map +1 -0
  360. package/dist/node/lib/AreSyntax/AreSyntax.context.mjs +110 -0
  361. package/dist/node/lib/AreSyntax/AreSyntax.context.mjs.map +1 -0
  362. package/dist/node/lib/AreSyntax/AreSyntax.error.d.mts +9 -0
  363. package/dist/node/lib/AreSyntax/AreSyntax.error.d.ts +9 -0
  364. package/dist/node/lib/AreSyntax/AreSyntax.error.js +13 -0
  365. package/dist/node/lib/AreSyntax/AreSyntax.error.js.map +1 -0
  366. package/dist/node/lib/AreSyntax/AreSyntax.error.mjs +12 -0
  367. package/dist/node/lib/AreSyntax/AreSyntax.error.mjs.map +1 -0
  368. package/dist/node/lib/AreSyntax/AreSyntax.types.d.mts +132 -0
  369. package/dist/node/lib/AreSyntax/AreSyntax.types.d.ts +132 -0
  370. package/dist/node/lib/AreSyntax/AreSyntax.types.js +4 -0
  371. package/dist/node/lib/AreSyntax/AreSyntax.types.js.map +1 -0
  372. package/dist/node/lib/AreSyntax/AreSyntax.types.mjs +3 -0
  373. package/dist/node/lib/AreSyntax/AreSyntax.types.mjs.map +1 -0
  374. package/dist/node/lib/AreSyntax/index.d.mts +12 -0
  375. package/dist/node/lib/AreSyntax/index.d.ts +12 -0
  376. package/dist/node/lib/AreSyntax/index.js +29 -0
  377. package/dist/node/lib/AreSyntax/index.js.map +1 -0
  378. package/dist/node/lib/AreSyntax/index.mjs +7 -0
  379. package/dist/node/lib/AreSyntax/index.mjs.map +1 -0
  380. package/dist/node/signals/AreInit.signal.d.mts +7 -0
  381. package/dist/node/signals/AreInit.signal.d.ts +7 -0
  382. package/dist/node/signals/AreInit.signal.js +13 -0
  383. package/dist/node/signals/AreInit.signal.js.map +1 -0
  384. package/dist/node/signals/AreInit.signal.mjs +12 -0
  385. package/dist/node/signals/AreInit.signal.mjs.map +1 -0
  386. package/dist/node/signals/AreRoute.signal.d.mts +12 -0
  387. package/dist/node/signals/AreRoute.signal.d.ts +12 -0
  388. package/dist/node/signals/AreRoute.signal.js +24 -0
  389. package/dist/node/signals/AreRoute.signal.js.map +1 -0
  390. package/dist/node/signals/AreRoute.signal.mjs +23 -0
  391. package/dist/node/signals/AreRoute.signal.mjs.map +1 -0
  392. package/dist/node/signals/index.d.mts +4 -0
  393. package/dist/node/signals/index.d.ts +4 -0
  394. package/dist/node/signals/index.js +17 -0
  395. package/dist/node/signals/index.js.map +1 -0
  396. package/dist/node/signals/index.mjs +5 -0
  397. package/dist/node/signals/index.mjs.map +1 -0
  398. package/docs/a-logo-docs.png +0 -0
  399. package/examples/jumpstart/concept.ts +60 -0
  400. package/examples/jumpstart/containers/UI.container.ts +172 -0
  401. package/examples/jumpstart/dist/index.html +22 -0
  402. package/examples/jumpstart/dist/mls3rrlq-lofs95.js +129 -0
  403. package/examples/jumpstart/dist/static/css/main.css +40 -0
  404. package/examples/jumpstart/dist/static/img/test.png +0 -0
  405. package/examples/jumpstart/public/index.html +22 -0
  406. package/examples/jumpstart/public/static/css/main.css +40 -0
  407. package/examples/jumpstart/public/static/img/test.png +0 -0
  408. package/examples/jumpstart/src/components/A-Btn.component.ts +124 -0
  409. package/examples/jumpstart/src/components/A-Input.component.ts +78 -0
  410. package/examples/jumpstart/src/components/A-Navigation.component.ts +167 -0
  411. package/examples/jumpstart/src/components/SignInComponent.component.ts +127 -0
  412. package/examples/jumpstart/src/concept.ts +92 -0
  413. package/jest.config.ts +26 -0
  414. package/package.json +92 -0
  415. package/src/engines/html/AreHTML.compiler.ts +657 -0
  416. package/src/engines/html/AreHTML.engine.ts +62 -0
  417. package/src/engines/html/index.ts +2 -0
  418. package/src/engines/json/AreJSON.compiler.ts +13 -0
  419. package/src/index.ts +15 -0
  420. package/src/lib/AreApp/AreApp.container.ts +77 -0
  421. package/src/lib/AreApp/AreApp.env.ts +0 -0
  422. package/src/lib/AreApp/AreApp.error.ts +7 -0
  423. package/src/lib/AreApp/AreApp.types.ts +0 -0
  424. package/src/lib/AreApp/index.ts +4 -0
  425. package/src/lib/AreCompiler/AreCompiler.component.ts +1023 -0
  426. package/src/lib/AreCompiler/AreCompiler.error.ts +9 -0
  427. package/src/lib/AreCompiler/AreCompiler.types.ts +0 -0
  428. package/src/lib/AreCompiler/index.ts +3 -0
  429. package/src/lib/AreComponent/Are.component.ts +203 -0
  430. package/src/lib/AreComponent/Are.constants.ts +39 -0
  431. package/src/lib/AreComponent/Are.context.ts +43 -0
  432. package/src/lib/AreComponent/Are.types.ts +0 -0
  433. package/src/lib/AreComponent/index.ts +4 -0
  434. package/src/lib/AreEvent/AreEvent.context.ts +38 -0
  435. package/src/lib/AreEvent/AreEvent.types.ts +16 -0
  436. package/src/lib/AreEvent/index.ts +2 -0
  437. package/src/lib/AreIndex/AreIndex.context.ts +174 -0
  438. package/src/lib/AreIndex/index.ts +1 -0
  439. package/src/lib/AreNode/AreNode.constants.ts +37 -0
  440. package/src/lib/AreNode/AreNode.entity.ts +249 -0
  441. package/src/lib/AreNode/AreNode.error.ts +0 -0
  442. package/src/lib/AreNode/AreNode.types.ts +15 -0
  443. package/src/lib/AreNode/index.ts +4 -0
  444. package/src/lib/AreProps/AreProps.context.ts +26 -0
  445. package/src/lib/AreProps/index.ts +1 -0
  446. package/src/lib/AreRoot/AreRoot.component.ts +54 -0
  447. package/src/lib/AreRoot/index.ts +1 -0
  448. package/src/lib/AreRouter/AreRouter.componeent.ts +24 -0
  449. package/src/lib/AreRouter/index.ts +1 -0
  450. package/src/lib/AreScene/AreScene.context.ts +382 -0
  451. package/src/lib/AreScene/AreScene.error.ts +22 -0
  452. package/src/lib/AreScene/AreScene.types.ts +7 -0
  453. package/src/lib/AreScene/index.ts +3 -0
  454. package/src/lib/AreSceneInstruction/AreSceneInstruction.constants.ts +7 -0
  455. package/src/lib/AreSceneInstruction/AreSceneInstruction.entity.ts +156 -0
  456. package/src/lib/AreSceneInstruction/AreSceneInstruction.types.ts +8 -0
  457. package/src/lib/AreSceneInstruction/index.ts +4 -0
  458. package/src/lib/AreSceneInstruction/types/AddAttribute.instruction.ts +34 -0
  459. package/src/lib/AreSceneInstruction/types/AddDirective.instruction.ts +36 -0
  460. package/src/lib/AreSceneInstruction/types/AddStyle.instruction.ts +26 -0
  461. package/src/lib/AreSceneInstruction/types/AddStyleProperty.instruction.ts +32 -0
  462. package/src/lib/AreSceneInstruction/types/AttachListener.instruction.ts +57 -0
  463. package/src/lib/AreSceneInstruction/types/AttachRootNode.instruction.ts +23 -0
  464. package/src/lib/AreSceneInstruction/types/MountNode.instruction.ts +29 -0
  465. package/src/lib/AreSceneInstruction/types/ReplaceInterpolation.instruction.ts +45 -0
  466. package/src/lib/AreSceneInstruction/types/UnmountNode.instruction.ts +22 -0
  467. package/src/lib/AreSceneInstruction/types/index.ts +10 -0
  468. package/src/lib/AreSlot/AreSlot.component.ts +48 -0
  469. package/src/lib/AreStore/AreStore.context.ts +36 -0
  470. package/src/lib/AreStore/index.ts +1 -0
  471. package/src/lib/AreSyntax/AreSyntax.component.ts +378 -0
  472. package/src/lib/AreSyntax/AreSyntax.context.ts +114 -0
  473. package/src/lib/AreSyntax/AreSyntax.error.ts +11 -0
  474. package/src/lib/AreSyntax/AreSyntax.types.ts +156 -0
  475. package/src/lib/AreSyntax/index.ts +4 -0
  476. package/src/signals/AreInit.signal.ts +7 -0
  477. package/src/signals/AreRoute.signal.ts +25 -0
  478. package/src/signals/index.ts +2 -0
  479. package/tests/A-HttpChannel.test.ts +204 -0
  480. package/tests/A-HttpServerError.test.ts +204 -0
  481. package/tests/A-Request.test.ts +742 -0
  482. package/tests/A-Service.test.ts +18 -0
  483. package/tsconfig.json +68 -0
  484. package/tslint.json +98 -0
  485. package/tsup.config.ts +78 -0
@@ -0,0 +1,657 @@
1
+ import { A_Caller, A_Container, A_Error, A_Feature, A_Inject, A_Scope, ASEID } from "@adaas/a-concept";
2
+ import { A_Frame } from "@adaas/a-frame";
3
+ import { AreCompiler } from "@adaas/are/compiler";
4
+ import { AreIndex } from "@adaas/are/index";
5
+ import { AreScene } from "@adaas/are/scene";
6
+ import { AreNode } from "@adaas/are/node";
7
+ import {
8
+ AreSceneInstructionFeatures,
9
+ AttachRootNodeInstruction,
10
+ MountNodeInstruction,
11
+ UnmountNodeInstruction,
12
+ AddStyleInstruction,
13
+ AttachListenerInstruction,
14
+ AddAttributeInstruction,
15
+ ReplaceInterpolationInstruction,
16
+ AddDirectiveInstruction,
17
+ } from "@adaas/are/scene-instruction";
18
+ import { AreSyntax } from "@adaas/are/syntax";
19
+ import { A_ExecutionContext } from "@adaas/a-utils/a-execution";
20
+ import { A_Logger } from "@adaas/a-utils/a-logger";
21
+
22
+
23
+
24
+ @A_Frame.Component({
25
+ namespace: 'A-ARE',
26
+ name: 'AreHTMLCompiler',
27
+ description: 'HTML-specific compiler for A-Concept Rendering Engine (ARE) components, extending the base AreCompiler to handle HTML templates, styles, and rendering logic tailored for web environments.'
28
+ })
29
+ export class AreHTMLCompiler extends AreCompiler {
30
+
31
+
32
+
33
+ // ==================================================================================
34
+ // ========================= COMPONENT METHODS =======================================
35
+ // ==================================================================================
36
+ /**
37
+ * Get DOM element by string path from root element
38
+ * Works with paths generated by the string-based parser
39
+ */
40
+ @A_Frame.Method({
41
+ description: 'Get DOM element corresponding to the given path from the root element.'
42
+ })
43
+ getElementByPath(
44
+ root: Element,
45
+ path?: string
46
+ ): Element | undefined {
47
+
48
+ if (path === undefined || path.trim() === '') {
49
+ return root;
50
+ }
51
+
52
+ const indices = path.split('.').map(index => parseInt(index, 10));
53
+ let current: Element | undefined = root;
54
+
55
+ for (const index of indices) {
56
+ if (!current) {
57
+ return undefined;
58
+ }
59
+ // Get only element children (not text nodes, comments, etc.)
60
+
61
+ const elementChildren = Array.from(current.childNodes).filter(child => child.nodeType === Node.ELEMENT_NODE ||
62
+ child.nodeType === Node.DOCUMENT_NODE || child.nodeType === Node.COMMENT_NODE
63
+ );
64
+
65
+ if (index >= elementChildren.length) {
66
+ return undefined;
67
+ }
68
+
69
+ current = elementChildren[index] as Element;
70
+ }
71
+ return current;
72
+ }
73
+ /**
74
+ * Get DOM element by AreNode based on its scene path
75
+ *
76
+ * @param node
77
+ * @returns
78
+ */
79
+ @A_Frame.Method({
80
+ description: 'Get DOM element corresponding to the given AreNode based on its scene path.'
81
+ })
82
+ getElementByNode(node: AreNode): Element | undefined {
83
+ const scene = node.scope.resolveFlat<AreScene>(AreScene)!;
84
+
85
+ const root = document.getElementById(new ASEID(scene.root.id).id)!;
86
+
87
+ return this.getElementByPath(root, scene.path);
88
+ }
89
+ /**
90
+ * Insert DOM element at specified path within root element
91
+ *
92
+ * @param root
93
+ * @param path
94
+ * @param element
95
+ */
96
+ @A_Frame.Method({
97
+ description: 'Insert a DOM element at the specified path within the root element.'
98
+ })
99
+ insertElementAtPath(
100
+ root: Element,
101
+ path: string,
102
+ element: Element
103
+ ): void {
104
+ const parentPath = path.split('.').slice(0, -1).join('.');
105
+ const parentElement = this.getElementByPath(root, parentPath);
106
+ const index = parseInt(path.split('.').slice(-1)[0], 10);
107
+ if (parentElement) {
108
+ const children = Array.from(parentElement.children).filter(child => child.nodeType === Node.ELEMENT_NODE);
109
+ if (index >= children.length) {
110
+ parentElement.appendChild(element);
111
+ } else {
112
+ parentElement.insertBefore(element, children[index]);
113
+ }
114
+ }
115
+ }
116
+ /**
117
+ * Insert DOM element corresponding to AreNode at its scene path
118
+ *
119
+ * @param node
120
+ * @param element
121
+ */
122
+ @A_Frame.Method({
123
+ description: 'Insert a DOM element corresponding to the given AreNode at its scene path.'
124
+ })
125
+ insertElementByNode(
126
+ node: AreNode,
127
+ element: Element
128
+ ): void {
129
+ const scene = node.scope.resolveFlat<AreScene>(AreScene)!;
130
+ const root = document.getElementById(new ASEID(scene.root.id).id)!;
131
+ this.insertElementAtPath(root, scene.path, element);
132
+ }
133
+ /**
134
+ * Index the elements of the given AreNode within its scene
135
+ *
136
+ * @param node
137
+ */
138
+ @A_Frame.Method({
139
+ description: 'Indexes the elements of the given AreNode within its scene, preserving the original markup structure.'
140
+ })
141
+ index(
142
+ node: AreNode
143
+ ) {
144
+ const index = node.scope.resolveFlat<AreIndex>(AreIndex)!;
145
+ const scene = node.scope.resolveFlat<AreScene>(AreScene)!;
146
+
147
+ index.clear();
148
+ scene.reset();
149
+
150
+ // Use a position-based approach that maps DOM paths to original markup exactly
151
+ const tempDiv = document.createElement('div');
152
+ tempDiv.innerHTML = node.template;
153
+
154
+ // Create a mapping of DOM paths to original markup using DOM traversal
155
+ const markupMap = this.createPositionBasedMarkupMap(node.template);
156
+
157
+ this.indexElementsFromDOM(tempDiv, index, [], markupMap);
158
+ }
159
+
160
+ /**
161
+ * Create a position-based mapping by parsing the original template with DOM
162
+ * This ensures 1:1 correspondence between DOM structure and original markup
163
+ */
164
+ private createPositionBasedMarkupMap(template: string): Map<string, string> {
165
+ const markupMap = new Map<string, string>();
166
+ const originalDiv = document.createElement('div');
167
+ originalDiv.innerHTML = template;
168
+
169
+ // Traverse the original DOM and map each position to its outerHTML
170
+ this.mapDOMPositions(originalDiv, [], markupMap);
171
+
172
+ return markupMap;
173
+ }
174
+
175
+ /**
176
+ * Recursively map DOM positions to their exact original markup
177
+ */
178
+ private mapDOMPositions(
179
+ parentElement: Element,
180
+ parentPath: number[],
181
+ markupMap: Map<string, string>
182
+ ): void {
183
+ const children = Array.from(parentElement.children);
184
+
185
+ for (let i = 0; i < children.length; i++) {
186
+ const element = children[i];
187
+ const currentPath = [...parentPath, i];
188
+ const pathKey = currentPath.join('.');
189
+
190
+ // Store the exact outerHTML for this position
191
+ markupMap.set(pathKey, element.outerHTML);
192
+
193
+ // Recursively process children
194
+ // if (element.children.length > 0) {
195
+ // this.mapDOMPositions(element, currentPath, markupMap);
196
+ // }
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Index elements using actual DOM structure with position-based markup mapping
202
+ */
203
+ private indexElementsFromDOM(
204
+ parentElement: Element,
205
+ index: AreIndex,
206
+ parentPath: number[],
207
+ markupMap: Map<string, string>
208
+ ): void {
209
+ const children = Array.from(parentElement.children);
210
+
211
+ for (let i = 0; i < children.length; i++) {
212
+ const element = children[i];
213
+ const currentPath = [...parentPath, i];
214
+ const pathKey = currentPath.join('.');
215
+
216
+ // Get the exact markup for this position from our mapping
217
+ const originalMarkup = markupMap.get(pathKey);
218
+
219
+
220
+ // Create AreNode with preserved original markup
221
+ const areNode = new AreNode({
222
+ scope: index.name,
223
+ component: element.tagName.toLowerCase(),
224
+ markup: originalMarkup || element.outerHTML,
225
+ template: element.innerHTML,
226
+ });
227
+
228
+ // Add to index
229
+ index.add(areNode, currentPath.join('.'));
230
+
231
+ // Recursively process children
232
+ // if (element.children.length > 0) {
233
+ // this.indexElementsFromDOM(element, index, currentPath, markupMap);
234
+ // }
235
+ }
236
+ }
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+ @A_Feature.Extend({
246
+ name: AreSceneInstructionFeatures.Apply,
247
+ scope: [AttachRootNodeInstruction]
248
+ })
249
+ applyAttachRootNodeInstruction(
250
+ @A_Inject(A_Caller) instruction: AttachRootNodeInstruction,
251
+
252
+ @A_Inject(A_Logger) logger?: A_Logger,
253
+ ) {
254
+ const node = instruction.node;
255
+
256
+ // ensure root identified
257
+ const rootElement = document.getElementById(node.id);
258
+
259
+ if (!rootElement) {
260
+ logger?.warning(`Root element with id <${node.id}> not found in DOM.`);
261
+ return;
262
+ }
263
+ rootElement.innerHTML = node.template;
264
+
265
+ rootElement.setAttribute('aseid', node.aseid.toString());
266
+
267
+ }
268
+
269
+
270
+
271
+ @A_Feature.Extend({
272
+ name: AreSceneInstructionFeatures.Apply,
273
+ scope: [MountNodeInstruction]
274
+ })
275
+ applyMountNodeInstruction(
276
+ @A_Inject(A_Caller) instruction: MountNodeInstruction,
277
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
278
+ element: Element,
279
+ mountPoint: Element,
280
+ content: AreScene,
281
+ }>,
282
+ @A_Inject(AreSyntax) syntax: AreSyntax,
283
+
284
+ @A_Inject(A_Logger) logger?: A_Logger,
285
+ ) {
286
+ try {
287
+
288
+ const node = instruction.node;
289
+ const scene = instruction.scene;
290
+
291
+ if (syntax.isCustomNode(node)) {
292
+
293
+ logger?.debug('red', scene.debugPrefix + `Mounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} at path `);
294
+ const wrapper = document.createElement('div');
295
+
296
+ wrapper.setAttribute('aseid', node.aseid.toString());
297
+
298
+ wrapper.innerHTML = node.template;
299
+
300
+ const element = this.getElementByNode(node);
301
+
302
+ // Replace the placement with the rendered content
303
+ if (!element) {
304
+ this.insertElementByNode(node, wrapper);
305
+ } else {
306
+ (element).replaceWith(wrapper);
307
+ }
308
+ }
309
+
310
+ } catch (error) {
311
+ logger?.error(error)
312
+ }
313
+ }
314
+
315
+
316
+
317
+ @A_Feature.Extend({
318
+ name: AreSceneInstructionFeatures.Apply,
319
+ scope: [UnmountNodeInstruction]
320
+ })
321
+ applyUnmountNodeInstruction(
322
+ @A_Inject(A_Caller) instruction: UnmountNodeInstruction,
323
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
324
+ element: Element,
325
+ mountPoint: Element,
326
+ content: AreScene,
327
+ }>,
328
+
329
+ @A_Inject(A_Logger) logger?: A_Logger,
330
+ ) {
331
+
332
+ const node = instruction.node;
333
+ const scene = instruction.scene;
334
+ const element = this.getElementByNode(node)!;
335
+
336
+ logger?.debug('red', scene.debugPrefix + `Unmounting Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
337
+
338
+ try {
339
+ // element.remove();
340
+
341
+ element.replaceWith(document.createComment(` Unmounted Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()} `));
342
+
343
+ node.unmount();
344
+ } catch (error) {
345
+ logger?.error(error)
346
+ }
347
+ }
348
+
349
+
350
+ @A_Feature.Extend({
351
+ name: AreSceneInstructionFeatures.Apply,
352
+ scope: [AddStyleInstruction]
353
+ })
354
+ applyAddStyleInstruction(
355
+ @A_Inject(A_Caller) instruction: AddStyleInstruction,
356
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
357
+ element: Element,
358
+ mountPoint: Element,
359
+ content: AreScene,
360
+ }>,
361
+
362
+
363
+ @A_Inject(A_Logger) logger?: A_Logger,
364
+ ) {
365
+
366
+ try {
367
+
368
+
369
+ const node = instruction.node;
370
+ const scene = instruction.scene;
371
+ const styles = instruction.params?.styles || '';
372
+
373
+ logger?.debug('green', scene.debugPrefix + `Applying styles for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
374
+
375
+ const styleElementId = `a-style-${node.aseid.entity}`;
376
+ let styleElement = document.querySelector(`#${styleElementId}`) as HTMLStyleElement | null;
377
+
378
+ if (!styleElement) {
379
+ styleElement = document.createElement('style');
380
+ styleElement.id = styleElementId;
381
+ document.head.appendChild(styleElement);
382
+ }
383
+ styleElement.innerHTML = styles;
384
+
385
+ } catch (error) {
386
+ logger?.error(error)
387
+ }
388
+ }
389
+
390
+
391
+
392
+ @A_Feature.Extend({
393
+ name: AreSceneInstructionFeatures.Apply,
394
+ scope: [AttachListenerInstruction]
395
+ })
396
+ applyAttachListenerInstruction(
397
+ @A_Inject(A_Caller) instruction: AttachListenerInstruction,
398
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
399
+ element: Element,
400
+ mountPoint: Element,
401
+ content: AreScene,
402
+ }>,
403
+
404
+ @A_Inject(A_Logger) logger?: A_Logger,
405
+ ) {
406
+
407
+ const node = instruction.node;
408
+ const scene = instruction.scene;
409
+ const content = context.get('content')!;
410
+
411
+ const element = this.getElementByNode(instruction.node)!;
412
+ const mountPoint = context.get('mountPoint')!;
413
+
414
+ logger?.debug('green', scene.debugPrefix + `Attaching listener '${instruction.listener.name}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
415
+
416
+ element.addEventListener(instruction.listener.name, instruction.callback as EventListener);
417
+ }
418
+
419
+
420
+ @A_Feature.Extend({
421
+ name: AreSceneInstructionFeatures.Apply,
422
+ scope: [AddAttributeInstruction]
423
+ })
424
+ applyAddAttributeInstruction(
425
+ @A_Inject(A_Caller) instruction: AddAttributeInstruction,
426
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
427
+ element: Element,
428
+ mountPoint: Element,
429
+ content: AreScene,
430
+ }>,
431
+ @A_Inject(A_Scope) scope: A_Scope,
432
+
433
+ @A_Inject(A_Logger) logger?: A_Logger,
434
+ ) {
435
+
436
+ const node = instruction.node;
437
+ const scene = instruction.scene;
438
+ const content = context.get('content')!;
439
+
440
+ const element = this.getElementByNode(node)!;
441
+
442
+ logger?.debug('green', scene.debugPrefix + `Setting attribute '${instruction.name}'='${instruction.value}' for target <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, element);
443
+
444
+ element.setAttribute(instruction.name, instruction.value);
445
+ }
446
+
447
+
448
+ @A_Feature.Extend({
449
+ name: AreSceneInstructionFeatures.Revert,
450
+ scope: [ReplaceInterpolationInstruction]
451
+ })
452
+ revertInstruction(
453
+ @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,
454
+ ) {
455
+ this.interpolationTextNodes.delete(instruction.aseid.toString());
456
+ }
457
+
458
+
459
+ interpolationTextNodes: Map<string, Text> = new Map();
460
+
461
+ @A_Feature.Extend({
462
+ name: AreSceneInstructionFeatures.Apply,
463
+ scope: [ReplaceInterpolationInstruction]
464
+ })
465
+ applyReplaceInterpolationInstruction(
466
+ @A_Inject(A_Caller) instruction: ReplaceInterpolationInstruction,
467
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
468
+ element: Element,
469
+ mountPoint: Element,
470
+ content: AreScene,
471
+ }>,
472
+ @A_Inject(A_Scope) scope: A_Scope,
473
+ @A_Inject(AreSyntax) syntax: AreSyntax,
474
+
475
+ @A_Inject(A_Logger) logger?: A_Logger,
476
+ ) {
477
+
478
+ const node = instruction.node;
479
+ const scene = instruction.scene;
480
+ const element = this.getElementByNode(node)!;
481
+
482
+ logger?.debug('magenta', scene.debugPrefix + `Replacing interpolation '${instruction.interpolation.name}' with value '${instruction.value}' for target <${node.aseid.entity}>`, instruction);
483
+
484
+ const textNode = this.interpolationTextNodes.get(instruction.aseid.toString());
485
+
486
+ if (textNode) {
487
+ textNode.nodeValue = instruction.value;
488
+ } else {
489
+
490
+ const treeTextNodesWalker = document.createTreeWalker(
491
+ element,
492
+ NodeFilter.SHOW_TEXT,
493
+ {
494
+ acceptNode: (node) => {
495
+ if (node.nodeValue && node.nodeValue.includes(instruction.interpolation.raw)) {
496
+ return NodeFilter.FILTER_ACCEPT;
497
+ }
498
+ return NodeFilter.FILTER_REJECT;
499
+ }
500
+ },
501
+ );
502
+
503
+ const foundNode = treeTextNodesWalker.nextNode() as Text | null;
504
+
505
+
506
+ // then I have to split this node into multiple text nodes
507
+ if (foundNode) {
508
+ const parts = foundNode.nodeValue!.split(instruction.interpolation.raw);
509
+
510
+ const parent = foundNode.parentNode;
511
+
512
+ if (parent) {
513
+ for (let i = 0; i < parts.length; i++) {
514
+ const part = parts[i];
515
+
516
+ if (part) {
517
+ const textNodePart = document.createTextNode(part);
518
+ parent.insertBefore(textNodePart, foundNode);
519
+ }
520
+
521
+ if (i < parts.length - 1) {
522
+ const valueNode = document.createTextNode(instruction.value);
523
+ parent.insertBefore(valueNode, foundNode);
524
+
525
+ // store reference to this text node for future updates
526
+ this.interpolationTextNodes.set(instruction.aseid.toString(), valueNode);
527
+ }
528
+ }
529
+
530
+ // remove the original node
531
+ parent.removeChild(foundNode);
532
+ }
533
+ }
534
+ }
535
+ }
536
+
537
+
538
+
539
+
540
+ @A_Feature.Extend({
541
+ name: AreSceneInstructionFeatures.Init,
542
+ scope: [AddDirectiveInstruction]
543
+ })
544
+ initAddDirectiveInstruction(
545
+ @A_Inject(A_Caller) instruction: AddDirectiveInstruction,
546
+
547
+ @A_Inject(A_Scope) scope: A_Scope,
548
+
549
+ @A_Inject(A_Logger) logger?: A_Logger,
550
+ ) {
551
+ const node = instruction.node;
552
+ const scene = node.scope.resolveFlat<AreScene>(AreScene)!;
553
+ const parentScene = instruction.scene;
554
+
555
+ logger?.debug('green', scene.debugPrefix + `Initializing directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, scene, parentScene);
556
+
557
+
558
+ switch (instruction.directive.name) {
559
+ case '$if': {
560
+ const mountInstruction = new MountNodeInstruction(node, scene.path);
561
+ const unmountInstruction = new UnmountNodeInstruction(node, scene.path);
562
+
563
+
564
+ if (instruction.value) {
565
+ parentScene.unPlan(unmountInstruction);
566
+
567
+ parentScene.plan(mountInstruction);
568
+ parentScene.dropState(mountInstruction);
569
+ } else {
570
+ parentScene.unPlan(mountInstruction);
571
+
572
+ parentScene.plan(unmountInstruction);
573
+ parentScene.dropState(unmountInstruction);
574
+ }
575
+
576
+ // switch (true) {
577
+ // case !instruction.value && !!parentScene.getState(mountInstruction):
578
+ // parentScene.unPlan(mountInstruction);
579
+
580
+ // parentScene.plan(unmountInstruction);
581
+ // parentScene.dropState(unmountInstruction);
582
+
583
+ // break;
584
+ // case !instruction.value && !parentScene.getState(mountInstruction):
585
+
586
+ // parentScene.unPlan(mountInstruction);
587
+
588
+ // break;
589
+ // case instruction.value && !!parentScene.getState(unmountInstruction):
590
+
591
+ // parentScene.unPlan(unmountInstruction);
592
+
593
+ // parentScene.plan(mountInstruction);
594
+ // parentScene.dropState(mountInstruction);
595
+ // break;
596
+ // case instruction.value && !parentScene.getState(unmountInstruction):
597
+
598
+ // parentScene.unPlan(unmountInstruction);
599
+ // break;
600
+ // default:
601
+ // break;
602
+ // }
603
+
604
+ break;
605
+ }
606
+ default:
607
+ logger?.warning(`Unknown directive '${instruction.directive.name}' for Node <${node.type}> ASEID: ${node.aseid.toString()}`);
608
+ }
609
+
610
+
611
+
612
+
613
+ // Directives may have async initialization logic in future
614
+ }
615
+
616
+
617
+ @A_Feature.Extend({
618
+ name: AreSceneInstructionFeatures.Apply,
619
+ scope: [AddDirectiveInstruction]
620
+ })
621
+ applyAddDirectiveInstruction(
622
+ @A_Inject(A_Caller) instruction: AddDirectiveInstruction,
623
+ @A_Inject(A_ExecutionContext) context: A_ExecutionContext<{
624
+ element: Element,
625
+ mountPoint: Element,
626
+ content: AreScene,
627
+ }>,
628
+ @A_Inject(A_Scope) scope: A_Scope,
629
+
630
+ @A_Inject(A_Logger) logger?: A_Logger,
631
+ ) {
632
+
633
+ const node = instruction.node;
634
+ const scene = instruction.scene;
635
+ const element = this.getElementByNode(node);
636
+
637
+ try {
638
+
639
+ logger?.debug('green', scene.debugPrefix + `Applying directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`, instruction);
640
+
641
+ // switch (instruction.directive.name) {
642
+ // case '$if': {
643
+ // if (!instruction.value && element) {
644
+ // element.replaceWith(document.createComment(`$if directive removed node <${node.aseid.entity}>`));
645
+ // }
646
+ // break;
647
+ // }
648
+ // default:
649
+ // logger?.warning('yellow', scene.debugPrefix + `Unknown directive '${instruction.directive.name}' for Node <${node.aseid.entity}> ASEID: ${node.aseid.toString()}`);
650
+ // }
651
+
652
+ // Directive application logic goes here
653
+ } catch (error) {
654
+ logger?.error(error)
655
+ }
656
+ }
657
+ }