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,97 @@
|
|
|
1
|
+
/**
|
|
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.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
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
|
+
*/
|
|
26
|
+
export function createRouteMiddlewareContext(opts) {
|
|
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
|
+
}
|
|
53
|
+
/**
|
|
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
|
|
80
|
+
*/
|
|
81
|
+
export async function executeRouteMiddleware(middlewares, ctx) {
|
|
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;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve an absolute path relative to the configured site directory.
|
|
3
|
+
* Used throughout the framework to locate source files, assets, pages, and other site content.
|
|
4
|
+
*
|
|
5
|
+
* The site directory is typically where user-written code (pages, routes, components, etc.) resides.
|
|
6
|
+
* This function ensures consistent path resolution across different environments and working directories.
|
|
7
|
+
*
|
|
8
|
+
* @param config Framework configuration object containing the siteDir path.
|
|
9
|
+
* @param p Path segments to join with the site directory. Can be multiple arguments.
|
|
10
|
+
* @returns Absolute file system path.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* const config = { siteDir: 'src' };
|
|
14
|
+
* resolveSitePath(config, 'pages', 'index.tsx');
|
|
15
|
+
* // Returns: /absolute/path/to/project/src/pages/index.tsx
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveSitePath(
|
|
18
|
+
config: {
|
|
19
|
+
siteDir: string;
|
|
20
|
+
},
|
|
21
|
+
...p: string[]
|
|
22
|
+
): string;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve an absolute path relative to the configured distribution/build output directory.
|
|
25
|
+
* Used to locate compiled assets, static files, and build artifacts.
|
|
26
|
+
*
|
|
27
|
+
* The distribution directory contains the output of the build process: compiled HTML,
|
|
28
|
+
* CSS, JavaScript bundles, and other files ready for deployment or serving.
|
|
29
|
+
*
|
|
30
|
+
* @param config Framework configuration object containing the distDir path.
|
|
31
|
+
* @param p Path segments to join with the dist directory. Can be multiple arguments.
|
|
32
|
+
* @returns Absolute file system path.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const config = { distDir: 'dist' };
|
|
36
|
+
* resolveDistPath(config, 'styles.css');
|
|
37
|
+
* // Returns: /absolute/path/to/project/dist/styles.css
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveDistPath(
|
|
40
|
+
config: {
|
|
41
|
+
distDir: string;
|
|
42
|
+
},
|
|
43
|
+
...p: string[]
|
|
44
|
+
): string;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve an absolute path relative to the configured site directory.
|
|
4
|
+
* Used throughout the framework to locate source files, assets, pages, and other site content.
|
|
5
|
+
*
|
|
6
|
+
* The site directory is typically where user-written code (pages, routes, components, etc.) resides.
|
|
7
|
+
* This function ensures consistent path resolution across different environments and working directories.
|
|
8
|
+
*
|
|
9
|
+
* @param config Framework configuration object containing the siteDir path.
|
|
10
|
+
* @param p Path segments to join with the site directory. Can be multiple arguments.
|
|
11
|
+
* @returns Absolute file system path.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* const config = { siteDir: 'src' };
|
|
15
|
+
* resolveSitePath(config, 'pages', 'index.tsx');
|
|
16
|
+
* // Returns: /absolute/path/to/project/src/pages/index.tsx
|
|
17
|
+
*/
|
|
18
|
+
export function resolveSitePath(config, ...p) {
|
|
19
|
+
return join(process.cwd(), config.siteDir, ...p);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Resolve an absolute path relative to the configured distribution/build output directory.
|
|
23
|
+
* Used to locate compiled assets, static files, and build artifacts.
|
|
24
|
+
*
|
|
25
|
+
* The distribution directory contains the output of the build process: compiled HTML,
|
|
26
|
+
* CSS, JavaScript bundles, and other files ready for deployment or serving.
|
|
27
|
+
*
|
|
28
|
+
* @param config Framework configuration object containing the distDir path.
|
|
29
|
+
* @param p Path segments to join with the dist directory. Can be multiple arguments.
|
|
30
|
+
* @returns Absolute file system path.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const config = { distDir: 'dist' };
|
|
34
|
+
* resolveDistPath(config, 'styles.css');
|
|
35
|
+
* // Returns: /absolute/path/to/project/dist/styles.css
|
|
36
|
+
*/
|
|
37
|
+
export function resolveDistPath(config, ...p) {
|
|
38
|
+
return join(process.cwd(), config.distDir, ...p);
|
|
39
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { RouteEntry } from "./scan.js";
|
|
2
|
+
/**
|
|
3
|
+
* Result of a successful route match operation.
|
|
4
|
+
* Contains the matched route and extracted URL parameters.
|
|
5
|
+
*/
|
|
6
|
+
export type MatchResult = {
|
|
7
|
+
/**
|
|
8
|
+
* The route entry that matched the URL pathname.
|
|
9
|
+
* Includes all route metadata: file path, URL pattern, regex, parameter names.
|
|
10
|
+
*/
|
|
11
|
+
route: RouteEntry;
|
|
12
|
+
/**
|
|
13
|
+
* Extracted URL parameters as key-value pairs.
|
|
14
|
+
* Keys correspond to parameter names from the route pattern.
|
|
15
|
+
* Values are URL-decoded strings extracted from the pathname.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* For route "/posts/:id" matching "/posts/42", yields { id: "42" }
|
|
19
|
+
* For route "/docs/*rest" matching "/docs/api/fetch", yields { rest: "api/fetch" }
|
|
20
|
+
*/
|
|
21
|
+
params: Record<string, string>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Matches a URL pathname against a list of routes and returns the matching route with extracted parameters.
|
|
25
|
+
*
|
|
26
|
+
* Algorithm:
|
|
27
|
+
* 1. Iterate through routes in specificity order (most specific first)
|
|
28
|
+
* 2. For each route, compile its regex pattern and test against pathname
|
|
29
|
+
* 3. On first match, extract captured groups as parameters
|
|
30
|
+
* 4. URL-decode parameter values to handle special characters
|
|
31
|
+
* 5. Return matched route and parameters
|
|
32
|
+
*
|
|
33
|
+
* Route specificity:
|
|
34
|
+
* - Static routes (no parameters) are tried before dynamic routes
|
|
35
|
+
* - Exact matches are preferred over catch-alls
|
|
36
|
+
* - This order is determined by scanRoutes() and must not be changed
|
|
37
|
+
*
|
|
38
|
+
* @param routes Array of RouteEntry objects from scanRoutes(), must be pre-sorted by specificity
|
|
39
|
+
* @param pathname URL path to match, e.g., "/posts/42" or "/docs/api/reference"
|
|
40
|
+
*
|
|
41
|
+
* @returns MatchResult object with matched route and parameters, or null if no route matches
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const routes = scanRoutes(config);
|
|
45
|
+
* const match = matchRoute(routes, "/posts/42");
|
|
46
|
+
* if (match) {
|
|
47
|
+
* console.log(match.route.urlPath); // "/posts/:id"
|
|
48
|
+
* console.log(match.params.id); // "42"
|
|
49
|
+
* }
|
|
50
|
+
*/
|
|
51
|
+
export declare function matchRoute(
|
|
52
|
+
routes: RouteEntry[],
|
|
53
|
+
pathname: string,
|
|
54
|
+
): MatchResult | null;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Matches a URL pathname against a list of routes and returns the matching route with extracted parameters.
|
|
3
|
+
*
|
|
4
|
+
* Algorithm:
|
|
5
|
+
* 1. Iterate through routes in specificity order (most specific first)
|
|
6
|
+
* 2. For each route, compile its regex pattern and test against pathname
|
|
7
|
+
* 3. On first match, extract captured groups as parameters
|
|
8
|
+
* 4. URL-decode parameter values to handle special characters
|
|
9
|
+
* 5. Return matched route and parameters
|
|
10
|
+
*
|
|
11
|
+
* Route specificity:
|
|
12
|
+
* - Static routes (no parameters) are tried before dynamic routes
|
|
13
|
+
* - Exact matches are preferred over catch-alls
|
|
14
|
+
* - This order is determined by scanRoutes() and must not be changed
|
|
15
|
+
*
|
|
16
|
+
* @param routes Array of RouteEntry objects from scanRoutes(), must be pre-sorted by specificity
|
|
17
|
+
* @param pathname URL path to match, e.g., "/posts/42" or "/docs/api/reference"
|
|
18
|
+
*
|
|
19
|
+
* @returns MatchResult object with matched route and parameters, or null if no route matches
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const routes = scanRoutes(config);
|
|
23
|
+
* const match = matchRoute(routes, "/posts/42");
|
|
24
|
+
* if (match) {
|
|
25
|
+
* console.log(match.route.urlPath); // "/posts/:id"
|
|
26
|
+
* console.log(match.params.id); // "42"
|
|
27
|
+
* }
|
|
28
|
+
*/
|
|
29
|
+
export function matchRoute(routes, pathname) {
|
|
30
|
+
for (const r of routes) {
|
|
31
|
+
const re = new RegExp(r.pattern);
|
|
32
|
+
const m = pathname.match(re);
|
|
33
|
+
if (!m) continue;
|
|
34
|
+
/**
|
|
35
|
+
* Extract captured groups from the regex match.
|
|
36
|
+
* Captured group 0 is the entire match; groups 1+ are the parameters.
|
|
37
|
+
* Each parameter name from r.paramNames corresponds to its regex group by index.
|
|
38
|
+
* URL-decode parameter values since they came from a URL path.
|
|
39
|
+
*/
|
|
40
|
+
const params = {};
|
|
41
|
+
for (let i = 0; i < r.paramNames.length; i++) {
|
|
42
|
+
params[r.paramNames[i]] = decodeURIComponent(m[i + 1] ?? "");
|
|
43
|
+
}
|
|
44
|
+
return { route: r, params };
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { FrameworkConfig } from "../config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a discovered route file with all metadata needed for routing and rendering.
|
|
4
|
+
* Created by scanRoutes() based on filesystem structure and file patterns.
|
|
5
|
+
*/
|
|
6
|
+
export type RouteEntry = {
|
|
7
|
+
/**
|
|
8
|
+
* Unique identifier for the route, derived from file path.
|
|
9
|
+
* Example: "posts_id_tsx" for "posts/(id).tsx"
|
|
10
|
+
*/
|
|
11
|
+
id: string;
|
|
12
|
+
/**
|
|
13
|
+
* Absolute filesystem path to the route file.
|
|
14
|
+
* Examples: "/app/src/pages/(home).tsx", "/app/src/posts/($id).tsx"
|
|
15
|
+
*/
|
|
16
|
+
filePath: string;
|
|
17
|
+
/**
|
|
18
|
+
* URL path that this route should respond to.
|
|
19
|
+
* Dynamic segments use colon prefix for params and asterisk for catch-all.
|
|
20
|
+
* Examples: "/", "/about", "/posts/:id", "/docs/*rest"
|
|
21
|
+
*/
|
|
22
|
+
urlPath: string;
|
|
23
|
+
/**
|
|
24
|
+
* Regular expression pattern for URL matching.
|
|
25
|
+
* Compiled from urlPath to enable fast route matching at request time.
|
|
26
|
+
* Example: "^/posts/([^/]+)/?$" for route "/posts/:id"
|
|
27
|
+
*/
|
|
28
|
+
pattern: string;
|
|
29
|
+
/**
|
|
30
|
+
* Array of parameter names in order they appear in the URL pattern.
|
|
31
|
+
* Used to extract and name captured groups from route.pattern regex matches.
|
|
32
|
+
* Examples: ["id"] for "/posts/:id", ["rest"] for "/docs/*rest"
|
|
33
|
+
*/
|
|
34
|
+
paramNames: string[];
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Scans the configured siteDir for route files and returns an ordered list.
|
|
38
|
+
* Files are matched against config.routes.routeFilePattern (typically /^\(([^)]+)\)/).
|
|
39
|
+
* Only files with extensions in config.routes.fileExtensions are considered.
|
|
40
|
+
*
|
|
41
|
+
* Naming conventions:
|
|
42
|
+
* - (home).tsx => route "/" (root, or within its directory)
|
|
43
|
+
* - ($paramName).tsx => dynamic route "/:paramName" (requires $ prefix)
|
|
44
|
+
* - (...restName).tsx => catch-all route "/*restName" (requires ... prefix)
|
|
45
|
+
* - (name).tsx => literal route "/name"
|
|
46
|
+
*
|
|
47
|
+
* Routes are sorted by specificity: static routes first, then dynamic/catch-all.
|
|
48
|
+
*
|
|
49
|
+
* @param config Framework configuration with siteDir and route patterns
|
|
50
|
+
* @returns Array of RouteEntry objects, sorted by specificity (most specific first)
|
|
51
|
+
* @throws {Error} If a parameter name is invalid (e.g., starts with number)
|
|
52
|
+
*/
|
|
53
|
+
export declare function scanRoutes(config: FrameworkConfig): RouteEntry[];
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { readdirSync, statSync } from "node:fs";
|
|
2
|
+
import { join, relative, sep } from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Recursively walks a directory and returns all file paths.
|
|
5
|
+
* Used to discover all potential route files in the siteDir.
|
|
6
|
+
*
|
|
7
|
+
* @param dir Directory path to walk
|
|
8
|
+
* @returns Flat array of all file paths found, relative or absolute as provided
|
|
9
|
+
*/
|
|
10
|
+
function walk(dir) {
|
|
11
|
+
const out = [];
|
|
12
|
+
for (const name of readdirSync(dir)) {
|
|
13
|
+
const p = join(dir, name);
|
|
14
|
+
const st = statSync(p);
|
|
15
|
+
if (st.isDirectory()) out.push(...walk(p));
|
|
16
|
+
else out.push(p);
|
|
17
|
+
}
|
|
18
|
+
return out;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Normalizes filesystem path separators to forward slashes.
|
|
22
|
+
* Ensures consistent path format across Windows and Unix systems.
|
|
23
|
+
*
|
|
24
|
+
* @param p Path with possibly mixed separators
|
|
25
|
+
* @returns Path with forward slashes only
|
|
26
|
+
*/
|
|
27
|
+
function normalizeSlashes(p) {
|
|
28
|
+
return p.split(sep).join("/");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Escapes special regex characters in a string.
|
|
32
|
+
* Prevents literal characters from being interpreted as regex syntax.
|
|
33
|
+
*
|
|
34
|
+
* @param s String to escape
|
|
35
|
+
* @returns Escaped string safe for regex
|
|
36
|
+
*/
|
|
37
|
+
function escapeRegex(s) {
|
|
38
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts a URL path segment to a regex pattern.
|
|
42
|
+
* Handles dynamic parameters (:id) and catch-alls (*rest).
|
|
43
|
+
* Side effect: appends parameter names to provided array.
|
|
44
|
+
*
|
|
45
|
+
* @param seg URL segment like "id", ":id", or "*rest"
|
|
46
|
+
* @param paramNames Array to accumulate discovered parameter names
|
|
47
|
+
* @returns Regex pattern for this segment
|
|
48
|
+
*/
|
|
49
|
+
function segmentToRegex(seg, paramNames) {
|
|
50
|
+
// (id) => ([^/]+)
|
|
51
|
+
// (...rest) => (.*)
|
|
52
|
+
if (seg.startsWith("...")) {
|
|
53
|
+
const name = seg.slice(3);
|
|
54
|
+
paramNames.push(name);
|
|
55
|
+
return "(.*)";
|
|
56
|
+
}
|
|
57
|
+
paramNames.push(seg);
|
|
58
|
+
return "([^/]+)";
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Converts a URL path string into a compiled regex pattern and parameter list.
|
|
62
|
+
* Handles static segments, dynamic parameters (:param), and catch-all routes (*rest).
|
|
63
|
+
*
|
|
64
|
+
* @param urlPath URL path like "/posts/:id" or "/docs/*rest"
|
|
65
|
+
* @returns Object with regex source string and ordered parameter names
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* buildRoutePattern("/posts/:id") => {
|
|
69
|
+
* src: "^/posts/([^/]+)/?$",
|
|
70
|
+
* paramNames: ["id"]
|
|
71
|
+
* }
|
|
72
|
+
*/
|
|
73
|
+
function buildRoutePattern(urlPath) {
|
|
74
|
+
// Convert /user/:id into regex
|
|
75
|
+
// We store urlPath with placeholders already replaced during scan
|
|
76
|
+
const parts = urlPath.split("/").filter(Boolean);
|
|
77
|
+
const paramNames = [];
|
|
78
|
+
const regexParts = parts.map((p) => {
|
|
79
|
+
if (p.startsWith(":")) {
|
|
80
|
+
paramNames.push(p.slice(1));
|
|
81
|
+
return "([^/]+)";
|
|
82
|
+
}
|
|
83
|
+
if (p.startsWith("*")) {
|
|
84
|
+
paramNames.push(p.slice(1));
|
|
85
|
+
return "(.*)";
|
|
86
|
+
}
|
|
87
|
+
return escapeRegex(p);
|
|
88
|
+
});
|
|
89
|
+
const src = "^/" + regexParts.join("/") + "/?$";
|
|
90
|
+
return { src, paramNames };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Scans the configured siteDir for route files and returns an ordered list.
|
|
94
|
+
* Files are matched against config.routes.routeFilePattern (typically /^\(([^)]+)\)/).
|
|
95
|
+
* Only files with extensions in config.routes.fileExtensions are considered.
|
|
96
|
+
*
|
|
97
|
+
* Naming conventions:
|
|
98
|
+
* - (home).tsx => route "/" (root, or within its directory)
|
|
99
|
+
* - ($paramName).tsx => dynamic route "/:paramName" (requires $ prefix)
|
|
100
|
+
* - (...restName).tsx => catch-all route "/*restName" (requires ... prefix)
|
|
101
|
+
* - (name).tsx => literal route "/name"
|
|
102
|
+
*
|
|
103
|
+
* Routes are sorted by specificity: static routes first, then dynamic/catch-all.
|
|
104
|
+
*
|
|
105
|
+
* @param config Framework configuration with siteDir and route patterns
|
|
106
|
+
* @returns Array of RouteEntry objects, sorted by specificity (most specific first)
|
|
107
|
+
* @throws {Error} If a parameter name is invalid (e.g., starts with number)
|
|
108
|
+
*/
|
|
109
|
+
export function scanRoutes(config) {
|
|
110
|
+
const siteRoot = join(process.cwd(), config.siteDir);
|
|
111
|
+
const files = walk(siteRoot);
|
|
112
|
+
const routes = [];
|
|
113
|
+
for (const abs of files) {
|
|
114
|
+
const rel = normalizeSlashes(relative(siteRoot, abs));
|
|
115
|
+
const extMatch = config.routes.fileExtensions.some((ext) =>
|
|
116
|
+
rel.endsWith(ext),
|
|
117
|
+
);
|
|
118
|
+
if (!extMatch) continue;
|
|
119
|
+
const base = rel.split("/").pop();
|
|
120
|
+
const m = base.match(config.routes.routeFilePattern);
|
|
121
|
+
if (!m) continue;
|
|
122
|
+
const name = m[1]; // inside ( )
|
|
123
|
+
const relDir = rel.split("/").slice(0, -1).join("/");
|
|
124
|
+
// name parsing:
|
|
125
|
+
// home => /
|
|
126
|
+
// about => /about
|
|
127
|
+
// id => /:id
|
|
128
|
+
// ...rest => /*rest
|
|
129
|
+
let routeSeg = name;
|
|
130
|
+
let urlSeg = "";
|
|
131
|
+
if (routeSeg === "home") urlSeg = "";
|
|
132
|
+
else if (routeSeg.startsWith("...")) urlSeg = "*" + routeSeg.slice(3);
|
|
133
|
+
else urlSeg = routeSeg;
|
|
134
|
+
// build url path
|
|
135
|
+
let url = "/" + (relDir ? relDir + "/" : "") + urlSeg;
|
|
136
|
+
url = url.replaceAll("//", "/");
|
|
137
|
+
/**
|
|
138
|
+
* Dynamic route segment detection based on filename within parentheses.
|
|
139
|
+
* Routes are determined by the filename prefix conventions:
|
|
140
|
+
* - (home).tsx => / (root) or /{dir}/ (in subdirectory)
|
|
141
|
+
* - ($paramName).tsx => /:paramName (dynamic param, requires $ prefix)
|
|
142
|
+
* - (...restName).tsx => /*restName (catch-all, requires ... prefix)
|
|
143
|
+
* - Any other (name).tsx => /name (literal segment)
|
|
144
|
+
*/
|
|
145
|
+
const rawName = name;
|
|
146
|
+
// Handle special prefixes for dynamic routing
|
|
147
|
+
if (rawName.startsWith("$") && !rawName.startsWith("...")) {
|
|
148
|
+
// ($paramName) syntax for dynamic parameters
|
|
149
|
+
const param = rawName.slice(1);
|
|
150
|
+
if (!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(param)) {
|
|
151
|
+
throw new Error(
|
|
152
|
+
`Invalid parameter name: ${param} in route file ${rel}`,
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
url = "/" + (relDir ? relDir + "/" : "") + ":" + param;
|
|
156
|
+
url = url.replaceAll("//", "/");
|
|
157
|
+
} else if (rawName.startsWith("...")) {
|
|
158
|
+
// (...restName) syntax for catch-all routes
|
|
159
|
+
const restName = rawName.slice(3);
|
|
160
|
+
if (!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(restName)) {
|
|
161
|
+
throw new Error(
|
|
162
|
+
`Invalid rest parameter name: ${restName} in route file ${rel}`,
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
url = "/" + (relDir ? relDir + "/" : "") + "*" + restName;
|
|
166
|
+
url = url.replaceAll("//", "/");
|
|
167
|
+
} else if (rawName === "home") {
|
|
168
|
+
// (home) is special - becomes root of its directory
|
|
169
|
+
url = relDir === "" ? "/" : "/" + relDir;
|
|
170
|
+
}
|
|
171
|
+
// else: (anything else) treated as literal segment
|
|
172
|
+
const { src, paramNames } = buildRoutePattern(url);
|
|
173
|
+
routes.push({
|
|
174
|
+
id: rel.replaceAll("/", "_"),
|
|
175
|
+
filePath: abs,
|
|
176
|
+
urlPath: url,
|
|
177
|
+
pattern: src,
|
|
178
|
+
paramNames,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
// Sort by specificity: exact matches and static routes first, dynamic routes last
|
|
182
|
+
routes.sort((a, b) => {
|
|
183
|
+
// more specific first
|
|
184
|
+
const aDyn = a.urlPath.includes(":") || a.urlPath.includes("*");
|
|
185
|
+
const bDyn = b.urlPath.includes(":") || b.urlPath.includes("*");
|
|
186
|
+
if (aDyn !== bDyn) return aDyn ? 1 : -1;
|
|
187
|
+
return a.urlPath.localeCompare(b.urlPath);
|
|
188
|
+
});
|
|
189
|
+
return routes;
|
|
190
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import type { RenderMode } from "./config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Exported interface that every route module (TSX/JSX file in siteDir) must conform to.
|
|
4
|
+
* Route modules define the page content, metadata, data loading, and rendering behavior.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import type { RouteModule } from "jenjs";
|
|
9
|
+
*
|
|
10
|
+
* export const mode = "ssg"; // Pre-render at build time
|
|
11
|
+
* export const revalidateSeconds = 3600; // Revalidate every hour for ISR
|
|
12
|
+
*
|
|
13
|
+
* export const loader = async (ctx) => {
|
|
14
|
+
* return { posts: await fetchPosts() };
|
|
15
|
+
* };
|
|
16
|
+
*
|
|
17
|
+
* export function Head() {
|
|
18
|
+
* return <title>My Page</title>;
|
|
19
|
+
* }
|
|
20
|
+
*
|
|
21
|
+
* export default function Page({ data, params }) {
|
|
22
|
+
* return <div>Welcome!</div>;
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export type RouteModule = {
|
|
27
|
+
/**
|
|
28
|
+
* Rendering mode for this route.
|
|
29
|
+
* If omitted, uses defaultMode from config.
|
|
30
|
+
*
|
|
31
|
+
* - "ssr": Server-side render on every request
|
|
32
|
+
* - "ssg": Pre-render once at build time
|
|
33
|
+
* - "isr": Pre-render, then revalidate on demand
|
|
34
|
+
* - "ppr": Partial pre-rendering (some sections static, some dynamic)
|
|
35
|
+
*/
|
|
36
|
+
mode?: RenderMode;
|
|
37
|
+
/**
|
|
38
|
+
* For ISR routes, the time in seconds before cached page is considered stale.
|
|
39
|
+
* When a request comes to a stale page, it triggers a background revalidation.
|
|
40
|
+
* If omitted, uses defaultRevalidateSeconds from config.
|
|
41
|
+
*
|
|
42
|
+
* Example: 3600 = revalidate every hour
|
|
43
|
+
*/
|
|
44
|
+
revalidateSeconds?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Whether to inject hydration code and client-side JavaScript.
|
|
47
|
+
* Set to false for pure static HTML with no interactivity.
|
|
48
|
+
* Default: true (enables interactive components)
|
|
49
|
+
*
|
|
50
|
+
* Optimization: Static pages (false) have smaller payload and faster rendering.
|
|
51
|
+
*/
|
|
52
|
+
hydrate?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Route-level middleware functions that run before rendering.
|
|
55
|
+
* Can be a single middleware or array of middlewares.
|
|
56
|
+
* Executes on the server before loader is called.
|
|
57
|
+
* Can access request, set response headers, perform auth checks, etc.
|
|
58
|
+
*
|
|
59
|
+
* @see ../middleware-hooks.ts for RouteMiddleware interface
|
|
60
|
+
*/
|
|
61
|
+
middleware?: any;
|
|
62
|
+
/**
|
|
63
|
+
* Data loading function called before rendering the page.
|
|
64
|
+
* Receives LoaderContext with URL, params, query, headers, cookies, and middleware data.
|
|
65
|
+
* Result is passed to the page component as `data` prop.
|
|
66
|
+
* Can be async (e.g., fetch from database or API).
|
|
67
|
+
*
|
|
68
|
+
* Only runs on the server (SSR/SSG), not on the client during hydration.
|
|
69
|
+
*
|
|
70
|
+
* @param ctx Loader context with request information
|
|
71
|
+
* @returns Data object merged with component props
|
|
72
|
+
*/
|
|
73
|
+
loader?: (ctx: LoaderContext) => Promise<any> | any;
|
|
74
|
+
/**
|
|
75
|
+
* Optional Head component exported from route module.
|
|
76
|
+
* Renders into <head> section of the HTML document.
|
|
77
|
+
* Useful for meta tags, title, Open Graph tags, etc.
|
|
78
|
+
*
|
|
79
|
+
* Receives the same props as the default page component: { data, params, query }
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* export function Head({ params }) {
|
|
84
|
+
* return <title>{params.id} - My Site</title>;
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
Head?: (props: any) => any;
|
|
89
|
+
/**
|
|
90
|
+
* Required default export: the page component.
|
|
91
|
+
* Renders to HTML for SSR/SSG.
|
|
92
|
+
* Also used for client-side hydration if hydrate !== false.
|
|
93
|
+
*
|
|
94
|
+
* Receives props: { data, params, query }
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* export default function Page({ data, params, query }) {
|
|
99
|
+
* return <main>{data?.title}</main>;
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
default: (props: any) => any;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Context object passed to route loader functions.
|
|
107
|
+
* Contains all request-related data needed to load route data dynamically.
|
|
108
|
+
* Available in both SSR (runtime) and SSG (build-time) contexts.
|
|
109
|
+
*/
|
|
110
|
+
export type LoaderContext = {
|
|
111
|
+
/**
|
|
112
|
+
* The full URL object for the current request.
|
|
113
|
+
* Includes pathname, search, searchParams, etc.
|
|
114
|
+
* @example new URL("http://example.com/posts?sort=date")
|
|
115
|
+
*/
|
|
116
|
+
url: URL;
|
|
117
|
+
/**
|
|
118
|
+
* Named route parameters extracted from the URL path.
|
|
119
|
+
* For route /posts/:id, accessing /posts/42 yields { id: "42" }
|
|
120
|
+
* For catch-all routes /docs/...rest, yields { rest: "getting-started/setup" }
|
|
121
|
+
*/
|
|
122
|
+
params: Record<string, string>;
|
|
123
|
+
/**
|
|
124
|
+
* Query string parameters from the URL search string.
|
|
125
|
+
* For URL /search?q=test&limit=10, yields { q: "test", limit: "10" }
|
|
126
|
+
* Always strings; parsing to numbers/booleans is the loader's responsibility.
|
|
127
|
+
*/
|
|
128
|
+
query: Record<string, string>;
|
|
129
|
+
/**
|
|
130
|
+
* HTTP request headers as a flat object.
|
|
131
|
+
* Keys are lowercase; multiple header values are comma-separated.
|
|
132
|
+
* Not available during static site generation (SSG build-time).
|
|
133
|
+
*
|
|
134
|
+
* @example { "content-type": "application/json", "user-agent": "..." }
|
|
135
|
+
*/
|
|
136
|
+
headers: Record<string, string>;
|
|
137
|
+
/**
|
|
138
|
+
* Parsed HTTP cookies from the request.
|
|
139
|
+
* Automatically extracted from the Cookie header.
|
|
140
|
+
* Not available during static site generation (SSG build-time).
|
|
141
|
+
*
|
|
142
|
+
* @example { "sessionId": "abc123", "theme": "dark" }
|
|
143
|
+
*/
|
|
144
|
+
cookies: Record<string, string>;
|
|
145
|
+
/**
|
|
146
|
+
* Additional data attached by route middleware.
|
|
147
|
+
* Middleware can populate this field to pass data to the loader and page component.
|
|
148
|
+
* Useful for authentication info, locale, user preferences, etc.
|
|
149
|
+
*
|
|
150
|
+
* @example { "userId": 42, "isAdmin": true }
|
|
151
|
+
*/
|
|
152
|
+
data?: Record<string, any>;
|
|
153
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|