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.
- package/README.md +134 -0
- package/bin/jopib.js +4 -0
- package/bin/jopin.js +4 -0
- package/dist/@bundler/_logs.d.ts +2 -0
- package/dist/@bundler/_logs.js +4 -0
- package/dist/@bundler/_logs.js.map +1 -0
- package/dist/@bundler/core.d.ts +1 -0
- package/dist/@bundler/core.js +34 -0
- package/dist/@bundler/core.js.map +1 -0
- package/dist/@bundler/esbuild.d.ts +6 -0
- package/dist/@bundler/esbuild.js +111 -0
- package/dist/@bundler/esbuild.js.map +1 -0
- package/dist/@bundler/index.d.ts +2 -0
- package/dist/@bundler/index.js +3 -0
- package/dist/@bundler/index.js.map +1 -0
- package/dist/@bundler/plugins.d.ts +13 -0
- package/dist/@bundler/plugins.js +145 -0
- package/dist/@bundler/plugins.js.map +1 -0
- package/dist/@bundler/tailwind.d.ts +3 -0
- package/dist/@bundler/tailwind.js +119 -0
- package/dist/@bundler/tailwind.js.map +1 -0
- package/dist/@core/PageComponent.d.ts +6 -0
- package/dist/@core/PageComponent.js +10 -0
- package/dist/@core/PageComponent.js.map +1 -0
- package/dist/@core/_logs.d.ts +7 -0
- package/dist/@core/_logs.js +9 -0
- package/dist/@core/_logs.js.map +1 -0
- package/dist/@core/automaticStartStop.d.ts +25 -0
- package/dist/@core/automaticStartStop.js +106 -0
- package/dist/@core/automaticStartStop.js.map +1 -0
- package/dist/@core/browserCacheControl.d.ts +21 -0
- package/dist/@core/browserCacheControl.js +17 -0
- package/dist/@core/browserCacheControl.js.map +1 -0
- package/dist/@core/bundler/bundler.d.ts +22 -0
- package/dist/@core/bundler/bundler.js +90 -0
- package/dist/@core/bundler/bundler.js.map +1 -0
- package/dist/@core/bundler/common.d.ts +2 -0
- package/dist/@core/bundler/common.js +17 -0
- package/dist/@core/bundler/common.js.map +1 -0
- package/dist/@core/bundler/config.d.ts +20 -0
- package/dist/@core/bundler/config.js +11 -0
- package/dist/@core/bundler/config.js.map +1 -0
- package/dist/@core/bundler/extraContent.d.ts +6 -0
- package/dist/@core/bundler/extraContent.js +27 -0
- package/dist/@core/bundler/extraContent.js.map +1 -0
- package/dist/@core/bundler/pagesGenerator.d.ts +1 -0
- package/dist/@core/bundler/pagesGenerator.js +173 -0
- package/dist/@core/bundler/pagesGenerator.js.map +1 -0
- package/dist/@core/bundler/server.d.ts +8 -0
- package/dist/@core/bundler/server.js +35 -0
- package/dist/@core/bundler/server.js.map +1 -0
- package/dist/@core/caches/InMemoryCache.d.ts +35 -0
- package/dist/@core/caches/InMemoryCache.js +353 -0
- package/dist/@core/caches/InMemoryCache.js.map +1 -0
- package/dist/@core/caches/SimpleFileCache.d.ts +18 -0
- package/dist/@core/caches/SimpleFileCache.js +171 -0
- package/dist/@core/caches/SimpleFileCache.js.map +1 -0
- package/dist/@core/caches/cache.d.ts +36 -0
- package/dist/@core/caches/cache.js +33 -0
- package/dist/@core/caches/cache.js.map +1 -0
- package/dist/@core/caches/webSiteMirrorCache.d.ts +16 -0
- package/dist/@core/caches/webSiteMirrorCache.js +81 -0
- package/dist/@core/caches/webSiteMirrorCache.js.map +1 -0
- package/dist/@core/gzip.d.ts +4 -0
- package/dist/@core/gzip.js +31 -0
- package/dist/@core/gzip.js.map +1 -0
- package/dist/@core/index.d.ts +18 -0
- package/dist/@core/index.js +19 -0
- package/dist/@core/index.js.map +1 -0
- package/dist/@core/internalTools.d.ts +14 -0
- package/dist/@core/internalTools.js +79 -0
- package/dist/@core/internalTools.js.map +1 -0
- package/dist/@core/jQuery.d.ts +5 -0
- package/dist/@core/jQuery.js +18 -0
- package/dist/@core/jQuery.js.map +1 -0
- package/dist/@core/jopiEasy.d.ts +287 -0
- package/dist/@core/jopiEasy.js +983 -0
- package/dist/@core/jopiEasy.js.map +1 -0
- package/dist/@core/jopiRequest.d.ts +269 -0
- package/dist/@core/jopiRequest.js +1060 -0
- package/dist/@core/jopiRequest.js.map +1 -0
- package/dist/@core/jopiServer.d.ts +77 -0
- package/dist/@core/jopiServer.js +100 -0
- package/dist/@core/jopiServer.js.map +1 -0
- package/dist/@core/jopiWebSite.d.ts +319 -0
- package/dist/@core/jopiWebSite.js +653 -0
- package/dist/@core/jopiWebSite.js.map +1 -0
- package/dist/@core/letsEncrypt.d.ts +25 -0
- package/dist/@core/letsEncrypt.js +189 -0
- package/dist/@core/letsEncrypt.js.map +1 -0
- package/dist/@core/linker.d.ts +4 -0
- package/dist/@core/linker.js +37 -0
- package/dist/@core/linker.js.map +1 -0
- package/dist/@core/loadBalancing.d.ts +18 -0
- package/dist/@core/loadBalancing.js +126 -0
- package/dist/@core/loadBalancing.js.map +1 -0
- package/dist/@core/middlewares/CorsMiddleware.d.ts +5 -0
- package/dist/@core/middlewares/CorsMiddleware.js +15 -0
- package/dist/@core/middlewares/CorsMiddleware.js.map +1 -0
- package/dist/@core/middlewares/DdosProtection.d.ts +42 -0
- package/dist/@core/middlewares/DdosProtection.js +62 -0
- package/dist/@core/middlewares/DdosProtection.js.map +1 -0
- package/dist/@core/middlewares/index.d.ts +10 -0
- package/dist/@core/middlewares/index.js +14 -0
- package/dist/@core/middlewares/index.js.map +1 -0
- package/dist/@core/publicTools.d.ts +8 -0
- package/dist/@core/publicTools.js +11 -0
- package/dist/@core/publicTools.js.map +1 -0
- package/dist/@core/routeConfig.d.ts +48 -0
- package/dist/@core/routeConfig.js +102 -0
- package/dist/@core/routeConfig.js.map +1 -0
- package/dist/@core/searchParamFilter.d.ts +70 -0
- package/dist/@core/searchParamFilter.js +212 -0
- package/dist/@core/searchParamFilter.js.map +1 -0
- package/dist/@core/serverFetch.d.ts +122 -0
- package/dist/@core/serverFetch.js +312 -0
- package/dist/@core/serverFetch.js.map +1 -0
- package/dist/@core/serverImpl/server_bunjs.d.ts +29 -0
- package/dist/@core/serverImpl/server_bunjs.js +180 -0
- package/dist/@core/serverImpl/server_bunjs.js.map +1 -0
- package/dist/@core/serverImpl/server_nodejs.d.ts +22 -0
- package/dist/@core/serverImpl/server_nodejs.js +235 -0
- package/dist/@core/serverImpl/server_nodejs.js.map +1 -0
- package/dist/@core/serverInstanceBuilder.d.ts +17 -0
- package/dist/@core/serverInstanceBuilder.js +14 -0
- package/dist/@core/serverInstanceBuilder.js.map +1 -0
- package/dist/@core/userStores.d.ts +13 -0
- package/dist/@core/userStores.js +20 -0
- package/dist/@core/userStores.js.map +1 -0
- package/dist/@crawler/common.d.ts +203 -0
- package/dist/@crawler/common.js +68 -0
- package/dist/@crawler/common.js.map +1 -0
- package/dist/@crawler/core.d.ts +87 -0
- package/dist/@crawler/core.js +586 -0
- package/dist/@crawler/core.js.map +1 -0
- package/dist/@crawler/directFileCache.d.ts +10 -0
- package/dist/@crawler/directFileCache.js +60 -0
- package/dist/@crawler/directFileCache.js.map +1 -0
- package/dist/@crawler/index.d.ts +4 -0
- package/dist/@crawler/index.js +5 -0
- package/dist/@crawler/index.js.map +1 -0
- package/dist/@crawler/urlMapping.d.ts +21 -0
- package/dist/@crawler/urlMapping.js +52 -0
- package/dist/@crawler/urlMapping.js.map +1 -0
- package/dist/@crawler/utils.d.ts +6 -0
- package/dist/@crawler/utils.js +13 -0
- package/dist/@crawler/utils.js.map +1 -0
- package/dist/@generated/index.d.ts +29 -0
- package/dist/@generated/index.js +93 -0
- package/dist/@generated/index.js.map +1 -0
- package/dist/@linker/arobaseTypes.d.ts +50 -0
- package/dist/@linker/arobaseTypes.js +235 -0
- package/dist/@linker/arobaseTypes.js.map +1 -0
- package/dist/@linker/changeProof.d.ts +5 -0
- package/dist/@linker/changeProof.js +50 -0
- package/dist/@linker/changeProof.js.map +1 -0
- package/dist/@linker/config.d.ts +2 -0
- package/dist/@linker/config.js +40 -0
- package/dist/@linker/config.js.map +1 -0
- package/dist/@linker/engine.d.ts +156 -0
- package/dist/@linker/engine.js +665 -0
- package/dist/@linker/engine.js.map +1 -0
- package/dist/@linker/index.d.ts +3 -0
- package/dist/@linker/index.js +4 -0
- package/dist/@linker/index.js.map +1 -0
- package/dist/@linker/install.d.ts +4 -0
- package/dist/@linker/install.js +42 -0
- package/dist/@linker/install.js.map +1 -0
- package/dist/@linker/modInstaller.d.ts +10 -0
- package/dist/@linker/modInstaller.js +38 -0
- package/dist/@linker/modInstaller.js.map +1 -0
- package/dist/@linker/typeEvents.d.ts +9 -0
- package/dist/@linker/typeEvents.js +48 -0
- package/dist/@linker/typeEvents.js.map +1 -0
- package/dist/@linker/typeRoutes.d.ts +23 -0
- package/dist/@linker/typeRoutes.js +197 -0
- package/dist/@linker/typeRoutes.js.map +1 -0
- package/dist/@linker/typeUiComposite.d.ts +6 -0
- package/dist/@linker/typeUiComposite.js +16 -0
- package/dist/@linker/typeUiComposite.js.map +1 -0
- package/dist/@loader/index.d.ts +1 -0
- package/dist/@loader/index.js +17 -0
- package/dist/@loader/index.js.map +1 -0
- package/dist/@loader/nodeJsLoader.d.ts +2 -0
- package/dist/@loader/nodeJsLoader.js +19 -0
- package/dist/@loader/nodeJsLoader.js.map +1 -0
- package/dist/@loader-client/index.d.ts +33 -0
- package/dist/@loader-client/index.js +98 -0
- package/dist/@loader-client/index.js.map +1 -0
- package/dist/@loader-tools/bunJsLoader.d.ts +1 -0
- package/dist/@loader-tools/bunJsLoader.js +28 -0
- package/dist/@loader-tools/bunJsLoader.js.map +1 -0
- package/dist/@loader-tools/config.d.ts +49 -0
- package/dist/@loader-tools/config.js +79 -0
- package/dist/@loader-tools/config.js.map +1 -0
- package/dist/@loader-tools/cssModuleCompiler.d.ts +5 -0
- package/dist/@loader-tools/cssModuleCompiler.js +65 -0
- package/dist/@loader-tools/cssModuleCompiler.js.map +1 -0
- package/dist/@loader-tools/esBuildPlugin.d.ts +5 -0
- package/dist/@loader-tools/esBuildPlugin.js +113 -0
- package/dist/@loader-tools/esBuildPlugin.js.map +1 -0
- package/dist/@loader-tools/index.d.ts +9 -0
- package/dist/@loader-tools/index.js +10 -0
- package/dist/@loader-tools/index.js.map +1 -0
- package/dist/@loader-tools/jopin.d.ts +10 -0
- package/dist/@loader-tools/jopin.js +331 -0
- package/dist/@loader-tools/jopin.js.map +1 -0
- package/dist/@loader-tools/nodeJsLoader.d.ts +13 -0
- package/dist/@loader-tools/nodeJsLoader.js +101 -0
- package/dist/@loader-tools/nodeJsLoader.js.map +1 -0
- package/dist/@loader-tools/nodeJsResolver.d.ts +2 -0
- package/dist/@loader-tools/nodeJsResolver.js +117 -0
- package/dist/@loader-tools/nodeJsResolver.js.map +1 -0
- package/dist/@loader-tools/rules.d.ts +3 -0
- package/dist/@loader-tools/rules.js +33 -0
- package/dist/@loader-tools/rules.js.map +1 -0
- package/dist/@loader-tools/sourceChangesWatcher.d.ts +39 -0
- package/dist/@loader-tools/sourceChangesWatcher.js +182 -0
- package/dist/@loader-tools/sourceChangesWatcher.js.map +1 -0
- package/dist/@loader-tools/tools.d.ts +21 -0
- package/dist/@loader-tools/tools.js +113 -0
- package/dist/@loader-tools/tools.js.map +1 -0
- package/dist/@loader-tools/transform.d.ts +5 -0
- package/dist/@loader-tools/transform.js +114 -0
- package/dist/@loader-tools/transform.js.map +1 -0
- package/dist/@loader-tools/virtualUrl.d.ts +9 -0
- package/dist/@loader-tools/virtualUrl.js +40 -0
- package/dist/@loader-tools/virtualUrl.js.map +1 -0
- package/dist/@tool-jopinb/index.d.ts +1 -0
- package/dist/@tool-jopinb/index.js +9 -0
- package/dist/@tool-jopinb/index.js.map +1 -0
- package/dist/@ui/components.d.ts +27 -0
- package/dist/@ui/components.js +42 -0
- package/dist/@ui/components.js.map +1 -0
- package/dist/@ui/cssModules.d.ts +11 -0
- package/dist/@ui/cssModules.js +17 -0
- package/dist/@ui/cssModules.js.map +1 -0
- package/dist/@ui/hooks.d.ts +31 -0
- package/dist/@ui/hooks.js +71 -0
- package/dist/@ui/hooks.js.map +1 -0
- package/dist/@ui/index.d.ts +9 -0
- package/dist/@ui/index.js +11 -0
- package/dist/@ui/index.js.map +1 -0
- package/dist/@ui/internal.d.ts +4 -0
- package/dist/@ui/internal.js +10 -0
- package/dist/@ui/internal.js.map +1 -0
- package/dist/@ui/modules.d.ts +41 -0
- package/dist/@ui/modules.js +74 -0
- package/dist/@ui/modules.js.map +1 -0
- package/dist/@ui/objectRegistry.d.ts +12 -0
- package/dist/@ui/objectRegistry.js +35 -0
- package/dist/@ui/objectRegistry.js.map +1 -0
- package/dist/@ui/pageController.d.ts +61 -0
- package/dist/@ui/pageController.js +166 -0
- package/dist/@ui/pageController.js.map +1 -0
- package/dist/@ui/tools.d.ts +24 -0
- package/dist/@ui/tools.js +78 -0
- package/dist/@ui/tools.js.map +1 -0
- package/dist/@uikit/core/UiKitModule.d.ts +6 -0
- package/dist/@uikit/core/UiKitModule.js +18 -0
- package/dist/@uikit/core/UiKitModule.js.map +1 -0
- package/dist/@uikit/core/index.d.ts +1 -0
- package/dist/@uikit/core/index.js +4 -0
- package/dist/@uikit/core/index.js.map +1 -0
- package/dist/@uikit/core/jBundler_ifBrowser.d.ts +1 -0
- package/dist/@uikit/core/jBundler_ifBrowser.js +5 -0
- package/dist/@uikit/core/jBundler_ifBrowser.js.map +1 -0
- package/dist/@uikit/core/jBundler_ifServer.d.ts +6 -0
- package/dist/@uikit/core/jBundler_ifServer.js +17 -0
- package/dist/@uikit/core/jBundler_ifServer.js.map +1 -0
- package/dist/@uikit/forms/components.d.ts +18 -0
- package/dist/@uikit/forms/components.js +69 -0
- package/dist/@uikit/forms/components.js.map +1 -0
- package/dist/@uikit/forms/hooks.d.ts +4 -0
- package/dist/@uikit/forms/hooks.js +31 -0
- package/dist/@uikit/forms/hooks.js.map +1 -0
- package/dist/@uikit/forms/index.d.ts +3 -0
- package/dist/@uikit/forms/index.js +4 -0
- package/dist/@uikit/forms/index.js.map +1 -0
- package/dist/@uikit/forms/interfaces.d.ts +101 -0
- package/dist/@uikit/forms/interfaces.js +4 -0
- package/dist/@uikit/forms/interfaces.js.map +1 -0
- package/dist/@uikit/forms/private.d.ts +40 -0
- package/dist/@uikit/forms/private.js +307 -0
- package/dist/@uikit/forms/private.js.map +1 -0
- package/dist/@uikit/helpers/hooks.d.ts +33 -0
- package/dist/@uikit/helpers/hooks.js +107 -0
- package/dist/@uikit/helpers/hooks.js.map +1 -0
- package/dist/@uikit/helpers/index.d.ts +2 -0
- package/dist/@uikit/helpers/index.js +3 -0
- package/dist/@uikit/helpers/index.js.map +1 -0
- package/dist/@uikit/helpers/tools.d.ts +8 -0
- package/dist/@uikit/helpers/tools.js +35 -0
- package/dist/@uikit/helpers/tools.js.map +1 -0
- package/dist/@uikit/index.d.ts +10 -0
- package/dist/@uikit/index.js +13 -0
- package/dist/@uikit/index.js.map +1 -0
- package/dist/@uikit/menu/core.d.ts +21 -0
- package/dist/@uikit/menu/core.js +191 -0
- package/dist/@uikit/menu/core.js.map +1 -0
- package/dist/@uikit/menu/hooks.d.ts +5 -0
- package/dist/@uikit/menu/hooks.js +24 -0
- package/dist/@uikit/menu/hooks.js.map +1 -0
- package/dist/@uikit/menu/index.d.ts +3 -0
- package/dist/@uikit/menu/index.js +4 -0
- package/dist/@uikit/menu/index.js.map +1 -0
- package/dist/@uikit/menu/interfaces.d.ts +20 -0
- package/dist/@uikit/menu/interfaces.js +8 -0
- package/dist/@uikit/menu/interfaces.js.map +1 -0
- package/dist/@uikit/menu/internal.d.ts +40 -0
- package/dist/@uikit/menu/internal.js +191 -0
- package/dist/@uikit/menu/internal.js.map +1 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.d.ts +18 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.js +40 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifBrowser.js.map +1 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.d.ts +28 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.js +35 -0
- package/dist/@uikit/reactRouter/hooks/jBundler_ifServer.js.map +1 -0
- package/dist/@uikit/reactRouter/index.d.ts +1 -0
- package/dist/@uikit/reactRouter/index.js +2 -0
- package/dist/@uikit/reactRouter/index.js.map +1 -0
- package/dist/@uikit/users/hooks.d.ts +10 -0
- package/dist/@uikit/users/hooks.js +39 -0
- package/dist/@uikit/users/hooks.js.map +1 -0
- package/dist/@uikit/users/index.d.ts +1 -0
- package/dist/@uikit/users/index.js +2 -0
- package/dist/@uikit/users/index.js.map +1 -0
- package/dist/@uikit/variants/index.d.ts +7 -0
- package/dist/@uikit/variants/index.js +16 -0
- package/dist/@uikit/variants/index.js.map +1 -0
- package/package.json +115 -0
- package/src/@bundler/README.md +1 -0
- package/src/@bundler/_logs.ts +4 -0
- package/src/@bundler/core.ts +41 -0
- package/src/@bundler/esbuild.ts +141 -0
- package/src/@bundler/index.ts +3 -0
- package/src/@bundler/plugins.ts +163 -0
- package/src/@bundler/tailwind.ts +139 -0
- package/src/@core/PageComponent.tsx +25 -0
- package/src/@core/README.md +1 -0
- package/src/@core/_logs.ts +11 -0
- package/src/@core/automaticStartStop.ts +132 -0
- package/src/@core/browserCacheControl.ts +40 -0
- package/src/@core/bundler/bundler.ts +128 -0
- package/src/@core/bundler/common.ts +18 -0
- package/src/@core/bundler/config.ts +37 -0
- package/src/@core/bundler/extraContent.ts +30 -0
- package/src/@core/bundler/pagesGenerator.ts +194 -0
- package/src/@core/bundler/server.ts +41 -0
- package/src/@core/caches/InMemoryCache.ts +483 -0
- package/src/@core/caches/SimpleFileCache.ts +205 -0
- package/src/@core/caches/cache.ts +77 -0
- package/src/@core/caches/webSiteMirrorCache.ts +90 -0
- package/src/@core/cheerio.d.ts +332 -0
- package/src/@core/gzip.ts +33 -0
- package/src/@core/index.ts +23 -0
- package/src/@core/internalTools.ts +95 -0
- package/src/@core/jQuery.ts +22 -0
- package/src/@core/jopiEasy.ts +1285 -0
- package/src/@core/jopiRequest.tsx +1279 -0
- package/src/@core/jopiServer.ts +188 -0
- package/src/@core/jopiWebSite.tsx +1027 -0
- package/src/@core/letsEncrypt.ts +243 -0
- package/src/@core/linker.ts +42 -0
- package/src/@core/loadBalancing.ts +152 -0
- package/src/@core/middlewares/CorsMiddleware.ts +23 -0
- package/src/@core/middlewares/DdosProtection.ts +120 -0
- package/src/@core/middlewares/index.ts +16 -0
- package/src/@core/publicTools.ts +14 -0
- package/src/@core/routeConfig.ts +104 -0
- package/src/@core/searchParamFilter.ts +315 -0
- package/src/@core/serverFetch.ts +454 -0
- package/src/@core/serverImpl/server_bunjs.tsx +230 -0
- package/src/@core/serverImpl/server_nodejs.ts +312 -0
- package/src/@core/serverInstanceBuilder.ts +36 -0
- package/src/@core/userStores.ts +34 -0
- package/src/@crawler/README.md +1 -0
- package/src/@crawler/common.ts +275 -0
- package/src/@crawler/core.ts +678 -0
- package/src/@crawler/directFileCache.ts +69 -0
- package/src/@crawler/index.ts +4 -0
- package/src/@crawler/urlMapping.ts +67 -0
- package/src/@crawler/utils.ts +13 -0
- package/src/@generated/index.ts +134 -0
- package/src/@linker/arobaseTypes.ts +325 -0
- package/src/@linker/changeProof.ts +53 -0
- package/src/@linker/config.ts +46 -0
- package/src/@linker/engine.ts +865 -0
- package/src/@linker/index.ts +3 -0
- package/src/@linker/install.ts +39 -0
- package/src/@linker/modInstaller.ts +50 -0
- package/src/@linker/typeEvents.ts +58 -0
- package/src/@linker/typeRoutes.ts +255 -0
- package/src/@linker/typeUiComposite.ts +19 -0
- package/src/@loader/README.md +4 -0
- package/src/@loader/bunHtmlCompiler.mjs +27 -0
- package/src/@loader/index.ts +19 -0
- package/src/@loader/loader.mjs +7 -0
- package/src/@loader/nodeJsLoader.ts +21 -0
- package/src/@loader-client/README.md +2 -0
- package/src/@loader-client/index.ts +108 -0
- package/src/@loader-tools/README.md +6 -0
- package/src/@loader-tools/bunJsLoader.ts +33 -0
- package/src/@loader-tools/config.ts +142 -0
- package/src/@loader-tools/cssModuleCompiler.ts +76 -0
- package/src/@loader-tools/esBuildPlugin.ts +142 -0
- package/src/@loader-tools/index.ts +11 -0
- package/src/@loader-tools/jopin.ts +403 -0
- package/src/@loader-tools/nodeJsLoader.ts +119 -0
- package/src/@loader-tools/nodeJsResolver.ts +140 -0
- package/src/@loader-tools/rules.ts +45 -0
- package/src/@loader-tools/sourceChangesWatcher.ts +225 -0
- package/src/@loader-tools/tools.ts +139 -0
- package/src/@loader-tools/transform.ts +138 -0
- package/src/@loader-tools/virtualUrl.ts +57 -0
- package/src/@loader-types/README.md +15 -0
- package/src/@loader-types/extensions.d.ts +65 -0
- package/src/@tool-jopinb/README.md +1 -0
- package/src/@tool-jopinb/index.ts +11 -0
- package/src/@ui/README.md +3 -0
- package/src/@ui/components.tsx +49 -0
- package/src/@ui/cssModules.tsx +27 -0
- package/src/@ui/hooks.tsx +95 -0
- package/src/@ui/index.ts +13 -0
- package/src/@ui/internal.ts +12 -0
- package/src/@ui/modules.ts +100 -0
- package/src/@ui/objectRegistry.ts +50 -0
- package/src/@ui/pageController.ts +203 -0
- package/src/@ui/tools.ts +116 -0
- package/src/@uikit/README.md +1 -0
- package/src/@uikit/core/UiKitModule.ts +20 -0
- package/src/@uikit/core/index.ts +4 -0
- package/src/@uikit/core/jBundler_ifBrowser.ts +4 -0
- package/src/@uikit/core/jBundler_ifServer.ts +18 -0
- package/src/@uikit/forms/components.tsx +97 -0
- package/src/@uikit/forms/hooks.ts +38 -0
- package/src/@uikit/forms/index.ts +3 -0
- package/src/@uikit/forms/interfaces.ts +159 -0
- package/src/@uikit/forms/private.ts +365 -0
- package/src/@uikit/helpers/hooks.ts +133 -0
- package/src/@uikit/helpers/index.ts +2 -0
- package/src/@uikit/helpers/tools.ts +39 -0
- package/src/@uikit/index.ts +15 -0
- package/src/@uikit/menu/core.ts +227 -0
- package/src/@uikit/menu/hooks.ts +28 -0
- package/src/@uikit/menu/index.ts +3 -0
- package/src/@uikit/menu/interfaces.ts +26 -0
- package/src/@uikit/menu/internal.ts +218 -0
- package/src/@uikit/package.json +15 -0
- package/src/@uikit/reactRouter/hooks/jBundler_ifBrowser.tsx +59 -0
- package/src/@uikit/reactRouter/hooks/jBundler_ifServer.tsx +51 -0
- package/src/@uikit/reactRouter/index.ts +1 -0
- package/src/@uikit/users/hooks.ts +50 -0
- package/src/@uikit/users/index.ts +1 -0
- 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":"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"}
|
|
@@ -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
|
+
}
|