create-jen-app 1.0.0 → 1.2.0

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 (618) hide show
  1. package/dist/colors.js +92 -0
  2. package/dist/create.js +167 -0
  3. package/dist/generator.js +149 -0
  4. package/dist/index.js +5 -71
  5. package/package.json +12 -6
  6. package/templates/static/.esbuild/jen.config.js +0 -1
  7. package/templates/static/README.md +67 -0
  8. package/templates/static/build.js +28 -8
  9. package/templates/static/jen.config.ts +102 -9
  10. package/templates/static/jenjs.d.ts +33 -15
  11. package/templates/static/lib/api/(hello).d.ts +7 -0
  12. package/templates/static/lib/api/(hello).js +26 -0
  13. package/templates/static/lib/auth/cookie-utils.d.ts +24 -0
  14. package/templates/static/lib/auth/cookie-utils.js +99 -0
  15. package/templates/static/lib/auth/index.d.ts +2 -0
  16. package/templates/static/lib/auth/index.js +19 -0
  17. package/templates/static/lib/auth/jwt.d.ts +2 -0
  18. package/templates/static/lib/auth/jwt.js +30 -0
  19. package/templates/static/lib/auth/session.d.ts +44 -0
  20. package/templates/static/lib/auth/session.js +111 -0
  21. package/templates/static/lib/build/asset-hashing.d.ts +10 -0
  22. package/templates/static/lib/build/asset-hashing.js +42 -0
  23. package/templates/static/lib/build/asset-manifest.d.ts +11 -0
  24. package/templates/static/lib/build/asset-manifest.js +38 -0
  25. package/templates/static/lib/build/build.d.ts +4 -0
  26. package/templates/static/lib/build/build.js +113 -0
  27. package/templates/static/lib/build/island-hydration.d.ts +25 -0
  28. package/templates/static/lib/build/island-hydration.js +62 -0
  29. package/templates/static/lib/build/minifier.d.ts +20 -0
  30. package/templates/static/lib/build/minifier.js +65 -0
  31. package/templates/static/lib/build/page-renderer.d.ts +17 -0
  32. package/templates/static/lib/build/page-renderer.js +45 -0
  33. package/templates/static/lib/build/production-build.d.ts +10 -0
  34. package/templates/static/lib/build/production-build.js +30 -0
  35. package/templates/static/lib/build/ssg-pipeline.d.ts +15 -0
  36. package/templates/static/lib/build/ssg-pipeline.js +119 -0
  37. package/templates/static/lib/build-tools/build-site.d.ts +6 -0
  38. package/templates/static/lib/build-tools/build-site.js +56 -0
  39. package/templates/static/lib/cache/index.d.ts +2 -0
  40. package/templates/static/lib/cache/index.js +19 -0
  41. package/templates/static/lib/cache/memory.d.ts +6 -0
  42. package/templates/static/lib/cache/memory.js +31 -0
  43. package/templates/static/lib/cache/redis.d.ts +6 -0
  44. package/templates/static/lib/cache/redis.js +33 -0
  45. package/templates/static/lib/cli/banner.d.ts +1 -0
  46. package/templates/static/lib/cli/banner.js +41 -0
  47. package/templates/static/lib/cli/templates/ssg/jen.config.d.ts +3 -0
  48. package/templates/static/lib/cli/templates/ssg/jen.config.js +49 -0
  49. package/templates/static/lib/cli/templates/ssg/site/index.d.ts +2 -0
  50. package/templates/static/lib/cli/templates/ssg/site/index.js +4 -0
  51. package/templates/static/lib/cli/templates/ssr/jen.config.d.ts +3 -0
  52. package/templates/static/lib/cli/templates/ssr/jen.config.js +49 -0
  53. package/templates/static/lib/cli/templates/ssr/site/index.d.ts +2 -0
  54. package/templates/static/lib/cli/templates/ssr/site/index.js +4 -0
  55. package/templates/static/lib/compilers/esbuild-plugins.d.ts +6 -0
  56. package/templates/static/lib/compilers/esbuild-plugins.js +130 -0
  57. package/templates/static/lib/compilers/svelte.d.ts +18 -0
  58. package/templates/static/lib/compilers/svelte.js +61 -0
  59. package/templates/static/lib/compilers/vue.d.ts +15 -0
  60. package/templates/static/lib/compilers/vue.js +99 -0
  61. package/templates/static/lib/core/config.d.ts +53 -0
  62. package/templates/static/lib/core/config.js +18 -0
  63. package/templates/static/lib/core/http.d.ts +3 -0
  64. package/templates/static/lib/core/http.js +42 -0
  65. package/templates/static/lib/core/middleware-hooks.d.ts +46 -0
  66. package/templates/static/lib/core/middleware-hooks.js +69 -0
  67. package/templates/static/lib/core/paths.d.ts +6 -0
  68. package/templates/static/lib/core/paths.js +24 -0
  69. package/templates/static/lib/core/routes/match.d.ts +6 -0
  70. package/templates/static/lib/core/routes/match.js +31 -0
  71. package/templates/static/lib/core/routes/scan.d.ts +9 -0
  72. package/templates/static/lib/core/routes/scan.js +148 -0
  73. package/templates/static/lib/core/types.d.ts +18 -0
  74. package/templates/static/lib/core/types.js +18 -0
  75. package/templates/static/lib/css/compiler.d.ts +20 -0
  76. package/templates/static/lib/css/compiler.js +87 -0
  77. package/templates/static/lib/db/connector.d.ts +4 -0
  78. package/templates/static/lib/db/connector.js +33 -0
  79. package/templates/static/lib/db/drivers/jdb.d.ts +13 -0
  80. package/templates/static/lib/db/drivers/jdb.js +59 -0
  81. package/templates/static/lib/db/drivers/sql.d.ts +18 -0
  82. package/templates/static/lib/db/drivers/sql.js +182 -0
  83. package/templates/static/lib/db/index.d.ts +19 -0
  84. package/templates/static/lib/db/index.js +65 -0
  85. package/templates/static/lib/db/types.d.ts +29 -0
  86. package/templates/static/lib/db/types.js +18 -0
  87. package/templates/static/lib/graphql/index.d.ts +1 -0
  88. package/templates/static/lib/graphql/index.js +22 -0
  89. package/templates/static/lib/graphql/resolvers.d.ts +17 -0
  90. package/templates/static/lib/graphql/resolvers.js +26 -0
  91. package/templates/static/lib/graphql/schema.d.ts +1 -0
  92. package/templates/static/lib/graphql/schema.js +20 -0
  93. package/templates/static/lib/i18n/en.json +4 -0
  94. package/templates/static/lib/i18n/es.json +4 -0
  95. package/templates/static/lib/i18n/index.d.ts +8 -0
  96. package/templates/static/lib/i18n/index.js +32 -0
  97. package/templates/static/lib/import/jen-import.d.ts +27 -0
  98. package/templates/static/lib/import/jen-import.js +128 -0
  99. package/templates/static/lib/index.d.ts +81 -0
  100. package/templates/static/lib/index.js +120 -0
  101. package/templates/static/lib/jdb/engine.d.ts +9 -0
  102. package/templates/static/lib/jdb/engine.js +176 -0
  103. package/templates/static/lib/jdb/index.d.ts +2 -0
  104. package/templates/static/lib/jdb/index.js +19 -0
  105. package/templates/static/lib/jdb/types.d.ts +46 -0
  106. package/templates/static/lib/jdb/types.js +18 -0
  107. package/templates/static/lib/jdb/utils.d.ts +6 -0
  108. package/templates/static/lib/jdb/utils.js +141 -0
  109. package/templates/static/lib/middleware/builtins/body-parser.d.ts +1 -0
  110. package/templates/static/lib/middleware/builtins/body-parser.js +55 -0
  111. package/templates/static/lib/middleware/builtins/cors.d.ts +13 -0
  112. package/templates/static/lib/middleware/builtins/cors.js +67 -0
  113. package/templates/static/lib/middleware/builtins/logger.d.ts +1 -0
  114. package/templates/static/lib/middleware/builtins/logger.js +33 -0
  115. package/templates/static/lib/middleware/builtins/rate-limit.d.ts +5 -0
  116. package/templates/static/lib/middleware/builtins/rate-limit.js +76 -0
  117. package/templates/static/lib/middleware/builtins/request-id.d.ts +1 -0
  118. package/templates/static/lib/middleware/builtins/request-id.js +25 -0
  119. package/templates/static/lib/middleware/builtins/security-headers.d.ts +1 -0
  120. package/templates/static/lib/middleware/builtins/security-headers.js +39 -0
  121. package/templates/static/lib/middleware/context.d.ts +18 -0
  122. package/templates/static/lib/middleware/context.js +50 -0
  123. package/templates/static/lib/middleware/decorators.d.ts +2 -0
  124. package/templates/static/lib/middleware/decorators.js +61 -0
  125. package/templates/static/lib/middleware/errors/handler.d.ts +1 -0
  126. package/templates/static/lib/middleware/errors/handler.js +65 -0
  127. package/templates/static/lib/middleware/errors/http-error.d.ts +5 -0
  128. package/templates/static/lib/middleware/errors/http-error.js +27 -0
  129. package/templates/static/lib/middleware/kernel.d.ts +6 -0
  130. package/templates/static/lib/middleware/kernel.js +39 -0
  131. package/templates/static/lib/middleware/pipeline.d.ts +4 -0
  132. package/templates/static/lib/middleware/pipeline.js +67 -0
  133. package/templates/static/lib/middleware/registry.d.ts +10 -0
  134. package/templates/static/lib/middleware/registry.js +41 -0
  135. package/templates/static/lib/middleware/response.d.ts +13 -0
  136. package/templates/static/lib/middleware/response.js +60 -0
  137. package/templates/static/lib/middleware/types.d.ts +1 -0
  138. package/templates/static/lib/middleware/types.js +18 -0
  139. package/templates/static/lib/middleware/utils/matcher.d.ts +1 -0
  140. package/templates/static/lib/middleware/utils/matcher.js +31 -0
  141. package/templates/static/lib/native/bundle.d.ts +19 -0
  142. package/templates/static/lib/native/bundle.js +39 -0
  143. package/templates/static/lib/native/dev-server.d.ts +6 -0
  144. package/templates/static/lib/native/dev-server.js +38 -0
  145. package/templates/static/lib/native/index.d.ts +30 -0
  146. package/templates/static/lib/native/index.js +48 -0
  147. package/templates/static/lib/native/optimizer.d.ts +17 -0
  148. package/templates/static/lib/native/optimizer.js +37 -0
  149. package/templates/static/lib/native/style-compiler.d.ts +10 -0
  150. package/templates/static/lib/native/style-compiler.js +36 -0
  151. package/templates/static/lib/plugin/loader.d.ts +8 -0
  152. package/templates/static/lib/plugin/loader.js +59 -0
  153. package/templates/static/lib/runtime/client-runtime.d.ts +1 -0
  154. package/templates/static/lib/runtime/client-runtime.js +28 -0
  155. package/templates/static/lib/runtime/hmr.d.ts +1 -0
  156. package/templates/static/lib/runtime/hmr.js +54 -0
  157. package/templates/static/lib/runtime/hydrate.d.ts +1 -0
  158. package/templates/static/lib/runtime/hydrate.js +45 -0
  159. package/templates/static/lib/runtime/island-hydration-client.d.ts +5 -0
  160. package/templates/static/lib/runtime/island-hydration-client.js +132 -0
  161. package/templates/static/lib/runtime/islands.d.ts +46 -0
  162. package/templates/static/lib/runtime/islands.js +89 -0
  163. package/templates/static/lib/runtime/render.d.ts +13 -0
  164. package/templates/static/lib/runtime/render.js +183 -0
  165. package/templates/static/lib/server/api-routes.d.ts +44 -0
  166. package/templates/static/lib/server/api-routes.js +196 -0
  167. package/templates/static/lib/server/api.d.ts +6 -0
  168. package/templates/static/lib/server/api.js +124 -0
  169. package/templates/static/lib/server/app.d.ts +10 -0
  170. package/templates/static/lib/server/app.js +381 -0
  171. package/templates/static/lib/server/runtimeServe.d.ts +4 -0
  172. package/templates/static/lib/server/runtimeServe.js +125 -0
  173. package/templates/static/lib/shared/log.d.ts +5 -0
  174. package/templates/static/lib/shared/log.js +31 -0
  175. package/templates/static/node_modules/.bin/esbuild +3 -8
  176. package/templates/static/node_modules/.bin/esbuild.cmd +17 -0
  177. package/templates/static/node_modules/.bin/esbuild.ps1 +4 -17
  178. package/templates/static/node_modules/.bin/tsc +3 -8
  179. package/templates/static/node_modules/.bin/tsc.cmd +17 -0
  180. package/templates/static/node_modules/.bin/tsc.ps1 +4 -17
  181. package/templates/static/node_modules/.bin/tsserver +3 -8
  182. package/templates/static/node_modules/.bin/tsserver.cmd +17 -0
  183. package/templates/static/node_modules/.bin/tsserver.ps1 +4 -17
  184. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +14 -0
  185. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +11 -0
  186. package/templates/static/node_modules/.package-lock.json +585 -0
  187. package/templates/static/node_modules/@esbuild/win32-x64/README.md +3 -0
  188. package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  189. package/templates/static/node_modules/@esbuild/win32-x64/package.json +20 -0
  190. package/templates/static/node_modules/@jenjs/master/README.md +24 -0
  191. package/templates/static/node_modules/@jenjs/master/index.js +3655 -0
  192. package/templates/static/node_modules/@jenjs/master/package.json +36 -0
  193. package/templates/static/node_modules/@polka/url/build.js +49 -0
  194. package/templates/static/node_modules/@polka/url/build.mjs +47 -0
  195. package/templates/static/node_modules/@polka/url/index.d.ts +11 -0
  196. package/templates/static/node_modules/@polka/url/package.json +30 -0
  197. package/templates/static/node_modules/@polka/url/readme.md +68 -0
  198. package/templates/static/node_modules/@types/node/LICENSE +21 -0
  199. package/templates/static/node_modules/@types/node/README.md +15 -0
  200. package/templates/static/node_modules/@types/node/assert/strict.d.ts +111 -0
  201. package/templates/static/node_modules/@types/node/assert.d.ts +1078 -0
  202. package/templates/static/node_modules/@types/node/async_hooks.d.ts +603 -0
  203. package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +472 -0
  204. package/templates/static/node_modules/@types/node/buffer.d.ts +1934 -0
  205. package/templates/static/node_modules/@types/node/child_process.d.ts +1476 -0
  206. package/templates/static/node_modules/@types/node/cluster.d.ts +578 -0
  207. package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
  208. package/templates/static/node_modules/@types/node/compatibility/index.d.ts +9 -0
  209. package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
  210. package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
  211. package/templates/static/node_modules/@types/node/console.d.ts +452 -0
  212. package/templates/static/node_modules/@types/node/constants.d.ts +21 -0
  213. package/templates/static/node_modules/@types/node/crypto.d.ts +4545 -0
  214. package/templates/static/node_modules/@types/node/dgram.d.ts +600 -0
  215. package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
  216. package/templates/static/node_modules/@types/node/dns/promises.d.ts +503 -0
  217. package/templates/static/node_modules/@types/node/dns.d.ts +923 -0
  218. package/templates/static/node_modules/@types/node/domain.d.ts +170 -0
  219. package/templates/static/node_modules/@types/node/events.d.ts +976 -0
  220. package/templates/static/node_modules/@types/node/fs/promises.d.ts +1295 -0
  221. package/templates/static/node_modules/@types/node/fs.d.ts +4461 -0
  222. package/templates/static/node_modules/@types/node/globals.d.ts +172 -0
  223. package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +38 -0
  224. package/templates/static/node_modules/@types/node/http.d.ts +2089 -0
  225. package/templates/static/node_modules/@types/node/http2.d.ts +2644 -0
  226. package/templates/static/node_modules/@types/node/https.d.ts +579 -0
  227. package/templates/static/node_modules/@types/node/index.d.ts +97 -0
  228. package/templates/static/node_modules/@types/node/inspector.d.ts +253 -0
  229. package/templates/static/node_modules/@types/node/inspector.generated.d.ts +4052 -0
  230. package/templates/static/node_modules/@types/node/module.d.ts +891 -0
  231. package/templates/static/node_modules/@types/node/net.d.ts +1057 -0
  232. package/templates/static/node_modules/@types/node/os.d.ts +506 -0
  233. package/templates/static/node_modules/@types/node/package.json +145 -0
  234. package/templates/static/node_modules/@types/node/path.d.ts +200 -0
  235. package/templates/static/node_modules/@types/node/perf_hooks.d.ts +968 -0
  236. package/templates/static/node_modules/@types/node/process.d.ts +2089 -0
  237. package/templates/static/node_modules/@types/node/punycode.d.ts +117 -0
  238. package/templates/static/node_modules/@types/node/querystring.d.ts +152 -0
  239. package/templates/static/node_modules/@types/node/readline/promises.d.ts +161 -0
  240. package/templates/static/node_modules/@types/node/readline.d.ts +594 -0
  241. package/templates/static/node_modules/@types/node/repl.d.ts +428 -0
  242. package/templates/static/node_modules/@types/node/sea.d.ts +153 -0
  243. package/templates/static/node_modules/@types/node/sqlite.d.ts +721 -0
  244. package/templates/static/node_modules/@types/node/stream/consumers.d.ts +38 -0
  245. package/templates/static/node_modules/@types/node/stream/promises.d.ts +90 -0
  246. package/templates/static/node_modules/@types/node/stream/web.d.ts +622 -0
  247. package/templates/static/node_modules/@types/node/stream.d.ts +1664 -0
  248. package/templates/static/node_modules/@types/node/string_decoder.d.ts +67 -0
  249. package/templates/static/node_modules/@types/node/test.d.ts +2163 -0
  250. package/templates/static/node_modules/@types/node/timers/promises.d.ts +108 -0
  251. package/templates/static/node_modules/@types/node/timers.d.ts +287 -0
  252. package/templates/static/node_modules/@types/node/tls.d.ts +1319 -0
  253. package/templates/static/node_modules/@types/node/trace_events.d.ts +197 -0
  254. package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
  255. package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
  256. package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +97 -0
  257. package/templates/static/node_modules/@types/node/tty.d.ts +208 -0
  258. package/templates/static/node_modules/@types/node/url.d.ts +984 -0
  259. package/templates/static/node_modules/@types/node/util.d.ts +2606 -0
  260. package/templates/static/node_modules/@types/node/v8.d.ts +920 -0
  261. package/templates/static/node_modules/@types/node/vm.d.ts +1000 -0
  262. package/templates/static/node_modules/@types/node/wasi.d.ts +181 -0
  263. package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
  264. package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  265. package/templates/static/node_modules/@types/node/web-globals/events.d.ts +97 -0
  266. package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
  267. package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
  268. package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  269. package/templates/static/node_modules/@types/node/worker_threads.d.ts +784 -0
  270. package/templates/static/node_modules/@types/node/zlib.d.ts +683 -0
  271. package/templates/static/node_modules/esbuild/LICENSE.md +21 -0
  272. package/templates/static/node_modules/esbuild/README.md +3 -0
  273. package/templates/static/node_modules/esbuild/bin/esbuild +223 -0
  274. package/templates/static/node_modules/esbuild/install.js +289 -0
  275. package/templates/static/node_modules/esbuild/lib/main.d.ts +716 -0
  276. package/templates/static/node_modules/esbuild/lib/main.js +2242 -0
  277. package/templates/static/node_modules/esbuild/package.json +49 -0
  278. package/templates/static/node_modules/mrmime/index.d.ts +2 -0
  279. package/templates/static/node_modules/mrmime/index.js +449 -0
  280. package/templates/static/node_modules/mrmime/index.mjs +448 -0
  281. package/templates/static/node_modules/mrmime/license +21 -0
  282. package/templates/static/node_modules/mrmime/package.json +44 -0
  283. package/templates/static/node_modules/mrmime/readme.md +130 -0
  284. package/templates/static/node_modules/preact/LICENSE +21 -0
  285. package/templates/static/node_modules/preact/README.md +185 -0
  286. package/templates/static/node_modules/preact/compat/client.d.ts +13 -0
  287. package/templates/static/node_modules/preact/compat/client.js +21 -0
  288. package/templates/static/node_modules/preact/compat/client.mjs +24 -0
  289. package/templates/static/node_modules/preact/compat/dist/compat.js +2 -0
  290. package/templates/static/node_modules/preact/compat/dist/compat.js.map +1 -0
  291. package/templates/static/node_modules/preact/compat/dist/compat.mjs +2 -0
  292. package/templates/static/node_modules/preact/compat/dist/compat.module.js +2 -0
  293. package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +1 -0
  294. package/templates/static/node_modules/preact/compat/dist/compat.umd.js +2 -0
  295. package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +1 -0
  296. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +3 -0
  297. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +3 -0
  298. package/templates/static/node_modules/preact/compat/jsx-runtime.js +3 -0
  299. package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +3 -0
  300. package/templates/static/node_modules/preact/compat/package.json +55 -0
  301. package/templates/static/node_modules/preact/compat/scheduler.js +15 -0
  302. package/templates/static/node_modules/preact/compat/scheduler.mjs +23 -0
  303. package/templates/static/node_modules/preact/compat/server.browser.js +11 -0
  304. package/templates/static/node_modules/preact/compat/server.js +36 -0
  305. package/templates/static/node_modules/preact/compat/server.mjs +17 -0
  306. package/templates/static/node_modules/preact/compat/src/Children.js +21 -0
  307. package/templates/static/node_modules/preact/compat/src/PureComponent.js +16 -0
  308. package/templates/static/node_modules/preact/compat/src/forwardRef.js +44 -0
  309. package/templates/static/node_modules/preact/compat/src/hooks.js +70 -0
  310. package/templates/static/node_modules/preact/compat/src/index.d.ts +351 -0
  311. package/templates/static/node_modules/preact/compat/src/index.js +238 -0
  312. package/templates/static/node_modules/preact/compat/src/internal.d.ts +48 -0
  313. package/templates/static/node_modules/preact/compat/src/memo.js +35 -0
  314. package/templates/static/node_modules/preact/compat/src/portals.js +78 -0
  315. package/templates/static/node_modules/preact/compat/src/render.js +313 -0
  316. package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +16 -0
  317. package/templates/static/node_modules/preact/compat/src/suspense-list.js +127 -0
  318. package/templates/static/node_modules/preact/compat/src/suspense.d.ts +19 -0
  319. package/templates/static/node_modules/preact/compat/src/suspense.js +291 -0
  320. package/templates/static/node_modules/preact/compat/src/util.js +33 -0
  321. package/templates/static/node_modules/preact/compat/test-utils.js +1 -0
  322. package/templates/static/node_modules/preact/compat/test-utils.mjs +1 -0
  323. package/templates/static/node_modules/preact/debug/dist/debug.js +2 -0
  324. package/templates/static/node_modules/preact/debug/dist/debug.js.map +1 -0
  325. package/templates/static/node_modules/preact/debug/dist/debug.mjs +2 -0
  326. package/templates/static/node_modules/preact/debug/dist/debug.module.js +2 -0
  327. package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +1 -0
  328. package/templates/static/node_modules/preact/debug/dist/debug.umd.js +2 -0
  329. package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +1 -0
  330. package/templates/static/node_modules/preact/debug/package.json +27 -0
  331. package/templates/static/node_modules/preact/debug/src/check-props.js +54 -0
  332. package/templates/static/node_modules/preact/debug/src/component-stack.js +146 -0
  333. package/templates/static/node_modules/preact/debug/src/constants.js +3 -0
  334. package/templates/static/node_modules/preact/debug/src/debug.js +593 -0
  335. package/templates/static/node_modules/preact/debug/src/index.d.ts +23 -0
  336. package/templates/static/node_modules/preact/debug/src/index.js +12 -0
  337. package/templates/static/node_modules/preact/debug/src/internal.d.ts +82 -0
  338. package/templates/static/node_modules/preact/debug/src/util.js +15 -0
  339. package/templates/static/node_modules/preact/devtools/dist/devtools.js +2 -0
  340. package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +1 -0
  341. package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +2 -0
  342. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +2 -0
  343. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +1 -0
  344. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +2 -0
  345. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +1 -0
  346. package/templates/static/node_modules/preact/devtools/package.json +25 -0
  347. package/templates/static/node_modules/preact/devtools/src/devtools.js +21 -0
  348. package/templates/static/node_modules/preact/devtools/src/index.d.ts +8 -0
  349. package/templates/static/node_modules/preact/devtools/src/index.js +15 -0
  350. package/templates/static/node_modules/preact/dist/preact.js +2 -0
  351. package/templates/static/node_modules/preact/dist/preact.js.map +1 -0
  352. package/templates/static/node_modules/preact/dist/preact.min.js +2 -0
  353. package/templates/static/node_modules/preact/dist/preact.min.js.map +1 -0
  354. package/templates/static/node_modules/preact/dist/preact.min.module.js +2 -0
  355. package/templates/static/node_modules/preact/dist/preact.min.module.js.map +1 -0
  356. package/templates/static/node_modules/preact/dist/preact.min.umd.js +2 -0
  357. package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +1 -0
  358. package/templates/static/node_modules/preact/dist/preact.mjs +2 -0
  359. package/templates/static/node_modules/preact/dist/preact.module.js +2 -0
  360. package/templates/static/node_modules/preact/dist/preact.module.js.map +1 -0
  361. package/templates/static/node_modules/preact/dist/preact.umd.js +2 -0
  362. package/templates/static/node_modules/preact/dist/preact.umd.js.map +1 -0
  363. package/templates/static/node_modules/preact/hooks/dist/hooks.js +2 -0
  364. package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +1 -0
  365. package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +2 -0
  366. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +2 -0
  367. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +1 -0
  368. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +2 -0
  369. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +1 -0
  370. package/templates/static/node_modules/preact/hooks/package.json +35 -0
  371. package/templates/static/node_modules/preact/hooks/src/index.d.ts +145 -0
  372. package/templates/static/node_modules/preact/hooks/src/index.js +555 -0
  373. package/templates/static/node_modules/preact/hooks/src/internal.d.ts +103 -0
  374. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +2 -0
  375. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +1 -0
  376. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +2 -0
  377. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +2 -0
  378. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +1 -0
  379. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +2 -0
  380. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +1 -0
  381. package/templates/static/node_modules/preact/jsx-runtime/package.json +28 -0
  382. package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +62 -0
  383. package/templates/static/node_modules/preact/jsx-runtime/src/index.js +206 -0
  384. package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +36 -0
  385. package/templates/static/node_modules/preact/package.json +258 -0
  386. package/templates/static/node_modules/preact/src/cjs.js +3 -0
  387. package/templates/static/node_modules/preact/src/clone-element.js +48 -0
  388. package/templates/static/node_modules/preact/src/component.js +249 -0
  389. package/templates/static/node_modules/preact/src/constants.js +22 -0
  390. package/templates/static/node_modules/preact/src/create-context.js +60 -0
  391. package/templates/static/node_modules/preact/src/create-element.js +97 -0
  392. package/templates/static/node_modules/preact/src/diff/catch-error.js +46 -0
  393. package/templates/static/node_modules/preact/src/diff/children.js +451 -0
  394. package/templates/static/node_modules/preact/src/diff/index.js +684 -0
  395. package/templates/static/node_modules/preact/src/diff/props.js +173 -0
  396. package/templates/static/node_modules/preact/src/dom.d.ts +2476 -0
  397. package/templates/static/node_modules/preact/src/index-5.d.ts +399 -0
  398. package/templates/static/node_modules/preact/src/index.d.ts +402 -0
  399. package/templates/static/node_modules/preact/src/index.js +13 -0
  400. package/templates/static/node_modules/preact/src/internal.d.ts +190 -0
  401. package/templates/static/node_modules/preact/src/jsx.d.ts +2878 -0
  402. package/templates/static/node_modules/preact/src/options.js +16 -0
  403. package/templates/static/node_modules/preact/src/render.js +78 -0
  404. package/templates/static/node_modules/preact/src/util.js +28 -0
  405. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +2 -0
  406. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +1 -0
  407. package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +2 -0
  408. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +2 -0
  409. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +1 -0
  410. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +2 -0
  411. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +1 -0
  412. package/templates/static/node_modules/preact/test-utils/package.json +28 -0
  413. package/templates/static/node_modules/preact/test-utils/src/index.d.ts +3 -0
  414. package/templates/static/node_modules/preact/test-utils/src/index.js +129 -0
  415. package/templates/static/node_modules/preact-render-to-string/LICENSE +21 -0
  416. package/templates/static/node_modules/preact-render-to-string/README.md +149 -0
  417. package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +2 -0
  418. package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +17 -0
  419. package/templates/static/node_modules/preact-render-to-string/dist/index.js +6 -0
  420. package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +1 -0
  421. package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +2 -0
  422. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +2 -0
  423. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +1 -0
  424. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +2 -0
  425. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +1 -0
  426. package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +35 -0
  427. package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +2 -0
  428. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +4 -0
  429. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +1 -0
  430. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +2 -0
  431. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +2 -0
  432. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +1 -0
  433. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +2 -0
  434. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +1 -0
  435. package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +24 -0
  436. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +2 -0
  437. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +1 -0
  438. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +2 -0
  439. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +2 -0
  440. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +1 -0
  441. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +2 -0
  442. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +1 -0
  443. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +884 -0
  444. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +1 -0
  445. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +884 -0
  446. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +884 -0
  447. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +1 -0
  448. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +888 -0
  449. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +1 -0
  450. package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +19 -0
  451. package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +10 -0
  452. package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +24 -0
  453. package/templates/static/node_modules/preact-render-to-string/jsx.js +1 -0
  454. package/templates/static/node_modules/preact-render-to-string/package.json +152 -0
  455. package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +17 -0
  456. package/templates/static/node_modules/preact-render-to-string/src/index.js +764 -0
  457. package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +35 -0
  458. package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +24 -0
  459. package/templates/static/node_modules/preact-render-to-string/src/jsx.js +102 -0
  460. package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +97 -0
  461. package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +62 -0
  462. package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +20 -0
  463. package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +8 -0
  464. package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +208 -0
  465. package/templates/static/node_modules/preact-render-to-string/src/pretty.js +491 -0
  466. package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +19 -0
  467. package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +84 -0
  468. package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +10 -0
  469. package/templates/static/node_modules/preact-render-to-string/src/stream.js +43 -0
  470. package/templates/static/node_modules/preact-render-to-string/typings.json +5 -0
  471. package/templates/static/node_modules/sirv/build.js +197 -0
  472. package/templates/static/node_modules/sirv/build.mjs +197 -0
  473. package/templates/static/node_modules/sirv/index.d.mts +29 -0
  474. package/templates/static/node_modules/sirv/index.d.ts +33 -0
  475. package/templates/static/node_modules/sirv/package.json +40 -0
  476. package/templates/static/node_modules/sirv/readme.md +238 -0
  477. package/templates/static/node_modules/totalist/dist/index.js +24 -0
  478. package/templates/static/node_modules/totalist/dist/index.mjs +22 -0
  479. package/templates/static/node_modules/totalist/index.d.ts +3 -0
  480. package/templates/static/node_modules/totalist/license +21 -0
  481. package/templates/static/node_modules/totalist/package.json +55 -0
  482. package/templates/static/node_modules/totalist/readme.md +109 -0
  483. package/templates/static/node_modules/totalist/sync/index.d.ts +3 -0
  484. package/templates/static/node_modules/totalist/sync/index.js +17 -0
  485. package/templates/static/node_modules/totalist/sync/index.mjs +15 -0
  486. package/templates/static/node_modules/typescript/bin/tsc +2 -0
  487. package/templates/static/node_modules/typescript/bin/tsserver +2 -0
  488. package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  489. package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  490. package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  491. package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  492. package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  493. package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  494. package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  495. package/templates/static/node_modules/typescript/lib/lib.d.ts +22 -0
  496. package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  497. package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  498. package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  499. package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  500. package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  501. package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  502. package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  503. package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  504. package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  505. package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  506. package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  507. package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  508. package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  509. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  510. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  511. package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  512. package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  513. package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  514. package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  515. package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  516. package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  517. package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  518. package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  519. package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  520. package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  521. package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  522. package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  523. package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  524. package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  525. package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  526. package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  527. package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  528. package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  529. package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  530. package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  531. package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  532. package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  533. package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  534. package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  535. package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  536. package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  537. package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  538. package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  539. package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  540. package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  541. package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  542. package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  543. package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  544. package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  545. package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  546. package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  547. package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  548. package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  549. package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  550. package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  551. package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  552. package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  553. package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  554. package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  555. package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  556. package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  557. package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  558. package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  559. package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  560. package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  561. package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  562. package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  563. package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  564. package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  565. package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  566. package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  567. package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  568. package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  569. package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  570. package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  571. package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  572. package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  573. package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  574. package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  575. package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  576. package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  577. package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  578. package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  579. package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  580. package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  581. package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  582. package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  583. package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  584. package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  585. package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  586. package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  587. package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  588. package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  589. package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  590. package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  591. package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  592. package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  593. package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  594. package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  595. package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  596. package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  597. package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  598. package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  599. package/templates/static/node_modules/typescript/lib/tsc.js +8 -0
  600. package/templates/static/node_modules/typescript/lib/tsserver.js +8 -0
  601. package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  602. package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  603. package/templates/static/node_modules/typescript/lib/typescript.d.ts +11437 -0
  604. package/templates/static/package.json +1 -1
  605. package/templates/static/server.js +31 -9
  606. package/templates/static/site/(home).tsx +12 -11
  607. package/templates/static/site/styles/global.scss +78 -43
  608. package/templates/static/tsconfig.json +39 -0
  609. package/templates/static/.esbuild/jen.config.js.map +0 -7
  610. package/templates/static/dist/index.html +0 -1
  611. package/templates/static/dist/styles.css +0 -1
  612. package/templates/static/node_modules/.bin/esbuild.CMD +0 -12
  613. package/templates/static/node_modules/.bin/tsc.CMD +0 -12
  614. package/templates/static/node_modules/.bin/tsserver.CMD +0 -12
  615. package/templates/static/node_modules/.jen/cache/C__Users_rejes_Documents_GitHub_Jen.js_packages_create-jen-app_templates_new-sass-compiler_site_(home).tsx.mjs +0 -8
  616. package/templates/static/node_modules/.jen/cache/C__Users_rejes_Documents_GitHub_Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -8
  617. package/templates/static/site/(home).esbuild.mjs +0 -15
  618. package/templates/static/site/(index).esbuild.mjs +0 -14
