jopijs 3.1.25 → 3.1.32

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 (226) hide show
  1. package/dist/@core/PageComponent.d.ts +1 -1
  2. package/dist/@core/PageComponent.js +2 -3
  3. package/dist/@core/PageComponent.js.map +1 -1
  4. package/dist/@core/bundler/bundler.d.ts +1 -1
  5. package/dist/@core/bundler/bundler.js.map +1 -1
  6. package/dist/@core/bundler/pagesGenerator.js +111 -1
  7. package/dist/@core/bundler/pagesGenerator.js.map +1 -1
  8. package/dist/@core/bundler/server.d.ts +1 -1
  9. package/dist/@core/bundler/server.js.map +1 -1
  10. package/dist/@core/cacheHtml/InMemoryCache.d.ts +38 -0
  11. package/dist/@core/cacheHtml/InMemoryCache.js +261 -0
  12. package/dist/@core/cacheHtml/InMemoryCache.js.map +1 -0
  13. package/dist/@core/cacheHtml/SimpleFileCache.d.ts +21 -0
  14. package/dist/@core/cacheHtml/SimpleFileCache.js +199 -0
  15. package/dist/@core/cacheHtml/SimpleFileCache.js.map +1 -0
  16. package/dist/@core/cacheHtml/cache.d.ts +48 -0
  17. package/dist/@core/cacheHtml/cache.js +39 -0
  18. package/dist/@core/cacheHtml/cache.js.map +1 -0
  19. package/dist/@core/cacheHtml/garbageCollector.d.ts +21 -0
  20. package/dist/@core/cacheHtml/garbageCollector.js +80 -0
  21. package/dist/@core/cacheHtml/garbageCollector.js.map +1 -0
  22. package/dist/@core/cacheHtml/webSiteMirrorCache.d.ts +18 -0
  23. package/dist/@core/cacheHtml/webSiteMirrorCache.js +101 -0
  24. package/dist/@core/cacheHtml/webSiteMirrorCache.js.map +1 -0
  25. package/dist/@core/cacheObject/def.d.ts +29 -0
  26. package/dist/@core/cacheObject/def.js +2 -0
  27. package/dist/@core/cacheObject/def.js.map +1 -0
  28. package/dist/@core/cacheObject/fileObjectCache.d.ts +20 -0
  29. package/dist/@core/cacheObject/fileObjectCache.js +146 -0
  30. package/dist/@core/cacheObject/fileObjectCache.js.map +1 -0
  31. package/dist/@core/cacheObject/inMemoryObjectCache.1.d.ts +46 -0
  32. package/dist/@core/cacheObject/inMemoryObjectCache.1.js +264 -0
  33. package/dist/@core/cacheObject/inMemoryObjectCache.1.js.map +1 -0
  34. package/dist/@core/cacheObject/inMemoryObjectCache.d.ts +35 -0
  35. package/dist/@core/cacheObject/inMemoryObjectCache.js +168 -0
  36. package/dist/@core/cacheObject/inMemoryObjectCache.js.map +1 -0
  37. package/dist/@core/cacheObject/inMemoryObjectCache.old.d.ts +46 -0
  38. package/dist/@core/cacheObject/inMemoryObjectCache.old.js +264 -0
  39. package/dist/@core/cacheObject/inMemoryObjectCache.old.js.map +1 -0
  40. package/dist/@core/caches/InMemoryCache.js +44 -9
  41. package/dist/@core/caches/InMemoryCache.js.map +1 -1
  42. package/dist/@core/caches/SimpleFileCache.d.ts +8 -2
  43. package/dist/@core/caches/SimpleFileCache.js +35 -7
  44. package/dist/@core/caches/SimpleFileCache.js.map +1 -1
  45. package/dist/@core/caches/cache.d.ts +17 -4
  46. package/dist/@core/caches/cache.js +7 -1
  47. package/dist/@core/caches/cache.js.map +1 -1
  48. package/dist/@core/caches/webSiteMirrorCache.d.ts +6 -1
  49. package/dist/@core/caches/webSiteMirrorCache.js +10 -0
  50. package/dist/@core/caches/webSiteMirrorCache.js.map +1 -1
  51. package/dist/@core/dataSources.d.ts +2 -2
  52. package/dist/@core/dataSources.js +3 -3
  53. package/dist/@core/dataSources.js.map +1 -1
  54. package/dist/@core/index.d.ts +6 -4
  55. package/dist/@core/index.js +4 -2
  56. package/dist/@core/index.js.map +1 -1
  57. package/dist/@core/internalTools.d.ts +5 -4
  58. package/dist/@core/internalTools.js +17 -13
  59. package/dist/@core/internalTools.js.map +1 -1
  60. package/dist/@core/jopiApp.d.ts +81 -12
  61. package/dist/@core/jopiApp.js +283 -39
  62. package/dist/@core/jopiApp.js.map +1 -1
  63. package/dist/@core/jopiCoreWebSite.d.ts +258 -13
  64. package/dist/@core/jopiCoreWebSite.js +242 -42
  65. package/dist/@core/jopiCoreWebSite.js.map +1 -1
  66. package/dist/@core/jopiRequest.d.ts +19 -17
  67. package/dist/@core/jopiRequest.js +37 -30
  68. package/dist/@core/jopiRequest.js.map +1 -1
  69. package/dist/@core/jopiRouteConfig.d.ts +14 -8
  70. package/dist/@core/jopiRouteConfig.js +16 -5
  71. package/dist/@core/jopiRouteConfig.js.map +1 -1
  72. package/dist/@core/jopiServer.d.ts +1 -1
  73. package/dist/@core/jopiServer.js.map +1 -1
  74. package/dist/@core/letsEncrypt.d.ts +1 -1
  75. package/dist/@core/letsEncrypt.js.map +1 -1
  76. package/dist/@core/loadBalancing.d.ts +1 -1
  77. package/dist/@core/loadBalancing.js.map +1 -1
  78. package/dist/@core/middlewares/CorsMiddleware.d.ts +1 -1
  79. package/dist/@core/middlewares/DdosProtection.d.ts +1 -1
  80. package/dist/@core/middlewares/DdosProtection.js.map +1 -1
  81. package/dist/@core/objectProvider.d.ts +85 -0
  82. package/dist/@core/objectProvider.js +2 -0
  83. package/dist/@core/objectProvider.js.map +1 -0
  84. package/dist/@core/publicTools.d.ts +1 -1
  85. package/dist/@core/serverFetch.d.ts +1 -1
  86. package/dist/@core/serverFetch.js.map +1 -1
  87. package/dist/@core/serverImpl/server_bunjs.d.ts +1 -1
  88. package/dist/@core/serverImpl/server_bunjs.js.map +1 -1
  89. package/dist/@core/serverImpl/server_nodejs.d.ts +1 -1
  90. package/dist/@core/serverImpl/server_nodejs.js.map +1 -1
  91. package/dist/@core/serverInstanceBuilder.d.ts +1 -1
  92. package/dist/@core/serverInstanceBuilder.js +1 -1
  93. package/dist/@core/serverInstanceBuilder.js.map +1 -1
  94. package/dist/@core/userStores.d.ts +1 -1
  95. package/dist/@core/userStores.js.map +1 -1
  96. package/dist/@core/watcher.d.ts +2 -1
  97. package/dist/@core/watcher.js +79 -8
  98. package/dist/@core/watcher.js.map +1 -1
  99. package/dist/@crawler/_logs.d.ts +2 -0
  100. package/dist/@crawler/_logs.js +4 -0
  101. package/dist/@crawler/_logs.js.map +1 -0
  102. package/dist/@crawler/common.d.ts +1 -0
  103. package/dist/@crawler/common.js.map +1 -1
  104. package/dist/@crawler/core.js +65 -30
  105. package/dist/@crawler/core.js.map +1 -1
  106. package/dist/@crawler/nodeFetch.d.ts +5 -0
  107. package/dist/@crawler/nodeFetch.js +24 -0
  108. package/dist/@crawler/nodeFetch.js.map +1 -0
  109. package/dist/@generated/_logs.d.ts +1 -0
  110. package/dist/@generated/_logs.js +3 -0
  111. package/dist/@generated/_logs.js.map +1 -0
  112. package/dist/@generated/dataProvider.d.ts +16 -0
  113. package/dist/@generated/dataProvider.js +75 -0
  114. package/dist/@generated/dataProvider.js.map +1 -0
  115. package/dist/@generated/index.d.ts +1 -0
  116. package/dist/@generated/index.js +1 -0
  117. package/dist/@generated/index.js.map +1 -1
  118. package/dist/@generated/objectProvider.d.ts +49 -0
  119. package/dist/@generated/objectProvider.js +147 -0
  120. package/dist/@generated/objectProvider.js.map +1 -0
  121. package/dist/@generated/pageData.js +1 -0
  122. package/dist/@generated/pageData.js.map +1 -1
  123. package/dist/@linker/config.js +4 -0
  124. package/dist/@linker/config.js.map +1 -1
  125. package/dist/@linker/engine.js +3 -1
  126. package/dist/@linker/engine.js.map +1 -1
  127. package/dist/@linker/index.d.ts +2 -1
  128. package/dist/@linker/index.js +2 -1
  129. package/dist/@linker/index.js.map +1 -1
  130. package/dist/@linker/typeDataProvider.d.ts +5 -0
  131. package/dist/@linker/typeDataProvider.js +31 -0
  132. package/dist/@linker/typeDataProvider.js.map +1 -0
  133. package/dist/@linker/typeEvents.1.d.ts +25 -0
  134. package/dist/@linker/typeEvents.1.js +85 -0
  135. package/dist/@linker/typeEvents.1.js.map +1 -0
  136. package/dist/@linker/typeEvents.d.ts +1 -1
  137. package/dist/@linker/typeEvents.js +2 -2
  138. package/dist/@linker/typeEvents.js.map +1 -1
  139. package/dist/@linker/typeObjectProvider.d.ts +5 -0
  140. package/dist/@linker/typeObjectProvider.js +31 -0
  141. package/dist/@linker/typeObjectProvider.js.map +1 -0
  142. package/dist/@linker/typeRoutes.d.ts +48 -4
  143. package/dist/@linker/typeRoutes.js +105 -54
  144. package/dist/@linker/typeRoutes.js.map +1 -1
  145. package/dist/@linker/typeServerEvent.d.ts +22 -0
  146. package/dist/@linker/typeServerEvent.js +75 -0
  147. package/dist/@linker/typeServerEvent.js.map +1 -0
  148. package/dist/@linker/typeServerEvents.d.ts +11 -0
  149. package/dist/@linker/typeServerEvents.js +28 -0
  150. package/dist/@linker/typeServerEvents.js.map +1 -0
  151. package/dist/@ui/cssModules.js.map +1 -1
  152. package/dist/@ui/hooks/common.d.ts +3 -2
  153. package/dist/@ui/hooks/common.js.map +1 -1
  154. package/dist/@ui/hooks/index.d.ts +2 -2
  155. package/dist/@ui/hooks/index.js.map +1 -1
  156. package/dist/@ui/hooks/jBundler_ifBrowser.d.ts +9 -2
  157. package/dist/@ui/hooks/jBundler_ifBrowser.js +95 -28
  158. package/dist/@ui/hooks/jBundler_ifBrowser.js.map +1 -1
  159. package/dist/@ui/hooks/jBundler_ifServer.d.ts +8 -2
  160. package/dist/@ui/hooks/jBundler_ifServer.js +9 -1
  161. package/dist/@ui/hooks/jBundler_ifServer.js.map +1 -1
  162. package/dist/@ui/htmlNode.js +3 -2
  163. package/dist/@ui/htmlNode.js.map +1 -1
  164. package/dist/@ui/index.d.ts +1 -1
  165. package/dist/@ui/index.js.map +1 -1
  166. package/dist/@ui/pageModifier.js.map +1 -1
  167. package/dist/@watcher/watcher.js +1 -9
  168. package/dist/@watcher/watcher.js.map +1 -1
  169. package/package.json +6 -18
  170. package/src/@core/{PageComponent.tsx → PageComponent.ts} +5 -8
  171. package/src/@core/bundler/bundler.ts +1 -1
  172. package/src/@core/bundler/pagesGenerator.ts +113 -1
  173. package/src/@core/bundler/server.ts +1 -1
  174. package/src/@core/cacheHtml/InMemoryCache.ts +344 -0
  175. package/src/@core/{caches → cacheHtml}/SimpleFileCache.ts +60 -18
  176. package/src/@core/{caches → cacheHtml}/cache.ts +28 -7
  177. package/src/@core/cacheHtml/garbageCollector.ts +132 -0
  178. package/src/@core/{caches → cacheHtml}/webSiteMirrorCache.ts +14 -3
  179. package/src/@core/cacheObject/def.ts +37 -0
  180. package/src/@core/cacheObject/fileObjectCache.ts +163 -0
  181. package/src/@core/cacheObject/inMemoryObjectCache.ts +216 -0
  182. package/src/@core/dataSources.ts +5 -5
  183. package/src/@core/index.ts +6 -4
  184. package/src/@core/internalTools.ts +18 -16
  185. package/src/@core/jopiApp.ts +330 -41
  186. package/src/@core/{jopiCoreWebSite.tsx → jopiCoreWebSite.ts} +377 -49
  187. package/src/@core/{jopiRequest.tsx → jopiRequest.ts} +43 -37
  188. package/src/@core/jopiRouteConfig.ts +21 -8
  189. package/src/@core/jopiServer.ts +1 -1
  190. package/src/@core/letsEncrypt.ts +1 -1
  191. package/src/@core/loadBalancing.ts +1 -1
  192. package/src/@core/middlewares/CorsMiddleware.ts +1 -1
  193. package/src/@core/middlewares/DdosProtection.ts +2 -2
  194. package/src/@core/objectProvider.ts +96 -0
  195. package/src/@core/publicTools.ts +1 -1
  196. package/src/@core/serverFetch.ts +1 -1
  197. package/src/@core/serverImpl/{server_bunjs.tsx → server_bunjs.ts} +2 -2
  198. package/src/@core/serverImpl/server_nodejs.ts +3 -3
  199. package/src/@core/serverInstanceBuilder.ts +3 -3
  200. package/src/@core/userStores.ts +1 -1
  201. package/src/@core/watcher.ts +89 -7
  202. package/src/@crawler/_logs.ts +4 -0
  203. package/src/@crawler/common.ts +1 -0
  204. package/src/@crawler/core.ts +70 -30
  205. package/src/@crawler/nodeFetch.ts +31 -0
  206. package/src/@generated/_logs.ts +3 -0
  207. package/src/@generated/index.ts +2 -1
  208. package/src/@generated/objectProvider.ts +158 -0
  209. package/src/@generated/pageData.ts +2 -0
  210. package/src/@linker/config.ts +4 -0
  211. package/src/@linker/engine.ts +4 -1
  212. package/src/@linker/index.ts +2 -1
  213. package/src/@linker/typeEvents.ts +4 -3
  214. package/src/@linker/typeObjectProvider.ts +37 -0
  215. package/src/@linker/typeRoutes.ts +120 -63
  216. package/src/@linker/typeServerEvents.ts +32 -0
  217. package/src/@ui/hooks/{common.tsx → common.ts} +4 -3
  218. package/src/@ui/hooks/index.ts +2 -2
  219. package/src/@ui/hooks/{jBundler_ifBrowser.tsx → jBundler_ifBrowser.ts} +105 -29
  220. package/src/@ui/hooks/{jBundler_ifServer.tsx → jBundler_ifServer.ts} +11 -2
  221. package/src/@ui/htmlNode.ts +4 -2
  222. package/src/@ui/index.ts +1 -1
  223. package/src/@watcher/watcher.ts +1 -10
  224. package/src/@core/caches/InMemoryCache.ts +0 -481
  225. /package/src/@ui/{cssModules.tsx → cssModules.ts} +0 -0
  226. /package/src/@ui/{pageModifier.tsx → pageModifier.ts} +0 -0
