create-jen-app 1.2.2 → 1.2.4

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 (861) hide show
  1. package/README.md +3 -1
  2. package/dist/colors.js +0 -17
  3. package/dist/create.js +5 -17
  4. package/dist/generator.js +14 -31
  5. package/package.json +2 -2
  6. package/templates/ssr-isr/README.md +77 -0
  7. package/templates/ssr-isr/build.js +118 -0
  8. package/templates/ssr-isr/jen.config.ts +109 -0
  9. package/templates/ssr-isr/jenjs.d.ts +22 -0
  10. package/templates/ssr-isr/lib/api/(hello).d.ts +7 -0
  11. package/templates/ssr-isr/lib/api/(hello).js +9 -0
  12. package/templates/ssr-isr/lib/auth/cookie-utils.d.ts +33 -0
  13. package/templates/ssr-isr/lib/auth/cookie-utils.js +79 -0
  14. package/templates/ssr-isr/lib/auth/index.js +2 -0
  15. package/templates/ssr-isr/lib/auth/jwt.d.ts +30 -0
  16. package/templates/ssr-isr/lib/auth/jwt.js +57 -0
  17. package/templates/ssr-isr/lib/auth/session.d.ts +44 -0
  18. package/templates/ssr-isr/lib/auth/session.js +92 -0
  19. package/templates/ssr-isr/lib/build/asset-hashing.d.ts +10 -0
  20. package/templates/ssr-isr/lib/build/asset-hashing.js +25 -0
  21. package/templates/ssr-isr/lib/build/asset-manifest.d.ts +11 -0
  22. package/templates/ssr-isr/lib/build/asset-manifest.js +21 -0
  23. package/templates/ssr-isr/lib/build/build.d.ts +24 -0
  24. package/templates/ssr-isr/lib/build/build.js +141 -0
  25. package/templates/{static → ssr-isr}/lib/build/island-hydration.d.ts +8 -5
  26. package/templates/ssr-isr/lib/build/island-hydration.js +44 -0
  27. package/templates/ssr-isr/lib/build/minifier.d.ts +20 -0
  28. package/templates/ssr-isr/lib/build/minifier.js +46 -0
  29. package/templates/ssr-isr/lib/build/page-renderer.d.ts +17 -0
  30. package/templates/ssr-isr/lib/build/page-renderer.js +28 -0
  31. package/templates/ssr-isr/lib/build/production-build.d.ts +10 -0
  32. package/templates/ssr-isr/lib/build/production-build.js +13 -0
  33. package/templates/ssr-isr/lib/build/ssg-pipeline.d.ts +15 -0
  34. package/templates/ssr-isr/lib/build/ssg-pipeline.js +113 -0
  35. package/templates/{static → ssr-isr}/lib/build-tools/build-site.d.ts +3 -3
  36. package/templates/ssr-isr/lib/build-tools/build-site.js +36 -0
  37. package/templates/ssr-isr/lib/cache/index.d.ts +10 -0
  38. package/templates/ssr-isr/lib/cache/index.js +10 -0
  39. package/templates/ssr-isr/lib/cache/memory.d.ts +33 -0
  40. package/templates/ssr-isr/lib/cache/memory.js +40 -0
  41. package/templates/ssr-isr/lib/cache/redis.d.ts +45 -0
  42. package/templates/ssr-isr/lib/cache/redis.js +61 -0
  43. package/templates/ssr-isr/lib/cli/banner.d.ts +5 -0
  44. package/templates/ssr-isr/lib/cli/banner.js +28 -0
  45. package/templates/ssr-isr/lib/cli/templates/ssg/jen.config.js +32 -0
  46. package/templates/ssr-isr/lib/cli/templates/ssg/site/index.js +9 -0
  47. package/templates/ssr-isr/lib/cli/templates/ssr/jen.config.js +32 -0
  48. package/templates/ssr-isr/lib/cli/templates/ssr/site/index.js +9 -0
  49. package/templates/ssr-isr/lib/compilers/esbuild-plugins.js +111 -0
  50. package/templates/ssr-isr/lib/compilers/svelte.d.ts +18 -0
  51. package/templates/ssr-isr/lib/compilers/svelte.js +44 -0
  52. package/templates/ssr-isr/lib/compilers/vue.d.ts +15 -0
  53. package/templates/ssr-isr/lib/compilers/vue.js +90 -0
  54. package/templates/ssr-isr/lib/core/config.d.ts +220 -0
  55. package/templates/ssr-isr/lib/core/http.d.ts +56 -0
  56. package/templates/ssr-isr/lib/core/http.js +71 -0
  57. package/templates/ssr-isr/lib/core/middleware-hooks.d.ts +219 -0
  58. package/templates/ssr-isr/lib/core/middleware-hooks.js +97 -0
  59. package/templates/ssr-isr/lib/core/paths.d.ts +44 -0
  60. package/templates/ssr-isr/lib/core/paths.js +39 -0
  61. package/templates/ssr-isr/lib/core/routes/match.d.ts +54 -0
  62. package/templates/ssr-isr/lib/core/routes/match.js +47 -0
  63. package/templates/ssr-isr/lib/core/routes/scan.d.ts +53 -0
  64. package/templates/ssr-isr/lib/core/routes/scan.js +190 -0
  65. package/templates/ssr-isr/lib/core/types.d.ts +153 -0
  66. package/templates/ssr-isr/lib/core/types.js +1 -0
  67. package/templates/ssr-isr/lib/css/compiler.d.ts +23 -0
  68. package/templates/ssr-isr/lib/css/compiler.js +74 -0
  69. package/templates/ssr-isr/lib/db/connector.d.ts +30 -0
  70. package/templates/ssr-isr/lib/db/connector.js +42 -0
  71. package/templates/ssr-isr/lib/db/drivers/jdb.d.ts +17 -0
  72. package/templates/ssr-isr/lib/db/drivers/jdb.js +44 -0
  73. package/templates/ssr-isr/lib/db/drivers/sql.d.ts +22 -0
  74. package/templates/ssr-isr/lib/db/drivers/sql.js +182 -0
  75. package/templates/ssr-isr/lib/db/index.d.ts +27 -0
  76. package/templates/ssr-isr/lib/db/index.js +48 -0
  77. package/templates/ssr-isr/lib/db/types.d.ts +33 -0
  78. package/templates/ssr-isr/lib/db/types.js +1 -0
  79. package/templates/ssr-isr/lib/graphql/index.d.ts +48 -0
  80. package/templates/ssr-isr/lib/graphql/index.js +52 -0
  81. package/templates/ssr-isr/lib/graphql/resolvers.d.ts +57 -0
  82. package/templates/ssr-isr/lib/graphql/resolvers.js +25 -0
  83. package/templates/ssr-isr/lib/graphql/schema.d.ts +35 -0
  84. package/templates/ssr-isr/lib/graphql/schema.js +35 -0
  85. package/templates/ssr-isr/lib/i18n/en.json +4 -0
  86. package/templates/ssr-isr/lib/i18n/es.json +4 -0
  87. package/templates/ssr-isr/lib/i18n/index.d.ts +8 -0
  88. package/templates/ssr-isr/lib/i18n/index.js +15 -0
  89. package/templates/ssr-isr/lib/import/jen-import.d.ts +56 -0
  90. package/templates/ssr-isr/lib/import/jen-import.js +161 -0
  91. package/templates/{static → ssr-isr}/lib/index.d.ts +42 -11
  92. package/templates/ssr-isr/lib/index.js +116 -0
  93. package/templates/ssr-isr/lib/jdb/engine.d.ts +38 -0
  94. package/templates/ssr-isr/lib/jdb/engine.js +275 -0
  95. package/templates/ssr-isr/lib/jdb/index.d.ts +34 -0
  96. package/templates/ssr-isr/lib/jdb/index.js +34 -0
  97. package/templates/ssr-isr/lib/jdb/types.d.ts +228 -0
  98. package/templates/ssr-isr/lib/jdb/types.js +1 -0
  99. package/templates/ssr-isr/lib/jdb/utils.d.ts +66 -0
  100. package/templates/ssr-isr/lib/jdb/utils.js +176 -0
  101. package/templates/ssr-isr/lib/middleware/builtins/body-parser.d.ts +16 -0
  102. package/templates/ssr-isr/lib/middleware/builtins/body-parser.js +56 -0
  103. package/templates/ssr-isr/lib/middleware/builtins/cors.d.ts +15 -0
  104. package/templates/ssr-isr/lib/middleware/builtins/cors.js +54 -0
  105. package/templates/ssr-isr/lib/middleware/builtins/logger.d.ts +19 -0
  106. package/templates/ssr-isr/lib/middleware/builtins/logger.js +34 -0
  107. package/templates/ssr-isr/lib/middleware/builtins/rate-limit.d.ts +22 -0
  108. package/templates/ssr-isr/lib/middleware/builtins/rate-limit.js +79 -0
  109. package/templates/ssr-isr/lib/middleware/builtins/request-id.d.ts +19 -0
  110. package/templates/ssr-isr/lib/middleware/builtins/request-id.js +29 -0
  111. package/templates/ssr-isr/lib/middleware/builtins/security-headers.d.ts +19 -0
  112. package/templates/ssr-isr/lib/middleware/builtins/security-headers.js +53 -0
  113. package/templates/ssr-isr/lib/middleware/context.d.ts +105 -0
  114. package/templates/ssr-isr/lib/middleware/context.js +124 -0
  115. package/templates/ssr-isr/lib/middleware/decorators.d.ts +19 -0
  116. package/templates/ssr-isr/lib/middleware/decorators.js +93 -0
  117. package/templates/ssr-isr/lib/middleware/errors/handler.js +46 -0
  118. package/templates/ssr-isr/lib/middleware/errors/http-error.d.ts +5 -0
  119. package/templates/ssr-isr/lib/middleware/errors/http-error.js +10 -0
  120. package/templates/ssr-isr/lib/middleware/kernel.d.ts +69 -0
  121. package/templates/ssr-isr/lib/middleware/kernel.js +85 -0
  122. package/templates/ssr-isr/lib/middleware/pipeline.d.ts +53 -0
  123. package/templates/ssr-isr/lib/middleware/pipeline.js +148 -0
  124. package/templates/ssr-isr/lib/middleware/registry.d.ts +69 -0
  125. package/templates/ssr-isr/lib/middleware/registry.js +85 -0
  126. package/templates/ssr-isr/lib/middleware/response.d.ts +75 -0
  127. package/templates/ssr-isr/lib/middleware/response.js +107 -0
  128. package/templates/ssr-isr/lib/middleware/types.d.ts +1 -0
  129. package/templates/ssr-isr/lib/middleware/types.js +1 -0
  130. package/templates/ssr-isr/lib/middleware/utils/matcher.js +13 -0
  131. package/templates/ssr-isr/lib/native/bundle.d.ts +24 -0
  132. package/templates/ssr-isr/lib/native/bundle.js +22 -0
  133. package/templates/ssr-isr/lib/native/dev-server.d.ts +13 -0
  134. package/templates/ssr-isr/lib/native/dev-server.js +23 -0
  135. package/templates/{static → ssr-isr}/lib/native/index.d.ts +20 -20
  136. package/templates/ssr-isr/lib/native/index.js +33 -0
  137. package/templates/ssr-isr/lib/native/optimizer.d.ts +21 -0
  138. package/templates/ssr-isr/lib/native/optimizer.js +20 -0
  139. package/templates/ssr-isr/lib/native/style-compiler.d.ts +19 -0
  140. package/templates/ssr-isr/lib/native/style-compiler.js +19 -0
  141. package/templates/ssr-isr/lib/plugin/loader.d.ts +10 -0
  142. package/templates/ssr-isr/lib/plugin/loader.js +36 -0
  143. package/templates/ssr-isr/lib/runtime/client-runtime.d.ts +16 -0
  144. package/templates/ssr-isr/lib/runtime/client-runtime.js +25 -0
  145. package/templates/ssr-isr/lib/runtime/hmr.d.ts +23 -0
  146. package/templates/ssr-isr/lib/runtime/hmr.js +59 -0
  147. package/templates/ssr-isr/lib/runtime/hydrate.d.ts +18 -0
  148. package/templates/ssr-isr/lib/runtime/hydrate.js +55 -0
  149. package/templates/ssr-isr/lib/runtime/island-hydration-client.d.ts +8 -0
  150. package/templates/ssr-isr/lib/runtime/island-hydration-client.js +146 -0
  151. package/templates/ssr-isr/lib/runtime/islands.d.ts +101 -0
  152. package/templates/ssr-isr/lib/runtime/islands.js +110 -0
  153. package/templates/ssr-isr/lib/runtime/render.d.ts +40 -0
  154. package/templates/ssr-isr/lib/runtime/render.js +244 -0
  155. package/templates/ssr-isr/lib/server/api-routes.d.ts +112 -0
  156. package/templates/ssr-isr/lib/server/api-routes.js +237 -0
  157. package/templates/{static → ssr-isr}/lib/server/api.d.ts +3 -3
  158. package/templates/ssr-isr/lib/server/api.js +108 -0
  159. package/templates/ssr-isr/lib/server/app.d.ts +44 -0
  160. package/templates/ssr-isr/lib/server/app.js +438 -0
  161. package/templates/ssr-isr/lib/server/runtimeServe.d.ts +60 -0
  162. package/templates/ssr-isr/lib/server/runtimeServe.js +169 -0
  163. package/templates/ssr-isr/lib/server/ssr.d.ts +161 -0
  164. package/templates/ssr-isr/lib/server/ssr.js +202 -0
  165. package/templates/ssr-isr/lib/shared/log.d.ts +49 -0
  166. package/templates/ssr-isr/lib/shared/log.js +64 -0
  167. package/templates/ssr-isr/package.json +23 -0
  168. package/templates/ssr-isr/server.js +128 -0
  169. package/templates/ssr-isr/site/pages/(index).tsx +11 -0
  170. package/templates/ssr-isr/site/styles/global.scss +37 -0
  171. package/templates/ssr-isr/tsconfig.json +39 -0
  172. package/templates/static/README.md +63 -67
  173. package/templates/static/build.js +31 -21
  174. package/templates/static/jen.config.ts +0 -20
  175. package/templates/static/jenjs.d.ts +0 -18
  176. package/templates/static/lib/api/(hello).js +7 -24
  177. package/templates/static/lib/api/examples/files/[...slug].js +22 -0
  178. package/templates/static/lib/api/examples/hello.js +11 -0
  179. package/templates/static/lib/api/examples/posts/[id].js +37 -0
  180. package/templates/static/lib/api/examples/posts.js +37 -0
  181. package/templates/static/lib/api/examples/search.js +23 -0
  182. package/templates/static/lib/api/index.js +41 -0
  183. package/templates/static/lib/api/loader.js +234 -0
  184. package/templates/static/lib/api/router.js +259 -0
  185. package/templates/static/lib/assets/types.js +1 -0
  186. package/templates/static/lib/auth/cookie-utils.js +69 -85
  187. package/templates/static/lib/auth/index.js +0 -17
  188. package/templates/static/lib/auth/jwt.js +48 -21
  189. package/templates/static/lib/auth/session.js +79 -98
  190. package/templates/static/lib/build/asset-hashing.js +47 -39
  191. package/templates/static/lib/build/asset-manifest.js +18 -35
  192. package/templates/static/lib/build/build.js +277 -95
  193. package/templates/static/lib/build/bundle-analyzer-ui.js +417 -0
  194. package/templates/static/lib/build/bundle-analyzer.js +945 -0
  195. package/templates/static/lib/build/code-splitter.js +194 -0
  196. package/templates/static/lib/build/feature-analyzer.js +190 -0
  197. package/templates/static/lib/build/feature-gate.js +257 -0
  198. package/templates/static/lib/build/island-hydration.js +17 -35
  199. package/templates/static/lib/build/lazy-loader.js +322 -0
  200. package/templates/static/lib/build/minifier.js +42 -61
  201. package/templates/static/lib/build/page-renderer.js +25 -42
  202. package/templates/static/lib/build/production-build.js +11 -28
  203. package/templates/static/lib/build/rust-hashing.js +71 -0
  204. package/templates/static/lib/build/script-optimizer.js +285 -0
  205. package/templates/static/lib/build/ssg-pipeline.js +107 -113
  206. package/templates/static/lib/build/vercel-output.js +298 -0
  207. package/templates/static/lib/build-tools/build-site.js +27 -47
  208. package/templates/static/lib/cache/index.js +6 -15
  209. package/templates/static/lib/cache/memory.js +37 -28
  210. package/templates/static/lib/cache/redis.js +56 -28
  211. package/templates/static/lib/cli/banner.js +18 -31
  212. package/templates/static/lib/cli/templates/ssg/jen.config.js +29 -46
  213. package/templates/static/lib/cli/templates/ssg/site/index.js +6 -1
  214. package/templates/static/lib/cli/templates/ssr/jen.config.js +29 -46
  215. package/templates/static/lib/cli/templates/ssr/site/index.js +6 -1
  216. package/templates/static/lib/client/Image.js +42 -0
  217. package/templates/static/lib/client/Link.js +190 -0
  218. package/templates/static/lib/client/PWA.js +46 -0
  219. package/templates/static/lib/client/Seo.js +97 -0
  220. package/templates/static/lib/client/index.js +9 -0
  221. package/templates/static/lib/client/useNavigation.js +25 -0
  222. package/templates/static/lib/client/useRouter.js +64 -0
  223. package/templates/static/lib/client-routing/Link.js +17 -0
  224. package/templates/static/lib/client-routing/index.js +19 -0
  225. package/templates/static/lib/client-routing/router.js +151 -0
  226. package/templates/static/lib/client-routing/signal.js +147 -0
  227. package/templates/static/lib/compilers/esbuild-plugins.js +96 -115
  228. package/templates/static/lib/compilers/svelte.js +31 -48
  229. package/templates/static/lib/compilers/vue.js +76 -85
  230. package/templates/static/lib/core/config.js +0 -17
  231. package/templates/static/lib/core/feature-guard.js +136 -0
  232. package/templates/static/lib/core/features.js +99 -0
  233. package/templates/static/lib/core/http.js +65 -36
  234. package/templates/static/lib/core/layouts/index.js +10 -0
  235. package/templates/static/lib/core/layouts/render.js +158 -0
  236. package/templates/static/lib/core/layouts/scan.js +112 -0
  237. package/templates/static/lib/core/layouts/types.js +1 -0
  238. package/templates/static/lib/core/lifecycle.js +129 -0
  239. package/templates/static/lib/core/loader-schema.js +81 -0
  240. package/templates/static/lib/core/middleware-hooks.js +86 -58
  241. package/templates/static/lib/core/paths.js +31 -16
  242. package/templates/static/lib/core/routes/advanced.js +114 -0
  243. package/templates/static/lib/core/routes/handlers.js +181 -0
  244. package/templates/static/lib/core/routes/match.js +129 -24
  245. package/templates/static/lib/core/routes/orchestrator.js +171 -0
  246. package/templates/static/lib/core/routes/rendering-config.js +131 -0
  247. package/templates/static/lib/core/routes/scan.js +174 -132
  248. package/templates/static/lib/core/types.js +0 -17
  249. package/templates/static/lib/css/compiler.js +63 -76
  250. package/templates/static/lib/data-fetching/cache.js +223 -0
  251. package/templates/static/lib/data-fetching/client.js +202 -0
  252. package/templates/static/lib/data-fetching/feature-guard.js +29 -0
  253. package/templates/static/lib/data-fetching/graphql.js +265 -0
  254. package/templates/static/lib/data-fetching/index.js +57 -0
  255. package/templates/static/lib/data-fetching/rest.js +256 -0
  256. package/templates/static/lib/data-fetching/server.js +182 -0
  257. package/templates/static/lib/data-fetching/types.js +5 -0
  258. package/templates/static/lib/db/connector.js +37 -28
  259. package/templates/static/lib/db/drivers/jdb.js +41 -56
  260. package/templates/static/lib/db/drivers/sql.js +152 -152
  261. package/templates/static/lib/db/index.js +42 -59
  262. package/templates/static/lib/db/types.js +0 -17
  263. package/templates/static/lib/devtools/component-tree.js +106 -0
  264. package/templates/static/lib/devtools/devtools.js +638 -0
  265. package/templates/static/lib/devtools/event-bus.js +29 -0
  266. package/templates/static/lib/devtools/event-logger.js +67 -0
  267. package/templates/static/lib/devtools/index.js +9 -0
  268. package/templates/static/lib/devtools/integration.js +149 -0
  269. package/templates/static/lib/devtools/performance.js +84 -0
  270. package/templates/static/lib/devtools/persistence.js +57 -0
  271. package/templates/static/lib/devtools/plugins.js +97 -0
  272. package/templates/static/lib/devtools/search.js +89 -0
  273. package/templates/static/lib/devtools/ui.js +769 -0
  274. package/templates/static/lib/features/api/handler.js +10 -0
  275. package/templates/static/lib/features/api/index.js +5 -0
  276. package/templates/static/lib/features/api/types.js +4 -0
  277. package/templates/static/lib/features/middleware/compiled.js +7 -0
  278. package/templates/static/lib/features/middleware/index.js +5 -0
  279. package/templates/static/lib/features/middleware/types.js +4 -0
  280. package/templates/static/lib/fonts/index.js +46 -0
  281. package/templates/static/lib/fonts/inject.js +125 -0
  282. package/templates/static/lib/fonts/loader.js +196 -0
  283. package/templates/static/lib/fonts/types.js +1 -0
  284. package/templates/static/lib/graphql/index.js +46 -16
  285. package/templates/static/lib/graphql/resolvers.js +42 -19
  286. package/templates/static/lib/graphql/schema.js +30 -15
  287. package/templates/static/lib/i18n/en.json +2 -2
  288. package/templates/static/lib/i18n/es.json +2 -2
  289. package/templates/static/lib/i18n/index.js +17 -29
  290. package/templates/static/lib/import/jen-import.js +130 -97
  291. package/templates/static/lib/index.js +82 -115
  292. package/templates/static/lib/jdb/engine.js +259 -160
  293. package/templates/static/lib/jdb/index.js +28 -13
  294. package/templates/static/lib/jdb/types.js +0 -17
  295. package/templates/static/lib/jdb/utils.js +159 -124
  296. package/templates/static/lib/middleware/builtins/cors.js +55 -64
  297. package/templates/static/lib/middleware/context.js +120 -46
  298. package/templates/static/lib/middleware/kernel.js +186 -31
  299. package/templates/static/lib/middleware/pipeline.js +140 -59
  300. package/templates/static/lib/middleware/registry.js +80 -36
  301. package/templates/static/lib/middleware/response.js +101 -54
  302. package/templates/static/lib/plugin/examples/analytics-plugin.js +183 -0
  303. package/templates/static/lib/plugin/examples/cdn-upload-plugin.js +94 -0
  304. package/templates/static/lib/plugin/loader.js +25 -48
  305. package/templates/static/lib/plugin/plugin-manager.js +177 -0
  306. package/templates/static/lib/plugin/types.js +28 -0
  307. package/templates/static/lib/runtime/client-runtime.js +19 -22
  308. package/templates/static/lib/runtime/hmr.js +23 -18
  309. package/templates/static/lib/runtime/hydrate.js +47 -37
  310. package/templates/static/lib/runtime/island-hydration-client.js +122 -108
  311. package/templates/static/lib/runtime/islands.js +92 -71
  312. package/templates/static/lib/runtime/render.js +385 -149
  313. package/templates/static/lib/security/security-config.js +60 -0
  314. package/templates/static/lib/security/security-middleware.js +229 -0
  315. package/templates/static/lib/server/api-routes.js +339 -171
  316. package/templates/static/lib/server/api.js +93 -109
  317. package/templates/static/lib/server/app.js +660 -270
  318. package/templates/static/lib/server/isr.js +365 -0
  319. package/templates/static/lib/server/runtimeServe.js +157 -89
  320. package/templates/static/lib/server/ssr.js +295 -0
  321. package/templates/static/lib/server-actions/handler.js +180 -0
  322. package/templates/static/lib/server-actions/index.js +19 -0
  323. package/templates/static/lib/server-actions/middleware.js +146 -0
  324. package/templates/static/lib/server-actions/scan.js +152 -0
  325. package/templates/static/lib/server-actions/types.js +1 -0
  326. package/templates/static/lib/server-actions/validators.js +156 -0
  327. package/templates/static/lib/shared/log.js +74 -25
  328. package/templates/static/lib/telemetry/api/rate-limiter.js +32 -0
  329. package/templates/static/lib/telemetry/api/validator.js +67 -0
  330. package/templates/static/lib/telemetry/client.js +121 -0
  331. package/templates/static/lib/telemetry/tests/rate-limiter.test.js +46 -0
  332. package/templates/static/lib/telemetry/tests/validator.test.js +62 -0
  333. package/templates/static/lib/vendor/glob/glob.js +4766 -0
  334. package/templates/static/lib/vendor/preact/preact.module.js +797 -0
  335. package/templates/static/lib/vendor/sass/sass.node.mjs +212 -0
  336. package/templates/static/package.json +4 -0
  337. package/templates/static/server.js +23 -25
  338. package/templates/static/site/(home).tsx +12 -12
  339. package/templates/static/site/styles/global.scss +89 -78
  340. package/templates/static/tsconfig.json +43 -39
  341. package/templates/static/.esbuild/jen.config.js +0 -1
  342. package/templates/static/lib/api/(hello).d.ts +0 -7
  343. package/templates/static/lib/auth/cookie-utils.d.ts +0 -24
  344. package/templates/static/lib/auth/jwt.d.ts +0 -2
  345. package/templates/static/lib/auth/session.d.ts +0 -44
  346. package/templates/static/lib/build/asset-hashing.d.ts +0 -10
  347. package/templates/static/lib/build/asset-manifest.d.ts +0 -11
  348. package/templates/static/lib/build/build.d.ts +0 -4
  349. package/templates/static/lib/build/minifier.d.ts +0 -20
  350. package/templates/static/lib/build/page-renderer.d.ts +0 -17
  351. package/templates/static/lib/build/production-build.d.ts +0 -10
  352. package/templates/static/lib/build/ssg-pipeline.d.ts +0 -15
  353. package/templates/static/lib/cache/index.d.ts +0 -2
  354. package/templates/static/lib/cache/memory.d.ts +0 -6
  355. package/templates/static/lib/cache/redis.d.ts +0 -6
  356. package/templates/static/lib/cli/banner.d.ts +0 -1
  357. package/templates/static/lib/compilers/svelte.d.ts +0 -18
  358. package/templates/static/lib/compilers/vue.d.ts +0 -15
  359. package/templates/static/lib/core/config.d.ts +0 -53
  360. package/templates/static/lib/core/http.d.ts +0 -3
  361. package/templates/static/lib/core/middleware-hooks.d.ts +0 -46
  362. package/templates/static/lib/core/paths.d.ts +0 -6
  363. package/templates/static/lib/core/routes/match.d.ts +0 -6
  364. package/templates/static/lib/core/routes/scan.d.ts +0 -9
  365. package/templates/static/lib/core/types.d.ts +0 -18
  366. package/templates/static/lib/css/compiler.d.ts +0 -20
  367. package/templates/static/lib/db/connector.d.ts +0 -4
  368. package/templates/static/lib/db/drivers/jdb.d.ts +0 -13
  369. package/templates/static/lib/db/drivers/sql.d.ts +0 -18
  370. package/templates/static/lib/db/index.d.ts +0 -19
  371. package/templates/static/lib/db/types.d.ts +0 -29
  372. package/templates/static/lib/graphql/index.d.ts +0 -1
  373. package/templates/static/lib/graphql/resolvers.d.ts +0 -17
  374. package/templates/static/lib/graphql/schema.d.ts +0 -1
  375. package/templates/static/lib/i18n/index.d.ts +0 -8
  376. package/templates/static/lib/import/jen-import.d.ts +0 -27
  377. package/templates/static/lib/jdb/engine.d.ts +0 -9
  378. package/templates/static/lib/jdb/index.d.ts +0 -2
  379. package/templates/static/lib/jdb/types.d.ts +0 -46
  380. package/templates/static/lib/jdb/utils.d.ts +0 -6
  381. package/templates/static/lib/middleware/builtins/body-parser.d.ts +0 -1
  382. package/templates/static/lib/middleware/builtins/body-parser.js +0 -55
  383. package/templates/static/lib/middleware/builtins/cors.d.ts +0 -13
  384. package/templates/static/lib/middleware/builtins/logger.d.ts +0 -1
  385. package/templates/static/lib/middleware/builtins/logger.js +0 -33
  386. package/templates/static/lib/middleware/builtins/rate-limit.d.ts +0 -5
  387. package/templates/static/lib/middleware/builtins/rate-limit.js +0 -76
  388. package/templates/static/lib/middleware/builtins/request-id.d.ts +0 -1
  389. package/templates/static/lib/middleware/builtins/request-id.js +0 -25
  390. package/templates/static/lib/middleware/builtins/security-headers.d.ts +0 -1
  391. package/templates/static/lib/middleware/builtins/security-headers.js +0 -39
  392. package/templates/static/lib/middleware/context.d.ts +0 -18
  393. package/templates/static/lib/middleware/decorators.d.ts +0 -2
  394. package/templates/static/lib/middleware/decorators.js +0 -61
  395. package/templates/static/lib/middleware/errors/handler.js +0 -65
  396. package/templates/static/lib/middleware/errors/http-error.d.ts +0 -5
  397. package/templates/static/lib/middleware/errors/http-error.js +0 -27
  398. package/templates/static/lib/middleware/kernel.d.ts +0 -6
  399. package/templates/static/lib/middleware/pipeline.d.ts +0 -4
  400. package/templates/static/lib/middleware/registry.d.ts +0 -10
  401. package/templates/static/lib/middleware/response.d.ts +0 -13
  402. package/templates/static/lib/middleware/types.js +0 -18
  403. package/templates/static/lib/middleware/utils/matcher.js +0 -31
  404. package/templates/static/lib/native/bundle.d.ts +0 -19
  405. package/templates/static/lib/native/bundle.js +0 -39
  406. package/templates/static/lib/native/dev-server.d.ts +0 -6
  407. package/templates/static/lib/native/dev-server.js +0 -38
  408. package/templates/static/lib/native/index.js +0 -48
  409. package/templates/static/lib/native/optimizer.d.ts +0 -17
  410. package/templates/static/lib/native/optimizer.js +0 -37
  411. package/templates/static/lib/native/style-compiler.d.ts +0 -10
  412. package/templates/static/lib/native/style-compiler.js +0 -36
  413. package/templates/static/lib/plugin/loader.d.ts +0 -8
  414. package/templates/static/lib/runtime/client-runtime.d.ts +0 -1
  415. package/templates/static/lib/runtime/hmr.d.ts +0 -1
  416. package/templates/static/lib/runtime/hydrate.d.ts +0 -1
  417. package/templates/static/lib/runtime/island-hydration-client.d.ts +0 -5
  418. package/templates/static/lib/runtime/islands.d.ts +0 -46
  419. package/templates/static/lib/runtime/render.d.ts +0 -13
  420. package/templates/static/lib/server/api-routes.d.ts +0 -44
  421. package/templates/static/lib/server/app.d.ts +0 -10
  422. package/templates/static/lib/server/runtimeServe.d.ts +0 -4
  423. package/templates/static/lib/shared/log.d.ts +0 -5
  424. package/templates/static/node_modules/.bin/esbuild +0 -16
  425. package/templates/static/node_modules/.bin/esbuild.cmd +0 -17
  426. package/templates/static/node_modules/.bin/esbuild.ps1 +0 -28
  427. package/templates/static/node_modules/.bin/tsc +0 -16
  428. package/templates/static/node_modules/.bin/tsc.cmd +0 -17
  429. package/templates/static/node_modules/.bin/tsc.ps1 +0 -28
  430. package/templates/static/node_modules/.bin/tsserver +0 -16
  431. package/templates/static/node_modules/.bin/tsserver.cmd +0 -17
  432. package/templates/static/node_modules/.bin/tsserver.ps1 +0 -28
  433. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -14
  434. package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +0 -11
  435. package/templates/static/node_modules/.package-lock.json +0 -585
  436. package/templates/static/node_modules/@esbuild/win32-x64/README.md +0 -3
  437. package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
  438. package/templates/static/node_modules/@esbuild/win32-x64/package.json +0 -20
  439. package/templates/static/node_modules/@jenjs/master/README.md +0 -24
  440. package/templates/static/node_modules/@jenjs/master/index.js +0 -3655
  441. package/templates/static/node_modules/@jenjs/master/package.json +0 -36
  442. package/templates/static/node_modules/@polka/url/build.js +0 -49
  443. package/templates/static/node_modules/@polka/url/build.mjs +0 -47
  444. package/templates/static/node_modules/@polka/url/index.d.ts +0 -11
  445. package/templates/static/node_modules/@polka/url/package.json +0 -30
  446. package/templates/static/node_modules/@polka/url/readme.md +0 -68
  447. package/templates/static/node_modules/@types/node/LICENSE +0 -21
  448. package/templates/static/node_modules/@types/node/README.md +0 -15
  449. package/templates/static/node_modules/@types/node/assert/strict.d.ts +0 -111
  450. package/templates/static/node_modules/@types/node/assert.d.ts +0 -1078
  451. package/templates/static/node_modules/@types/node/async_hooks.d.ts +0 -603
  452. package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +0 -472
  453. package/templates/static/node_modules/@types/node/buffer.d.ts +0 -1934
  454. package/templates/static/node_modules/@types/node/child_process.d.ts +0 -1476
  455. package/templates/static/node_modules/@types/node/cluster.d.ts +0 -578
  456. package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  457. package/templates/static/node_modules/@types/node/compatibility/index.d.ts +0 -9
  458. package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  459. package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  460. package/templates/static/node_modules/@types/node/console.d.ts +0 -452
  461. package/templates/static/node_modules/@types/node/constants.d.ts +0 -21
  462. package/templates/static/node_modules/@types/node/crypto.d.ts +0 -4545
  463. package/templates/static/node_modules/@types/node/dgram.d.ts +0 -600
  464. package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
  465. package/templates/static/node_modules/@types/node/dns/promises.d.ts +0 -503
  466. package/templates/static/node_modules/@types/node/dns.d.ts +0 -923
  467. package/templates/static/node_modules/@types/node/domain.d.ts +0 -170
  468. package/templates/static/node_modules/@types/node/events.d.ts +0 -976
  469. package/templates/static/node_modules/@types/node/fs/promises.d.ts +0 -1295
  470. package/templates/static/node_modules/@types/node/fs.d.ts +0 -4461
  471. package/templates/static/node_modules/@types/node/globals.d.ts +0 -172
  472. package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +0 -38
  473. package/templates/static/node_modules/@types/node/http.d.ts +0 -2089
  474. package/templates/static/node_modules/@types/node/http2.d.ts +0 -2644
  475. package/templates/static/node_modules/@types/node/https.d.ts +0 -579
  476. package/templates/static/node_modules/@types/node/index.d.ts +0 -97
  477. package/templates/static/node_modules/@types/node/inspector.d.ts +0 -253
  478. package/templates/static/node_modules/@types/node/inspector.generated.d.ts +0 -4052
  479. package/templates/static/node_modules/@types/node/module.d.ts +0 -891
  480. package/templates/static/node_modules/@types/node/net.d.ts +0 -1057
  481. package/templates/static/node_modules/@types/node/os.d.ts +0 -506
  482. package/templates/static/node_modules/@types/node/package.json +0 -145
  483. package/templates/static/node_modules/@types/node/path.d.ts +0 -200
  484. package/templates/static/node_modules/@types/node/perf_hooks.d.ts +0 -968
  485. package/templates/static/node_modules/@types/node/process.d.ts +0 -2089
  486. package/templates/static/node_modules/@types/node/punycode.d.ts +0 -117
  487. package/templates/static/node_modules/@types/node/querystring.d.ts +0 -152
  488. package/templates/static/node_modules/@types/node/readline/promises.d.ts +0 -161
  489. package/templates/static/node_modules/@types/node/readline.d.ts +0 -594
  490. package/templates/static/node_modules/@types/node/repl.d.ts +0 -428
  491. package/templates/static/node_modules/@types/node/sea.d.ts +0 -153
  492. package/templates/static/node_modules/@types/node/sqlite.d.ts +0 -721
  493. package/templates/static/node_modules/@types/node/stream/consumers.d.ts +0 -38
  494. package/templates/static/node_modules/@types/node/stream/promises.d.ts +0 -90
  495. package/templates/static/node_modules/@types/node/stream/web.d.ts +0 -622
  496. package/templates/static/node_modules/@types/node/stream.d.ts +0 -1664
  497. package/templates/static/node_modules/@types/node/string_decoder.d.ts +0 -67
  498. package/templates/static/node_modules/@types/node/test.d.ts +0 -2163
  499. package/templates/static/node_modules/@types/node/timers/promises.d.ts +0 -108
  500. package/templates/static/node_modules/@types/node/timers.d.ts +0 -287
  501. package/templates/static/node_modules/@types/node/tls.d.ts +0 -1319
  502. package/templates/static/node_modules/@types/node/trace_events.d.ts +0 -197
  503. package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
  504. package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
  505. package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +0 -97
  506. package/templates/static/node_modules/@types/node/tty.d.ts +0 -208
  507. package/templates/static/node_modules/@types/node/url.d.ts +0 -984
  508. package/templates/static/node_modules/@types/node/util.d.ts +0 -2606
  509. package/templates/static/node_modules/@types/node/v8.d.ts +0 -920
  510. package/templates/static/node_modules/@types/node/vm.d.ts +0 -1000
  511. package/templates/static/node_modules/@types/node/wasi.d.ts +0 -181
  512. package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  513. package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  514. package/templates/static/node_modules/@types/node/web-globals/events.d.ts +0 -97
  515. package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
  516. package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
  517. package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +0 -24
  518. package/templates/static/node_modules/@types/node/worker_threads.d.ts +0 -784
  519. package/templates/static/node_modules/@types/node/zlib.d.ts +0 -683
  520. package/templates/static/node_modules/esbuild/LICENSE.md +0 -21
  521. package/templates/static/node_modules/esbuild/README.md +0 -3
  522. package/templates/static/node_modules/esbuild/bin/esbuild +0 -223
  523. package/templates/static/node_modules/esbuild/install.js +0 -289
  524. package/templates/static/node_modules/esbuild/lib/main.d.ts +0 -716
  525. package/templates/static/node_modules/esbuild/lib/main.js +0 -2242
  526. package/templates/static/node_modules/esbuild/package.json +0 -49
  527. package/templates/static/node_modules/mrmime/index.d.ts +0 -2
  528. package/templates/static/node_modules/mrmime/index.js +0 -449
  529. package/templates/static/node_modules/mrmime/index.mjs +0 -448
  530. package/templates/static/node_modules/mrmime/license +0 -21
  531. package/templates/static/node_modules/mrmime/package.json +0 -44
  532. package/templates/static/node_modules/mrmime/readme.md +0 -130
  533. package/templates/static/node_modules/preact/README.md +0 -185
  534. package/templates/static/node_modules/preact/compat/client.d.ts +0 -13
  535. package/templates/static/node_modules/preact/compat/client.js +0 -21
  536. package/templates/static/node_modules/preact/compat/client.mjs +0 -24
  537. package/templates/static/node_modules/preact/compat/dist/compat.js +0 -2
  538. package/templates/static/node_modules/preact/compat/dist/compat.js.map +0 -1
  539. package/templates/static/node_modules/preact/compat/dist/compat.mjs +0 -2
  540. package/templates/static/node_modules/preact/compat/dist/compat.module.js +0 -2
  541. package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +0 -1
  542. package/templates/static/node_modules/preact/compat/dist/compat.umd.js +0 -2
  543. package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
  544. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
  545. package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
  546. package/templates/static/node_modules/preact/compat/jsx-runtime.js +0 -3
  547. package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +0 -3
  548. package/templates/static/node_modules/preact/compat/package.json +0 -55
  549. package/templates/static/node_modules/preact/compat/scheduler.js +0 -15
  550. package/templates/static/node_modules/preact/compat/scheduler.mjs +0 -23
  551. package/templates/static/node_modules/preact/compat/server.browser.js +0 -11
  552. package/templates/static/node_modules/preact/compat/server.js +0 -36
  553. package/templates/static/node_modules/preact/compat/server.mjs +0 -17
  554. package/templates/static/node_modules/preact/compat/src/Children.js +0 -21
  555. package/templates/static/node_modules/preact/compat/src/PureComponent.js +0 -16
  556. package/templates/static/node_modules/preact/compat/src/forwardRef.js +0 -44
  557. package/templates/static/node_modules/preact/compat/src/hooks.js +0 -70
  558. package/templates/static/node_modules/preact/compat/src/index.d.ts +0 -351
  559. package/templates/static/node_modules/preact/compat/src/index.js +0 -238
  560. package/templates/static/node_modules/preact/compat/src/internal.d.ts +0 -48
  561. package/templates/static/node_modules/preact/compat/src/memo.js +0 -35
  562. package/templates/static/node_modules/preact/compat/src/portals.js +0 -78
  563. package/templates/static/node_modules/preact/compat/src/render.js +0 -313
  564. package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +0 -16
  565. package/templates/static/node_modules/preact/compat/src/suspense-list.js +0 -127
  566. package/templates/static/node_modules/preact/compat/src/suspense.d.ts +0 -19
  567. package/templates/static/node_modules/preact/compat/src/suspense.js +0 -291
  568. package/templates/static/node_modules/preact/compat/src/util.js +0 -33
  569. package/templates/static/node_modules/preact/compat/test-utils.js +0 -1
  570. package/templates/static/node_modules/preact/compat/test-utils.mjs +0 -1
  571. package/templates/static/node_modules/preact/debug/dist/debug.js +0 -2
  572. package/templates/static/node_modules/preact/debug/dist/debug.js.map +0 -1
  573. package/templates/static/node_modules/preact/debug/dist/debug.mjs +0 -2
  574. package/templates/static/node_modules/preact/debug/dist/debug.module.js +0 -2
  575. package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +0 -1
  576. package/templates/static/node_modules/preact/debug/dist/debug.umd.js +0 -2
  577. package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
  578. package/templates/static/node_modules/preact/debug/package.json +0 -27
  579. package/templates/static/node_modules/preact/debug/src/check-props.js +0 -54
  580. package/templates/static/node_modules/preact/debug/src/component-stack.js +0 -146
  581. package/templates/static/node_modules/preact/debug/src/constants.js +0 -3
  582. package/templates/static/node_modules/preact/debug/src/debug.js +0 -593
  583. package/templates/static/node_modules/preact/debug/src/index.d.ts +0 -23
  584. package/templates/static/node_modules/preact/debug/src/index.js +0 -12
  585. package/templates/static/node_modules/preact/debug/src/internal.d.ts +0 -82
  586. package/templates/static/node_modules/preact/debug/src/util.js +0 -15
  587. package/templates/static/node_modules/preact/devtools/dist/devtools.js +0 -2
  588. package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +0 -1
  589. package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +0 -2
  590. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +0 -2
  591. package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
  592. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
  593. package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
  594. package/templates/static/node_modules/preact/devtools/package.json +0 -25
  595. package/templates/static/node_modules/preact/devtools/src/devtools.js +0 -21
  596. package/templates/static/node_modules/preact/devtools/src/index.d.ts +0 -8
  597. package/templates/static/node_modules/preact/devtools/src/index.js +0 -15
  598. package/templates/static/node_modules/preact/dist/preact.js +0 -2
  599. package/templates/static/node_modules/preact/dist/preact.js.map +0 -1
  600. package/templates/static/node_modules/preact/dist/preact.min.js +0 -2
  601. package/templates/static/node_modules/preact/dist/preact.min.js.map +0 -1
  602. package/templates/static/node_modules/preact/dist/preact.min.module.js +0 -2
  603. package/templates/static/node_modules/preact/dist/preact.min.module.js.map +0 -1
  604. package/templates/static/node_modules/preact/dist/preact.min.umd.js +0 -2
  605. package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +0 -1
  606. package/templates/static/node_modules/preact/dist/preact.mjs +0 -2
  607. package/templates/static/node_modules/preact/dist/preact.module.js +0 -2
  608. package/templates/static/node_modules/preact/dist/preact.module.js.map +0 -1
  609. package/templates/static/node_modules/preact/dist/preact.umd.js +0 -2
  610. package/templates/static/node_modules/preact/dist/preact.umd.js.map +0 -1
  611. package/templates/static/node_modules/preact/hooks/dist/hooks.js +0 -2
  612. package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +0 -1
  613. package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +0 -2
  614. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +0 -2
  615. package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
  616. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
  617. package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
  618. package/templates/static/node_modules/preact/hooks/package.json +0 -35
  619. package/templates/static/node_modules/preact/hooks/src/index.d.ts +0 -145
  620. package/templates/static/node_modules/preact/hooks/src/index.js +0 -555
  621. package/templates/static/node_modules/preact/hooks/src/internal.d.ts +0 -103
  622. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
  623. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
  624. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
  625. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
  626. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
  627. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
  628. package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
  629. package/templates/static/node_modules/preact/jsx-runtime/package.json +0 -28
  630. package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +0 -62
  631. package/templates/static/node_modules/preact/jsx-runtime/src/index.js +0 -206
  632. package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +0 -36
  633. package/templates/static/node_modules/preact/package.json +0 -258
  634. package/templates/static/node_modules/preact/src/cjs.js +0 -3
  635. package/templates/static/node_modules/preact/src/clone-element.js +0 -48
  636. package/templates/static/node_modules/preact/src/component.js +0 -249
  637. package/templates/static/node_modules/preact/src/constants.js +0 -22
  638. package/templates/static/node_modules/preact/src/create-context.js +0 -60
  639. package/templates/static/node_modules/preact/src/create-element.js +0 -97
  640. package/templates/static/node_modules/preact/src/diff/catch-error.js +0 -46
  641. package/templates/static/node_modules/preact/src/diff/children.js +0 -451
  642. package/templates/static/node_modules/preact/src/diff/index.js +0 -684
  643. package/templates/static/node_modules/preact/src/diff/props.js +0 -173
  644. package/templates/static/node_modules/preact/src/dom.d.ts +0 -2476
  645. package/templates/static/node_modules/preact/src/index-5.d.ts +0 -399
  646. package/templates/static/node_modules/preact/src/index.d.ts +0 -402
  647. package/templates/static/node_modules/preact/src/index.js +0 -13
  648. package/templates/static/node_modules/preact/src/internal.d.ts +0 -190
  649. package/templates/static/node_modules/preact/src/jsx.d.ts +0 -2878
  650. package/templates/static/node_modules/preact/src/options.js +0 -16
  651. package/templates/static/node_modules/preact/src/render.js +0 -78
  652. package/templates/static/node_modules/preact/src/util.js +0 -28
  653. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +0 -2
  654. package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
  655. package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
  656. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
  657. package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
  658. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
  659. package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
  660. package/templates/static/node_modules/preact/test-utils/package.json +0 -28
  661. package/templates/static/node_modules/preact/test-utils/src/index.d.ts +0 -3
  662. package/templates/static/node_modules/preact/test-utils/src/index.js +0 -129
  663. package/templates/static/node_modules/preact-render-to-string/LICENSE +0 -21
  664. package/templates/static/node_modules/preact-render-to-string/README.md +0 -149
  665. package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
  666. package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +0 -17
  667. package/templates/static/node_modules/preact-render-to-string/dist/index.js +0 -6
  668. package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +0 -1
  669. package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +0 -2
  670. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +0 -2
  671. package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
  672. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +0 -2
  673. package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +0 -1
  674. package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +0 -35
  675. package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +0 -2
  676. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +0 -4
  677. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +0 -1
  678. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +0 -2
  679. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +0 -2
  680. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +0 -1
  681. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +0 -2
  682. package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +0 -1
  683. package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -24
  684. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +0 -2
  685. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +0 -1
  686. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +0 -2
  687. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +0 -2
  688. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +0 -1
  689. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +0 -2
  690. package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +0 -1
  691. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +0 -884
  692. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +0 -1
  693. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +0 -884
  694. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +0 -884
  695. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +0 -1
  696. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +0 -888
  697. package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +0 -1
  698. package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +0 -19
  699. package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +0 -10
  700. package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +0 -24
  701. package/templates/static/node_modules/preact-render-to-string/jsx.js +0 -1
  702. package/templates/static/node_modules/preact-render-to-string/package.json +0 -152
  703. package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +0 -17
  704. package/templates/static/node_modules/preact-render-to-string/src/index.js +0 -764
  705. package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +0 -35
  706. package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +0 -24
  707. package/templates/static/node_modules/preact-render-to-string/src/jsx.js +0 -102
  708. package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +0 -97
  709. package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +0 -62
  710. package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +0 -20
  711. package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +0 -8
  712. package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +0 -208
  713. package/templates/static/node_modules/preact-render-to-string/src/pretty.js +0 -491
  714. package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +0 -19
  715. package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +0 -84
  716. package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +0 -10
  717. package/templates/static/node_modules/preact-render-to-string/src/stream.js +0 -43
  718. package/templates/static/node_modules/preact-render-to-string/typings.json +0 -5
  719. package/templates/static/node_modules/sirv/build.js +0 -197
  720. package/templates/static/node_modules/sirv/build.mjs +0 -197
  721. package/templates/static/node_modules/sirv/index.d.mts +0 -29
  722. package/templates/static/node_modules/sirv/index.d.ts +0 -33
  723. package/templates/static/node_modules/sirv/package.json +0 -40
  724. package/templates/static/node_modules/sirv/readme.md +0 -238
  725. package/templates/static/node_modules/totalist/dist/index.js +0 -24
  726. package/templates/static/node_modules/totalist/dist/index.mjs +0 -22
  727. package/templates/static/node_modules/totalist/index.d.ts +0 -3
  728. package/templates/static/node_modules/totalist/license +0 -21
  729. package/templates/static/node_modules/totalist/package.json +0 -55
  730. package/templates/static/node_modules/totalist/readme.md +0 -109
  731. package/templates/static/node_modules/totalist/sync/index.d.ts +0 -3
  732. package/templates/static/node_modules/totalist/sync/index.js +0 -17
  733. package/templates/static/node_modules/totalist/sync/index.mjs +0 -15
  734. package/templates/static/node_modules/typescript/bin/tsc +0 -2
  735. package/templates/static/node_modules/typescript/bin/tsserver +0 -2
  736. package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
  737. package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
  738. package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
  739. package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
  740. package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
  741. package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
  742. package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
  743. package/templates/static/node_modules/typescript/lib/lib.d.ts +0 -22
  744. package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
  745. package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
  746. package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
  747. package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
  748. package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
  749. package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
  750. package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
  751. package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
  752. package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
  753. package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
  754. package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
  755. package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
  756. package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
  757. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
  758. package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
  759. package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
  760. package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
  761. package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
  762. package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
  763. package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
  764. package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
  765. package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
  766. package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
  767. package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
  768. package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
  769. package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
  770. package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
  771. package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
  772. package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
  773. package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
  774. package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
  775. package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
  776. package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
  777. package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
  778. package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
  779. package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
  780. package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
  781. package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
  782. package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
  783. package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
  784. package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
  785. package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
  786. package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
  787. package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
  788. package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
  789. package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
  790. package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
  791. package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
  792. package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
  793. package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
  794. package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
  795. package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
  796. package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
  797. package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
  798. package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
  799. package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
  800. package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
  801. package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
  802. package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
  803. package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
  804. package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
  805. package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
  806. package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
  807. package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
  808. package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
  809. package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
  810. package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
  811. package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
  812. package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
  813. package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
  814. package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
  815. package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
  816. package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
  817. package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
  818. package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
  819. package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
  820. package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
  821. package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
  822. package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
  823. package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
  824. package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
  825. package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +0 -23
  826. package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
  827. package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
  828. package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
  829. package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
  830. package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
  831. package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
  832. package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
  833. package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
  834. package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
  835. package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
  836. package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
  837. package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
  838. package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
  839. package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
  840. package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
  841. package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
  842. package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
  843. package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
  844. package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
  845. package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
  846. package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
  847. package/templates/static/node_modules/typescript/lib/tsc.js +0 -8
  848. package/templates/static/node_modules/typescript/lib/tsserver.js +0 -8
  849. package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
  850. package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +0 -21
  851. package/templates/static/node_modules/typescript/lib/typescript.d.ts +0 -11437
  852. /package/templates/{static → ssr-isr}/lib/auth/index.d.ts +0 -0
  853. /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/jen.config.d.ts +0 -0
  854. /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/site/index.d.ts +0 -0
  855. /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/jen.config.d.ts +0 -0
  856. /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/site/index.d.ts +0 -0
  857. /package/templates/{static → ssr-isr}/lib/compilers/esbuild-plugins.d.ts +0 -0
  858. /package/templates/{static/lib/middleware/types.d.ts → ssr-isr/lib/core/config.js} +0 -0
  859. /package/templates/{static → ssr-isr}/lib/middleware/errors/handler.d.ts +0 -0
  860. /package/templates/{static → ssr-isr}/lib/middleware/utils/matcher.d.ts +0 -0
  861. /package/templates/static/{node_modules → lib/vendor}/preact/LICENSE +0 -0
