@saolabs/client 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) 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 +17 -15
  9. package/dist/src/core/app/Application.d.ts.map +1 -1
  10. package/dist/src/core/app/Application.js +41 -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 +74 -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 +125 -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 +13 -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/hellpers/utils.d.ts +2 -2
  178. package/dist/src/core/hellpers/utils.js +4 -4
  179. package/dist/src/core/helpers/ApiClient.d.ts +58 -0
  180. package/dist/src/core/helpers/ApiClient.d.ts.map +1 -0
  181. package/dist/src/core/helpers/ApiClient.js +131 -0
  182. package/dist/src/core/helpers/ApiClient.js.map +1 -0
  183. package/dist/src/core/helpers/app.d.ts +3 -0
  184. package/dist/src/core/helpers/app.d.ts.map +1 -0
  185. package/dist/src/core/helpers/app.js +63 -0
  186. package/dist/src/core/helpers/app.js.map +1 -0
  187. package/dist/src/core/helpers/transition.d.ts +34 -0
  188. package/dist/src/core/helpers/transition.d.ts.map +1 -0
  189. package/dist/src/core/helpers/transition.js +118 -0
  190. package/dist/src/core/helpers/transition.js.map +1 -0
  191. package/dist/src/core/helpers/utils.d.ts +26 -0
  192. package/dist/src/core/helpers/utils.d.ts.map +1 -0
  193. package/dist/src/core/helpers/utils.js +96 -0
  194. package/dist/src/core/helpers/utils.js.map +1 -0
  195. package/dist/src/core/helpers/view.d.ts +39 -0
  196. package/dist/src/core/helpers/view.d.ts.map +1 -0
  197. package/dist/src/core/helpers/view.js +286 -0
  198. package/dist/src/core/helpers/view.js.map +1 -0
  199. package/dist/src/core/routers/Router.d.ts +108 -7
  200. package/dist/src/core/routers/Router.d.ts.map +1 -1
  201. package/dist/src/core/routers/Router.js +444 -68
  202. package/dist/src/core/routers/Router.js.map +1 -1
  203. package/dist/src/core/routers/index.d.ts +2 -2
  204. package/dist/src/core/routers/index.d.ts.map +1 -1
  205. package/dist/src/core/routers/index.js +1 -1
  206. package/dist/src/core/routers/index.js.map +1 -1
  207. package/dist/src/core/services/AssetManager.d.ts +112 -0
  208. package/dist/src/core/services/AssetManager.d.ts.map +1 -0
  209. package/dist/src/core/services/AssetManager.js +361 -0
  210. package/dist/src/core/services/AssetManager.js.map +1 -0
  211. package/dist/src/core/services/BlockManager.d.ts +73 -2
  212. package/dist/src/core/services/BlockManager.d.ts.map +1 -1
  213. package/dist/src/core/services/BlockManager.js +270 -48
  214. package/dist/src/core/services/BlockManager.js.map +1 -1
  215. package/dist/src/core/services/DomService.js +3 -3
  216. package/dist/src/core/services/DomService.js.map +1 -1
  217. package/dist/src/core/services/HeadService.d.ts +24 -0
  218. package/dist/src/core/services/HeadService.d.ts.map +1 -0
  219. package/dist/src/core/services/HeadService.js +120 -0
  220. package/dist/src/core/services/HeadService.js.map +1 -0
  221. package/dist/src/core/services/HelperService.d.ts +14 -3
  222. package/dist/src/core/services/HelperService.d.ts.map +1 -1
  223. package/dist/src/core/services/HelperService.js +32 -2
  224. package/dist/src/core/services/HelperService.js.map +1 -1
  225. package/dist/src/core/services/HttpService.d.ts +8 -0
  226. package/dist/src/core/services/HttpService.d.ts.map +1 -1
  227. package/dist/src/core/services/HttpService.js +121 -47
  228. package/dist/src/core/services/HttpService.js.map +1 -1
  229. package/dist/src/core/services/MarkerRegistry.d.ts +51 -8
  230. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -1
  231. package/dist/src/core/services/MarkerRegistry.js +135 -14
  232. package/dist/src/core/services/MarkerRegistry.js.map +1 -1
  233. package/dist/src/core/services/PageCache.d.ts +101 -0
  234. package/dist/src/core/services/PageCache.d.ts.map +1 -0
  235. package/dist/src/core/services/PageCache.js +184 -0
  236. package/dist/src/core/services/PageCache.js.map +1 -0
  237. package/dist/src/core/services/SectionManager.d.ts +100 -0
  238. package/dist/src/core/services/SectionManager.d.ts.map +1 -0
  239. package/dist/src/core/services/SectionManager.js +408 -0
  240. package/dist/src/core/services/SectionManager.js.map +1 -0
  241. package/dist/src/core/services/StorageService.js +1 -1
  242. package/dist/src/core/services/TranslationService.d.ts +21 -0
  243. package/dist/src/core/services/TranslationService.d.ts.map +1 -0
  244. package/dist/src/core/services/TranslationService.js +95 -0
  245. package/dist/src/core/services/TranslationService.js.map +1 -0
  246. package/dist/src/core/services/index.d.ts +11 -8
  247. package/dist/src/core/services/index.d.ts.map +1 -1
  248. package/dist/src/core/services/index.js +11 -8
  249. package/dist/src/core/services/index.js.map +1 -1
  250. package/dist/src/core/types/utils.d.ts +8 -8
  251. package/dist/src/core/types/utils.d.ts.map +1 -1
  252. package/dist/src/core/view/LoopContext.d.ts +21 -1
  253. package/dist/src/core/view/LoopContext.d.ts.map +1 -1
  254. package/dist/src/core/view/LoopContext.js +36 -0
  255. package/dist/src/core/view/LoopContext.js.map +1 -1
  256. package/dist/src/core/view/ResourceScope.d.ts +38 -0
  257. package/dist/src/core/view/ResourceScope.d.ts.map +1 -0
  258. package/dist/src/core/view/ResourceScope.js +167 -0
  259. package/dist/src/core/view/ResourceScope.js.map +1 -0
  260. package/dist/src/core/view/Section.d.ts +17 -32
  261. package/dist/src/core/view/Section.d.ts.map +1 -1
  262. package/dist/src/core/view/Section.js +14 -55
  263. package/dist/src/core/view/Section.js.map +1 -1
  264. package/dist/src/core/view/View.d.ts +43 -7
  265. package/dist/src/core/view/View.d.ts.map +1 -1
  266. package/dist/src/core/view/View.js +22 -4
  267. package/dist/src/core/view/View.js.map +1 -1
  268. package/dist/src/core/view/ViewController.d.ts +313 -40
  269. package/dist/src/core/view/ViewController.d.ts.map +1 -1
  270. package/dist/src/core/view/ViewController.js +1002 -147
  271. package/dist/src/core/view/ViewController.js.map +1 -1
  272. package/dist/src/core/view/ViewManager.d.ts +318 -27
  273. package/dist/src/core/view/ViewManager.d.ts.map +1 -1
  274. package/dist/src/core/view/ViewManager.js +1199 -258
  275. package/dist/src/core/view/ViewManager.js.map +1 -1
  276. package/dist/src/core/view/ViewState.d.ts +185 -6
  277. package/dist/src/core/view/ViewState.d.ts.map +1 -1
  278. package/dist/src/core/view/ViewState.js +851 -123
  279. package/dist/src/core/view/ViewState.js.map +1 -1
  280. package/dist/src/core/view/index.d.ts +5 -5
  281. package/dist/src/core/view/index.d.ts.map +1 -1
  282. package/dist/src/core/view/index.js +5 -5
  283. package/dist/src/core/view/index.js.map +1 -1
  284. package/dist/src/testing/index.d.ts +69 -0
  285. package/dist/src/testing/index.d.ts.map +1 -0
  286. package/dist/src/testing/index.js +140 -0
  287. package/dist/src/testing/index.js.map +1 -0
  288. package/index.ts +29 -5
  289. package/package.json +30 -21
  290. package/plugins.ts +2 -2
  291. package/src/core/app/Application.ts +58 -31
  292. package/src/core/bootstrap/app.ts +80 -6
  293. package/src/core/bootstrap/bundle.ts +101 -0
  294. package/src/core/bootstrap/providers/ApiServiceProvider.ts +4 -4
  295. package/src/core/bootstrap/providers/CoreServiceProvider.ts +14 -8
  296. package/src/core/bootstrap/providers/HelperServiceProvider.ts +8 -3
  297. package/src/core/bootstrap/providers/RouteServiceProvider.ts +15 -4
  298. package/src/core/bootstrap/providers/ServiceProvider.ts +8 -8
  299. package/src/core/bootstrap/providers/ViewServiceProvider.ts +3 -3
  300. package/src/core/bootstrap/providers/default-providers.ts +51 -16
  301. package/src/core/bootstrap/providers/index.ts +9 -9
  302. package/src/core/bootstrap/providers/provider-order.test.ts +16 -27
  303. package/src/core/bootstrap/providers/provider-order.ts +1 -1
  304. package/src/core/bootstrap/ssr.ts +136 -0
  305. package/src/core/cache/ViewCache.ts +1 -1
  306. package/src/core/cache/index.ts +1 -1
  307. package/src/core/contracts/ApplicationInterface.ts +13 -11
  308. package/src/core/contracts/BlockInterface.ts +18 -18
  309. package/src/core/contracts/BundleInterface.ts +40 -0
  310. package/src/core/contracts/ComponentInterface.ts +7 -6
  311. package/src/core/contracts/ElementInterface.ts +95 -27
  312. package/src/core/contracts/HeadServiceInterface.ts +41 -0
  313. package/src/core/contracts/HelperInterface.ts +9 -1
  314. package/src/core/contracts/HttpServiceInterface.ts +3 -0
  315. package/src/core/contracts/MarkerInterface.ts +22 -49
  316. package/src/core/contracts/ReactiveInterface.ts +9 -9
  317. package/src/core/contracts/RouterInterface.ts +5 -2
  318. package/src/core/contracts/SectionInterface.ts +49 -0
  319. package/src/core/contracts/ServiceProviderInterface.ts +3 -3
  320. package/src/core/contracts/ViewControllerInterface.ts +124 -16
  321. package/src/core/contracts/ViewInterface.ts +34 -5
  322. package/src/core/contracts/ViewManagerInterface.ts +40 -5
  323. package/src/core/contracts/ViewStateInterface.ts +39 -2
  324. package/src/core/contracts/common.ts +3 -3
  325. package/src/core/contracts/utils.ts +19 -19
  326. package/src/core/contracts/views.ts +2 -22
  327. package/src/core/devtools/hook.ts +142 -0
  328. package/src/core/devtools/index.ts +38 -0
  329. package/src/core/devtools/inspector.ts +270 -0
  330. package/src/core/elements/Block.ts +43 -21
  331. package/src/core/elements/BlockOutlet.ts +61 -21
  332. package/src/core/elements/Component.ts +352 -18
  333. package/src/core/elements/ElementManager.ts +9 -9
  334. package/src/core/elements/ForeachSlotCache.ts +170 -0
  335. package/src/core/elements/Fragment.ts +50 -32
  336. package/src/core/elements/Html.ts +696 -117
  337. package/src/core/elements/Output.ts +147 -30
  338. package/src/core/elements/Reactive.ts +329 -52
  339. package/src/core/elements/TextElement.ts +25 -16
  340. package/src/core/elements/Wrapper.ts +84 -18
  341. package/src/core/elements/Yield.ts +35 -24
  342. package/src/core/elements/helpers.ts +12 -12
  343. package/src/core/elements/index.ts +25 -24
  344. package/src/core/elements/reconcileChildren.ts +70 -0
  345. package/src/core/{hellpers → helpers}/ApiClient.ts +8 -1
  346. package/src/core/{hellpers → helpers}/app.ts +13 -2
  347. package/src/core/helpers/transition.ts +127 -0
  348. package/src/core/{hellpers → helpers}/utils.ts +4 -4
  349. package/src/core/helpers/view.ts +283 -0
  350. package/src/core/routers/Router.ts +458 -64
  351. package/src/core/routers/index.ts +2 -2
  352. package/src/core/services/AssetManager.ts +387 -0
  353. package/src/core/services/BlockManager.ts +272 -50
  354. package/src/core/services/DomService.ts +3 -3
  355. package/src/core/services/HeadService.ts +124 -0
  356. package/src/core/services/HelperService.ts +34 -4
  357. package/src/core/services/HttpService.ts +116 -55
  358. package/src/core/services/MarkerRegistry.ts +142 -16
  359. package/src/core/services/PageCache.ts +239 -0
  360. package/src/core/services/SectionManager.ts +387 -0
  361. package/src/core/services/StorageService.ts +1 -1
  362. package/src/core/services/TranslationService.ts +91 -0
  363. package/src/core/services/index.ts +11 -8
  364. package/src/core/types/utils.ts +8 -8
  365. package/src/core/view/LoopContext.ts +38 -1
  366. package/src/core/view/ResourceScope.ts +174 -0
  367. package/src/core/view/Section.ts +21 -68
  368. package/src/core/view/View.ts +57 -8
  369. package/src/core/view/ViewController.ts +1070 -186
  370. package/src/core/view/ViewManager.ts +1346 -272
  371. package/src/core/view/ViewState.ts +834 -116
  372. package/src/core/view/index.ts +5 -5
  373. package/src/testing/index.ts +184 -0
  374. package/dist/src/core/services/MarkerService.d.ts +0 -299
  375. package/dist/src/core/services/MarkerService.d.ts.map +0 -1
  376. package/dist/src/core/services/MarkerService.js +0 -723
  377. package/dist/src/core/services/MarkerService.js.map +0 -1
  378. package/src/core/services/MarkerService.ts +0 -923
