jopijs 0.0.1

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 (455) hide show
  1. package/README.md +134 -0
  2. package/bin/jopib.js +4 -0
  3. package/bin/jopin.js +4 -0
  4. package/dist/@bundler/_logs.d.ts +2 -0
  5. package/dist/@bundler/_logs.js +4 -0
  6. package/dist/@bundler/_logs.js.map +1 -0
  7. package/dist/@bundler/core.d.ts +1 -0
  8. package/dist/@bundler/core.js +34 -0
  9. package/dist/@bundler/core.js.map +1 -0
  10. package/dist/@bundler/esbuild.d.ts +6 -0
  11. package/dist/@bundler/esbuild.js +111 -0
  12. package/dist/@bundler/esbuild.js.map +1 -0
  13. package/dist/@bundler/index.d.ts +2 -0
  14. package/dist/@bundler/index.js +3 -0
  15. package/dist/@bundler/index.js.map +1 -0
  16. package/dist/@bundler/plugins.d.ts +13 -0
  17. package/dist/@bundler/plugins.js +145 -0
  18. package/dist/@bundler/plugins.js.map +1 -0
  19. package/dist/@bundler/tailwind.d.ts +3 -0
  20. package/dist/@bundler/tailwind.js +119 -0
  21. package/dist/@bundler/tailwind.js.map +1 -0
  22. package/dist/@core/PageComponent.d.ts +6 -0
  23. package/dist/@core/PageComponent.js +10 -0
  24. package/dist/@core/PageComponent.js.map +1 -0
  25. package/dist/@core/_logs.d.ts +7 -0
  26. package/dist/@core/_logs.js +9 -0
  27. package/dist/@core/_logs.js.map +1 -0
  28. package/dist/@core/automaticStartStop.d.ts +25 -0
  29. package/dist/@core/automaticStartStop.js +106 -0
  30. package/dist/@core/automaticStartStop.js.map +1 -0
  31. package/dist/@core/browserCacheControl.d.ts +21 -0
  32. package/dist/@core/browserCacheControl.js +17 -0
  33. package/dist/@core/browserCacheControl.js.map +1 -0
  34. package/dist/@core/bundler/bundler.d.ts +22 -0
  35. package/dist/@core/bundler/bundler.js +90 -0
  36. package/dist/@core/bundler/bundler.js.map +1 -0
  37. package/dist/@core/bundler/common.d.ts +2 -0
  38. package/dist/@core/bundler/common.js +17 -0
  39. package/dist/@core/bundler/common.js.map +1 -0
  40. package/dist/@core/bundler/config.d.ts +20 -0
  41. package/dist/@core/bundler/config.js +11 -0
  42. package/dist/@core/bundler/config.js.map +1 -0
  43. package/dist/@core/bundler/extraContent.d.ts +6 -0
  44. package/dist/@core/bundler/extraContent.js +27 -0
  45. package/dist/@core/bundler/extraContent.js.map +1 -0
  46. package/dist/@core/bundler/pagesGenerator.d.ts +1 -0
  47. package/dist/@core/bundler/pagesGenerator.js +173 -0
  48. package/dist/@core/bundler/pagesGenerator.js.map +1 -0
  49. package/dist/@core/bundler/server.d.ts +8 -0
  50. package/dist/@core/bundler/server.js +35 -0
  51. package/dist/@core/bundler/server.js.map +1 -0
  52. package/dist/@core/caches/InMemoryCache.d.ts +35 -0
  53. package/dist/@core/caches/InMemoryCache.js +353 -0
  54. package/dist/@core/caches/InMemoryCache.js.map +1 -0
  55. package/dist/@core/caches/SimpleFileCache.d.ts +18 -0
  56. package/dist/@core/caches/SimpleFileCache.js +171 -0
  57. package/dist/@core/caches/SimpleFileCache.js.map +1 -0
  58. package/dist/@core/caches/cache.d.ts +36 -0
  59. package/dist/@core/caches/cache.js +33 -0
  60. package/dist/@core/caches/cache.js.map +1 -0
  61. package/dist/@core/caches/webSiteMirrorCache.d.ts +16 -0
  62. package/dist/@core/caches/webSiteMirrorCache.js +81 -0
  63. package/dist/@core/caches/webSiteMirrorCache.js.map +1 -0
  64. package/dist/@core/gzip.d.ts +4 -0
  65. package/dist/@core/gzip.js +31 -0
  66. package/dist/@core/gzip.js.map +1 -0
  67. package/dist/@core/index.d.ts +18 -0
  68. package/dist/@core/index.js +19 -0
  69. package/dist/@core/index.js.map +1 -0
  70. package/dist/@core/internalTools.d.ts +14 -0
  71. package/dist/@core/internalTools.js +79 -0
  72. package/dist/@core/internalTools.js.map +1 -0
  73. package/dist/@core/jQuery.d.ts +5 -0
  74. package/dist/@core/jQuery.js +18 -0
  75. package/dist/@core/jQuery.js.map +1 -0
  76. package/dist/@core/jopiEasy.d.ts +287 -0
  77. package/dist/@core/jopiEasy.js +983 -0
  78. package/dist/@core/jopiEasy.js.map +1 -0
  79. package/dist/@core/jopiRequest.d.ts +269 -0
  80. package/dist/@core/jopiRequest.js +1060 -0
  81. package/dist/@core/jopiRequest.js.map +1 -0
  82. package/dist/@core/jopiServer.d.ts +77 -0
  83. package/dist/@core/jopiServer.js +100 -0
  84. package/dist/@core/jopiServer.js.map +1 -0
  85. package/dist/@core/jopiWebSite.d.ts +319 -0
  86. package/dist/@core/jopiWebSite.js +653 -0
  87. package/dist/@core/jopiWebSite.js.map +1 -0
  88. package/dist/@core/letsEncrypt.d.ts +25 -0
  89. package/dist/@core/letsEncrypt.js +189 -0
  90. package/dist/@core/letsEncrypt.js.map +1 -0
  91. package/dist/@core/linker.d.ts +4 -0
  92. package/dist/@core/linker.js +37 -0
  93. package/dist/@core/linker.js.map +1 -0
  94. package/dist/@core/loadBalancing.d.ts +18 -0
  95. package/dist/@core/loadBalancing.js +126 -0
  96. package/dist/@core/loadBalancing.js.map +1 -0
  97. package/dist/@core/middlewares/CorsMiddleware.d.ts +5 -0
  98. package/dist/@core/middlewares/CorsMiddleware.js +15 -0
  99. package/dist/@core/middlewares/CorsMiddleware.js.map +1 -0
  100. package/dist/@core/middlewares/DdosProtection.d.ts +42 -0
  101. package/dist/@core/middlewares/DdosProtection.js +62 -0
  102. package/dist/@core/middlewares/DdosProtection.js.map +1 -0
  103. package/dist/@core/middlewares/index.d.ts +10 -0
  104. package/dist/@core/middlewares/index.js +14 -0
  105. package/dist/@core/middlewares/index.js.map +1 -0
  106. package/dist/@core/publicTools.d.ts +8 -0
  107. package/dist/@core/publicTools.js +11 -0
  108. package/dist/@core/publicTools.js.map +1 -0
  109. package/dist/@core/routeConfig.d.ts +48 -0
  110. package/dist/@core/routeConfig.js +102 -0
  111. package/dist/@core/routeConfig.js.map +1 -0
  112. package/dist/@core/searchParamFilter.d.ts +70 -0
  113. package/dist/@core/searchParamFilter.js +212 -0
  114. package/dist/@core/searchParamFilter.js.map +1 -0
  115. package/dist/@core/serverFetch.d.ts +122 -0
  116. package/dist/@core/serverFetch.js +312 -0
  117. package/dist/@core/serverFetch.js.map +1 -0
  118. package/dist/@core/serverImpl/server_bunjs.d.ts +29 -0
  119. package/dist/@core/serverImpl/server_bunjs.js +180 -0
  120. package/dist/@core/serverImpl/server_bunjs.js.map +1 -0
  121. package/dist/@core/serverImpl/server_nodejs.d.ts +22 -0
  122. package/dist/@core/serverImpl/server_nodejs.js +235 -0
  123. package/dist/@core/serverImpl/server_nodejs.js.map +1 -0
  124. package/dist/@core/serverInstanceBuilder.d.ts +17 -0
  125. package/dist/@core/serverInstanceBuilder.js +14 -0
  126. package/dist/@core/serverInstanceBuilder.js.map +1 -0
  127. package/dist/@core/userStores.d.ts +13 -0
  128. package/dist/@core/userStores.js +20 -0
  129. package/dist/@core/userStores.js.map +1 -0
  130. package/dist/@crawler/common.d.ts +203 -0
  131. package/dist/@crawler/common.js +68 -0
  132. package/dist/@crawler/common.js.map +1 -0
  133. package/dist/@crawler/core.d.ts +87 -0
  134. package/dist/@crawler/core.js +586 -0
  135. package/dist/@crawler/core.js.map +1 -0
  136. package/dist/@crawler/directFileCache.d.ts +10 -0
  137. package/dist/@crawler/directFileCache.js +60 -0
  138. package/dist/@crawler/directFileCache.js.map +1 -0
  139. package/dist/@crawler/index.d.ts +4 -0
  140. package/dist/@crawler/index.js +5 -0
  141. package/dist/@crawler/index.js.map +1 -0
  142. package/dist/@crawler/urlMapping.d.ts +21 -0
  143. package/dist/@crawler/urlMapping.js +52 -0
  144. package/dist/@crawler/urlMapping.js.map +1 -0
  145. package/dist/@crawler/utils.d.ts +6 -0
  146. package/dist/@crawler/utils.js +13 -0
  147. package/dist/@crawler/utils.js.map +1 -0
  148. package/dist/@generated/index.d.ts +29 -0
  149. package/dist/@generated/index.js +93 -0
  150. package/dist/@generated/index.js.map +1 -0
  151. package/dist/@linker/arobaseTypes.d.ts +50 -0
  152. package/dist/@linker/arobaseTypes.js +235 -0
  153. package/dist/@linker/arobaseTypes.js.map +1 -0
  154. package/dist/@linker/changeProof.d.ts +5 -0
  155. package/dist/@linker/changeProof.js +50 -0
  156. package/dist/@linker/changeProof.js.map +1 -0
  157. package/dist/@linker/config.d.ts +2 -0
  158. package/dist/@linker/config.js +40 -0
  159. package/dist/@linker/config.js.map +1 -0
  160. package/dist/@linker/engine.d.ts +156 -0
  161. package/dist/@linker/engine.js +665 -0
  162. package/dist/@linker/engine.js.map +1 -0
  163. package/dist/@linker/index.d.ts +3 -0
  164. package/dist/@linker/index.js +4 -0
  165. package/dist/@linker/index.js.map +1 -0
  166. package/dist/@linker/install.d.ts +4 -0
  167. package/dist/@linker/install.js +42 -0
  168. package/dist/@linker/install.js.map +1 -0
  169. package/dist/@linker/modInstaller.d.ts +10 -0
  170. package/dist/@linker/modInstaller.js +38 -0
  171. package/dist/@linker/modInstaller.js.map +1 -0
  172. package/dist/@linker/typeEvents.d.ts +9 -0
  173. package/dist/@linker/typeEvents.js +48 -0
  174. package/dist/@linker/typeEvents.js.map +1 -0
  175. package/dist/@linker/typeRoutes.d.ts +23 -0
  176. package/dist/@linker/typeRoutes.js +197 -0
  177. package/dist/@linker/typeRoutes.js.map +1 -0
  178. package/dist/@linker/typeUiComposite.d.ts +6 -0
  179. package/dist/@linker/typeUiComposite.js +16 -0
  180. package/dist/@linker/typeUiComposite.js.map +1 -0
  181. package/dist/@loader/index.d.ts +1 -0
  182. package/dist/@loader/index.js +17 -0
  183. package/dist/@loader/index.js.map +1 -0
  184. package/dist/@loader/nodeJsLoader.d.ts +2 -0
  185. package/dist/@loader/nodeJsLoader.js +19 -0
  186. package/dist/@loader/nodeJsLoader.js.map +1 -0
  187. package/dist/@loader-client/index.d.ts +33 -0
  188. package/dist/@loader-client/index.js +98 -0
  189. package/dist/@loader-client/index.js.map +1 -0
  190. package/dist/@loader-tools/bunJsLoader.d.ts +1 -0
  191. package/dist/@loader-tools/bunJsLoader.js +28 -0
  192. package/dist/@loader-tools/bunJsLoader.js.map +1 -0
  193. package/dist/@loader-tools/config.d.ts +49 -0
  194. package/dist/@loader-tools/config.js +79 -0
  195. package/dist/@loader-tools/config.js.map +1 -0
  196. package/dist/@loader-tools/cssModuleCompiler.d.ts +5 -0
  197. package/dist/@loader-tools/cssModuleCompiler.js +65 -0
  198. package/dist/@loader-tools/cssModuleCompiler.js.map +1 -0
  199. package/dist/@loader-tools/esBuildPlugin.d.ts +5 -0
  200. package/dist/@loader-tools/esBuildPlugin.js +113 -0
  201. package/dist/@loader-tools/esBuildPlugin.js.map +1 -0
  202. package/dist/@loader-tools/index.d.ts +9 -0
  203. package/dist/@loader-tools/index.js +10 -0
  204. package/dist/@loader-tools/index.js.map +1 -0
  205. package/dist/@loader-tools/jopin.d.ts +10 -0
  206. package/dist/@loader-tools/jopin.js +331 -0
  207. package/dist/@loader-tools/jopin.js.map +1 -0
  208. package/dist/@loader-tools/nodeJsLoader.d.ts +13 -0
  209. package/dist/@loader-tools/nodeJsLoader.js +101 -0
  210. package/dist/@loader-tools/nodeJsLoader.js.map +1 -0
  211. package/dist/@loader-tools/nodeJsResolver.d.ts +2 -0
  212. package/dist/@loader-tools/nodeJsResolver.js +117 -0
  213. package/dist/@loader-tools/nodeJsResolver.js.map +1 -0
  214. package/dist/@loader-tools/rules.d.ts +3 -0
  215. package/dist/@loader-tools/rules.js +33 -0
  216. package/dist/@loader-tools/rules.js.map +1 -0
  217. package/dist/@loader-tools/sourceChangesWatcher.d.ts +39 -0
  218. package/dist/@loader-tools/sourceChangesWatcher.js +182 -0
  219. package/dist/@loader-tools/sourceChangesWatcher.js.map +1 -0
  220. package/dist/@loader-tools/tools.d.ts +21 -0
  221. package/dist/@loader-tools/tools.js +113 -0
  222. package/dist/@loader-tools/tools.js.map +1 -0
  223. package/dist/@loader-tools/transform.d.ts +5 -0
  224. package/dist/@loader-tools/transform.js +114 -0
  225. package/dist/@loader-tools/transform.js.map +1 -0
  226. package/dist/@loader-tools/virtualUrl.d.ts +9 -0
  227. package/dist/@loader-tools/virtualUrl.js +40 -0
  228. package/dist/@loader-tools/virtualUrl.js.map +1 -0
  229. package/dist/@tool-jopinb/index.d.ts +1 -0
  230. package/dist/@tool-jopinb/index.js +9 -0
  231. package/dist/@tool-jopinb/index.js.map +1 -0
  232. package/dist/@ui/components.d.ts +27 -0
  233. package/dist/@ui/components.js +42 -0
  234. package/dist/@ui/components.js.map +1 -0
  235. package/dist/@ui/cssModules.d.ts +11 -0
  236. package/dist/@ui/cssModules.js +17 -0
  237. package/dist/@ui/cssModules.js.map +1 -0
  238. package/dist/@ui/hooks.d.ts +31 -0
  239. package/dist/@ui/hooks.js +71 -0
  240. package/dist/@ui/hooks.js.map +1 -0
  241. package/dist/@ui/index.d.ts +9 -0
  242. package/dist/@ui/index.js +11 -0
  243. package/dist/@ui/index.js.map +1 -0
  244. package/dist/@ui/internal.d.ts +4 -0
  245. package/dist/@ui/internal.js +10 -0
  246. package/dist/@ui/internal.js.map +1 -0
  247. package/dist/@ui/modules.d.ts +41 -0
  248. package/dist/@ui/modules.js +74 -0
  249. package/dist/@ui/modules.js.map +1 -0
  250. package/dist/@ui/objectRegistry.d.ts +12 -0
  251. package/dist/@ui/objectRegistry.js +35 -0
  252. package/dist/@ui/objectRegistry.js.map +1 -0
  253. package/dist/@ui/pageController.d.ts +61 -0
  254. package/dist/@ui/pageController.js +166 -0
  255. package/dist/@ui/pageController.js.map +1 -0
  256. package/dist/@ui/tools.d.ts +24 -0
  257. package/dist/@ui/tools.js +78 -0
  258. package/dist/@ui/tools.js.map +1 -0
  259. package/dist/@uikit/core/UiKitModule.d.ts +6 -0
  260. package/dist/@uikit/core/UiKitModule.js +18 -0
  261. package/dist/@uikit/core/UiKitModule.js.map +1 -0
  262. package/dist/@uikit/core/index.d.ts +1 -0
  263. package/dist/@uikit/core/index.js +4 -0
  264. package/dist/@uikit/core/index.js.map +1 -0
  265. package/dist/@uikit/core/jBundler_ifBrowser.d.ts +1 -0
  266. package/dist/@uikit/core/jBundler_ifBrowser.js +5 -0
  267. package/dist/@uikit/core/jBundler_ifBrowser.js.map +1 -0
  268. package/dist/@uikit/core/jBundler_ifServer.d.ts +6 -0
  269. package/dist/@uikit/core/jBundler_ifServer.js +17 -0
  270. package/dist/@uikit/core/jBundler_ifServer.js.map +1 -0
  271. package/dist/@uikit/forms/components.d.ts +18 -0
  272. package/dist/@uikit/forms/components.js +69 -0
  273. package/dist/@uikit/forms/components.js.map +1 -0
  274. package/dist/@uikit/forms/hooks.d.ts +4 -0
  275. package/dist/@uikit/forms/hooks.js +31 -0
  276. package/dist/@uikit/forms/hooks.js.map +1 -0
  277. package/dist/@uikit/forms/index.d.ts +3 -0
  278. package/dist/@uikit/forms/index.js +4 -0
  279. package/dist/@uikit/forms/index.js.map +1 -0
  280. package/dist/@uikit/forms/interfaces.d.ts +101 -0
  281. package/dist/@uikit/forms/interfaces.js +4 -0
  282. package/dist/@uikit/forms/interfaces.js.map +1 -0
  283. package/dist/@uikit/forms/private.d.ts +40 -0
  284. package/dist/@uikit/forms/private.js +307 -0
  285. package/dist/@uikit/forms/private.js.map +1 -0
  286. package/dist/@uikit/helpers/hooks.d.ts +33 -0
  287. package/dist/@uikit/helpers/hooks.js +107 -0
  288. package/dist/@uikit/helpers/hooks.js.map +1 -0
  289. package/dist/@uikit/helpers/index.d.ts +2 -0
  290. package/dist/@uikit/helpers/index.js +3 -0
  291. package/dist/@uikit/helpers/index.js.map +1 -0
  292. package/dist/@uikit/helpers/tools.d.ts +8 -0
  293. package/dist/@uikit/helpers/tools.js +35 -0
  294. package/dist/@uikit/helpers/tools.js.map +1 -0
  295. package/dist/@uikit/index.d.ts +10 -0
  296. package/dist/@uikit/index.js +13 -0
  297. package/dist/@uikit/index.js.map +1 -0
  298. package/dist/@uikit/menu/core.d.ts +21 -0
  299. package/dist/@uikit/menu/core.js +191 -0
  300. package/dist/@uikit/menu/core.js.map +1 -0
  301. package/dist/@uikit/menu/hooks.d.ts +5 -0
  302. package/dist/@uikit/menu/hooks.js +24 -0
  303. package/dist/@uikit/menu/hooks.js.map +1 -0
  304. package/dist/@uikit/menu/index.d.ts +3 -0
  305. package/dist/@uikit/menu/index.js +4 -0
  306. package/dist/@uikit/menu/index.js.map +1 -0
  307. package/dist/@uikit/menu/interfaces.d.ts +20 -0
  308. package/dist/@uikit/menu/interfaces.js +8 -0
  309. package/dist/@uikit/menu/interfaces.js.map +1 -0
  310. package/dist/@uikit/menu/internal.d.ts +40 -0
  311. package/dist/@uikit/menu/internal.js +191 -0
  312. package/dist/@uikit/menu/internal.js.map +1 -0
  313. package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.d.ts +18 -0
  314. package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.js +40 -0
  315. package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.js.map +1 -0
  316. package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.d.ts +28 -0
  317. package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.js +35 -0
  318. package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.js.map +1 -0
  319. package/dist/@uikit/reactRouter/index.d.ts +1 -0
  320. package/dist/@uikit/reactRouter/index.js +2 -0
  321. package/dist/@uikit/reactRouter/index.js.map +1 -0
  322. package/dist/@uikit/users/hooks.d.ts +10 -0
  323. package/dist/@uikit/users/hooks.js +39 -0
  324. package/dist/@uikit/users/hooks.js.map +1 -0
  325. package/dist/@uikit/users/index.d.ts +1 -0
  326. package/dist/@uikit/users/index.js +2 -0
  327. package/dist/@uikit/users/index.js.map +1 -0
  328. package/dist/@uikit/variants/index.d.ts +7 -0
  329. package/dist/@uikit/variants/index.js +16 -0
  330. package/dist/@uikit/variants/index.js.map +1 -0
  331. package/package.json +115 -0
  332. package/src/@bundler/README.md +1 -0
  333. package/src/@bundler/_logs.ts +4 -0
  334. package/src/@bundler/core.ts +41 -0
  335. package/src/@bundler/esbuild.ts +141 -0
  336. package/src/@bundler/index.ts +3 -0
  337. package/src/@bundler/plugins.ts +163 -0
  338. package/src/@bundler/tailwind.ts +139 -0
  339. package/src/@core/PageComponent.tsx +25 -0
  340. package/src/@core/README.md +1 -0
  341. package/src/@core/_logs.ts +11 -0
  342. package/src/@core/automaticStartStop.ts +132 -0
  343. package/src/@core/browserCacheControl.ts +40 -0
  344. package/src/@core/bundler/bundler.ts +128 -0
  345. package/src/@core/bundler/common.ts +18 -0
  346. package/src/@core/bundler/config.ts +37 -0
  347. package/src/@core/bundler/extraContent.ts +30 -0
  348. package/src/@core/bundler/pagesGenerator.ts +194 -0
  349. package/src/@core/bundler/server.ts +41 -0
  350. package/src/@core/caches/InMemoryCache.ts +483 -0
  351. package/src/@core/caches/SimpleFileCache.ts +205 -0
  352. package/src/@core/caches/cache.ts +77 -0
  353. package/src/@core/caches/webSiteMirrorCache.ts +90 -0
  354. package/src/@core/cheerio.d.ts +332 -0
  355. package/src/@core/gzip.ts +33 -0
  356. package/src/@core/index.ts +23 -0
  357. package/src/@core/internalTools.ts +95 -0
  358. package/src/@core/jQuery.ts +22 -0
  359. package/src/@core/jopiEasy.ts +1285 -0
  360. package/src/@core/jopiRequest.tsx +1279 -0
  361. package/src/@core/jopiServer.ts +188 -0
  362. package/src/@core/jopiWebSite.tsx +1027 -0
  363. package/src/@core/letsEncrypt.ts +243 -0
  364. package/src/@core/linker.ts +42 -0
  365. package/src/@core/loadBalancing.ts +152 -0
  366. package/src/@core/middlewares/CorsMiddleware.ts +23 -0
  367. package/src/@core/middlewares/DdosProtection.ts +120 -0
  368. package/src/@core/middlewares/index.ts +16 -0
  369. package/src/@core/publicTools.ts +14 -0
  370. package/src/@core/routeConfig.ts +104 -0
  371. package/src/@core/searchParamFilter.ts +315 -0
  372. package/src/@core/serverFetch.ts +454 -0
  373. package/src/@core/serverImpl/server_bunjs.tsx +230 -0
  374. package/src/@core/serverImpl/server_nodejs.ts +312 -0
  375. package/src/@core/serverInstanceBuilder.ts +36 -0
  376. package/src/@core/userStores.ts +34 -0
  377. package/src/@crawler/README.md +1 -0
  378. package/src/@crawler/common.ts +275 -0
  379. package/src/@crawler/core.ts +678 -0
  380. package/src/@crawler/directFileCache.ts +69 -0
  381. package/src/@crawler/index.ts +4 -0
  382. package/src/@crawler/urlMapping.ts +67 -0
  383. package/src/@crawler/utils.ts +13 -0
  384. package/src/@generated/index.ts +134 -0
  385. package/src/@linker/arobaseTypes.ts +325 -0
  386. package/src/@linker/changeProof.ts +53 -0
  387. package/src/@linker/config.ts +46 -0
  388. package/src/@linker/engine.ts +865 -0
  389. package/src/@linker/index.ts +3 -0
  390. package/src/@linker/install.ts +39 -0
  391. package/src/@linker/modInstaller.ts +50 -0
  392. package/src/@linker/typeEvents.ts +58 -0
  393. package/src/@linker/typeRoutes.ts +255 -0
  394. package/src/@linker/typeUiComposite.ts +19 -0
  395. package/src/@loader/README.md +4 -0
  396. package/src/@loader/bunHtmlCompiler.mjs +27 -0
  397. package/src/@loader/index.ts +19 -0
  398. package/src/@loader/loader.mjs +7 -0
  399. package/src/@loader/nodeJsLoader.ts +21 -0
  400. package/src/@loader-client/README.md +2 -0
  401. package/src/@loader-client/index.ts +108 -0
  402. package/src/@loader-tools/README.md +6 -0
  403. package/src/@loader-tools/bunJsLoader.ts +33 -0
  404. package/src/@loader-tools/config.ts +142 -0
  405. package/src/@loader-tools/cssModuleCompiler.ts +76 -0
  406. package/src/@loader-tools/esBuildPlugin.ts +142 -0
  407. package/src/@loader-tools/index.ts +11 -0
  408. package/src/@loader-tools/jopin.ts +403 -0
  409. package/src/@loader-tools/nodeJsLoader.ts +119 -0
  410. package/src/@loader-tools/nodeJsResolver.ts +140 -0
  411. package/src/@loader-tools/rules.ts +45 -0
  412. package/src/@loader-tools/sourceChangesWatcher.ts +225 -0
  413. package/src/@loader-tools/tools.ts +139 -0
  414. package/src/@loader-tools/transform.ts +138 -0
  415. package/src/@loader-tools/virtualUrl.ts +57 -0
  416. package/src/@loader-types/README.md +15 -0
  417. package/src/@loader-types/extensions.d.ts +65 -0
  418. package/src/@tool-jopinb/README.md +1 -0
  419. package/src/@tool-jopinb/index.ts +11 -0
  420. package/src/@ui/README.md +3 -0
  421. package/src/@ui/components.tsx +49 -0
  422. package/src/@ui/cssModules.tsx +27 -0
  423. package/src/@ui/hooks.tsx +95 -0
  424. package/src/@ui/index.ts +13 -0
  425. package/src/@ui/internal.ts +12 -0
  426. package/src/@ui/modules.ts +100 -0
  427. package/src/@ui/objectRegistry.ts +50 -0
  428. package/src/@ui/pageController.ts +203 -0
  429. package/src/@ui/tools.ts +116 -0
  430. package/src/@uikit/README.md +1 -0
  431. package/src/@uikit/core/UiKitModule.ts +20 -0
  432. package/src/@uikit/core/index.ts +4 -0
  433. package/src/@uikit/core/jBundler_ifBrowser.ts +4 -0
  434. package/src/@uikit/core/jBundler_ifServer.ts +18 -0
  435. package/src/@uikit/forms/components.tsx +97 -0
  436. package/src/@uikit/forms/hooks.ts +38 -0
  437. package/src/@uikit/forms/index.ts +3 -0
  438. package/src/@uikit/forms/interfaces.ts +159 -0
  439. package/src/@uikit/forms/private.ts +365 -0
  440. package/src/@uikit/helpers/hooks.ts +133 -0
  441. package/src/@uikit/helpers/index.ts +2 -0
  442. package/src/@uikit/helpers/tools.ts +39 -0
  443. package/src/@uikit/index.ts +15 -0
  444. package/src/@uikit/menu/core.ts +227 -0
  445. package/src/@uikit/menu/hooks.ts +28 -0
  446. package/src/@uikit/menu/index.ts +3 -0
  447. package/src/@uikit/menu/interfaces.ts +26 -0
  448. package/src/@uikit/menu/internal.ts +218 -0
  449. package/src/@uikit/package.json +15 -0
  450. package/src/@uikit/reactRouter/hooks/jBundler_ifBrowser.tsx +59 -0
  451. package/src/@uikit/reactRouter/hooks/jBundler_ifServer.tsx +51 -0
  452. package/src/@uikit/reactRouter/index.ts +1 -0
  453. package/src/@uikit/users/hooks.ts +50 -0
  454. package/src/@uikit/users/index.ts +1 -0
  455. package/src/@uikit/variants/index.tsx +20 -0