@@ -3,4 +3,4 @@ import { PageController_ExposePrivate } from "jopijs/ui";
3
3
  export default function ({ children, controller }: {
4
4
  children: React.ReactNode | React.ReactNode[];
5
5
  controller: PageController_ExposePrivate<unknown>;
6
- }): import("react/jsx-runtime").JSX.Element;
6
+ }): React.DetailedReactHTMLElement<Record<string, any>, HTMLElement>;
@@ -1,9 +1,8 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
1
  import React from "react";
3
2
  import { htmlNodesToText, PageContext, PageController_ExposePrivate } from "jopijs/ui";
4
3
  import * as ReactServer from "react-dom/server";
5
4
  export default function ({ children, controller }) {
6
- let body = ReactServer.renderToStaticMarkup(_jsx(PageContext.Provider, { value: controller, children: children }));
5
+ let body = ReactServer.renderToStaticMarkup(React.createElement(PageContext.Provider, { value: controller }, children));
7
6
  const state = controller.getOptions();
8
7
  body = "<div>" + body + "</div>";
9
8
  if (state.bodyBegin) {
@@ -16,6 +15,6 @@ export default function ({ children, controller }) {
16
15
  if (state.pageTitle !== undefined)
17
16
  headText += `<title>${state.pageTitle}</title>`;
18
17
  // noinspection HtmlRequiredTitleElement
19
- return _jsxs("html", { ...state.htmlProps, children: [_jsx("head", { ...state.headProps, dangerouslySetInnerHTML: { __html: headText } }), _jsx("body", { ...state.bodyProps, dangerouslySetInnerHTML: { __html: body } })] });
18
+ return React.createElement("html", state.htmlProps, React.createElement("head", { ...state.headProps, dangerouslySetInnerHTML: { __html: headText } }), React.createElement("body", { ...state.bodyProps, dangerouslySetInnerHTML: { __html: body } }));
20
19
  }
21
20
  //# sourceMappingURL=PageComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageComponent.js","sourceRoot":"","sources":["../../src/@core/PageComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAE,WAAW,EAAE,4BAA4B,EAAC,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAU,EAAC,QAAQ,EAAE,UAAU,EAAqG;IAC9I,IAAI,IAAI,GAAG,WAAW,CAAC,oBAAoB,CACvC,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,UAAU,YAClC,QAAQ,GACU,CAC1B,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IAEtC,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;IACjC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,SAAS,KAAG,SAAS;QAAE,QAAQ,IAAI,UAAU,KAAK,CAAC,SAAS,UAAU,CAAC;IAEjF,wCAAwC;IACxC,OAAO,mBAAU,KAAK,CAAC,SAAS,aAC5B,kBAAU,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,GAC/D,EACP,kBAAU,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,IACrE,CAAA;AACX,CAAC"}
1
+ {"version":3,"file":"PageComponent.js","sourceRoot":"","sources":["../../src/@core/PageComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAE,WAAW,EAAE,4BAA4B,EAAC,MAAM,WAAW,CAAC;AACrF,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAU,EAAC,QAAQ,EAAE,UAAU,EAAqG;IAC9I,IAAI,IAAI,GAAG,WAAW,CAAC,oBAAoB,CACvC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,CAC7E,CAAC;IAEF,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;IAEtC,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;IACjC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACnD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,SAAS,KAAG,SAAS;QAAE,QAAQ,IAAI,UAAU,KAAK,CAAC,SAAS,UAAU,CAAC;IAEjF,wCAAwC;IACxC,OAAO,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAC9C,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,EAClG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CACjG,CAAC;AACN,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CoreWebSite } from "../jopiCoreWebSite.tsx";
1
+ import { CoreWebSite } from "../jopiCoreWebSite.ts";
2
2
  import { type BundlerConfig } from "./config.ts";
3
3
  import { type VirtualUrlEntry } from "jopijs/loader-tools";
4
4
  export interface CreateBundleParams {
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/@core/bundler/bundler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundler.js","sourceRoot":"","sources":["../../../src/@core/bundler/bundler.ts"],"names":[],"mappings":"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"}
@@ -112,7 +112,7 @@ const HTML_TEMPLATE = `<!doctype html>
112
112
  <script type="module" src="__SCRIPT_PATH__"></script>
113
113
  </body>
114
114
  </html>`;
115
- const REACT_TEMPLATE = `import React from "react";
115
+ const REACT_TEMPLATE_BASIC = `import React from "react";
116
116
  import ReactDOM from "react-dom/client";
117
117
  import {PageContext, PageController_ExposePrivate} from "jopijs/ui";
118
118
  import C from "__PATH__";
@@ -174,6 +174,116 @@ if (document.readyState === "loading") {
174
174
  start();
175
175
  }
176
176
  `;
177
+ // Use a transition to reduct flickering.
178
+ const REACT_TEMPLATE_TEST_FLICKERING = `import React from "react";
179
+ import ReactDOM from "react-dom/client";
180
+ import {PageContext, PageController_ExposePrivate} from "jopijs/ui";
181
+ import C from "__PATH__";
182
+ import {JopiUiApplication, useParams} from "jopijs/ui";
183
+
184
+ import installer from "__INSTALL__";
185
+ __EXTRA_IMPORTS__
186
+
187
+ window["__JOPI_ROUTE__"] = __ROUTE__;
188
+ window["__JOPI_OPTIONS__"] = __OPTIONS__;
189
+
190
+ installer(new JopiUiApplication(undefined, __PAGE_EXTRA_PARAMS__));
191
+
192
+ function Render(p) {
193
+ const [_, setCount] = React.useState(0);
194
+ p.controller.onRequireRefresh = () => setCount(old => old + 1);
195
+
196
+ React.useLayoutEffect(() => {
197
+ if (p.onMounted) p.onMounted();
198
+ }, []);
199
+
200
+ return <C params={p.params} searchParams={p.searchParams} />;
201
+ }
202
+
203
+ function start() {
204
+ const params = useParams();
205
+ const FADE_DURATION = 0.5; // Seconds
206
+
207
+ let searchParams;
208
+ const coreSearchParams = new URL(window.location).searchParams;
209
+
210
+ if (coreSearchParams.toJSON) {
211
+ searchParams = coreSearchParams.toJSON();
212
+ }
213
+ else {
214
+ searchParams = {};
215
+ coreSearchParams.forEach((v,k) => searchParams[k] = v);
216
+ }
217
+
218
+ const controller = new PageController_ExposePrivate();
219
+
220
+ const staticElements = Array.from(document.body.children);
221
+
222
+ let container = document.getElementById("jopi-app-root");
223
+ //
224
+ if (!container) {
225
+ container = document.createElement("div");
226
+ container.id = "jopi-app-root";
227
+
228
+ // Initial state for fade-in: Absolute overlay hidden
229
+ container.style.opacity = "0";
230
+ container.style.position = "absolute";
231
+ container.style.top = "0";
232
+ container.style.left = "0";
233
+ container.style.width = "100%";
234
+ container.style.zIndex = "2147483647";
235
+ container.style.transition = "opacity " + FADE_DURATION + "s ease-in-out";
236
+
237
+ document.body.appendChild(container);
238
+ }
239
+
240
+ const onMounted = () => {
241
+ requestAnimationFrame(() => {
242
+ container.style.opacity = "1";
243
+ });
244
+
245
+ setTimeout(() => {
246
+ staticElements.forEach(el => {
247
+ if (el.parentNode === document.body && el !== container) {
248
+ document.body.removeChild(el);
249
+ }
250
+ });
251
+
252
+ container.style.position = "";
253
+ container.style.top = "";
254
+ container.style.left = "";
255
+ container.style.width = "";
256
+ container.style.zIndex = "";
257
+ container.style.transition = "";
258
+ container.style.opacity = "";
259
+
260
+ }, FADE_DURATION * 1000);
261
+ };
262
+
263
+ const app = (
264
+ <React.StrictMode>
265
+ <PageContext.Provider value={controller}>
266
+ <Render controller={controller} params={params} searchParams={searchParams} onMounted={onMounted} />
267
+ </PageContext.Provider>
268
+ </React.StrictMode>
269
+ );
270
+
271
+ if (import.meta.hot) {
272
+ const root = (import.meta.hot.data.root ??= ReactDOM.createRoot(container));
273
+ root.render(app);
274
+ } else {
275
+ ReactDOM.createRoot(container).render(app);
276
+ }
277
+ }
278
+ __SSE_EVENTS__
279
+ if (document.readyState === "loading") {
280
+ document.addEventListener("DOMContentLoaded", start);
281
+ } else {
282
+ start();
283
+ }
284
+ `;
285
+ const REACT_TEMPLATE = REACT_TEMPLATE_BASIC;
286
+ //const REACT_TEMPLATE = REACT_TEMPLATE_TEST_FLICKERING;
177
287
  /**
178
288
  * Allow knowing the route from the page file path.
179
289
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pagesGenerator.js","sourceRoot":"","sources":["../../../src/@core/bundler/pagesGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAU/D,iDAAiD;AACjD,sDAAsD;AACtD,EAAE;AACF,SAAS,CAAC,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAa,EAAE,EAAE;IACjE,2CAA2C;IAC3C,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,8DAA8D;AAC9D,EAAE;AACF,gBAAgB;AAChB,2FAA2F;AAC3F,oEAAoE;AACpE,4EAA4E;AAC5E,qEAAqE;AACrE,EAAE;AACF,SAAS,CAAC,WAAW,CAAC,kCAAkC,EAAE,YAAY,CAAC,CAAC;AACxE,SAAS,CAAC,WAAW,CAAC,yCAAyC,EAAE,YAAY,CAAC,CAAC;AAE/E,KAAK,UAAU,YAAY,CAAC,CAAqB;IAC7C,KAAK,UAAU,SAAS,CAAC,cAAsB,EAAE,UAAsB,EAAE,OAAe;QACpF,SAAS,WAAW,CAAC,QAAgB;YACjC,IAAI,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,2CAA2C;QAC3C,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAE5C,IAAI,GAAG,GAAG,cAAc,CAAC;QACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1H,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QAEjH,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAE9E,IAAI,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC;YACrC,iCAAiC;YACjC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;aACI,IAAI,gBAAgB,EAAE,CAAC,uBAAuB,EAAE,CAAC;YAClD,yCAAyC;YACzC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,+BAA+B;YAC/B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC;YACrC,sCAAsC;YACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACJ,IAAI,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACtC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,aAAa,OAAO,eAAe,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACJ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,IAAI,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEjD,GAAG,GAAG,aAAa,CAAC;QAEpB,IAAI,iBAAiB,EAAE,CAAC;YACpB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,GAAG,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QAE/C,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC;IAEhD,IAAI,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC;QACrC,IAAI,SAAS,GAAG,MAAM,6BAA6B,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,OAAQ,CAAC,CAAA;QAC5C,IAAI,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAQ,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,OAAQ,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACJ,KAAK,IAAI,cAAc,IAAI,sBAAsB,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,sBAAsB,CAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE/D,IAAI,WAAW,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,sBAAsB,GAAG,EAAE,CAAC;QAC5B,eAAe,GAAG,EAAE,CAAC;QACrB,oBAAoB,GAAG,EAAE,CAAC;IAC9B,CAAC;AACL,CAAC;AAED,MAAM,aAAa,GAAG;;;;;;;;;;;QAWd,CAAC;AAET,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DtB,CAAC;AAEF;;GAEG;AACH,IAAI,sBAAsB,GAA+B,EAAE,CAAC;AAE5D;;GAEG;AACH,IAAI,eAAe,GAA+B,EAAE,CAAC;AAErD;;GAEG;AACH,IAAI,oBAAoB,GAA2B,EAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,eAAe,GAA2B,EAAE,CAAC;AAEnD,MAAM,iBAAiB,GAAG,gBAAgB,EAAE,CAAC,gBAAgB,CAAC"}
1
+ {"version":3,"file":"pagesGenerator.js","sourceRoot":"","sources":["../../../src/@core/bundler/pagesGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CoreWebSite } from "../jopiCoreWebSite.tsx";
1
+ import { CoreWebSite } from "../jopiCoreWebSite.ts";
2
2
  /**
3
3
  * Server the /_bundle and /_bundle_s directories.
4
4
  * /_bundle/**: files generated by esbuild.
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/@core/bundler/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAwB,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAuB,MAAM,qBAAqB,CAAC;AAE3E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACpD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,GAAG,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC,iBAAiB,CAAC,WAAY,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,EAAE;IACF,qEAAqE;IACrE,sEAAsE;IACtE,0EAA0E;IAC1E,wDAAwD;IACxD,EAAE;IACF,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB,EAAE,KAAsB;IAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,WAAW,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,IAAI,WAA6B,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/@core/bundler/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAuB,MAAM,qBAAqB,CAAC;AAE3E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAoB;IACpD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,GAAG,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnF,OAAO,GAAG,CAAC,iBAAiB,CAAC,WAAY,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,iCAAiC;IACjC,EAAE;IACF,qEAAqE;IACrE,sEAAsE;IACtE,0EAA0E;IAC1E,wDAAwD;IACxD,EAAE;IACF,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB,EAAE,KAAsB;IAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAC,GAAG,EAAC,EAAE;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC3C,WAAW,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,IAAI,WAA6B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { CacheMeta, PageCache, CacheEntry } from "./cache.ts";
2
+ import type { JopiRequest } from "../jopiRequest.ts";
3
+ export interface InMemoryCacheOptions {
4
+ clearOnHotReload?: boolean;
5
+ maxContentLength?: number;
6
+ maxItemCount?: number;
7
+ maxMemoryUsage_mo?: number;
8
+ }
9
+ export declare class InMemoryCache implements PageCache {
10
+ private readonly subCaches;
11
+ private gzipMaxSize;
12
+ private readonly maxContentLength;
13
+ private _cache;
14
+ constructor(options?: InMemoryCacheOptions);
15
+ createSubCache(name: string): PageCache;
16
+ addToCache(_req: JopiRequest, url: URL, response: Response, meta?: CacheMeta): Promise<Response>;
17
+ removeFromCache(url: URL): Promise<void>;
18
+ getFromCache(req: JopiRequest, url: URL): Promise<Response | undefined>;
19
+ getFromCacheWithMeta(req: JopiRequest, url: URL): Promise<CacheEntry | undefined>;
20
+ getCacheMeta(url: URL): Promise<CacheMeta | undefined>;
21
+ hasInCache(url: URL): Promise<boolean>;
22
+ /**
23
+ * Set the binary value inside the cache entry.
24
+ * This by compressing the binary if needed.
25
+ */
26
+ private prepareBinary;
27
+ getCacheEntryIterator(subCacheName?: string): Iterable<CacheEntry>;
28
+ getSubCacheIterator(): Iterable<string>;
29
+ key_hasInCache(key: string): Promise<boolean>;
30
+ key_getCacheMeta(key: string): Promise<CacheMeta | undefined>;
31
+ key_addToCache(subCacheName: string, url: string, response: Response, meta: CacheMeta | undefined): Promise<Response>;
32
+ key_removeFromCache(key: string): Promise<void>;
33
+ key_getFromCache(req: JopiRequest, key: string): Response | undefined;
34
+ key_getFromCacheWithMeta(req: JopiRequest, key: string): CacheEntry | undefined;
35
+ private reconstructResponse;
36
+ }
37
+ export declare function initMemoryCache(options: InMemoryCacheOptions): void;
38
+ export declare function getInMemoryCache(): PageCache;
@@ -0,0 +1,261 @@
1
+ import * as jk_app from "jopi-toolkit/jk_app";
2
+ import * as jk_crypto from "jopi-toolkit/jk_crypto";
3
+ import * as jk_compress from "jopi-toolkit/jk_compress";
4
+ import { JkMemCache } from "jopi-toolkit/jk_memcache";
5
+ import { ONE_KILO_OCTET, ONE_MEGA_OCTET } from "../publicTools.js";
6
+ import { cacheAddBrowserCacheValues, cacheItemToResponse, makeIterable, readContentLength } from "../internalTools.js";
7
+ const clearHotReloadKey = jk_app.clearHotReloadKey;
8
+ const keepOnHotReload = jk_app.keepOnHotReload;
9
+ const HOT_RELOAD_KEY = "jopi.rewrite.inMemoryCache.hotReloadKey";
10
+ export class InMemoryCache {
11
+ subCaches = {};
12
+ gzipMaxSize = 20 * ONE_MEGA_OCTET;
13
+ maxContentLength;
14
+ _cache;
15
+ constructor(options) {
16
+ options = options || {};
17
+ if (options.clearOnHotReload) {
18
+ clearHotReloadKey(HOT_RELOAD_KEY);
19
+ }
20
+ const maxContentLength = options.maxContentLength || ONE_KILO_OCTET * 600;
21
+ this.maxContentLength = maxContentLength;
22
+ this._cache = keepOnHotReload(HOT_RELOAD_KEY, () => {
23
+ const maxCount = options.maxItemCount || 5000;
24
+ const maxMemoryUsage_mo = options.maxMemoryUsage_mo || 500;
25
+ const maxSize = Math.trunc(maxMemoryUsage_mo * ONE_MEGA_OCTET);
26
+ return new JkMemCache({
27
+ name: "HtmlCache",
28
+ maxCount,
29
+ maxSize,
30
+ cleanupInterval: 60000
31
+ });
32
+ });
33
+ }
34
+ createSubCache(name) {
35
+ let cache = this.subCaches[name];
36
+ if (!cache) {
37
+ cache = new InMemorySubCache(this, name);
38
+ this.subCaches[name] = cache;
39
+ }
40
+ return cache;
41
+ }
42
+ async addToCache(_req, url, response, meta) {
43
+ return this.key_addToCache("", url.toString(), response, meta);
44
+ }
45
+ async removeFromCache(url) {
46
+ await this.key_removeFromCache(url.toString());
47
+ for (let subCache of Object.values(this.subCaches)) {
48
+ await subCache.removeFromCache(url);
49
+ }
50
+ }
51
+ async getFromCache(req, url) {
52
+ return this.key_getFromCache(req, ':' + url.href);
53
+ }
54
+ async getFromCacheWithMeta(req, url) {
55
+ return this.key_getFromCacheWithMeta(req, ':' + url.href);
56
+ }
57
+ getCacheMeta(url) {
58
+ return this.key_getCacheMeta(':' + url.href);
59
+ }
60
+ async hasInCache(url) {
61
+ return this.key_hasInCache(':' + url.href);
62
+ }
63
+ /**
64
+ * Set the binary value inside the cache entry.
65
+ * This by compressing the binary if needed.
66
+ */
67
+ async prepareBinary(response) {
68
+ const asBinary = new Uint8Array(await response.arrayBuffer());
69
+ const byteLength = asBinary.byteLength;
70
+ const canCompress = byteLength < this.gzipMaxSize;
71
+ if (!canCompress) {
72
+ return { binary: asBinary, isGzipped: false };
73
+ }
74
+ const bufferGzip = jk_compress.gzipSync(asBinary);
75
+ return { binary: new Uint8Array(bufferGzip.buffer), isGzipped: true };
76
+ }
77
+ getCacheEntryIterator(subCacheName) {
78
+ const iterator = this._cache.keys();
79
+ // convention: subCacheName + ":" + url
80
+ const filterPrefix = (subCacheName || "") + ":";
81
+ const that = this;
82
+ return makeIterable({
83
+ next() {
84
+ while (true) {
85
+ const res = iterator.next();
86
+ if (res.done)
87
+ return { value: undefined, done: true };
88
+ const key = res.value;
89
+ if (!key.startsWith(filterPrefix))
90
+ continue;
91
+ let vEntry = that._cache.getWithMeta(key, true);
92
+ if (!vEntry)
93
+ continue;
94
+ const storedMeta = vEntry.meta;
95
+ return {
96
+ value: {
97
+ url: storedMeta.url,
98
+ meta: storedMeta.meta,
99
+ response: that.reconstructResponse(vEntry.value, storedMeta)
100
+ },
101
+ done: false
102
+ };
103
+ }
104
+ }
105
+ });
106
+ }
107
+ getSubCacheIterator() {
108
+ const alreadyReturned = new Set();
109
+ const iterator = this._cache.keys();
110
+ return makeIterable({
111
+ next() {
112
+ while (true) {
113
+ const res = iterator.next();
114
+ if (res.done)
115
+ return { value: undefined, done: true };
116
+ const key = res.value;
117
+ // Convention: "SubCache::url" or ":url"
118
+ const separatorIdx = key.indexOf(":");
119
+ if (separatorIdx === -1)
120
+ continue;
121
+ const subCacheName = key.substring(0, separatorIdx + 1);
122
+ if (!alreadyReturned.has(subCacheName)) {
123
+ alreadyReturned.add(subCacheName);
124
+ return { value: subCacheName, done: false };
125
+ }
126
+ }
127
+ }
128
+ });
129
+ }
130
+ //region With a key
131
+ async key_hasInCache(key) {
132
+ return this._cache.has(key);
133
+ }
134
+ async key_getCacheMeta(key) {
135
+ const entry = this._cache.getWithMeta(key);
136
+ if (!entry)
137
+ return undefined;
138
+ return entry.meta.meta;
139
+ }
140
+ async key_addToCache(subCacheName, url, response, meta) {
141
+ if ((response.status !== 200) || (!response.body)) {
142
+ return response;
143
+ }
144
+ const contentLength = readContentLength(response.headers);
145
+ if (contentLength > this.maxContentLength)
146
+ return response;
147
+ const { binary, isGzipped } = await this.prepareBinary(response);
148
+ // Reconstruct basic headers/props
149
+ const headers = {};
150
+ response.headers.forEach((v, k) => headers[k] = v);
151
+ const etag = jk_crypto.fastHash(binary);
152
+ cacheAddBrowserCacheValues(headers, etag);
153
+ // Prepare meta for storage
154
+ const storedMeta = {
155
+ url,
156
+ isGzipped,
157
+ headers,
158
+ status: response.status,
159
+ meta: meta || {}
160
+ };
161
+ const key = subCacheName + ':' + url;
162
+ // Allows keeping HTML in cache longer than other types of content.
163
+ //
164
+ let importance = 1;
165
+ if (headers["content-type"]?.startsWith("text/html"))
166
+ importance = 10;
167
+ this._cache.set(key, binary, { importance, meta: storedMeta });
168
+ // Return a fresh response from the stored data.
169
+ return this.reconstructResponse(binary, storedMeta);
170
+ }
171
+ key_removeFromCache(key) {
172
+ this._cache.delete(key);
173
+ return Promise.resolve();
174
+ }
175
+ key_getFromCache(req, key) {
176
+ const entry = this._cache.getWithMeta(key);
177
+ if (!entry)
178
+ return undefined;
179
+ const storedMeta = entry.meta;
180
+ // Validate headers (304 Not Modified etc)
181
+ let cacheRes = req.file_validateCacheHeadersWith(storedMeta.headers || {});
182
+ if (cacheRes)
183
+ return cacheRes;
184
+ return this.reconstructResponse(entry.value, storedMeta);
185
+ }
186
+ key_getFromCacheWithMeta(req, key) {
187
+ const entry = this._cache.getWithMeta(key);
188
+ if (!entry)
189
+ return undefined;
190
+ const storedMeta = entry.meta;
191
+ let cacheRes = req.file_validateCacheHeadersWith(storedMeta.headers || {});
192
+ const response = cacheRes || this.reconstructResponse(entry.value, storedMeta);
193
+ return {
194
+ url: storedMeta.url,
195
+ response,
196
+ meta: storedMeta.meta
197
+ };
198
+ }
199
+ reconstructResponse(binary, meta) {
200
+ const item = {
201
+ url: meta.url,
202
+ binary: binary,
203
+ binarySize: binary.byteLength,
204
+ isGzipped: meta.isGzipped,
205
+ headers: meta.headers,
206
+ status: meta.status,
207
+ meta: meta.meta || {}
208
+ };
209
+ return cacheItemToResponse(item);
210
+ }
211
+ }
212
+ class InMemorySubCache {
213
+ parent;
214
+ prefix;
215
+ constructor(parent, name) {
216
+ this.parent = parent;
217
+ this.prefix = name + ":";
218
+ }
219
+ async addToCache(_req, url, response, meta) {
220
+ return this.parent.key_addToCache(this.prefix, url.href, response, meta);
221
+ }
222
+ async hasInCache(url) {
223
+ return this.parent.key_hasInCache(this.prefix + ':' + url.href);
224
+ }
225
+ async getCacheMeta(url) {
226
+ return this.parent.key_getCacheMeta(this.prefix + ':' + url.href);
227
+ }
228
+ removeFromCache(url) {
229
+ return this.parent.key_removeFromCache(this.prefix + ':' + url.href);
230
+ }
231
+ async getFromCache(req, url) {
232
+ return this.parent.key_getFromCache(req, this.prefix + ':' + url.href);
233
+ }
234
+ async getFromCacheWithMeta(req, url) {
235
+ return this.parent.key_getFromCacheWithMeta(req, this.prefix + ':' + url.href);
236
+ }
237
+ createSubCache(name) {
238
+ return this.parent.createSubCache(name);
239
+ }
240
+ getCacheEntryIterator(subCacheName) {
241
+ return this.parent.getCacheEntryIterator(subCacheName);
242
+ }
243
+ getSubCacheIterator() {
244
+ return this.parent.getSubCacheIterator();
245
+ }
246
+ }
247
+ export function initMemoryCache(options) {
248
+ if (gInstance)
249
+ return;
250
+ if (options.clearOnHotReload) {
251
+ clearHotReloadKey(HOT_RELOAD_KEY);
252
+ }
253
+ gInstance = new InMemoryCache(options);
254
+ }
255
+ export function getInMemoryCache() {
256
+ if (!gInstance)
257
+ initMemoryCache({});
258
+ return gInstance;
259
+ }
260
+ let gInstance;
261
+ //# sourceMappingURL=InMemoryCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InMemoryCache.js","sourceRoot":"","sources":["../../../src/@core/cacheHtml/InMemoryCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CacheMeta, PageCache, CacheEntry } from "./cache.ts";
2
+ import type { JopiRequest } from "../jopiRequest.ts";
3
+ export declare class SimpleFileCache implements PageCache {
4
+ private readonly subCaches;
5
+ readonly rootDir: string;
6
+ constructor(rootDir: string);
7
+ private calKey;
8
+ private calcFilePath;
9
+ private gzipMaxSize;
10
+ addToCache(req: JopiRequest, url: URL, response: Response, meta?: CacheMeta): Promise<Response>;
11
+ removeFromCache(url: URL): Promise<void>;
12
+ getFromCache(req: JopiRequest, url: URL): Promise<Response | undefined>;
13
+ getFromCacheWithMeta(req: JopiRequest, url: URL): Promise<CacheEntry | undefined>;
14
+ getCacheMeta(url: URL): Promise<CacheMeta | undefined>;
15
+ hasInCache(url: URL, requireUncompressedVersion?: boolean | undefined): Promise<boolean>;
16
+ private getCacheEntry;
17
+ private saveNewCacheEntry;
18
+ createSubCache(name: string): PageCache;
19
+ getCacheEntryIterator(): Iterable<CacheEntry>;
20
+ getSubCacheIterator(): Iterable<string>;
21
+ }