@@ -1,4 +1,4 @@
1
- import { ApplicationInterface } from "../contracts/ApplicationInterface";
1
+ import { ApplicationInterface } from "../contracts/ApplicationInterface.js";
2
2
  declare const App: ApplicationInterface;
3
3
  export default App;
4
4
  //# sourceMappingURL=app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/core/bootstrap/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAKzE,QAAA,MAAM,GAAG,EAAE,oBAAkD,CAAC;AAoD9D,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/core/bootstrap/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAQ5E,QAAA,MAAM,GAAG,EAAE,oBAAkD,CAAC;AA2H9D,eAAe,GAAG,CAAC"}
@@ -1,9 +1,46 @@
1
- import { app } from "../hellpers/app";
2
- import { buildDefaultProviders, resolveProviderOrder } from "./providers";
1
+ import { app } from "../helpers/app.js";
2
+ import { buildDefaultProviders, resolveProviderOrder } from "./providers/index.js";
3
+ import { readSSRBoot, readBootConfig, mergeBootConfig } from "./ssr.js";
4
+ import { bootBundles, loadBundles } from "./bundle.js";
3
5
  const App = app();
4
6
  // ⚠️ Flags PHẢI dùng isOne=false để có thể cập nhật sau init/start
5
7
  App.set('isInitialized', false);
