create-jen-app 1.2.2 → 1.2.3

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 (588) hide show
  1. package/README.md +3 -1
  2. package/dist/index.js +1 -6
  3. package/package.json +2 -2
  4. package/templates/static/.esbuild/jen.config.js +18 -0
  5. package/templates/static/README.md +63 -67
  6. package/templates/static/build.js +4 -6
  7. package/templates/static/jen.config.ts +3 -5
  8. package/templates/static/jenjs.d.ts +3 -3
  9. package/templates/static/lib/api/(hello).d.ts +5 -5
  10. package/templates/static/lib/api/(hello).js +7 -7
  11. package/templates/static/lib/auth/cookie-utils.d.ts +20 -11
  12. package/templates/static/lib/auth/cookie-utils.js +66 -69
  13. package/templates/static/lib/auth/jwt.d.ts +28 -0
  14. package/templates/static/lib/auth/jwt.js +50 -6
  15. package/templates/static/lib/auth/session.d.ts +34 -34
  16. package/templates/static/lib/auth/session.js +79 -81
  17. package/templates/static/lib/build/asset-hashing.js +4 -4
  18. package/templates/static/lib/build/asset-manifest.js +4 -4
  19. package/templates/static/lib/build/build.d.ts +20 -0
  20. package/templates/static/lib/build/build.js +43 -6
  21. package/templates/static/lib/build/island-hydration.js +2 -2
  22. package/templates/static/lib/build/minifier.js +12 -12
  23. package/templates/static/lib/build/page-renderer.d.ts +2 -2
  24. package/templates/static/lib/build/page-renderer.js +3 -3
  25. package/templates/static/lib/build/production-build.d.ts +1 -1
  26. package/templates/static/lib/build/production-build.js +4 -4
  27. package/templates/static/lib/build/ssg-pipeline.d.ts +1 -1
  28. package/templates/static/lib/build/ssg-pipeline.js +19 -19
  29. package/templates/static/lib/build-tools/build-site.d.ts +3 -3
  30. package/templates/static/lib/build-tools/build-site.js +27 -30
  31. package/templates/static/lib/cache/index.d.ts +8 -0
  32. package/templates/static/lib/cache/index.js +8 -0
  33. package/templates/static/lib/cache/memory.d.ts +31 -4
  34. package/templates/static/lib/cache/memory.js +38 -12
  35. package/templates/static/lib/cache/redis.d.ts +43 -4
  36. package/templates/static/lib/cache/redis.js +59 -14
  37. package/templates/static/lib/cli/banner.d.ts +5 -1
  38. package/templates/static/lib/cli/banner.js +18 -14
  39. package/templates/static/lib/cli/templates/ssg/jen.config.js +29 -29
  40. package/templates/static/lib/cli/templates/ssg/site/index.js +6 -1
  41. package/templates/static/lib/cli/templates/ssr/jen.config.js +29 -29
  42. package/templates/static/lib/cli/templates/ssr/site/index.js +6 -1
  43. package/templates/static/lib/compilers/esbuild-plugins.js +96 -98
  44. package/templates/static/lib/compilers/svelte.d.ts +10 -10
  45. package/templates/static/lib/compilers/svelte.js +31 -31
  46. package/templates/static/lib/compilers/vue.d.ts +8 -8
  47. package/templates/static/lib/compilers/vue.js +76 -68
  48. package/templates/static/lib/core/config.d.ts +217 -50
  49. package/templates/static/lib/core/http.d.ts +55 -2
  50. package/templates/static/lib/core/http.js +66 -20
  51. package/templates/static/lib/core/middleware-hooks.d.ts +204 -31
  52. package/templates/static/lib/core/middleware-hooks.js +86 -41
  53. package/templates/static/lib/core/paths.d.ts +42 -4
  54. package/templates/static/lib/core/paths.js +34 -2
  55. package/templates/static/lib/core/routes/match.d.ts +51 -3
  56. package/templates/static/lib/core/routes/match.js +44 -11
  57. package/templates/static/lib/core/routes/scan.d.ts +49 -5
  58. package/templates/static/lib/core/routes/scan.js +174 -115
  59. package/templates/static/lib/core/types.d.ts +148 -13
  60. package/templates/static/lib/css/compiler.d.ts +16 -13
  61. package/templates/static/lib/css/compiler.js +62 -58
  62. package/templates/static/lib/db/connector.d.ts +27 -1
  63. package/templates/static/lib/db/connector.js +37 -11
  64. package/templates/static/lib/db/drivers/jdb.d.ts +13 -9
  65. package/templates/static/lib/db/drivers/jdb.js +41 -39
  66. package/templates/static/lib/db/drivers/sql.d.ts +16 -12
  67. package/templates/static/lib/db/drivers/sql.js +152 -135
  68. package/templates/static/lib/db/index.d.ts +20 -12
  69. package/templates/static/lib/db/index.js +41 -41
  70. package/templates/static/lib/db/types.d.ts +22 -18
  71. package/templates/static/lib/graphql/index.d.ts +47 -0
  72. package/templates/static/lib/graphql/index.js +50 -3
  73. package/templates/static/lib/graphql/resolvers.d.ts +51 -11
  74. package/templates/static/lib/graphql/resolvers.js +22 -6
  75. package/templates/static/lib/graphql/schema.d.ts +34 -0
  76. package/templates/static/lib/graphql/schema.js +34 -2
  77. package/templates/static/lib/i18n/en.json +2 -2
  78. package/templates/static/lib/i18n/es.json +2 -2
  79. package/templates/static/lib/i18n/index.d.ts +4 -4
  80. package/templates/static/lib/i18n/index.js +10 -10
  81. package/templates/static/lib/import/jen-import.d.ts +39 -10
  82. package/templates/static/lib/import/jen-import.js +130 -80
  83. package/templates/static/lib/index.d.ts +42 -11
  84. package/templates/static/lib/index.js +21 -8
  85. package/templates/static/lib/jdb/engine.d.ts +35 -6
  86. package/templates/static/lib/jdb/engine.js +260 -144
  87. package/templates/static/lib/jdb/index.d.ts +32 -0
  88. package/templates/static/lib/jdb/index.js +32 -0
  89. package/templates/static/lib/jdb/types.d.ts +212 -30
  90. package/templates/static/lib/jdb/utils.d.ts +60 -0
  91. package/templates/static/lib/jdb/utils.js +159 -107
  92. package/templates/static/lib/middleware/builtins/body-parser.d.ts +15 -0
  93. package/templates/static/lib/middleware/builtins/body-parser.js +53 -35
  94. package/templates/static/lib/middleware/builtins/cors.d.ts +8 -6
  95. package/templates/static/lib/middleware/builtins/cors.js +52 -48
  96. package/templates/static/lib/middleware/builtins/logger.d.ts +18 -0
  97. package/templates/static/lib/middleware/builtins/logger.js +31 -13
  98. package/templates/static/lib/middleware/builtins/rate-limit.d.ts +19 -2
  99. package/templates/static/lib/middleware/builtins/rate-limit.js +75 -55
  100. package/templates/static/lib/middleware/builtins/request-id.d.ts +18 -0
  101. package/templates/static/lib/middleware/builtins/request-id.js +26 -5
  102. package/templates/static/lib/middleware/builtins/security-headers.d.ts +18 -0
  103. package/templates/static/lib/middleware/builtins/security-headers.js +51 -20
  104. package/templates/static/lib/middleware/context.d.ts +102 -15
  105. package/templates/static/lib/middleware/context.js +121 -30
  106. package/templates/static/lib/middleware/decorators.d.ts +18 -1
  107. package/templates/static/lib/middleware/decorators.js +83 -34
  108. package/templates/static/lib/middleware/errors/handler.js +22 -24
  109. package/templates/static/lib/middleware/errors/http-error.d.ts +3 -3
  110. package/templates/static/lib/middleware/errors/http-error.js +8 -8
  111. package/templates/static/lib/middleware/kernel.d.ts +67 -4
  112. package/templates/static/lib/middleware/kernel.js +80 -17
  113. package/templates/static/lib/middleware/pipeline.d.ts +51 -2
  114. package/templates/static/lib/middleware/pipeline.js +143 -45
  115. package/templates/static/lib/middleware/registry.d.ts +67 -8
  116. package/templates/static/lib/middleware/registry.js +83 -22
  117. package/templates/static/lib/middleware/response.d.ts +73 -11
  118. package/templates/static/lib/middleware/response.js +104 -40
  119. package/templates/static/lib/middleware/utils/matcher.js +11 -12
  120. package/templates/static/lib/native/bundle.d.ts +13 -8
  121. package/templates/static/lib/native/bundle.js +14 -14
  122. package/templates/static/lib/native/dev-server.d.ts +11 -4
  123. package/templates/static/lib/native/dev-server.js +14 -12
  124. package/templates/static/lib/native/index.d.ts +20 -20
  125. package/templates/static/lib/native/index.js +23 -21
  126. package/templates/static/lib/native/optimizer.d.ts +14 -10
  127. package/templates/static/lib/native/optimizer.js +14 -14
  128. package/templates/static/lib/native/style-compiler.d.ts +17 -8
  129. package/templates/static/lib/native/style-compiler.js +9 -9
  130. package/templates/static/lib/plugin/loader.d.ts +8 -6
  131. package/templates/static/lib/plugin/loader.js +25 -31
  132. package/templates/static/lib/runtime/client-runtime.d.ts +15 -0
  133. package/templates/static/lib/runtime/client-runtime.js +23 -9
  134. package/templates/static/lib/runtime/hmr.d.ts +23 -1
  135. package/templates/static/lib/runtime/hmr.js +27 -5
  136. package/templates/static/lib/runtime/hydrate.d.ts +17 -0
  137. package/templates/static/lib/runtime/hydrate.js +48 -21
  138. package/templates/static/lib/runtime/island-hydration-client.d.ts +5 -2
  139. package/templates/static/lib/runtime/island-hydration-client.js +122 -91
  140. package/templates/static/lib/runtime/islands.d.ts +82 -27
  141. package/templates/static/lib/runtime/islands.js +92 -54
  142. package/templates/static/lib/runtime/render.d.ts +36 -9
  143. package/templates/static/lib/runtime/render.js +208 -130
  144. package/templates/static/lib/server/api-routes.d.ts +96 -28
  145. package/templates/static/lib/server/api-routes.js +214 -156
  146. package/templates/static/lib/server/api.d.ts +3 -3
  147. package/templates/static/lib/server/api.js +93 -92
  148. package/templates/static/lib/server/app.d.ts +37 -3
  149. package/templates/static/lib/server/app.js +328 -254
  150. package/templates/static/lib/server/runtimeServe.d.ts +56 -0
  151. package/templates/static/lib/server/runtimeServe.js +130 -69
  152. package/templates/static/lib/server/ssr.d.ts +161 -0
  153. package/templates/static/lib/server/ssr.js +219 -0
  154. package/templates/static/lib/shared/log.d.ts +47 -3
  155. package/templates/static/lib/shared/log.js +60 -10
  156. package/templates/static/server.js +4 -6
  157. package/templates/static/site/(home).tsx +30 -12
  158. package/templates/static/site/styles/global.scss +89 -78
  159. package/templates/static/tsconfig.json +39 -39
  160. package/templates/static/node_modules/.bin/esbuild +0 -16
  161. package/templates/static/node_modules/.bin/esbuild.cmd +0 -17
  162. package/templates/static/node_modules/.bin/esbuild.ps1 +0 -28
  163. package/templates/static/node_modules/.bin/tsc +0 -16
  164. package/templates/static/node_modules/.bin/tsc.cmd +0 -17
  165. package/templates/static/node_modules/.bin/tsc.ps1 +0 -28
  166. package/templates/static/node_modules/.bin/tsserver +0 -16
  167. package/templates/static/node_modules/.bin/tsserver.cmd +0 -17
  168. package/templates/static/node_modules/.bin/tsserver.ps1 +0 -28
  169. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -14
  170. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +0 -11
  171. package/templates/static/node_modules/.package-lock.json +0 -585
  172. package/templates/static/node_modules/@esbuild/win32-x64/README.md +0 -3
  173. package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  174. package/templates/static/node_modules/@esbuild/win32-x64/package.json +0 -20
  175. package/templates/static/node_modules/@jenjs/master/README.md +0 -24
  176. package/templates/static/node_modules/@jenjs/master/index.js +0 -3655
  177. package/templates/static/node_modules/@jenjs/master/package.json +0 -36
  178. package/templates/static/node_modules/@polka/url/build.js +0 -49
  179. package/templates/static/node_modules/@polka/url/build.mjs +0 -47
  180. package/templates/static/node_modules/@polka/url/index.d.ts +0 -11
  181. package/templates/static/node_modules/@polka/url/package.json +0 -30
  182. package/templates/static/node_modules/@polka/url/readme.md +0 -68
  183. package/templates/static/node_modules/@types/node/LICENSE +0 -21
  184. package/templates/static/node_modules/@types/node/README.md +0 -15
  185. package/templates/static/node_modules/@types/node/assert/strict.d.ts +0 -111
  186. package/templates/static/node_modules/@types/node/assert.d.ts +0 -1078
  187. package/templates/static/node_modules/@types/node/async_hooks.d.ts +0 -603
  188. package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  189. package/templates/static/node_modules/@types/node/buffer.d.ts +0 -1934
  190. package/templates/static/node_modules/@types/node/child_process.d.ts +0 -1476
  191. package/templates/static/node_modules/@types/node/cluster.d.ts +0 -578
  192. package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  193. package/templates/static/node_modules/@types/node/compatibility/index.d.ts +0 -9
  194. package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  195. package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  196. package/templates/static/node_modules/@types/node/console.d.ts +0 -452
  197. package/templates/static/node_modules/@types/node/constants.d.ts +0 -21
  198. package/templates/static/node_modules/@types/node/crypto.d.ts +0 -4545
  199. package/templates/static/node_modules/@types/node/dgram.d.ts +0 -600
  200. package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  201. package/templates/static/node_modules/@types/node/dns/promises.d.ts +0 -503
  202. package/templates/static/node_modules/@types/node/dns.d.ts +0 -923
  203. package/templates/static/node_modules/@types/node/domain.d.ts +0 -170
  204. package/templates/static/node_modules/@types/node/events.d.ts +0 -976
  205. package/templates/static/node_modules/@types/node/fs/promises.d.ts +0 -1295
  206. package/templates/static/node_modules/@types/node/fs.d.ts +0 -4461
  207. package/templates/static/node_modules/@types/node/globals.d.ts +0 -172
  208. package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  209. package/templates/static/node_modules/@types/node/http.d.ts +0 -2089
  210. package/templates/static/node_modules/@types/node/http2.d.ts +0 -2644
  211. package/templates/static/node_modules/@types/node/https.d.ts +0 -579
  212. package/templates/static/node_modules/@types/node/index.d.ts +0 -97
  213. package/templates/static/node_modules/@types/node/inspector.d.ts +0 -253
  214. package/templates/static/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  215. package/templates/static/node_modules/@types/node/module.d.ts +0 -891
  216. package/templates/static/node_modules/@types/node/net.d.ts +0 -1057
  217. package/templates/static/node_modules/@types/node/os.d.ts +0 -506
  218. package/templates/static/node_modules/@types/node/package.json +0 -145
  219. package/templates/static/node_modules/@types/node/path.d.ts +0 -200
  220. package/templates/static/node_modules/@types/node/perf_hooks.d.ts +0 -968
  221. package/templates/static/node_modules/@types/node/process.d.ts +0 -2089
  222. package/templates/static/node_modules/@types/node/punycode.d.ts +0 -117
  223. package/templates/static/node_modules/@types/node/querystring.d.ts +0 -152
  224. package/templates/static/node_modules/@types/node/readline/promises.d.ts +0 -161
  225. package/templates/static/node_modules/@types/node/readline.d.ts +0 -594
  226. package/templates/static/node_modules/@types/node/repl.d.ts +0 -428
  227. package/templates/static/node_modules/@types/node/sea.d.ts +0 -153
  228. package/templates/static/node_modules/@types/node/sqlite.d.ts +0 -721
  229. package/templates/static/node_modules/@types/node/stream/consumers.d.ts +0 -38
  230. package/templates/static/node_modules/@types/node/stream/promises.d.ts +0 -90
  231. package/templates/static/node_modules/@types/node/stream/web.d.ts +0 -622
  232. package/templates/static/node_modules/@types/node/stream.d.ts +0 -1664
  233. package/templates/static/node_modules/@types/node/string_decoder.d.ts +0 -67
  234. package/templates/static/node_modules/@types/node/test.d.ts +0 -2163
  235. package/templates/static/node_modules/@types/node/timers/promises.d.ts +0 -108
  236. package/templates/static/node_modules/@types/node/timers.d.ts +0 -287
  237. package/templates/static/node_modules/@types/node/tls.d.ts +0 -1319
  238. package/templates/static/node_modules/@types/node/trace_events.d.ts +0 -197
  239. package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  240. package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  241. package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  242. package/templates/static/node_modules/@types/node/tty.d.ts +0 -208
  243. package/templates/static/node_modules/@types/node/url.d.ts +0 -984
  244. package/templates/static/node_modules/@types/node/util.d.ts +0 -2606
  245. package/templates/static/node_modules/@types/node/v8.d.ts +0 -920
  246. package/templates/static/node_modules/@types/node/vm.d.ts +0 -1000
  247. package/templates/static/node_modules/@types/node/wasi.d.ts +0 -181
  248. package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  249. package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  250. package/templates/static/node_modules/@types/node/web-globals/events.d.ts +0 -97
  251. package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  252. package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  253. package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  254. package/templates/static/node_modules/@types/node/worker_threads.d.ts +0 -784
  255. package/templates/static/node_modules/@types/node/zlib.d.ts +0 -683
  256. package/templates/static/node_modules/esbuild/LICENSE.md +0 -21
  257. package/templates/static/node_modules/esbuild/README.md +0 -3
  258. package/templates/static/node_modules/esbuild/bin/esbuild +0 -223
  259. package/templates/static/node_modules/esbuild/install.js +0 -289
  260. package/templates/static/node_modules/esbuild/lib/main.d.ts +0 -716
  261. package/templates/static/node_modules/esbuild/lib/main.js +0 -2242
  262. package/templates/static/node_modules/esbuild/package.json +0 -49
  263. package/templates/static/node_modules/mrmime/index.d.ts +0 -2
  264. package/templates/static/node_modules/mrmime/index.js +0 -449
  265. package/templates/static/node_modules/mrmime/index.mjs +0 -448
  266. package/templates/static/node_modules/mrmime/license +0 -21
  267. package/templates/static/node_modules/mrmime/package.json +0 -44
  268. package/templates/static/node_modules/mrmime/readme.md +0 -130
  269. package/templates/static/node_modules/preact/LICENSE +0 -21
  270. package/templates/static/node_modules/preact/README.md +0 -185
  271. package/templates/static/node_modules/preact/compat/client.d.ts +0 -13
  272. package/templates/static/node_modules/preact/compat/client.js +0 -21
  273. package/templates/static/node_modules/preact/compat/client.mjs +0 -24
  274. package/templates/static/node_modules/preact/compat/dist/compat.js +0 -2
  275. package/templates/static/node_modules/preact/compat/dist/compat.js.map +0 -1
  276. package/templates/static/node_modules/preact/compat/dist/compat.mjs +0 -2
  277. package/templates/static/node_modules/preact/compat/dist/compat.module.js +0 -2
  278. package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +0 -1
  279. package/templates/static/node_modules/preact/compat/dist/compat.umd.js +0 -2
  280. package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
  281. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
  282. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
  283. package/templates/static/node_modules/preact/compat/jsx-runtime.js +0 -3
  284. package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +0 -3
  285. package/templates/static/node_modules/preact/compat/package.json +0 -55
  286. package/templates/static/node_modules/preact/compat/scheduler.js +0 -15
  287. package/templates/static/node_modules/preact/compat/scheduler.mjs +0 -23
  288. package/templates/static/node_modules/preact/compat/server.browser.js +0 -11
  289. package/templates/static/node_modules/preact/compat/server.js +0 -36
  290. package/templates/static/node_modules/preact/compat/server.mjs +0 -17
  291. package/templates/static/node_modules/preact/compat/src/Children.js +0 -21
  292. package/templates/static/node_modules/preact/compat/src/PureComponent.js +0 -16
  293. package/templates/static/node_modules/preact/compat/src/forwardRef.js +0 -44
  294. package/templates/static/node_modules/preact/compat/src/hooks.js +0 -70
  295. package/templates/static/node_modules/preact/compat/src/index.d.ts +0 -351
  296. package/templates/static/node_modules/preact/compat/src/index.js +0 -238
  297. package/templates/static/node_modules/preact/compat/src/internal.d.ts +0 -48
  298. package/templates/static/node_modules/preact/compat/src/memo.js +0 -35
  299. package/templates/static/node_modules/preact/compat/src/portals.js +0 -78
  300. package/templates/static/node_modules/preact/compat/src/render.js +0 -313
  301. package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +0 -16
  302. package/templates/static/node_modules/preact/compat/src/suspense-list.js +0 -127
  303. package/templates/static/node_modules/preact/compat/src/suspense.d.ts +0 -19
  304. package/templates/static/node_modules/preact/compat/src/suspense.js +0 -291
  305. package/templates/static/node_modules/preact/compat/src/util.js +0 -33
  306. package/templates/static/node_modules/preact/compat/test-utils.js +0 -1
  307. package/templates/static/node_modules/preact/compat/test-utils.mjs +0 -1
  308. package/templates/static/node_modules/preact/debug/dist/debug.js +0 -2
  309. package/templates/static/node_modules/preact/debug/dist/debug.js.map +0 -1
  310. package/templates/static/node_modules/preact/debug/dist/debug.mjs +0 -2
  311. package/templates/static/node_modules/preact/debug/dist/debug.module.js +0 -2
  312. package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +0 -1
  313. package/templates/static/node_modules/preact/debug/dist/debug.umd.js +0 -2
  314. package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
  315. package/templates/static/node_modules/preact/debug/package.json +0 -27
  316. package/templates/static/node_modules/preact/debug/src/check-props.js +0 -54
  317. package/templates/static/node_modules/preact/debug/src/component-stack.js +0 -146
  318. package/templates/static/node_modules/preact/debug/src/constants.js +0 -3
  319. package/templates/static/node_modules/preact/debug/src/debug.js +0 -593
  320. package/templates/static/node_modules/preact/debug/src/index.d.ts +0 -23
  321. package/templates/static/node_modules/preact/debug/src/index.js +0 -12
  322. package/templates/static/node_modules/preact/debug/src/internal.d.ts +0 -82
  323. package/templates/static/node_modules/preact/debug/src/util.js +0 -15
  324. package/templates/static/node_modules/preact/devtools/dist/devtools.js +0 -2
  325. package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +0 -1
  326. package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +0 -2
  327. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +0 -2
  328. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
  329. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
  330. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
  331. package/templates/static/node_modules/preact/devtools/package.json +0 -25
  332. package/templates/static/node_modules/preact/devtools/src/devtools.js +0 -21
  333. package/templates/static/node_modules/preact/devtools/src/index.d.ts +0 -8
  334. package/templates/static/node_modules/preact/devtools/src/index.js +0 -15
  335. package/templates/static/node_modules/preact/dist/preact.js +0 -2
  336. package/templates/static/node_modules/preact/dist/preact.js.map +0 -1
  337. package/templates/static/node_modules/preact/dist/preact.min.js +0 -2
  338. package/templates/static/node_modules/preact/dist/preact.min.js.map +0 -1
  339. package/templates/static/node_modules/preact/dist/preact.min.module.js +0 -2
  340. package/templates/static/node_modules/preact/dist/preact.min.module.js.map +0 -1
  341. package/templates/static/node_modules/preact/dist/preact.min.umd.js +0 -2
  342. package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +0 -1
  343. package/templates/static/node_modules/preact/dist/preact.mjs +0 -2
  344. package/templates/static/node_modules/preact/dist/preact.module.js +0 -2
  345. package/templates/static/node_modules/preact/dist/preact.module.js.map +0 -1
  346. package/templates/static/node_modules/preact/dist/preact.umd.js +0 -2
  347. package/templates/static/node_modules/preact/dist/preact.umd.js.map +0 -1
  348. package/templates/static/node_modules/preact/hooks/dist/hooks.js +0 -2
  349. package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +0 -1
  350. package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +0 -2
  351. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +0 -2
  352. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
  353. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
  354. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
  355. package/templates/static/node_modules/preact/hooks/package.json +0 -35
  356. package/templates/static/node_modules/preact/hooks/src/index.d.ts +0 -145
  357. package/templates/static/node_modules/preact/hooks/src/index.js +0 -555
  358. package/templates/static/node_modules/preact/hooks/src/internal.d.ts +0 -103
  359. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
  360. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
  361. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
  362. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
  363. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
  364. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
  365. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
  366. package/templates/static/node_modules/preact/jsx-runtime/package.json +0 -28
  367. package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +0 -62
  368. package/templates/static/node_modules/preact/jsx-runtime/src/index.js +0 -206
  369. package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +0 -36
  370. package/templates/static/node_modules/preact/package.json +0 -258
  371. package/templates/static/node_modules/preact/src/cjs.js +0 -3
  372. package/templates/static/node_modules/preact/src/clone-element.js +0 -48
  373. package/templates/static/node_modules/preact/src/component.js +0 -249
  374. package/templates/static/node_modules/preact/src/constants.js +0 -22
  375. package/templates/static/node_modules/preact/src/create-context.js +0 -60
  376. package/templates/static/node_modules/preact/src/create-element.js +0 -97
  377. package/templates/static/node_modules/preact/src/diff/catch-error.js +0 -46
  378. package/templates/static/node_modules/preact/src/diff/children.js +0 -451
  379. package/templates/static/node_modules/preact/src/diff/index.js +0 -684
  380. package/templates/static/node_modules/preact/src/diff/props.js +0 -173
  381. package/templates/static/node_modules/preact/src/dom.d.ts +0 -2476
  382. package/templates/static/node_modules/preact/src/index-5.d.ts +0 -399
  383. package/templates/static/node_modules/preact/src/index.d.ts +0 -402
  384. package/templates/static/node_modules/preact/src/index.js +0 -13
  385. package/templates/static/node_modules/preact/src/internal.d.ts +0 -190
  386. package/templates/static/node_modules/preact/src/jsx.d.ts +0 -2878
  387. package/templates/static/node_modules/preact/src/options.js +0 -16
  388. package/templates/static/node_modules/preact/src/render.js +0 -78
  389. package/templates/static/node_modules/preact/src/util.js +0 -28
  390. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +0 -2
  391. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
  392. package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
  393. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
  394. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
  395. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
  396. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
  397. package/templates/static/node_modules/preact/test-utils/package.json +0 -28
  398. package/templates/static/node_modules/preact/test-utils/src/index.d.ts +0 -3
  399. package/templates/static/node_modules/preact/test-utils/src/index.js +0 -129
  400. package/templates/static/node_modules/preact-render-to-string/LICENSE +0 -21
  401. package/templates/static/node_modules/preact-render-to-string/README.md +0 -149
  402. package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
  403. package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +0 -17
  404. package/templates/static/node_modules/preact-render-to-string/dist/index.js +0 -6
  405. package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +0 -1
  406. package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +0 -2
  407. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +0 -2
  408. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
  409. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +0 -2
  410. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +0 -1
  411. package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +0 -35
  412. package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +0 -2
  413. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +0 -4
  414. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +0 -1
  415. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +0 -2
  416. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +0 -2
  417. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +0 -1
  418. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +0 -2
  419. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +0 -1
  420. package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -24
  421. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +0 -2
  422. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +0 -1
  423. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +0 -2
  424. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +0 -2
  425. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +0 -1
  426. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +0 -2
  427. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +0 -1
  428. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +0 -884
  429. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +0 -1
  430. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +0 -884
  431. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +0 -884
  432. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +0 -1
  433. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +0 -888
  434. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +0 -1
  435. package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +0 -19
  436. package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +0 -10
  437. package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +0 -24
  438. package/templates/static/node_modules/preact-render-to-string/jsx.js +0 -1
  439. package/templates/static/node_modules/preact-render-to-string/package.json +0 -152
  440. package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +0 -17
  441. package/templates/static/node_modules/preact-render-to-string/src/index.js +0 -764
  442. package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +0 -35
  443. package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +0 -24
  444. package/templates/static/node_modules/preact-render-to-string/src/jsx.js +0 -102
  445. package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +0 -97
  446. package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +0 -62
  447. package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +0 -20
  448. package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +0 -8
  449. package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +0 -208
  450. package/templates/static/node_modules/preact-render-to-string/src/pretty.js +0 -491
  451. package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +0 -19
  452. package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +0 -84
  453. package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +0 -10
  454. package/templates/static/node_modules/preact-render-to-string/src/stream.js +0 -43
  455. package/templates/static/node_modules/preact-render-to-string/typings.json +0 -5
  456. package/templates/static/node_modules/sirv/build.js +0 -197
  457. package/templates/static/node_modules/sirv/build.mjs +0 -197
  458. package/templates/static/node_modules/sirv/index.d.mts +0 -29
  459. package/templates/static/node_modules/sirv/index.d.ts +0 -33
  460. package/templates/static/node_modules/sirv/package.json +0 -40
  461. package/templates/static/node_modules/sirv/readme.md +0 -238
  462. package/templates/static/node_modules/totalist/dist/index.js +0 -24
  463. package/templates/static/node_modules/totalist/dist/index.mjs +0 -22
  464. package/templates/static/node_modules/totalist/index.d.ts +0 -3
  465. package/templates/static/node_modules/totalist/license +0 -21
  466. package/templates/static/node_modules/totalist/package.json +0 -55
  467. package/templates/static/node_modules/totalist/readme.md +0 -109
  468. package/templates/static/node_modules/totalist/sync/index.d.ts +0 -3
  469. package/templates/static/node_modules/totalist/sync/index.js +0 -17
  470. package/templates/static/node_modules/totalist/sync/index.mjs +0 -15
  471. package/templates/static/node_modules/typescript/bin/tsc +0 -2
  472. package/templates/static/node_modules/typescript/bin/tsserver +0 -2
  473. package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  474. package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  475. package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  476. package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  477. package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  478. package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  479. package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  480. package/templates/static/node_modules/typescript/lib/lib.d.ts +0 -22
  481. package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  482. package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  483. package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  484. package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  485. package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  486. package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  487. package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  488. package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  489. package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  490. package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  491. package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  492. package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  493. package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  494. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  495. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  496. package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  497. package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  498. package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  499. package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  500. package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  501. package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  502. package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  503. package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  504. package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  505. package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  506. package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  507. package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  508. package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  509. package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  510. package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  511. package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  512. package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  513. package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  514. package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  515. package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  516. package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  517. package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  518. package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  519. package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  520. package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  521. package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  522. package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  523. package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  524. package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  525. package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  526. package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  527. package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  528. package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  529. package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  530. package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  531. package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  532. package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  533. package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  534. package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  535. package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  536. package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  537. package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  538. package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  539. package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  540. package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  541. package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  542. package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  543. package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  544. package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  545. package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  546. package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  547. package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  548. package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  549. package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  550. package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  551. package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  552. package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  553. package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  554. package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  555. package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  556. package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  557. package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  558. package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  559. package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  560. package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  561. package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  562. package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  563. package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  564. package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  565. package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  566. package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  567. package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  568. package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  569. package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  570. package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  571. package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  572. package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  573. package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  574. package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  575. package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  576. package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  577. package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  578. package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  579. package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  580. package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  581. package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  582. package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  583. package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  584. package/templates/static/node_modules/typescript/lib/tsc.js +0 -8
  585. package/templates/static/node_modules/typescript/lib/tsserver.js +0 -8
  586. package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  587. package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  588. package/templates/static/node_modules/typescript/lib/typescript.d.ts +0 -11437
