create-jen-app 1.2.1 → 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 (589) 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/package.json +5 -1
  157. package/templates/static/server.js +4 -6
  158. package/templates/static/site/(home).tsx +30 -12
  159. package/templates/static/site/styles/global.scss +89 -78
  160. package/templates/static/tsconfig.json +39 -39
  161. package/templates/static/node_modules/.bin/esbuild +0 -16
  162. package/templates/static/node_modules/.bin/esbuild.cmd +0 -17
  163. package/templates/static/node_modules/.bin/esbuild.ps1 +0 -28
  164. package/templates/static/node_modules/.bin/tsc +0 -16
  165. package/templates/static/node_modules/.bin/tsc.cmd +0 -17
  166. package/templates/static/node_modules/.bin/tsc.ps1 +0 -28
  167. package/templates/static/node_modules/.bin/tsserver +0 -16
  168. package/templates/static/node_modules/.bin/tsserver.cmd +0 -17
  169. package/templates/static/node_modules/.bin/tsserver.ps1 +0 -28
  170. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -14
  171. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +0 -11
  172. package/templates/static/node_modules/.package-lock.json +0 -585
  173. package/templates/static/node_modules/@esbuild/win32-x64/README.md +0 -3
  174. package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  175. package/templates/static/node_modules/@esbuild/win32-x64/package.json +0 -20
  176. package/templates/static/node_modules/@jenjs/master/README.md +0 -24
  177. package/templates/static/node_modules/@jenjs/master/index.js +0 -3655
  178. package/templates/static/node_modules/@jenjs/master/package.json +0 -36
  179. package/templates/static/node_modules/@polka/url/build.js +0 -49
  180. package/templates/static/node_modules/@polka/url/build.mjs +0 -47
  181. package/templates/static/node_modules/@polka/url/index.d.ts +0 -11
  182. package/templates/static/node_modules/@polka/url/package.json +0 -30
  183. package/templates/static/node_modules/@polka/url/readme.md +0 -68
  184. package/templates/static/node_modules/@types/node/LICENSE +0 -21
  185. package/templates/static/node_modules/@types/node/README.md +0 -15
  186. package/templates/static/node_modules/@types/node/assert/strict.d.ts +0 -111
  187. package/templates/static/node_modules/@types/node/assert.d.ts +0 -1078
  188. package/templates/static/node_modules/@types/node/async_hooks.d.ts +0 -603
  189. package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  190. package/templates/static/node_modules/@types/node/buffer.d.ts +0 -1934
  191. package/templates/static/node_modules/@types/node/child_process.d.ts +0 -1476
  192. package/templates/static/node_modules/@types/node/cluster.d.ts +0 -578
  193. package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  194. package/templates/static/node_modules/@types/node/compatibility/index.d.ts +0 -9
  195. package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  196. package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  197. package/templates/static/node_modules/@types/node/console.d.ts +0 -452
  198. package/templates/static/node_modules/@types/node/constants.d.ts +0 -21
  199. package/templates/static/node_modules/@types/node/crypto.d.ts +0 -4545
  200. package/templates/static/node_modules/@types/node/dgram.d.ts +0 -600
  201. package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  202. package/templates/static/node_modules/@types/node/dns/promises.d.ts +0 -503
  203. package/templates/static/node_modules/@types/node/dns.d.ts +0 -923
  204. package/templates/static/node_modules/@types/node/domain.d.ts +0 -170
  205. package/templates/static/node_modules/@types/node/events.d.ts +0 -976
  206. package/templates/static/node_modules/@types/node/fs/promises.d.ts +0 -1295
  207. package/templates/static/node_modules/@types/node/fs.d.ts +0 -4461
  208. package/templates/static/node_modules/@types/node/globals.d.ts +0 -172
  209. package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  210. package/templates/static/node_modules/@types/node/http.d.ts +0 -2089
  211. package/templates/static/node_modules/@types/node/http2.d.ts +0 -2644
  212. package/templates/static/node_modules/@types/node/https.d.ts +0 -579
  213. package/templates/static/node_modules/@types/node/index.d.ts +0 -97
  214. package/templates/static/node_modules/@types/node/inspector.d.ts +0 -253
  215. package/templates/static/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  216. package/templates/static/node_modules/@types/node/module.d.ts +0 -891
  217. package/templates/static/node_modules/@types/node/net.d.ts +0 -1057
  218. package/templates/static/node_modules/@types/node/os.d.ts +0 -506
  219. package/templates/static/node_modules/@types/node/package.json +0 -145
  220. package/templates/static/node_modules/@types/node/path.d.ts +0 -200
  221. package/templates/static/node_modules/@types/node/perf_hooks.d.ts +0 -968
  222. package/templates/static/node_modules/@types/node/process.d.ts +0 -2089
  223. package/templates/static/node_modules/@types/node/punycode.d.ts +0 -117
  224. package/templates/static/node_modules/@types/node/querystring.d.ts +0 -152
  225. package/templates/static/node_modules/@types/node/readline/promises.d.ts +0 -161
  226. package/templates/static/node_modules/@types/node/readline.d.ts +0 -594
  227. package/templates/static/node_modules/@types/node/repl.d.ts +0 -428
  228. package/templates/static/node_modules/@types/node/sea.d.ts +0 -153
  229. package/templates/static/node_modules/@types/node/sqlite.d.ts +0 -721
  230. package/templates/static/node_modules/@types/node/stream/consumers.d.ts +0 -38
  231. package/templates/static/node_modules/@types/node/stream/promises.d.ts +0 -90
  232. package/templates/static/node_modules/@types/node/stream/web.d.ts +0 -622
  233. package/templates/static/node_modules/@types/node/stream.d.ts +0 -1664
  234. package/templates/static/node_modules/@types/node/string_decoder.d.ts +0 -67
  235. package/templates/static/node_modules/@types/node/test.d.ts +0 -2163
  236. package/templates/static/node_modules/@types/node/timers/promises.d.ts +0 -108
  237. package/templates/static/node_modules/@types/node/timers.d.ts +0 -287
  238. package/templates/static/node_modules/@types/node/tls.d.ts +0 -1319
  239. package/templates/static/node_modules/@types/node/trace_events.d.ts +0 -197
  240. package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  241. package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  242. package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  243. package/templates/static/node_modules/@types/node/tty.d.ts +0 -208
  244. package/templates/static/node_modules/@types/node/url.d.ts +0 -984
  245. package/templates/static/node_modules/@types/node/util.d.ts +0 -2606
  246. package/templates/static/node_modules/@types/node/v8.d.ts +0 -920
  247. package/templates/static/node_modules/@types/node/vm.d.ts +0 -1000
  248. package/templates/static/node_modules/@types/node/wasi.d.ts +0 -181
  249. package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  250. package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  251. package/templates/static/node_modules/@types/node/web-globals/events.d.ts +0 -97
  252. package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  253. package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  254. package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  255. package/templates/static/node_modules/@types/node/worker_threads.d.ts +0 -784
  256. package/templates/static/node_modules/@types/node/zlib.d.ts +0 -683
  257. package/templates/static/node_modules/esbuild/LICENSE.md +0 -21
  258. package/templates/static/node_modules/esbuild/README.md +0 -3
  259. package/templates/static/node_modules/esbuild/bin/esbuild +0 -223
  260. package/templates/static/node_modules/esbuild/install.js +0 -289
  261. package/templates/static/node_modules/esbuild/lib/main.d.ts +0 -716
  262. package/templates/static/node_modules/esbuild/lib/main.js +0 -2242
  263. package/templates/static/node_modules/esbuild/package.json +0 -49
  264. package/templates/static/node_modules/mrmime/index.d.ts +0 -2
  265. package/templates/static/node_modules/mrmime/index.js +0 -449
  266. package/templates/static/node_modules/mrmime/index.mjs +0 -448
  267. package/templates/static/node_modules/mrmime/license +0 -21
  268. package/templates/static/node_modules/mrmime/package.json +0 -44
  269. package/templates/static/node_modules/mrmime/readme.md +0 -130
  270. package/templates/static/node_modules/preact/LICENSE +0 -21
  271. package/templates/static/node_modules/preact/README.md +0 -185
  272. package/templates/static/node_modules/preact/compat/client.d.ts +0 -13
  273. package/templates/static/node_modules/preact/compat/client.js +0 -21
  274. package/templates/static/node_modules/preact/compat/client.mjs +0 -24
  275. package/templates/static/node_modules/preact/compat/dist/compat.js +0 -2
  276. package/templates/static/node_modules/preact/compat/dist/compat.js.map +0 -1
  277. package/templates/static/node_modules/preact/compat/dist/compat.mjs +0 -2
  278. package/templates/static/node_modules/preact/compat/dist/compat.module.js +0 -2
  279. package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +0 -1
  280. package/templates/static/node_modules/preact/compat/dist/compat.umd.js +0 -2
  281. package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
  282. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
  283. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
  284. package/templates/static/node_modules/preact/compat/jsx-runtime.js +0 -3
  285. package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +0 -3
  286. package/templates/static/node_modules/preact/compat/package.json +0 -55
  287. package/templates/static/node_modules/preact/compat/scheduler.js +0 -15
  288. package/templates/static/node_modules/preact/compat/scheduler.mjs +0 -23
  289. package/templates/static/node_modules/preact/compat/server.browser.js +0 -11
  290. package/templates/static/node_modules/preact/compat/server.js +0 -36
  291. package/templates/static/node_modules/preact/compat/server.mjs +0 -17
  292. package/templates/static/node_modules/preact/compat/src/Children.js +0 -21
  293. package/templates/static/node_modules/preact/compat/src/PureComponent.js +0 -16
  294. package/templates/static/node_modules/preact/compat/src/forwardRef.js +0 -44
  295. package/templates/static/node_modules/preact/compat/src/hooks.js +0 -70
  296. package/templates/static/node_modules/preact/compat/src/index.d.ts +0 -351
  297. package/templates/static/node_modules/preact/compat/src/index.js +0 -238
  298. package/templates/static/node_modules/preact/compat/src/internal.d.ts +0 -48
  299. package/templates/static/node_modules/preact/compat/src/memo.js +0 -35
  300. package/templates/static/node_modules/preact/compat/src/portals.js +0 -78
  301. package/templates/static/node_modules/preact/compat/src/render.js +0 -313
  302. package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +0 -16
  303. package/templates/static/node_modules/preact/compat/src/suspense-list.js +0 -127
  304. package/templates/static/node_modules/preact/compat/src/suspense.d.ts +0 -19
  305. package/templates/static/node_modules/preact/compat/src/suspense.js +0 -291
  306. package/templates/static/node_modules/preact/compat/src/util.js +0 -33
  307. package/templates/static/node_modules/preact/compat/test-utils.js +0 -1
  308. package/templates/static/node_modules/preact/compat/test-utils.mjs +0 -1
  309. package/templates/static/node_modules/preact/debug/dist/debug.js +0 -2
  310. package/templates/static/node_modules/preact/debug/dist/debug.js.map +0 -1
  311. package/templates/static/node_modules/preact/debug/dist/debug.mjs +0 -2
  312. package/templates/static/node_modules/preact/debug/dist/debug.module.js +0 -2
  313. package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +0 -1
  314. package/templates/static/node_modules/preact/debug/dist/debug.umd.js +0 -2
  315. package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
  316. package/templates/static/node_modules/preact/debug/package.json +0 -27
  317. package/templates/static/node_modules/preact/debug/src/check-props.js +0 -54
  318. package/templates/static/node_modules/preact/debug/src/component-stack.js +0 -146
  319. package/templates/static/node_modules/preact/debug/src/constants.js +0 -3
  320. package/templates/static/node_modules/preact/debug/src/debug.js +0 -593
  321. package/templates/static/node_modules/preact/debug/src/index.d.ts +0 -23
  322. package/templates/static/node_modules/preact/debug/src/index.js +0 -12
  323. package/templates/static/node_modules/preact/debug/src/internal.d.ts +0 -82
  324. package/templates/static/node_modules/preact/debug/src/util.js +0 -15
  325. package/templates/static/node_modules/preact/devtools/dist/devtools.js +0 -2
  326. package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +0 -1
  327. package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +0 -2
  328. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +0 -2
  329. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
  330. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
  331. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
  332. package/templates/static/node_modules/preact/devtools/package.json +0 -25
  333. package/templates/static/node_modules/preact/devtools/src/devtools.js +0 -21
  334. package/templates/static/node_modules/preact/devtools/src/index.d.ts +0 -8
  335. package/templates/static/node_modules/preact/devtools/src/index.js +0 -15
  336. package/templates/static/node_modules/preact/dist/preact.js +0 -2
  337. package/templates/static/node_modules/preact/dist/preact.js.map +0 -1
  338. package/templates/static/node_modules/preact/dist/preact.min.js +0 -2
  339. package/templates/static/node_modules/preact/dist/preact.min.js.map +0 -1
  340. package/templates/static/node_modules/preact/dist/preact.min.module.js +0 -2
  341. package/templates/static/node_modules/preact/dist/preact.min.module.js.map +0 -1
  342. package/templates/static/node_modules/preact/dist/preact.min.umd.js +0 -2
  343. package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +0 -1
  344. package/templates/static/node_modules/preact/dist/preact.mjs +0 -2
  345. package/templates/static/node_modules/preact/dist/preact.module.js +0 -2
  346. package/templates/static/node_modules/preact/dist/preact.module.js.map +0 -1
  347. package/templates/static/node_modules/preact/dist/preact.umd.js +0 -2
  348. package/templates/static/node_modules/preact/dist/preact.umd.js.map +0 -1
  349. package/templates/static/node_modules/preact/hooks/dist/hooks.js +0 -2
  350. package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +0 -1
  351. package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +0 -2
  352. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +0 -2
  353. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
  354. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
  355. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
  356. package/templates/static/node_modules/preact/hooks/package.json +0 -35
  357. package/templates/static/node_modules/preact/hooks/src/index.d.ts +0 -145
  358. package/templates/static/node_modules/preact/hooks/src/index.js +0 -555
  359. package/templates/static/node_modules/preact/hooks/src/internal.d.ts +0 -103
  360. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
  361. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
  362. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
  363. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
  364. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
  365. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
  366. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
  367. package/templates/static/node_modules/preact/jsx-runtime/package.json +0 -28
  368. package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +0 -62
  369. package/templates/static/node_modules/preact/jsx-runtime/src/index.js +0 -206
  370. package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +0 -36
  371. package/templates/static/node_modules/preact/package.json +0 -258
  372. package/templates/static/node_modules/preact/src/cjs.js +0 -3
  373. package/templates/static/node_modules/preact/src/clone-element.js +0 -48
  374. package/templates/static/node_modules/preact/src/component.js +0 -249
  375. package/templates/static/node_modules/preact/src/constants.js +0 -22
  376. package/templates/static/node_modules/preact/src/create-context.js +0 -60
  377. package/templates/static/node_modules/preact/src/create-element.js +0 -97
  378. package/templates/static/node_modules/preact/src/diff/catch-error.js +0 -46
  379. package/templates/static/node_modules/preact/src/diff/children.js +0 -451
  380. package/templates/static/node_modules/preact/src/diff/index.js +0 -684
  381. package/templates/static/node_modules/preact/src/diff/props.js +0 -173
  382. package/templates/static/node_modules/preact/src/dom.d.ts +0 -2476
  383. package/templates/static/node_modules/preact/src/index-5.d.ts +0 -399
  384. package/templates/static/node_modules/preact/src/index.d.ts +0 -402
  385. package/templates/static/node_modules/preact/src/index.js +0 -13
  386. package/templates/static/node_modules/preact/src/internal.d.ts +0 -190
  387. package/templates/static/node_modules/preact/src/jsx.d.ts +0 -2878
  388. package/templates/static/node_modules/preact/src/options.js +0 -16
  389. package/templates/static/node_modules/preact/src/render.js +0 -78
  390. package/templates/static/node_modules/preact/src/util.js +0 -28
  391. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +0 -2
  392. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
  393. package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
  394. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
  395. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
  396. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
  397. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
  398. package/templates/static/node_modules/preact/test-utils/package.json +0 -28
  399. package/templates/static/node_modules/preact/test-utils/src/index.d.ts +0 -3
  400. package/templates/static/node_modules/preact/test-utils/src/index.js +0 -129
  401. package/templates/static/node_modules/preact-render-to-string/LICENSE +0 -21
  402. package/templates/static/node_modules/preact-render-to-string/README.md +0 -149
  403. package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
  404. package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +0 -17
  405. package/templates/static/node_modules/preact-render-to-string/dist/index.js +0 -6
  406. package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +0 -1
  407. package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +0 -2
  408. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +0 -2
  409. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
  410. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +0 -2
  411. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +0 -1
  412. package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +0 -35
  413. package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +0 -2
  414. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +0 -4
  415. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +0 -1
  416. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +0 -2
  417. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +0 -2
  418. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +0 -1
  419. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +0 -2
  420. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +0 -1
  421. package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -24
  422. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +0 -2
  423. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +0 -1
  424. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +0 -2
  425. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +0 -2
  426. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +0 -1
  427. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +0 -2
  428. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +0 -1
  429. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +0 -884
  430. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +0 -1
  431. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +0 -884
  432. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +0 -884
  433. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +0 -1
  434. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +0 -888
  435. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +0 -1
  436. package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +0 -19
  437. package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +0 -10
  438. package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +0 -24
  439. package/templates/static/node_modules/preact-render-to-string/jsx.js +0 -1
  440. package/templates/static/node_modules/preact-render-to-string/package.json +0 -152
  441. package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +0 -17
  442. package/templates/static/node_modules/preact-render-to-string/src/index.js +0 -764
  443. package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +0 -35
  444. package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +0 -24
  445. package/templates/static/node_modules/preact-render-to-string/src/jsx.js +0 -102
  446. package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +0 -97
  447. package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +0 -62
  448. package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +0 -20
  449. package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +0 -8
  450. package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +0 -208
  451. package/templates/static/node_modules/preact-render-to-string/src/pretty.js +0 -491
  452. package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +0 -19
  453. package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +0 -84
  454. package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +0 -10
  455. package/templates/static/node_modules/preact-render-to-string/src/stream.js +0 -43
  456. package/templates/static/node_modules/preact-render-to-string/typings.json +0 -5
  457. package/templates/static/node_modules/sirv/build.js +0 -197
  458. package/templates/static/node_modules/sirv/build.mjs +0 -197
  459. package/templates/static/node_modules/sirv/index.d.mts +0 -29
  460. package/templates/static/node_modules/sirv/index.d.ts +0 -33
  461. package/templates/static/node_modules/sirv/package.json +0 -40
  462. package/templates/static/node_modules/sirv/readme.md +0 -238
  463. package/templates/static/node_modules/totalist/dist/index.js +0 -24
  464. package/templates/static/node_modules/totalist/dist/index.mjs +0 -22
  465. package/templates/static/node_modules/totalist/index.d.ts +0 -3
  466. package/templates/static/node_modules/totalist/license +0 -21
  467. package/templates/static/node_modules/totalist/package.json +0 -55
  468. package/templates/static/node_modules/totalist/readme.md +0 -109
  469. package/templates/static/node_modules/totalist/sync/index.d.ts +0 -3
  470. package/templates/static/node_modules/totalist/sync/index.js +0 -17
  471. package/templates/static/node_modules/totalist/sync/index.mjs +0 -15
  472. package/templates/static/node_modules/typescript/bin/tsc +0 -2
  473. package/templates/static/node_modules/typescript/bin/tsserver +0 -2
  474. package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  475. package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  476. package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  477. package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  478. package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  479. package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  480. package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  481. package/templates/static/node_modules/typescript/lib/lib.d.ts +0 -22
  482. package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  483. package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  484. package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  485. package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  486. package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  487. package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  488. package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  489. package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  490. package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  491. package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  492. package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  493. package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  494. package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  495. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  496. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  497. package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  498. package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  499. package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  500. package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  501. package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  502. package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  503. package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  504. package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  505. package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  506. package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  507. package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  508. package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  509. package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  510. package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  511. package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  512. package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  513. package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  514. package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  515. package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  516. package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  517. package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  518. package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  519. package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  520. package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  521. package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  522. package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  523. package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  524. package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  525. package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  526. package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  527. package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  528. package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  529. package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  530. package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  531. package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  532. package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  533. package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  534. package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  535. package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  536. package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  537. package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  538. package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  539. package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  540. package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  541. package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  542. package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  543. package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  544. package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  545. package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  546. package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  547. package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  548. package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  549. package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  550. package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  551. package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  552. package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  553. package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  554. package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  555. package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  556. package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  557. package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  558. package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  559. package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  560. package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  561. package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  562. package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  563. package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  564. package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  565. package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  566. package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  567. package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  568. package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  569. package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  570. package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  571. package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  572. package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  573. package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  574. package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  575. package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  576. package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  577. package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  578. package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  579. package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  580. package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  581. package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  582. package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  583. package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  584. package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  585. package/templates/static/node_modules/typescript/lib/tsc.js +0 -8
  586. package/templates/static/node_modules/typescript/lib/tsserver.js +0 -8
  587. package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  588. package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  589. package/templates/static/node_modules/typescript/lib/typescript.d.ts +0 -11437