6
8
  App.set('isStarted', false);
9
+ /**
10
+ * Hàng đợi `App.push(fn)` — cửa cho mã KHÔNG đi qua bundler (snippet trong
11
+ * layout, plugin bên thứ ba, thư viện nạp bất đồng bộ).
12
+ *
13
+ * Mẫu `dataLayer.push`: trước khi file này chạy, `window.App` là một MẢNG và
14
+ * `.push(fn)` chỉ xếp hàng. Ở đây ta rút hàng đợi rồi thay bằng App thật, và
15
+ * gắn `App.push` = chạy NGAY. Nhờ vậy CÙNG MỘT dòng gọi
16
+ *
17
+ * (window.App = window.App || []).push(fn)
18
+ *
19
+ * hoạt động ở cả ba mốc: trước khi app.js tải, trong lúc parse, và sau khi app
20
+ * đã boot. Tác giả plugin không phải biết mình chạy lúc nào.
21
+ *
22
+ * ⚠️ Hệ quả: `window.App` là MẢNG cho tới lúc boot. Đọc App phải đọc TRONG
23
+ * callback, đừng đọc ở tầng module.
24
+ */
25
+ function drainPushQueue() {
26
+ if (typeof window === 'undefined')
27
+ return;
28
+ const w = window;
29
+ const pending = Array.isArray(w.App) ? w.App : [];
30
+ App.push = (fn) => {
31
+ if (typeof fn !== 'function')
32
+ return;
33
+ try {
34
+ fn(App);
35
+ }
36
+ catch (err) {
37
+ console.error('[App.push] callback ném lỗi:', err);
38
+ }
39
+ };
40
+ w.App = App;
41
+ for (const fn of pending)
42
+ App.push(fn);
43
+ }
7
44
  /**
8
45
  * Khởi tạo app — đăng ký + boot tất cả providers theo dependency order.
9
46
  *
@@ -30,18 +67,51 @@ App.setMethod('init', function (config = {}) {
30
67
  /**
31
68
  * Start app — init nếu chưa, rồi start Router.
32
69
  *
70
+ * Nếu phát hiện SSR boot (script saola-ssr), inject vào config.view.ssr để
71
+ * ViewManager + Router hydrate route đầu tiên thay vì mount mới.
72
+ *
33
73
  * @example
34
74
  * App.start(); // init với config mặc định
35
75
  * App.start({ view: { container: '#app' } }); // init với config tùy chỉnh
36
76
  */