@@ -0,0 +1,312 @@
1
+ // noinspection JSUnusedGlobalSymbols
2
+ import {} from "./jopiWebSite.js";
3
+ import { AutomaticStartStop } from "./automaticStartStop.js";
4
+ import { JopiRequest } from "./jopiRequest.js";
5
+ import { isNodeJS } from "jopi-toolkit/jk_what";
6
+ export class ServerFetch {
7
+ options;
8
+ lastURL;
9
+ /**
10
+ * The load-balancer will attach himself if this instance
11
+ * is used by a load balancer.
12
+ */
13
+ loadBalancer;
14
+ /**
15
+ * Create an instance that translates urls from an origin to a destination.
16
+ * Ex: http://127.0.0.1 --> https://www.mywebiste.com
17
+ * Ex: https://my-server.com --> https://134.555.666.66:7890 (with hostname: my-server.com)
18
+ *
19
+ * @param publicUrl
20
+ * The origin of our current website.
21
+ * @param targetUrl
22
+ * The origin of the target website.
23
+ * @param hostName
24
+ * Must be set if toOrigin use an IP and not a hostname.
25
+ * (will set the Host header)
26
+ * @param options
27
+ * Options for the ServerFetch instance.
28
+ */
29
+ static fromTo(publicUrl, targetUrl, hostName, options) {
30
+ return new ServerFetch(ServerFetch.getOptionsFor_fromTo(publicUrl, targetUrl, hostName, options));
31
+ }
32
+ static getOptionsFor_fromTo(publicUrl, targetUrl, hostName, options) {
33
+ const uPublicUrl = new URL(publicUrl);
34
+ const uTargetUrl = new URL(targetUrl);
35
+ targetUrl = uTargetUrl.toString().slice(0, -1);
36
+ if (!hostName)
37
+ hostName = uTargetUrl.hostname;
38
+ return {
39
+ ...options,
40
+ rewriteUrl(url, headers) {
41
+ const urlInfos = new URL(url);
42
+ urlInfos.port = uTargetUrl.port;
43
+ urlInfos.protocol = uTargetUrl.protocol;
44
+ urlInfos.hostname = uTargetUrl.hostname;
45
+ if (hostName) {
46
+ headers.set('Host', hostName);
47
+ }
48
+ return urlInfos;
49
+ },
50
+ translateRedirect(url) {
51
+ if (url[0] === "/") {
52
+ url = targetUrl + url;
53
+ }
54
+ const urlInfos = new URL(url);
55
+ urlInfos.port = uPublicUrl.port;
56
+ urlInfos.protocol = uPublicUrl.protocol;
57
+ urlInfos.hostname = uPublicUrl.hostname;
58
+ return urlInfos;
59
+ }
60
+ };
61
+ }
62
+ static useOrigin(serverOrigin, options) {
63
+ return new ServerFetch(ServerFetch.getOptionsFor_useOrigin(serverOrigin, options));
64
+ }
65
+ static useIP(serverOrigin, ip, options) {
66
+ return new ServerFetch(ServerFetch.getOptionsFor_useIP(serverOrigin, ip, options));
67
+ }
68
+ static getOptionsFor_useOrigin(serverOrigin, options) {
69
+ const urlOrigin = new URL(serverOrigin);
70
+ return {
71
+ ...options,
72
+ rewriteUrl(url) {
73
+ const urlInfos = new URL(url);
74
+ urlInfos.port = urlOrigin.port;
75
+ urlInfos.protocol = urlOrigin.protocol;
76
+ urlInfos.hostname = urlOrigin.hostname;
77
+ return urlInfos;
78
+ }
79
+ };
80
+ }
81
+ static getOptionsFor_useIP(serverOrigin, ip, options) {
82
+ let urlOrigin = new URL(serverOrigin);
83
+ let hostName = urlOrigin.hostname;
84
+ urlOrigin.hostname = ip;
85
+ return {
86
+ ...options,
87
+ rewriteUrl(url, headers) {
88
+ const urlInfos = new URL(url);
89
+ urlInfos.port = urlOrigin.port;
90
+ urlInfos.protocol = urlOrigin.protocol;
91
+ urlInfos.hostname = urlOrigin.hostname;
92
+ if (hostName) {
93
+ headers.set('Host', hostName);
94
+ }
95
+ return urlInfos;
96
+ }
97
+ };
98
+ }
99
+ static useAsIs(options) {
100
+ return new ServerFetch(options);
101
+ }
102
+ constructor(options) {
103
+ options = options || {};
104
+ this.options = options;
105
+ if (!options.data)
106
+ options.data = {};
107
+ if (!options.headers)
108
+ options.headers = new Headers();
109
+ if (options.userDefaultHeaders !== false)
110
+ this.useDefaultHeaders();
111
+ this.compileCookies();
112
+ if (options.doStartServer) {
113
+ let autoStartStop = new AutomaticStartStop({
114
+ onStart: options.doStartServer,
115
+ onStop: options.doStopServer
116
+ });
117
+ if (options.beforeRequesting) {
118
+ const beforeRequesting = options.beforeRequesting;
119
+ const doStart = options.doStartServer;
120
+ options.beforeRequesting = async (url, fetchOptions, data) => {
121
+ await autoStartStop.start();
122
+ return beforeRequesting(url, fetchOptions, data);
123
+ };
124
+ }
125
+ else {
126
+ options.beforeRequesting = () => autoStartStop.start();
127
+ }
128
+ }
129
+ if (options.publicUrl) {
130
+ const url = new URL(options.publicUrl);
131
+ options.headers.set('X-Forwarded-Proto', url.protocol.replace(':', ''));
132
+ options.headers.set('X-Forwarded-Host', url.host);
133
+ let ignorePort = false;
134
+ if (url.protocol === 'http:') {
135
+ if (!url.port || (url.port === "80")) {
136
+ ignorePort = true;
137
+ }
138
+ }
139
+ else {
140
+ if (!url.port || (url.port === "443")) {
141
+ ignorePort = true;
142
+ }
143
+ }
144
+ if (!ignorePort) {
145
+ options.headers.set('X-Forwarded-Port', url.port);
146
+ }
147
+ }
148
+ }
149
+ async checkIfServerOk() {
150
+ if (!this.lastURL)
151
+ return false;
152
+ let url = new URL(this.lastURL);
153
+ url.pathname = "/";
154
+ const res = await this.fetch("GET", url);
155
+ return res.status < 500;
156
+ }
157
+ useDefaultHeaders() {
158
+ const headers = this.options.headers;
159
+ const json = {
160
+ "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
161
+ "connection": "keep-alive",
162
+ "cache-control": "max-age=0",
163
+ "dnt": "1",
164
+ "upgrade-insecure-requests": "1",
165
+ "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
166
+ "sec-fetch-mode": "navigate",
167
+ "sec-fetch-dest": "document",
168
+ "accept-encoding": "gzip, deflate, br, zstd",
169
+ "accept-language": "fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,es;q=0.6",
170
+ "sec-ch-ua": "\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"",
171
+ "sec-ch-ua-mobile": "?0",
172
+ "sec-ch-ua-platform": "\"macOS\"",
173
+ "sec-fetch-site": "none",
174
+ "sec-fetch-user": "?1"
175
+ };
176
+ for (const [key, value] of Object.entries(json)) {
177
+ headers.set(key, value);
178
+ }
179
+ }
180
+ compileCookies() {
181
+ if (!this.options.cookies)
182
+ return;
183
+ let cookies = '';
184
+ for (const [name, value] of Object.entries(this.options.cookies)) {
185
+ cookies += `;${name}=${value}`;
186
+ }
187
+ if (cookies) {
188
+ this.options.headers?.set("Cookies", cookies.substring(1));
189
+ }
190
+ }
191
+ /**
192
+ * Allow directly proxy a request as if we were directly asking the target server.
193
+ */
194
+ async directProxy(req) {
195
+ return this.doFetch(req.method, req.urlInfos.href, req.body, req.headers);
196
+ }
197
+ async fetchWith(req) {
198
+ return this.doFetch(req.method, req.urlInfos.href, req.body, req.headers);
199
+ }
200
+ async fetch(method, url, body, headers) {
201
+ return this.doFetch(method, url.toString(), body, headers);
202
+ }
203
+ async fetch2(method, url, body, headers) {
204
+ return this.doFetch(method, url, body, headers);
205
+ }
206
+ normalizeUrl(urlInfos) {
207
+ // To known: urlInfos.toString() always add a "/" at the end of the root.
208
+ // new URL("http://127.0.0.1") --> http://127.0.0.1/
209
+ if (urlInfos.pathname.length <= 1 && this.options.removeRootTrailingSlash) {
210
+ return urlInfos.origin;
211
+ }
212
+ return urlInfos.href;
213
+ }
214
+ /**
215
+ * Allow fetching some content.
216
+ */
217
+ async doFetch(method, url, body, headers) {
218
+ const bckURL = url;
219
+ if (!headers) {
220
+ if (this.options.headers)
221
+ headers = this.options.headers;
222
+ else
223
+ headers = new Headers();
224
+ }
225
+ // Avoid some protections using the referer.
226
+ //headers.delete("Referer");
227
+ if (this.options.rewriteUrl) {
228
+ let urlInfos = this.options.rewriteUrl(url, headers, this);
229
+ url = this.normalizeUrl(urlInfos);
230
+ }
231
+ const fetchOptions = {
232
+ method: method,
233
+ headers: headers,
234
+ verbose: this.options.verbose,
235
+ // Allow avoiding automatic redirections.
236
+ // @ts-ignore
237
+ redirect: 'manual',
238
+ body: body,
239
+ // Allow avoiding SSL certificate check.
240
+ //
241
+ rejectUnauthorized: false,
242
+ requestCert: false,
243
+ tls: {
244
+ rejectUnauthorized: false,
245
+ checkServerIdentity: () => { return undefined; }
246
+ },
247
+ // Required by node.js
248
+ duplex: "half"
249
+ };
250
+ if (this.options.beforeRequesting) {
251
+ const res = this.options.beforeRequesting(url, fetchOptions, this.options.data);
252
+ if (res instanceof Promise)
253
+ await res;
254
+ }
255
+ this.lastURL = url;
256
+ try {
257
+ let r = await fetch(url, fetchOptions);
258
+ if (r.status >= 300 && r.status < 400) {
259
+ let location = r.headers.get('location');
260
+ if (location) {
261
+ if (this.options.translateRedirect) {
262
+ location = this.normalizeUrl(this.options.translateRedirect(location));
263
+ r.headers.set('Location', location);
264
+ }
265
+ r = new Response(null, { status: r.status, headers: r.headers });
266
+ }
267
+ }
268
+ if (this.options.verbose) {
269
+ console.log(`Fetched [${r.status}]`, url);
270
+ if (!r.body)
271
+ console.log("Response hasn't a body");
272
+ const ct = r.headers.get("content-length");
273
+ if (ct !== undefined && ct === '0')
274
+ console.log(`Response content-length: ${length}`);
275
+ }
276
+ // The response is received gzipped but is deflated.
277
+ // It's why his content-length and content-encoding must be reset.
278
+ if (isNodeJS) {
279
+ let headers = new Headers(r.headers);
280
+ headers.delete("content-length");
281
+ headers.delete("content-encoding");
282
+ r = new Response(r.body, { headers: headers, status: r.status });
283
+ }
284
+ else {
285
+ r.headers.delete("content-encoding");
286
+ r.headers.delete("content-encoding");
287
+ }
288
+ return r;
289
+ }
290
+ catch (e) {
291
+ if (this.options.ifServerIsDown) {
292
+ // Allow we to know there is something fishy.
293
+ const result = await this.options.ifServerIsDown(this, this.options.data);
294
+ // We can retry to send the request?
295
+ if (result && result.newServer) {
296
+ if (this.loadBalancer) {
297
+ this.loadBalancer.replaceServer(this, result.newServer, result.newServerWeight);
298
+ }
299
+ return result.newServer.doFetch(method, bckURL, body, headers);
300
+ }
301
+ }
302
+ // 521: Web Server Is Down.
303
+ return new Response(null, { status: 521 });
304
+ }
305
+ }
306
+ }
307
+ // Allow disabling ssl certificate verification.
308
+ //
309
+ if (isNodeJS) {
310
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
311
+ }
312
+ //# sourceMappingURL=serverFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverFetch.js","sourceRoot":"","sources":["../../src/@core/serverFetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { CoreServer, SseEvent, WebSocketConnectionInfos } from "../jopiServer.ts";
2
+ import { type HttpMethod, type JopiWebSocket, type WebSiteImpl, type WebSiteRouteInfos } from "../jopiWebSite.tsx";
3
+ import type { ServerInstanceBuilder } from "../serverInstanceBuilder.ts";
4
+ import React from "react";
5
+ import { type TryReturnFileParams } from "../browserCacheControl.ts";
6
+ /**
7
+ * Is called when a client connects through a GET request.
8
+ */
9
+ export declare function onSseEvent(sseEvent: SseEvent): Promise<Response>;
10
+ export declare class BunJsServerInstanceBuilder implements ServerInstanceBuilder {
11
+ private readonly webSite;
12
+ private bunServer?;
13
+ private serverOptions?;
14
+ private serverRoutes;
15
+ private readonly isReactHmrEnabled;
16
+ private readonly pageToBuild;
17
+ constructor(webSite: WebSiteImpl);
18
+ addRoute(verb: HttpMethod, path: string, route: WebSiteRouteInfos): void;
19
+ addWsRoute(path: string, handler: (ws: JopiWebSocket, infos: WebSocketConnectionInfos) => void): void;
20
+ addSseEVent(path: string, eventInfos: SseEvent): void;
21
+ tryReturnFile(params: TryReturnFileParams): Promise<Response | undefined>;
22
+ addPage(path: string, pageKey: string, reactComponent: React.FC<any>, routeInfos: WebSiteRouteInfos): void;
23
+ updateTlsCertificate(certificate: any): void;
24
+ buildPage(path: string, pageKey: string): Promise<void>;
25
+ startServer(params: {
26
+ port: number;
27
+ tls: any;
28
+ }): Promise<CoreServer>;
29
+ }
@@ -0,0 +1,180 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import { SBPE_DirectSendThisResponseException } from "../jopiWebSite.js";
10
+ import React from "react";
11
+ import * as jk_fs from "jopi-toolkit/jk_fs";
12
+ import { getBundleDirPath } from "../bundler/common.js";
13
+ import { hasJopiDevUiFlag } from "jopijs/loader-client";
14
+ import { addBrowserCacheControlHeaders } from "../browserCacheControl.js";
15
+ /**
16
+ * Is called when a client connects through a GET request.
17
+ */
18
+ export async function onSseEvent(sseEvent) {
19
+ // Serve a reference for this client.
20
+ // To know: stream can't be used because it's not initialized yet.
21
+ const me = {};
22
+ const stream = new ReadableStream({
23
+ /**
24
+ * Is called when starting to read the stream.
25
+ */
26
+ start(streamController) {
27
+ const nodeSseEvent = sseEvent;
28
+ // Occurs only one time.
29
+ if (!nodeSseEvent.clients) {
30
+ nodeSseEvent.clients = [];
31
+ let sseController = {
32
+ send(eventName, data) {
33
+ let toSend = `event: ${eventName}\ndata: ${JSON.stringify({ message: data })}\n\n`;
34
+ const encoder = new TextEncoder();
35
+ const encodedData = encoder.encode(toSend);
36
+ nodeSseEvent.clients.forEach(e => {
37
+ e.controller.enqueue(encodedData);
38
+ });
39
+ },
40
+ close() {
41
+ console.log("SSE close by API");
42
+ nodeSseEvent.clients.forEach(e => {
43
+ e.controller.close();
44
+ clearInterval(e.keepAliveInterval);
45
+ e.keepAliveInterval = undefined;
46
+ });
47
+ nodeSseEvent.clients = [];
48
+ }
49
+ };
50
+ nodeSseEvent.handler(sseController);
51
+ }
52
+ // Allow avoiding a bug where the stream is closed.
53
+ // Come from bun or chrome?
54
+ //
55
+ const timer = setInterval(() => {
56
+ try {
57
+ client.controller.enqueue(`event: echo\ndata: echo\n\n`);
58
+ }
59
+ catch { }
60
+ }, 2000);
61
+ const client = { controller: streamController, me, keepAliveInterval: timer };
62
+ me.client = client;
63
+ nodeSseEvent.clients.push(client);
64
+ const initialData = sseEvent.getWelcomeMessage();
65
+ const encoder = new TextEncoder();
66
+ streamController.enqueue(encoder.encode(`data: ${initialData}\n\n`));
67
+ },
68
+ cancel() {
69
+ clearInterval(me.client.keepAliveInterval);
70
+ const nodeSseEvent = sseEvent;
71
+ nodeSseEvent.clients = nodeSseEvent.clients.filter(e => e.me !== me);
72
+ }
73
+ });
74
+ throw new SBPE_DirectSendThisResponseException(new Response(stream, {
75
+ headers: {
76
+ 'Content-Type': 'text/event-stream',
77
+ 'Cache-Control': 'no-cache',
78
+ 'Connection': 'keep-alive'
79
+ }
80
+ }));
81
+ }
82
+ //endregion
83
+ //region ServerInstanceProvider
84
+ export class BunJsServerInstanceBuilder {
85
+ webSite;
86
+ bunServer;
87
+ serverOptions;
88
+ serverRoutes = {};
89
+ isReactHmrEnabled;
90
+ pageToBuild = {};
91
+ constructor(webSite) {
92
+ this.webSite = webSite;
93
+ this.isReactHmrEnabled = hasJopiDevUiFlag();
94
+ }
95
+ addRoute(verb, path, route) {
96
+ if (!this.serverRoutes[path]) {
97
+ this.serverRoutes[path] = {};
98
+ }
99
+ const webSite = this.webSite;
100
+ this.serverRoutes[path][verb] = (req, server) => {
101
+ const urlInfos = new URL(req.url);
102
+ return webSite.processRequest(route.handler, req.params, route, urlInfos, req, server);
103
+ };
104
+ }
105
+ addWsRoute(path, handler) {
106
+ //TODO
107
+ }
108
+ addSseEVent(path, eventInfos) {
109
+ eventInfos = { ...eventInfos };
110
+ this.addRoute("GET", path, {
111
+ route: path,
112
+ handler: async (_) => {
113
+ return onSseEvent(eventInfos);
114
+ }
115
+ });
116
+ }
117
+ async tryReturnFile(params) {
118
+ let stats = params.validationInfos.fileState;
119
+ if (!stats)
120
+ return undefined;
121
+ if (stats?.isFile()) {
122
+ const headers = {};
123
+ if (params.contentEncoding)
124
+ headers["content-encoding"] = params.contentEncoding;
125
+ addBrowserCacheControlHeaders(headers, params);
126
+ return new Response(Bun.file(params.filePath), { status: 200, headers });
127
+ }
128
+ return undefined;
129
+ }
130
+ addPage(path, pageKey, reactComponent, routeInfos) {
131
+ if (this.isReactHmrEnabled) {
132
+ this.pageToBuild[path] = pageKey;
133
+ return;
134
+ }
135
+ routeInfos.handler = async (req) => {
136
+ return await req.react_fromPage(pageKey, reactComponent);
137
+ };
138
+ routeInfos.handler = this.webSite.applyMiddlewares("GET", path, routeInfos.handler, true);
139
+ this.addRoute("GET", path, routeInfos);
140
+ }
141
+ updateTlsCertificate(certificate) {
142
+ this.serverOptions.tls = certificate;
143
+ // Will reload without breaking the current connections.
144
+ // @ts-ignore
145
+ this.bunServer.reload(this.serverOptions);
146
+ }
147
+ async buildPage(path, pageKey) {
148
+ const genDir = getBundleDirPath(this.webSite);
149
+ const htmlFilePath = jk_fs.join(genDir, pageKey + ".html");
150
+ if (!this.serverRoutes[path])
151
+ this.serverRoutes[path] = {};
152
+ this.serverRoutes[path]["GET"] = (await import(__rewriteRelativeImportExtension(htmlFilePath))).default;
153
+ }
154
+ async startServer(params) {
155
+ const options = {
156
+ port: String(params.port),
157
+ tls: params.tls,
158
+ routes: this.serverRoutes,
159
+ fetch: async (req) => {
160
+ const urlInfos = new URL(req.url);
161
+ return await this.webSite.processRequest(undefined, {}, undefined, urlInfos, req, this.bunServer);
162
+ },
163
+ development: this.isReactHmrEnabled && {
164
+ // Enable browser hot reloading in development
165
+ hmr: true,
166
+ // Echo console logs from the browser to the server
167
+ console: true,
168
+ }
169
+ };
170
+ for (let path in this.pageToBuild) {
171
+ let pageKey = this.pageToBuild[path];
172
+ await this.buildPage(path, pageKey);
173
+ }
174
+ this.serverOptions = options;
175
+ // @ts-ignore
176
+ return this.bunServer = Bun.serve(options);
177
+ }
178
+ }
179
+ //endregion
180
+ //# sourceMappingURL=server_bunjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server_bunjs.js","sourceRoot":"","sources":["../../../src/@core/serverImpl/server_bunjs.tsx"],"names":[],"mappings":";;;;;;;;AACA,OAAO,EAEH,oCAAoC,EACvC,MAAM,mBAAoB,CAAC;AAE5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAC,6BAA6B,EAA2B,MAAM,2BAA2B,CAAC;AAclG;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAkB;IAC/C,qCAAqC;IACrC,kEAAkE;IAClE,MAAM,EAAE,GAAyB,EAAG,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAC9B;;WAEG;QACH,KAAK,CAAC,gBAAgB;YAClB,MAAM,YAAY,GAAG,QAAuB,CAAC;YAE7C,wBAAwB;YACxB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACxB,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;gBAE1B,IAAI,aAAa,GAAuB;oBACpC,IAAI,CAAC,SAAiB,EAAE,IAAY;wBAChC,IAAI,MAAM,GAAG,UAAU,SAAS,WAAY,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAE,MAAM,CAAC;wBACnF,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;wBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAE3C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7B,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACtC,CAAC,CAAC,CAAC;oBACP,CAAC;oBAED,KAAK;wBACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBAEhC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAC7B,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;4BACrB,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;4BACnC,CAAC,CAAC,iBAAiB,GAAG,SAAS,CAAC;wBACpC,CAAC,CAAC,CAAC;wBAEH,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;oBAC9B,CAAC;iBACJ,CAAA;gBAED,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;YAED,mDAAmD;YACnD,2BAA2B;YAC3B,EAAE;YACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC;oBAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAAC,CAAC;gBACjE,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC,EAAE,IAAI,CAAC,CAAC;YAET,MAAM,MAAM,GAAc,EAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC;YACvF,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAEnB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElC,MAAM,WAAW,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAEjD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;YAClC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM;YACF,aAAa,CAAC,EAAE,CAAC,MAAO,CAAC,iBAAiB,CAAC,CAAC;YAE5C,MAAM,YAAY,GAAG,QAAuB,CAAC;YAC7C,YAAY,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,IAAI,oCAAoC,CAC1C,IAAI,QAAQ,CAAC,MAAM,EAAE;QACjB,OAAO,EAAE;YACL,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,UAAU;YAC3B,YAAY,EAAE,YAAY;SAC7B;KACJ,CAAC,CACL,CAAC;AACN,CAAC;AAED,WAAW;AAEX,+BAA+B;AAE/B,MAAM,OAAO,0BAA0B;IAQN;IAPrB,SAAS,CAAuB;IAChC,aAAa,CAAO;IACpB,YAAY,GAAQ,EAAE,CAAC;IACd,iBAAiB,CAAU;IAE3B,WAAW,GAA2B,EAAE,CAAC;IAE1D,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;QAC7C,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,EAAE,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAE,KAAwB;QAC7D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAmB,EAAE,MAA2B,EAAE,EAAE;YACjF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3F,CAAC,CAAA;IACL,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,OAAqE;QAC1F,MAAM;IACV,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,UAAoB;QAC1C,UAAU,GAAG,EAAC,GAAG,UAAU,EAAC,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;YACvB,KAAK,EAAE,IAAI;YAEX,OAAO,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;gBACf,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC3C,IAAI,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,IAAI,MAAM,CAAC,eAAe;gBAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC;YACjF,6BAA6B,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAE/C,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,OAAe,EAAE,cAA6B,EAAE,UAA6B;QAC/F,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACjC,OAAO;QACX,CAAC;QAED,UAAU,CAAC,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE;YAC/B,OAAO,MAAM,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,oBAAoB,CAAC,WAAgB;QACjC,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,WAAW,CAAC;QAErC,wDAAwD;QACxD,aAAa;QACb,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,OAAe;QACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;QAE3D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,kCAAC,YAAY,EAAC,CAAC,CAAC,OAAO,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAkC;QAChD,MAAM,OAAO,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,YAAY;YAEzB,KAAK,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;gBAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,SAAU,CAAC,CAAC;YACvG,CAAC;YAED,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI;gBACnC,8CAA8C;gBAC9C,GAAG,EAAE,IAAI;gBACT,mDAAmD;gBACnD,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC;QAEF,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAE7B,aAAa;QACb,OAAO,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;CACJ;AAED,WAAW"}
@@ -0,0 +1,22 @@
1
+ import { type TryReturnFileParams } from "../browserCacheControl.ts";
2
+ import type { CoreServer, SseEvent, WebSocketConnectionInfos } from "../jopiServer.ts";
3
+ import type { HttpMethod, JopiWebSocket, WebSiteImpl, WebSiteRouteInfos } from "../jopiWebSite.tsx";
4
+ import type { ServerInstanceBuilder } from "../serverInstanceBuilder.ts";
5
+ import React from "react";
6
+ export declare function onSseEvent(sseEvent: SseEvent, rawReq: any): Promise<Response>;
7
+ export declare class NodeJsServerInstanceBuilder implements ServerInstanceBuilder {
8
+ private readonly webSite;
9
+ private readonly router;
10
+ private readonly wsRouter;
11
+ constructor(webSite: WebSiteImpl);
12
+ addRoute(verb: HttpMethod, path: string, routeInfos: WebSiteRouteInfos): void;
13
+ addWsRoute(path: string, handler: (ws: JopiWebSocket, infos: WebSocketConnectionInfos) => void): void;
14
+ addSseEVent(path: string, handler: SseEvent): void;
15
+ startServer(params: {
16
+ port: number;
17
+ tls: any;
18
+ }): Promise<CoreServer>;
19
+ updateTlsCertificate(certificate: any): void;
20
+ addPage(path: string, pageKey: string, reactComponent: React.FC<any>, routeInfos: WebSiteRouteInfos): void;
21
+ tryReturnFile(params: TryReturnFileParams): Promise<Response | undefined>;
22
+ }