create-jen-app 1.0.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -0,0 +1,141 @@
1
+ /*
2
+ * This file is part of Jen.js.
3
+ * Copyright (C) 2026 oopsio
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import fs from "fs/promises";
19
+ import crypto from "crypto";
20
+ export async function ensureDir(dir) {
21
+ try {
22
+ await fs.access(dir);
23
+ }
24
+ catch {
25
+ await fs.mkdir(dir, { recursive: true });
26
+ }
27
+ }
28
+ export async function readJSON(file) {
29
+ try {
30
+ const data = await fs.readFile(file, "utf-8");
31
+ return JSON.parse(data);
32
+ }
33
+ catch (e) {
34
+ if (e.code === "ENOENT")
35
+ return null;
36
+ throw e;
37
+ }
38
+ }
39
+ export async function writeJSON(file, data) {
40
+ const tempFile = `${file}.tmp`;
41
+ await fs.writeFile(tempFile, JSON.stringify(data, null, 2));
42
+ await fs.rename(tempFile, file);
43
+ }
44
+ export function generateId() {
45
+ return crypto.randomUUID();
46
+ }
47
+ export function matchFilter(doc, filter) {
48
+ for (const key in filter) {
49
+ if (key === "$or") {
50
+ if (!filter.$or.some((f) => matchFilter(doc, f)))
51
+ return false;
52
+ continue;
53
+ }
54
+ if (key === "$and") {
55
+ if (!filter.$and.every((f) => matchFilter(doc, f)))
56
+ return false;
57
+ continue;
58
+ }
59
+ const val = doc[key];
60
+ const cond = filter[key];
61
+ if (typeof cond === "object" && cond !== null && !Array.isArray(cond)) {
62
+ for (const op in cond) {
63
+ const target = cond[op];
64
+ switch (op) {
65
+ case "$eq":
66
+ if (val !== target)
67
+ return false;
68
+ break;
69
+ case "$ne":
70
+ if (val === target)
71
+ return false;
72
+ break;
73
+ case "$gt":
74
+ if (!(val > target))
75
+ return false;
76
+ break;
77
+ case "$gte":
78
+ if (!(val >= target))
79
+ return false;
80
+ break;
81
+ case "$lt":
82
+ if (!(val < target))
83
+ return false;
84
+ break;
85
+ case "$lte":
86
+ if (!(val <= target))
87
+ return false;
88
+ break;
89
+ case "$in":
90
+ if (!target.includes(val))
91
+ return false;
92
+ break;
93
+ case "$nin":
94
+ if (target.includes(val))
95
+ return false;
96
+ break;
97
+ case "$regex":
98
+ if (!new RegExp(target).test(val))
99
+ return false;
100
+ break;
101
+ }
102
+ }
103
+ }
104
+ else {
105
+ if (val !== cond)
106
+ return false;
107
+ }
108
+ }
109
+ return true;
110
+ }
111
+ export function applyUpdate(doc, update) {
112
+ const now = Date.now();
113
+ doc._updated = now;
114
+ for (const op in update) {
115
+ const fields = update[op];
116
+ for (const key in fields) {
117
+ const val = fields[key];
118
+ switch (op) {
119
+ case "$set":
120
+ doc[key] = val;
121
+ break;
122
+ case "$unset":
123
+ delete doc[key];
124
+ break;
125
+ case "$inc":
126
+ doc[key] = (doc[key] || 0) + val;
127
+ break;
128
+ case "$push":
129
+ if (!Array.isArray(doc[key]))
130
+ doc[key] = [];
131
+ doc[key].push(val);
132
+ break;
133
+ case "$pull":
134
+ if (Array.isArray(doc[key])) {
135
+ doc[key] = doc[key].filter((item) => item !== val);
136
+ }
137
+ break;
138
+ }
139
+ }
140
+ }
141
+ }
@@ -0,0 +1 @@
1
+ export function bodyParser(ctx: any, next: any): Promise<any>;
@@ -0,0 +1,55 @@
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 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);
53
+ });
54
+ await next();
55
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * CORS middleware with security defaults
3
+ * Prevents insecure origin sharing with credentials
4
+ */
5
+ interface CORSOptions {
6
+ origin?: string | string[] | ((origin: string) => boolean) | "*";
7
+ methods?: string[];
8
+ allowedHeaders?: string[];
9
+ credentials?: boolean;
10
+ maxAge?: number;
11
+ }
12
+ export declare function cors(options?: CORSOptions): (ctx: any, next: () => Promise<void>) => Promise<void>;
13
+ export {};
@@ -0,0 +1,67 @@
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 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
+ };
67
+ }
@@ -0,0 +1 @@
1
+ export function logger(ctx: any, next: any): Promise<void>;
@@ -0,0 +1,33 @@
1
+ /*
2
+ * This file is part of Jen.js.
3
+ * Copyright (C) 2026 oopsio
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import { log } from "../../shared/log.js";
19
+ 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
+ }
33
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Rate limiting middleware
3
+ * Protects against brute force and DDoS attacks
4
+ */
5
+ export function rateLimit(options?: {}): (ctx: any, next: any) => Promise<void>;
@@ -0,0 +1,76 @@
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
+ * Rate limiting middleware
20
+ * Protects against brute force and DDoS attacks
21
+ */
22
+ 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
+ };
76
+ }
@@ -0,0 +1 @@
1
+ export function requestId(ctx: any, next: any): Promise<void>;
@@ -0,0 +1,25 @@
1
+ /*
2
+ * This file is part of Jen.js.
3
+ * Copyright (C) 2026 oopsio
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import { randomUUID } from "node:crypto";
19
+ 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();
25
+ }
@@ -0,0 +1 @@
1
+ export function securityHeaders(ctx: any, next: any): Promise<void>;
@@ -0,0 +1,39 @@
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 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();
39
+ }
@@ -0,0 +1,18 @@
1
+ export class Context {
2
+ constructor(req: any, res: any);
3
+ req: any;
4
+ res: any;
5
+ url: URL;
6
+ state: {};
7
+ response: ResponseBuilder;
8
+ body: any;
9
+ query: {
10
+ [k: string]: string;
11
+ };
12
+ params: {};
13
+ get cookies(): {
14
+ [k: string]: any;
15
+ };
16
+ json(data: any, status?: number): void;
17
+ }
18
+ import { ResponseBuilder } from "./response.js";
@@ -0,0 +1,50 @@
1
+ /*
2
+ * This file is part of Jen.js.
3
+ * Copyright (C) 2026 oopsio
4
+ *
5
+ * This program is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * This program is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+ import { ResponseBuilder } from "./response.js";
19
+ export class Context {
20
+ req;
21
+ res;
22
+ url;
23
+ state;
24
+ response;
25
+ body; // For parsed body
26
+ query;
27
+ params;
28
+ constructor(req, res) {
29
+ this.req = req;
30
+ this.res = res;
31
+ this.url = new URL(req.url ?? "/", `http://${req.headers.host || "localhost"}`);
32
+ this.state = {};
33
+ this.response = new ResponseBuilder(res);
34
+ this.body = null;
35
+ this.query = Object.fromEntries(this.url.searchParams);
36
+ this.params = {};
37
+ }
38
+ get cookies() {
39
+ const header = this.req.headers.cookie;
40
+ if (!header)
41
+ return {};
42
+ return Object.fromEntries(header.split(";").map((c) => {
43
+ const [key, ...v] = c.trim().split("=");
44
+ return [key, decodeURIComponent(v.join("="))];
45
+ }));
46
+ }
47
+ json(data, status = 200) {
48
+ return this.response.status(status).json(data).send();
49
+ }
50
+ }
@@ -0,0 +1,2 @@
1
+ export function UseMiddleware(...middleware: any[]): (target: any, propertyKey: any, descriptor: any) => void;
2
+ export const MIDDLEWARE_METADATA_KEY: unique symbol;
@@ -0,0 +1,61 @@
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
+ // Simple in-memory storage for metadata if Reflect is not available
19
+ // This avoids the 'reflect-metadata' dependency
20
+ const MetadataStorage = new WeakMap();
21
+ function getMetadata(key, target, propertyKey) {
22
+ // @ts-ignore
23
+ if (typeof Reflect !== "undefined" && Reflect.getMetadata) {
24
+ // @ts-ignore
25
+ return Reflect.getMetadata(key, target, propertyKey);
26
+ }
27
+ const targetMap = MetadataStorage.get(target);
28
+ if (!targetMap)
29
+ return undefined;
30
+ const mapKey = propertyKey ? `${String(key)}:${String(propertyKey)}` : key;
31
+ return targetMap.get(mapKey);
32
+ }
33
+ function defineMetadata(key, value, target, propertyKey) {
34
+ // @ts-ignore
35
+ if (typeof Reflect !== "undefined" && Reflect.defineMetadata) {
36
+ // @ts-ignore
37
+ return Reflect.defineMetadata(key, value, target, propertyKey);
38
+ }
39
+ let targetMap = MetadataStorage.get(target);
40
+ if (!targetMap) {
41
+ targetMap = new Map();
42
+ MetadataStorage.set(target, targetMap);
43
+ }
44
+ const mapKey = propertyKey ? `${String(key)}:${String(propertyKey)}` : key;
45
+ targetMap.set(mapKey, value);
46
+ }
47
+ export const MIDDLEWARE_METADATA_KEY = Symbol("jen:middleware");
48
+ export function UseMiddleware(...middleware) {
49
+ return function (target, propertyKey, descriptor) {
50
+ if (descriptor) {
51
+ // Method decorator
52
+ const existing = getMetadata(MIDDLEWARE_METADATA_KEY, target, propertyKey) || [];
53
+ defineMetadata(MIDDLEWARE_METADATA_KEY, [...existing, ...middleware], target, propertyKey);
54
+ }
55
+ else {
56
+ // Class decorator
57
+ const existing = getMetadata(MIDDLEWARE_METADATA_KEY, target) || [];
58
+ defineMetadata(MIDDLEWARE_METADATA_KEY, [...existing, ...middleware], target);
59
+ }
60
+ };
61
+ }
@@ -0,0 +1 @@
1
+ export function errorHandler(ctx: any, next: any): Promise<void>;