@@ -1,4 +1,60 @@
1
+ /**
2
+ * Generate the browser-safe hydration runtime code.
3
+ * Uses CDN-hosted Preact (esm.sh) for minimal payload and no bundler overhead.
4
+ * This runtime is injected into the page and provides hydration primitives.
5
+ *
6
+ * Note: In production, consider self-hosting the Preact bundle for better performance
7
+ * and reliability (no external CDN dependency).
8
+ *
9
+ * @returns ES module code string for browser hydration runtime
10
+ */
1
11
  export declare function runtimeHydrateModule(): string;
12
+ /**
13
+ * Clear cached compiled module for a file path.
14
+ * Called when a source file changes during development to ensure fresh compilation
15
+ * on next request.
16
+ *
17
+ * @param filePath - Absolute file path to invalidate
18
+ */
2
19
  export declare function invalidateCache(filePath: string): void;
20
+ /**
21
+ * Build a client-side hydration module for a route.
22
+ * Takes a route file path, extracts the default component export,
23
+ * transpiles to browser-executable JavaScript with Preact imports resolved.
24
+ *
25
+ * How it works:
26
+ * 1. Create a proxy file that re-exports only the default component
27
+ * This allows tree-shaking to remove server-only exports (loader, middleware, etc.)
28
+ * 2. Use esbuild buildSync to transpile and bundle with Preact
29
+ * 3. Cache the result with ETag for HTTP conditional requests
30
+ * 4. Return JS code or fallback to empty component on error
31
+ *
32
+ * Transpilation:
33
+ * - Format: ESM (for client-side import)
34
+ * - Platform: browser (not Node.js)
35
+ * - JSX: Automatic via Preact JSX runtime
36
+ * - Sourcemap: Inline for debugging in browser DevTools
37
+ * - External: Preact and runtime libs (assumed available in browser)
38
+ *
39
+ * Caching:
40
+ * - Cache is per-file-path; invalidated via invalidateCache() when file changes
41
+ * - ETag allows HTTP 304 Not Modified responses
42
+ * - Development mode trusts explicit invalidation (file watcher triggers it)
43
+ *
44
+ * Error handling:
45
+ * - Failed builds return empty Page component (graceful degradation)
46
+ * - Errors are logged but don't stop request
47
+ *
48
+ * @param routeIdOrPath - File path to route component (e.g., "./routes/index.tsx")
49
+ * Note: routeId support for future config-based resolution
50
+ * @returns ES module JavaScript code (browser-executable)
51
+ */
3
52
  export declare function buildHydrationModule(routeIdOrPath: string): string;
