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.
- package/README.md +3 -1
- package/dist/colors.js +0 -17
- package/dist/create.js +5 -17
- package/dist/generator.js +14 -31
- package/package.json +2 -2
- package/templates/ssr-isr/README.md +77 -0
- package/templates/ssr-isr/build.js +118 -0
- package/templates/ssr-isr/jen.config.ts +109 -0
- package/templates/ssr-isr/jenjs.d.ts +22 -0
- package/templates/ssr-isr/lib/api/(hello).d.ts +7 -0
- package/templates/ssr-isr/lib/api/(hello).js +9 -0
- package/templates/ssr-isr/lib/auth/cookie-utils.d.ts +33 -0
- package/templates/ssr-isr/lib/auth/cookie-utils.js +79 -0
- package/templates/ssr-isr/lib/auth/index.js +2 -0
- package/templates/ssr-isr/lib/auth/jwt.d.ts +30 -0
- package/templates/ssr-isr/lib/auth/jwt.js +57 -0
- package/templates/ssr-isr/lib/auth/session.d.ts +44 -0
- package/templates/ssr-isr/lib/auth/session.js +92 -0
- package/templates/ssr-isr/lib/build/asset-hashing.d.ts +10 -0
- package/templates/ssr-isr/lib/build/asset-hashing.js +25 -0
- package/templates/ssr-isr/lib/build/asset-manifest.d.ts +11 -0
- package/templates/ssr-isr/lib/build/asset-manifest.js +21 -0
- package/templates/ssr-isr/lib/build/build.d.ts +24 -0
- package/templates/ssr-isr/lib/build/build.js +141 -0
- package/templates/{static → ssr-isr}/lib/build/island-hydration.d.ts +8 -5
- package/templates/ssr-isr/lib/build/island-hydration.js +44 -0
- package/templates/ssr-isr/lib/build/minifier.d.ts +20 -0
- package/templates/ssr-isr/lib/build/minifier.js +46 -0
- package/templates/ssr-isr/lib/build/page-renderer.d.ts +17 -0
- package/templates/ssr-isr/lib/build/page-renderer.js +28 -0
- package/templates/ssr-isr/lib/build/production-build.d.ts +10 -0
- package/templates/ssr-isr/lib/build/production-build.js +13 -0
- package/templates/ssr-isr/lib/build/ssg-pipeline.d.ts +15 -0
- package/templates/ssr-isr/lib/build/ssg-pipeline.js +113 -0
- package/templates/{static → ssr-isr}/lib/build-tools/build-site.d.ts +3 -3
- package/templates/ssr-isr/lib/build-tools/build-site.js +36 -0
- package/templates/ssr-isr/lib/cache/index.d.ts +10 -0
- package/templates/ssr-isr/lib/cache/index.js +10 -0
- package/templates/ssr-isr/lib/cache/memory.d.ts +33 -0
- package/templates/ssr-isr/lib/cache/memory.js +40 -0
- package/templates/ssr-isr/lib/cache/redis.d.ts +45 -0
- package/templates/ssr-isr/lib/cache/redis.js +61 -0
- package/templates/ssr-isr/lib/cli/banner.d.ts +5 -0
- package/templates/ssr-isr/lib/cli/banner.js +28 -0
- package/templates/ssr-isr/lib/cli/templates/ssg/jen.config.js +32 -0
- package/templates/ssr-isr/lib/cli/templates/ssg/site/index.js +9 -0
- package/templates/ssr-isr/lib/cli/templates/ssr/jen.config.js +32 -0
- package/templates/ssr-isr/lib/cli/templates/ssr/site/index.js +9 -0
- package/templates/ssr-isr/lib/compilers/esbuild-plugins.js +111 -0
- package/templates/ssr-isr/lib/compilers/svelte.d.ts +18 -0
- package/templates/ssr-isr/lib/compilers/svelte.js +44 -0
- package/templates/ssr-isr/lib/compilers/vue.d.ts +15 -0
- package/templates/ssr-isr/lib/compilers/vue.js +90 -0
- package/templates/ssr-isr/lib/core/config.d.ts +220 -0
- package/templates/ssr-isr/lib/core/http.d.ts +56 -0
- package/templates/ssr-isr/lib/core/http.js +71 -0
- package/templates/ssr-isr/lib/core/middleware-hooks.d.ts +219 -0
- package/templates/ssr-isr/lib/core/middleware-hooks.js +97 -0
- package/templates/ssr-isr/lib/core/paths.d.ts +44 -0
- package/templates/ssr-isr/lib/core/paths.js +39 -0
- package/templates/ssr-isr/lib/core/routes/match.d.ts +54 -0
- package/templates/ssr-isr/lib/core/routes/match.js +47 -0
- package/templates/ssr-isr/lib/core/routes/scan.d.ts +53 -0
- package/templates/ssr-isr/lib/core/routes/scan.js +190 -0
- package/templates/ssr-isr/lib/core/types.d.ts +153 -0
- package/templates/ssr-isr/lib/core/types.js +1 -0
- package/templates/ssr-isr/lib/css/compiler.d.ts +23 -0
- package/templates/ssr-isr/lib/css/compiler.js +74 -0
- package/templates/ssr-isr/lib/db/connector.d.ts +30 -0
- package/templates/ssr-isr/lib/db/connector.js +42 -0
- package/templates/ssr-isr/lib/db/drivers/jdb.d.ts +17 -0
- package/templates/ssr-isr/lib/db/drivers/jdb.js +44 -0
- package/templates/ssr-isr/lib/db/drivers/sql.d.ts +22 -0
- package/templates/ssr-isr/lib/db/drivers/sql.js +182 -0
- package/templates/ssr-isr/lib/db/index.d.ts +27 -0
- package/templates/ssr-isr/lib/db/index.js +48 -0
- package/templates/ssr-isr/lib/db/types.d.ts +33 -0
- package/templates/ssr-isr/lib/db/types.js +1 -0
- package/templates/ssr-isr/lib/graphql/index.d.ts +48 -0
- package/templates/ssr-isr/lib/graphql/index.js +52 -0
- package/templates/ssr-isr/lib/graphql/resolvers.d.ts +57 -0
- package/templates/ssr-isr/lib/graphql/resolvers.js +25 -0
- package/templates/ssr-isr/lib/graphql/schema.d.ts +35 -0
- package/templates/ssr-isr/lib/graphql/schema.js +35 -0
- package/templates/ssr-isr/lib/i18n/en.json +4 -0
- package/templates/ssr-isr/lib/i18n/es.json +4 -0
- package/templates/ssr-isr/lib/i18n/index.d.ts +8 -0
- package/templates/ssr-isr/lib/i18n/index.js +15 -0
- package/templates/ssr-isr/lib/import/jen-import.d.ts +56 -0
- package/templates/ssr-isr/lib/import/jen-import.js +161 -0
- package/templates/{static → ssr-isr}/lib/index.d.ts +42 -11
- package/templates/ssr-isr/lib/index.js +116 -0
- package/templates/ssr-isr/lib/jdb/engine.d.ts +38 -0
- package/templates/ssr-isr/lib/jdb/engine.js +275 -0
- package/templates/ssr-isr/lib/jdb/index.d.ts +34 -0
- package/templates/ssr-isr/lib/jdb/index.js +34 -0
- package/templates/ssr-isr/lib/jdb/types.d.ts +228 -0
- package/templates/ssr-isr/lib/jdb/types.js +1 -0
- package/templates/ssr-isr/lib/jdb/utils.d.ts +66 -0
- package/templates/ssr-isr/lib/jdb/utils.js +176 -0
- package/templates/ssr-isr/lib/middleware/builtins/body-parser.d.ts +16 -0
- package/templates/ssr-isr/lib/middleware/builtins/body-parser.js +56 -0
- package/templates/ssr-isr/lib/middleware/builtins/cors.d.ts +15 -0
- package/templates/ssr-isr/lib/middleware/builtins/cors.js +54 -0
- package/templates/ssr-isr/lib/middleware/builtins/logger.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/logger.js +34 -0
- package/templates/ssr-isr/lib/middleware/builtins/rate-limit.d.ts +22 -0
- package/templates/ssr-isr/lib/middleware/builtins/rate-limit.js +79 -0
- package/templates/ssr-isr/lib/middleware/builtins/request-id.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/request-id.js +29 -0
- package/templates/ssr-isr/lib/middleware/builtins/security-headers.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/builtins/security-headers.js +53 -0
- package/templates/ssr-isr/lib/middleware/context.d.ts +105 -0
- package/templates/ssr-isr/lib/middleware/context.js +124 -0
- package/templates/ssr-isr/lib/middleware/decorators.d.ts +19 -0
- package/templates/ssr-isr/lib/middleware/decorators.js +93 -0
- package/templates/ssr-isr/lib/middleware/errors/handler.js +46 -0
- package/templates/ssr-isr/lib/middleware/errors/http-error.d.ts +5 -0
- package/templates/ssr-isr/lib/middleware/errors/http-error.js +10 -0
- package/templates/ssr-isr/lib/middleware/kernel.d.ts +69 -0
- package/templates/ssr-isr/lib/middleware/kernel.js +85 -0
- package/templates/ssr-isr/lib/middleware/pipeline.d.ts +53 -0
- package/templates/ssr-isr/lib/middleware/pipeline.js +148 -0
- package/templates/ssr-isr/lib/middleware/registry.d.ts +69 -0
- package/templates/ssr-isr/lib/middleware/registry.js +85 -0
- package/templates/ssr-isr/lib/middleware/response.d.ts +75 -0
- package/templates/ssr-isr/lib/middleware/response.js +107 -0
- package/templates/ssr-isr/lib/middleware/types.d.ts +1 -0
- package/templates/ssr-isr/lib/middleware/types.js +1 -0
- package/templates/ssr-isr/lib/middleware/utils/matcher.js +13 -0
- package/templates/ssr-isr/lib/native/bundle.d.ts +24 -0
- package/templates/ssr-isr/lib/native/bundle.js +22 -0
- package/templates/ssr-isr/lib/native/dev-server.d.ts +13 -0
- package/templates/ssr-isr/lib/native/dev-server.js +23 -0
- package/templates/{static → ssr-isr}/lib/native/index.d.ts +20 -20
- package/templates/ssr-isr/lib/native/index.js +33 -0
- package/templates/ssr-isr/lib/native/optimizer.d.ts +21 -0
- package/templates/ssr-isr/lib/native/optimizer.js +20 -0
- package/templates/ssr-isr/lib/native/style-compiler.d.ts +19 -0
- package/templates/ssr-isr/lib/native/style-compiler.js +19 -0
- package/templates/ssr-isr/lib/plugin/loader.d.ts +10 -0
- package/templates/ssr-isr/lib/plugin/loader.js +36 -0
- package/templates/ssr-isr/lib/runtime/client-runtime.d.ts +16 -0
- package/templates/ssr-isr/lib/runtime/client-runtime.js +25 -0
- package/templates/ssr-isr/lib/runtime/hmr.d.ts +23 -0
- package/templates/ssr-isr/lib/runtime/hmr.js +59 -0
- package/templates/ssr-isr/lib/runtime/hydrate.d.ts +18 -0
- package/templates/ssr-isr/lib/runtime/hydrate.js +55 -0
- package/templates/ssr-isr/lib/runtime/island-hydration-client.d.ts +8 -0
- package/templates/ssr-isr/lib/runtime/island-hydration-client.js +146 -0
- package/templates/ssr-isr/lib/runtime/islands.d.ts +101 -0
- package/templates/ssr-isr/lib/runtime/islands.js +110 -0
- package/templates/ssr-isr/lib/runtime/render.d.ts +40 -0
- package/templates/ssr-isr/lib/runtime/render.js +244 -0
- package/templates/ssr-isr/lib/server/api-routes.d.ts +112 -0
- package/templates/ssr-isr/lib/server/api-routes.js +237 -0
- package/templates/{static → ssr-isr}/lib/server/api.d.ts +3 -3
- package/templates/ssr-isr/lib/server/api.js +108 -0
- package/templates/ssr-isr/lib/server/app.d.ts +44 -0
- package/templates/ssr-isr/lib/server/app.js +438 -0
- package/templates/ssr-isr/lib/server/runtimeServe.d.ts +60 -0
- package/templates/ssr-isr/lib/server/runtimeServe.js +169 -0
- package/templates/ssr-isr/lib/server/ssr.d.ts +161 -0
- package/templates/ssr-isr/lib/server/ssr.js +202 -0
- package/templates/ssr-isr/lib/shared/log.d.ts +49 -0
- package/templates/ssr-isr/lib/shared/log.js +64 -0
- package/templates/ssr-isr/package.json +23 -0
- package/templates/ssr-isr/server.js +128 -0
- package/templates/ssr-isr/site/pages/(index).tsx +11 -0
- package/templates/ssr-isr/site/styles/global.scss +37 -0
- package/templates/ssr-isr/tsconfig.json +39 -0
- package/templates/static/README.md +63 -67
- package/templates/static/build.js +31 -21
- package/templates/static/jen.config.ts +0 -20
- package/templates/static/jenjs.d.ts +0 -18
- package/templates/static/lib/api/(hello).js +7 -24
- package/templates/static/lib/api/examples/files/[...slug].js +22 -0
- package/templates/static/lib/api/examples/hello.js +11 -0
- package/templates/static/lib/api/examples/posts/[id].js +37 -0
- package/templates/static/lib/api/examples/posts.js +37 -0
- package/templates/static/lib/api/examples/search.js +23 -0
- package/templates/static/lib/api/index.js +41 -0
- package/templates/static/lib/api/loader.js +234 -0
- package/templates/static/lib/api/router.js +259 -0
- package/templates/static/lib/assets/types.js +1 -0
- package/templates/static/lib/auth/cookie-utils.js +69 -85
- package/templates/static/lib/auth/index.js +0 -17
- package/templates/static/lib/auth/jwt.js +48 -21
- package/templates/static/lib/auth/session.js +79 -98
- package/templates/static/lib/build/asset-hashing.js +47 -39
- package/templates/static/lib/build/asset-manifest.js +18 -35
- package/templates/static/lib/build/build.js +277 -95
- package/templates/static/lib/build/bundle-analyzer-ui.js +417 -0
- package/templates/static/lib/build/bundle-analyzer.js +945 -0
- package/templates/static/lib/build/code-splitter.js +194 -0
- package/templates/static/lib/build/feature-analyzer.js +190 -0
- package/templates/static/lib/build/feature-gate.js +257 -0
- package/templates/static/lib/build/island-hydration.js +17 -35
- package/templates/static/lib/build/lazy-loader.js +322 -0
- package/templates/static/lib/build/minifier.js +42 -61
- package/templates/static/lib/build/page-renderer.js +25 -42
- package/templates/static/lib/build/production-build.js +11 -28
- package/templates/static/lib/build/rust-hashing.js +71 -0
- package/templates/static/lib/build/script-optimizer.js +285 -0
- package/templates/static/lib/build/ssg-pipeline.js +107 -113
- package/templates/static/lib/build/vercel-output.js +298 -0
- package/templates/static/lib/build-tools/build-site.js +27 -47
- package/templates/static/lib/cache/index.js +6 -15
- package/templates/static/lib/cache/memory.js +37 -28
- package/templates/static/lib/cache/redis.js +56 -28
- package/templates/static/lib/cli/banner.js +18 -31
- package/templates/static/lib/cli/templates/ssg/jen.config.js +29 -46
- package/templates/static/lib/cli/templates/ssg/site/index.js +6 -1
- package/templates/static/lib/cli/templates/ssr/jen.config.js +29 -46
- package/templates/static/lib/cli/templates/ssr/site/index.js +6 -1
- package/templates/static/lib/client/Image.js +42 -0
- package/templates/static/lib/client/Link.js +190 -0
- package/templates/static/lib/client/PWA.js +46 -0
- package/templates/static/lib/client/Seo.js +97 -0
- package/templates/static/lib/client/index.js +9 -0
- package/templates/static/lib/client/useNavigation.js +25 -0
- package/templates/static/lib/client/useRouter.js +64 -0
- package/templates/static/lib/client-routing/Link.js +17 -0
- package/templates/static/lib/client-routing/index.js +19 -0
- package/templates/static/lib/client-routing/router.js +151 -0
- package/templates/static/lib/client-routing/signal.js +147 -0
- package/templates/static/lib/compilers/esbuild-plugins.js +96 -115
- package/templates/static/lib/compilers/svelte.js +31 -48
- package/templates/static/lib/compilers/vue.js +76 -85
- package/templates/static/lib/core/config.js +0 -17
- package/templates/static/lib/core/feature-guard.js +136 -0
- package/templates/static/lib/core/features.js +99 -0
- package/templates/static/lib/core/http.js +65 -36
- package/templates/static/lib/core/layouts/index.js +10 -0
- package/templates/static/lib/core/layouts/render.js +158 -0
- package/templates/static/lib/core/layouts/scan.js +112 -0
- package/templates/static/lib/core/layouts/types.js +1 -0
- package/templates/static/lib/core/lifecycle.js +129 -0
- package/templates/static/lib/core/loader-schema.js +81 -0
- package/templates/static/lib/core/middleware-hooks.js +86 -58
- package/templates/static/lib/core/paths.js +31 -16
- package/templates/static/lib/core/routes/advanced.js +114 -0
- package/templates/static/lib/core/routes/handlers.js +181 -0
- package/templates/static/lib/core/routes/match.js +129 -24
- package/templates/static/lib/core/routes/orchestrator.js +171 -0
- package/templates/static/lib/core/routes/rendering-config.js +131 -0
- package/templates/static/lib/core/routes/scan.js +174 -132
- package/templates/static/lib/core/types.js +0 -17
- package/templates/static/lib/css/compiler.js +63 -76
- package/templates/static/lib/data-fetching/cache.js +223 -0
- package/templates/static/lib/data-fetching/client.js +202 -0
- package/templates/static/lib/data-fetching/feature-guard.js +29 -0
- package/templates/static/lib/data-fetching/graphql.js +265 -0
- package/templates/static/lib/data-fetching/index.js +57 -0
- package/templates/static/lib/data-fetching/rest.js +256 -0
- package/templates/static/lib/data-fetching/server.js +182 -0
- package/templates/static/lib/data-fetching/types.js +5 -0
- package/templates/static/lib/db/connector.js +37 -28
- package/templates/static/lib/db/drivers/jdb.js +41 -56
- package/templates/static/lib/db/drivers/sql.js +152 -152
- package/templates/static/lib/db/index.js +42 -59
- package/templates/static/lib/db/types.js +0 -17
- package/templates/static/lib/devtools/component-tree.js +106 -0
- package/templates/static/lib/devtools/devtools.js +638 -0
- package/templates/static/lib/devtools/event-bus.js +29 -0
- package/templates/static/lib/devtools/event-logger.js +67 -0
- package/templates/static/lib/devtools/index.js +9 -0
- package/templates/static/lib/devtools/integration.js +149 -0
- package/templates/static/lib/devtools/performance.js +84 -0
- package/templates/static/lib/devtools/persistence.js +57 -0
- package/templates/static/lib/devtools/plugins.js +97 -0
- package/templates/static/lib/devtools/search.js +89 -0
- package/templates/static/lib/devtools/ui.js +769 -0
- package/templates/static/lib/features/api/handler.js +10 -0
- package/templates/static/lib/features/api/index.js +5 -0
- package/templates/static/lib/features/api/types.js +4 -0
- package/templates/static/lib/features/middleware/compiled.js +7 -0
- package/templates/static/lib/features/middleware/index.js +5 -0
- package/templates/static/lib/features/middleware/types.js +4 -0
- package/templates/static/lib/fonts/index.js +46 -0
- package/templates/static/lib/fonts/inject.js +125 -0
- package/templates/static/lib/fonts/loader.js +196 -0
- package/templates/static/lib/fonts/types.js +1 -0
- package/templates/static/lib/graphql/index.js +46 -16
- package/templates/static/lib/graphql/resolvers.js +42 -19
- package/templates/static/lib/graphql/schema.js +30 -15
- package/templates/static/lib/i18n/en.json +2 -2
- package/templates/static/lib/i18n/es.json +2 -2
- package/templates/static/lib/i18n/index.js +17 -29
- package/templates/static/lib/import/jen-import.js +130 -97
- package/templates/static/lib/index.js +82 -115
- package/templates/static/lib/jdb/engine.js +259 -160
- package/templates/static/lib/jdb/index.js +28 -13
- package/templates/static/lib/jdb/types.js +0 -17
- package/templates/static/lib/jdb/utils.js +159 -124
- package/templates/static/lib/middleware/builtins/cors.js +55 -64
- package/templates/static/lib/middleware/context.js +120 -46
- package/templates/static/lib/middleware/kernel.js +186 -31
- package/templates/static/lib/middleware/pipeline.js +140 -59
- package/templates/static/lib/middleware/registry.js +80 -36
- package/templates/static/lib/middleware/response.js +101 -54
- package/templates/static/lib/plugin/examples/analytics-plugin.js +183 -0
- package/templates/static/lib/plugin/examples/cdn-upload-plugin.js +94 -0
- package/templates/static/lib/plugin/loader.js +25 -48
- package/templates/static/lib/plugin/plugin-manager.js +177 -0
- package/templates/static/lib/plugin/types.js +28 -0
- package/templates/static/lib/runtime/client-runtime.js +19 -22
- package/templates/static/lib/runtime/hmr.js +23 -18
- package/templates/static/lib/runtime/hydrate.js +47 -37
- package/templates/static/lib/runtime/island-hydration-client.js +122 -108
- package/templates/static/lib/runtime/islands.js +92 -71
- package/templates/static/lib/runtime/render.js +385 -149
- package/templates/static/lib/security/security-config.js +60 -0
- package/templates/static/lib/security/security-middleware.js +229 -0
- package/templates/static/lib/server/api-routes.js +339 -171
- package/templates/static/lib/server/api.js +93 -109
- package/templates/static/lib/server/app.js +660 -270
- package/templates/static/lib/server/isr.js +365 -0
- package/templates/static/lib/server/runtimeServe.js +157 -89
- package/templates/static/lib/server/ssr.js +295 -0
- package/templates/static/lib/server-actions/handler.js +180 -0
- package/templates/static/lib/server-actions/index.js +19 -0
- package/templates/static/lib/server-actions/middleware.js +146 -0
- package/templates/static/lib/server-actions/scan.js +152 -0
- package/templates/static/lib/server-actions/types.js +1 -0
- package/templates/static/lib/server-actions/validators.js +156 -0
- package/templates/static/lib/shared/log.js +74 -25
- package/templates/static/lib/telemetry/api/rate-limiter.js +32 -0
- package/templates/static/lib/telemetry/api/validator.js +67 -0
- package/templates/static/lib/telemetry/client.js +121 -0
- package/templates/static/lib/telemetry/tests/rate-limiter.test.js +46 -0
- package/templates/static/lib/telemetry/tests/validator.test.js +62 -0
- package/templates/static/lib/vendor/glob/glob.js +4766 -0
- package/templates/static/lib/vendor/preact/preact.module.js +797 -0
- package/templates/static/lib/vendor/sass/sass.node.mjs +212 -0
- package/templates/static/package.json +4 -0
- package/templates/static/server.js +23 -25
- package/templates/static/site/(home).tsx +12 -12
- package/templates/static/site/styles/global.scss +89 -78
- package/templates/static/tsconfig.json +43 -39
- package/templates/static/.esbuild/jen.config.js +0 -1
- package/templates/static/lib/api/(hello).d.ts +0 -7
- package/templates/static/lib/auth/cookie-utils.d.ts +0 -24
- package/templates/static/lib/auth/jwt.d.ts +0 -2
- package/templates/static/lib/auth/session.d.ts +0 -44
- package/templates/static/lib/build/asset-hashing.d.ts +0 -10
- package/templates/static/lib/build/asset-manifest.d.ts +0 -11
- package/templates/static/lib/build/build.d.ts +0 -4
- package/templates/static/lib/build/minifier.d.ts +0 -20
- package/templates/static/lib/build/page-renderer.d.ts +0 -17
- package/templates/static/lib/build/production-build.d.ts +0 -10
- package/templates/static/lib/build/ssg-pipeline.d.ts +0 -15
- package/templates/static/lib/cache/index.d.ts +0 -2
- package/templates/static/lib/cache/memory.d.ts +0 -6
- package/templates/static/lib/cache/redis.d.ts +0 -6
- package/templates/static/lib/cli/banner.d.ts +0 -1
- package/templates/static/lib/compilers/svelte.d.ts +0 -18
- package/templates/static/lib/compilers/vue.d.ts +0 -15
- package/templates/static/lib/core/config.d.ts +0 -53
- package/templates/static/lib/core/http.d.ts +0 -3
- package/templates/static/lib/core/middleware-hooks.d.ts +0 -46
- package/templates/static/lib/core/paths.d.ts +0 -6
- package/templates/static/lib/core/routes/match.d.ts +0 -6
- package/templates/static/lib/core/routes/scan.d.ts +0 -9
- package/templates/static/lib/core/types.d.ts +0 -18
- package/templates/static/lib/css/compiler.d.ts +0 -20
- package/templates/static/lib/db/connector.d.ts +0 -4
- package/templates/static/lib/db/drivers/jdb.d.ts +0 -13
- package/templates/static/lib/db/drivers/sql.d.ts +0 -18
- package/templates/static/lib/db/index.d.ts +0 -19
- package/templates/static/lib/db/types.d.ts +0 -29
- package/templates/static/lib/graphql/index.d.ts +0 -1
- package/templates/static/lib/graphql/resolvers.d.ts +0 -17
- package/templates/static/lib/graphql/schema.d.ts +0 -1
- package/templates/static/lib/i18n/index.d.ts +0 -8
- package/templates/static/lib/import/jen-import.d.ts +0 -27
- package/templates/static/lib/jdb/engine.d.ts +0 -9
- package/templates/static/lib/jdb/index.d.ts +0 -2
- package/templates/static/lib/jdb/types.d.ts +0 -46
- package/templates/static/lib/jdb/utils.d.ts +0 -6
- package/templates/static/lib/middleware/builtins/body-parser.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/body-parser.js +0 -55
- package/templates/static/lib/middleware/builtins/cors.d.ts +0 -13
- package/templates/static/lib/middleware/builtins/logger.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/logger.js +0 -33
- package/templates/static/lib/middleware/builtins/rate-limit.d.ts +0 -5
- package/templates/static/lib/middleware/builtins/rate-limit.js +0 -76
- package/templates/static/lib/middleware/builtins/request-id.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/request-id.js +0 -25
- package/templates/static/lib/middleware/builtins/security-headers.d.ts +0 -1
- package/templates/static/lib/middleware/builtins/security-headers.js +0 -39
- package/templates/static/lib/middleware/context.d.ts +0 -18
- package/templates/static/lib/middleware/decorators.d.ts +0 -2
- package/templates/static/lib/middleware/decorators.js +0 -61
- package/templates/static/lib/middleware/errors/handler.js +0 -65
- package/templates/static/lib/middleware/errors/http-error.d.ts +0 -5
- package/templates/static/lib/middleware/errors/http-error.js +0 -27
- package/templates/static/lib/middleware/kernel.d.ts +0 -6
- package/templates/static/lib/middleware/pipeline.d.ts +0 -4
- package/templates/static/lib/middleware/registry.d.ts +0 -10
- package/templates/static/lib/middleware/response.d.ts +0 -13
- package/templates/static/lib/middleware/types.js +0 -18
- package/templates/static/lib/middleware/utils/matcher.js +0 -31
- package/templates/static/lib/native/bundle.d.ts +0 -19
- package/templates/static/lib/native/bundle.js +0 -39
- package/templates/static/lib/native/dev-server.d.ts +0 -6
- package/templates/static/lib/native/dev-server.js +0 -38
- package/templates/static/lib/native/index.js +0 -48
- package/templates/static/lib/native/optimizer.d.ts +0 -17
- package/templates/static/lib/native/optimizer.js +0 -37
- package/templates/static/lib/native/style-compiler.d.ts +0 -10
- package/templates/static/lib/native/style-compiler.js +0 -36
- package/templates/static/lib/plugin/loader.d.ts +0 -8
- package/templates/static/lib/runtime/client-runtime.d.ts +0 -1
- package/templates/static/lib/runtime/hmr.d.ts +0 -1
- package/templates/static/lib/runtime/hydrate.d.ts +0 -1
- package/templates/static/lib/runtime/island-hydration-client.d.ts +0 -5
- package/templates/static/lib/runtime/islands.d.ts +0 -46
- package/templates/static/lib/runtime/render.d.ts +0 -13
- package/templates/static/lib/server/api-routes.d.ts +0 -44
- package/templates/static/lib/server/app.d.ts +0 -10
- package/templates/static/lib/server/runtimeServe.d.ts +0 -4
- package/templates/static/lib/shared/log.d.ts +0 -5
- package/templates/static/node_modules/.bin/esbuild +0 -16
- package/templates/static/node_modules/.bin/esbuild.cmd +0 -17
- package/templates/static/node_modules/.bin/esbuild.ps1 +0 -28
- package/templates/static/node_modules/.bin/tsc +0 -16
- package/templates/static/node_modules/.bin/tsc.cmd +0 -17
- package/templates/static/node_modules/.bin/tsc.ps1 +0 -28
- package/templates/static/node_modules/.bin/tsserver +0 -16
- package/templates/static/node_modules/.bin/tsserver.cmd +0 -17
- package/templates/static/node_modules/.bin/tsserver.ps1 +0 -28
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +0 -14
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +0 -11
- package/templates/static/node_modules/.package-lock.json +0 -585
- package/templates/static/node_modules/@esbuild/win32-x64/README.md +0 -3
- package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
- package/templates/static/node_modules/@esbuild/win32-x64/package.json +0 -20
- package/templates/static/node_modules/@jenjs/master/README.md +0 -24
- package/templates/static/node_modules/@jenjs/master/index.js +0 -3655
- package/templates/static/node_modules/@jenjs/master/package.json +0 -36
- package/templates/static/node_modules/@polka/url/build.js +0 -49
- package/templates/static/node_modules/@polka/url/build.mjs +0 -47
- package/templates/static/node_modules/@polka/url/index.d.ts +0 -11
- package/templates/static/node_modules/@polka/url/package.json +0 -30
- package/templates/static/node_modules/@polka/url/readme.md +0 -68
- package/templates/static/node_modules/@types/node/LICENSE +0 -21
- package/templates/static/node_modules/@types/node/README.md +0 -15
- package/templates/static/node_modules/@types/node/assert/strict.d.ts +0 -111
- package/templates/static/node_modules/@types/node/assert.d.ts +0 -1078
- package/templates/static/node_modules/@types/node/async_hooks.d.ts +0 -603
- package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +0 -472
- package/templates/static/node_modules/@types/node/buffer.d.ts +0 -1934
- package/templates/static/node_modules/@types/node/child_process.d.ts +0 -1476
- package/templates/static/node_modules/@types/node/cluster.d.ts +0 -578
- package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
- package/templates/static/node_modules/@types/node/compatibility/index.d.ts +0 -9
- package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
- package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
- package/templates/static/node_modules/@types/node/console.d.ts +0 -452
- package/templates/static/node_modules/@types/node/constants.d.ts +0 -21
- package/templates/static/node_modules/@types/node/crypto.d.ts +0 -4545
- package/templates/static/node_modules/@types/node/dgram.d.ts +0 -600
- package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +0 -578
- package/templates/static/node_modules/@types/node/dns/promises.d.ts +0 -503
- package/templates/static/node_modules/@types/node/dns.d.ts +0 -923
- package/templates/static/node_modules/@types/node/domain.d.ts +0 -170
- package/templates/static/node_modules/@types/node/events.d.ts +0 -976
- package/templates/static/node_modules/@types/node/fs/promises.d.ts +0 -1295
- package/templates/static/node_modules/@types/node/fs.d.ts +0 -4461
- package/templates/static/node_modules/@types/node/globals.d.ts +0 -172
- package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +0 -38
- package/templates/static/node_modules/@types/node/http.d.ts +0 -2089
- package/templates/static/node_modules/@types/node/http2.d.ts +0 -2644
- package/templates/static/node_modules/@types/node/https.d.ts +0 -579
- package/templates/static/node_modules/@types/node/index.d.ts +0 -97
- package/templates/static/node_modules/@types/node/inspector.d.ts +0 -253
- package/templates/static/node_modules/@types/node/inspector.generated.d.ts +0 -4052
- package/templates/static/node_modules/@types/node/module.d.ts +0 -891
- package/templates/static/node_modules/@types/node/net.d.ts +0 -1057
- package/templates/static/node_modules/@types/node/os.d.ts +0 -506
- package/templates/static/node_modules/@types/node/package.json +0 -145
- package/templates/static/node_modules/@types/node/path.d.ts +0 -200
- package/templates/static/node_modules/@types/node/perf_hooks.d.ts +0 -968
- package/templates/static/node_modules/@types/node/process.d.ts +0 -2089
- package/templates/static/node_modules/@types/node/punycode.d.ts +0 -117
- package/templates/static/node_modules/@types/node/querystring.d.ts +0 -152
- package/templates/static/node_modules/@types/node/readline/promises.d.ts +0 -161
- package/templates/static/node_modules/@types/node/readline.d.ts +0 -594
- package/templates/static/node_modules/@types/node/repl.d.ts +0 -428
- package/templates/static/node_modules/@types/node/sea.d.ts +0 -153
- package/templates/static/node_modules/@types/node/sqlite.d.ts +0 -721
- package/templates/static/node_modules/@types/node/stream/consumers.d.ts +0 -38
- package/templates/static/node_modules/@types/node/stream/promises.d.ts +0 -90
- package/templates/static/node_modules/@types/node/stream/web.d.ts +0 -622
- package/templates/static/node_modules/@types/node/stream.d.ts +0 -1664
- package/templates/static/node_modules/@types/node/string_decoder.d.ts +0 -67
- package/templates/static/node_modules/@types/node/test.d.ts +0 -2163
- package/templates/static/node_modules/@types/node/timers/promises.d.ts +0 -108
- package/templates/static/node_modules/@types/node/timers.d.ts +0 -287
- package/templates/static/node_modules/@types/node/tls.d.ts +0 -1319
- package/templates/static/node_modules/@types/node/trace_events.d.ts +0 -197
- package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -468
- package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -34
- package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +0 -97
- package/templates/static/node_modules/@types/node/tty.d.ts +0 -208
- package/templates/static/node_modules/@types/node/url.d.ts +0 -984
- package/templates/static/node_modules/@types/node/util.d.ts +0 -2606
- package/templates/static/node_modules/@types/node/v8.d.ts +0 -920
- package/templates/static/node_modules/@types/node/vm.d.ts +0 -1000
- package/templates/static/node_modules/@types/node/wasi.d.ts +0 -181
- package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
- package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
- package/templates/static/node_modules/@types/node/web-globals/events.d.ts +0 -97
- package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +0 -55
- package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +0 -22
- package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +0 -24
- package/templates/static/node_modules/@types/node/worker_threads.d.ts +0 -784
- package/templates/static/node_modules/@types/node/zlib.d.ts +0 -683
- package/templates/static/node_modules/esbuild/LICENSE.md +0 -21
- package/templates/static/node_modules/esbuild/README.md +0 -3
- package/templates/static/node_modules/esbuild/bin/esbuild +0 -223
- package/templates/static/node_modules/esbuild/install.js +0 -289
- package/templates/static/node_modules/esbuild/lib/main.d.ts +0 -716
- package/templates/static/node_modules/esbuild/lib/main.js +0 -2242
- package/templates/static/node_modules/esbuild/package.json +0 -49
- package/templates/static/node_modules/mrmime/index.d.ts +0 -2
- package/templates/static/node_modules/mrmime/index.js +0 -449
- package/templates/static/node_modules/mrmime/index.mjs +0 -448
- package/templates/static/node_modules/mrmime/license +0 -21
- package/templates/static/node_modules/mrmime/package.json +0 -44
- package/templates/static/node_modules/mrmime/readme.md +0 -130
- package/templates/static/node_modules/preact/README.md +0 -185
- package/templates/static/node_modules/preact/compat/client.d.ts +0 -13
- package/templates/static/node_modules/preact/compat/client.js +0 -21
- package/templates/static/node_modules/preact/compat/client.mjs +0 -24
- package/templates/static/node_modules/preact/compat/dist/compat.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.js.map +0 -1
- package/templates/static/node_modules/preact/compat/dist/compat.mjs +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.module.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +0 -1
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js +0 -2
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
- package/templates/static/node_modules/preact/compat/jsx-runtime.js +0 -3
- package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +0 -3
- package/templates/static/node_modules/preact/compat/package.json +0 -55
- package/templates/static/node_modules/preact/compat/scheduler.js +0 -15
- package/templates/static/node_modules/preact/compat/scheduler.mjs +0 -23
- package/templates/static/node_modules/preact/compat/server.browser.js +0 -11
- package/templates/static/node_modules/preact/compat/server.js +0 -36
- package/templates/static/node_modules/preact/compat/server.mjs +0 -17
- package/templates/static/node_modules/preact/compat/src/Children.js +0 -21
- package/templates/static/node_modules/preact/compat/src/PureComponent.js +0 -16
- package/templates/static/node_modules/preact/compat/src/forwardRef.js +0 -44
- package/templates/static/node_modules/preact/compat/src/hooks.js +0 -70
- package/templates/static/node_modules/preact/compat/src/index.d.ts +0 -351
- package/templates/static/node_modules/preact/compat/src/index.js +0 -238
- package/templates/static/node_modules/preact/compat/src/internal.d.ts +0 -48
- package/templates/static/node_modules/preact/compat/src/memo.js +0 -35
- package/templates/static/node_modules/preact/compat/src/portals.js +0 -78
- package/templates/static/node_modules/preact/compat/src/render.js +0 -313
- package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +0 -16
- package/templates/static/node_modules/preact/compat/src/suspense-list.js +0 -127
- package/templates/static/node_modules/preact/compat/src/suspense.d.ts +0 -19
- package/templates/static/node_modules/preact/compat/src/suspense.js +0 -291
- package/templates/static/node_modules/preact/compat/src/util.js +0 -33
- package/templates/static/node_modules/preact/compat/test-utils.js +0 -1
- package/templates/static/node_modules/preact/compat/test-utils.mjs +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.js.map +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.mjs +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.module.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +0 -1
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js +0 -2
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
- package/templates/static/node_modules/preact/debug/package.json +0 -27
- package/templates/static/node_modules/preact/debug/src/check-props.js +0 -54
- package/templates/static/node_modules/preact/debug/src/component-stack.js +0 -146
- package/templates/static/node_modules/preact/debug/src/constants.js +0 -3
- package/templates/static/node_modules/preact/debug/src/debug.js +0 -593
- package/templates/static/node_modules/preact/debug/src/index.d.ts +0 -23
- package/templates/static/node_modules/preact/debug/src/index.js +0 -12
- package/templates/static/node_modules/preact/debug/src/internal.d.ts +0 -82
- package/templates/static/node_modules/preact/debug/src/util.js +0 -15
- package/templates/static/node_modules/preact/devtools/dist/devtools.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
- package/templates/static/node_modules/preact/devtools/package.json +0 -25
- package/templates/static/node_modules/preact/devtools/src/devtools.js +0 -21
- package/templates/static/node_modules/preact/devtools/src/index.d.ts +0 -8
- package/templates/static/node_modules/preact/devtools/src/index.js +0 -15
- package/templates/static/node_modules/preact/dist/preact.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.module.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.module.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.min.umd.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.mjs +0 -2
- package/templates/static/node_modules/preact/dist/preact.module.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.module.js.map +0 -1
- package/templates/static/node_modules/preact/dist/preact.umd.js +0 -2
- package/templates/static/node_modules/preact/dist/preact.umd.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
- package/templates/static/node_modules/preact/hooks/package.json +0 -35
- package/templates/static/node_modules/preact/hooks/src/index.d.ts +0 -145
- package/templates/static/node_modules/preact/hooks/src/index.js +0 -555
- package/templates/static/node_modules/preact/hooks/src/internal.d.ts +0 -103
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
- package/templates/static/node_modules/preact/jsx-runtime/package.json +0 -28
- package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +0 -62
- package/templates/static/node_modules/preact/jsx-runtime/src/index.js +0 -206
- package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +0 -36
- package/templates/static/node_modules/preact/package.json +0 -258
- package/templates/static/node_modules/preact/src/cjs.js +0 -3
- package/templates/static/node_modules/preact/src/clone-element.js +0 -48
- package/templates/static/node_modules/preact/src/component.js +0 -249
- package/templates/static/node_modules/preact/src/constants.js +0 -22
- package/templates/static/node_modules/preact/src/create-context.js +0 -60
- package/templates/static/node_modules/preact/src/create-element.js +0 -97
- package/templates/static/node_modules/preact/src/diff/catch-error.js +0 -46
- package/templates/static/node_modules/preact/src/diff/children.js +0 -451
- package/templates/static/node_modules/preact/src/diff/index.js +0 -684
- package/templates/static/node_modules/preact/src/diff/props.js +0 -173
- package/templates/static/node_modules/preact/src/dom.d.ts +0 -2476
- package/templates/static/node_modules/preact/src/index-5.d.ts +0 -399
- package/templates/static/node_modules/preact/src/index.d.ts +0 -402
- package/templates/static/node_modules/preact/src/index.js +0 -13
- package/templates/static/node_modules/preact/src/internal.d.ts +0 -190
- package/templates/static/node_modules/preact/src/jsx.d.ts +0 -2878
- package/templates/static/node_modules/preact/src/options.js +0 -16
- package/templates/static/node_modules/preact/src/render.js +0 -78
- package/templates/static/node_modules/preact/src/util.js +0 -28
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
- package/templates/static/node_modules/preact/test-utils/package.json +0 -28
- package/templates/static/node_modules/preact/test-utils/src/index.d.ts +0 -3
- package/templates/static/node_modules/preact/test-utils/src/index.js +0 -129
- package/templates/static/node_modules/preact-render-to-string/LICENSE +0 -21
- package/templates/static/node_modules/preact-render-to-string/README.md +0 -149
- package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +0 -17
- package/templates/static/node_modules/preact-render-to-string/dist/index.js +0 -6
- package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +0 -35
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +0 -4
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +0 -2
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +0 -884
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +0 -888
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +0 -1
- package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +0 -19
- package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +0 -10
- package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/jsx.js +0 -1
- package/templates/static/node_modules/preact-render-to-string/package.json +0 -152
- package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +0 -17
- package/templates/static/node_modules/preact-render-to-string/src/index.js +0 -764
- package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +0 -35
- package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +0 -24
- package/templates/static/node_modules/preact-render-to-string/src/jsx.js +0 -102
- package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +0 -97
- package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +0 -62
- package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +0 -20
- package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +0 -8
- package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +0 -208
- package/templates/static/node_modules/preact-render-to-string/src/pretty.js +0 -491
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +0 -19
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +0 -84
- package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +0 -10
- package/templates/static/node_modules/preact-render-to-string/src/stream.js +0 -43
- package/templates/static/node_modules/preact-render-to-string/typings.json +0 -5
- package/templates/static/node_modules/sirv/build.js +0 -197
- package/templates/static/node_modules/sirv/build.mjs +0 -197
- package/templates/static/node_modules/sirv/index.d.mts +0 -29
- package/templates/static/node_modules/sirv/index.d.ts +0 -33
- package/templates/static/node_modules/sirv/package.json +0 -40
- package/templates/static/node_modules/sirv/readme.md +0 -238
- package/templates/static/node_modules/totalist/dist/index.js +0 -24
- package/templates/static/node_modules/totalist/dist/index.mjs +0 -22
- package/templates/static/node_modules/totalist/index.d.ts +0 -3
- package/templates/static/node_modules/totalist/license +0 -21
- package/templates/static/node_modules/totalist/package.json +0 -55
- package/templates/static/node_modules/totalist/readme.md +0 -109
- package/templates/static/node_modules/totalist/sync/index.d.ts +0 -3
- package/templates/static/node_modules/totalist/sync/index.js +0 -17
- package/templates/static/node_modules/totalist/sync/index.mjs +0 -15
- package/templates/static/node_modules/typescript/bin/tsc +0 -2
- package/templates/static/node_modules/typescript/bin/tsserver +0 -2
- package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/lib.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +0 -384
- package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +0 -39429
- package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +0 -571
- package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +0 -147
- package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +0 -597
- package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +0 -77
- package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +0 -605
- package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +0 -81
- package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +0 -128
- package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +0 -144
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +0 -46
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +0 -116
- package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +0 -31
- package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +0 -31
- package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +0 -44
- package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +0 -49
- package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +0 -135
- package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +0 -45
- package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +0 -53
- package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +0 -77
- package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +0 -53
- package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +0 -83
- package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +0 -30
- package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +0 -37
- package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +0 -79
- package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +0 -33
- package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +0 -37
- package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +0 -765
- package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +0 -27
- package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +0 -42
- package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +0 -474
- package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +0 -47
- package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +0 -99
- package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +0 -44
- package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +0 -166
- package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +0 -48
- package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +0 -33
- package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +0 -78
- package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +0 -121
- package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +0 -75
- package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +0 -145
- package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +0 -39
- package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +0 -924
- package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +0 -22
- package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +0 -56
- package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +0 -65
- package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +0 -26
- package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +0 -35
- package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +0 -68
- package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +0 -4601
- package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +0 -35
- package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +0 -96
- package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +0 -29
- package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +0 -28
- package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +0 -193
- package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +0 -445
- package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +0 -24
- package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +0 -21
- package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +0 -148
- package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +0 -34
- package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +0 -25
- package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +0 -322
- package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +0 -41
- package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +0 -13150
- package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +0 -23
- package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +0 -340
- package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +0 -2122
- package/templates/static/node_modules/typescript/lib/tsc.js +0 -8
- package/templates/static/node_modules/typescript/lib/tsserver.js +0 -8
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +0 -17
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +0 -21
- package/templates/static/node_modules/typescript/lib/typescript.d.ts +0 -11437
- /package/templates/{static → ssr-isr}/lib/auth/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/jen.config.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssg/site/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/jen.config.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/cli/templates/ssr/site/index.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/compilers/esbuild-plugins.d.ts +0 -0
- /package/templates/{static/lib/middleware/types.d.ts → ssr-isr/lib/core/config.js} +0 -0
- /package/templates/{static → ssr-isr}/lib/middleware/errors/handler.d.ts +0 -0
- /package/templates/{static → ssr-isr}/lib/middleware/utils/matcher.d.ts +0 -0
- /package/templates/static/{node_modules → lib/vendor}/preact/LICENSE +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { h } from "preact";
|
|
2
|
+
import { pathToFileURL } from "node:url";
|
|
3
|
+
import esbuild from "esbuild";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { mkdirSync, existsSync } from "node:fs";
|
|
6
|
+
import {
|
|
7
|
+
vueEsbuildPlugin,
|
|
8
|
+
svelteEsbuildPlugin,
|
|
9
|
+
} from "../../compilers/esbuild-plugins.js";
|
|
10
|
+
/**
|
|
11
|
+
* Resolves the cache directory path for compiled layout modules.
|
|
12
|
+
* Similar to route module caching to avoid repeated compilation.
|
|
13
|
+
*
|
|
14
|
+
* @param filePath The absolute path to the original layout file
|
|
15
|
+
* @returns The absolute path to the cached compiled output file
|
|
16
|
+
*/
|
|
17
|
+
function getCachePath(filePath) {
|
|
18
|
+
const cacheDir = join(process.cwd(), "node_modules", ".jen", "cache");
|
|
19
|
+
if (!existsSync(cacheDir)) {
|
|
20
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
21
|
+
}
|
|
22
|
+
const flatName = filePath.replace(/[\\/:]/g, "_").replace(/^_+/, "");
|
|
23
|
+
return join(cacheDir, flatName + ".layout.mjs");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Loads and compiles a layout module from file.
|
|
27
|
+
* Handles TypeScript/JSX/Vue/Svelte transpilation.
|
|
28
|
+
*
|
|
29
|
+
* @param filePath The absolute path to the layout file
|
|
30
|
+
* @returns The imported LayoutModule
|
|
31
|
+
* @throws Error if compilation or import fails
|
|
32
|
+
*/
|
|
33
|
+
async function loadLayoutModule(filePath) {
|
|
34
|
+
let moduleUrl = filePath;
|
|
35
|
+
const ext = filePath.slice(-4).toLowerCase();
|
|
36
|
+
const requiresTranspile = [".tsx", ".ts", ".vue", ".svelte"].some((e) =>
|
|
37
|
+
filePath.toLowerCase().endsWith(e),
|
|
38
|
+
);
|
|
39
|
+
if (requiresTranspile) {
|
|
40
|
+
const outfile = getCachePath(filePath);
|
|
41
|
+
await esbuild.build({
|
|
42
|
+
entryPoints: [filePath],
|
|
43
|
+
outfile,
|
|
44
|
+
format: "esm",
|
|
45
|
+
platform: "node",
|
|
46
|
+
target: "es2022",
|
|
47
|
+
bundle: true,
|
|
48
|
+
external: ["preact", "preact-render-to-string", "jenjs"],
|
|
49
|
+
write: true,
|
|
50
|
+
plugins: [vueEsbuildPlugin(), svelteEsbuildPlugin()],
|
|
51
|
+
});
|
|
52
|
+
moduleUrl = outfile;
|
|
53
|
+
}
|
|
54
|
+
let mod;
|
|
55
|
+
try {
|
|
56
|
+
mod = await import(pathToFileURL(moduleUrl).href + "?t=" + Date.now());
|
|
57
|
+
} catch (err) {
|
|
58
|
+
throw new Error(
|
|
59
|
+
`Failed to import layout module ${filePath}: ${err instanceof Error ? err.message : String(err)}`,
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
// Validate that default export exists
|
|
63
|
+
if (!mod.default) {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`Layout module ${filePath} does not export a default component`,
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
return mod;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolves the complete layout stack for a route.
|
|
72
|
+
* Loads all applicable layouts, merges their configuration, and prepares them for rendering.
|
|
73
|
+
*
|
|
74
|
+
* Configuration is merged from root to leaf, with child configurations overriding parent values.
|
|
75
|
+
*
|
|
76
|
+
* @param layoutEntries All layout entries applicable to this route (from buildLayoutHierarchy)
|
|
77
|
+
* @returns Resolved layout stack with modules and merged configuration
|
|
78
|
+
* @throws Error if any layout file fails to load
|
|
79
|
+
*/
|
|
80
|
+
export async function resolveLayoutStack(layoutEntries) {
|
|
81
|
+
const modules = [];
|
|
82
|
+
let mergedConfig = {};
|
|
83
|
+
// Load and process layouts in order (root to leaf)
|
|
84
|
+
for (const entry of layoutEntries) {
|
|
85
|
+
const mod = await loadLayoutModule(entry.filePath);
|
|
86
|
+
modules.push(mod);
|
|
87
|
+
// Merge configuration (child overrides parent)
|
|
88
|
+
if (mod.layout) {
|
|
89
|
+
mergedConfig = {
|
|
90
|
+
...mergedConfig,
|
|
91
|
+
...mod.layout,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
modules,
|
|
97
|
+
config: mergedConfig,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Renders a component wrapped in a layout hierarchy.
|
|
102
|
+
* Composes all layouts from root to leaf, passing the child content down the tree.
|
|
103
|
+
*
|
|
104
|
+
* The composition works as:
|
|
105
|
+
* RootLayout wraps (BlogLayout wraps (PageLayout wraps (PageComponent)))
|
|
106
|
+
*
|
|
107
|
+
* Each layout receives:
|
|
108
|
+
* - children: The rendered output from the child layout or page component
|
|
109
|
+
* - data: Data passed from page loader
|
|
110
|
+
* - params: URL parameters
|
|
111
|
+
* - query: Query string parameters
|
|
112
|
+
*
|
|
113
|
+
* @param layoutStack The resolved layout stack
|
|
114
|
+
* @param pageComponent The Preact component to render as the deepest child
|
|
115
|
+
* @param props Props to pass through the layout hierarchy (data, params, query)
|
|
116
|
+
* @returns Preact VNode representing the composed layout tree
|
|
117
|
+
*/
|
|
118
|
+
export function renderWithLayoutStack(layoutStack, pageComponent, props) {
|
|
119
|
+
// Start with the page component as the innermost content
|
|
120
|
+
let content = h(pageComponent, props);
|
|
121
|
+
// Wrap with layouts from deepest to root (reverse order)
|
|
122
|
+
for (let i = layoutStack.modules.length - 1; i >= 0; i--) {
|
|
123
|
+
const layoutMod = layoutStack.modules[i];
|
|
124
|
+
const Layout = layoutMod.default;
|
|
125
|
+
// Pass children and props to each layout
|
|
126
|
+
content = h(Layout, {
|
|
127
|
+
children: content,
|
|
128
|
+
...props,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return content;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Collects all Head components from the layout stack.
|
|
135
|
+
* Head components are rendered in order from root to leaf, allowing layouts
|
|
136
|
+
* to contribute to document head (meta tags, title, links, etc.).
|
|
137
|
+
*
|
|
138
|
+
* @param layoutStack The resolved layout stack
|
|
139
|
+
* @param pageHeadComponent Optional Head component from the page
|
|
140
|
+
* @param props Props to pass to Head components
|
|
141
|
+
* @returns Array of rendered Head VNodes
|
|
142
|
+
*/
|
|
143
|
+
export function collectLayoutHeads(layoutStack, pageHeadComponent, props) {
|
|
144
|
+
const heads = [];
|
|
145
|
+
// Collect heads from layouts (root to leaf)
|
|
146
|
+
for (const layoutMod of layoutStack.modules) {
|
|
147
|
+
if (layoutMod.Head) {
|
|
148
|
+
const headNode = h(layoutMod.Head, props);
|
|
149
|
+
heads.push(headNode);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Page head comes last
|
|
153
|
+
if (pageHeadComponent) {
|
|
154
|
+
const headNode = h(pageHeadComponent, props);
|
|
155
|
+
heads.push(headNode);
|
|
156
|
+
}
|
|
157
|
+
return heads;
|
|
158
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { join, relative, sep, dirname } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Recursively walks a directory and returns all file paths.
|
|
5
|
+
* Used to discover all layout files in the siteDir.
|
|
6
|
+
*
|
|
7
|
+
* @param dir Directory path to walk
|
|
8
|
+
* @returns Flat array of all file paths found
|
|
9
|
+
*/
|
|
10
|
+
function walk(dir) {
|
|
11
|
+
const out = [];
|
|
12
|
+
try {
|
|
13
|
+
for (const name of readdirSync(dir)) {
|
|
14
|
+
const p = join(dir, name);
|
|
15
|
+
const st = statSync(p);
|
|
16
|
+
if (st.isDirectory()) out.push(...walk(p));
|
|
17
|
+
else out.push(p);
|
|
18
|
+
}
|
|
19
|
+
} catch {
|
|
20
|
+
// Ignore errors reading directories
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Normalizes filesystem path separators to forward slashes.
|
|
26
|
+
* Ensures consistent path format across Windows and Unix systems.
|
|
27
|
+
*
|
|
28
|
+
* @param p Path with possibly mixed separators
|
|
29
|
+
* @returns Path with forward slashes only
|
|
30
|
+
*/
|
|
31
|
+
function normalizeSlashes(p) {
|
|
32
|
+
return p.split(sep).join("/");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Scans the configured siteDir for layout files and returns an ordered list.
|
|
36
|
+
* Layout files must be named (layout).tsx, (layout).ts, (layout).jsx, or (layout).js
|
|
37
|
+
* and are discovered at any directory level within siteDir.
|
|
38
|
+
*
|
|
39
|
+
* Layouts are automatically discovered and organized by their directory depth,
|
|
40
|
+
* allowing for automatic hierarchy building based on file structure.
|
|
41
|
+
*
|
|
42
|
+
* @param config Framework configuration with siteDir and route patterns
|
|
43
|
+
* @returns Array of LayoutEntry objects, sorted by depth (root layout first)
|
|
44
|
+
*/
|
|
45
|
+
export function scanLayouts(config) {
|
|
46
|
+
const siteRoot = join(process.cwd(), config.siteDir);
|
|
47
|
+
const files = walk(siteRoot);
|
|
48
|
+
const layouts = [];
|
|
49
|
+
for (const abs of files) {
|
|
50
|
+
const rel = normalizeSlashes(relative(siteRoot, abs));
|
|
51
|
+
// Check if this is a layout file with correct extension
|
|
52
|
+
const extMatch = config.routes.fileExtensions.some((ext) =>
|
|
53
|
+
rel.endsWith(`(layout)${ext}`),
|
|
54
|
+
);
|
|
55
|
+
if (!extMatch) continue;
|
|
56
|
+
// Get the directory containing this layout file
|
|
57
|
+
const dirPath = normalizeSlashes(dirname(rel));
|
|
58
|
+
const depth = dirPath === "." ? 0 : dirPath.split("/").length;
|
|
59
|
+
layouts.push({
|
|
60
|
+
id: `layout_${rel.replaceAll("/", "_").replace(/\.\w+$/, "")}`,
|
|
61
|
+
filePath: abs,
|
|
62
|
+
depth,
|
|
63
|
+
dirPath: dirPath === "." ? "" : dirPath,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
// Sort by depth (root/shallowest first)
|
|
67
|
+
layouts.sort((a, b) => a.depth - b.depth);
|
|
68
|
+
return layouts;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Builds the layout hierarchy for a given route path.
|
|
72
|
+
* Finds all parent layouts that should apply to this route by tracing
|
|
73
|
+
* the directory structure from root down to the route's directory.
|
|
74
|
+
*
|
|
75
|
+
* Example: For route "pages/blog/post/(post).tsx", returns layouts at:
|
|
76
|
+
* - (layout).tsx (root)
|
|
77
|
+
* - pages/(layout).tsx (if exists)
|
|
78
|
+
* - pages/blog/(layout).tsx (if exists)
|
|
79
|
+
*
|
|
80
|
+
* @param layoutEntries All discovered layout entries (from scanLayouts)
|
|
81
|
+
* @param routePath The filesystem path of the route file
|
|
82
|
+
* @returns Array of LayoutEntry objects in order (root to leaf)
|
|
83
|
+
*/
|
|
84
|
+
export function buildLayoutHierarchy(layoutEntries, routePath, siteDir) {
|
|
85
|
+
// Get the directory containing the route
|
|
86
|
+
const routeDir = dirname(routePath);
|
|
87
|
+
// Normalize path relative to siteDir
|
|
88
|
+
const siteRoot = join(process.cwd(), siteDir);
|
|
89
|
+
const relRouteDir = normalizeSlashes(relative(siteRoot, routeDir));
|
|
90
|
+
// Split the route directory into segments
|
|
91
|
+
const segments = relRouteDir === "." ? [] : relRouteDir.split("/");
|
|
92
|
+
// Find applicable layouts by checking each level of the hierarchy
|
|
93
|
+
const applicable = [];
|
|
94
|
+
// Check root layout first
|
|
95
|
+
const rootLayout = layoutEntries.find(
|
|
96
|
+
(l) => l.depth === 0 && l.dirPath === "",
|
|
97
|
+
);
|
|
98
|
+
if (rootLayout) {
|
|
99
|
+
applicable.push(rootLayout);
|
|
100
|
+
}
|
|
101
|
+
// Check layouts at each level
|
|
102
|
+
for (let i = 1; i <= segments.length; i++) {
|
|
103
|
+
const dirPath = segments.slice(0, i).join("/");
|
|
104
|
+
const layout = layoutEntries.find(
|
|
105
|
+
(l) => l.dirPath === dirPath && l.depth === i,
|
|
106
|
+
);
|
|
107
|
+
if (layout) {
|
|
108
|
+
applicable.push(layout);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return applicable;
|
|
112
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { log } from "../shared/log.js";
|
|
2
|
+
/**
|
|
3
|
+
* Lifecycle manager for graceful shutdown of the HTTP server.
|
|
4
|
+
* Tracks active requests and ensures they complete before closing.
|
|
5
|
+
* Handles signal interrupts (SIGTERM, SIGINT) gracefully.
|
|
6
|
+
*/
|
|
7
|
+
export class GracefulShutdown {
|
|
8
|
+
activeRequests = new Set();
|
|
9
|
+
isShuttingDown = false;
|
|
10
|
+
shutdownTimeout = 30000; // 30s timeout for graceful shutdown
|
|
11
|
+
signalHandlers = [];
|
|
12
|
+
/**
|
|
13
|
+
* Tracks an incoming request.
|
|
14
|
+
* Call this when a request begins.
|
|
15
|
+
*/
|
|
16
|
+
trackRequest(req) {
|
|
17
|
+
this.activeRequests.add(req);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Untrack a request when it completes.
|
|
21
|
+
* Call this when a request ends.
|
|
22
|
+
*/
|
|
23
|
+
releaseRequest(req) {
|
|
24
|
+
this.activeRequests.delete(req);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the count of active requests still in flight.
|
|
28
|
+
*/
|
|
29
|
+
getActiveRequestCount() {
|
|
30
|
+
return this.activeRequests.size;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if shutdown is in progress.
|
|
34
|
+
*/
|
|
35
|
+
isShuttingDown_() {
|
|
36
|
+
return this.isShuttingDown;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Wait for all active requests to complete, with timeout.
|
|
40
|
+
* Useful before closing server resources.
|
|
41
|
+
*
|
|
42
|
+
* @returns Promise that resolves when all requests complete or timeout
|
|
43
|
+
*/
|
|
44
|
+
async waitForActiveRequests() {
|
|
45
|
+
const startTime = Date.now();
|
|
46
|
+
const pollInterval = 100; // ms
|
|
47
|
+
return new Promise((resolve) => {
|
|
48
|
+
const poll = () => {
|
|
49
|
+
if (this.activeRequests.size === 0) {
|
|
50
|
+
log.info(
|
|
51
|
+
`[Graceful Shutdown] All ${this.activeRequests.size} requests completed`,
|
|
52
|
+
);
|
|
53
|
+
resolve();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const elapsed = Date.now() - startTime;
|
|
57
|
+
if (elapsed > this.shutdownTimeout) {
|
|
58
|
+
log.warn(
|
|
59
|
+
`[Graceful Shutdown] Timeout after ${elapsed}ms with ${this.activeRequests.size} requests still active`,
|
|
60
|
+
);
|
|
61
|
+
resolve();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
setTimeout(poll, pollInterval);
|
|
65
|
+
};
|
|
66
|
+
poll();
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Handle shutdown signal (SIGTERM or SIGINT).
|
|
71
|
+
* Prevents accepting new requests and waits for in-flight ones.
|
|
72
|
+
*
|
|
73
|
+
* @param signal Signal name that was received
|
|
74
|
+
* @param onClose Callback to execute when ready to close server
|
|
75
|
+
*/
|
|
76
|
+
async handleShutdownSignal(signal, onClose) {
|
|
77
|
+
if (this.isShuttingDown) {
|
|
78
|
+
log.warn(`[Graceful Shutdown] Already shutting down, ignoring ${signal}`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.isShuttingDown = true;
|
|
82
|
+
log.warn(
|
|
83
|
+
`[Graceful Shutdown] ${signal} received, starting graceful shutdown`,
|
|
84
|
+
);
|
|
85
|
+
log.info(
|
|
86
|
+
`[Graceful Shutdown] ${this.activeRequests.size} active request(s)`,
|
|
87
|
+
);
|
|
88
|
+
// Wait for active requests to complete
|
|
89
|
+
await this.waitForActiveRequests();
|
|
90
|
+
// Close server resources
|
|
91
|
+
log.info("[Graceful Shutdown] Closing server resources");
|
|
92
|
+
await onClose();
|
|
93
|
+
log.info("[Graceful Shutdown] Clean shutdown complete");
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Register signal handlers for graceful shutdown.
|
|
97
|
+
* Handles SIGTERM and SIGINT.
|
|
98
|
+
*
|
|
99
|
+
* @param onClose Callback to execute when closing resources
|
|
100
|
+
*/
|
|
101
|
+
registerSignalHandlers(onClose) {
|
|
102
|
+
const handleSignal = async (signal) => {
|
|
103
|
+
await this.handleShutdownSignal(signal, onClose);
|
|
104
|
+
process.exit(0);
|
|
105
|
+
};
|
|
106
|
+
// Handle both SIGTERM (terminate) and SIGINT (Ctrl+C)
|
|
107
|
+
process.on("SIGTERM", () => handleSignal("SIGTERM"));
|
|
108
|
+
process.on("SIGINT", () => handleSignal("SIGINT"));
|
|
109
|
+
log.info("[Graceful Shutdown] Signal handlers registered");
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Clean up signal handlers.
|
|
113
|
+
* Useful for cleanup in tests or when you need to unregister.
|
|
114
|
+
*/
|
|
115
|
+
unregisterSignalHandlers() {
|
|
116
|
+
process.removeAllListeners("SIGTERM");
|
|
117
|
+
process.removeAllListeners("SIGINT");
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Set the timeout for graceful shutdown (in milliseconds).
|
|
121
|
+
* Default is 30s.
|
|
122
|
+
*
|
|
123
|
+
* @param timeoutMs Timeout in milliseconds
|
|
124
|
+
*/
|
|
125
|
+
setShutdownTimeout(timeoutMs) {
|
|
126
|
+
this.shutdownTimeout = timeoutMs;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export default GracefulShutdown;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe loader data schema pattern.
|
|
3
|
+
* Ensures loader return type matches component props type at compile time.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* type PageData = { posts: Post[]; count: number };
|
|
8
|
+
*
|
|
9
|
+
* export const loader = defineLoader<PageData>(async (ctx) => {
|
|
10
|
+
* return {
|
|
11
|
+
* posts: await fetchPosts(),
|
|
12
|
+
* count: 42,
|
|
13
|
+
* };
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* export default function Page({ data }: { data: PageData }) {
|
|
17
|
+
* return <div>{data.count} posts</div>;
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export function defineLoader(handler) {
|
|
22
|
+
return async (ctx) => {
|
|
23
|
+
const result = handler(ctx);
|
|
24
|
+
return Promise.resolve(result);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validates that loader data matches expected schema.
|
|
29
|
+
* Runtime check to catch type mismatches in development.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const data = validateLoaderData(result, { posts: 'array', count: 'number' });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export function validateLoaderData(data, schema) {
|
|
37
|
+
if (typeof data !== "object" || data === null) {
|
|
38
|
+
throw new Error(`Expected object, got ${typeof data}`);
|
|
39
|
+
}
|
|
40
|
+
const obj = data;
|
|
41
|
+
for (const [key, type] of Object.entries(schema)) {
|
|
42
|
+
const value = obj[key];
|
|
43
|
+
// Determine actual type (arrays are objects, so treat both as "object")
|
|
44
|
+
let actualType = typeof value;
|
|
45
|
+
if (value === null) {
|
|
46
|
+
actualType = "object"; // null is typeof 'object' in JavaScript
|
|
47
|
+
} else if (Array.isArray(value)) {
|
|
48
|
+
actualType = type === "array" ? "array" : "object";
|
|
49
|
+
}
|
|
50
|
+
if (actualType !== type) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
`Loader data mismatch: expected ${key} to be ${type}, got ${actualType}`,
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return obj;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Middleware data schema for type-safe middleware → loader flow.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* type MiddlewareData = { userId: number; isAdmin: boolean };
|
|
64
|
+
* type PageData = { user: User; canDelete: boolean };
|
|
65
|
+
*
|
|
66
|
+
* export const middleware = defineMiddleware<MiddlewareData>(async (ctx) => {
|
|
67
|
+
* return { userId: 42, isAdmin: true };
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* export const loader = defineLoader<PageData>(async (ctx) => {
|
|
71
|
+
* const { userId, isAdmin } = ctx.data as MiddlewareData;
|
|
72
|
+
* return { user: await getUser(userId), canDelete: isAdmin };
|
|
73
|
+
* });
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export function defineMiddleware(handler) {
|
|
77
|
+
return async (ctx) => {
|
|
78
|
+
const result = handler(ctx);
|
|
79
|
+
return Promise.resolve(result);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
@@ -1,69 +1,97 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* This file is part of Jen.js.
|
|
3
|
-
* Copyright (C) 2026 oopsio
|
|
4
|
-
*
|
|
5
|
-
* This program is free software: you can redistribute it and/or modify
|
|
6
|
-
* it under the terms of the GNU General Public License as published by
|
|
7
|
-
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
-
* (at your option) any later version.
|
|
9
|
-
*
|
|
10
|
-
* This program is distributed in the hope that it will be useful,
|
|
11
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
* GNU General Public License for more details.
|
|
14
|
-
*
|
|
15
|
-
* You should have received a copy of the GNU General Public License
|
|
16
|
-
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
-
*/
|
|
18
1
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
2
|
+
* Type definitions note:
|
|
3
|
+
* Route module types (middleware field, hydrate field) are defined in core/types.ts.
|
|
4
|
+
* This module provides the middleware execution engine and context object.
|
|
21
5
|
*/
|
|
22
6
|
/**
|
|
23
|
-
*
|
|
24
|
-
* Called by
|
|
7
|
+
* Creates a middleware context object from request data.
|
|
8
|
+
* Called by the renderer before executing route middleware.
|
|
9
|
+
*
|
|
10
|
+
* Initializes:
|
|
11
|
+
* - All request data (req, res, url, params, query, headers, cookies)
|
|
12
|
+
* - Empty data object for middleware to populate
|
|
13
|
+
* - Helper methods (status, setHeader, redirect, json) as chainable methods
|
|
14
|
+
*
|
|
15
|
+
* @param opts Configuration with raw request data
|
|
16
|
+
* @param opts.req Node.js IncomingMessage
|
|
17
|
+
* @param opts.res Node.js ServerResponse
|
|
18
|
+
* @param opts.url Parsed URL from request
|
|
19
|
+
* @param opts.params Route parameters from URL path
|
|
20
|
+
* @param opts.query Query string parameters
|
|
21
|
+
* @param opts.headers Normalized headers object
|
|
22
|
+
* @param opts.cookies Parsed cookies from Cookie header
|
|
23
|
+
*
|
|
24
|
+
* @returns Initialized RouteMiddlewareContext ready for middleware execution
|
|
25
25
|
*/
|
|
26
26
|
export function createRouteMiddlewareContext(opts) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
27
|
+
const ctx = {
|
|
28
|
+
...opts,
|
|
29
|
+
data: {},
|
|
30
|
+
status: function (code) {
|
|
31
|
+
this.res.statusCode = code;
|
|
32
|
+
return this;
|
|
33
|
+
},
|
|
34
|
+
setHeader: function (key, value) {
|
|
35
|
+
this.res.setHeader(key, value);
|
|
36
|
+
return this;
|
|
37
|
+
},
|
|
38
|
+
redirect: function (url, statusCode = 302) {
|
|
39
|
+
this.res.statusCode = statusCode;
|
|
40
|
+
this.res.setHeader("location", url);
|
|
41
|
+
this.res.end();
|
|
42
|
+
throw new Error("__REDIRECT__");
|
|
43
|
+
},
|
|
44
|
+
json: function (data, statusCode = 200) {
|
|
45
|
+
this.res.statusCode = statusCode;
|
|
46
|
+
this.res.setHeader("content-type", "application/json; charset=utf-8");
|
|
47
|
+
this.res.end(JSON.stringify(data));
|
|
48
|
+
throw new Error("__JSON__");
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
return ctx;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
54
|
+
* Executes an array of route middleware sequentially for a route.
|
|
55
|
+
*
|
|
56
|
+
* Execution model:
|
|
57
|
+
* 1. Iterates through middlewares in order
|
|
58
|
+
* 2. Each middleware is awaited (even if synchronous)
|
|
59
|
+
* 3. Middleware can populate ctx.data for use by loader and page
|
|
60
|
+
* 4. If middleware calls ctx.redirect() or ctx.json(), error is caught and re-thrown
|
|
61
|
+
* 5. Other errors are propagated immediately
|
|
62
|
+
*
|
|
63
|
+
* Control flow:
|
|
64
|
+
* - Normal completion: all middlewares finish and function returns
|
|
65
|
+
* - Early exit: middleware calls ctx.redirect() or ctx.json()
|
|
66
|
+
* - Error: middleware throws or ctx.redirect()/json() throws sentinel error
|
|
67
|
+
*
|
|
68
|
+
* Side effects:
|
|
69
|
+
* - Response headers, status, and body may be sent by middleware
|
|
70
|
+
* - ctx.data may be modified by middleware
|
|
71
|
+
* - Should only be called in server context (SSR); not during SSG build
|
|
72
|
+
*
|
|
73
|
+
* @param middlewares Array of middleware functions to execute
|
|
74
|
+
* @param ctx RouteMiddlewareContext created by createRouteMiddlewareContext()
|
|
75
|
+
*
|
|
76
|
+
* @returns Promise that resolves if all middlewares complete normally
|
|
77
|
+
* @throws Error with message "__REDIRECT__" if middleware calls ctx.redirect()
|
|
78
|
+
* @throws Error with message "__JSON__" if middleware calls ctx.json()
|
|
79
|
+
* @throws Error from middleware if it throws
|
|
56
80
|
*/
|
|
57
81
|
export async function executeRouteMiddleware(middlewares, ctx) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
82
|
+
for (const mw of middlewares) {
|
|
83
|
+
try {
|
|
84
|
+
await mw(ctx);
|
|
85
|
+
} catch (err) {
|
|
86
|
+
/**
|
|
87
|
+
* Sentinel errors from ctx.redirect() and ctx.json() are re-thrown
|
|
88
|
+
* to signal that the response was already sent.
|
|
89
|
+
* Other errors propagate normally for error handling middleware.
|
|
90
|
+
*/
|
|
91
|
+
if (err.message === "__REDIRECT__" || err.message === "__JSON__") {
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
throw err;
|
|
68
95
|
}
|
|
96
|
+
}
|
|
69
97
|
}
|