@saolabs/client 1.0.0

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 (383) hide show
  1. package/README.md +221 -0
  2. package/dist/index.d.ts +46 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +38 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/plugins.d.ts +38 -0
  7. package/dist/plugins.d.ts.map +1 -0
  8. package/dist/plugins.js +61 -0
  9. package/dist/plugins.js.map +1 -0
  10. package/dist/src/core/app/Application.d.ts +159 -0
  11. package/dist/src/core/app/Application.d.ts.map +1 -0
  12. package/dist/src/core/app/Application.js +338 -0
  13. package/dist/src/core/app/Application.js.map +1 -0
  14. package/dist/src/core/bootstrap/app.d.ts +4 -0
  15. package/dist/src/core/bootstrap/app.d.ts.map +1 -0
  16. package/dist/src/core/bootstrap/app.js +49 -0
  17. package/dist/src/core/bootstrap/app.js.map +1 -0
  18. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts +9 -0
  19. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts.map +1 -0
  20. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js +18 -0
  21. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js.map +1 -0
  22. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts +6 -0
  23. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts.map +1 -0
  24. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js +21 -0
  25. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js.map +1 -0
  26. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts +7 -0
  27. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts.map +1 -0
  28. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js +14 -0
  29. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js.map +1 -0
  30. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts +9 -0
  31. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts.map +1 -0
  32. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js +18 -0
  33. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js.map +1 -0
  34. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts +38 -0
  35. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts.map +1 -0
  36. package/dist/src/core/bootstrap/providers/ServiceProvider.js +41 -0
  37. package/dist/src/core/bootstrap/providers/ServiceProvider.js.map +1 -0
  38. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts +9 -0
  39. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts.map +1 -0
  40. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js +18 -0
  41. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js.map +1 -0
  42. package/dist/src/core/bootstrap/providers/default-providers.d.ts +14 -0
  43. package/dist/src/core/bootstrap/providers/default-providers.d.ts.map +1 -0
  44. package/dist/src/core/bootstrap/providers/default-providers.js +79 -0
  45. package/dist/src/core/bootstrap/providers/default-providers.js.map +1 -0
  46. package/dist/src/core/bootstrap/providers/index.d.ts +10 -0
  47. package/dist/src/core/bootstrap/providers/index.d.ts.map +1 -0
  48. package/dist/src/core/bootstrap/providers/index.js +9 -0
  49. package/dist/src/core/bootstrap/providers/index.js.map +1 -0
  50. package/dist/src/core/bootstrap/providers/provider-order.d.ts +19 -0
  51. package/dist/src/core/bootstrap/providers/provider-order.d.ts.map +1 -0
  52. package/dist/src/core/bootstrap/providers/provider-order.js +51 -0
  53. package/dist/src/core/bootstrap/providers/provider-order.js.map +1 -0
  54. package/dist/src/core/cache/ViewCache.d.ts +46 -0
  55. package/dist/src/core/cache/ViewCache.d.ts.map +1 -0
  56. package/dist/src/core/cache/ViewCache.js +85 -0
  57. package/dist/src/core/cache/ViewCache.js.map +1 -0
  58. package/dist/src/core/cache/index.d.ts +2 -0
  59. package/dist/src/core/cache/index.d.ts.map +1 -0
  60. package/dist/src/core/cache/index.js +2 -0
  61. package/dist/src/core/cache/index.js.map +1 -0
  62. package/dist/src/core/contracts/ApiInterface.d.ts +11 -0
  63. package/dist/src/core/contracts/ApiInterface.d.ts.map +1 -0
  64. package/dist/src/core/contracts/ApiInterface.js +2 -0
  65. package/dist/src/core/contracts/ApiInterface.js.map +1 -0
  66. package/dist/src/core/contracts/ApplicationInterface.d.ts +66 -0
  67. package/dist/src/core/contracts/ApplicationInterface.d.ts.map +1 -0
  68. package/dist/src/core/contracts/ApplicationInterface.js +3 -0
  69. package/dist/src/core/contracts/ApplicationInterface.js.map +1 -0
  70. package/dist/src/core/contracts/BlockInterface.d.ts +67 -0
  71. package/dist/src/core/contracts/BlockInterface.d.ts.map +1 -0
  72. package/dist/src/core/contracts/BlockInterface.js +2 -0
  73. package/dist/src/core/contracts/BlockInterface.js.map +1 -0
  74. package/dist/src/core/contracts/ComponentInterface.d.ts +24 -0
  75. package/dist/src/core/contracts/ComponentInterface.d.ts.map +1 -0
  76. package/dist/src/core/contracts/ComponentInterface.js +2 -0
  77. package/dist/src/core/contracts/ComponentInterface.js.map +1 -0
  78. package/dist/src/core/contracts/ElementInterface.d.ts +117 -0
  79. package/dist/src/core/contracts/ElementInterface.d.ts.map +1 -0
  80. package/dist/src/core/contracts/ElementInterface.js +2 -0
  81. package/dist/src/core/contracts/ElementInterface.js.map +1 -0
  82. package/dist/src/core/contracts/EventServiceInterface.d.ts +37 -0
  83. package/dist/src/core/contracts/EventServiceInterface.d.ts.map +1 -0
  84. package/dist/src/core/contracts/EventServiceInterface.js +3 -0
  85. package/dist/src/core/contracts/EventServiceInterface.js.map +1 -0
  86. package/dist/src/core/contracts/HelperInterface.d.ts +231 -0
  87. package/dist/src/core/contracts/HelperInterface.d.ts.map +1 -0
  88. package/dist/src/core/contracts/HelperInterface.js +3 -0
  89. package/dist/src/core/contracts/HelperInterface.js.map +1 -0
  90. package/dist/src/core/contracts/HttpServiceInterface.d.ts +38 -0
  91. package/dist/src/core/contracts/HttpServiceInterface.d.ts.map +1 -0
  92. package/dist/src/core/contracts/HttpServiceInterface.js +3 -0
  93. package/dist/src/core/contracts/HttpServiceInterface.js.map +1 -0
  94. package/dist/src/core/contracts/LoggerServiceInterface.d.ts +37 -0
  95. package/dist/src/core/contracts/LoggerServiceInterface.d.ts.map +1 -0
  96. package/dist/src/core/contracts/LoggerServiceInterface.js +3 -0
  97. package/dist/src/core/contracts/LoggerServiceInterface.js.map +1 -0
  98. package/dist/src/core/contracts/LoopContextInterface.d.ts +14 -0
  99. package/dist/src/core/contracts/LoopContextInterface.d.ts.map +1 -0
  100. package/dist/src/core/contracts/LoopContextInterface.js +3 -0
  101. package/dist/src/core/contracts/LoopContextInterface.js.map +1 -0
  102. package/dist/src/core/contracts/MarkerInterface.d.ts +55 -0
  103. package/dist/src/core/contracts/MarkerInterface.d.ts.map +1 -0
  104. package/dist/src/core/contracts/MarkerInterface.js +2 -0
  105. package/dist/src/core/contracts/MarkerInterface.js.map +1 -0
  106. package/dist/src/core/contracts/ReactiveInterface.d.ts +38 -0
  107. package/dist/src/core/contracts/ReactiveInterface.d.ts.map +1 -0
  108. package/dist/src/core/contracts/ReactiveInterface.js +2 -0
  109. package/dist/src/core/contracts/ReactiveInterface.js.map +1 -0
  110. package/dist/src/core/contracts/RouterInterface.d.ts +58 -0
  111. package/dist/src/core/contracts/RouterInterface.d.ts.map +1 -0
  112. package/dist/src/core/contracts/RouterInterface.js +2 -0
  113. package/dist/src/core/contracts/RouterInterface.js.map +1 -0
  114. package/dist/src/core/contracts/ServiceProviderInterface.d.ts +12 -0
  115. package/dist/src/core/contracts/ServiceProviderInterface.d.ts.map +1 -0
  116. package/dist/src/core/contracts/ServiceProviderInterface.js +2 -0
  117. package/dist/src/core/contracts/ServiceProviderInterface.js.map +1 -0
  118. package/dist/src/core/contracts/StorageServiceInterface.d.ts +43 -0
  119. package/dist/src/core/contracts/StorageServiceInterface.d.ts.map +1 -0
  120. package/dist/src/core/contracts/StorageServiceInterface.js +3 -0
  121. package/dist/src/core/contracts/StorageServiceInterface.js.map +1 -0
  122. package/dist/src/core/contracts/StoreServiceInterface.d.ts +45 -0
  123. package/dist/src/core/contracts/StoreServiceInterface.d.ts.map +1 -0
  124. package/dist/src/core/contracts/StoreServiceInterface.js +3 -0
  125. package/dist/src/core/contracts/StoreServiceInterface.js.map +1 -0
  126. package/dist/src/core/contracts/ViewCacheInterface.d.ts +13 -0
  127. package/dist/src/core/contracts/ViewCacheInterface.d.ts.map +1 -0
  128. package/dist/src/core/contracts/ViewCacheInterface.js +3 -0
  129. package/dist/src/core/contracts/ViewCacheInterface.js.map +1 -0
  130. package/dist/src/core/contracts/ViewControllerInterface.d.ts +115 -0
  131. package/dist/src/core/contracts/ViewControllerInterface.d.ts.map +1 -0
  132. package/dist/src/core/contracts/ViewControllerInterface.js +2 -0
  133. package/dist/src/core/contracts/ViewControllerInterface.js.map +1 -0
  134. package/dist/src/core/contracts/ViewInterface.d.ts +24 -0
  135. package/dist/src/core/contracts/ViewInterface.d.ts.map +1 -0
  136. package/dist/src/core/contracts/ViewInterface.js +2 -0
  137. package/dist/src/core/contracts/ViewInterface.js.map +1 -0
  138. package/dist/src/core/contracts/ViewManagerInterface.d.ts +44 -0
  139. package/dist/src/core/contracts/ViewManagerInterface.d.ts.map +1 -0
  140. package/dist/src/core/contracts/ViewManagerInterface.js +2 -0
  141. package/dist/src/core/contracts/ViewManagerInterface.js.map +1 -0
  142. package/dist/src/core/contracts/ViewStateInterface.d.ts +40 -0
  143. package/dist/src/core/contracts/ViewStateInterface.d.ts.map +1 -0
  144. package/dist/src/core/contracts/ViewStateInterface.js +3 -0
  145. package/dist/src/core/contracts/ViewStateInterface.js.map +1 -0
  146. package/dist/src/core/contracts/common.d.ts +28 -0
  147. package/dist/src/core/contracts/common.d.ts.map +1 -0
  148. package/dist/src/core/contracts/common.js +29 -0
  149. package/dist/src/core/contracts/common.js.map +1 -0
  150. package/dist/src/core/contracts/utils.d.ts +20 -0
  151. package/dist/src/core/contracts/utils.d.ts.map +1 -0
  152. package/dist/src/core/contracts/utils.js +4 -0
  153. package/dist/src/core/contracts/utils.js.map +1 -0
  154. package/dist/src/core/contracts/views.d.ts +23 -0
  155. package/dist/src/core/contracts/views.d.ts.map +1 -0
  156. package/dist/src/core/contracts/views.js +2 -0
  157. package/dist/src/core/contracts/views.js.map +1 -0
  158. package/dist/src/core/elements/Block.d.ts +58 -0
  159. package/dist/src/core/elements/Block.d.ts.map +1 -0
  160. package/dist/src/core/elements/Block.js +77 -0
  161. package/dist/src/core/elements/Block.js.map +1 -0
  162. package/dist/src/core/elements/BlockOutlet.d.ts +34 -0
  163. package/dist/src/core/elements/BlockOutlet.d.ts.map +1 -0
  164. package/dist/src/core/elements/BlockOutlet.js +59 -0
  165. package/dist/src/core/elements/BlockOutlet.js.map +1 -0
  166. package/dist/src/core/elements/Component.d.ts +62 -0
  167. package/dist/src/core/elements/Component.d.ts.map +1 -0
  168. package/dist/src/core/elements/Component.js +72 -0
  169. package/dist/src/core/elements/Component.js.map +1 -0
  170. package/dist/src/core/elements/ElementManager.d.ts +23 -0
  171. package/dist/src/core/elements/ElementManager.d.ts.map +1 -0
  172. package/dist/src/core/elements/ElementManager.js +33 -0
  173. package/dist/src/core/elements/ElementManager.js.map +1 -0
  174. package/dist/src/core/elements/Fragment.d.ts +51 -0
  175. package/dist/src/core/elements/Fragment.d.ts.map +1 -0
  176. package/dist/src/core/elements/Fragment.js +133 -0
  177. package/dist/src/core/elements/Fragment.js.map +1 -0
  178. package/dist/src/core/elements/Html.d.ts +52 -0
  179. package/dist/src/core/elements/Html.d.ts.map +1 -0
  180. package/dist/src/core/elements/Html.js +299 -0
  181. package/dist/src/core/elements/Html.js.map +1 -0
  182. package/dist/src/core/elements/Output.d.ts +69 -0
  183. package/dist/src/core/elements/Output.d.ts.map +1 -0
  184. package/dist/src/core/elements/Output.js +121 -0
  185. package/dist/src/core/elements/Output.js.map +1 -0
  186. package/dist/src/core/elements/Reactive.d.ts +77 -0
  187. package/dist/src/core/elements/Reactive.d.ts.map +1 -0
  188. package/dist/src/core/elements/Reactive.js +199 -0
  189. package/dist/src/core/elements/Reactive.js.map +1 -0
  190. package/dist/src/core/elements/TextElement.d.ts +46 -0
  191. package/dist/src/core/elements/TextElement.d.ts.map +1 -0
  192. package/dist/src/core/elements/TextElement.js +94 -0
  193. package/dist/src/core/elements/TextElement.js.map +1 -0
  194. package/dist/src/core/elements/Wrapper.d.ts +50 -0
  195. package/dist/src/core/elements/Wrapper.d.ts.map +1 -0
  196. package/dist/src/core/elements/Wrapper.js +96 -0
  197. package/dist/src/core/elements/Wrapper.js.map +1 -0
  198. package/dist/src/core/elements/Yield.d.ts +34 -0
  199. package/dist/src/core/elements/Yield.d.ts.map +1 -0
  200. package/dist/src/core/elements/Yield.js +56 -0
  201. package/dist/src/core/elements/Yield.js.map +1 -0
  202. package/dist/src/core/elements/helpers.d.ts +8 -0
  203. package/dist/src/core/elements/helpers.d.ts.map +1 -0
  204. package/dist/src/core/elements/helpers.js +40 -0
  205. package/dist/src/core/elements/helpers.js.map +1 -0
  206. package/dist/src/core/elements/index.d.ts +12 -0
  207. package/dist/src/core/elements/index.d.ts.map +1 -0
  208. package/dist/src/core/elements/index.js +12 -0
  209. package/dist/src/core/elements/index.js.map +1 -0
  210. package/dist/src/core/hellpers/ApiClient.d.ts +58 -0
  211. package/dist/src/core/hellpers/ApiClient.d.ts.map +1 -0
  212. package/dist/src/core/hellpers/ApiClient.js +122 -0
  213. package/dist/src/core/hellpers/ApiClient.js.map +1 -0
  214. package/dist/src/core/hellpers/app.d.ts +3 -0
  215. package/dist/src/core/hellpers/app.d.ts.map +1 -0
  216. package/dist/src/core/hellpers/app.js +53 -0
  217. package/dist/src/core/hellpers/app.js.map +1 -0
  218. package/dist/src/core/hellpers/utils.d.ts +26 -0
  219. package/dist/src/core/hellpers/utils.d.ts.map +1 -0
  220. package/dist/src/core/hellpers/utils.js +96 -0
  221. package/dist/src/core/hellpers/utils.js.map +1 -0
  222. package/dist/src/core/routers/Router.d.ts +212 -0
  223. package/dist/src/core/routers/Router.d.ts.map +1 -0
  224. package/dist/src/core/routers/Router.js +623 -0
  225. package/dist/src/core/routers/Router.js.map +1 -0
  226. package/dist/src/core/routers/index.d.ts +3 -0
  227. package/dist/src/core/routers/index.d.ts.map +1 -0
  228. package/dist/src/core/routers/index.js +2 -0
  229. package/dist/src/core/routers/index.js.map +1 -0
  230. package/dist/src/core/services/BlockManager.d.ts +63 -0
  231. package/dist/src/core/services/BlockManager.d.ts.map +1 -0
  232. package/dist/src/core/services/BlockManager.js +191 -0
  233. package/dist/src/core/services/BlockManager.js.map +1 -0
  234. package/dist/src/core/services/DomService.d.ts +9 -0
  235. package/dist/src/core/services/DomService.d.ts.map +1 -0
  236. package/dist/src/core/services/DomService.js +18 -0
  237. package/dist/src/core/services/DomService.js.map +1 -0
  238. package/dist/src/core/services/EventService.d.ts +58 -0
  239. package/dist/src/core/services/EventService.d.ts.map +1 -0
  240. package/dist/src/core/services/EventService.js +212 -0
  241. package/dist/src/core/services/EventService.js.map +1 -0
  242. package/dist/src/core/services/HelperService.d.ts +443 -0
  243. package/dist/src/core/services/HelperService.d.ts.map +1 -0
  244. package/dist/src/core/services/HelperService.js +1650 -0
  245. package/dist/src/core/services/HelperService.js.map +1 -0
  246. package/dist/src/core/services/HttpService.d.ts +63 -0
  247. package/dist/src/core/services/HttpService.d.ts.map +1 -0
  248. package/dist/src/core/services/HttpService.js +182 -0
  249. package/dist/src/core/services/HttpService.js.map +1 -0
  250. package/dist/src/core/services/LoggerService.d.ts +56 -0
  251. package/dist/src/core/services/LoggerService.d.ts.map +1 -0
  252. package/dist/src/core/services/LoggerService.js +94 -0
  253. package/dist/src/core/services/LoggerService.js.map +1 -0
  254. package/dist/src/core/services/MarkerRegistry.d.ts +94 -0
  255. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -0
  256. package/dist/src/core/services/MarkerRegistry.js +199 -0
  257. package/dist/src/core/services/MarkerRegistry.js.map +1 -0
  258. package/dist/src/core/services/MarkerService.d.ts +299 -0
  259. package/dist/src/core/services/MarkerService.d.ts.map +1 -0
  260. package/dist/src/core/services/MarkerService.js +723 -0
  261. package/dist/src/core/services/MarkerService.js.map +1 -0
  262. package/dist/src/core/services/StorageService.d.ts +69 -0
  263. package/dist/src/core/services/StorageService.d.ts.map +1 -0
  264. package/dist/src/core/services/StorageService.js +243 -0
  265. package/dist/src/core/services/StorageService.js.map +1 -0
  266. package/dist/src/core/services/StoreService.d.ts +80 -0
  267. package/dist/src/core/services/StoreService.d.ts.map +1 -0
  268. package/dist/src/core/services/StoreService.js +301 -0
  269. package/dist/src/core/services/StoreService.js.map +1 -0
  270. package/dist/src/core/services/index.d.ts +9 -0
  271. package/dist/src/core/services/index.d.ts.map +1 -0
  272. package/dist/src/core/services/index.js +9 -0
  273. package/dist/src/core/services/index.js.map +1 -0
  274. package/dist/src/core/types/utils.d.ts +29 -0
  275. package/dist/src/core/types/utils.d.ts.map +1 -0
  276. package/dist/src/core/types/utils.js +22 -0
  277. package/dist/src/core/types/utils.js.map +1 -0
  278. package/dist/src/core/view/LoopContext.d.ts +38 -0
  279. package/dist/src/core/view/LoopContext.d.ts.map +1 -0
  280. package/dist/src/core/view/LoopContext.js +100 -0
  281. package/dist/src/core/view/LoopContext.js.map +1 -0
  282. package/dist/src/core/view/Section.d.ts +41 -0
  283. package/dist/src/core/view/Section.d.ts.map +1 -0
  284. package/dist/src/core/view/Section.js +67 -0
  285. package/dist/src/core/view/Section.js.map +1 -0
  286. package/dist/src/core/view/View.d.ts +63 -0
  287. package/dist/src/core/view/View.d.ts.map +1 -0
  288. package/dist/src/core/view/View.js +85 -0
  289. package/dist/src/core/view/View.js.map +1 -0
  290. package/dist/src/core/view/ViewController.d.ts +277 -0
  291. package/dist/src/core/view/ViewController.d.ts.map +1 -0
  292. package/dist/src/core/view/ViewController.js +862 -0
  293. package/dist/src/core/view/ViewController.js.map +1 -0
  294. package/dist/src/core/view/ViewManager.d.ts +141 -0
  295. package/dist/src/core/view/ViewManager.d.ts.map +1 -0
  296. package/dist/src/core/view/ViewManager.js +565 -0
  297. package/dist/src/core/view/ViewManager.js.map +1 -0
  298. package/dist/src/core/view/ViewState.d.ts +117 -0
  299. package/dist/src/core/view/ViewState.d.ts.map +1 -0
  300. package/dist/src/core/view/ViewState.js +410 -0
  301. package/dist/src/core/view/ViewState.js.map +1 -0
  302. package/dist/src/core/view/index.d.ts +6 -0
  303. package/dist/src/core/view/index.d.ts.map +1 -0
  304. package/dist/src/core/view/index.js +6 -0
  305. package/dist/src/core/view/index.js.map +1 -0
  306. package/index.ts +62 -0
  307. package/package.json +70 -0
  308. package/plugins.ts +77 -0
  309. package/src/core/app/Application.ts +410 -0
  310. package/src/core/bootstrap/app.ts +58 -0
  311. package/src/core/bootstrap/providers/ApiServiceProvider.ts +18 -0
  312. package/src/core/bootstrap/providers/CoreServiceProvider.ts +19 -0
  313. package/src/core/bootstrap/providers/HelperServiceProvider.ts +12 -0
  314. package/src/core/bootstrap/providers/RouteServiceProvider.ts +17 -0
  315. package/src/core/bootstrap/providers/ServiceProvider.ts +51 -0
  316. package/src/core/bootstrap/providers/ViewServiceProvider.ts +17 -0
  317. package/src/core/bootstrap/providers/default-providers.ts +94 -0
  318. package/src/core/bootstrap/providers/index.ts +9 -0
  319. package/src/core/bootstrap/providers/provider-order.test.ts +67 -0
  320. package/src/core/bootstrap/providers/provider-order.ts +66 -0
  321. package/src/core/cache/ViewCache.ts +102 -0
  322. package/src/core/cache/index.ts +1 -0
  323. package/src/core/contracts/ApiInterface.ts +11 -0
  324. package/src/core/contracts/ApplicationInterface.ts +79 -0
  325. package/src/core/contracts/BlockInterface.ts +76 -0
  326. package/src/core/contracts/ComponentInterface.ts +26 -0
  327. package/src/core/contracts/ElementInterface.ts +140 -0
  328. package/src/core/contracts/EventServiceInterface.ts +47 -0
  329. package/src/core/contracts/HelperInterface.ts +256 -0
  330. package/src/core/contracts/HttpServiceInterface.ts +51 -0
  331. package/src/core/contracts/LoggerServiceInterface.ts +48 -0
  332. package/src/core/contracts/LoopContextInterface.ts +15 -0
  333. package/src/core/contracts/MarkerInterface.ts +77 -0
  334. package/src/core/contracts/ReactiveInterface.ts +45 -0
  335. package/src/core/contracts/RouterInterface.ts +65 -0
  336. package/src/core/contracts/ServiceProviderInterface.ts +12 -0
  337. package/src/core/contracts/StorageServiceInterface.ts +48 -0
  338. package/src/core/contracts/StoreServiceInterface.ts +50 -0
  339. package/src/core/contracts/ViewCacheInterface.ts +14 -0
  340. package/src/core/contracts/ViewControllerInterface.ts +135 -0
  341. package/src/core/contracts/ViewInterface.ts +31 -0
  342. package/src/core/contracts/ViewManagerInterface.ts +45 -0
  343. package/src/core/contracts/ViewStateInterface.ts +47 -0
  344. package/src/core/contracts/common.ts +27 -0
  345. package/src/core/contracts/utils.ts +23 -0
  346. package/src/core/contracts/views.ts +23 -0
  347. package/src/core/elements/Block.ts +113 -0
  348. package/src/core/elements/BlockOutlet.ts +83 -0
  349. package/src/core/elements/Component.ts +114 -0
  350. package/src/core/elements/ElementManager.ts +48 -0
  351. package/src/core/elements/Fragment.ts +168 -0
  352. package/src/core/elements/Html.ts +364 -0
  353. package/src/core/elements/Output.ts +167 -0
  354. package/src/core/elements/Reactive.ts +253 -0
  355. package/src/core/elements/TextElement.ts +110 -0
  356. package/src/core/elements/Wrapper.ts +131 -0
  357. package/src/core/elements/Yield.ts +70 -0
  358. package/src/core/elements/helpers.ts +56 -0
  359. package/src/core/elements/index.ts +26 -0
  360. package/src/core/hellpers/ApiClient.ts +145 -0
  361. package/src/core/hellpers/app.ts +57 -0
  362. package/src/core/hellpers/utils.ts +109 -0
  363. package/src/core/routers/Router.ts +765 -0
  364. package/src/core/routers/index.ts +2 -0
  365. package/src/core/services/BlockManager.ts +210 -0
  366. package/src/core/services/DomService.ts +26 -0
  367. package/src/core/services/EventService.ts +266 -0
  368. package/src/core/services/HelperService.ts +1653 -0
  369. package/src/core/services/HttpService.ts +235 -0
  370. package/src/core/services/LoggerService.ts +139 -0
  371. package/src/core/services/MarkerRegistry.ts +239 -0
  372. package/src/core/services/MarkerService.ts +923 -0
  373. package/src/core/services/StorageService.ts +268 -0
  374. package/src/core/services/StoreService.ts +338 -0
  375. package/src/core/services/index.ts +8 -0
  376. package/src/core/types/utils.ts +30 -0
  377. package/src/core/view/LoopContext.ts +109 -0
  378. package/src/core/view/Section.ts +86 -0
  379. package/src/core/view/View.ts +109 -0
  380. package/src/core/view/ViewController.ts +1002 -0
  381. package/src/core/view/ViewManager.ts +700 -0
  382. package/src/core/view/ViewState.ts +453 -0
  383. package/src/core/view/index.ts +5 -0