53
+ /**
54
+ * Retrieve the ETag (cache hash) for a compiled hydration module.
55
+ * Used for HTTP conditional requests (If-None-Match, 304 Not Modified).
56
+ *
57
+ * @param filePath - Route file path
58
+ * @returns ETag hash string or null if not cached
59
+ */
4
60
  export declare function getHydrationEtag(filePath: string): string | null;
@@ -19,13 +19,35 @@ import { buildSync } from "esbuild";
19
19
  import { createHash } from "node:crypto";
20
20
  import { existsSync } from "node:fs";
21
21
  import { basename, dirname } from "node:path";
22
+ /**
23
+ * Cache for compiled hydration modules.
24
+ * Stores transpiled JS code and computed ETag hash per source file path.
25
+ * Cache is invalidated when files change (via invalidateCache).
26
+ */
22
27
  const cache = new Map();
28
+ /**
29
+ * Compute SHA-1 hash (ETag) for a string.
30
+ * Used for HTTP cache validation and deduplicating compiled output.
31
+ *
32
+ * @param s - String to hash
33
+ * @returns Hex-encoded SHA-1 hash
34
+ */
23
35
  function etagOf(s) {
24
- return createHash("sha1").update(s).digest("hex");
36
+ return createHash("sha1").update(s).digest("hex");
25
37
  }
