@saolabs/client 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +221 -0
  2. package/dist/index.d.ts +46 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +38 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/plugins.d.ts +38 -0
  7. package/dist/plugins.d.ts.map +1 -0
  8. package/dist/plugins.js +61 -0
  9. package/dist/plugins.js.map +1 -0
  10. package/dist/src/core/app/Application.d.ts +159 -0
  11. package/dist/src/core/app/Application.d.ts.map +1 -0
  12. package/dist/src/core/app/Application.js +338 -0
  13. package/dist/src/core/app/Application.js.map +1 -0
  14. package/dist/src/core/bootstrap/app.d.ts +4 -0
  15. package/dist/src/core/bootstrap/app.d.ts.map +1 -0
  16. package/dist/src/core/bootstrap/app.js +49 -0
  17. package/dist/src/core/bootstrap/app.js.map +1 -0
  18. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts +9 -0
  19. package/dist/src/core/bootstrap/providers/ApiServiceProvider.d.ts.map +1 -0
  20. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js +18 -0
  21. package/dist/src/core/bootstrap/providers/ApiServiceProvider.js.map +1 -0
  22. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts +6 -0
  23. package/dist/src/core/bootstrap/providers/CoreServiceProvider.d.ts.map +1 -0
  24. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js +21 -0
  25. package/dist/src/core/bootstrap/providers/CoreServiceProvider.js.map +1 -0
  26. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts +7 -0
  27. package/dist/src/core/bootstrap/providers/HelperServiceProvider.d.ts.map +1 -0
  28. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js +14 -0
  29. package/dist/src/core/bootstrap/providers/HelperServiceProvider.js.map +1 -0
  30. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts +9 -0
  31. package/dist/src/core/bootstrap/providers/RouteServiceProvider.d.ts.map +1 -0
  32. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js +18 -0
  33. package/dist/src/core/bootstrap/providers/RouteServiceProvider.js.map +1 -0
  34. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts +38 -0
  35. package/dist/src/core/bootstrap/providers/ServiceProvider.d.ts.map +1 -0
  36. package/dist/src/core/bootstrap/providers/ServiceProvider.js +41 -0
  37. package/dist/src/core/bootstrap/providers/ServiceProvider.js.map +1 -0
  38. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts +9 -0
  39. package/dist/src/core/bootstrap/providers/ViewServiceProvider.d.ts.map +1 -0
  40. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js +18 -0
  41. package/dist/src/core/bootstrap/providers/ViewServiceProvider.js.map +1 -0
  42. package/dist/src/core/bootstrap/providers/default-providers.d.ts +14 -0
  43. package/dist/src/core/bootstrap/providers/default-providers.d.ts.map +1 -0
  44. package/dist/src/core/bootstrap/providers/default-providers.js +79 -0
  45. package/dist/src/core/bootstrap/providers/default-providers.js.map +1 -0
  46. package/dist/src/core/bootstrap/providers/index.d.ts +10 -0
  47. package/dist/src/core/bootstrap/providers/index.d.ts.map +1 -0
  48. package/dist/src/core/bootstrap/providers/index.js +9 -0
  49. package/dist/src/core/bootstrap/providers/index.js.map +1 -0
  50. package/dist/src/core/bootstrap/providers/provider-order.d.ts +19 -0
  51. package/dist/src/core/bootstrap/providers/provider-order.d.ts.map +1 -0
  52. package/dist/src/core/bootstrap/providers/provider-order.js +51 -0
  53. package/dist/src/core/bootstrap/providers/provider-order.js.map +1 -0
  54. package/dist/src/core/cache/ViewCache.d.ts +46 -0
  55. package/dist/src/core/cache/ViewCache.d.ts.map +1 -0
  56. package/dist/src/core/cache/ViewCache.js +85 -0
  57. package/dist/src/core/cache/ViewCache.js.map +1 -0
  58. package/dist/src/core/cache/index.d.ts +2 -0
  59. package/dist/src/core/cache/index.d.ts.map +1 -0
  60. package/dist/src/core/cache/index.js +2 -0
  61. package/dist/src/core/cache/index.js.map +1 -0
  62. package/dist/src/core/contracts/ApiInterface.d.ts +11 -0
  63. package/dist/src/core/contracts/ApiInterface.d.ts.map +1 -0
  64. package/dist/src/core/contracts/ApiInterface.js +2 -0
  65. package/dist/src/core/contracts/ApiInterface.js.map +1 -0
  66. package/dist/src/core/contracts/ApplicationInterface.d.ts +66 -0
  67. package/dist/src/core/contracts/ApplicationInterface.d.ts.map +1 -0
  68. package/dist/src/core/contracts/ApplicationInterface.js +3 -0
  69. package/dist/src/core/contracts/ApplicationInterface.js.map +1 -0
  70. package/dist/src/core/contracts/BlockInterface.d.ts +67 -0
  71. package/dist/src/core/contracts/BlockInterface.d.ts.map +1 -0
  72. package/dist/src/core/contracts/BlockInterface.js +2 -0
  73. package/dist/src/core/contracts/BlockInterface.js.map +1 -0
  74. package/dist/src/core/contracts/ComponentInterface.d.ts +24 -0
  75. package/dist/src/core/contracts/ComponentInterface.d.ts.map +1 -0
  76. package/dist/src/core/contracts/ComponentInterface.js +2 -0
  77. package/dist/src/core/contracts/ComponentInterface.js.map +1 -0
  78. package/dist/src/core/contracts/ElementInterface.d.ts +117 -0
  79. package/dist/src/core/contracts/ElementInterface.d.ts.map +1 -0
  80. package/dist/src/core/contracts/ElementInterface.js +2 -0
  81. package/dist/src/core/contracts/ElementInterface.js.map +1 -0
  82. package/dist/src/core/contracts/EventServiceInterface.d.ts +37 -0
  83. package/dist/src/core/contracts/EventServiceInterface.d.ts.map +1 -0
  84. package/dist/src/core/contracts/EventServiceInterface.js +3 -0
  85. package/dist/src/core/contracts/EventServiceInterface.js.map +1 -0
  86. package/dist/src/core/contracts/HelperInterface.d.ts +231 -0
  87. package/dist/src/core/contracts/HelperInterface.d.ts.map +1 -0
  88. package/dist/src/core/contracts/HelperInterface.js +3 -0
  89. package/dist/src/core/contracts/HelperInterface.js.map +1 -0
  90. package/dist/src/core/contracts/HttpServiceInterface.d.ts +38 -0
  91. package/dist/src/core/contracts/HttpServiceInterface.d.ts.map +1 -0
  92. package/dist/src/core/contracts/HttpServiceInterface.js +3 -0
  93. package/dist/src/core/contracts/HttpServiceInterface.js.map +1 -0
  94. package/dist/src/core/contracts/LoggerServiceInterface.d.ts +37 -0
  95. package/dist/src/core/contracts/LoggerServiceInterface.d.ts.map +1 -0
  96. package/dist/src/core/contracts/LoggerServiceInterface.js +3 -0
  97. package/dist/src/core/contracts/LoggerServiceInterface.js.map +1 -0
  98. package/dist/src/core/contracts/LoopContextInterface.d.ts +14 -0
  99. package/dist/src/core/contracts/LoopContextInterface.d.ts.map +1 -0
  100. package/dist/src/core/contracts/LoopContextInterface.js +3 -0
  101. package/dist/src/core/contracts/LoopContextInterface.js.map +1 -0
  102. package/dist/src/core/contracts/MarkerInterface.d.ts +55 -0
  103. package/dist/src/core/contracts/MarkerInterface.d.ts.map +1 -0
  104. package/dist/src/core/contracts/MarkerInterface.js +2 -0
  105. package/dist/src/core/contracts/MarkerInterface.js.map +1 -0
  106. package/dist/src/core/contracts/ReactiveInterface.d.ts +38 -0
  107. package/dist/src/core/contracts/ReactiveInterface.d.ts.map +1 -0
  108. package/dist/src/core/contracts/ReactiveInterface.js +2 -0
  109. package/dist/src/core/contracts/ReactiveInterface.js.map +1 -0
  110. package/dist/src/core/contracts/RouterInterface.d.ts +58 -0
  111. package/dist/src/core/contracts/RouterInterface.d.ts.map +1 -0
  112. package/dist/src/core/contracts/RouterInterface.js +2 -0
  113. package/dist/src/core/contracts/RouterInterface.js.map +1 -0
  114. package/dist/src/core/contracts/ServiceProviderInterface.d.ts +12 -0
  115. package/dist/src/core/contracts/ServiceProviderInterface.d.ts.map +1 -0
  116. package/dist/src/core/contracts/ServiceProviderInterface.js +2 -0
  117. package/dist/src/core/contracts/ServiceProviderInterface.js.map +1 -0
  118. package/dist/src/core/contracts/StorageServiceInterface.d.ts +43 -0
  119. package/dist/src/core/contracts/StorageServiceInterface.d.ts.map +1 -0
  120. package/dist/src/core/contracts/StorageServiceInterface.js +3 -0
  121. package/dist/src/core/contracts/StorageServiceInterface.js.map +1 -0
  122. package/dist/src/core/contracts/StoreServiceInterface.d.ts +45 -0
  123. package/dist/src/core/contracts/StoreServiceInterface.d.ts.map +1 -0
  124. package/dist/src/core/contracts/StoreServiceInterface.js +3 -0
  125. package/dist/src/core/contracts/StoreServiceInterface.js.map +1 -0
  126. package/dist/src/core/contracts/ViewCacheInterface.d.ts +13 -0
  127. package/dist/src/core/contracts/ViewCacheInterface.d.ts.map +1 -0
  128. package/dist/src/core/contracts/ViewCacheInterface.js +3 -0
  129. package/dist/src/core/contracts/ViewCacheInterface.js.map +1 -0
  130. package/dist/src/core/contracts/ViewControllerInterface.d.ts +115 -0
  131. package/dist/src/core/contracts/ViewControllerInterface.d.ts.map +1 -0
  132. package/dist/src/core/contracts/ViewControllerInterface.js +2 -0
  133. package/dist/src/core/contracts/ViewControllerInterface.js.map +1 -0
  134. package/dist/src/core/contracts/ViewInterface.d.ts +24 -0
  135. package/dist/src/core/contracts/ViewInterface.d.ts.map +1 -0
  136. package/dist/src/core/contracts/ViewInterface.js +2 -0
  137. package/dist/src/core/contracts/ViewInterface.js.map +1 -0
  138. package/dist/src/core/contracts/ViewManagerInterface.d.ts +44 -0
  139. package/dist/src/core/contracts/ViewManagerInterface.d.ts.map +1 -0
  140. package/dist/src/core/contracts/ViewManagerInterface.js +2 -0
  141. package/dist/src/core/contracts/ViewManagerInterface.js.map +1 -0
  142. package/dist/src/core/contracts/ViewStateInterface.d.ts +40 -0
  143. package/dist/src/core/contracts/ViewStateInterface.d.ts.map +1 -0
  144. package/dist/src/core/contracts/ViewStateInterface.js +3 -0
  145. package/dist/src/core/contracts/ViewStateInterface.js.map +1 -0
  146. package/dist/src/core/contracts/common.d.ts +28 -0
  147. package/dist/src/core/contracts/common.d.ts.map +1 -0
  148. package/dist/src/core/contracts/common.js +29 -0
  149. package/dist/src/core/contracts/common.js.map +1 -0
  150. package/dist/src/core/contracts/utils.d.ts +20 -0
  151. package/dist/src/core/contracts/utils.d.ts.map +1 -0
  152. package/dist/src/core/contracts/utils.js +4 -0
  153. package/dist/src/core/contracts/utils.js.map +1 -0
  154. package/dist/src/core/contracts/views.d.ts +23 -0
  155. package/dist/src/core/contracts/views.d.ts.map +1 -0
  156. package/dist/src/core/contracts/views.js +2 -0
  157. package/dist/src/core/contracts/views.js.map +1 -0
  158. package/dist/src/core/elements/Block.d.ts +58 -0
  159. package/dist/src/core/elements/Block.d.ts.map +1 -0
  160. package/dist/src/core/elements/Block.js +77 -0
  161. package/dist/src/core/elements/Block.js.map +1 -0
  162. package/dist/src/core/elements/BlockOutlet.d.ts +34 -0
  163. package/dist/src/core/elements/BlockOutlet.d.ts.map +1 -0
  164. package/dist/src/core/elements/BlockOutlet.js +59 -0
  165. package/dist/src/core/elements/BlockOutlet.js.map +1 -0
  166. package/dist/src/core/elements/Component.d.ts +62 -0
  167. package/dist/src/core/elements/Component.d.ts.map +1 -0
  168. package/dist/src/core/elements/Component.js +72 -0
  169. package/dist/src/core/elements/Component.js.map +1 -0
  170. package/dist/src/core/elements/ElementManager.d.ts +23 -0
  171. package/dist/src/core/elements/ElementManager.d.ts.map +1 -0
  172. package/dist/src/core/elements/ElementManager.js +33 -0
  173. package/dist/src/core/elements/ElementManager.js.map +1 -0
  174. package/dist/src/core/elements/Fragment.d.ts +51 -0
  175. package/dist/src/core/elements/Fragment.d.ts.map +1 -0
  176. package/dist/src/core/elements/Fragment.js +133 -0
  177. package/dist/src/core/elements/Fragment.js.map +1 -0
  178. package/dist/src/core/elements/Html.d.ts +52 -0
  179. package/dist/src/core/elements/Html.d.ts.map +1 -0
  180. package/dist/src/core/elements/Html.js +299 -0
  181. package/dist/src/core/elements/Html.js.map +1 -0
  182. package/dist/src/core/elements/Output.d.ts +69 -0
  183. package/dist/src/core/elements/Output.d.ts.map +1 -0
  184. package/dist/src/core/elements/Output.js +121 -0
  185. package/dist/src/core/elements/Output.js.map +1 -0
  186. package/dist/src/core/elements/Reactive.d.ts +77 -0
  187. package/dist/src/core/elements/Reactive.d.ts.map +1 -0
  188. package/dist/src/core/elements/Reactive.js +199 -0
  189. package/dist/src/core/elements/Reactive.js.map +1 -0
  190. package/dist/src/core/elements/TextElement.d.ts +46 -0
  191. package/dist/src/core/elements/TextElement.d.ts.map +1 -0
  192. package/dist/src/core/elements/TextElement.js +94 -0
  193. package/dist/src/core/elements/TextElement.js.map +1 -0
  194. package/dist/src/core/elements/Wrapper.d.ts +50 -0
  195. package/dist/src/core/elements/Wrapper.d.ts.map +1 -0
  196. package/dist/src/core/elements/Wrapper.js +96 -0
  197. package/dist/src/core/elements/Wrapper.js.map +1 -0
  198. package/dist/src/core/elements/Yield.d.ts +34 -0
  199. package/dist/src/core/elements/Yield.d.ts.map +1 -0
  200. package/dist/src/core/elements/Yield.js +56 -0
  201. package/dist/src/core/elements/Yield.js.map +1 -0
  202. package/dist/src/core/elements/helpers.d.ts +8 -0
  203. package/dist/src/core/elements/helpers.d.ts.map +1 -0
  204. package/dist/src/core/elements/helpers.js +40 -0
  205. package/dist/src/core/elements/helpers.js.map +1 -0
  206. package/dist/src/core/elements/index.d.ts +12 -0
  207. package/dist/src/core/elements/index.d.ts.map +1 -0
  208. package/dist/src/core/elements/index.js +12 -0
  209. package/dist/src/core/elements/index.js.map +1 -0
  210. package/dist/src/core/hellpers/ApiClient.d.ts +58 -0
  211. package/dist/src/core/hellpers/ApiClient.d.ts.map +1 -0
  212. package/dist/src/core/hellpers/ApiClient.js +122 -0
  213. package/dist/src/core/hellpers/ApiClient.js.map +1 -0
  214. package/dist/src/core/hellpers/app.d.ts +3 -0
  215. package/dist/src/core/hellpers/app.d.ts.map +1 -0
  216. package/dist/src/core/hellpers/app.js +53 -0
  217. package/dist/src/core/hellpers/app.js.map +1 -0
  218. package/dist/src/core/hellpers/utils.d.ts +26 -0
  219. package/dist/src/core/hellpers/utils.d.ts.map +1 -0
  220. package/dist/src/core/hellpers/utils.js +96 -0
  221. package/dist/src/core/hellpers/utils.js.map +1 -0
  222. package/dist/src/core/routers/Router.d.ts +212 -0
  223. package/dist/src/core/routers/Router.d.ts.map +1 -0
  224. package/dist/src/core/routers/Router.js +623 -0
  225. package/dist/src/core/routers/Router.js.map +1 -0
  226. package/dist/src/core/routers/index.d.ts +3 -0
  227. package/dist/src/core/routers/index.d.ts.map +1 -0
  228. package/dist/src/core/routers/index.js +2 -0
  229. package/dist/src/core/routers/index.js.map +1 -0
  230. package/dist/src/core/services/BlockManager.d.ts +63 -0
  231. package/dist/src/core/services/BlockManager.d.ts.map +1 -0
  232. package/dist/src/core/services/BlockManager.js +191 -0
  233. package/dist/src/core/services/BlockManager.js.map +1 -0
  234. package/dist/src/core/services/DomService.d.ts +9 -0
  235. package/dist/src/core/services/DomService.d.ts.map +1 -0
  236. package/dist/src/core/services/DomService.js +18 -0
  237. package/dist/src/core/services/DomService.js.map +1 -0
  238. package/dist/src/core/services/EventService.d.ts +58 -0
  239. package/dist/src/core/services/EventService.d.ts.map +1 -0
  240. package/dist/src/core/services/EventService.js +212 -0
  241. package/dist/src/core/services/EventService.js.map +1 -0
  242. package/dist/src/core/services/HelperService.d.ts +443 -0
  243. package/dist/src/core/services/HelperService.d.ts.map +1 -0
  244. package/dist/src/core/services/HelperService.js +1650 -0
  245. package/dist/src/core/services/HelperService.js.map +1 -0
  246. package/dist/src/core/services/HttpService.d.ts +63 -0
  247. package/dist/src/core/services/HttpService.d.ts.map +1 -0
  248. package/dist/src/core/services/HttpService.js +182 -0
  249. package/dist/src/core/services/HttpService.js.map +1 -0
  250. package/dist/src/core/services/LoggerService.d.ts +56 -0
  251. package/dist/src/core/services/LoggerService.d.ts.map +1 -0
  252. package/dist/src/core/services/LoggerService.js +94 -0
  253. package/dist/src/core/services/LoggerService.js.map +1 -0
  254. package/dist/src/core/services/MarkerRegistry.d.ts +94 -0
  255. package/dist/src/core/services/MarkerRegistry.d.ts.map +1 -0
  256. package/dist/src/core/services/MarkerRegistry.js +199 -0
  257. package/dist/src/core/services/MarkerRegistry.js.map +1 -0
  258. package/dist/src/core/services/MarkerService.d.ts +299 -0
  259. package/dist/src/core/services/MarkerService.d.ts.map +1 -0
  260. package/dist/src/core/services/MarkerService.js +723 -0
  261. package/dist/src/core/services/MarkerService.js.map +1 -0
  262. package/dist/src/core/services/StorageService.d.ts +69 -0
  263. package/dist/src/core/services/StorageService.d.ts.map +1 -0
  264. package/dist/src/core/services/StorageService.js +243 -0
  265. package/dist/src/core/services/StorageService.js.map +1 -0
  266. package/dist/src/core/services/StoreService.d.ts +80 -0
  267. package/dist/src/core/services/StoreService.d.ts.map +1 -0
  268. package/dist/src/core/services/StoreService.js +301 -0
  269. package/dist/src/core/services/StoreService.js.map +1 -0
  270. package/dist/src/core/services/index.d.ts +9 -0
  271. package/dist/src/core/services/index.d.ts.map +1 -0
  272. package/dist/src/core/services/index.js +9 -0
  273. package/dist/src/core/services/index.js.map +1 -0
  274. package/dist/src/core/types/utils.d.ts +29 -0
  275. package/dist/src/core/types/utils.d.ts.map +1 -0
  276. package/dist/src/core/types/utils.js +22 -0
  277. package/dist/src/core/types/utils.js.map +1 -0
  278. package/dist/src/core/view/LoopContext.d.ts +38 -0
  279. package/dist/src/core/view/LoopContext.d.ts.map +1 -0
  280. package/dist/src/core/view/LoopContext.js +100 -0
  281. package/dist/src/core/view/LoopContext.js.map +1 -0
  282. package/dist/src/core/view/Section.d.ts +41 -0
  283. package/dist/src/core/view/Section.d.ts.map +1 -0
  284. package/dist/src/core/view/Section.js +67 -0
  285. package/dist/src/core/view/Section.js.map +1 -0
  286. package/dist/src/core/view/View.d.ts +63 -0
  287. package/dist/src/core/view/View.d.ts.map +1 -0
  288. package/dist/src/core/view/View.js +85 -0
  289. package/dist/src/core/view/View.js.map +1 -0
  290. package/dist/src/core/view/ViewController.d.ts +277 -0
  291. package/dist/src/core/view/ViewController.d.ts.map +1 -0
  292. package/dist/src/core/view/ViewController.js +862 -0
  293. package/dist/src/core/view/ViewController.js.map +1 -0
  294. package/dist/src/core/view/ViewManager.d.ts +141 -0
  295. package/dist/src/core/view/ViewManager.d.ts.map +1 -0
  296. package/dist/src/core/view/ViewManager.js +565 -0
  297. package/dist/src/core/view/ViewManager.js.map +1 -0
  298. package/dist/src/core/view/ViewState.d.ts +117 -0
  299. package/dist/src/core/view/ViewState.d.ts.map +1 -0
  300. package/dist/src/core/view/ViewState.js +410 -0
  301. package/dist/src/core/view/ViewState.js.map +1 -0
  302. package/dist/src/core/view/index.d.ts +6 -0
  303. package/dist/src/core/view/index.d.ts.map +1 -0
  304. package/dist/src/core/view/index.js +6 -0
  305. package/dist/src/core/view/index.js.map +1 -0
  306. package/index.ts +62 -0
  307. package/package.json +70 -0
  308. package/plugins.ts +77 -0
  309. package/src/core/app/Application.ts +410 -0
  310. package/src/core/bootstrap/app.ts +58 -0
  311. package/src/core/bootstrap/providers/ApiServiceProvider.ts +18 -0
  312. package/src/core/bootstrap/providers/CoreServiceProvider.ts +19 -0
  313. package/src/core/bootstrap/providers/HelperServiceProvider.ts +12 -0
  314. package/src/core/bootstrap/providers/RouteServiceProvider.ts +17 -0
  315. package/src/core/bootstrap/providers/ServiceProvider.ts +51 -0
  316. package/src/core/bootstrap/providers/ViewServiceProvider.ts +17 -0
  317. package/src/core/bootstrap/providers/default-providers.ts +94 -0
  318. package/src/core/bootstrap/providers/index.ts +9 -0
  319. package/src/core/bootstrap/providers/provider-order.test.ts +67 -0
  320. package/src/core/bootstrap/providers/provider-order.ts +66 -0
  321. package/src/core/cache/ViewCache.ts +102 -0
  322. package/src/core/cache/index.ts +1 -0
  323. package/src/core/contracts/ApiInterface.ts +11 -0
  324. package/src/core/contracts/ApplicationInterface.ts +79 -0
  325. package/src/core/contracts/BlockInterface.ts +76 -0
  326. package/src/core/contracts/ComponentInterface.ts +26 -0
  327. package/src/core/contracts/ElementInterface.ts +140 -0
  328. package/src/core/contracts/EventServiceInterface.ts +47 -0
  329. package/src/core/contracts/HelperInterface.ts +256 -0
  330. package/src/core/contracts/HttpServiceInterface.ts +51 -0
  331. package/src/core/contracts/LoggerServiceInterface.ts +48 -0
  332. package/src/core/contracts/LoopContextInterface.ts +15 -0
  333. package/src/core/contracts/MarkerInterface.ts +77 -0
  334. package/src/core/contracts/ReactiveInterface.ts +45 -0
  335. package/src/core/contracts/RouterInterface.ts +65 -0
  336. package/src/core/contracts/ServiceProviderInterface.ts +12 -0
  337. package/src/core/contracts/StorageServiceInterface.ts +48 -0
  338. package/src/core/contracts/StoreServiceInterface.ts +50 -0
  339. package/src/core/contracts/ViewCacheInterface.ts +14 -0
  340. package/src/core/contracts/ViewControllerInterface.ts +135 -0
  341. package/src/core/contracts/ViewInterface.ts +31 -0
  342. package/src/core/contracts/ViewManagerInterface.ts +45 -0
  343. package/src/core/contracts/ViewStateInterface.ts +47 -0
  344. package/src/core/contracts/common.ts +27 -0
  345. package/src/core/contracts/utils.ts +23 -0
  346. package/src/core/contracts/views.ts +23 -0
  347. package/src/core/elements/Block.ts +113 -0
  348. package/src/core/elements/BlockOutlet.ts +83 -0
  349. package/src/core/elements/Component.ts +114 -0
  350. package/src/core/elements/ElementManager.ts +48 -0
  351. package/src/core/elements/Fragment.ts +168 -0
  352. package/src/core/elements/Html.ts +364 -0
  353. package/src/core/elements/Output.ts +167 -0
  354. package/src/core/elements/Reactive.ts +253 -0
  355. package/src/core/elements/TextElement.ts +110 -0
  356. package/src/core/elements/Wrapper.ts +131 -0
  357. package/src/core/elements/Yield.ts +70 -0
  358. package/src/core/elements/helpers.ts +56 -0
  359. package/src/core/elements/index.ts +26 -0
  360. package/src/core/hellpers/ApiClient.ts +145 -0
  361. package/src/core/hellpers/app.ts +57 -0
  362. package/src/core/hellpers/utils.ts +109 -0
  363. package/src/core/routers/Router.ts +765 -0
  364. package/src/core/routers/index.ts +2 -0
  365. package/src/core/services/BlockManager.ts +210 -0
  366. package/src/core/services/DomService.ts +26 -0
  367. package/src/core/services/EventService.ts +266 -0
  368. package/src/core/services/HelperService.ts +1653 -0
  369. package/src/core/services/HttpService.ts +235 -0
  370. package/src/core/services/LoggerService.ts +139 -0
  371. package/src/core/services/MarkerRegistry.ts +239 -0
  372. package/src/core/services/MarkerService.ts +923 -0
  373. package/src/core/services/StorageService.ts +268 -0
  374. package/src/core/services/StoreService.ts +338 -0
  375. package/src/core/services/index.ts +8 -0
  376. package/src/core/types/utils.ts +30 -0
  377. package/src/core/view/LoopContext.ts +109 -0
  378. package/src/core/view/Section.ts +86 -0
  379. package/src/core/view/View.ts +109 -0
  380. package/src/core/view/ViewController.ts +1002 -0
  381. package/src/core/view/ViewManager.ts +700 -0
  382. package/src/core/view/ViewState.ts +453 -0
  383. package/src/core/view/index.ts +5 -0