@@ -0,0 +1,94 @@
1
+ /**
2
+ * MarkerRegistry — singleton service that manages DOM comment marker metadata.
3
+ *
4
+ * In the new element-based system, Reactive/Block/Fragment all use
5
+ * comment nodes (<!--reactive-start-->, <!--block:content-end-->) as markers.
6
+ *
7
+ * MarkerRegistry provides:
8
+ * 1. Tag shortcuts: 'reactive' → 'r', 'block' → 'b', etc.
9
+ * → Keeps DOM comments short: <!--r:abc123--> instead of <!--reactive:abc123-->
10
+ * 2. Registry records: maps marker IDs to metadata (tag type, attributes, owner viewId, etc.)
11
+ * → Enables lookup: given a comment node, find what element/view it belongs to
12
+ * 3. Query API: find records by tag, by viewId, by custom attributes
13
+ *
14
+ * Used by:
15
+ * - Reactive, Block, Fragment — to register their markers on creation
16
+ * - ViewController — to query/manage markers for its view
17
+ * - Compiler — to know tag shortcut mappings for generated code
18
+ * - DevTools (future) — to inspect/debug the element tree via markers
19
+ */
20
+ import { MarkerRegistryRecord } from "../contracts/MarkerInterface";
21
+ export declare class MarkerRegistryService {
22
+ static class: string;
23
+ /** Tag name → short abbreviation (for compact DOM comments) */
24
+ private shortcuts;
25
+ /** Reverse lookup: shortcut → full tag name */
26
+ private reverseShortcuts;
27
+ /** All registered marker records, keyed by composite key (e.g. 'r:abc123') */
28
+ private records;
29
+ /** Delimiter between tag shortcut and ID in keys */
30
+ private delimiter;
31
+ /** Auto-increment counter for generating unique IDs */
32
+ private counter;
33
+ constructor();
34
+ /** Get short abbreviation for a tag name */
35
+ shortcut(tag: string): string;
36
+ /** Get full tag name from a shortcut */
37
+ fullTag(shortcut: string): string;
38
+ /** Register a custom tag shortcut */
39
+ registerShortcut(tag: string, short: string): void;
40
+ /**
41
+ * Register a marker record.
42
+ *
43
+ * @param tag Full tag name (e.g. 'reactive', 'block')
44
+ * @param id Optional specific ID. Auto-generated if omitted.
45
+ * @param attributes Optional metadata.
46
+ * @returns The composite key (e.g. 'r:m0')
47
+ */
48
+ register(tag: string, id?: string, attributes?: Record<string, any>): string;
49
+ /** Register + create the opening Comment node */
50
+ createMarkerStart(tag: string, id?: string): Comment;
51
+ createMarkerEnd(tag: string, id?: string): Comment;
52
+ /** Get a record by composite key (e.g. 'r:abc123') */
53
+ get(key: string): MarkerRegistryRecord | null;
54
+ /** Get a record by tag + id */
55
+ getByTagAndId(tag: string, id: string): MarkerRegistryRecord | null;
56
+ /** Check if a record exists */
57
+ has(key: string): boolean;
58
+ /** Remove a record */
59
+ remove(key: string): boolean;
60
+ /** Get all records for a specific tag type */
61
+ getByTag(tag: string): MarkerRegistryRecord[];
62
+ /** Get all records */
63
+ all(): Map<string, MarkerRegistryRecord>;
64
+ /** Clear all records */
65
+ clear(): void;
66
+ /** Total number of registered markers */
67
+ get size(): number;
68
+ /**
69
+ * Create a comment string for a marker (open).
70
+ * e.g. 'r:abc123' for <!--r:abc123-->
71
+ */
72
+ openComment(tag: string, id?: string): string;
73
+ /**
74
+ * Create a comment string for a closing marker.
75
+ * e.g. '/r:abc123' for <!--/r:abc123-->
76
+ */
77
+ closeComment(tag: string, id?: string): string;
78
+ /**
79
+ * Parse a comment node's text to extract tag and id.
80
+ * ' r:abc123 ' → { tag: 'reactive', id: 'abc123', isClose: false }
81
+ * ' /r:abc123 ' → { tag: 'reactive', id: 'abc123', isClose: true }
82
+ */
83
+ parseComment(text: string): {
84
+ tag: string;
85
+ id: string;
86
+ isClose: boolean;
87
+ } | null;
88
+ private makeKey;
89
+ private generateId;
90
+ private buildReverseShortcuts;
91
+ }
92
+ export declare const MarkerRegistry: MarkerRegistryService;
93
+ export default MarkerRegistry;
94
+ //# sourceMappingURL=MarkerRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkerRegistry.d.ts","sourceRoot":"","sources":["../../../../src/core/services/MarkerRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,qBAAa,qBAAqB;IAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,CAA2B;IAC/C,+DAA+D;IAC/D,OAAO,CAAC,SAAS,CAyBf;IAEF,+CAA+C;IAC/C,OAAO,CAAC,gBAAgB,CAA8B;IAEtD,8EAA8E;IAC9E,OAAO,CAAC,OAAO,CAAgD;IAE/D,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAAe;IAEhC,uDAAuD;IACvD,OAAO,CAAC,OAAO,CAAa;;IAQ5B,4CAA4C;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI7B,wCAAwC;IACxC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIjC,qCAAqC;IACrC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOlD;;;;;;;OAOG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,MAAM;IAmBhF,iDAAiD;IACjD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAIpD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAKlD,sDAAsD;IACtD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAI7C,+BAA+B;IAC/B,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI;IAInE,+BAA+B;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,sBAAsB;IACtB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAW7C,sBAAsB;IACtB,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIxC,wBAAwB;IACxB,KAAK,IAAI,IAAI;IAKb,yCAAyC;IACzC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI7C;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAsBhF,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,qBAAqB;CAMhC;AAID,eAAO,MAAM,cAAc,uBAA8B,CAAC;AAC1D,eAAe,cAAc,CAAC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * MarkerRegistry — singleton service that manages DOM comment marker metadata.
3
+ *
4
+ * In the new element-based system, Reactive/Block/Fragment all use
5
+ * comment nodes (<!--reactive-start-->, <!--block:content-end-->) as markers.
6
+ *
7
+ * MarkerRegistry provides:
8
+ * 1. Tag shortcuts: 'reactive' → 'r', 'block' → 'b', etc.
9
+ * → Keeps DOM comments short: <!--r:abc123--> instead of <!--reactive:abc123-->
10
+ * 2. Registry records: maps marker IDs to metadata (tag type, attributes, owner viewId, etc.)
11
+ * → Enables lookup: given a comment node, find what element/view it belongs to
12
+ * 3. Query API: find records by tag, by viewId, by custom attributes
13
+ *
14
+ * Used by:
15
+ * - Reactive, Block, Fragment — to register their markers on creation
16
+ * - ViewController — to query/manage markers for its view
17
+ * - Compiler — to know tag shortcut mappings for generated code
18
+ * - DevTools (future) — to inspect/debug the element tree via markers
19
+ */
20
+ export class MarkerRegistryService {
21
+ constructor() {
22
+ /** Tag name → short abbreviation (for compact DOM comments) */
23
+ this.shortcuts = {
24
+ view: 'v',
25
+ component: 'c',
26
+ layout: 'l',
27
+ template: 't',
28
+ block: 'b',
29
+ reactive: 'r',
30
+ section: 's',
31
+ fragment: 'frg',
32
+ blockoutlet: 'bo',
33
+ for: 'fo',
34
+ forin: 'fi',
35
+ foreach: 'fe',
36
+ while: 'wh',
37
+ if: 'if',
38
+ switch: 'sw',
39
+ include: 'inc',
40
+ echo: 'e',
41
+ echoescaped: 'ee',
42
+ yield: 'y',
43
+ slot: 'st',
44
+ useblock: 'ub',
45
+ extend: 'ex',
46
+ style: 'sty',
47
+ script: 'sc',
48
+ };
49
+ /** Reverse lookup: shortcut → full tag name */
50
+ this.reverseShortcuts = {};
51
+ /** All registered marker records, keyed by composite key (e.g. 'r:abc123') */
52
+ this.records = new Map();
53
+ /** Delimiter between tag shortcut and ID in keys */
54
+ this.delimiter = ':';
55
+ /** Auto-increment counter for generating unique IDs */
56
+ this.counter = 0;
57
+ this.buildReverseShortcuts();
58
+ }
59
+ // ─── Tag Shortcuts ──────────────────────────────────────────
60
+ /** Get short abbreviation for a tag name */
61
+ shortcut(tag) {
62
+ return this.shortcuts[tag] ?? tag;
63
+ }
64
+ /** Get full tag name from a shortcut */
65
+ fullTag(shortcut) {
66
+ return this.reverseShortcuts[shortcut] ?? shortcut;
67
+ }
68
+ /** Register a custom tag shortcut */
69
+ registerShortcut(tag, short) {
70
+ this.shortcuts[tag] = short;
71
+ this.reverseShortcuts[short] = tag;
72
+ }
73
+ // ─── Record Management ──────────────────────────────────────
74
+ /**
75
+ * Register a marker record.
76
+ *
77
+ * @param tag Full tag name (e.g. 'reactive', 'block')
78
+ * @param id Optional specific ID. Auto-generated if omitted.
79
+ * @param attributes Optional metadata.
80
+ * @returns The composite key (e.g. 'r:m0')
81
+ */
82
+ register(tag, id, attributes = {}) {
83
+ const resolvedId = id ?? this.generateId();
84
+ const key = this.makeKey(tag, resolvedId);
85
+ const existing = this.records.get(key);
86
+ if (existing) {
87
+ existing.attributes = { ...existing.attributes, ...attributes };
88
+ return key;
89
+ }
90
+ this.records.set(key, {
91
+ tag,
92
+ registryID: resolvedId,
93
+ attributes,
94
+ });
95
+ return key;
96
+ }
97
+ /** Register + create the opening Comment node */
98
+ createMarkerStart(tag, id) {
99
+ return document.createComment(this.openComment(tag, id ?? ''));
100
+ }
101
+ createMarkerEnd(tag, id) {
102
+ return document.createComment(this.closeComment(tag, id));
103
+ }
104
+ /** Get a record by composite key (e.g. 'r:abc123') */
105
+ get(key) {
106
+ return this.records.get(key) ?? null;
107
+ }
108
+ /** Get a record by tag + id */
109
+ getByTagAndId(tag, id) {
110
+ return this.records.get(this.makeKey(tag, id)) ?? null;
111
+ }
112
+ /** Check if a record exists */
113
+ has(key) {
114
+ return this.records.has(key);
115
+ }
116
+ /** Remove a record */
117
+ remove(key) {
118
+ return this.records.delete(key);
119
+ }
120
+ /** Get all records for a specific tag type */
121
+ getByTag(tag) {
122
+ const short = this.shortcut(tag);
123
+ const results = [];
124
+ for (const [key, record] of this.records) {
125
+ if (key.startsWith(short + this.delimiter) || record.tag === tag) {
126
+ results.push(record);
127
+ }
128
+ }
129
+ return results;
130
+ }
131
+ /** Get all records */
132
+ all() {
133
+ return this.records;
134
+ }
135
+ /** Clear all records */
136
+ clear() {
137
+ this.records.clear();
138
+ this.counter = 0;
139
+ }
140
+ /** Total number of registered markers */
141
+ get size() {
142
+ return this.records.size;
143
+ }
144
+ // ─── Comment Node Helpers ───────────────────────────────────
145
+ /**
146
+ * Create a comment string for a marker (open).
147
+ * e.g. 'r:abc123' for <!--r:abc123-->
148
+ */
149
+ openComment(tag, id) {
150
+ return `${this.shortcut(tag)}${id ? this.delimiter + id : ''}`;
151
+ }
152
+ /**
153
+ * Create a comment string for a closing marker.
154
+ * e.g. '/r:abc123' for <!--/r:abc123-->
155
+ */
156
+ closeComment(tag, id) {
157
+ return `/${this.shortcut(tag)}${id ? this.delimiter + id : ''}`;
158
+ }
159
+ /**
160
+ * Parse a comment node's text to extract tag and id.
161
+ * ' r:abc123 ' → { tag: 'reactive', id: 'abc123', isClose: false }
162
+ * ' /r:abc123 ' → { tag: 'reactive', id: 'abc123', isClose: true }
163
+ */
164
+ parseComment(text) {
165
+ const trimmed = text.trim();
166
+ if (!trimmed)
167
+ return null;
168
+ const isClose = trimmed.startsWith('/');
169
+ const content = isClose ? trimmed.slice(1) : trimmed;
170
+ const delimIdx = content.indexOf(this.delimiter);
171
+ if (delimIdx === -1)
172
+ return null;
173
+ const shortTag = content.slice(0, delimIdx);
174
+ const id = content.slice(delimIdx + 1);
175
+ return {
176
+ tag: this.fullTag(shortTag),
177
+ id,
178
+ isClose,
179
+ };
180
+ }
181
+ // ─── Private ────────────────────────────────────────────────
182
+ makeKey(tag, id) {
183
+ return `${this.shortcut(tag)}${id ? this.delimiter + id : ''}`;
184
+ }
185
+ generateId() {
186
+ return `m${(this.counter++).toString(36)}`;
187
+ }
188
+ buildReverseShortcuts() {
189
+ this.reverseShortcuts = {};
190
+ for (const [tag, short] of Object.entries(this.shortcuts)) {
191
+ this.reverseShortcuts[short] = tag;
192
+ }
193
+ }
194
+ }
195
+ MarkerRegistryService.class = 'MarkerRegistryService';
196
+ // ─── Singleton ──────────────────────────────────────────────────
197
+ export const MarkerRegistry = new MarkerRegistryService();
198
+ export default MarkerRegistry;
199
+ //# sourceMappingURL=MarkerRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkerRegistry.js","sourceRoot":"","sources":["../../../../src/core/services/MarkerRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,299 @@
1
+ import { MarkerFilter, MarkerRecord, RegistryIDOrAttributes } from "../contracts/MarkerInterface";
2
+ /**
3
+ * OneMarker Model - Represents a custom marker element
4
+ * Supports both:
5
+ * - Generic markup: <tag>...</tag> or <!--tag-->...<!--/tag-->
6
+ * - Registry tags: <!--o:r:id-->...<!--/o:r:id-->
7
+ */
8
+ export declare class MarkerModel {
9
+ private __openTag;
10
+ private __closeTag;
11
+ private __attributes;
12
+ private __nodes;
13
+ private __definedAttributes;
14
+ private __tagName;
15
+ private __fullName;
16
+ private __registryID?;
17
+ private __systemPrefix?;
18
+ private __tag?;
19
+ private __id?;
20
+ private __key?;
21
+ constructor(data: MarkerRecord);
22
+ /**
23
+ * Update model data
24
+ */
25
+ __update(data: Record<string, any>): this;
26
+ /**
27
+ * Define dynamic property accessors for attributes
28
+ * @private
29
+ */
30
+ private __defineAttributes;
31
+ /**
32
+ * Define single attribute accessor
33
+ * @private
34
+ */
35
+ private __defineAttribute;
36
+ /**
37
+ * Get tag name (without namespace)
38
+ */
39
+ get tagName(): string;
40
+ /**
41
+ * Get full name (with namespace)
42
+ */
43
+ get fullName(): string;
44
+ get registryID(): string | undefined | null;
45
+ /**
46
+ * Get open tag node
47
+ */
48
+ get openTag(): Comment;
49
+ /**
50
+ * Get close tag node
51
+ */
52
+ get closeTag(): Comment;
53
+ /**
54
+ * Get all attributes
55
+ */
56
+ get attributes(): Record<string, any>;
57
+ /**
58
+ * Get nodes between open and close tags
59
+ */
60
+ get nodes(): Array<Node>;
61
+ /**
62
+ * Get system prefix (registry tags only)
63
+ */
64
+ get systemPrefix(): string | undefined;
65
+ /**
66
+ * Get tag (registry tags only)
67
+ */
68
+ get tag(): string | undefined;
69
+ /**
70
+ * Get ID (registry tags only)
71
+ */
72
+ get id(): string | undefined;
73
+ /**
74
+ * Get full key (registry tags only)
75
+ */
76
+ get key(): string | undefined;
77
+ /**
78
+ * Get full data (registry tags only)
79
+ */
80
+ get data(): Record<string, any> | undefined;
81
+ /**
82
+ * Get outer HTML including open/close tags and content
83
+ */
84
+ get outerHTML(): string;
85
+ /**
86
+ * Get inner HTML (content only, without open/close tags)
87
+ */
88
+ get innerHTML(): string;
89
+ /**
90
+ * Get HTML representation of a node
91
+ * @private
92
+ */
93
+ private __getNodeHTML;
94
+ /**
95
+ * Get attribute value
96
+ */
97
+ getAttribute(name: string): string | undefined;
98
+ /**
99
+ * Set attribute value
100
+ */
101
+ setAttribute(name: string, value: string): this;
102
+ /**
103
+ * Check if model matches query attributes
104
+ * @private
105
+ */
106
+ __match(attributes: Record<string, any>): boolean;
107
+ /**
108
+ * Check if model matches given attributes (for registry tag filtering)
109
+ */
110
+ matchesAttributes(attributes: Record<string, any>): boolean;
111
+ /**
112
+ * Set attributes from registry
113
+ */
114
+ setAttributes(attributes: Record<string, any>): this;
115
+ /**
116
+ * Scan and update nodes between open/close tags
117
+ */
118
+ __scan(): Array<Node>;
119
+ /**
120
+ * Sync with DOM (re-query and update)
121
+ */
122
+ __sync(): boolean;
123
+ /**
124
+ * Update nodes array
125
+ */
126
+ updateNodes(nodes: Array<Node>): this;
127
+ /**
128
+ * Replace content between open and close tags
129
+ */
130
+ replaceContent(content: string | Node | Array<Node>): this;
131
+ /**
132
+ * Remove element and its content from DOM
133
+ */
134
+ remove(): void;
135
+ }
136
+ /**
137
+ * OneMarkerCollection - Collection of OneMarkerModel instances
138
+ * Provides array-like operations with type safety
139
+ */
140
+ export declare class MarkerCollection {
141
+ private __models;
142
+ constructor(elements?: Array<MarkerModel | MarkerRecord>);
143
+ get models(): MarkerModel[];
144
+ get length(): number;
145
+ /**
146
+ * Get the first model in the collection
147
+ */
148
+ get first(): MarkerModel | undefined;
149
+ /**
150
+ * Get the last model in the collection
151
+ */
152
+ get last(): MarkerModel | undefined;
153
+ /**
154
+ * Get the model at the given index
155
+ */
156
+ get(index: number): MarkerModel | undefined;
157
+ /**
158
+ * Set the model at the given index
159
+ */
160
+ set(index: number, model: MarkerModel): this;
161
+ push(model: MarkerModel | MarkerRecord): this;
162
+ pop(): MarkerModel | undefined;
163
+ shift(): MarkerModel | undefined;
164
+ unshift(model: MarkerModel | MarkerRecord): this;
165
+ splice(start: number, deleteCount: number, ...items: MarkerModel[]): MarkerModel[];
166
+ slice(start?: number, end?: number): MarkerModel[];
167
+ concat(models: MarkerCollection | MarkerModel[]): MarkerCollection;
168
+ reverse(): MarkerCollection;
169
+ map<T>(callback: (model: MarkerModel, index: number, array: MarkerModel[]) => T): T[];
170
+ filter(callback: (model: MarkerModel, index: number, array: MarkerModel[]) => boolean): MarkerModel[];
171
+ reduce<T>(callback: (accumulator: T, model: MarkerModel, index: number, array: MarkerModel[]) => T, initialValue: T): T;
172
+ forEach(callback: (model: MarkerModel, index: number, array: MarkerModel[]) => void): void;
173
+ some(callback: (model: MarkerModel, index: number, array: MarkerModel[]) => boolean): boolean;
174
+ every(callback: (model: MarkerModel, index: number, array: MarkerModel[]) => boolean): boolean;
175
+ /**
176
+ * Query the collection by attributes
177
+ */
178
+ query(attributes?: Record<string, any>): MarkerModel[];
179
+ /**
180
+ * Find first model matching attributes
181
+ */
182
+ find(attributes?: Record<string, any>): MarkerModel | null;
183
+ }
184
+ /**
185
+ * Marker Service - Manages custom markup elements
186
+ * Supports both HydrationMarker (comments)
187
+ */
188
+ export declare class MarkerService {
189
+ static class: string;
190
+ private prefix;
191
+ private delimiter;
192
+ private closeTagSuffix;
193
+ private rootElement;
194
+ private markerRegistry;
195
+ private walker;
196
+ constructor(rootElement?: Element);
197
+ refreshWalker(): this;
198
+ addRegistry(tag: string, id?: string, attributes?: Record<string, any>): string;
199
+ resolveTagName(tagShortcut: string): string;
200
+ getShortcut(tagName: string): string;
201
+ /**
202
+ * Check if registryIDOrAttributes is a registryID (string) or attributes (object)
203
+ */
204
+ private parseRegistryIDOrAttributes;
205
+ /**
206
+ * Get attributes from MarkerRegistry if registryID provided
207
+ */
208
+ private getAttributesFromRegistry;
209
+ /**
210
+ * Check if attributes match filter
211
+ */
212
+ private attributesMatch;
213
+ createMarker(tag: string, id?: string, attributes?: Record<string, any>): MarkerModel;
214
+ createOpenMarker(tag: string, id?: string): Comment;
215
+ createCloseMarker(tag: string, id?: string): Comment;
216
+ /**
217
+ * Query hydration markers in HTML comments
218
+ * Works with format: <!--prefix:shortcutTag:registryID-->
219
+ *
220
+ * @param tagOrShortcut - Tag name or shortcut (r, v, c, etc.)
221
+ * @param where - Registry ID (string) or attributes filter (object)
222
+ * @returns Array of matched markers
223
+ *
224
+ * @example
225
+ * query("r", "1234") // Find o:r:1234
226
+ * query("reactive", "1234") // Find o:r:1234 (resolved from shortcut)
227
+ * query("r", { userId: "123" }) // Find o:r:* with userId="123"
228
+ */
229
+ query(tagOrShortcut: string, where?: MarkerFilter, useCache?: boolean): MarkerRecord[];
230
+ /**
231
+ * Find multiple hydration markers by tag and optional ID/attributes
232
+ * Flexible API supporting multiple query styles
233
+ *
234
+ * @param tagOrShortcut - Tag name or shortcut (r, v, c, etc.)
235
+ * @param registryIDOrAttributes - Optional registry ID (string) or attributes filter (object)
236
+ * @returns Array of all matched markers
237
+ *
238
+ * @example
239
+ * find("r") // All o:r:*
240
+ * find("reactive") // All o:r:* (resolved from shortcut)
241
+ * find("r", "1234") // All o:r:1234 (usually one)
242
+ * find("r", { userId: "123" }) // All o:r:* with userId="123"
243
+ */
244
+ find(tagOrShortcut: string, where?: RegistryIDOrAttributes, useCache?: boolean): MarkerCollection;
245
+ getResults(tagOrShortcut: string, where?: RegistryIDOrAttributes, index?: number, length?: number, useCache?: boolean): MarkerRecord[];
246
+ /**
247
+ * Get hydration markers with index and length support
248
+ *
249
+ * @param tagOrShortcut - Tag name or shortcut
250
+ * @param where - Registry ID or attributes filter
251
+ * @param index - Start position (default 0): >= 0 positive, < 0 negative from end
252
+ * @param length - Number to return (default 0 = all): > 0 returns exactly that many
253
+ * @returns Array of matched markers
254
+ *
255
+ * @example
256
+ * get("r", "1234") // All o:r:1234
257
+ * get("r", "1234", 1) // From index 1
258
+ * get("r", "1234", 0, 2) // First 2 items
259
+ * get("r", {}, -1) // Last item
260
+ */
261
+ get(tagOrShortcut: string, where?: RegistryIDOrAttributes, index?: number, length?: number, useCache?: boolean): MarkerCollection;
262
+ /**
263
+ * Get first matching hydration marker
264
+ *
265
+ * @param tagOrShortcut - Tag name or shortcut
266
+ * @param where - Registry ID or attributes filter
267
+ * @returns First matched marker or null
268
+ */
269
+ first(tagOrShortcut: string, where?: RegistryIDOrAttributes, useCache?: boolean): MarkerModel | null;
270
+ /**
271
+ * Get last matching hydration marker
272
+ *
273
+ * @param tagOrShortcut - Tag name or shortcut
274
+ * @param where - Registry ID or attributes filter
275
+ * @returns Last matched marker or null
276
+ */
277
+ last(tagOrShortcut: string, where?: RegistryIDOrAttributes, useCache?: boolean): MarkerModel | null;
278
+ /**
279
+ * Get exactly one matching hydration marker
280
+ * Throws error if not found or multiple matches found
281
+ *
282
+ * @param tagOrShortcut - Tag name or shortcut
283
+ * @param where - Registry ID or attributes filter
284
+ * @param index - Start position (default 0)
285
+ * @returns Exactly one matched marker
286
+ * @throws Error if no match or multiple matches
287
+ */
288
+ once(tagOrShortcut: string, where?: RegistryIDOrAttributes, index?: number, useCache?: boolean): MarkerModel | null;
289
+ /**
290
+ * Create MarkerCollection from query results
291
+ */
292
+ collect(models: MarkerRecord[]): MarkerCollection;
293
+ /**
294
+ * Convert raw tag to MarkerModel
295
+ */
296
+ toModel(tag: MarkerRecord): MarkerModel;
297
+ }
298
+ export declare const OneMarker: MarkerService;
299
+ //# sourceMappingURL=MarkerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkerService.d.ts","sourceRoot":"","sources":["../../../../src/core/services/MarkerService.ts"],"names":[],"mappings":"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"}