37
- App.setMethod('start', function (config) {
77
+ App.setMethod('start', async function (config) {
38
78
  if (App.isStarted) {
39
79
  console.warn('[Bootstrap] App already started.');
40
80
  return;
41
81
  }
82
+ let bundles = null;
42
83
  if (!App.isInitialized) {
43
- App.init(config || {});
84
+ // Config app truyền có ưu tiên hơn boot config (window.APP_CONFIGS:
85
+ // routes + container từ server). Thiếu APP_CONFIGS → chỉ dùng config app.
86
+ const boot = readBootConfig() || {};
87
+ const cfg = mergeBootConfig(boot, config || {});
88
+ // SSR boot (script saola-ssr) → ssr + container cho hydrate route đầu.
89
+ const ssr = readSSRBoot();
90
+ if (ssr) {
91
+ cfg.view = {
92
+ ...(cfg.view || {}),
93
+ ssr: { view: ssr.view, viewId: ssr.viewId },
94
+ container: (cfg.view && cfg.view.container) || ssr.container,
95
+ };
96
+ }
97
+ // Bundle nạp rời (theme…): server phát danh sách URL trong
98
+ // APP_CONFIGS.bundles. Phải await TRƯỚC init để view/service/provider
99
+ // của chúng có mặt lúc provider boot và lúc render route đầu.
100
+ bundles = await loadBundles(cfg.bundles);
101
+ cfg.view = {
102
+ ...(cfg.view || {}),
103
+ // Bundle nạp sau ĐÈ registry của app — đúng ngữ nghĩa overlay theme.
104
+ registry: { ...(cfg.view?.registry || {}), ...bundles.views },
105
+ };
106
+ cfg.services = { ...(cfg.services || {}), ...bundles.services };
107
+ cfg.helpers = { ...(cfg.helpers || {}), ...bundles.helpers };
108
+ cfg.providers = [...(cfg.providers || []), ...bundles.providers];
109
+ App.init(cfg);
110
+ bootBundles(bundles, App);
44
111
  }
112
+ // Sau init (View/Router/Helper đã có), TRƯỚC khi render: chỗ duy nhất mà
113
+ // mã ngoài cắm vào được mà chắc chắn kịp.
114
+ drainPushQueue();
45
115
  App.get('Router').start();
46
116
  App.isStarted = true;
47
117
  }, true);
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/core/bootstrap/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,GAAG,GAAyB,GAAG,EAAwB,CAAC;AAE9D,mEAAmE;AACnE,GAAG,CAAC,GAAG,CAAU,eAAe,EAAE,KAAK,CAAC,CAAC;AACzC,GAAG,CAAC,GAAG,CAAU,WAAW,EAAE,KAAK,CAAC,CAAC;AAErC;;;;;;;;;;GAUG;AACH,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,SAA8B,EAAE;IAC5D,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrD,OAAO;IACX,CAAC;IAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,IAAI,EAAE,CAAC;IACX,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;AAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;AAET;;;;;;GAMG;AACH,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,MAA4B;IACzD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACjD,OAAO;IACX,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAClC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;AACzB,CAAC,EAAE,IAAI,CAAC,CAAC;AAET,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/core/bootstrap/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Bundle nạp rời — hợp đồng + loader.
3
+ *
4
+ * Bài toán: một gói build ĐỘC LẬP (theme) phải cắm được view / service /
5
+ * helper / provider vào app đang chạy, mà không chia sẻ module graph với app.
6
+ * Cầu nối là import map: `@saolabs/client` của gói đó resolve về đúng file
7
+ * entry của app, nên hai bên dùng CHUNG một instance runtime. Xem
8
+ * docs/EXTENSION_ARCHITECTURE.md §7.
9
+ */
10
+ import type { ApplicationInterface } from "../contracts/ApplicationInterface.js";
11
+ import type { MergedBundles, SaolaBundle } from "../contracts/BundleInterface.js";
12
+ /**
13
+ * Khai báo một bundle. Chỉ là identity + kiểu — nó tồn tại để tên khoá là HỢP
14
+ * ĐỒNG chứ không phải quy ước truyền miệng, và để IDE gợi ý được.
15
+ *
16
+ * @example
17
+ * export default defineBundle({
18
+ * name: 'theme:aurora',
19
+ * views: { 'themes.aurora.modules.ping.index': factory },
20
+ * });
21
+ */
22
+ export declare function defineBundle(bundle: SaolaBundle): SaolaBundle;
23
+ /**
24
+ * Gộp nhiều manifest theo ĐÚNG THỨ TỰ mảng — không theo thứ tự resolve của
25
+ * mạng. Bundle sau ĐÈ bundle trước ở `views`/`services`/`helpers`; `providers`
26
+ * thì CỘNG THÊM chứ không thay, để một bundle không gỡ được provider của app.
27
+ */
28
+ export declare function mergeBundles(bundles: Array<SaolaBundle | null | undefined>): MergedBundles;
29
+ /**
30
+ * Nạp danh sách URL bundle rồi gộp lại.
31
+ *
32
+ * Tải SONG SONG nhưng gộp theo thứ tự mảng — thứ tự URL là thứ tự ưu tiên do
33
+ * server quyết định (`APP_CONFIGS.bundles`), không phải do mạng.
34
+ *
35
+ * Một URL hỏng KHÔNG làm sập boot: ghi vào `failed` rồi đi tiếp. Theme lỗi thì
36
+ * site chạy bằng view gốc, còn hơn trắng trang.
37
+ */
38
+ export declare function loadBundles(urls: string[] | null | undefined): Promise<MergedBundles>;
39
+ /** Chạy `boot()` của các bundle, sau khi App đã init. Lỗi một cái không chặn cái sau. */
40
+ export declare function bootBundles(merged: MergedBundles, app: ApplicationInterface): void;
41
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../src/core/bootstrap/bundle.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGlF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,aAAa,CAc1F;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CA2B3F;AAED,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAQlF"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Bundle nạp rời — hợp đồng + loader.
3
+ *
4
+ * Bài toán: một gói build ĐỘC LẬP (theme) phải cắm được view / service /
5
+ * helper / provider vào app đang chạy, mà không chia sẻ module graph với app.
6
+ * Cầu nối là import map: `@saolabs/client` của gói đó resolve về đúng file
7
+ * entry của app, nên hai bên dùng CHUNG một instance runtime. Xem
8
+ * docs/EXTENSION_ARCHITECTURE.md §7.
9
+ */
10
+ import logger from "../services/LoggerService.js";
11
+ /**
12
+ * Khai báo một bundle. Chỉ là identity + kiểu — nó tồn tại để tên khoá là HỢP
13
+ * ĐỒNG chứ không phải quy ước truyền miệng, và để IDE gợi ý được.
14
+ *
15
+ * @example
16
+ * export default defineBundle({
17
+ * name: 'theme:aurora',
18
+ * views: { 'themes.aurora.modules.ping.index': factory },
19
+ * });
20
+ */
21
+ export function defineBundle(bundle) {
22
+ return bundle;
23
+ }
24
+ function emptyMerged() {
25
+ return { providers: [], services: {}, helpers: {}, views: {}, boots: [], loaded: [], failed: [] };
26
+ }
27
+ /**
28
+ * Gộp nhiều manifest theo ĐÚNG THỨ TỰ mảng — không theo thứ tự resolve của
29
+ * mạng. Bundle sau ĐÈ bundle trước ở `views`/`services`/`helpers`; `providers`
30
+ * thì CỘNG THÊM chứ không thay, để một bundle không gỡ được provider của app.
31
+ */
32
+ export function mergeBundles(bundles) {
33
+ const out = emptyMerged();
34
+ for (const bundle of bundles) {
35
+ if (!bundle || typeof bundle !== 'object')
36
+ continue;
37
+ out.loaded.push(bundle.name ?? '(không tên)');
38
+ if (Array.isArray(bundle.providers))
39
+ out.providers.push(...bundle.providers);
40
+ if (bundle.services)
41
+ Object.assign(out.services, bundle.services);
42
+ if (bundle.helpers)
43
+ Object.assign(out.helpers, bundle.helpers);
44
+ if (bundle.views)
45
+ Object.assign(out.views, bundle.views);
46
+ if (typeof bundle.boot === 'function')
47
+ out.boots.push(bundle.boot.bind(bundle));
48
+ }
49
+ return out;
50
+ }
51
+ /**
52
+ * Nạp danh sách URL bundle rồi gộp lại.
53
+ *
54
+ * Tải SONG SONG nhưng gộp theo thứ tự mảng — thứ tự URL là thứ tự ưu tiên do
55
+ * server quyết định (`APP_CONFIGS.bundles`), không phải do mạng.
56
+ *
57
+ * Một URL hỏng KHÔNG làm sập boot: ghi vào `failed` rồi đi tiếp. Theme lỗi thì
58
+ * site chạy bằng view gốc, còn hơn trắng trang.
59
+ */
60
+ export async function loadBundles(urls) {
61
+ if (!Array.isArray(urls) || urls.length === 0)
62
+ return emptyMerged();
63
+ const results = await Promise.all(urls.map(async (url) => {
64
+ try {
65
+ // URL đến từ runtime nên bundler không phân tích tĩnh được — đúng ý
66
+ // đồ. Viết literal ở đây sẽ làm GÃY build của app (rollup cố resolve
67
+ // một đường dẫn không có trong module graph).
68
+ const mod = await import(/* @vite-ignore */ /* webpackIgnore: true */ url);
69
+ // Bundle có thể khai manifest (export default) HOẶC tự đăng ký ngay
70
+ // trong thân module qua App.View/App.set — import đã await xong nên
71
+ // cả hai đều kịp trước khi render.
72
+ return [url, (mod?.default ?? null), null];
73
+ }
74
+ catch (err) {
75
+ return [url, null, String(err)];
76
+ }
77
+ }));
78
+ const merged = mergeBundles(results.map(([, bundle]) => bundle));
79
+ for (const [url, , error] of results) {
80
+ if (error) {
81
+ merged.failed.push([url, error]);
82
+ logger.error(`[Bundle] Không nạp được "${url}": ${error}`);
83
+ }
84
+ }
85
+ return merged;
86
+ }
87
+ /** Chạy `boot()` của các bundle, sau khi App đã init. Lỗi một cái không chặn cái sau. */
88
+ export function bootBundles(merged, app) {
89
+ for (const boot of merged.boots) {
90
+ try {
91
+ boot(app);
92
+ }
93
+ catch (err) {
94
+ logger.error('[Bundle] boot() ném lỗi:', err);
95
+ }
96
+ }
97
+ }
98
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../src/core/bootstrap/bundle.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ServiceProvider } from "./ServiceProvider.js";
2
2
  export declare class ApiServiceProvider extends ServiceProvider {
3
3
  readonly name: "api";
4
4
  readonly dependsOn: "core"[];
@@ -1 +1 @@
1
- {"version":3,"file":"ApiServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ApiServiceProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAmB,SAAQ,eAAe;IACnD,QAAQ,CAAC,IAAI,QAAsB;IACnC,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"ApiServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ApiServiceProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,kBAAmB,SAAQ,eAAe;IACnD,QAAQ,CAAC,IAAI,QAAsB;IACnC,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAGf"}
@@ -1,6 +1,6 @@
1
- import { ApiClient } from "../../hellpers/ApiClient";
2
- import { PROVIDER_NAMES } from "./provider-order";
3
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ApiClient } from "../../helpers/ApiClient.js";
2
+ import { PROVIDER_NAMES } from "./provider-order.js";
3
+ import { ServiceProvider } from "./ServiceProvider.js";
4
4
  export class ApiServiceProvider extends ServiceProvider {
5
5
  constructor() {
6
6
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"ApiServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ApiServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAAvD;;QACa,SAAI,GAAG,cAAc,CAAC,GAAG,CAAC;QAC1B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAU/C,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,KAAK,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;;AARM,yBAAM,GAAwB,EAAE,AAA1B,CAA2B"}
1
+ {"version":3,"file":"ApiServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ApiServiceProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IAAvD;;QACa,SAAI,GAAG,cAAc,CAAC,GAAG,CAAC;QAC1B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAU/C,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,KAAK,EAAE,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;;AARM,yBAAM,GAAwB,EAAE,AAA1B,CAA2B"}
@@ -1,4 +1,4 @@
1
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ServiceProvider } from "./ServiceProvider.js";
2
2
  export declare class CoreServiceProvider extends ServiceProvider {
3
3
  readonly name: "core";
4
4
  register(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/CoreServiceProvider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,mBAAoB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,SAAuB;IAEpC,QAAQ,IAAI,IAAI;CAOnB"}
1
+ {"version":3,"file":"CoreServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/CoreServiceProvider.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,mBAAoB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,SAAuB;IAEpC,QAAQ,IAAI,IAAI;CASnB"}
@@ -1,21 +1,24 @@
1
- import { app } from "../../hellpers/app";
2
- import { EventService } from "../../services/EventService";
3
- import { HttpService } from "../../services/HttpService";
4
- import { MarkerService } from "../../services/MarkerService";
5
- import { StoreService } from "../../services/StoreService";
6
- import { PROVIDER_NAMES } from "./provider-order";
7
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { MarkerRegistry } from "../../services/index.js";
2
+ import { EventService } from "../../services/EventService.js";
3
+ import { HttpService } from "../../services/HttpService.js";
4
+ import { StoreService } from "../../services/StoreService.js";
5
+ import HeadService from "../../services/HeadService.js";
6
+ import { Devtools } from "../../devtools/index.js";
7
+ import { PROVIDER_NAMES } from "./provider-order.js";
8
+ import { ServiceProvider } from "./ServiceProvider.js";
8
9
  export class CoreServiceProvider extends ServiceProvider {
9
10
  constructor() {
10
11
  super(...arguments);
11
12
  this.name = PROVIDER_NAMES.CORE;
12
13
  }
13
14
  register() {
14
- this.app.set("Marker", app(MarkerService), true);
15
15
  this.app.set("Store", StoreService.instance(), true);
16
16
  this.app.set("Storage", StoreService.instance(), true);
17
17
  this.app.set("Event", EventService.instance(), true);
18
18
  this.app.set("Http", HttpService.instance(), true);
19
+ this.app.set("Registry", MarkerRegistry, true);
20
+ this.app.set("Head", HeadService, true);
21
+ this.app.set("Devtools", Devtools, true);
19
22
  }
20
23
  }
21
24
  //# sourceMappingURL=CoreServiceProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoreServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/CoreServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAAxD;;QACa,SAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IASxC,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgB,QAAQ,EAAE,GAAG,CAAgB,aAAa,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;CACJ"}
1
+ {"version":3,"file":"CoreServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/CoreServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAyB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAAxD;;QACa,SAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IAWxC,CAAC;IATG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAe,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAA0B,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAuB,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACJ"}
@@ -1,7 +1,9 @@
1
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ServiceProvider } from "./ServiceProvider.js";
2
2
  export declare class HelperServiceProvider extends ServiceProvider {
3
3
  readonly name: "helper";
4
4
  readonly dependsOn: ("view" | "core" | "router")[];
5
+ static config: Record<string, any>;
5
6
  register(): void;
7
+ boot(): void;
6
8
  }
7
9
  //# sourceMappingURL=HelperServiceProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelperServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/HelperServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,qBAAsB,SAAQ,eAAe;IACtD,QAAQ,CAAC,IAAI,WAAyB;IACtC,QAAQ,CAAC,SAAS,iCAAqE;IAEvF,QAAQ,IAAI,IAAI;CAGnB"}
1
+ {"version":3,"file":"HelperServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/HelperServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,qBAAsB,SAAQ,eAAe;IACtD,QAAQ,CAAC,IAAI,WAAyB;IACtC,QAAQ,CAAC,SAAS,iCAAqE;IAEvF,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAGhB,IAAI,IAAI,IAAI;CAGf"}
@@ -1,6 +1,6 @@
1
- import { HelperService } from "../../services/HelperService";
2
- import { PROVIDER_NAMES } from "./provider-order";
3
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { HelperService } from "../../services/HelperService.js";
2
+ import { PROVIDER_NAMES } from "./provider-order.js";
3
+ import { ServiceProvider } from "./ServiceProvider.js";
4
4
  export class HelperServiceProvider extends ServiceProvider {
5
5
  constructor() {
6
6
  super(...arguments);
@@ -10,5 +10,10 @@ export class HelperServiceProvider extends ServiceProvider {
10
10
  register() {
11
11
  this.app.set("Helper", new HelperService(this.app), true);
12
12
  }
13
+ boot() {
14
+ if (HelperServiceProvider.config.i18n)
15
+ this.app.get("Helper").initTranslations(HelperServiceProvider.config.i18n);
16
+ }
13
17
  }
18
+ HelperServiceProvider.config = {};
14
19
  //# sourceMappingURL=HelperServiceProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelperServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/HelperServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAA1D;;QACa,SAAI,GAAG,cAAc,CAAC,MAAM,CAAC;QAC7B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAK3F,CAAC;IAHG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgB,QAAQ,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;CACJ"}
1
+ {"version":3,"file":"HelperServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/HelperServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAA1D;;QACa,SAAI,GAAG,cAAc,CAAC,MAAM,CAAC;QAC7B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAU3F,CAAC;IANG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgB,QAAQ,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI;QACA,IAAI,qBAAqB,CAAC,MAAM,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAgB,QAAQ,CAAC,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrI,CAAC;;AAPM,4BAAM,GAAwB,EAAE,AAA1B,CAA2B"}
@@ -1,6 +1,7 @@
1
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ServiceProvider } from "./ServiceProvider.js";
2
2
  export declare class RouteServiceProvider extends ServiceProvider {
3
3
  readonly name: "router";
4
+ /** ROUTER phải boot SAU VIEW để ViewManager đã sẵn sàng */
4
5
  readonly dependsOn: "view"[];
5
6
  static config: Record<string, any>;
6
7
  register(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"RouteServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/RouteServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,oBAAqB,SAAQ,eAAe;IACrD,QAAQ,CAAC,IAAI,WAAyB;IACtC,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"RouteServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/RouteServiceProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,oBAAqB,SAAQ,eAAe;IACrD,QAAQ,CAAC,IAAI,WAAyB;IACtC,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAYf"}
@@ -1,17 +1,27 @@
1
- import { Router } from "../../routers";
2
- import { PROVIDER_NAMES } from "./provider-order";
3
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { Router } from "../../routers/index.js";
2
+ import { PROVIDER_NAMES } from "./provider-order.js";
3
+ import { ServiceProvider } from "./ServiceProvider.js";
4
4
  export class RouteServiceProvider extends ServiceProvider {
5
5
  constructor() {
6
6
  super(...arguments);
7
7
  this.name = PROVIDER_NAMES.ROUTER;
8
+ /** ROUTER phải boot SAU VIEW để ViewManager đã sẵn sàng */
8
9
  this.dependsOn = [PROVIDER_NAMES.VIEW];
9
10
  }
10
11
  register() {
11
12
  this.app.set("Router", new Router(this.app), true);
12
13
  }
13
14
  boot() {
14
- this.app.get("Router").init(RouteServiceProvider.config);
15
+ const router = this.app.get("Router");
16
+ // Wire ViewManager → Router (Router cần để mountView khi navigate)
17
+ try {
18
+ const vm = this.app.get("View");
19
+ if (vm)
20
+ router.setViewManager(vm);
21
+ }
22
+ catch (_) { /* View chưa register — Router sẽ fallback qua App.View */ }
23
+ // init: load routes config + auto-wire
24
+ router.init(RouteServiceProvider.config);
15
25
  }
16
26
  }
17
27
  RouteServiceProvider.config = {};
@@ -1 +1 @@
1
- {"version":3,"file":"RouteServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/RouteServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAAzD;;QACa,SAAI,GAAG,cAAc,CAAC,MAAM,CAAC;QAC7B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAU/C,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;;AARM,2BAAM,GAAwB,EAAE,AAA1B,CAA2B"}
1
+ {"version":3,"file":"RouteServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/RouteServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAAzD;;QACa,SAAI,GAAG,cAAc,CAAC,MAAM,CAAC;QACtC,2DAA2D;QAClD,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAmB/C,CAAC;IAhBG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,QAAQ,CAAC,CAAC;QAE9C,mEAAmE;QACnE,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,CAAC,CAAC;YAC7C,IAAI,EAAE;gBAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0DAA0D,CAAC,CAAC;QAE1E,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;;AAjBM,2BAAM,GAAwB,EAAE,AAA1B,CAA2B"}
@@ -1,6 +1,6 @@
1
- import { ApplicationInterface } from "../../contracts/ApplicationInterface";
2
- import { ServiceProviderInterface } from "../../contracts/utils";
3
- import { OneObjectType } from "../../types/utils";
1
+ import { ApplicationInterface } from "../../contracts/ApplicationInterface.js";
2
+ import { ServiceProviderInterface } from "../../contracts/utils.js";
3
+ import { SaoObjectType } from "../../types/utils.js";
4
4
  /**
5
5
  * Base class cho Service Provider — API giống Laravel.
6
6
  *
@@ -24,7 +24,7 @@ import { OneObjectType } from "../../types/utils";
24
24
  * }
25
25
  */
26
26
  export declare abstract class ServiceProvider implements ServiceProviderInterface {
27
- readonly oneType: OneObjectType;
27
+ readonly saoType: SaoObjectType;
28
28
  abstract readonly name: string;
29
29
  readonly dependsOn?: string[];
30
30
  protected app: ApplicationInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAW,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,eAAgB,YAAW,wBAAwB;IACrE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAA4B;IAC3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC;gBAExB,WAAW,CAAC,EAAE,oBAAoB;IAK9C,eAAe,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAMjD,iDAAiD;IACjD,QAAQ,IAAI,IAAI;IAEhB,qEAAqE;IACrE,IAAI,IAAI,IAAI;CACf"}
1
+ {"version":3,"file":"ServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAW,MAAM,sBAAsB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,eAAgB,YAAW,wBAAwB;IACrE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAA4B;IAC3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC;gBAExB,WAAW,CAAC,EAAE,oBAAoB;IAK9C,eAAe,CAAC,GAAG,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAMjD,iDAAiD;IACjD,QAAQ,IAAI,IAAI;IAEhB,qEAAqE;IACrE,IAAI,IAAI,IAAI;CACf"}
@@ -1,5 +1,5 @@
1
- import { app } from "../../hellpers/app";
2
- import { OOTEnum } from "../../types/utils";
1
+ import { app } from "../../helpers/app.js";
2
+ import { OOTEnum } from "../../types/utils.js";
3
3
  /**
4
4
  * Base class cho Service Provider — API giống Laravel.
5
5
  *
@@ -24,13 +24,13 @@ import { OOTEnum } from "../../types/utils";
24
24
  */
25
25
  export class ServiceProvider {
26
26
  constructor(application) {
27
- this.oneType = OOTEnum.SERVICE_PROVIDER;
27
+ this.saoType = OOTEnum.SERVICE_PROVIDER;
28
28
  this.app = application ?? app();
29
29
  this.initApplication();
30
30
  }
31
31
  initApplication(App) {
32
- if (!this.app || typeof this.app !== 'object' || this.app.oneType !== OOTEnum.APPLICATION) {
33
- this.app = (App && App.oneType === OOTEnum.APPLICATION) ? App : app();
32
+ if (!this.app || typeof this.app !== 'object' || this.app.saoType !== OOTEnum.APPLICATION) {
33
+ this.app = (App && App.saoType === OOTEnum.APPLICATION) ? App : app();
34
34
  }
35
35
  }
36
36
  /** Override để đăng ký services vào container */
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAiB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAgB,eAAe;IAMjC,YAAY,WAAkC;QALrC,YAAO,GAAkB,OAAO,CAAC,gBAAgB,CAAC;QAMvD,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,GAAG,EAAwB,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,GAA0B;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACxF,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAwB,CAAC;QAChG,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,QAAQ,KAAU,CAAC;IAEnB,qEAAqE;IACrE,IAAI,KAAU,CAAC;CAClB"}
1
+ {"version":3,"file":"ServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAiB,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAgB,eAAe;IAMjC,YAAY,WAAkC;QALrC,YAAO,GAAkB,OAAO,CAAC,gBAAgB,CAAC;QAMvD,IAAI,CAAC,GAAG,GAAG,WAAW,IAAI,GAAG,EAAwB,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,GAA0B;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACxF,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAwB,CAAC;QAChG,CAAC;IACL,CAAC;IAED,iDAAiD;IACjD,QAAQ,KAAU,CAAC;IAEnB,qEAAqE;IACrE,IAAI,KAAU,CAAC;CAClB"}
@@ -1,4 +1,4 @@
1
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ServiceProvider } from "./ServiceProvider.js";
2
2
  export declare class ViewServiceProvider extends ServiceProvider {
3
3
  readonly name: "view";
4
4
  readonly dependsOn: "core"[];
@@ -1 +1 @@
1
- {"version":3,"file":"ViewServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ViewServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,mBAAoB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,SAAuB;IACpC,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAGf"}
1
+ {"version":3,"file":"ViewServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ViewServiceProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,mBAAoB,SAAQ,eAAe;IACpD,QAAQ,CAAC,IAAI,SAAuB;IACpC,QAAQ,CAAC,SAAS,WAAyB;IAC3C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAExC,QAAQ,IAAI,IAAI;IAIhB,IAAI,IAAI,IAAI;CAGf"}
@@ -1,6 +1,6 @@
1
- import { ViewManager } from "../../view";
2
- import { PROVIDER_NAMES } from "./provider-order";
3
- import { ServiceProvider } from "./ServiceProvider";
1
+ import { ViewManager } from "../../view/index.js";
2
+ import { PROVIDER_NAMES } from "./provider-order.js";
3
+ import { ServiceProvider } from "./ServiceProvider.js";
4
4
  export class ViewServiceProvider extends ServiceProvider {
5
5
  constructor() {
6
6
  super(...arguments);
@@ -1 +1 @@
1
- {"version":3,"file":"ViewServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ViewServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAAxD;;QACa,SAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QAC3B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAU/C,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;;AARM,0BAAM,GAAwB,EAAE,AAA1B,CAA2B"}
1
+ {"version":3,"file":"ViewServiceProvider.js","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/ViewServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAO,mBAAoB,SAAQ,eAAe;IAAxD;;QACa,SAAI,GAAG,cAAc,CAAC,IAAI,CAAC;QAC3B,cAAS,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAU/C,CAAC;IAPG,QAAQ;QACJ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAc,MAAM,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;;AARM,0BAAM,GAAwB,EAAE,AAA1B,CAA2B"}
@@ -1,4 +1,4 @@
1
- import { NamedServiceProvider } from "./provider-order";
1
+ import { NamedServiceProvider } from "./provider-order.js";
2
2
  /**
3
3
  * Tạo danh sách providers mặc định.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"default-providers.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/default-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAkB,MAAM,kBAAkB,CAAC;AA6CxE;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,oBAAoB,EAAE,CAmC9F"}
1
+ {"version":3,"file":"default-providers.d.ts","sourceRoot":"","sources":["../../../../../src/core/bootstrap/providers/default-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAkB,MAAM,qBAAqB,CAAC;AA0E3E;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,oBAAoB,EAAE,CAyC9F"}