package/README.md ADDED
@@ -0,0 +1,221 @@
1
+ # Saola Client
2
+
3
+ > Modern TypeScript Framework for Laravel - Reactive SPAs with TypeScript-first approach
4
+
5
+ [![npm version](https://badge.fury.io/js/saola-client.svg)](https://badge.fury.io/js/saola-client)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ Saola Client is the TypeScript runtime library for building reactive single-page applications that integrate seamlessly with Laravel backends.
9
+
10
+ ## Features
11
+
12
+ - ⚡ **TypeScript First**: Full TypeScript support with excellent type safety
13
+ - 🎨 **Reactive Views**: Built-in reactive view system with automatic state management
14
+ - 📦 **Modular Architecture**: Component-based architecture for scalable applications
15
+ - 🔄 **Hot Module Replacement**: Development watch mode with automatic compilation
16
+ - 🚀 **Laravel Integration**: Seamless integration with Laravel backends
17
+ - 📱 **SSR Support**: Server-side rendering capabilities
18
+ - 🎯 **Lightweight**: Minimal bundle size with tree-shaking support
19
+ - 🔧 **Developer Friendly**: Excellent DX with CLI tools and build utilities
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ npm install saola-client
25
+ # or
26
+ yarn add saola-client
27
+ # or
28
+ pnpm add saola-client
29
+ ```
30
+
31
+ ## Quick Start
32
+
33
+ ### Basic Setup
34
+
35
+ ```typescript
36
+ import { Application, app, appContainer } from 'saola-client';
37
+ import { ViewController } from 'saola-client';
38
+
39
+ // Initialize your app
40
+ const app = new Application({
41
+ el: '#app',
42
+ debug: true
43
+ });
44
+
45
+ await app.init();
46
+ ```
47
+
48
+ ### Creating a View
49
+
50
+ ```typescript
51
+ import { ViewBase, ViewController } from 'saola-client';
52
+
53
+ export class HomeView extends ViewBase {
54
+ constructor() {
55
+ super('home', 'home-template');
56
+ }
57
+
58
+ onMount() {
59
+ // Initialize view logic
60
+ }
61
+ }
62
+
63
+ export class HomeController extends ViewController {
64
+ view = HomeView;
65
+
66
+ onLoad() {
67
+ // Handle view data loading
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Routing
73
+
74
+ ```typescript
75
+ import { Router } from 'saola-client';
76
+
77
+ const router = new Router();
78
+
79
+ router.register('home', HomeController);
80
+ router.register('about', AboutController);
81
+
82
+ router.navigate('home');
83
+ ```
84
+
85
+ ### State Management
86
+
87
+ ```typescript
88
+ import { ViewState, StateManager } from 'saola-client';
89
+
90
+ const state = new ViewState({
91
+ count: 0,
92
+ user: null
93
+ });
94
+
95
+ state.count = 5; // Trigger reactive updates
96
+ state.subscribe(newState => {
97
+ console.log('State updated:', newState);
98
+ });
99
+ ```
100
+
101
+ ## API Reference
102
+
103
+ ### Core Classes
104
+
105
+ #### Application
106
+
107
+ The main application class that manages the lifecycle of your Saola app.
108
+
109
+ ```typescript
110
+ import { Application } from 'saola-client';
111
+
112
+ const app = new Application({
113
+ el: '#app', // Mount element
114
+ debug: true, // Enable debug mode
115
+ baseUrl: '/app' // Base URL for routing
116
+ });
117
+ ```
118
+
119
+ #### View System
120
+
121
+ ```typescript
122
+ import { View, ViewController, ViewManager } from 'saola-client';
123
+
124
+ // Create a view
125
+ class MyView extends View {
126
+ template = '<div>Hello World</div>';
127
+
128
+ onMount() {
129
+ console.log('View mounted');
130
+ }
131
+ }
132
+
133
+ // Create a controller
134
+ class MyController extends ViewController {
135
+ view = MyView;
136
+
137
+ onLoad() {
138
+ // Load data
139
+ }
140
+ }
141
+ ```
142
+
143
+ #### Router
144
+
145
+ ```typescript
146
+ import { Router } from 'saola-client';
147
+
148
+ const router = new Router();
149
+
150
+ // Register routes
151
+ router.register('home', HomeController);
152
+ router.register('user/:id', UserController);
153
+
154
+ // Navigate
155
+ router.navigate('home');
156
+ router.navigate('user/123');
157
+ ```
158
+
159
+ ## Plugins
160
+
161
+ Extend Saola Client with plugins:
162
+
163
+ ```typescript
164
+ import { PluginManager } from 'saola-client/plugins';
165
+
166
+ const pluginManager = new PluginManager();
167
+
168
+ // Register and install plugins
169
+ pluginManager
170
+ .register(myPlugin)
171
+ .install('myPlugin', { option: 'value' });
172
+ ```
173
+
174
+ ## Development
175
+
176
+ ### Building
177
+
178
+ ```bash
179
+ npm run build # Build for production
180
+ npm run dev # Watch mode for development
181
+ npm run clean # Clean build artifacts
182
+ ```
183
+
184
+ ### Testing
185
+
186
+ ```bash
187
+ npm test
188
+ ```
189
+
190
+ ## Integration with Saola Compiler
191
+
192
+ Saola Client works seamlessly with [Saola Compiler](https://github.com/saolabs/saola-compiler) to compile `.one` files into Blade templates and JavaScript.
193
+
194
+ ```bash
195
+ # Install both packages
196
+ npm install saola-client saola-compiler
197
+
198
+ # Use in your Laravel project
199
+ # The compiler will generate files that use saola-client
200
+ ```
201
+
202
+ ## Contributing
203
+
204
+ 1. Fork the repository
205
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
206
+ 3. Commit your changes (`git commit -m 'Add some amazing feature'`)
207
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
208
+ 5. Open a Pull Request
209
+
210
+ ## License
211
+
212
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
213
+
214
+ ## Related Projects
215
+
216
+ - [Saola Compiler](https://github.com/saolabs/saola-compiler) - Template compiler for .one files
217
+ - [Saola Language Support](https://github.com/saolabs/saola-language-support) - VS Code extension for .one files
218
+
219
+ ---
220
+
221
+ **Built with ❤️ by Saola Labs**
@@ -0,0 +1,46 @@
1
+ /**
2
+ * OneJS V2 - Main Export
3
+ * TypeScript Core with Optimizations
4
+ */
5
+ export { Application } from './src/core/app/Application.js';
6
+ export { app } from './src/core/hellpers/app.js';
7
+ export { default as App } from './src/core/bootstrap/app.js';
8
+ export { MarkerService } from './src/core/services/MarkerService.js';
9
+ export { EventService } from './src/core/services/EventService.js';
10
+ export { HttpService } from './src/core/services/HttpService.js';
11
+ export { StoreService } from './src/core/services/StoreService.js';
12
+ export { StorageService } from './src/core/services/StorageService.js';
13
+ export { LoggerService } from './src/core/services/LoggerService.js';
14
+ export { HelperService, CollectionProxy } from './src/core/services/HelperService.js';
15
+ export { BlockManagerService, BlockManager } from './src/core/services/BlockManager.js';
16
+ export { MarkerRegistry, MarkerRegistryService } from './src/core/services/MarkerRegistry.js';
17
+ export { View, ViewController, ViewManager, ViewState, StateManager, LoopContext } from './src/core/view/index.js';
18
+ export { Router, ActiveRoute, useRoute, useParams, useQuery } from './src/core/routers/Router.js';
19
+ export { Reactive } from './src/core/elements/Reactive.js';
20
+ export { Block } from './src/core/elements/Block.js';
21
+ export { BlockOutlet } from './src/core/elements/BlockOutlet.js';
22
+ export { Html } from './src/core/elements/Html.js';
23
+ export { Fragment } from './src/core/elements/Fragment.js';
24
+ export { Component } from './src/core/elements/Component.js';
25
+ export { TextElement } from './src/core/elements/TextElement.js';
26
+ export { Output } from './src/core/elements/Output.js';
27
+ export { Wrapper } from './src/core/elements/Wrapper.js';
28
+ export { ElementManager } from './src/core/elements/ElementManager.js';
29
+ export { Dom, DomService } from './src/core/services/DomService.js';
30
+ export { ApiClient } from './src/core/hellpers/ApiClient.js';
31
+ export type { ApplicationInterface } from './src/core/contracts/ApplicationInterface.js';
32
+ export type { HelperInterface, CollectionProxyInterface } from './src/core/contracts/HelperInterface.js';
33
+ export type { EventServiceInterface } from './src/core/contracts/EventServiceInterface.js';
34
+ export type { HttpServiceInterface, HttpRequestConfig, HttpResponse, HttpInterceptor } from './src/core/contracts/HttpServiceInterface.js';
35
+ export type { StoreServiceInterface } from './src/core/contracts/StoreServiceInterface.js';
36
+ export type { StorageServiceInterface } from './src/core/contracts/StorageServiceInterface.js';
37
+ export type { LoggerServiceInterface, LoggerConfig, LogLevel } from './src/core/contracts/LoggerServiceInterface.js';
38
+ export type { ViewInterface } from './src/core/contracts/ViewInterface.js';
39
+ export type { ViewControllerInterface } from './src/core/contracts/ViewControllerInterface.js';
40
+ export type { ViewManagerInterface } from './src/core/contracts/ViewManagerInterface.js';
41
+ export type { ReactiveInterface } from './src/core/contracts/ReactiveInterface.js';
42
+ export type { RouterInterface } from './src/core/contracts/RouterInterface.js';
43
+ export type { RouteDefinition, Route, RouteMatch, RouterConfig } from './src/core/routers/Router.js';
44
+ export type { MarkerRecord, MarkerTagName } from './src/core/contracts/MarkerInterface.js';
45
+ export type { APIEndpoints } from './src/core/hellpers/ApiClient.js';
46
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * OneJS V2 - Main Export
3
+ * TypeScript Core with Optimizations
4
+ */
5
+ // App
6
+ export { Application } from './src/core/app/Application.js';
7
+ export { app } from './src/core/hellpers/app.js';
8
+ export { default as App } from './src/core/bootstrap/app.js';
9
+ // Services
10
+ export { MarkerService } from './src/core/services/MarkerService.js';
11
+ export { EventService } from './src/core/services/EventService.js';
12
+ export { HttpService } from './src/core/services/HttpService.js';
13
+ export { StoreService } from './src/core/services/StoreService.js';
14
+ export { StorageService } from './src/core/services/StorageService.js';
15
+ export { LoggerService } from './src/core/services/LoggerService.js';
16
+ export { HelperService, CollectionProxy } from './src/core/services/HelperService.js';
17
+ export { BlockManagerService, BlockManager } from './src/core/services/BlockManager.js';
18
+ export { MarkerRegistry, MarkerRegistryService } from './src/core/services/MarkerRegistry.js';
19
+ // View System
20
+ export { View, ViewController, ViewManager, ViewState, StateManager, LoopContext } from './src/core/view/index.js';
21
+ // Router
22
+ export { Router, ActiveRoute, useRoute, useParams, useQuery } from './src/core/routers/Router.js';
23
+ // Elements
24
+ export { Reactive } from './src/core/elements/Reactive.js';
25
+ export { Block } from './src/core/elements/Block.js';
26
+ export { BlockOutlet } from './src/core/elements/BlockOutlet.js';
27
+ export { Html } from './src/core/elements/Html.js';
28
+ export { Fragment } from './src/core/elements/Fragment.js';
29
+ export { Component } from './src/core/elements/Component.js';
30
+ export { TextElement } from './src/core/elements/TextElement.js';
31
+ export { Output } from './src/core/elements/Output.js';
32
+ export { Wrapper } from './src/core/elements/Wrapper.js';
33
+ export { ElementManager } from './src/core/elements/ElementManager.js';
34
+ // DOM
35
+ export { Dom, DomService } from './src/core/services/DomService.js';
36
+ // Helpers
37
+ export { ApiClient } from './src/core/hellpers/ApiClient.js';
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM;AACN,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAE7D,WAAW;AACX,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9F,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEnH,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAElG,WAAW;AACX,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,MAAM;AACN,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEpE,UAAU;AACV,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * OneView Plugins
3
+ * Extension system for OneView framework
4
+ */
5
+ export interface PluginOptions {
6
+ [key: string]: unknown;
7
+ }
8
+ export interface Plugin {
9
+ name: string;
10
+ install(options?: PluginOptions): void;
11
+ }
12
+ declare class PluginManager {
13
+ private plugins;
14
+ private installed;
15
+ /**
16
+ * Register a plugin
17
+ */
18
+ register(plugin: Plugin): this;
19
+ /**
20
+ * Install a registered plugin
21
+ */
22
+ install(name: string, options?: PluginOptions): this;
23
+ /**
24
+ * Check if a plugin is installed
25
+ */
26
+ isInstalled(name: string): boolean;
27
+ /**
28
+ * Get all registered plugins
29
+ */
30
+ getPlugins(): Plugin[];
31
+ }
32
+ export declare const pluginManager: PluginManager;
33
+ /**
34
+ * Create a plugin
35
+ */
36
+ export declare function createPlugin(name: string, install: (options?: PluginOptions) => void): Plugin;
37
+ export default pluginManager;
38
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../plugins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACxC;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAA0B;IAE3C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAS9B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAgBpD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;CAGvB;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,CAK7F;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * OneView Plugins
3
+ * Extension system for OneView framework
4
+ */
5
+ class PluginManager {
6
+ constructor() {
7
+ this.plugins = new Map();
8
+ this.installed = new Set();
9
+ }
10
+ /**
11
+ * Register a plugin
12
+ */
13
+ register(plugin) {
14
+ if (this.plugins.has(plugin.name)) {
15
+ console.warn(`Plugin "${plugin.name}" is already registered`);
16
+ return this;
17
+ }
18
+ this.plugins.set(plugin.name, plugin);
19
+ return this;
20
+ }
21
+ /**
22
+ * Install a registered plugin
23
+ */
24
+ install(name, options) {
25
+ const plugin = this.plugins.get(name);
26
+ if (!plugin) {
27
+ throw new Error(`Plugin "${name}" is not registered`);
28
+ }
29
+ if (this.installed.has(name)) {
30
+ console.warn(`Plugin "${name}" is already installed`);
31
+ return this;
32
+ }
33
+ plugin.install(options);
34
+ this.installed.add(name);
35
+ return this;
36
+ }
37
+ /**
38
+ * Check if a plugin is installed
39
+ */
40
+ isInstalled(name) {
41
+ return this.installed.has(name);
42
+ }
43
+ /**
44
+ * Get all registered plugins
45
+ */
46
+ getPlugins() {
47
+ return Array.from(this.plugins.values());
48
+ }
49
+ }
50
+ export const pluginManager = new PluginManager();
51
+ /**
52
+ * Create a plugin
53
+ */
54
+ export function createPlugin(name, install) {
55
+ return {
56
+ name,
57
+ install
58
+ };
59
+ }
60
+ export default pluginManager;
61
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../plugins.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,aAAa;IAAnB;QACU,YAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;QACzC,cAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;IA8C7C,CAAC;IA5CC;;OAEG;IACH,QAAQ,CAAC,MAAc;QACrB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,yBAAyB,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAY,EAAE,OAAuB;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,qBAAqB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,wBAAwB,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAA0C;IACnF,OAAO;QACL,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Application — DI Container + App Lifecycle.
3
+ *
4
+ * Tương tự Laravel Service Container:
5
+ * - bind / singleton / instance → đăng ký service
6
+ * - make / resolve → lấy service
7
+ * - alias → tên tắt
8
+ * - register / boot → service providers
9
+ *
10
+ * Khác với core Application (hardcode services), bản này hoàn toàn DI-driven:
11
+ * mọi service (Router, ViewManager, Store...) đều được đăng ký qua providers.
12
+ *
13
+ * @example
14
+ * const app = new Application();
15
+ *
16
+ * // Đăng ký trực tiếp
17
+ * app.singleton('markerRegistry', MarkerRegistry);
18
+ * app.instance('config', { debug: true });
19
+ *
20
+ * // Đăng ký qua provider
21
+ * app.register({
22
+ * register(app) { app.singleton('router', () => new Router(app)); },
23
+ * boot(app) { app.make('router').start(); }
24
+ * });
25
+ *
26
+ * app.boot();
27
+ * const router = app.make('router');
28
+ */
29
+ import type { ApplicationInterface, ServiceKey, ServiceFactory, ServiceBinding } from '../contracts/ApplicationInterface';
30
+ import type { ServiceProviderInterface } from '../contracts/ServiceProviderInterface';
31
+ import type { ViewManagerInterface, RouterInterface } from '../contracts/utils';
32
+ import type { HelperInterface } from '../contracts/HelperInterface';
33
+ import type { EventServiceInterface } from '../contracts/EventServiceInterface';
34
+ import type { HttpServiceInterface } from '../contracts/HttpServiceInterface';
35
+ import type { StoreServiceInterface } from '../contracts/StoreServiceInterface';
36
+ import type { StorageServiceInterface } from '../contracts/StorageServiceInterface';
37
+ import type { LoggerServiceInterface } from '../contracts/LoggerServiceInterface';
38
+ import { APIClientInterface } from '../contracts/ApiInterface';
39
+ import { OneObjectType } from '../types/utils';
40
+ export declare class Application implements ApplicationInterface {
41
+ readonly oneType: OneObjectType;
42
+ isInitialized: boolean;
43
+ isStarted: boolean;
44
+ View: ViewManagerInterface;
45
+ Router: RouterInterface;
46
+ Helper: HelperInterface;
47
+ Events: EventServiceInterface;
48
+ Http: HttpServiceInterface;
49
+ API: APIClientInterface;
50
+ Store: StoreServiceInterface;
51
+ Storage: StorageServiceInterface;
52
+ Logger: LoggerServiceInterface;
53
+ /** Factory bindings — mỗi lần make() gọi factory tạo instance mới */
54
+ private bindings;
55
+ /** Singleton instances — tạo một lần, reuse */
56
+ private singletons;
57
+ /** Aliases — tên tắt trỏ về key gốc */
58
+ private aliases;
59
+ /** Service providers đã đăng ký */
60
+ private providers;
61
+ /** Đã boot chưa */
62
+ private booted;
63
+ private ownProperties;
64
+ __store: Map<string, {
65
+ isOverridable: boolean;
66
+ value: any;
67
+ }>;
68
+ [key: string]: any;
69
+ constructor();
70
+ /**
71
+ * Đăng ký transient service.
72
+ * Mỗi lần make() trả về instance mới (không cache).
73
+ *
74
+ * @example
75
+ * app.transient('request', (app) => new Request(app.make('config')));
76
+ * app.transient(Database, Database); // class shorthand
77
+ */
78
+ transient<T>(key: ServiceKey<T>, value: ServiceBinding<T>): this;
79
+ bind<T>(key: ServiceKey<T>, value: ServiceBinding<T>): this;
80
+ /**
81
+ * Đăng ký singleton — tạo một lần, reuse mãi mãi.
82
+ *
83
+ * @example
84
+ * app.singleton('store', StoreService); // class
85
+ * app.singleton('config', (app) => loadConfig()); // factory
86
+ * app.singleton(StoreService); // class, tự tạo
87
+ * app.singleton('store', existingInstance); // instance sẵn
88
+ */
89
+ singleton<T>(key: ServiceKey<T>, value?: ServiceBinding<T> | T): this;
90
+ /**
91
+ * Đăng ký instance đã tạo sẵn.
92
+ * Shortcut cho singleton khi đã có instance.
93
+ *
94
+ * @example
95
+ * app.instance('config', { debug: true, api_url: '/api' });
96
+ */
97
+ instance<T>(key: ServiceKey<T>, value: T): this;
98
+ /**
99
+ * Tạo tên tắt cho service.
100
+ *
101
+ * @example
102
+ * app.singleton('email.service', EmailService);
103
+ * app.alias('mailer', 'email.service');
104
+ * app.make('mailer') === app.make('email.service') // true
105
+ */
106
+ alias(alias: string | symbol, key: ServiceKey): this;
107
+ /**
108
+ * Lấy service instance. Shortcut cho resolve().
109
+ *
110
+ * @example
111
+ * const router = app.make<Router>('router');
112
+ */
113
+ make<T>(key: ServiceKey<T>, defaultValue?: T): T;
114
+ /**
115
+ * Resolve service instance.
116
+ *
117
+ * Thứ tự tìm:
118
+ * 1. Alias → resolve key gốc
119
+ * 2. Singleton đã tạo → reuse
120
+ * 3. Binding (factory) → gọi factory
121
+ * 4. Key là class → auto-instantiate + cache
122
+ * 5. defaultValue → trả về
123
+ * 6. Throw error
124
+ */
125
+ resolve<T>(key: ServiceKey<T>, defaultValue?: T): T;
126
+ /** Kiểm tra service đã đăng ký chưa */
127
+ has(key: ServiceKey): boolean;
128
+ /** Alias cho has() */
129
+ bound(key: ServiceKey): boolean;
130
+ /**
131
+ * Đăng ký service provider.
132
+ * register() được gọi ngay, boot() gọi khi app.boot().
133
+ *
134
+ * @example
135
+ * app.register({
136
+ * register(app) { app.singleton('db', Database); },
137
+ * boot(app) { app.make('db').connect(); }
138
+ * });
139
+ */
140
+ register(provider: ServiceProviderInterface): this;
141
+ /**
142
+ * Boot tất cả providers.
143
+ * Gọi boot() của mỗi provider theo thứ tự đăng ký.
144
+ * Chỉ chạy một lần.
145
+ */
146
+ boot(): void;
147
+ /** Đã boot chưa */
148
+ get isBooted(): boolean;
149
+ /** Xóa toàn bộ bindings, singletons, aliases, __store. Reset container. */
150
+ flush(): void;
151
+ /** Destroy app — flush + cleanup */
152
+ destroy(): void;
153
+ getBindings(): Map<ServiceKey, ServiceFactory<any>>;
154
+ getSingletons(): Map<ServiceKey, any>;
155
+ set<T = any>(name: string, value: T, isOne?: boolean): void;
156
+ get<T = any>(name: string): T;
157
+ setMethod(name: string, method: Function, isOne?: boolean): void;
158
+ }
159
+ //# sourceMappingURL=Application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Application.d.ts","sourceRoot":"","sources":["../../../../src/core/app/Application.ts"],"names":[],"mappings":"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"}