@@ -1,176 +1,275 @@
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.
1
+ import path from "path";
2
+ import {
3
+ ensureDir,
4
+ readJSON,
5
+ writeJSON,
6
+ generateId,
7
+ matchFilter,
8
+ applyUpdate,
9
+ } from "./utils";
10
+ /**
11
+ * In-memory representation of a single collection.
12
+ * Manages document storage, serialization, and basic file I/O.
13
+ * Supports lazy loading of data from disk and deferred save operations to batch writes.
14
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/>.
15
+ * @template T Document type, must extend the Document base type.
17
16
  */
18
- import path from "path";
19
- import { ensureDir, readJSON, writeJSON, generateId, matchFilter, applyUpdate, } from "./utils";
20
17
  class JDBCollection {
21
- name;
22
- dir;
23
- inMemory;
24
- file;
25
- data = [];
26
- loaded = false;
27
- saving = false;
28
- queueSave = false;
29
- constructor(name, dir, inMemory) {
30
- this.name = name;
31
- this.dir = dir;
32
- this.inMemory = inMemory;
33
- this.file = path.join(dir, `${name}.jdb`);
34
- }
35
- async load() {
36
- if (this.loaded)
37
- return;
38
- if (!this.inMemory) {
39
- await ensureDir(this.dir);
40
- const content = await readJSON(this.file);
41
- this.data = content || [];
42
- }
43
- this.loaded = true;
18
+ name;
19
+ dir;
20
+ inMemory;
21
+ /** Absolute path to the .jdb file for this collection. */
22
+ file;
23
+ /** In-memory array of documents. */
24
+ data = [];
25
+ /** Flag indicating whether the data has been loaded from disk. */
26
+ loaded = false;
27
+ /** Flag indicating a save operation is currently in progress. */
28
+ saving = false;
29
+ /** Flag indicating a save was requested while another save was in progress. Triggers another save after current one completes. */
30
+ queueSave = false;
31
+ /**
32
+ * Create a new collection instance.
33
+ * Does not load data until an operation requires it (lazy loading).
34
+ *
35
+ * @param name Name of the collection.
36
+ * @param dir Directory where collection files are stored.
37
+ * @param inMemory If true, data is never persisted to disk.
38
+ */
39
+ constructor(name, dir, inMemory) {
40
+ this.name = name;
41
+ this.dir = dir;
42
+ this.inMemory = inMemory;
43
+ this.file = path.join(dir, `${name}.jdb`);
44
+ }
45
+ /**
46
+ * Load collection data from disk on first access.
47
+ * Uses lazy loading to defer file I/O until actually needed.
48
+ * In-memory collections skip disk reads entirely.
49
+ * Idempotent: subsequent calls return immediately if already loaded.
50
+ */
51
+ async load() {
52
+ if (this.loaded) return;
53
+ if (!this.inMemory) {
54
+ await ensureDir(this.dir);
55
+ const content = await readJSON(this.file);
56
+ this.data = content || [];
44
57
  }
45
- async save() {
46
- if (this.inMemory)
47
- return;
48
- if (this.saving) {
49
- this.queueSave = true;
50
- return;
51
- }
52
- this.saving = true;
53
- try {
54
- await writeJSON(this.file, this.data);
55
- }
56
- finally {
57
- this.saving = false;
58
- if (this.queueSave) {
59
- this.queueSave = false;
60
- this.save();
61
- }
62
- }
58
+ this.loaded = true;
59
+ }
60
+ /**
61
+ * Persist collection data to disk.
62
+ * Uses a queue mechanism to batch multiple rapid modifications into a single write.
63
+ * If a save is already in progress, queues the next save to run after current one completes.
64
+ * In-memory collections skip disk writes entirely.
65
+ */
66
+ async save() {
67
+ if (this.inMemory) return;
68
+ if (this.saving) {
69
+ this.queueSave = true;
70
+ return;
63
71
  }
64
- async insert(doc) {
65
- await this.load();
66
- const now = Date.now();
67
- const newDoc = {
68
- _id: doc._id || generateId(),
69
- _created: now,
70
- _updated: now,
71
- ...doc,
72
- };
73
- this.data.push(newDoc);
72
+ this.saving = true;
73
+ try {
74
+ await writeJSON(this.file, this.data);
75
+ } finally {
76
+ this.saving = false;
77
+ if (this.queueSave) {
78
+ this.queueSave = false;
74
79
  this.save();
75
- return newDoc;
76
- }
77
- async insertMany(docs) {
78
- await this.load();
79
- const now = Date.now();
80
- const newDocs = docs.map((doc) => ({
81
- _id: doc._id || generateId(),
82
- _created: now,
83
- _updated: now,
84
- ...doc,
85
- }));
86
- this.data.push(...newDocs);
87
- this.save();
88
- return newDocs;
89
- }
90
- async findOne(filter) {
91
- await this.load();
92
- return this.data.find((doc) => matchFilter(doc, filter)) || null;
80
+ }
93
81
  }
94
- async find(filter, options) {
95
- await this.load();
96
- let result = this.data.filter((doc) => matchFilter(doc, filter));
97
- if (options?.sort) {
98
- const sortKeys = Object.keys(options.sort);
99
- result.sort((a, b) => {
100
- for (const key of sortKeys) {
101
- const dir = options.sort[key];
102
- if (a[key] < b[key])
103
- return -1 * dir;
104
- if (a[key] > b[key])
105
- return 1 * dir;
106
- }
107
- return 0;
108
- });
82
+ }
83
+ /**
84
+ * Insert a single document into the collection.
85
+ * Automatically assigns a UUID for _id (if not provided) and timestamps for _created and _updated.
86
+ * Queues a save operation to persist the document.
87
+ *
88
+ * @param doc The document to insert, without system fields.
89
+ * @returns The inserted document with _id, _created, and _updated populated.
90
+ */
91
+ async insert(doc) {
92
+ await this.load();
93
+ const now = Date.now();
94
+ const newDoc = {
95
+ _id: doc._id || generateId(),
96
+ _created: now,
97
+ _updated: now,
98
+ ...doc,
99
+ };
100
+ this.data.push(newDoc);
101
+ this.save();
102
+ return newDoc;
103
+ }
104
+ /**
105
+ * Insert multiple documents into the collection atomically.
106
+ * All documents are assigned the same _created timestamp.
107
+ * Queues a single save operation to persist all documents.
108
+ *
109
+ * @param docs Array of documents to insert.
110
+ * @returns Array of inserted documents with all system fields populated.
111
+ */
112
+ async insertMany(docs) {
113
+ await this.load();
114
+ const now = Date.now();
115
+ const newDocs = docs.map((doc) => ({
116
+ _id: doc._id || generateId(),
117
+ _created: now,
118
+ _updated: now,
119
+ ...doc,
120
+ }));
121
+ this.data.push(...newDocs);
122
+ this.save();
123
+ return newDocs;
124
+ }
125
+ /**
126
+ * Find the first document matching the filter.
127
+ *
128
+ * @param filter Query filter to apply.
129
+ * @returns The first matching document, or null if no match found.
130
+ */
131
+ async findOne(filter) {
132
+ await this.load();
133
+ return this.data.find((doc) => matchFilter(doc, filter)) || null;
134
+ }
135
+ /**
136
+ * Find all documents matching the filter with optional sorting and pagination.
137
+ * Applies sort, skip, and limit in that order for correct pagination behavior.
138
+ *
139
+ * @param filter Query filter to apply.
140
+ * @param options Optional QueryOptions for sorting, skipping, and limiting results.
141
+ * @returns Array of matching documents (empty array if no matches).
142
+ */
143
+ async find(filter, options) {
144
+ await this.load();
145
+ let result = this.data.filter((doc) => matchFilter(doc, filter));
146
+ if (options?.sort) {
147
+ const sortKeys = Object.keys(options.sort);
148
+ result.sort((a, b) => {
149
+ for (const key of sortKeys) {
150
+ const dir = options.sort[key];
151
+ if (a[key] < b[key]) return -1 * dir;
152
+ if (a[key] > b[key]) return 1 * dir;
109
153
  }
110
- if (options?.skip) {
111
- result = result.slice(options.skip);
112
- }
113
- if (options?.limit) {
114
- result = result.slice(0, options.limit);
115
- }
116
- return result;
154
+ return 0;
155
+ });
117
156
  }
118
- async update(filter, update, multi = false) {
119
- await this.load();
120
- let count = 0;
121
- for (const doc of this.data) {
122
- if (matchFilter(doc, filter)) {
123
- applyUpdate(doc, update);
124
- count++;
125
- if (!multi)
126
- break;
127
- }
128
- }
129
- if (count > 0)
130
- this.save();
131
- return count;
157
+ if (options?.skip) {
158
+ result = result.slice(options.skip);
132
159
  }
133
- async delete(filter, multi = false) {
134
- await this.load();
135
- const originalLen = this.data.length;
136
- if (!multi) {
137
- const index = this.data.findIndex((doc) => matchFilter(doc, filter));
138
- if (index !== -1) {
139
- this.data.splice(index, 1);
140
- this.save();
141
- return 1;
142
- }
143
- return 0;
144
- }
145
- else {
146
- this.data = this.data.filter((doc) => !matchFilter(doc, filter));
147
- const deleted = originalLen - this.data.length;
148
- if (deleted > 0)
149
- this.save();
150
- return deleted;
151
- }
160
+ if (options?.limit) {
161
+ result = result.slice(0, options.limit);
162
+ }
163
+ return result;
164
+ }
165
+ /**
166
+ * Update document(s) matching the filter.
167
+ * Applies update operators atomically and updates the _updated timestamp.
168
+ * By default, updates only the first matching document. Set multi=true to update all.
169
+ *
170
+ * @param filter Query filter to select documents to update.
171
+ * @param update Update operators and values to apply.
172
+ * @param multi If false (default), updates only first match. If true, updates all matches.
173
+ * @returns Count of documents updated.
174
+ */
175
+ async update(filter, update, multi = false) {
176
+ await this.load();
177
+ let count = 0;
178
+ for (const doc of this.data) {
179
+ if (matchFilter(doc, filter)) {
180
+ applyUpdate(doc, update);
181
+ count++;
182
+ if (!multi) break;
183
+ }
152
184
  }
153
- async count(filter) {
154
- await this.load();
155
- return this.data.filter((doc) => matchFilter(doc, filter)).length;
185
+ if (count > 0) this.save();
186
+ return count;
187
+ }
188
+ /**
189
+ * Delete document(s) matching the filter.
190
+ * By default, deletes only the first matching document. Set multi=true to delete all.
191
+ *
192
+ * @param filter Query filter to select documents to delete.
193
+ * @param multi If false (default), deletes only first match. If true, deletes all matches.
194
+ * @returns Count of documents deleted.
195
+ */
196
+ async delete(filter, multi = false) {
197
+ await this.load();
198
+ const originalLen = this.data.length;
199
+ if (!multi) {
200
+ const index = this.data.findIndex((doc) => matchFilter(doc, filter));
201
+ if (index !== -1) {
202
+ this.data.splice(index, 1);
203
+ this.save();
204
+ return 1;
205
+ }
206
+ return 0;
207
+ } else {
208
+ this.data = this.data.filter((doc) => !matchFilter(doc, filter));
209
+ const deleted = originalLen - this.data.length;
210
+ if (deleted > 0) this.save();
211
+ return deleted;
156
212
  }
213
+ }
214
+ /**
215
+ * Count documents matching the filter.
216
+ *
217
+ * @param filter Query filter to apply.
218
+ * @returns Number of documents matching the filter.
219
+ */
220
+ async count(filter) {
221
+ await this.load();
222
+ return this.data.filter((doc) => matchFilter(doc, filter)).length;
223
+ }
157
224
  }
225
+ /**
226
+ * File-based database engine implementation.
227
+ * Stores collections as JSON files in the configured directory.
228
+ * Provides lazy collection initialization and in-memory option for testing.
229
+ */
158
230
  export class JDBEngine {
159
- config;
160
- collections = new Map();
161
- constructor(config) {
162
- this.config = config;
163
- }
164
- async connect() {
165
- await ensureDir(this.config.root);
166
- }
167
- async disconnect() {
168
- // No-op for file based, maybe ensure all saves are flushed
169
- }
170
- collection(name) {
171
- if (!this.collections.has(name)) {
172
- this.collections.set(name, new JDBCollection(name, this.config.root, !!this.config.inMemory));
173
- }
174
- return this.collections.get(name);
231
+ config;
232
+ /** Cached collection instances. Created on demand and reused for subsequent accesses. */
233
+ collections = new Map();
234
+ /**
235
+ * Create a new database engine instance.
236
+ *
237
+ * @param config Configuration specifying storage root directory and memory mode.
238
+ */
239
+ constructor(config) {
240
+ this.config = config;
241
+ }
242
+ /**
243
+ * Establish database connection by ensuring the storage root directory exists.
244
+ * Creates the directory recursively if it doesn't exist.
245
+ */
246
+ async connect() {
247
+ await ensureDir(this.config.root);
248
+ }
249
+ /**
250
+ * Close database connection and clean up resources.
251
+ * Currently a no-op for file-based storage, but provided for compatibility with IDatabaseEngine interface.
252
+ * Future versions may flush pending writes or close file handles here.
253
+ */
254
+ async disconnect() {
255
+ // No-op for file based, maybe ensure all saves are flushed
256
+ }
257
+ /**
258
+ * Get or create a collection by name.
259
+ * Collections are cached after first access, so subsequent calls return the same instance.
260
+ * Uses lazy initialization: data is not loaded from disk until the collection is accessed.
261
+ *
262
+ * @template T Document type for the collection.
263
+ * @param name Unique name for the collection. Used to generate the .jdb filename.
264
+ * @returns Collection instance for CRUD operations.
265
+ */
266
+ collection(name) {
267
+ if (!this.collections.has(name)) {
268
+ this.collections.set(
269
+ name,
270
+ new JDBCollection(name, this.config.root, !!this.config.inMemory),
271
+ );
175
272
  }
273
+ return this.collections.get(name);
274
+ }
176
275
  }
@@ -1,19 +1,34 @@
1
- /*
2
- * This file is part of Jen.js.
3
- * Copyright (C) 2026 oopsio
1
+ /**
2
+ * JDB (Jen Database) - A lightweight embedded JSON database for Jen.js applications.
4
3
  *
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.
4
+ * JDB provides MongoDB-like CRUD operations with file-based or in-memory storage.
5
+ * Perfect for small to medium applications that need data persistence without external dependencies.
9
6
  *
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.
7
+ * Features:
8
+ * - MongoDB-like query syntax with filter operators ($eq, $gt, $in, $regex, etc.)
9
+ * - Atomic update operations ($set, $inc, $push, etc.)
10
+ * - Pagination, sorting, and filtering
11
+ * - Lazy loading and deferred writes for performance
12
+ * - In-memory mode for testing
13
+ * - Simple JSON file format for easy inspection and migration
14
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/>.
15
+ * @example
16
+ * import { JDBEngine, type ICollection, type Document } from '../jdb';
17
+ *
18
+ * interface User extends Document {
19
+ * name: string;
20
+ * email: string;
21
+ * age: number;
22
+ * }
23
+ *
24
+ * const db = new JDBEngine({ root: './data' });
25
+ * await db.connect();
26
+ *
27
+ * const users = db.collection<User>('users');
28
+ * const user = await users.insert({ name: 'John', email: 'john@example.com', age: 30 });
29
+ * const found = await users.findOne({ email: 'john@example.com' });
30
+ * await users.update({ _id: user._id }, { $set: { age: 31 } });
31
+ * await users.delete({ _id: user._id });
17
32
  */
18
33
  export * from "./types";
19
34
  export { JDBEngine } from "./engine";
@@ -1,18 +1 @@
1
- /*
2
- * This file is part of Jen.js.
3
- * Copyright (C) 2026 oopsio
4
- *
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
- */
18
1
  export {};