38
+ /**
39
+ * Generate the browser-safe hydration runtime code.
40
+ * Uses CDN-hosted Preact (esm.sh) for minimal payload and no bundler overhead.
41
+ * This runtime is injected into the page and provides hydration primitives.
42
+ *
43
+ * Note: In production, consider self-hosting the Preact bundle for better performance
44
+ * and reliability (no external CDN dependency).
45
+ *
46
+ * @returns ES module code string for browser hydration runtime
47
+ */
26
48
  export function runtimeHydrateModule() {
27
- // Browser-safe runtime (ESM) using CDN preact (fast + zero bundler)
28
- return `
49
+ // Browser-safe runtime (ESM) using CDN preact (fast + zero bundler)
50
+ return `
29
51
  import { hydrate } from "https://esm.sh/preact@10.25.4";
30
52
  import { h } from "https://esm.sh/preact@10.25.4";
31
53
 
@@ -50,76 +72,115 @@ export async function hydrateClient(entryPath) {
50
72
  }
51
73
  `;
52
74
  }
75
+ /**
76
+ * Clear cached compiled module for a file path.
77
+ * Called when a source file changes during development to ensure fresh compilation
78
+ * on next request.
79
+ *
80
+ * @param filePath - Absolute file path to invalidate
81
+ */
53
82
  export function invalidateCache(filePath) {
54
- cache.delete(filePath);
83
+ cache.delete(filePath);
55
84
  }
85
+ /**
86
+ * Build a client-side hydration module for a route.
87
+ * Takes a route file path, extracts the default component export,
88
+ * transpiles to browser-executable JavaScript with Preact imports resolved.
89
+ *
90
+ * How it works:
91
+ * 1. Create a proxy file that re-exports only the default component
92
+ * This allows tree-shaking to remove server-only exports (loader, middleware, etc.)
93
+ * 2. Use esbuild buildSync to transpile and bundle with Preact
94
+ * 3. Cache the result with ETag for HTTP conditional requests
95
+ * 4. Return JS code or fallback to empty component on error
96
+ *
97
+ * Transpilation:
98
+ * - Format: ESM (for client-side import)
99
+ * - Platform: browser (not Node.js)
100
+ * - JSX: Automatic via Preact JSX runtime
101
+ * - Sourcemap: Inline for debugging in browser DevTools
102
+ * - External: Preact and runtime libs (assumed available in browser)
103
+ *
104
+ * Caching:
105
+ * - Cache is per-file-path; invalidated via invalidateCache() when file changes
106
+ * - ETag allows HTTP 304 Not Modified responses
107
+ * - Development mode trusts explicit invalidation (file watcher triggers it)
108
+ *
109
+ * Error handling:
110
+ * - Failed builds return empty Page component (graceful degradation)
111
+ * - Errors are logged but don't stop request
112
+ *
113
+ * @param routeIdOrPath - File path to route component (e.g., "./routes/index.tsx")
114
+ * Note: routeId support for future config-based resolution
115
+ * @returns ES module JavaScript code (browser-executable)
116
+ */
56
117
  export function buildHydrationModule(routeIdOrPath) {
57
- // routeIdOrPath is now a route ID like "route_index" or "route_blog_slug"
58
- // or a fallback filePath for backwards compatibility
59
- let filePath = routeIdOrPath;
60
- // For now, keep simple direct file path support
61
- // In production, we'd resolve routeId -> filePath via config
62
- if (!existsSync(filePath)) {
63
- return `export default function Page(){ return null }`;
64
- }
65
- const key = filePath;
66
- // Simple dev cache: check if file content changed?
67
- // Actually, for dev speed, we trust explicit invalidation or just rebuild on request.
68
- // Since buildSync is fast for single files, let's just rebuild if not in cache.
69
- // The cache is populated. If invalidation happens, it's removed.
70
- if (cache.has(key)) {
71
- return cache.get(key).js;
72
- }
73
- // Use a proxy entry to allow tree-shaking of server-only exports (like loader)
74
- const fileName = basename(filePath);
75
- const dir = dirname(filePath);
76
- const proxyContent = `export { default } from "./${fileName}";`;
77
- try {
78
- const jsOutput = buildSync({
79
- stdin: {
80
- contents: proxyContent,
81
- resolveDir: dir,
82
- sourcefile: "hydration-proxy.tsx",
83
- loader: "tsx",
84
- },
85
- format: "esm",
86
- platform: "browser",
87
- bundle: true,
88
- write: false,
89
- sourcemap: "inline",
90
- jsx: "automatic",
91
- jsxImportSource: "preact",
92
- define: {
93
- "process.env.NODE_ENV": JSON.stringify("development"),
94
- },
95
- external: [
96
- "preact",
97
- "preact/hooks",
98
- "preact/jsx-runtime",
99
- "preact-render-to-string",
100
- ],
101
- // Plugins not supported in buildSync, only in build()
102
- // plugins: [vueEsbuildPlugin(), svelteEsbuildPlugin()],
103
- }).outputFiles?.[0]?.text;
104
- if (!jsOutput) {
105
- console.error("[HYDRATION] Failed to build module for:", filePath);
106
- return `export default function Page(){ return null }`;
107
- }
108
- const out = `
109
- import { h } from "https://esm.sh/preact@10.25.4";
110
- import { Fragment } from "https://esm.sh/preact@10.25.4";
111
- import { jsx, jsxs } from "https://esm.sh/preact@10.25.4/jsx-runtime";
112
- ` + jsOutput;
113
- const etag = etagOf(out);
114
- cache.set(key, { js: out, etag });
115
- return out;
116
- }
117
- catch (err) {
118
- console.error("[HYDRATION] Build error for", filePath, ":", err);
119
- return `export default function Page(){ return null }`;
118
+ // routeIdOrPath is a file path; future versions may support route IDs via config
119
+ let filePath = routeIdOrPath;
120
+ // Return fallback if file doesn't exist
121
+ if (!existsSync(filePath)) {
122
+ return `export default function Page(){ return null }`;
123
+ }
124
+ const key = filePath;
125
+ // Return cached result if available (invalidated by invalidateCache)
126
+ if (cache.has(key)) {
127
+ return cache.get(key).js;
128
+ }
129
+ // Create proxy file to enable tree-shaking of server-only exports (loader, middleware, etc.)
130
+ // The proxy re-exports only the default component, letting esbuild eliminate other exports
131
+ const fileName = basename(filePath);
132
+ const dir = dirname(filePath);
133
+ const proxyContent = `export { default } from "./${fileName}";`;
134
+ try {
135
+ // Transpile proxy with esbuild for browser-safe JavaScript
136
+ const jsOutput = buildSync({
137
+ stdin: {
138
+ contents: proxyContent,
139
+ resolveDir: dir, // Resolve imports relative to route directory
140
+ sourcefile: "hydration-proxy.tsx",
141
+ loader: "tsx", // Support TypeScript and JSX
142
+ },
143
+ format: "esm",
144
+ platform: "browser", // Browser-specific optimizations
145
+ bundle: true, // Inline dependencies (except external)
146
+ write: false, // Return code instead of writing file
147
+ sourcemap: "inline", // Include source map for debugging
148
+ jsx: "automatic", // Automatic JSX transform (Preact)
149
+ jsxImportSource: "preact",
150
+ define: {
151
+ "process.env.NODE_ENV": JSON.stringify("development"),
152
+ },
153
+ // Preact and runtime must be available in browser (loaded separately)
154
+ external: [
155
+ "preact",
156
+ "preact/hooks",
157
+ "preact/jsx-runtime",
158
+ "preact-render-to-string",
159
+ ],
160
+ // TODO: Add plugin support for Vue/Svelte components
161
+ // plugins: [vueEsbuildPlugin(), svelteEsbuildPlugin()],
162
+ }).outputFiles?.[0]?.text;
163
+ if (!jsOutput) {
164
+ console.error("[HYDRATION] Failed to build module for:", filePath);
165
+ return `export default function Page(){ return null }`;
120
166
  }
167
+ // Cache result with ETag
168
+ const etag = etagOf(jsOutput);
169
+ cache.set(key, { js: jsOutput, etag });
170
+ return jsOutput;
171
+ } catch (err) {
172
+ console.error("[HYDRATION] Build error for", filePath, ":", err);
173
+ return `export default function Page(){ return null }`;
174
+ }
121
175
  }
176
+ /**
177
+ * Retrieve the ETag (cache hash) for a compiled hydration module.
178
+ * Used for HTTP conditional requests (If-None-Match, 304 Not Modified).
179
+ *
180
+ * @param filePath - Route file path
181
+ * @returns ETag hash string or null if not cached
182
+ */
122
183
  export function getHydrationEtag(filePath) {
123
- const v = cache.get(filePath);
124
- return v?.etag ?? null;
184
+ const v = cache.get(filePath);
185
+ return v?.etag ?? null;
125
186
  }
@@ -0,0 +1,161 @@
1
+ import type { IncomingMessage, ServerResponse } from "node:http";
2
+ import type { FrameworkConfig } from "../core/config.js";
3
+ import type { RouteEntry } from "../core/routes/scan.js";
4
+ /**
5
+ * Server-side rendering context passed to render() function.
6
+ * Contains all necessary information to render a page on the server.
7
+ */
8
+ export interface SSRContext {
9
+ req: IncomingMessage;
10
+ res: ServerResponse;
11
+ url: URL;
12
+ params: Record<string, string>;
13
+ query: Record<string, string>;
14
+ headers: Record<string, string>;
15
+ cookies: Record<string, string>;
16
+ }
17
+ /**
18
+ * Server-side props context passed to getServerSideProps().
19
+ * Provides access to request, params, and query string.
20
+ */
21
+ export interface GetServerSidePropsContext {
22
+ req: IncomingMessage;
23
+ res: ServerResponse;
24
+ params: Record<string, string>;
25
+ query: Record<string, string>;
26
+ headers: Record<string, string>;
27
+ cookies: Record<string, string>;
28
+ url: URL;
29
+ }
30
+ /**
31
+ * Return type from getServerSideProps().
32
+ * Can return notFound for 404, redirect for redirects, or props for rendering.
33
+ */
34
+ export type GetServerSidePropsResult<T = any> =
35
+ | {
36
+ props: T;
37
+ }
38
+ | {
39
+ notFound: true;
40
+ }
41
+ | {
42
+ redirect: {
43
+ destination: string;
44
+ permanent?: boolean;
45
+ };
46
+ };
47
+ /**
48
+ * Cache configuration and TTL management.
49
+ */
50
+ export interface CacheConfig {
51
+ enabled: boolean;
52
+ ttlSeconds: number;
53
+ }
54
+ /**
55
+ * Configure the SSR HTML cache behavior.
56
+ *
57
+ * @param config Cache configuration options
58
+ */
59
+ export declare function configureSsrCache(config: Partial<CacheConfig>): void;
60
+ /**
61
+ * Clear the entire SSR render cache.
62
+ * Useful in development or when data has changed.
63
+ */
64
+ export declare function clearSsrCache(): void;
65
+ /**
66
+ * Clear a specific cached page by URL pathname.
67
+ *
68
+ * @param pathname URL pathname to invalidate
69
+ */
70
+ export declare function invalidateSsrCache(pathname: string): void;
71
+ /**
72
+ * Core SSR render function: converts a component/template to HTML string.
73
+ * This is the main entry point for server-side rendering in Jen.js.
74
+ *
75
+ * Handles:
76
+ * 1. Cache lookup for performance
77
+ * 2. Module compilation (TS/JSX/Vue/Svelte → JS)
78
+ * 3. Route middleware execution
79
+ * 4. Loader function invocation (getServerSideProps pattern)
80
+ * 5. Component rendering to HTML string
81
+ * 6. Head management and hydration script injection
82
+ * 7. HTML caching for subsequent requests
83
+ *
84
+ * @param config Framework configuration
85
+ * @param route Route entry being rendered
86
+ * @param ctx Complete SSR context with request/response and metadata
87
+ * @returns Complete HTML document as a string
88
+ * @throws Error if rendering fails
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const html = await render(config, route, {
93
+ * req, res, url, params, query, headers, cookies
94
+ * });
95
+ * res.setHeader("content-type", "text/html; charset=utf-8");
96
+ * res.end(html);
97
+ * ```
98
+ */
99
+ export declare function render(
100
+ config: FrameworkConfig,
101
+ route: RouteEntry,
102
+ ctx: SSRContext,
103
+ ): Promise<string>;
104
+ /**
105
+ * Advanced SSR render with optional caching control.
106
+ * Allows per-request cache bypass for revalidation.
107
+ *
108
+ * @param config Framework configuration
109
+ * @param route Route entry being rendered
110
+ * @param ctx Complete SSR context
111
+ * @param options Render options
112
+ * @param options.cache Whether to use/update cache (default: true)
113
+ * @returns Complete HTML document
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const html = await renderWithOptions(config, route, ctx, {
118
+ * cache: false // Bypass cache for this request
119
+ * });
120
+ * ```
121
+ */
122
+ export declare function renderWithOptions(
123
+ config: FrameworkConfig,
124
+ route: RouteEntry,
125
+ ctx: SSRContext,
126
+ options?: {
127
+ cache?: boolean;
128
+ },
129
+ ): Promise<string>;
130
+ /**
131
+ * Manual HTML rendering of a component to string (no full document).
132
+ * Useful when you need just the component HTML without head/body wrapper.
133
+ *
134
+ * This is a low-level API primarily for internal use.
135
+ * For typical routing, use render() instead.
136
+ *
137
+ * @param config Framework configuration
138
+ * @param route Route to render
139
+ * @param ctx SSR context
140
+ * @returns Just the component body HTML (no <!doctype>, no <head>, no hydration)
141
+ */
142
+ export declare function renderComponentToString(
143
+ config: FrameworkConfig,
144
+ route: RouteEntry,
145
+ ctx: SSRContext,
146
+ ): Promise<string>;
147
+ /**
148
+ * Get cache statistics for monitoring and debugging.
149
+ *
150
+ * @returns Cache statistics
151
+ */
152
+ export declare function getSsrCacheStats(): {
153
+ size: number;
154
+ enabled: boolean;
155
+ ttlSeconds: number;
156
+ entries: {
157
+ pathname: string;
158
+ age: number;
159
+ size: number;
160
+ }[];
161
+ };
@@ -0,0 +1,219 @@
1
+ /*
2
+ * This file is part of Jen.js.
3
+ * Copyright (C) 2026 oopsio
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import { renderRouteToHtml } from "../runtime/render.js";
19
+ /**
20
+ * HTML rendering cache for performance optimization.
21
+ * Cache key is URL pathname. Useful for frequently accessed pages.
22
+ * In production, consider using Redis or external cache for distributed rendering.
23
+ */
24
+ const renderCache = new Map();
25
+ let cacheConfig = {
26
+ enabled: true,
27
+ ttlSeconds: 3600, // Default: 1 hour
28
+ };
29
+ /**
30
+ * Configure the SSR HTML cache behavior.
31
+ *
32
+ * @param config Cache configuration options
33
+ */
34
+ export function configureSsrCache(config) {
35
+ cacheConfig = { ...cacheConfig, ...config };
36
+ }
37
+ /**
38
+ * Clear the entire SSR render cache.
39
+ * Useful in development or when data has changed.
40
+ */
41
+ export function clearSsrCache() {
42
+ renderCache.clear();
43
+ }
44
+ /**
45
+ * Clear a specific cached page by URL pathname.
46
+ *
47
+ * @param pathname URL pathname to invalidate
48
+ */
49
+ export function invalidateSsrCache(pathname) {
50
+ renderCache.delete(pathname);
51
+ }
52
+ /**
53
+ * Get cached HTML for a page if it exists and hasn't expired.
54
+ *
55
+ * @param pathname URL pathname
56
+ * @returns Cached HTML string, or null if not cached/expired
57
+ */
58
+ function getCachedHtml(pathname) {
59
+ if (!cacheConfig.enabled) return null;
60
+ const cached = renderCache.get(pathname);
61
+ if (!cached) return null;
62
+ const age = (Date.now() - cached.timestamp) / 1000;
63
+ if (age > cacheConfig.ttlSeconds) {
64
+ renderCache.delete(pathname);
65
+ return null;
66
+ }
67
+ return cached.html;
68
+ }
69
+ /**
70
+ * Cache rendered HTML for a page.
71
+ *
72
+ * @param pathname URL pathname
73
+ * @param html Complete HTML string to cache
74
+ */
75
+ function cacheHtml(pathname, html) {
76
+ if (!cacheConfig.enabled) return;
77
+ renderCache.set(pathname, { html, timestamp: Date.now() });
78
+ }
79
+ /**
80
+ * Core SSR render function: converts a component/template to HTML string.
81
+ * This is the main entry point for server-side rendering in Jen.js.
82
+ *
83
+ * Handles:
84
+ * 1. Cache lookup for performance
85
+ * 2. Module compilation (TS/JSX/Vue/Svelte → JS)
86
+ * 3. Route middleware execution
87
+ * 4. Loader function invocation (getServerSideProps pattern)
88
+ * 5. Component rendering to HTML string
89
+ * 6. Head management and hydration script injection
90
+ * 7. HTML caching for subsequent requests
91
+ *
92
+ * @param config Framework configuration
93
+ * @param route Route entry being rendered
94
+ * @param ctx Complete SSR context with request/response and metadata
95
+ * @returns Complete HTML document as a string
96
+ * @throws Error if rendering fails
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * const html = await render(config, route, {
101
+ * req, res, url, params, query, headers, cookies
102
+ * });
103
+ * res.setHeader("content-type", "text/html; charset=utf-8");
104
+ * res.end(html);
105
+ * ```
106
+ */
107
+ export async function render(config, route, ctx) {
108
+ const pathname = ctx.url.pathname;
109
+ // Check cache first
110
+ const cached = getCachedHtml(pathname);
111
+ if (cached) {
112
+ return cached;
113
+ }
114
+ // Render the page
115
+ const html = await renderRouteToHtml({
116
+ config,
117
+ route,
118
+ req: ctx.req,
119
+ res: ctx.res,
120
+ url: ctx.url,
121
+ params: ctx.params,
122
+ query: ctx.query,
123
+ headers: ctx.headers,
124
+ cookies: ctx.cookies,
125
+ });
126
+ // Cache for next request
127
+ cacheHtml(pathname, html);
128
+ return html;
129
+ }
130
+ /**
131
+ * Advanced SSR render with optional caching control.
132
+ * Allows per-request cache bypass for revalidation.
133
+ *
134
+ * @param config Framework configuration
135
+ * @param route Route entry being rendered
136
+ * @param ctx Complete SSR context
137
+ * @param options Render options
138
+ * @param options.cache Whether to use/update cache (default: true)
139
+ * @returns Complete HTML document
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const html = await renderWithOptions(config, route, ctx, {
144
+ * cache: false // Bypass cache for this request
145
+ * });
146
+ * ```
147
+ */
148
+ export async function renderWithOptions(config, route, ctx, options = {}) {
149
+ const { cache = true } = options;
150
+ const pathname = ctx.url.pathname;
151
+ // Check cache if enabled
152
+ if (cache) {
153
+ const cached = getCachedHtml(pathname);
154
+ if (cached) return cached;
155
+ }
156
+ // Render the page
157
+ const html = await renderRouteToHtml({
158
+ config,
159
+ route,
160
+ req: ctx.req,
161
+ res: ctx.res,
162
+ url: ctx.url,
163
+ params: ctx.params,
164
+ query: ctx.query,
165
+ headers: ctx.headers,
166
+ cookies: ctx.cookies,
167
+ });
168
+ // Cache if enabled
169
+ if (cache) {
170
+ cacheHtml(pathname, html);
171
+ }
172
+ return html;
173
+ }
174
+ /**
175
+ * Manual HTML rendering of a component to string (no full document).
176
+ * Useful when you need just the component HTML without head/body wrapper.
177
+ *
178
+ * This is a low-level API primarily for internal use.
179
+ * For typical routing, use render() instead.
180
+ *
181
+ * @param config Framework configuration
182
+ * @param route Route to render
183
+ * @param ctx SSR context
184
+ * @returns Just the component body HTML (no <!doctype>, no <head>, no hydration)
185
+ */
186
+ export async function renderComponentToString(config, route, ctx) {
187
+ // For now, we render the full HTML and extract the body
188
+ const html = await renderRouteToHtml({
189
+ config,
190
+ route,
191
+ req: ctx.req,
192
+ res: ctx.res,
193
+ url: ctx.url,
194
+ params: ctx.params,
195
+ query: ctx.query,
196
+ headers: ctx.headers,
197
+ cookies: ctx.cookies,
198
+ });
199
+ // Extract body content
200
+ const bodyMatch = html.match(/<div id="app">([\s\S]*?)<\/div>/);
201
+ return bodyMatch ? bodyMatch[1] : "";
202
+ }
203
+ /**
204
+ * Get cache statistics for monitoring and debugging.
205
+ *
206
+ * @returns Cache statistics
207
+ */
208
+ export function getSsrCacheStats() {
209
+ return {
210
+ size: renderCache.size,
211
+ enabled: cacheConfig.enabled,
212
+ ttlSeconds: cacheConfig.ttlSeconds,
213
+ entries: Array.from(renderCache.entries()).map(([key, value]) => ({
214
+ pathname: key,
215
+ age: (Date.now() - value.timestamp) / 1000,
216
+ size: value.html.length,
217
+ })),
218
+ };
219
+ }