@saolabs/client 1.0.0 → 1.1.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 +52 -195
  2. package/dist/index.d.ts +20 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +14 -3
  5. package/dist/index.js.map +1 -1
  6. package/dist/plugins.d.ts +2 -2
  7. package/dist/plugins.js +2 -2
  8. package/dist/src/core/app/Application.d.ts +25 -15
  9. package/dist/src/core/app/Application.d.ts.map +1 -1
  10. package/dist/src/core/app/Application.js +55 -18
  11. package/dist/src/core/app/Application.js.map +1 -1
  12. package/dist/src/core/bootstrap/app.d.ts +1 -1
  13. package/dist/src/core/bootstrap/app.d.ts.map +1 -1
  14. package/dist/src/core/bootstrap/app.js +77 -4
  15. package/dist/src/core/bootstrap/app.js.map +1 -1
  16. package/dist/src/core/bootstrap/bundle.d.ts +41 -0
  17. package/dist/src/core/bootstrap/bundle.d.ts.map +1 -0
  18. package/dist/src/core/bootstrap/bundle.js +98 -0
  19. package/dist/src/core/bootstrap/bundle.js.map +1 -0
  20. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts +1 -1
  21. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts.map +1 -1
  22. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js +3 -3
  23. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js.map +1 -1
  24. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts +1 -1
  25. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts.map +1 -1
  26. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js +11 -8
  27. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js.map +1 -1
  28. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts +3 -1
  29. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts.map +1 -1
  30. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js +8 -3
  31. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js.map +1 -1
  32. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts +2 -1
  33. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts.map +1 -1
  34. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js +14 -4
  35. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js.map +1 -1
  36. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts +4 -4
  37. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts.map +1 -1
  38. package/dist/src/core/bootstrap/providers/ServiceProvider.js +5 -5
  39. package/dist/src/core/bootstrap/providers/ServiceProvider.js.map +1 -1
  40. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts +1 -1
  41. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts.map +1 -1
  42. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js +3 -3
  43. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js.map +1 -1
  44. package/dist/src/core/bootstrap/providers/default-providers.d.ts +1 -1
  45. package/dist/src/core/bootstrap/providers/default-providers.d.ts.map +1 -1
  46. package/dist/src/core/bootstrap/providers/default-providers.js +44 -11
  47. package/dist/src/core/bootstrap/providers/default-providers.js.map +1 -1
  48. package/dist/src/core/bootstrap/providers/index.d.ts +9 -9
  49. package/dist/src/core/bootstrap/providers/index.d.ts.map +1 -1
  50. package/dist/src/core/bootstrap/providers/index.js +8 -8
  51. package/dist/src/core/bootstrap/providers/index.js.map +1 -1
  52. package/dist/src/core/bootstrap/providers/provider-order.d.ts +1 -1
  53. package/dist/src/core/bootstrap/providers/provider-order.d.ts.map +1 -1
  54. package/dist/src/core/bootstrap/ssr.d.ts +47 -0
  55. package/dist/src/core/bootstrap/ssr.d.ts.map +1 -0
  56. package/dist/src/core/bootstrap/ssr.js +129 -0
  57. package/dist/src/core/bootstrap/ssr.js.map +1 -0
  58. package/dist/src/core/cache/ViewCache.d.ts +1 -1
  59. package/dist/src/core/cache/ViewCache.d.ts.map +1 -1
  60. package/dist/src/core/cache/index.d.ts +1 -1
  61. package/dist/src/core/cache/index.d.ts.map +1 -1
  62. package/dist/src/core/cache/index.js +1 -1
  63. package/dist/src/core/cache/index.js.map +1 -1
  64. package/dist/src/core/contracts/ApplicationInterface.d.ts +15 -11
  65. package/dist/src/core/contracts/ApplicationInterface.d.ts.map +1 -1
  66. package/dist/src/core/contracts/BlockInterface.d.ts +10 -10
  67. package/dist/src/core/contracts/BlockInterface.d.ts.map +1 -1
  68. package/dist/src/core/contracts/BundleInterface.d.ts +38 -0
  69. package/dist/src/core/contracts/BundleInterface.d.ts.map +1 -0
  70. package/dist/src/core/contracts/BundleInterface.js +2 -0
  71. package/dist/src/core/contracts/BundleInterface.js.map +1 -0
  72. package/dist/src/core/contracts/ComponentInterface.d.ts +7 -6
  73. package/dist/src/core/contracts/ComponentInterface.d.ts.map +1 -1
  74. package/dist/src/core/contracts/ElementInterface.d.ts +91 -27
  75. package/dist/src/core/contracts/ElementInterface.d.ts.map +1 -1
  76. package/dist/src/core/contracts/HeadServiceInterface.d.ts +37 -0
  77. package/dist/src/core/contracts/HeadServiceInterface.d.ts.map +1 -0
  78. package/dist/src/core/contracts/HeadServiceInterface.js +3 -0
  79. package/dist/src/core/contracts/HeadServiceInterface.js.map +1 -0
  80. package/dist/src/core/contracts/HelperInterface.d.ts +9 -1
  81. package/dist/src/core/contracts/HelperInterface.d.ts.map +1 -1
  82. package/dist/src/core/contracts/HttpServiceInterface.d.ts +3 -0
  83. package/dist/src/core/contracts/HttpServiceInterface.d.ts.map +1 -1
  84. package/dist/src/core/contracts/MarkerInterface.d.ts +29 -44
  85. package/dist/src/core/contracts/MarkerInterface.d.ts.map +1 -1
  86. package/dist/src/core/contracts/ReactiveInterface.d.ts +9 -9
  87. package/dist/src/core/contracts/ReactiveInterface.d.ts.map +1 -1
  88. package/dist/src/core/contracts/RouterInterface.d.ts +5 -2
  89. package/dist/src/core/contracts/RouterInterface.d.ts.map +1 -1
  90. package/dist/src/core/contracts/SectionInterface.d.ts +48 -0
  91. package/dist/src/core/contracts/SectionInterface.d.ts.map +1 -0
  92. package/dist/src/core/contracts/SectionInterface.js +2 -0
  93. package/dist/src/core/contracts/SectionInterface.js.map +1 -0
  94. package/dist/src/core/contracts/ServiceProviderInterface.d.ts +3 -3
  95. package/dist/src/core/contracts/ServiceProviderInterface.d.ts.map +1 -1
  96. package/dist/src/core/contracts/ViewControllerInterface.d.ts +116 -15
  97. package/dist/src/core/contracts/ViewControllerInterface.d.ts.map +1 -1
  98. package/dist/src/core/contracts/ViewInterface.d.ts +31 -5
  99. package/dist/src/core/contracts/ViewInterface.d.ts.map +1 -1
  100. package/dist/src/core/contracts/ViewManagerInterface.d.ts +47 -5
  101. package/dist/src/core/contracts/ViewManagerInterface.d.ts.map +1 -1
  102. package/dist/src/core/contracts/ViewStateInterface.d.ts +39 -2
  103. package/dist/src/core/contracts/ViewStateInterface.d.ts.map +1 -1
  104. package/dist/src/core/contracts/common.d.ts +3 -3
  105. package/dist/src/core/contracts/common.js +3 -3
  106. package/dist/src/core/contracts/utils.d.ts +19 -19
  107. package/dist/src/core/contracts/utils.d.ts.map +1 -1
  108. package/dist/src/core/contracts/views.d.ts +1 -22
  109. package/dist/src/core/contracts/views.d.ts.map +1 -1
  110. package/dist/src/core/devtools/hook.d.ts +66 -0
  111. package/dist/src/core/devtools/hook.d.ts.map +1 -0
  112. package/dist/src/core/devtools/hook.js +114 -0
  113. package/dist/src/core/devtools/hook.js.map +1 -0
  114. package/dist/src/core/devtools/index.d.ts +34 -0
  115. package/dist/src/core/devtools/index.d.ts.map +1 -0
  116. package/dist/src/core/devtools/index.js +33 -0
  117. package/dist/src/core/devtools/index.js.map +1 -0
  118. package/dist/src/core/devtools/inspector.d.ts +31 -0
  119. package/dist/src/core/devtools/inspector.d.ts.map +1 -0
  120. package/dist/src/core/devtools/inspector.js +249 -0
  121. package/dist/src/core/devtools/inspector.js.map +1 -0
  122. package/dist/src/core/elements/Block.d.ts +9 -7
  123. package/dist/src/core/elements/Block.d.ts.map +1 -1
  124. package/dist/src/core/elements/Block.js +33 -9
  125. package/dist/src/core/elements/Block.js.map +1 -1
  126. package/dist/src/core/elements/BlockOutlet.d.ts +19 -8
  127. package/dist/src/core/elements/BlockOutlet.d.ts.map +1 -1
  128. package/dist/src/core/elements/BlockOutlet.js +57 -13
  129. package/dist/src/core/elements/BlockOutlet.js.map +1 -1
  130. package/dist/src/core/elements/Component.d.ts +83 -11
  131. package/dist/src/core/elements/Component.d.ts.map +1 -1
  132. package/dist/src/core/elements/Component.js +334 -13
  133. package/dist/src/core/elements/Component.js.map +1 -1
  134. package/dist/src/core/elements/ForeachSlotCache.d.ts +95 -0
  135. package/dist/src/core/elements/ForeachSlotCache.d.ts.map +1 -0
  136. package/dist/src/core/elements/ForeachSlotCache.js +149 -0
  137. package/dist/src/core/elements/ForeachSlotCache.js.map +1 -0
  138. package/dist/src/core/elements/Fragment.d.ts +19 -13
  139. package/dist/src/core/elements/Fragment.d.ts.map +1 -1
  140. package/dist/src/core/elements/Fragment.js +43 -20
  141. package/dist/src/core/elements/Fragment.js.map +1 -1
  142. package/dist/src/core/elements/Html.d.ts +89 -12
  143. package/dist/src/core/elements/Html.d.ts.map +1 -1
  144. package/dist/src/core/elements/Html.js +707 -106
  145. package/dist/src/core/elements/Html.js.map +1 -1
  146. package/dist/src/core/elements/Output.d.ts +34 -10
  147. package/dist/src/core/elements/Output.d.ts.map +1 -1
  148. package/dist/src/core/elements/Output.js +141 -26
  149. package/dist/src/core/elements/Output.js.map +1 -1
  150. package/dist/src/core/elements/Reactive.d.ts +85 -14
  151. package/dist/src/core/elements/Reactive.d.ts.map +1 -1
  152. package/dist/src/core/elements/Reactive.js +315 -41
  153. package/dist/src/core/elements/Reactive.js.map +1 -1
  154. package/dist/src/core/elements/TextElement.d.ts +11 -7
  155. package/dist/src/core/elements/TextElement.d.ts.map +1 -1
  156. package/dist/src/core/elements/TextElement.js +18 -11
  157. package/dist/src/core/elements/TextElement.js.map +1 -1
  158. package/dist/src/core/elements/Wrapper.d.ts +24 -13
  159. package/dist/src/core/elements/Wrapper.d.ts.map +1 -1
  160. package/dist/src/core/elements/Wrapper.js +65 -8
  161. package/dist/src/core/elements/Wrapper.js.map +1 -1
  162. package/dist/src/core/elements/Yield.d.ts +10 -9
  163. package/dist/src/core/elements/Yield.d.ts.map +1 -1
  164. package/dist/src/core/elements/Yield.js +31 -19
  165. package/dist/src/core/elements/Yield.js.map +1 -1
  166. package/dist/src/core/elements/helpers.d.ts +7 -7
  167. package/dist/src/core/elements/helpers.d.ts.map +1 -1
  168. package/dist/src/core/elements/helpers.js +4 -4
  169. package/dist/src/core/elements/index.d.ts +12 -11
  170. package/dist/src/core/elements/index.d.ts.map +1 -1
  171. package/dist/src/core/elements/index.js +12 -11
  172. package/dist/src/core/elements/index.js.map +1 -1
  173. package/dist/src/core/elements/reconcileChildren.d.ts +7 -0
  174. package/dist/src/core/elements/reconcileChildren.d.ts.map +1 -0
  175. package/dist/src/core/elements/reconcileChildren.js +74 -0
  176. package/dist/src/core/elements/reconcileChildren.js.map +1 -0
  177. package/dist/src/core/helpers/ApiClient.d.ts.map +1 -0
  178. package/dist/src/core/{hellpers → helpers}/ApiClient.js +10 -1
  179. package/dist/src/core/helpers/ApiClient.js.map +1 -0
  180. package/dist/src/core/helpers/app.d.ts +3 -0
  181. package/dist/src/core/helpers/app.d.ts.map +1 -0
  182. package/dist/src/core/{hellpers → helpers}/app.js +11 -1
  183. package/dist/src/core/helpers/app.js.map +1 -0
  184. package/dist/src/core/helpers/transition.d.ts +34 -0
  185. package/dist/src/core/helpers/transition.d.ts.map +1 -0
  186. package/dist/src/core/helpers/transition.js +118 -0
  187. package/dist/src/core/helpers/transition.js.map +1 -0
  188. package/dist/src/core/{hellpers → helpers}/utils.d.ts +2 -2
  189. package/dist/src/core/helpers/utils.d.ts.map +1 -0
  190. package/dist/src/core/{hellpers → helpers}/utils.js +4 -4
  191. package/dist/src/core/helpers/utils.js.map +1 -0
  192. package/dist/src/core/helpers/view.d.ts +39 -0
  193. package/dist/src/core/helpers/view.d.ts.map +1 -0
  194. package/dist/src/core/helpers/view.js +286 -0
  195. package/dist/src/core/helpers/view.js.map +1 -0
  196. package/dist/src/core/routers/Router.d.ts +108 -7
  197. package/dist/src/core/routers/Router.d.ts.map +1 -1
  198. package/dist/src/core/routers/Router.js +444 -68
  199. package/dist/src/core/routers/Router.js.map +1 -1
  200. package/dist/src/core/routers/index.d.ts +2 -2
  201. package/dist/src/core/routers/index.d.ts.map +1 -1
  202. package/dist/src/core/routers/index.js +1 -1
  203. package/dist/src/core/routers/index.js.map +1 -1
  204. package/dist/src/core/services/AssetManager.d.ts +112 -0
  205. package/dist/src/core/services/AssetManager.d.ts.map +1 -0
  206. package/dist/src/core/services/AssetManager.js +361 -0
  207. package/dist/src/core/services/AssetManager.js.map +1 -0
  208. package/dist/src/core/services/BlockManager.d.ts +73 -2
  209. package/dist/src/core/services/BlockManager.d.ts.map +1 -1
  210. package/dist/src/core/services/BlockManager.js +270 -48
  211. package/dist/src/core/services/BlockManager.js.map +1 -1
  212. package/dist/src/core/services/DomService.js +3 -3
  213. package/dist/src/core/services/DomService.js.map +1 -1
  214. package/dist/src/core/services/HeadService.d.ts +24 -0
  215. package/dist/src/core/services/HeadService.d.ts.map +1 -0
  216. package/dist/src/core/services/HeadService.js +120 -0
  217. package/dist/src/core/services/HeadService.js.map +1 -0
  218. package/dist/src/core/services/HelperService.d.ts +14 -3
  219. package/dist/src/core/services/HelperService.d.ts.map +1 -1
  220. package/dist/src/core/services/HelperService.js +32 -2
  221. package/dist/src/core/services/HelperService.js.map +1 -1
  222. package/dist/src/core/services/HttpService.d.ts +8 -0
  223. package/dist/src/core/services/HttpService.d.ts.map +1 -1
  224. package/dist/src/core/services/HttpService.js +121 -47
  225. package/dist/src/core/services/HttpService.js.map +1 -1
  226. package/dist/src/core/services/MarkerRegistry.d.ts +51 -8
  227. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -1
  228. package/dist/src/core/services/MarkerRegistry.js +135 -14
  229. package/dist/src/core/services/MarkerRegistry.js.map +1 -1
  230. package/dist/src/core/services/PageCache.d.ts +101 -0
  231. package/dist/src/core/services/PageCache.d.ts.map +1 -0
  232. package/dist/src/core/services/PageCache.js +184 -0
  233. package/dist/src/core/services/PageCache.js.map +1 -0
  234. package/dist/src/core/services/SectionManager.d.ts +100 -0
  235. package/dist/src/core/services/SectionManager.d.ts.map +1 -0
  236. package/dist/src/core/services/SectionManager.js +408 -0
  237. package/dist/src/core/services/SectionManager.js.map +1 -0
  238. package/dist/src/core/services/StorageService.js +1 -1
  239. package/dist/src/core/services/TranslationService.d.ts +21 -0
  240. package/dist/src/core/services/TranslationService.d.ts.map +1 -0
  241. package/dist/src/core/services/TranslationService.js +95 -0
  242. package/dist/src/core/services/TranslationService.js.map +1 -0
  243. package/dist/src/core/services/index.d.ts +11 -8
  244. package/dist/src/core/services/index.d.ts.map +1 -1
  245. package/dist/src/core/services/index.js +11 -8
  246. package/dist/src/core/services/index.js.map +1 -1
  247. package/dist/src/core/types/utils.d.ts +8 -8
  248. package/dist/src/core/types/utils.d.ts.map +1 -1
  249. package/dist/src/core/view/LoopContext.d.ts +21 -1
  250. package/dist/src/core/view/LoopContext.d.ts.map +1 -1
  251. package/dist/src/core/view/LoopContext.js +36 -0
  252. package/dist/src/core/view/LoopContext.js.map +1 -1
  253. package/dist/src/core/view/ResourceScope.d.ts +38 -0
  254. package/dist/src/core/view/ResourceScope.d.ts.map +1 -0
  255. package/dist/src/core/view/ResourceScope.js +167 -0
  256. package/dist/src/core/view/ResourceScope.js.map +1 -0
  257. package/dist/src/core/view/Section.d.ts +17 -32
  258. package/dist/src/core/view/Section.d.ts.map +1 -1
  259. package/dist/src/core/view/Section.js +14 -55
  260. package/dist/src/core/view/Section.js.map +1 -1
  261. package/dist/src/core/view/View.d.ts +43 -7
  262. package/dist/src/core/view/View.d.ts.map +1 -1
  263. package/dist/src/core/view/View.js +22 -4
  264. package/dist/src/core/view/View.js.map +1 -1
  265. package/dist/src/core/view/ViewController.d.ts +313 -40
  266. package/dist/src/core/view/ViewController.d.ts.map +1 -1
  267. package/dist/src/core/view/ViewController.js +1002 -147
  268. package/dist/src/core/view/ViewController.js.map +1 -1
  269. package/dist/src/core/view/ViewManager.d.ts +318 -27
  270. package/dist/src/core/view/ViewManager.d.ts.map +1 -1
  271. package/dist/src/core/view/ViewManager.js +1199 -258
  272. package/dist/src/core/view/ViewManager.js.map +1 -1
  273. package/dist/src/core/view/ViewState.d.ts +185 -6
  274. package/dist/src/core/view/ViewState.d.ts.map +1 -1
  275. package/dist/src/core/view/ViewState.js +851 -123
  276. package/dist/src/core/view/ViewState.js.map +1 -1
  277. package/dist/src/core/view/index.d.ts +5 -5
  278. package/dist/src/core/view/index.d.ts.map +1 -1
  279. package/dist/src/core/view/index.js +5 -5
  280. package/dist/src/core/view/index.js.map +1 -1
  281. package/dist/src/testing/index.d.ts +69 -0
  282. package/dist/src/testing/index.d.ts.map +1 -0
  283. package/dist/src/testing/index.js +140 -0
  284. package/dist/src/testing/index.js.map +1 -0
  285. package/index.ts +29 -5
  286. package/package.json +30 -21
  287. package/plugins.ts +2 -2
  288. package/src/core/app/Application.ts +72 -31
  289. package/src/core/bootstrap/app.ts +84 -6
  290. package/src/core/bootstrap/bundle.ts +101 -0
  291. package/src/core/bootstrap/providers/ApiServiceProvider.ts +4 -4
  292. package/src/core/bootstrap/providers/CoreServiceProvider.ts +14 -8
  293. package/src/core/bootstrap/providers/HelperServiceProvider.ts +8 -3
  294. package/src/core/bootstrap/providers/RouteServiceProvider.ts +15 -4
  295. package/src/core/bootstrap/providers/ServiceProvider.ts +8 -8
  296. package/src/core/bootstrap/providers/ViewServiceProvider.ts +3 -3
  297. package/src/core/bootstrap/providers/default-providers.ts +51 -16
  298. package/src/core/bootstrap/providers/index.ts +9 -9
  299. package/src/core/bootstrap/providers/provider-order.test.ts +16 -27
  300. package/src/core/bootstrap/providers/provider-order.ts +1 -1
  301. package/src/core/bootstrap/ssr.ts +141 -0
  302. package/src/core/cache/ViewCache.ts +1 -1
  303. package/src/core/cache/index.ts +1 -1
  304. package/src/core/contracts/ApplicationInterface.ts +15 -11
  305. package/src/core/contracts/BlockInterface.ts +18 -18
  306. package/src/core/contracts/BundleInterface.ts +40 -0
  307. package/src/core/contracts/ComponentInterface.ts +7 -6
  308. package/src/core/contracts/ElementInterface.ts +95 -27
  309. package/src/core/contracts/HeadServiceInterface.ts +41 -0
  310. package/src/core/contracts/HelperInterface.ts +9 -1
  311. package/src/core/contracts/HttpServiceInterface.ts +3 -0
  312. package/src/core/contracts/MarkerInterface.ts +22 -49
  313. package/src/core/contracts/ReactiveInterface.ts +9 -9
  314. package/src/core/contracts/RouterInterface.ts +5 -2
  315. package/src/core/contracts/SectionInterface.ts +49 -0
  316. package/src/core/contracts/ServiceProviderInterface.ts +3 -3
  317. package/src/core/contracts/ViewControllerInterface.ts +124 -16
  318. package/src/core/contracts/ViewInterface.ts +34 -5
  319. package/src/core/contracts/ViewManagerInterface.ts +40 -5
  320. package/src/core/contracts/ViewStateInterface.ts +39 -2
  321. package/src/core/contracts/common.ts +3 -3
  322. package/src/core/contracts/utils.ts +19 -19
  323. package/src/core/contracts/views.ts +2 -22
  324. package/src/core/devtools/hook.ts +142 -0
  325. package/src/core/devtools/index.ts +38 -0
  326. package/src/core/devtools/inspector.ts +270 -0
  327. package/src/core/elements/Block.ts +43 -21
  328. package/src/core/elements/BlockOutlet.ts +61 -21
  329. package/src/core/elements/Component.ts +352 -18
  330. package/src/core/elements/ElementManager.ts +9 -9
  331. package/src/core/elements/ForeachSlotCache.ts +170 -0
  332. package/src/core/elements/Fragment.ts +50 -32
  333. package/src/core/elements/Html.ts +696 -117
  334. package/src/core/elements/Output.ts +147 -30
  335. package/src/core/elements/Reactive.ts +329 -52
  336. package/src/core/elements/TextElement.ts +25 -16
  337. package/src/core/elements/Wrapper.ts +84 -18
  338. package/src/core/elements/Yield.ts +35 -24
  339. package/src/core/elements/helpers.ts +12 -12
  340. package/src/core/elements/index.ts +25 -24
  341. package/src/core/elements/reconcileChildren.ts +70 -0
  342. package/src/core/{hellpers → helpers}/ApiClient.ts +8 -1
  343. package/src/core/{hellpers → helpers}/app.ts +13 -2
  344. package/src/core/helpers/transition.ts +127 -0
  345. package/src/core/{hellpers → helpers}/utils.ts +4 -4
  346. package/src/core/helpers/view.ts +283 -0
  347. package/src/core/routers/Router.ts +458 -64
  348. package/src/core/routers/index.ts +2 -2
  349. package/src/core/services/AssetManager.ts +387 -0
  350. package/src/core/services/BlockManager.ts +272 -50
  351. package/src/core/services/DomService.ts +3 -3
  352. package/src/core/services/HeadService.ts +124 -0
  353. package/src/core/services/HelperService.ts +34 -4
  354. package/src/core/services/HttpService.ts +116 -55
  355. package/src/core/services/MarkerRegistry.ts +142 -16
  356. package/src/core/services/PageCache.ts +239 -0
  357. package/src/core/services/SectionManager.ts +387 -0
  358. package/src/core/services/StorageService.ts +1 -1
  359. package/src/core/services/TranslationService.ts +91 -0
  360. package/src/core/services/index.ts +11 -8
  361. package/src/core/types/utils.ts +8 -8
  362. package/src/core/view/LoopContext.ts +38 -1
  363. package/src/core/view/ResourceScope.ts +174 -0
  364. package/src/core/view/Section.ts +21 -68
  365. package/src/core/view/View.ts +57 -8
  366. package/src/core/view/ViewController.ts +1070 -186
  367. package/src/core/view/ViewManager.ts +1346 -272
  368. package/src/core/view/ViewState.ts +834 -116
  369. package/src/core/view/index.ts +5 -5
  370. package/src/testing/index.ts +184 -0
  371. package/dist/src/core/hellpers/ApiClient.d.ts.map +0 -1
  372. package/dist/src/core/hellpers/ApiClient.js.map +0 -1
  373. package/dist/src/core/hellpers/app.d.ts +0 -3
  374. package/dist/src/core/hellpers/app.d.ts.map +0 -1
  375. package/dist/src/core/hellpers/app.js.map +0 -1
  376. package/dist/src/core/hellpers/utils.d.ts.map +0 -1
  377. package/dist/src/core/hellpers/utils.js.map +0 -1
  378. package/dist/src/core/services/MarkerService.d.ts +0 -299
  379. package/dist/src/core/services/MarkerService.d.ts.map +0 -1
  380. package/dist/src/core/services/MarkerService.js +0 -723
  381. package/dist/src/core/services/MarkerService.js.map +0 -1
  382. package/src/core/services/MarkerService.ts +0 -923
  383. /package/dist/src/core/{hellpers → helpers}/ApiClient.d.ts +0 -0