@@ -1,3 +1,21 @@
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
+
1
19
  import { dirname, join } from "node:path";
2
20
  import { fileURLToPath, pathToFileURL } from "node:url";
3
21
  import { readdir, stat, readFile, writeFile } from "node:fs/promises";
@@ -5,7 +23,7 @@ import esbuild from "esbuild";
5
23
 
6
24
  const __filename = fileURLToPath(import.meta.url);
7
25
  const currentDir = dirname(__filename);
8
- const rootDir = join(currentDir, "../../../..");
26
+ const rootDir = join(currentDir, ".");
9
27
 
10
28
  // Embedded Minifier Logic
11
29
  const Minifier = {
@@ -25,7 +43,7 @@ const Minifier = {
25
43
  .replace(/\s+/g, " ")
26
44
  .replace(/;\s*}/g, "}")
27
45
  .trim();
28
- }
46
+ },
29
47
  };
30
48
 
31
49
  async function main() {
@@ -33,7 +51,7 @@ async function main() {
33
51
 
34
52
  const configPath = join(currentDir, "jen.config.ts");
35
53
  const outdir = join(currentDir, ".esbuild");
36
-
54
+
37
55
  await esbuild.build({
38
56
  entryPoints: [configPath],
39
57
  outdir,
@@ -44,19 +62,21 @@ async function main() {
44
62
  minify: true,
45
63
  sourcemap: true,
46
64
  loader: { ".ts": "ts" },
47
- logLevel: "silent"
65
+ logLevel: "silent",
48
66
  });
49
67
 
50
68
  const configFile = join(outdir, "jen.config.js");
51
69
  const config = (await import(pathToFileURL(configFile).href)).default;
52
70
 
53
- const buildPath = pathToFileURL(join(rootDir, "build/src/build/build.js")).href;
71
+ const buildPath = pathToFileURL(
72
+ join(rootDir, "lib/build/build.js"),
73
+ ).href;
54
74
  const { buildSite } = await import(buildPath);
55
75
 
56
76
  await buildSite({ config });
57
77
 
58
78
  console.log("[BUILD] Minifying output...");
59
-
79
+
60
80
  async function minifyDir(dir) {
61
81
  try {
62
82
  const files = await readdir(dir);
@@ -74,7 +94,7 @@ async function main() {
74
94
  }
75
95
  }
76
96
  } catch (e) {
77
- if (e.code !== 'ENOENT') console.warn("Minification warning:", e.message);
97
+ if (e.code !== "ENOENT") console.warn("Minification warning:", e.message);
78
98
  }
79
99
  }
80
100
 
@@ -83,4 +103,4 @@ async function main() {
83
103
  console.log("✅ Site built successfully!");
84
104
  }
85
105
 
86
- main().catch(console.error);
106
+ main().catch(console.error);
@@ -1,4 +1,21 @@
1
- import type { FrameworkConfig } from "@jenjs/master";
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
+
2
19
 
3
20
  const config: FrameworkConfig = {
4
21
  siteDir: "site",
@@ -6,30 +23,106 @@ const config: FrameworkConfig = {
6
23
  routes: {
7
24
  fileExtensions: [".tsx", ".jsx", ".ts", ".js"],
8
25
  routeFilePattern: /^\(([^)]+)\)\.(tsx|jsx|ts|js)$/,
9
- enableIndexFallback: true
26
+ enableIndexFallback: true,
10
27
  },
11
28
  rendering: {
12
29
  defaultMode: "ssg",
13
- defaultRevalidateSeconds: 0
30
+ defaultRevalidateSeconds: 0,
14
31
  },
15
32
  inject: {
16
33
  head: [],
17
- bodyEnd: []
34
+ bodyEnd: [],
18
35
  },
19
36
  css: {
20
- globalScss: "site/styles/global.scss"
37
+ globalScss: "site/styles/global.scss",
21
38
  },
22
39
  assets: {
23
40
  publicDir: "site/assets",
24
- cacheControl: "public, max-age=3600"
41
+ cacheControl: "public, max-age=3600",
25
42
  },
26
43
  server: {
27
44
  port: 3001,
28
- hostname: "localhost"
45
+ hostname: "localhost",
29
46
  },
30
47
  dev: {
31
- liveReload: true
32
- }
48
+ liveReload: true,
49
+ },
33
50
  };
34
51
 
35
52
  export default config;
53
+
54
+
55
+ export type RenderMode = "ssg" | "ssr";
56
+
57
+ export interface FrameworkConfig {
58
+ /** Root directory where pages/components live */
59
+ siteDir: string;
60
+
61
+ /** Output directory for build artifacts */
62
+ distDir: string;
63
+
64
+ routes: {
65
+ /** Allowed extensions for route files */
66
+ fileExtensions: string[];
67
+
68
+ /**
69
+ * Pattern for matching route files.
70
+ * Example: (hello).tsx -> "hello"
71
+ */
72
+ routeFilePattern: RegExp;
73
+
74
+ /** If true, /about maps to /about/index */
75
+ enableIndexFallback: boolean;
76
+ };
77
+
78
+ rendering: {
79
+ /** Default rendering strategy */
80
+ defaultMode: RenderMode;
81
+
82
+ /**
83
+ * Default revalidation time in seconds (ISR-like behavior).
84
+ * 0 = never revalidate.
85
+ */
86
+ defaultRevalidateSeconds: number;
87
+ };
88
+
89
+ inject: {
90
+ /**
91
+ * HTML strings to inject into <head>.
92
+ * Example: `<meta charset="utf-8">`
93
+ */
94
+ head: string[];
95
+
96
+ /**
97
+ * HTML strings injected before </body>.
98
+ * Example: `<script src="/app.js"></script>`
99
+ */
100
+ bodyEnd: string[];
101
+ };
102
+
103
+ css: {
104
+ /** Path to global SCSS file loaded into every page */
105
+ globalScss?: string;
106
+ };
107
+
108
+ assets: {
109
+ /** Directory for static public assets */
110
+ publicDir: string;
111
+
112
+ /** Cache-Control header applied to assets */
113
+ cacheControl?: string;
114
+ };
115
+
116
+ server: {
117
+ /** Dev/SSR server port */
118
+ port: number;
119
+
120
+ /** Dev/SSR server hostname */
121
+ hostname: string;
122
+ };
123
+
124
+ dev: {
125
+ /** Enables live reload / HMR behavior */
126
+ liveReload: boolean;
127
+ };
128
+ }
@@ -1,15 +1,33 @@
1
- declare module "@jenjs/master" {
2
- export * from "@jenjs/master";
3
- }
4
-
5
- declare module "@jenjs/master/config" {
6
- export * from "@jenjs/master/config";
7
- }
8
-
9
- declare module "@jenjs/master/compile" {
10
- export * from "@jenjs/master/compile";
11
- }
12
-
13
- declare module "@jenjs/master/render" {
14
- export * from "@jenjs/master/render";
15
- }
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
+
19
+ declare module "@jenjs/master" {
20
+ export * from "@jenjs/master";
21
+ }
22
+
23
+ declare module "@jenjs/master/config" {
24
+ export * from "@jenjs/master/config";
25
+ }
26
+
27
+ declare module "@jenjs/master/compile" {
28
+ export * from "@jenjs/master/compile";
29
+ }
30
+
31
+ declare module "@jenjs/master/render" {
32
+ export * from "@jenjs/master/render";
33
+ }
@@ -0,0 +1,7 @@
1
+ export default function handler(ctx: any): Promise<{
2
+ ok: boolean;
3
+ message: string;
4
+ method: any;
5
+ query: any;
6
+ body: any;
7
+ }>;
@@ -0,0 +1,26 @@
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
+ export default async function handler(ctx) {
19
+ return {
20
+ ok: true,
21
+ message: "Hello from API route",
22
+ method: ctx.method,
23
+ query: ctx.query,
24
+ body: ctx.body,
25
+ };
26
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Secure cookie utilities for session management
3
+ * Ensures cookies have proper security flags
4
+ */
5
+ export interface CookieOptions {
6
+ httpOnly?: boolean;
7
+ secure?: boolean;
8
+ sameSite?: "Strict" | "Lax" | "None";
9
+ maxAge?: number;
10
+ path?: string;
11
+ domain?: string;
12
+ }
13
+ /**
14
+ * Generate secure cookie header value
15
+ */
16
+ export declare function createSecureCookie(name: string, value: string, options?: CookieOptions): string;
17
+ /**
18
+ * Parse cookies from request header
19
+ */
20
+ export declare function parseCookies(cookieHeader: string): Record<string, string>;
21
+ /**
22
+ * Validate session cookie - check all security properties
23
+ */
24
+ export declare function validateSessionCookie(header: string, expectedName?: string): boolean;
@@ -0,0 +1,99 @@
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
+ /**
19
+ * Generate secure cookie header value
20
+ */
21
+ export function createSecureCookie(name, value, options = {}) {
22
+ const defaults = {
23
+ httpOnly: true, // Prevent XSS token theft
24
+ secure: process.env.NODE_ENV === "production", // HTTPS only in production
25
+ sameSite: "Strict", // CSRF protection
26
+ maxAge: 24 * 60 * 60, // 24 hours
27
+ path: "/",
28
+ };
29
+ const opts = { ...defaults, ...options };
30
+ let cookieStr = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
31
+ if (opts.maxAge !== undefined) {
32
+ cookieStr += `; Max-Age=${opts.maxAge}`;
33
+ }
34
+ if (opts.path) {
35
+ cookieStr += `; Path=${opts.path}`;
36
+ }
37
+ if (opts.domain) {
38
+ cookieStr += `; Domain=${opts.domain}`;
39
+ }
40
+ if (opts.secure) {
41
+ cookieStr += "; Secure";
42
+ }
43
+ if (opts.httpOnly) {
44
+ cookieStr += "; HttpOnly";
45
+ }
46
+ if (opts.sameSite) {
47
+ cookieStr += `; SameSite=${opts.sameSite}`;
48
+ }
49
+ return cookieStr;
50
+ }
51
+ /**
52
+ * Parse cookies from request header
53
+ */
54
+ export function parseCookies(cookieHeader) {
55
+ const cookies = {};
56
+ if (!cookieHeader || !cookieHeader.trim())
57
+ return cookies;
58
+ cookieHeader.split(";").forEach((cookie) => {
59
+ const trimmed = cookie.trim();
60
+ if (!trimmed)
61
+ return;
62
+ const eqIndex = trimmed.indexOf("=");
63
+ if (eqIndex === -1)
64
+ return;
65
+ const name = trimmed.substring(0, eqIndex).trim();
66
+ const value = trimmed.substring(eqIndex + 1).trim();
67
+ if (name && value) {
68
+ try {
69
+ cookies[decodeURIComponent(name)] = decodeURIComponent(value);
70
+ }
71
+ catch (err) {
72
+ // Skip cookies with invalid URI encoding
73
+ console.warn(`Failed to decode cookie ${name}:`, err instanceof Error ? err.message : String(err));
74
+ }
75
+ }
76
+ });
77
+ return cookies;
78
+ }
79
+ /**
80
+ * Validate session cookie - check all security properties
81
+ */
82
+ export function validateSessionCookie(header, expectedName = "sessionId") {
83
+ if (!header)
84
+ return false;
85
+ const parts = header.split(";").map((p) => p.trim());
86
+ const [cookiePair, ...flags] = parts;
87
+ if (!cookiePair || !cookiePair.includes("="))
88
+ return false;
89
+ const [name] = cookiePair.split("=");
90
+ if (decodeURIComponent(name) !== expectedName)
91
+ return false;
92
+ // Check required security flags
93
+ const hasHttpOnly = flags.some((f) => f.toLowerCase() === "httponly");
94
+ const hasSameSite = flags.some((f) => f.toLowerCase().startsWith("samesite"));
95
+ const isSecure = process.env.NODE_ENV === "production"
96
+ ? flags.some((f) => f.toLowerCase() === "secure")
97
+ : true;
98
+ return hasHttpOnly && hasSameSite && isSecure;
99
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./jwt";
2
+ export * from "./session";
@@ -0,0 +1,19 @@
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
+ export * from "./jwt";
19
+ export * from "./session";
@@ -0,0 +1,2 @@
1
+ export declare function signToken(payload: object, expiresIn?: string): void;
2
+ export declare function verifyToken(token: string): void;
@@ -0,0 +1,30 @@
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
+ // JWT token utilities - external JWT library not included
19
+ // Users should implement with their own jwt library (e.g., npm install jsonwebtoken)
20
+ const SECRET = process.env.JWT_SECRET;
21
+ // Validate JWT_SECRET is configured
22
+ if (!SECRET) {
23
+ throw new Error("CRITICAL: JWT_SECRET environment variable is required. Set JWT_SECRET in your .env file or environment.");
24
+ }
25
+ export function signToken(payload, expiresIn = "1h") {
26
+ throw new Error("JWT implementation requires external library. Install: npm install jsonwebtoken");
27
+ }
28
+ export function verifyToken(token) {
29
+ throw new Error("JWT implementation requires external library. Install: npm install jsonwebtoken");
30
+ }
@@ -0,0 +1,44 @@
1
+ interface SessionData {
2
+ userId: string;
3
+ createdAt: number;
4
+ expiresAt: number;
5
+ [key: string]: any;
6
+ }
7
+ /**
8
+ * In-memory session manager
9
+ * WARNING: Sessions are lost on server restart
10
+ * For production, use persistent storage (Redis, Database, etc.)
11
+ */
12
+ export declare class SessionManager {
13
+ private sessions;
14
+ constructor();
15
+ /**
16
+ * Create a new session with automatic expiration
17
+ */
18
+ createSession(userId: string, data?: Record<string, any>): string;
19
+ /**
20
+ * Get session with expiration check
21
+ */
22
+ getSession(sessionId: string): SessionData | null;
23
+ /**
24
+ * Destroy session immediately
25
+ */
26
+ destroySession(sessionId: string): void;
27
+ /**
28
+ * Verify session is valid and return user ID
29
+ */
30
+ verifySession(sessionId: string): string | null;
31
+ /**
32
+ * Update session expiration
33
+ */
34
+ refreshSession(sessionId: string): boolean;
35
+ /**
36
+ * Generate cryptographically secure session ID
37
+ */
38
+ private generateSecureSessionId;
39
+ /**
40
+ * Clean up expired sessions
41
+ */
42
+ private cleanupExpiredSessions;
43
+ }
44
+ export {};
@@ -0,0 +1,111 @@
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
+ const SESSION_TIMEOUT = parseInt(process.env.SESSION_TIMEOUT ?? "86400000", 10); // 24 hours default
19
+ /**
20
+ * In-memory session manager
21
+ * WARNING: Sessions are lost on server restart
22
+ * For production, use persistent storage (Redis, Database, etc.)
23
+ */
24
+ export class SessionManager {
25
+ sessions = new Map();
26
+ constructor() {
27
+ // Cleanup expired sessions every 30 minutes
28
+ setInterval(() => this.cleanupExpiredSessions(), 30 * 60 * 1000);
29
+ }
30
+ /**
31
+ * Create a new session with automatic expiration
32
+ */
33
+ createSession(userId, data = {}) {
34
+ // Validate userId
35
+ if (!userId || typeof userId !== "string" || userId.length > 255) {
36
+ throw new Error("Invalid userId");
37
+ }
38
+ const sessionId = this.generateSecureSessionId();
39
+ const now = Date.now();
40
+ const session = {
41
+ userId,
42
+ createdAt: now,
43
+ expiresAt: now + SESSION_TIMEOUT,
44
+ ...data,
45
+ };
46
+ this.sessions.set(sessionId, session);
47
+ return sessionId;
48
+ }
49
+ /**
50
+ * Get session with expiration check
51
+ */
52
+ getSession(sessionId) {
53
+ if (!sessionId)
54
+ return null;
55
+ const session = this.sessions.get(sessionId);
56
+ if (!session)
57
+ return null;
58
+ // Check if session expired
59
+ if (Date.now() > session.expiresAt) {
60
+ this.sessions.delete(sessionId);
61
+ return null;
62
+ }
63
+ return session;
64
+ }
65
+ /**
66
+ * Destroy session immediately
67
+ */
68
+ destroySession(sessionId) {
69
+ this.sessions.delete(sessionId);
70
+ }
71
+ /**
72
+ * Verify session is valid and return user ID
73
+ */
74
+ verifySession(sessionId) {
75
+ const session = this.getSession(sessionId);
76
+ return session?.userId ?? null;
77
+ }
78
+ /**
79
+ * Update session expiration
80
+ */
81
+ refreshSession(sessionId) {
82
+ const session = this.getSession(sessionId);
83
+ if (!session)
84
+ return false;
85
+ session.expiresAt = Date.now() + SESSION_TIMEOUT;
86
+ return true;
87
+ }
88
+ /**
89
+ * Generate cryptographically secure session ID
90
+ */
91
+ generateSecureSessionId() {
92
+ // In production, use crypto.randomBytes
93
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
94
+ let result = "";
95
+ for (let i = 0; i < 32; i++) {
96
+ result += chars.charAt(Math.floor(Math.random() * chars.length));
97
+ }
98
+ return result;
99
+ }
100
+ /**
101
+ * Clean up expired sessions
102
+ */
103
+ cleanupExpiredSessions() {
104
+ const now = Date.now();
105
+ for (const [sessionId, session] of this.sessions.entries()) {
106
+ if (now > session.expiresAt) {
107
+ this.sessions.delete(sessionId);
108
+ }
109
+ }
110
+ }
111
+ }
@@ -0,0 +1,10 @@
1
+ export declare class AssetHasher {
2
+ /**
3
+ * Calculate hash of file content
4
+ */
5
+ static hashContent(content: string | Buffer): string;
6
+ /**
7
+ * Rename file to include hash (e.g. style.css -> style.a1b2c3.css)
8
+ */
9
+ static hashFile(filePath: string): string;
10
+ }