@@ -15,41 +15,59 @@
15
15
  * You should have received a copy of the GNU General Public License
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
+ /**
19
+ * Request body parsing middleware.
20
+ * Reads and parses the request body based on Content-Type header.
21
+ * Supports JSON, URL-encoded form data, and plain text.
22
+ *
23
+ * GET and HEAD requests are passed through without parsing since they have no body.
24
+ * Parsed body is available in ctx.body. If parsing fails, the raw string is stored
25
+ * and an error message is attached to ctx.parseError for error handling downstream.
26
+ *
27
+ * @returns Middleware function.
28
+ *
29
+ * @example
30
+ * kernel.use(bodyParser);
31
+ * // ctx.body is now populated with parsed request body
32
+ */
18
33
  export async function bodyParser(ctx, next) {
19
- if (ctx.req.method === "GET" || ctx.req.method === "HEAD") {
20
- return next();
21
- }
22
- const chunks = [];
23
- await new Promise((resolve, reject) => {
24
- ctx.req.on("data", (chunk) => chunks.push(chunk));
25
- ctx.req.on("end", () => {
26
- const data = Buffer.concat(chunks).toString();
27
- const contentType = ctx.req.headers["content-type"] || "";
28
- try {
29
- if (contentType.includes("application/json")) {
30
- if (!data || data.trim() === "") {
31
- ctx.body = {};
32
- }
33
- else {
34
- ctx.body = JSON.parse(data);
35
- }
36
- }
37
- else if (contentType.includes("application/x-www-form-urlencoded")) {
38
- ctx.body = new URLSearchParams(data);
39
- }
40
- else {
41
- ctx.body = data;
42
- }
43
- }
44
- catch (e) {
45
- const error = e instanceof Error ? e.message : String(e);
46
- console.error("Body parser error:", error);
47
- ctx.parseError = error;
48
- ctx.body = data; // Raw string on failure
49
- }
50
- resolve();
51
- });
52
- ctx.req.on("error", reject);
34
+ // GET and HEAD requests have no body; skip parsing
35
+ if (ctx.req.method === "GET" || ctx.req.method === "HEAD") {
36
+ return next();
37
+ }
38
+ // Collect all data chunks from the request stream
39
+ const chunks = [];
40
+ await new Promise((resolve, reject) => {
41
+ ctx.req.on("data", (chunk) => chunks.push(chunk));
42
+ ctx.req.on("end", () => {
43
+ const data = Buffer.concat(chunks).toString();
44
+ const contentType = ctx.req.headers["content-type"] || "";
45
+ try {
46
+ // Parse based on Content-Type header
47
+ if (contentType.includes("application/json")) {
48
+ // Parse JSON, allowing empty bodies
49
+ if (!data || data.trim() === "") {
50
+ ctx.body = {};
51
+ } else {
52
+ ctx.body = JSON.parse(data);
53
+ }
54
+ } else if (contentType.includes("application/x-www-form-urlencoded")) {
55
+ // Parse URL-encoded form data as URLSearchParams
56
+ ctx.body = new URLSearchParams(data);
57
+ } else {
58
+ // Store raw string for other content types
59
+ ctx.body = data;
60
+ }
61
+ } catch (e) {
62
+ // On parse error, store the error and fall back to raw string
63
+ const error = e instanceof Error ? e.message : String(e);
64
+ console.error("Body parser error:", error);
65
+ ctx.parseError = error;
66
+ ctx.body = data; // Raw string on failure
67
+ }
68
+ resolve();
53
69
  });
54
- await next();
70
+ ctx.req.on("error", reject);
71
+ });
72
+ await next();
55
73
  }
@@ -3,11 +3,13 @@
3
3
  * Prevents insecure origin sharing with credentials
4
4
  */
5
5
  interface CORSOptions {
6
- origin?: string | string[] | ((origin: string) => boolean) | "*";
7
- methods?: string[];
8
- allowedHeaders?: string[];
9
- credentials?: boolean;
10
- maxAge?: number;
6
+ origin?: string | string[] | ((origin: string) => boolean) | "*";
7
+ methods?: string[];
8
+ allowedHeaders?: string[];
9
+ credentials?: boolean;
10
+ maxAge?: number;
11
11
  }
12
- export declare function cors(options?: CORSOptions): (ctx: any, next: () => Promise<void>) => Promise<void>;
12
+ export declare function cors(
13
+ options?: CORSOptions,
14
+ ): (ctx: any, next: () => Promise<void>) => Promise<void>;
13
15
  export {};
@@ -16,52 +16,56 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  export function cors(options = {}) {
19
- const defaults = {
20
- origin: ["http://localhost:3000", "http://localhost:5173"],
21
- methods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
22
- allowedHeaders: ["Content-Type", "Authorization"],
23
- credentials: false, // Changed: credentials should be false with CORS by default for security
24
- maxAge: 86400,
25
- };
26
- const opts = { ...defaults, ...options };
27
- return async (ctx, next) => {
28
- const origin = ctx.req.headers.origin;
29
- // Validate origin against whitelist
30
- let allowOrigin = false;
31
- if (Array.isArray(opts.origin)) {
32
- allowOrigin = origin && opts.origin.includes(origin);
33
- }
34
- else if (typeof opts.origin === "function") {
35
- allowOrigin = origin && opts.origin(origin);
36
- }
37
- else if (opts.origin === "*") {
38
- // DANGEROUS: only use with credentials: false
39
- if (opts.credentials) {
40
- console.warn("SECURITY WARNING: CORS origin '*' with credentials=true is insecure. Origin set to empty.");
41
- allowOrigin = false;
42
- }
43
- else {
44
- allowOrigin = true;
45
- }
46
- }
47
- else if (opts.origin === origin) {
48
- allowOrigin = true;
49
- }
50
- if (allowOrigin && origin) {
51
- ctx.response.header("Access-Control-Allow-Origin", origin);
52
- }
53
- if (opts.credentials) {
54
- ctx.response.header("Access-Control-Allow-Credentials", "true");
55
- }
56
- if (ctx.req.method === "OPTIONS") {
57
- ctx.response.header("Access-Control-Allow-Methods", opts.methods?.join(","));
58
- ctx.response.header("Access-Control-Allow-Headers", opts.allowedHeaders?.join(","));
59
- if (opts.maxAge) {
60
- ctx.response.header("Access-Control-Max-Age", opts.maxAge);
61
- }
62
- ctx.response.status(204).send();
63
- return;
64
- }
65
- await next();
66
- };
19
+ const defaults = {
20
+ origin: ["http://localhost:3000", "http://localhost:5173"],
21
+ methods: ["GET", "HEAD", "PUT", "PATCH", "POST", "DELETE"],
22
+ allowedHeaders: ["Content-Type", "Authorization"],
23
+ credentials: false, // Changed: credentials should be false with CORS by default for security
24
+ maxAge: 86400,
25
+ };
26
+ const opts = { ...defaults, ...options };
27
+ return async (ctx, next) => {
28
+ const origin = ctx.req.headers.origin;
29
+ // Validate origin against whitelist
30
+ let allowOrigin = false;
31
+ if (Array.isArray(opts.origin)) {
32
+ allowOrigin = origin && opts.origin.includes(origin);
33
+ } else if (typeof opts.origin === "function") {
34
+ allowOrigin = origin && opts.origin(origin);
35
+ } else if (opts.origin === "*") {
36
+ // DANGEROUS: only use with credentials: false
37
+ if (opts.credentials) {
38
+ console.warn(
39
+ "SECURITY WARNING: CORS origin '*' with credentials=true is insecure. Origin set to empty.",
40
+ );
41
+ allowOrigin = false;
42
+ } else {
43
+ allowOrigin = true;
44
+ }
45
+ } else if (opts.origin === origin) {
46
+ allowOrigin = true;
47
+ }
48
+ if (allowOrigin && origin) {
49
+ ctx.response.header("Access-Control-Allow-Origin", origin);
50
+ }
51
+ if (opts.credentials) {
52
+ ctx.response.header("Access-Control-Allow-Credentials", "true");
53
+ }
54
+ if (ctx.req.method === "OPTIONS") {
55
+ ctx.response.header(
56
+ "Access-Control-Allow-Methods",
57
+ opts.methods?.join(","),
58
+ );
59
+ ctx.response.header(
60
+ "Access-Control-Allow-Headers",
61
+ opts.allowedHeaders?.join(","),
62
+ );
63
+ if (opts.maxAge) {
64
+ ctx.response.header("Access-Control-Max-Age", opts.maxAge);
65
+ }
66
+ ctx.response.status(204).send();
67
+ return;
68
+ }
69
+ await next();
70
+ };
67
71
  }
@@ -1 +1,19 @@
1
+ /**
2
+ * Middleware that logs HTTP requests and responses with timing information.
3
+ * Records the request method and path on entry, then logs the status code and elapsed time on exit.
4
+ * If a request ID is set in ctx.state.requestId (typically by request-id middleware),
5
+ * it is included in log lines for request tracing.
6
+ *
7
+ * This middleware should be registered early in the middleware chain to capture timing
8
+ * for all downstream handlers.
9
+ *
10
+ * Log format:
11
+ * - Request: "[requestId] -> METHOD /path"
12
+ * - Response: "[requestId] <- METHOD /path 200 (45.32ms)"
13
+ *
14
+ * @returns Middleware function.
15
+ *
16
+ * @example
17
+ * kernel.use(logger);
18
+ */
1
19
  export function logger(ctx: any, next: any): Promise<void>;
@@ -16,18 +16,36 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  import { log } from "../../shared/log.js";
19
+ /**
20
+ * Middleware that logs HTTP requests and responses with timing information.
21
+ * Records the request method and path on entry, then logs the status code and elapsed time on exit.
22
+ * If a request ID is set in ctx.state.requestId (typically by request-id middleware),
23
+ * it is included in log lines for request tracing.
24
+ *
25
+ * This middleware should be registered early in the middleware chain to capture timing
26
+ * for all downstream handlers.
27
+ *
28
+ * Log format:
29
+ * - Request: "[requestId] -> METHOD /path"
30
+ * - Response: "[requestId] <- METHOD /path 200 (45.32ms)"
31
+ *
32
+ * @returns Middleware function.
33
+ *
34
+ * @example
35
+ * kernel.use(logger);
36
+ */
19
37
  export async function logger(ctx, next) {
20
- const start = performance.now();
21
- // Log request
22
- const method = ctx.req.method;
23
- const url = ctx.url.pathname;
24
- const id = ctx.state.requestId ? `[${ctx.state.requestId}]` : "";
25
- log.info(`${id} -> ${method} ${url}`);
26
- try {
27
- await next();
28
- }
29
- finally {
30
- const ms = (performance.now() - start).toFixed(2);
31
- log.info(`${id} <- ${method} ${url} ${ctx.res.statusCode} (${ms}ms)`);
32
- }
38
+ const start = performance.now();
39
+ // Log request entry with method and URL.
40
+ const method = ctx.req.method;
41
+ const url = ctx.url.pathname;
42
+ const id = ctx.state.requestId ? `[${ctx.state.requestId}]` : "";
43
+ log.info(`${id} -> ${method} ${url}`);
44
+ try {
45
+ await next();
46
+ } finally {
47
+ // Log response exit with status and elapsed time.
48
+ const ms = (performance.now() - start).toFixed(2);
49
+ log.info(`${id} <- ${method} ${url} ${ctx.res.statusCode} (${ms}ms)`);
50
+ }
33
51
  }
@@ -1,5 +1,22 @@
1
1
  /**
2
- * Rate limiting middleware
3
- * Protects against brute force and DDoS attacks
2
+ * Rate limiting middleware that protects against brute force and DDoS attacks.
3
+ * Tracks request count per client IP within a time window and rejects excess requests.
4
+ * Uses in-memory storage, suitable for single-server deployments; use Redis for distributed systems.
5
+ *
6
+ * Automatically cleans up expired records every minute to prevent memory leaks.
7
+ * Respects X-Forwarded-For header for deployments behind a proxy or load balancer.
8
+ *
9
+ * @param options Rate limiting configuration.
10
+ * @param options.windowMs Time window in milliseconds (default: 15 minutes).
11
+ * @param options.max Maximum requests per IP per window (default: 100).
12
+ * @param options.message Error message sent to rate-limited clients (default: "Too many requests...").
13
+ * @param options.statusCode HTTP status for rate-limited responses (default: 429 Too Many Requests).
14
+ * @returns Middleware function.
15
+ *
16
+ * @example
17
+ * kernel.use(rateLimit({
18
+ * windowMs: 15 * 60 * 1000,
19
+ * max: 100
20
+ * }));
4
21
  */
5
22
  export function rateLimit(options?: {}): (ctx: any, next: any) => Promise<void>;
@@ -16,61 +16,81 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  /**
19
- * Rate limiting middleware
20
- * Protects against brute force and DDoS attacks
19
+ * Rate limiting middleware that protects against brute force and DDoS attacks.
20
+ * Tracks request count per client IP within a time window and rejects excess requests.
21
+ * Uses in-memory storage, suitable for single-server deployments; use Redis for distributed systems.
22
+ *
23
+ * Automatically cleans up expired records every minute to prevent memory leaks.
24
+ * Respects X-Forwarded-For header for deployments behind a proxy or load balancer.
25
+ *
26
+ * @param options Rate limiting configuration.
27
+ * @param options.windowMs Time window in milliseconds (default: 15 minutes).
28
+ * @param options.max Maximum requests per IP per window (default: 100).
29
+ * @param options.message Error message sent to rate-limited clients (default: "Too many requests...").
30
+ * @param options.statusCode HTTP status for rate-limited responses (default: 429 Too Many Requests).
31
+ * @returns Middleware function.
32
+ *
33
+ * @example
34
+ * kernel.use(rateLimit({
35
+ * windowMs: 15 * 60 * 1000,
36
+ * max: 100
37
+ * }));
21
38
  */
22
39
  export function rateLimit(options = {}) {
23
- const defaults = {
24
- windowMs: 15 * 60 * 1000, // 15 minutes
25
- max: 100, // 100 requests per window
26
- message: "Too many requests, please try again later.",
27
- statusCode: 429,
28
- };
29
- const opts = { ...defaults, ...options };
30
- const hits = new Map();
31
- // Cleanup old records every minute to prevent memory leak
32
- const cleanupInterval = setInterval(() => {
33
- const now = Date.now();
34
- for (const [key, record] of hits.entries()) {
35
- if (now > record.resetTime) {
36
- hits.delete(key);
37
- }
38
- }
39
- }, 60 * 1000);
40
- return async (ctx, next) => {
41
- // Get IP address - check for X-Forwarded-For header (proxy)
42
- let ip = ctx.req.headers["x-forwarded-for"];
43
- if (typeof ip === "string") {
44
- ip = ip.split(",")[0].trim(); // Get first IP if multiple
45
- }
46
- else {
47
- ip = ctx.req.socket.remoteAddress || "unknown";
48
- }
49
- const now = Date.now();
50
- let record = hits.get(ip);
51
- if (!record || now > record.resetTime) {
52
- record = {
53
- count: 0,
54
- resetTime: now + opts.windowMs,
55
- firstRequest: now,
56
- };
57
- hits.set(ip, record);
58
- }
59
- record.count++;
60
- const remaining = opts.max - record.count;
61
- // Set rate limit headers (similar to GitHub API)
62
- ctx.response.header("RateLimit-Limit", opts.max);
63
- ctx.response.header("RateLimit-Remaining", Math.max(0, remaining));
64
- ctx.response.header("RateLimit-Reset", Math.ceil(record.resetTime / 1000));
65
- if (record.count > opts.max) {
66
- const retryAfter = Math.ceil((record.resetTime - now) / 1000);
67
- ctx.response.header("Retry-After", retryAfter);
68
- ctx.response.status(opts.statusCode).json({
69
- error: opts.message,
70
- retryAfter,
71
- });
72
- return;
73
- }
74
- await next();
75
- };
40
+ const defaults = {
41
+ windowMs: 15 * 60 * 1000, // 15 minutes.
42
+ max: 100, // 100 requests per window.
43
+ message: "Too many requests, please try again later.",
44
+ statusCode: 429,
45
+ };
46
+ const opts = { ...defaults, ...options };
47
+ // In-memory store mapping IP addresses to request records.
48
+ const hits = new Map();
49
+ // Cleanup old records every minute to prevent memory leak.
50
+ // Records outside their window are garbage collected.
51
+ const cleanupInterval = setInterval(() => {
52
+ const now = Date.now();
53
+ for (const [key, record] of hits.entries()) {
54
+ if (now > record.resetTime) {
55
+ hits.delete(key);
56
+ }
57
+ }
58
+ }, 60 * 1000);
59
+ return async (ctx, next) => {
60
+ // Extract the client IP address. Check X-Forwarded-For header for proxied requests.
61
+ let ip = ctx.req.headers["x-forwarded-for"];
62
+ if (typeof ip === "string") {
63
+ ip = ip.split(",")[0].trim(); // Get first IP if multiple are listed.
64
+ } else {
65
+ ip = ctx.req.socket.remoteAddress || "unknown";
66
+ }
67
+ const now = Date.now();
68
+ let record = hits.get(ip);
69
+ // Initialize or reset the request record if the window has expired.
70
+ if (!record || now > record.resetTime) {
71
+ record = {
72
+ count: 0,
73
+ resetTime: now + opts.windowMs,
74
+ firstRequest: now,
75
+ };
76
+ hits.set(ip, record);
77
+ }
78
+ record.count++;
79
+ const remaining = opts.max - record.count;
80
+ // Set standard rate-limit headers following GitHub API conventions.
81
+ ctx.response.header("RateLimit-Limit", opts.max);
82
+ ctx.response.header("RateLimit-Remaining", Math.max(0, remaining));
83
+ ctx.response.header("RateLimit-Reset", Math.ceil(record.resetTime / 1000));
84
+ if (record.count > opts.max) {
85
+ // Rate limit exceeded. Respond with retry-after header and error message.
86
+ const retryAfter = Math.ceil((record.resetTime - now) / 1000);
87
+ ctx.response.header("Retry-After", retryAfter);
88
+ ctx.response.status(opts.statusCode).json({
89
+ error: opts.message,
90
+ retryAfter,
91
+ });
92
+ return;
93
+ }
94
+ await next();
95
+ };
76
96
  }
@@ -1 +1,19 @@
1
+ /**
2
+ * Request ID middleware that assigns unique identifiers to incoming requests.
3
+ * Enables request tracing and correlation across logs and API calls.
4
+ *
5
+ * If the client provides an X-Request-ID header, that ID is used. Otherwise, a new UUID is generated.
6
+ * The request ID is attached to both the response header (for client visibility) and ctx.state
7
+ * (for other middleware like logger to use in log entries).
8
+ *
9
+ * This middleware should be registered early in the chain to ensure all downstream handlers
10
+ * have access to the request ID.
11
+ *
12
+ * @returns Middleware function.
13
+ *
14
+ * @example
15
+ * kernel.use(requestId);
16
+ * // All requests now have a unique X-Request-ID header
17
+ * // Available in ctx.state.requestId for logging and tracing
18
+ */
1
19
  export function requestId(ctx: any, next: any): Promise<void>;
@@ -16,10 +16,31 @@
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
18
  import { randomUUID } from "node:crypto";
19
+ /**
20
+ * Request ID middleware that assigns unique identifiers to incoming requests.
21
+ * Enables request tracing and correlation across logs and API calls.
22
+ *
23
+ * If the client provides an X-Request-ID header, that ID is used. Otherwise, a new UUID is generated.
24
+ * The request ID is attached to both the response header (for client visibility) and ctx.state
25
+ * (for other middleware like logger to use in log entries).
26
+ *
27
+ * This middleware should be registered early in the chain to ensure all downstream handlers
28
+ * have access to the request ID.
29
+ *
30
+ * @returns Middleware function.
31
+ *
32
+ * @example
33
+ * kernel.use(requestId);
34
+ * // All requests now have a unique X-Request-ID header
35
+ * // Available in ctx.state.requestId for logging and tracing
36
+ */
19
37
  export async function requestId(ctx, next) {
20
- const id = ctx.req.headers["x-request-id"] || randomUUID();
21
- ctx.response.header("X-Request-ID", id);
22
- // Also attach to context for logger
23
- ctx.state.requestId = id;
24
- await next();
38
+ // Use client-provided request ID if available (supports request tracing across service boundaries)
39
+ // Otherwise generate a new UUID for this request
40
+ const id = ctx.req.headers["x-request-id"] || randomUUID();
41
+ // Set response header so client can track the request
42
+ ctx.response.header("X-Request-ID", id);
43
+ // Attach to context state for access by other middleware (especially logger)
44
+ ctx.state.requestId = id;
45
+ await next();
25
46
  }
@@ -1 +1,19 @@
1
+ /**
2
+ * Security headers middleware that sets HTTP response headers for defense against common attacks.
3
+ * Implements a comprehensive security policy including:
4
+ * - Clickjacking protection (X-Frame-Options)
5
+ * - MIME type sniffing protection (X-Content-Type-Options)
6
+ * - XSS protection (X-XSS-Protection, Content-Security-Policy)
7
+ * - HTTPS enforcement (Strict-Transport-Security)
8
+ * - Referrer policy (Referrer-Policy)
9
+ * - Feature permissions (Permissions-Policy)
10
+ *
11
+ * CSP is configured permissively to work with most applications.
12
+ * Adjust directives based on your application's needs (inline scripts, external resources, etc.).
13
+ *
14
+ * @returns Middleware function.
15
+ *
16
+ * @example
17
+ * kernel.use(securityHeaders);
18
+ */
1
19
  export function securityHeaders(ctx: any, next: any): Promise<void>;
@@ -15,25 +15,56 @@
15
15
  * You should have received a copy of the GNU General Public License
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
+ /**
19
+ * Security headers middleware that sets HTTP response headers for defense against common attacks.
20
+ * Implements a comprehensive security policy including:
21
+ * - Clickjacking protection (X-Frame-Options)
22
+ * - MIME type sniffing protection (X-Content-Type-Options)
23
+ * - XSS protection (X-XSS-Protection, Content-Security-Policy)
24
+ * - HTTPS enforcement (Strict-Transport-Security)
25
+ * - Referrer policy (Referrer-Policy)
26
+ * - Feature permissions (Permissions-Policy)
27
+ *
28
+ * CSP is configured permissively to work with most applications.
29
+ * Adjust directives based on your application's needs (inline scripts, external resources, etc.).
30
+ *
31
+ * @returns Middleware function.
32
+ *
33
+ * @example
34
+ * kernel.use(securityHeaders);
35
+ */
18
36
  export async function securityHeaders(ctx, next) {
19
- // Prevent DNS prefetch (privacy)
20
- ctx.response.header("X-DNS-Prefetch-Control", "off");
21
- // Clickjacking protection
22
- ctx.response.header("X-Frame-Options", "DENY"); // Changed from SAMEORIGIN for stronger protection
23
- // HTTPS enforcement
24
- ctx.response.header("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload");
25
- // Prevent opening files in browser (IE)
26
- ctx.response.header("X-Download-Options", "noopen");
27
- // MIME type sniffing protection
28
- ctx.response.header("X-Content-Type-Options", "nosniff");
29
- // XSS protection (obsolete but still useful for older browsers)
30
- ctx.response.header("X-XSS-Protection", "1; mode=block");
31
- // Referrer policy
32
- ctx.response.header("Referrer-Policy", "strict-origin-when-cross-origin");
33
- // Content Security Policy - NEW
34
- // Adjust directives based on your application needs
35
- ctx.response.header("Content-Security-Policy", "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';");
36
- // Permissions Policy (formerly Feature Policy) - NEW
37
- ctx.response.header("Permissions-Policy", "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()");
38
- await next();
37
+ // Prevent DNS prefetch to reduce information leakage about visited sites.
38
+ ctx.response.header("X-DNS-Prefetch-Control", "off");
39
+ // Clickjacking protection. DENY prevents the page from being framed by any site.
40
+ ctx.response.header("X-Frame-Options", "DENY");
41
+ // HTTPS enforcement via HSTS. Tells browsers to always use HTTPS for this domain.
42
+ // max-age: 1 year, includeSubDomains: apply to all subdomains, preload: allow browser preload lists.
43
+ ctx.response.header(
44
+ "Strict-Transport-Security",
45
+ "max-age=31536000; includeSubDomains; preload",
46
+ );
47
+ // Prevent IE from opening files in unexpected applications.
48
+ ctx.response.header("X-Download-Options", "noopen");
49
+ // MIME type sniffing protection. Forces browsers to respect Content-Type header.
50
+ ctx.response.header("X-Content-Type-Options", "nosniff");
51
+ // XSS protection for older browsers that support X-XSS-Protection.
52
+ // Modern browsers use CSP instead, but this provides backward compatibility.
53
+ ctx.response.header("X-XSS-Protection", "1; mode=block");
54
+ // Referrer policy controls how much referrer information is sent to external sites.
55
+ ctx.response.header("Referrer-Policy", "strict-origin-when-cross-origin");
56
+ // Content Security Policy restricts which scripts, styles, and resources can load.
57
+ // This configuration allows self-origin for scripts and connect, includes unsafe-inline for styles.
58
+ // Adjust directives based on your application's needs (e.g., external CDNs, external APIs).
59
+ ctx.response.header(
60
+ "Content-Security-Policy",
61
+ "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self'; connect-src 'self'; frame-ancestors 'none';",
62
+ );
63
+ // Permissions Policy (formerly Feature Policy) disables access to sensitive browser APIs.
64
+ // Disable: accelerometer, camera, geolocation, microphone, payment, etc.
65
+ ctx.response.header(
66
+ "Permissions-Policy",
67
+ "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()",
68
+ );
69
+ await next();
39
70
  }