@@ -1,9 +1,9 @@
1
- import type { OneObjectType } from "../types/utils";
2
- import type { ViewControllerInterface } from "./ViewControllerInterface";
3
- import type { ViewInterface } from "./ViewInterface";
4
- import type { HtmlInterface } from "./ElementInterface";
1
+ import type { SaoObjectType } from "../types/utils.js";
2
+ import type { ViewControllerInterface } from "./ViewControllerInterface.js";
3
+ import type { ViewInterface } from "./ViewInterface.js";
4
+ import type { HtmlInterface } from "./ElementInterface.js";
5
5
  export interface ComponentInterface {
6
- oneType: OneObjectType;
6
+ saoType: SaoObjectType;
7
7
  id: string;
8
8
  ctx: ViewControllerInterface;
9
9
  viewRef: ViewInterface | null;
@@ -12,12 +12,13 @@ export interface ComponentInterface {
12
12
  openTag: Comment;
13
13
  closeTag: Comment;
14
14
  stateKeys: string[];
15
+ listeners: Record<string, (...args: any[]) => any>;
15
16
  subscribeFn: () => void;
16
17
  unsubscribeFn: () => void;
17
18
  render(): void;
18
19
  destroy(): void;
19
20
  setParent(parent: HtmlInterface | null): void;
20
- isOneElement: boolean;
21
+ isSaoElement: boolean;
21
22
  isOneComponent: boolean;
22
23
  [key: string]: any;
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ComponentInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,uBAAuB,CAAC;IAC7B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB"}
1
+ {"version":3,"file":"ComponentInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ComponentInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,uBAAuB,CAAC;IAC7B,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;IACnD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB"}
@@ -1,30 +1,36 @@
1
- import type { OneObjectType } from "../types/utils";
2
- import type { ViewControllerInterface } from "./ViewControllerInterface";
3
- import type { ReactiveInterface } from "./ReactiveInterface";
1
+ import type { SaoObjectType } from "../types/utils.js";
2
+ import type { ViewControllerInterface } from "./ViewControllerInterface.js";
3
+ import type { ReactiveInterface } from "./ReactiveInterface.js";
4
4
  /** Base for any renderable node in the tree */
5
- export interface OneNodeInterface {
6
- oneType: OneObjectType;
5
+ export interface SaoNodeInterface {
6
+ saoType: SaoObjectType;
7
7
  parent: HtmlInterface | null;
8
8
  render(): void;
9
9
  destroy(): void;
10
- isOneElement: boolean;
10
+ isSaoElement: boolean;
11
11
  setParentElement(parent: HtmlInterface | null): void;
12
12
  [key: string]: any;
13
13
  }
14
14
  /** Native HTML element wrapper */
15
- export interface HtmlInterface extends OneNodeInterface {
15
+ export interface HtmlInterface extends SaoNodeInterface {
16
16
  element: HTMLElement;
17
17
  domChildren: Node[];
18
18
  [key: string]: any;
19
+ clearHTML(): void;
20
+ appendElement(element: HTMLElement | Comment | Text): void;
21
+ getElement(): HTMLElement;
22
+ renderChildren(): SaoElementChildren;
23
+ render(): HTMLElement;
19
24
  }
20
25
  /** Text node wrapper */
21
- export interface TextInterface extends OneNodeInterface {
26
+ export interface TextInterface extends SaoNodeInterface {
22
27
  element: Text;
23
28
  text: string;
24
29
  domChildren: Node[];
25
30
  update(newText: string): void;
31
+ render(): HTMLElement | Text | Comment;
26
32
  }
27
- export interface OutputInterface extends OneNodeInterface {
33
+ export interface OutputInterface extends SaoNodeInterface {
28
34
  ctx: ViewControllerInterface;
29
35
  parent: HtmlInterface | null;
30
36
  stateKeys: string[];
@@ -33,48 +39,89 @@ export interface OutputInterface extends OneNodeInterface {
33
39
  domChildren: Node[];
34
40
  [key: string]: any;
35
41
  }
36
- export interface YieldInterface extends OneNodeInterface {
42
+ export interface YieldInterface extends SaoNodeInterface {
37
43
  ctx: ViewControllerInterface;
38
44
  parent: HtmlInterface | null;
39
45
  name: string;
40
- contentFactory: () => OneChildrenFactoryOutput;
41
- setContentFactory(factory: () => OneChildrenFactoryOutput): void;
46
+ defaultValue: string;
42
47
  openTag: Comment;
43
48
  closeTag: Comment;
44
49
  domChildren: Node[];
45
50
  [key: string]: any;
46
51
  }
47
52
  /** Fragment — renders multiple root nodes into a parent without a wrapping tag */
48
- export interface FragmentInterface extends OneNodeInterface {
53
+ export interface FragmentInterface extends SaoNodeInterface {
49
54
  nodes: Node[];
50
55
  domChildren: Node[];
51
56
  [key: string]: any;
52
57
  }
53
58
  /** Wrapper — renders multiple root nodes into a parent without a wrapping tag */
54
- export interface WrapperInterface extends OneNodeInterface {
59
+ export interface WrapperInterface extends SaoNodeInterface {
55
60
  nodes: Node[];
56
61
  domChildren: Node[];
57
62
  [key: string]: any;
63
+ /** Render — chạy childrenFactory, trả về danh sách children đã tạo. */
64
+ render(): SaoElementChildren;
65
+ appendTo(parent: HtmlInterface): void;
66
+ mountTo(parent: HtmlInterface): void;
67
+ clear(): void;
68
+ setChildrenFactory(factory: SaoChildrenFactory): void;
69
+ children: SaoElementChildren;
70
+ openTag: Comment;
71
+ closeTag: Comment;
58
72
  }
59
- export type OneElementConfig = {
73
+ /**
74
+ * Contract chuẩn (RUNTIME_CONTRACT.md §1.1): type = 'static' | 'binding'.
75
+ * 'value' giữ làm legacy alias của 'static' đến v0.2.
76
+ */
77
+ export type BindingConfigType = 'static' | 'binding' | 'value';
78
+ export type SaoElementConfig = {
79
+ /** Marker-free content for HTML RCDATA elements (textarea/title). */
80
+ content?: {
81
+ factory: () => any;
82
+ stateKeys?: string[];
83
+ };
60
84
  attrs?: {
61
85
  [key: string]: {
62
- type: 'value' | 'binding';
86
+ type: BindingConfigType;
63
87
  value?: any;
64
88
  stateKeys?: string[];
65
89
  factory?: () => any;
90
+ /** `@yield(name, ...)` used as the whole attribute value — no static stateKeys
91
+ * (the section it resolves to is only known at runtime), so Html subscribes to
92
+ * SectionManager by name instead. */
93
+ yieldName?: string;
66
94
  };
67
95
  };
68
96
  props?: {
69
97
  [key: string]: {
70
- type: 'value' | 'binding';
98
+ type: BindingConfigType;
71
99
  value?: any;
72
100
  stateKeys?: string[];
73
101
  factory?: () => any;
74
102
  };
75
103
  };
76
104
  events?: {
77
- [key: string]: OneElementEventHandler;
105
+ [key: string]: SaoElementEventHandler;
106
+ };
107
+ /**
108
+ * `@click.prevent.stop(...)` — bucket RIÊNG cạnh `events` để shape
109
+ * `events: {click: [...]}` (contract sẵn có) không đổi; view compile trước
110
+ * khi có modifier không có key này và chạy y nguyên.
111
+ */
112
+ eventModifiers?: {
113
+ [key: string]: EventModifier[];
114
+ };
115
+ /** `@bind(key)`/`@val(key)` — two-way binding, own bucket (sibling of attrs/props/events). */
116
+ bind?: {
117
+ key: string;
118
+ };
119
+ /**
120
+ * `@transition('fade')` — tiền tố class enter/leave (`fade-enter-from`, ...).
121
+ * Bucket riêng như `bind`/`eventModifiers`; vắng mặt = hành vi cũ y nguyên.
122
+ */
123
+ transition?: {
124
+ name: string;
78
125
  };
79
126
  classes?: {
80
127
  [className: string]: {
@@ -84,14 +131,15 @@ export type OneElementConfig = {
84
131
  factory?: () => boolean;
85
132
  };
86
133
  } | Array<{
87
- type: 'static' | 'binding';
134
+ /** 'dynamic' = factory trả về TÊN class (`class="language-{{ lang }}"`), không có `value`. */
135
+ type: 'static' | 'binding' | 'dynamic';
88
136
  value?: string;
89
137
  stateKeys?: string[];
90
- factory?: () => boolean;
138
+ factory?: () => boolean | string;
91
139
  }>;
92
140
  styles?: {
93
141
  [prop: string]: {
94
- type: 'value' | 'binding';
142
+ type: BindingConfigType;
95
143
  value?: string;
96
144
  stateKeys?: string[];
97
145
  factory?: () => string;
@@ -99,19 +147,35 @@ export type OneElementConfig = {
99
147
  };
100
148
  [key: string]: any;
101
149
  };
102
- export type HtmlElementConfig = OneElementConfig & {
150
+ export type HtmlElementConfig = SaoElementConfig & {
103
151
  ctx: ViewControllerInterface;
104
152
  parentElement?: HtmlInterface | null;
105
153
  parent?: HtmlInterface | null;
106
154
  };
107
- export type OneElementEventHandler = Array<{
155
+ /**
156
+ * Modifier của `@click.prevent.stop(...)`. Phải khớp `EVENT_MODIFIERS` trong
157
+ * `compiler/src/sao2js/template_ast.py` — compiler chỉ emit tên trong tập đó.
158
+ */
159
+ export type EventModifier = 'prevent' | 'stop' | 'self' | 'once';
160
+ export type SaoElementEventHandler = Array<{
108
161
  handler: string | ((event: Event) => any);
109
162
  params?: (any | ((event: Event) => any[]))[];
110
163
  } | ((event: Event) => any)>;
164
+ export type SaoElement = WrapperInterface | HtmlInterface | ReactiveInterface | TextInterface | FragmentInterface;
165
+ export type DOMElement = HTMLElement | SVGElement | DocumentFragment | Text | Comment;
111
166
  /** All possible rendered child node types */
112
- export type OneElementChildren = Array<HtmlInterface | ReactiveInterface | TextInterface | FragmentInterface | HTMLElement | SVGElement | DocumentFragment | Text | Comment>;
113
- /** What a children factory can return (before mounting) */
114
- export type OneChildrenFactoryOutput = Array<HtmlInterface | ReactiveInterface | TextInterface | FragmentInterface | string | number | HTMLElement | SVGElement | DocumentFragment | Text | Comment>;
167
+ export type SaoElementChildren = Array<SaoElement | SaoNodeInterface | DOMElement>;
168
+ /** What a children factory can return (before mounting).
169
+ * SaoNodeInterface bao phủ các marker-based element (Output, Component, Block...)
170
+ * mà compiled output vẫn trả về trong children factories. */
171
+ export type SaoChildrenFactoryOutput = Array<SaoElement | SaoNodeInterface | DOMElement | string | number | null | undefined>;
115
172
  /** Factory function that produces children given parent element */
116
- export type OneChildrenFactory = (parentElement: HtmlInterface | null) => OneChildrenFactoryOutput;
173
+ export type SaoChildrenFactory = (parentElement: HtmlInterface | null) => SaoChildrenFactoryOutput;
174
+ /**
175
+ * Lazy payload passed from a parent component to one ChildrenNode placeholder.
176
+ * A factory is deliberately not executed while component data is resolved; the
177
+ * child view invokes it only when its render traversal reaches the placeholder.
178
+ */
179
+ export type SaoChildrenSlotFactory = SaoChildrenFactory;
180
+ export type SaoChildrenSlotContent = SaoChildrenSlotFactory | string | number | null | undefined;
117
181
  //# sourceMappingURL=ElementInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ElementInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElementInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ElementInterface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `'page'` (default) — reverts to whatever was there before on the next
3
+ * `resetPage()` (called once per SPA navigation), so a tag set by page A
4
+ * never leaks into page B.
5
+ * `'persistent'` — survives navigation (site-wide defaults, e.g. a global
6
+ * robots directive or a fixed title suffix set once at boot).
7
+ */
8
+ export type HeadTagScope = 'page' | 'persistent';
9
+ export interface HeadTagOptions {
10
+ scope?: HeadTagScope;
11
+ }
12
+ export interface HeadLinkOptions extends HeadTagOptions {
13
+ /** Extra attributes beyond rel/href — e.g. { hreflang: 'vi' } for alternate links. */
14
+ attrs?: Record<string, string>;
15
+ }
16
+ /**
17
+ * HeadService — manages `<head>` tags (title, meta, link, JSON-LD) directly
18
+ * against `document`, independent of any View/ViewController. Registered in
19
+ * the DI container as `App.Head` / `app('Head')` so any code — a view's
20
+ * render, a route guard, an async data callback, app bootstrap — can call it.
21
+ */
22
+ export interface HeadServiceInterface {
23
+ setTitle(title: string, options?: HeadTagOptions): void;
24
+ /** `<meta name="{name}" content="{content}">` — description, keywords, robots, viewport... */
25
+ setMeta(name: string, content: string, options?: HeadTagOptions): void;
26
+ /** `<meta property="{property}" content="{content}">` — Open Graph / Twitter card tags. */
27
+ setMetaProperty(property: string, content: string, options?: HeadTagOptions): void;
28
+ /** `<link rel="{rel}" href="{href}" ...attrs>` — canonical, alternate/hreflang, etc. */
29
+ setLink(rel: string, href: string, options?: HeadLinkOptions): void;
30
+ /** `<script type="application/ld+json">` — structured data, keyed by `id` (multiple blocks allowed). */
31
+ setJsonLd(id: string, data: Record<string, any>, options?: HeadTagOptions): void;
32
+ /** Revert one managed key immediately, regardless of its scope. */
33
+ unset(key: string): void;
34
+ /** Revert every `'page'`-scoped tag to its pre-managed state. Called once per navigation. */
35
+ resetPage(): void;
36
+ }
37
+ //# sourceMappingURL=HeadServiceInterface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadServiceInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/HeadServiceInterface.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACxD,8FAA8F;IAC9F,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvE,2FAA2F;IAC3F,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACnF,wFAAwF;IACxF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACpE,wGAAwG;IACxG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACjF,mEAAmE;IACnE,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6FAA6F;IAC7F,SAAS,IAAI,IAAI,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ // ─── Head Service Interface ───────────────────────────────────────
2
+ export {};
3
+ //# sourceMappingURL=HeadServiceInterface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadServiceInterface.js","sourceRoot":"","sources":["../../../../src/core/contracts/HeadServiceInterface.ts"],"names":[],"mappings":"AAAA,qEAAqE"}
@@ -1,4 +1,4 @@
1
- import { ApplicationInterface } from "./ApplicationInterface";
1
+ import { ApplicationInterface } from "./ApplicationInterface.js";
2
2
  export interface CollectionProxyInterface {
3
3
  all(): any[];
4
4
  toArray(): any[];
@@ -46,6 +46,14 @@ export interface CollectionProxyInterface {
46
46
  toString(): string;
47
47
  }
48
48
  export interface HelperInterface {
49
+ initTranslations(config: import('../services/TranslationService.js').TranslationConfig): void;
50
+ getLocale(): string;
51
+ setLocale(locale: string): void;
52
+ __(key: string, replace?: Record<string, any>, locale?: string): string;
53
+ trans(key: string, replace?: Record<string, any>, locale?: string): string;
54
+ lang(key: string, replace?: Record<string, any>, locale?: string): string;
55
+ choice(key: string, count: number, replace?: Record<string, any>, locale?: string): string;
56
+ trans_choice(key: string, count: number, replace?: Record<string, any>, locale?: string): string;
49
57
  [key: string]: any;
50
58
  app<T>(): T;
51
59
  app<T>(key: string): T;
@@ -1 +1 @@
1
- {"version":3,"file":"HelperInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/HelperInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HelperInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/HelperInterface.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  export interface HttpRequestConfig extends RequestInit {
2
2
  headers?: Record<string, string>;
3
3
  timeout?: number;
4
+ dedupe?: 'cancel-previous' | 'parallel';
5
+ requestKey?: string;
4
6
  [key: string]: any;
5
7
  }
6
8
  export interface HttpResponse<T = any> {
@@ -32,6 +34,7 @@ export interface HttpServiceInterface {
32
34
  cancelAll(): void;
33
35
  /** Cancel a specific pending request */
34
36
  cancel(url: string, method?: string): void;
37
+ cancelKey(identity: string, method?: string): void;
35
38
  /** Destroy — cancel all + clear interceptors */
36
39
  destroy(): void;
37
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpServiceInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/HttpServiceInterface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpServiceInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/HttpServiceInterface.ts"],"names":[],"mappings":"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"}
@@ -7,49 +7,34 @@ export interface MarkerRegistryRecord {
7
7
  attributes: Record<string, any>;
8
8
  }
9
9
  export type MarkerTagName = 'view' | 'component' | 'layout' | 'template' | 'block' | 'blockoutlet' | 'reactive' | 'section' | 'fragment' | 'for' | 'forin' | 'foreach' | 'while' | 'if' | 'switch' | 'include' | 'yield' | 'slot' | 'echo' | 'echoescaped' | 'useblock' | 'extend' | 'style' | 'script' | (string & {});
10
- export type MarkerFilter = string | Record<string, any>;
11
- export interface MarkerRecord {
12
- name: string;
13
- tagName: string;
14
- registryID?: string | null;
15
- attributes: Record<string, any>;
16
- openTag: Comment;
17
- closeTag: Comment;
18
- children: Array<Node>;
19
- [key: string]: any;
20
- }
21
- export interface MarkupAttributes {
22
- [key: string]: string;
23
- }
24
- export interface MarkupQueryOptions {
25
- multiple?: boolean;
26
- recursive?: boolean;
27
- }
28
- export interface MarkupQuery {
29
- pattern: string;
30
- attributes?: MarkupAttributes;
31
- options?: MarkupQueryOptions;
32
- index?: number;
33
- }
34
- /**
35
- * RegistryTag Query Options
36
- */
37
- export interface RegistryTagQueryOptions {
38
- tag?: string;
39
- id?: string;
40
- attributes?: Record<string, any>;
41
- multiple?: boolean;
42
- }
43
- /**
44
- * RegistryTagData
45
- */
46
- export interface RegistryTagData {
47
- systemPrefix: string;
48
- tag: string;
49
- id: string;
50
- key: string;
51
- attributes?: Record<string, any>;
52
- nodes: Array<Node>;
10
+ export interface MarkerRegistryInterface {
11
+ shortcut(tag: string): string;
12
+ fullTag(shortcut: string): string;
13
+ registerShortcut(tag: string, short: string): void;
14
+ register(tag: string, id?: string, attributes?: Record<string, any>): string;
15
+ createMarkerStart(tag: string, id?: string): Comment;
16
+ createMarkerEnd(tag: string, id?: string): Comment;
17
+ get(key: string): MarkerRegistryRecord | null;
18
+ getByTagAndId(tag: string, id: string): MarkerRegistryRecord | null;
19
+ has(key: string): boolean;
20
+ remove(key: string): boolean;
21
+ getByTag(tag: string): MarkerRegistryRecord[];
22
+ all(): Map<string, MarkerRegistryRecord>;
23
+ clear(): void;
24
+ size: number;
25
+ openComment(tag: string, id?: string): string;
26
+ closeComment(tag: string, id?: string): string;
27
+ parseComment(text: string): {
28
+ tag: string;
29
+ id: string;
30
+ isClose: boolean;
31
+ } | null;
32
+ /** Claim cặp marker SSR theo O(1) qua index (null = server không render vùng này) */
33
+ claim(tag: string, id: string, scope?: Element | null): {
34
+ open: Comment;
35
+ close: Comment;
36
+ } | null;
37
+ /** Bỏ index marker — gọi đầu mỗi lượt hydrate */
38
+ invalidateIndex(): void;
53
39
  }
54
- export type RegistryIDOrAttributes = string | Record<string, any> | undefined;
55
40
  //# sourceMappingURL=MarkerInterface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkerInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/MarkerInterface.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACnB,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAC5C,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAC7D,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GACrC,IAAI,GAAG,QAAQ,GACf,SAAS,GAAG,OAAO,GAAG,MAAM,GAC5B,MAAM,GAAG,aAAa,GACtB,UAAU,GAAG,QAAQ,GACrB,OAAO,GAAG,QAAQ,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAMpB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AACD,MAAM,WAAW,gBAAgB;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACtB;AAGD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"MarkerInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/MarkerInterface.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACjC,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GACnB,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAC5C,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAC7D,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GACrC,IAAI,GAAG,QAAQ,GACf,SAAS,GAAG,OAAO,GAAG,MAAM,GAC5B,MAAM,GAAG,aAAa,GACtB,UAAU,GAAG,QAAQ,GACrB,OAAO,GAAG,QAAQ,GAClB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAMpB,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC;IAC7E,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;IAC9C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;IACpE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAC;IAC9C,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAChF,qFAAqF;IACrF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjG,iDAAiD;IACjD,eAAe,IAAI,IAAI,CAAC;CAE3B"}
@@ -1,9 +1,9 @@
1
- import type { OneObjectType } from "../types/utils";
2
- import type { ViewControllerInterface } from "./ViewControllerInterface";
3
- import type { HtmlInterface, OneChildrenFactoryOutput, OneElementChildren, OneNodeInterface } from "./ElementInterface";
1
+ import type { SaoObjectType } from "../types/utils.js";
2
+ import type { ViewControllerInterface } from "./ViewControllerInterface.js";
3
+ import type { HtmlInterface, SaoChildrenFactoryOutput, SaoElementChildren, SaoNodeInterface } from "./ElementInterface.js";
4
4
  /** Reactive region bounded by comment markers — re-renders when deps change */
5
- export interface ReactiveInterface extends OneNodeInterface {
6
- oneType: OneObjectType;
5
+ export interface ReactiveInterface extends SaoNodeInterface {
6
+ saoType: SaoObjectType;
7
7
  id: string;
8
8
  type: string;
9
9
  ctx: ViewControllerInterface;
@@ -12,20 +12,20 @@ export interface ReactiveInterface extends OneNodeInterface {
12
12
  parentReactive: ReactiveInterface | null;
13
13
  openTag: Comment;
14
14
  closeTag: Comment;
15
- children: OneElementChildren;
15
+ children: SaoElementChildren;
16
16
  unsubscribe: () => void;
17
17
  childrenFactory: ReactiveChildrenFactory;
18
18
  setChildrenFactory(factory: ReactiveChildrenFactory): void;
19
19
  setStateKeys(stateKeys: string[]): void;
20
20
  render(): void;
21
21
  destroy(): void;
22
- isOneElement: boolean;
22
+ isSaoElement: boolean;
23
23
  isOneReactive: boolean;
24
24
  }
25
25
  /** Function called by Reactive to produce DOM content between markers */
26
- export type ReactiveRenderFn = (ctx: ViewControllerInterface, parentElement: HtmlInterface | null) => OneChildrenFactoryOutput;
26
+ export type ReactiveRenderFn = (ctx: ViewControllerInterface, parentElement: HtmlInterface | null) => SaoChildrenFactoryOutput;
27
27
  /** Factory function for reactive children rendering */
28
- export type ReactiveChildrenFactory = (parentReactive: ReactiveInterface, parentElement: HtmlInterface | null) => OneChildrenFactoryOutput;
28
+ export type ReactiveChildrenFactory = (parentReactive: ReactiveInterface, parentElement: HtmlInterface | null) => SaoChildrenFactoryOutput;
29
29
  /** Reactive configuration */
30
30
  export type ReactiveConfig = {
31
31
  type?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ReactiveInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIxH,+EAA+E;AAC/E,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,uBAAuB,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,uBAAuB,CAAC;IACzC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAID,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,KAAK,wBAAwB,CAAC;AAE/H,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,KAAK,wBAAwB,CAAC;AAE3I,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CAC/B,CAAA"}
1
+ {"version":3,"file":"ReactiveInterface.d.ts","sourceRoot":"","sources":["../../../../src/core/contracts/ReactiveInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAI3H,+EAA+E;AAC/E,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACvD,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,uBAAuB,CAAC;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,eAAe,EAAE,uBAAuB,CAAC;IACzC,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC3D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CAC1B;AAID,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,KAAK,wBAAwB,CAAC;AAE/H,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,KAAK,wBAAwB,CAAC;AAE3I,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;CAC/B,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ViewManagerInterface } from "./ViewManagerInterface";
1
+ import type { ViewManagerInterface } from "./ViewManagerInterface.js";
2
2
  export type RouterNavigationType = 'push' | 'pop';
3
3
  export type RouterMode = 'history' | 'hash';
4
4
  export interface RouteInterface {
@@ -13,6 +13,8 @@ export interface ActiveRouteInterface {
13
13
  $query: Record<string, any>;
14
14
  $params: Record<string, any>;
15
15
  $urlPath: string;
16
+ /** Request URI = path + query (không gồm hash) — cache key phía ViewManager */
17
+ $uri?: string;
16
18
  $fragment: string;
17
19
  new (route: RouteInterface, urlPath: string, fragment: string): ActiveRouteInterface;
18
20
  setQuery(query: Record<string, any>): void;
@@ -46,7 +48,8 @@ export interface RouterInterface {
46
48
  getCurrentRoute(): ActiveRouteInterface | null;
47
49
  /** Navigation guards */
48
50
  beforeEach(guard: (to: ActiveRouteInterface, from: ActiveRouteInterface, urlPath: string) => boolean | Promise<boolean>): this;
49
- afterEach(hook: (to: ActiveRouteInterface, from: ActiveRouteInterface) => void): this;
51
+ /** Đăng ký hook sau điều hướng; trả về hàm huỷ đăng ký. Nhiều hook cùng sống được. */
52
+ afterEach(hook: (to: ActiveRouteInterface, from: ActiveRouteInterface) => void): () => void;
50
53
  /** Start listening to URL changes */
51
54
  start(skipInitial?: boolean): void;
52
55
  /** Stop listening */