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,653 @@
1
+ // noinspection JSUnusedGlobalSymbols
2
+ import { JopiRequest } from "./jopiRequest.js";
3
+ import { ServerFetch } from "./serverFetch.js";
4
+ import { LoadBalancer } from "./loadBalancing.js";
5
+ import {} from "./jopiServer.js";
6
+ import { PostMiddlewares } from "./middlewares/index.js";
7
+ import jwt from "jsonwebtoken";
8
+ import React from "react";
9
+ import { ModuleInitContext, PageController } from "jopijs/ui";
10
+ import { VoidPageCache } from "./caches/cache.js";
11
+ import { ONE_DAY } from "./publicTools.js";
12
+ import { getInMemoryCache } from "./caches/InMemoryCache.js";
13
+ import { installBundleServer } from "./bundler/server.js";
14
+ import { createBundle } from "./bundler/bundler.js";
15
+ import * as jk_webSocket from "jopi-toolkit/jk_webSocket";
16
+ import * as jk_events from "jopi-toolkit/jk_events";
17
+ import { installBrowserRefreshSseEvent, isBrowserRefreshEnabled } from "jopijs/loader-client";
18
+ import { executeBrowserInstall } from "./linker.js";
19
+ import { getNewServerInstanceBuilder } from "./serverInstanceBuilder.js";
20
+ import { PriorityLevel, sortByPriority } from "jopi-toolkit/jk_tools";
21
+ import { logCache_notInCache, logServer_request } from "./_logs.js";
22
+ export class WebSiteImpl {
23
+ port;
24
+ host;
25
+ welcomeUrl;
26
+ isHttps = false;
27
+ http80WebSite;
28
+ certificate;
29
+ globalMiddlewares = {};
30
+ globalPostMiddlewares = {};
31
+ _onRebuildCertificate;
32
+ _onWebSiteReady;
33
+ data = {};
34
+ loadBalancer = new LoadBalancer();
35
+ events = jk_events.defaultEventGroup;
36
+ mustRemoveTrailingSlashs;
37
+ constructor(url, options) {
38
+ if (!options)
39
+ options = {};
40
+ url = url.trim().toLowerCase();
41
+ this.welcomeUrl = url;
42
+ this.certificate = options.certificate;
43
+ const urlInfos = new URL(url);
44
+ this.welcomeUrl = urlInfos.protocol + "//" + urlInfos.hostname;
45
+ if (urlInfos.protocol === "https:")
46
+ this.isHttps = true;
47
+ else if (urlInfos.protocol !== "http:")
48
+ throw new Error("invalid url");
49
+ if (urlInfos.port) {
50
+ this.port = parseInt(urlInfos.port);
51
+ this.welcomeUrl += ':' + this.port;
52
+ }
53
+ else {
54
+ if (this.isHttps)
55
+ this.port = 443;
56
+ else
57
+ this.port = 80;
58
+ }
59
+ this.host = urlInfos.host;
60
+ this.mainCache = options.cache || getInMemoryCache();
61
+ this.serverInstanceBuilder = getNewServerInstanceBuilder(this);
62
+ this.mustRemoveTrailingSlashs = options.removeTrailingSlash !== false;
63
+ this._onWebSiteReady = options.onWebSiteReady;
64
+ // Allow hooking the newly created websites.
65
+ jk_events.sendEvent("jopi.webSite.created", this);
66
+ }
67
+ getWelcomeUrl() {
68
+ return this.welcomeUrl;
69
+ }
70
+ async processRequest(handler, urlParts, routeInfos, urlInfos, coreRequest, coreServer) {
71
+ // For security reasons. Without that, an attacker can break a cache.
72
+ if (urlInfos)
73
+ urlInfos.hash = "";
74
+ const req = new JopiRequest(this, urlInfos, coreRequest, coreServer, routeInfos);
75
+ req.urlParts = urlParts;
76
+ const endReq = logServer_request.beginInfo((w) => w(`${req.method} request`, { url: req.url }));
77
+ try {
78
+ let res;
79
+ if (handler) {
80
+ res = await handler(req);
81
+ res = req._applyPostProcess(res);
82
+ }
83
+ else {
84
+ res = await req.res_returnError404_NotFound();
85
+ }
86
+ endReq({ status: res.status });
87
+ return res;
88
+ }
89
+ catch (e) {
90
+ if (e instanceof SBPE_ServerByPassException) {
91
+ if (e instanceof SBPE_DirectSendThisResponseException) {
92
+ if (e.response instanceof Response) {
93
+ return e.response;
94
+ }
95
+ else {
96
+ return await e.response(req);
97
+ }
98
+ }
99
+ else if (e instanceof SBPE_NotAuthorizedException) {
100
+ return req.res_returnError401_Unauthorized();
101
+ }
102
+ else if (e instanceof SBPE_MustReturnWithoutResponseException) {
103
+ return undefined;
104
+ }
105
+ }
106
+ console.error(e);
107
+ endReq({ error: e.message });
108
+ return this.return500(req, e);
109
+ }
110
+ }
111
+ async onBeforeServerStart() {
112
+ await jk_events.sendAsyncEvent("@jopi.server.before.start", { webSite: this });
113
+ await createBundle(this);
114
+ installBundleServer(this);
115
+ if (isBrowserRefreshEnabled()) {
116
+ // To known: there is a bug with some Chrome version
117
+ // doing that the SSE event is blocking the browser
118
+ // after 3/4 pages change through a link click
119
+ // (don't occur with a refresh)
120
+ //
121
+ installBrowserRefreshSseEvent(this);
122
+ }
123
+ }
124
+ async onServerStarted() {
125
+ if (this._onWebSiteReady) {
126
+ this._onWebSiteReady.forEach(e => e());
127
+ }
128
+ if (this.welcomeUrl) {
129
+ console.log("Website started:", this.welcomeUrl);
130
+ }
131
+ }
132
+ addGlobalMiddleware(method, middleware, options) {
133
+ options = options || {};
134
+ let m = method ? method : "*";
135
+ if (!this.globalMiddlewares[m])
136
+ this.globalMiddlewares[m] = [];
137
+ this.globalMiddlewares[m].push({ priority: options.priority || PriorityLevel.default, value: middleware, regExp: options.regExp });
138
+ }
139
+ addGlobalPostMiddleware(method, middleware, options) {
140
+ options = options || {};
141
+ let m = method ? method : "*";
142
+ if (!this.globalPostMiddlewares[m])
143
+ this.globalPostMiddlewares[m] = [];
144
+ this.globalPostMiddlewares[m].push({ priority: options.priority || PriorityLevel.default, value: middleware, regExp: options.regExp });
145
+ }
146
+ addSourceServer(serverFetch, weight) {
147
+ this.loadBalancer.addServer(serverFetch, weight);
148
+ }
149
+ enableCors(allows) {
150
+ if (!allows)
151
+ allows = [this.welcomeUrl];
152
+ this.addGlobalPostMiddleware(undefined, PostMiddlewares.cors({ accessControlAllowOrigin: allows }), { priority: PriorityLevel.veryHigh });
153
+ }
154
+ applyMiddlewares(verb, route, handler, isPage) {
155
+ function merge(a, b) {
156
+ if (!a)
157
+ return b;
158
+ if (!b)
159
+ return a;
160
+ return a.concat(b);
161
+ }
162
+ function mergeMiddlewares(allMiddlewares) {
163
+ if (allMiddlewares.length === 0)
164
+ return undefined;
165
+ if (allMiddlewares.length === 1)
166
+ return allMiddlewares[0];
167
+ const list = allMiddlewares.reverse();
168
+ let nextToCall;
169
+ for (let m of list) {
170
+ if (nextToCall) {
171
+ const toCall = m;
172
+ const next = nextToCall;
173
+ nextToCall = async function (req) {
174
+ let res = toCall(req);
175
+ if (res instanceof Promise)
176
+ res = await res;
177
+ if (res !== null)
178
+ return res;
179
+ return next(req);
180
+ };
181
+ }
182
+ else {
183
+ nextToCall = m;
184
+ }
185
+ }
186
+ return nextToCall;
187
+ }
188
+ function mergePostMiddlewares(allMiddlewares) {
189
+ if (allMiddlewares.length === 0)
190
+ return undefined;
191
+ if (allMiddlewares.length === 1)
192
+ return allMiddlewares[0];
193
+ const list = allMiddlewares.reverse();
194
+ let nextToCall;
195
+ for (let m of list) {
196
+ if (nextToCall) {
197
+ const toCall = m;
198
+ const next = nextToCall;
199
+ nextToCall = async function (req, res) {
200
+ let t = toCall(req, res);
201
+ if (t instanceof Promise)
202
+ t = await t;
203
+ return next(req, t);
204
+ };
205
+ }
206
+ else {
207
+ nextToCall = m;
208
+ }
209
+ }
210
+ return nextToCall;
211
+ }
212
+ return async (req) => {
213
+ const routeInfos = req.routeInfos;
214
+ const routeRawMiddlewares = routeInfos ? routeInfos.middlewares : undefined;
215
+ const routeRawPostMiddlewares = routeInfos ? routeInfos.postMiddlewares : undefined;
216
+ let globalRawMiddleware = this.globalMiddlewares[verb];
217
+ let globalRawPostMiddleware = this.globalPostMiddlewares[verb];
218
+ if (globalRawMiddleware) {
219
+ globalRawMiddleware = globalRawMiddleware.filter(m => {
220
+ if (m.regExp) {
221
+ return m.regExp.test(route);
222
+ }
223
+ return true;
224
+ });
225
+ }
226
+ if (globalRawPostMiddleware) {
227
+ globalRawPostMiddleware = globalRawPostMiddleware.filter(m => {
228
+ if (m.regExp) {
229
+ return m.regExp.test(route);
230
+ }
231
+ return true;
232
+ });
233
+ }
234
+ let middlewares = sortByPriority(merge(routeRawMiddlewares, globalRawMiddleware)) || [];
235
+ let postMiddlewares = sortByPriority(merge(routeRawPostMiddlewares, globalRawPostMiddleware)) || [];
236
+ // **********
237
+ const baseHandler = handler;
238
+ const mustUseAutoCache = this.mustUseAutomaticCache && routeInfos && (routeInfos.mustEnableAutomaticCache === true);
239
+ const extraMiddlewares = [];
240
+ if (req.routeInfos.requiredRoles) {
241
+ const roles = req.routeInfos.requiredRoles;
242
+ extraMiddlewares.push((req) => {
243
+ req.role_assertUserHasRoles(roles);
244
+ return null;
245
+ });
246
+ }
247
+ if (mustUseAutoCache) {
248
+ const beforeCheckingCache = routeInfos.beforeCheckingCache;
249
+ const afterGetFromCache = routeInfos.afterGetFromCache;
250
+ const beforeAddToCache = req.routeInfos.beforeAddToCache;
251
+ extraMiddlewares.push(async function () {
252
+ if (beforeCheckingCache) {
253
+ let r = await beforeCheckingCache(req);
254
+ //
255
+ if (r) {
256
+ return fPostMiddleware ? fPostMiddleware(req, r) : r;
257
+ }
258
+ }
259
+ let res = await req.cache_getFromCache();
260
+ if (res) {
261
+ if (afterGetFromCache) {
262
+ const r = await afterGetFromCache(req, res);
263
+ //
264
+ if (r) {
265
+ return fPostMiddleware ? fPostMiddleware(req, r) : r;
266
+ }
267
+ }
268
+ return fPostMiddleware ? fPostMiddleware(req, res) : res;
269
+ }
270
+ logCache_notInCache.info(w => w(`${req.method} request`, { url: req.urlInfos?.href }));
271
+ if (isPage) {
272
+ // Allows creating anonymous pages.
273
+ req.user_fakeNoUsers();
274
+ }
275
+ // > Here we bypass the default workflow.
276
+ res = await baseHandler(req);
277
+ if (beforeAddToCache) {
278
+ let r = await beforeAddToCache(req, res);
279
+ if (r)
280
+ return await req.cache_addToCache(r);
281
+ }
282
+ else {
283
+ return await req.cache_addToCache(res);
284
+ }
285
+ return res;
286
+ });
287
+ }
288
+ middlewares = [...extraMiddlewares, ...middlewares];
289
+ let newHandler;
290
+ const fMiddleware = mergeMiddlewares(middlewares);
291
+ const fPostMiddleware = mergePostMiddlewares(postMiddlewares);
292
+ if (fMiddleware || fPostMiddleware) {
293
+ newHandler = async (req) => {
294
+ if (fMiddleware) {
295
+ const res = await fMiddleware(req);
296
+ if (res)
297
+ return res;
298
+ }
299
+ const res = await baseHandler(req);
300
+ if (fPostMiddleware) {
301
+ return fPostMiddleware(req, res);
302
+ }
303
+ return res;
304
+ };
305
+ }
306
+ else {
307
+ newHandler = handler;
308
+ }
309
+ req.routeInfos.handler = newHandler;
310
+ return await newHandler(req);
311
+ };
312
+ }
313
+ getOrCreateHttpRedirectWebsite() {
314
+ if (this.http80WebSite)
315
+ return this.http80WebSite;
316
+ if (this.port === 80)
317
+ return this;
318
+ let urlInfos = new URL(this.welcomeUrl);
319
+ urlInfos.port = "";
320
+ urlInfos.protocol = "http";
321
+ const webSite = new WebSiteImpl(urlInfos.href);
322
+ this.http80WebSite = webSite;
323
+ webSite.onGET("/**", async (req) => {
324
+ req.urlInfos.port = "";
325
+ req.urlInfos.protocol = "https";
326
+ return req.res_redirectResponse(true, req.urlInfos.href);
327
+ });
328
+ return webSite;
329
+ }
330
+ updateSslCertificate(certificate) {
331
+ this.certificate = certificate;
332
+ if (this._onRebuildCertificate)
333
+ this._onRebuildCertificate();
334
+ }
335
+ /*declareNewWebSocketConnection(jws: JopiWebSocket, infos: WebSocketConnectionInfos, urlInfos: URL) {
336
+ const matched = findRoute(this.wsRouter, "ws", urlInfos.pathname);
337
+
338
+ if (!matched) {
339
+ jws.close();
340
+ return;
341
+ }
342
+
343
+ try { matched.data(jws, infos); }
344
+ catch(e) { console.error(e) }
345
+ }*/
346
+ onWebSocketConnect(path, handler) {
347
+ return this.serverInstanceBuilder.addWsRoute(path, handler);
348
+ }
349
+ addSseEVent(path, handler) {
350
+ this.serverInstanceBuilder.addSseEVent(path, handler);
351
+ }
352
+ tryReturnFile(params) {
353
+ return this.serverInstanceBuilder.tryReturnFile(params);
354
+ }
355
+ //region UI Modules
356
+ executeBrowserInstall(pageController) {
357
+ executeBrowserInstall(this.createModuleInitInstance(pageController));
358
+ }
359
+ /**
360
+ * Allow overriding the instance used by modules 'uiInit.tsx' files.
361
+ * @param instancier
362
+ */
363
+ setModuleInitClassInstancier(instancier) {
364
+ this.createModuleInitInstance = instancier;
365
+ }
366
+ createModuleInitInstance(pageController) {
367
+ // Note: this function will be replaced.
368
+ return new ModuleInitContext(pageController);
369
+ }
370
+ //endregion
371
+ //region Cache
372
+ mainCache;
373
+ fakeNoUser;
374
+ mustUseAutomaticCache = true;
375
+ cacheRules = [];
376
+ headersToCache = ["content-type", "etag", "last-modified"];
377
+ getCache() {
378
+ return this.mainCache;
379
+ }
380
+ setCache(pageCache) {
381
+ this.mainCache = pageCache || gVoidCache;
382
+ }
383
+ disableAutomaticCache() {
384
+ this.mustUseAutomaticCache = false;
385
+ }
386
+ getHeadersToCache() {
387
+ return this.headersToCache;
388
+ }
389
+ addHeaderToCache(header) {
390
+ header = header.trim().toLowerCase();
391
+ if (!this.headersToCache.includes(header))
392
+ this.headersToCache.push(header);
393
+ }
394
+ setCacheRules(rules) {
395
+ this.cacheRules = rules;
396
+ }
397
+ setOnFakeNoUser(listener) {
398
+ this.fakeNoUser = listener;
399
+ }
400
+ applyCacheRules(routeInfos, path) {
401
+ for (let rule of this.cacheRules) {
402
+ if (rule.regExp) {
403
+ if (!rule.regExp.test(path))
404
+ continue;
405
+ }
406
+ if (!routeInfos.afterGetFromCache) {
407
+ routeInfos.afterGetFromCache = rule.afterGetFromCache;
408
+ }
409
+ if (!routeInfos.beforeAddToCache) {
410
+ routeInfos.beforeAddToCache = rule.beforeAddToCache;
411
+ }
412
+ if (!routeInfos.beforeCheckingCache) {
413
+ routeInfos.beforeCheckingCache = rule.beforeCheckingCache;
414
+ }
415
+ }
416
+ }
417
+ //endregion
418
+ //region JWT Token
419
+ JWT_SECRET;
420
+ jwtSignInOptions;
421
+ authHandler;
422
+ jwtTokenStore;
423
+ storeJwtToken(req) {
424
+ const token = req.user_getJwtToken();
425
+ if (this.jwtTokenStore) {
426
+ this.jwtTokenStore(req.user_getJwtToken(), "jwt " + token, req);
427
+ }
428
+ else {
429
+ // Note: here we don't set the "Authorization" header, since it's an input-only header.
430
+ req.cookie_addCookieToRes("authorization", "jwt " + token, { maxAge: ONE_DAY * 7 });
431
+ }
432
+ }
433
+ setJwtTokenStore(store) {
434
+ this.jwtTokenStore = store;
435
+ }
436
+ createJwtToken(data) {
437
+ try {
438
+ return jwt.sign(data, this.JWT_SECRET, this.jwtSignInOptions);
439
+ }
440
+ catch (e) {
441
+ console.error("createJwtToken", e);
442
+ return undefined;
443
+ }
444
+ }
445
+ decodeJwtToken(token) {
446
+ if (!this.JWT_SECRET)
447
+ return undefined;
448
+ try {
449
+ return jwt.verify(token, this.JWT_SECRET);
450
+ }
451
+ catch {
452
+ return undefined;
453
+ }
454
+ }
455
+ setJwtSecret(secret) {
456
+ this.JWT_SECRET = secret;
457
+ }
458
+ async tryAuthUser(loginInfo) {
459
+ if (this.authHandler) {
460
+ const res = this.authHandler(loginInfo);
461
+ if (res instanceof Promise)
462
+ return await res;
463
+ return res;
464
+ }
465
+ return { isOk: false };
466
+ }
467
+ setAuthHandler(authHandler) {
468
+ this.authHandler = authHandler;
469
+ }
470
+ //endregion
471
+ //region Routes processing
472
+ serverInstanceBuilder;
473
+ _on404_NotFound;
474
+ _on500_Error;
475
+ _on401_Unauthorized;
476
+ allRouteInfos = {};
477
+ saveRouteInfos(verb, route, routeInfos) {
478
+ this.allRouteInfos[verb + " " + route] = routeInfos;
479
+ }
480
+ getRouteInfos(verb, route) {
481
+ return this.allRouteInfos[verb + " " + route];
482
+ }
483
+ //region Path handler
484
+ onVerb(verb, path, handler) {
485
+ handler = this.applyMiddlewares(verb, path, handler, false);
486
+ const routeInfos = { route: path, handler };
487
+ this.saveRouteInfos(verb, path, routeInfos);
488
+ this.serverInstanceBuilder.addRoute(verb, path, routeInfos);
489
+ if (verb === "GET")
490
+ this.applyCacheRules(routeInfos, path);
491
+ return routeInfos;
492
+ }
493
+ onPage(path, pageKey, reactComponent) {
494
+ const routeInfos = { route: path, handler: gVoidRouteHandler };
495
+ this.saveRouteInfos("GET", path, routeInfos);
496
+ this.serverInstanceBuilder.addPage(path, pageKey, reactComponent, routeInfos);
497
+ // Cache is automatically enabled for pages.
498
+ routeInfos.mustEnableAutomaticCache = true;
499
+ return routeInfos;
500
+ }
501
+ onGET(path, handler) {
502
+ return this.onVerb("GET", path, handler);
503
+ }
504
+ onPOST(path, handler) {
505
+ return this.onVerb("POST", path, handler);
506
+ }
507
+ onPUT(path, handler) {
508
+ return this.onVerb("PUT", path, handler);
509
+ }
510
+ onDELETE(path, handler) {
511
+ return this.onVerb("DELETE", path, handler);
512
+ }
513
+ onPATCH(path, handler) {
514
+ return this.onVerb("PATCH", path, handler);
515
+ }
516
+ onHEAD(path, handler) {
517
+ return this.onVerb("HEAD", path, handler);
518
+ }
519
+ onOPTIONS(path, handler) {
520
+ return this.onVerb("OPTIONS", path, handler);
521
+ }
522
+ //endregion
523
+ //region Error handler
524
+ on404_NotFound(handler) {
525
+ this._on404_NotFound = handler;
526
+ }
527
+ on500_Error(handler) {
528
+ this._on500_Error = handler;
529
+ }
530
+ on401_Unauthorized(handler) {
531
+ this._on401_Unauthorized = handler;
532
+ }
533
+ async return404(req) {
534
+ const accept = req.headers.get("accept");
535
+ if (!accept || !accept.startsWith("text/html"))
536
+ return new Response("", { status: 404 });
537
+ if (this._on404_NotFound) {
538
+ let res = await this._on404_NotFound(req);
539
+ if (res instanceof Promise)
540
+ res = await res;
541
+ if (res) {
542
+ if (res.status !== 404) {
543
+ return new Response(res.body, { status: 404, headers: res.headers });
544
+ }
545
+ return res;
546
+ }
547
+ }
548
+ return new Response("", { status: 404 });
549
+ }
550
+ async return500(req, error) {
551
+ const accept = req.headers.get("accept");
552
+ if (!accept || !accept.startsWith("text/html"))
553
+ return new Response("", { status: 500 });
554
+ if (this._on500_Error) {
555
+ // Avoid recursions.
556
+ req.res_returnError500_ServerError = async () => {
557
+ return new Response("Internal server error", { status: 500 });
558
+ };
559
+ let res = this._on500_Error(req, error);
560
+ if (res instanceof Promise)
561
+ res = await res;
562
+ if (res) {
563
+ if (res.status !== 500) {
564
+ return new Response(res.body, { status: 500, headers: res.headers });
565
+ }
566
+ return res;
567
+ }
568
+ }
569
+ return new Response("", { status: 500 });
570
+ }
571
+ async return401(req, error) {
572
+ if (this._on401_Unauthorized) {
573
+ let res = this._on401_Unauthorized(req, error);
574
+ if (res instanceof Promise)
575
+ res = await res;
576
+ if (res) {
577
+ if (res.status !== 401) {
578
+ return new Response(res.body, { status: 401, headers: res.headers });
579
+ }
580
+ return res;
581
+ }
582
+ }
583
+ if (req.method !== "GET") {
584
+ return new Response(error ? error.toString() : "", { status: 401 });
585
+ }
586
+ return new Response("", { status: 401 });
587
+ }
588
+ }
589
+ const gVoidRouteHandler = () => Promise.resolve(new Response("void", { status: 200 }));
590
+ export class WebSiteOptions {
591
+ /**
592
+ * The TLS certificate to use;
593
+ */
594
+ certificate;
595
+ /**
596
+ * Allow defining our own cache for this website and don't use the common one.
597
+ */
598
+ cache;
599
+ /**
600
+ * A list of listeners which must be called when the website is fully operational.
601
+ */
602
+ onWebSiteReady;
603
+ /**
604
+ * If false, will remove the trailing-slash at the end of the urls.
605
+ * The default is true.
606
+ */
607
+ removeTrailingSlash;
608
+ }
609
+ export class JopiWebSocket {
610
+ webSite;
611
+ server;
612
+ webSocket;
613
+ constructor(webSite, server, webSocket) {
614
+ this.webSite = webSite;
615
+ this.server = server;
616
+ this.webSocket = webSocket;
617
+ }
618
+ close() {
619
+ this.webSocket.close();
620
+ }
621
+ onMessage(listener) {
622
+ jk_webSocket.onMessage(this.webSocket, listener);
623
+ }
624
+ sendMessage(msg) {
625
+ jk_webSocket.sendMessage(this.webSocket, msg);
626
+ }
627
+ }
628
+ export function newWebSite(url, options) {
629
+ return new WebSiteImpl(url, options);
630
+ }
631
+ export class SBPE_ServerByPassException extends Error {
632
+ }
633
+ export class SBPE_NotAuthorizedException extends SBPE_ServerByPassException {
634
+ }
635
+ export class SBPE_DirectSendThisResponseException extends SBPE_ServerByPassException {
636
+ response;
637
+ constructor(response) {
638
+ super();
639
+ this.response = response;
640
+ }
641
+ }
642
+ export class SBPE_MustReturnWithoutResponseException extends SBPE_ServerByPassException {
643
+ constructor() {
644
+ super();
645
+ }
646
+ }
647
+ export class ServerAlreadyStartedError extends Error {
648
+ constructor() {
649
+ super("the server is already");
650
+ }
651
+ }
652
+ const gVoidCache = new VoidPageCache();
653
+ //# sourceMappingURL=jopiWebSite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jopiWebSite.js","sourceRoot":"","sources":["../../src/@core/jopiWebSite.tsx"],"names":[],"mappings":"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"}