create-jen-app 0.1.0
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/LICENSE +674 -0
- package/README.md +89 -0
- package/dist/index.js +72 -0
- package/package.json +50 -0
- package/templates/static/.esbuild/jen.config.js +1 -0
- package/templates/static/README.md +67 -0
- package/templates/static/build.js +106 -0
- package/templates/static/jen.config.ts +128 -0
- package/templates/static/jenjs.d.ts +33 -0
- package/templates/static/lib/api/(hello).d.ts +7 -0
- package/templates/static/lib/api/(hello).js +26 -0
- package/templates/static/lib/auth/cookie-utils.d.ts +24 -0
- package/templates/static/lib/auth/cookie-utils.js +99 -0
- package/templates/static/lib/auth/index.d.ts +2 -0
- package/templates/static/lib/auth/index.js +19 -0
- package/templates/static/lib/auth/jwt.d.ts +2 -0
- package/templates/static/lib/auth/jwt.js +30 -0
- package/templates/static/lib/auth/session.d.ts +44 -0
- package/templates/static/lib/auth/session.js +111 -0
- package/templates/static/lib/build/asset-hashing.d.ts +10 -0
- package/templates/static/lib/build/asset-hashing.js +42 -0
- package/templates/static/lib/build/asset-manifest.d.ts +11 -0
- package/templates/static/lib/build/asset-manifest.js +38 -0
- package/templates/static/lib/build/build.d.ts +4 -0
- package/templates/static/lib/build/build.js +113 -0
- package/templates/static/lib/build/island-hydration.d.ts +25 -0
- package/templates/static/lib/build/island-hydration.js +62 -0
- package/templates/static/lib/build/minifier.d.ts +20 -0
- package/templates/static/lib/build/minifier.js +65 -0
- package/templates/static/lib/build/page-renderer.d.ts +17 -0
- package/templates/static/lib/build/page-renderer.js +45 -0
- package/templates/static/lib/build/production-build.d.ts +10 -0
- package/templates/static/lib/build/production-build.js +30 -0
- package/templates/static/lib/build/ssg-pipeline.d.ts +15 -0
- package/templates/static/lib/build/ssg-pipeline.js +119 -0
- package/templates/static/lib/build-tools/build-site.d.ts +6 -0
- package/templates/static/lib/build-tools/build-site.js +56 -0
- package/templates/static/lib/cache/index.d.ts +2 -0
- package/templates/static/lib/cache/index.js +19 -0
- package/templates/static/lib/cache/memory.d.ts +6 -0
- package/templates/static/lib/cache/memory.js +31 -0
- package/templates/static/lib/cache/redis.d.ts +6 -0
- package/templates/static/lib/cache/redis.js +33 -0
- package/templates/static/lib/cli/banner.d.ts +1 -0
- package/templates/static/lib/cli/banner.js +41 -0
- package/templates/static/lib/cli/templates/ssg/jen.config.d.ts +3 -0
- package/templates/static/lib/cli/templates/ssg/jen.config.js +49 -0
- package/templates/static/lib/cli/templates/ssg/site/index.d.ts +2 -0
- package/templates/static/lib/cli/templates/ssg/site/index.js +4 -0
- package/templates/static/lib/cli/templates/ssr/jen.config.d.ts +3 -0
- package/templates/static/lib/cli/templates/ssr/jen.config.js +49 -0
- package/templates/static/lib/cli/templates/ssr/site/index.d.ts +2 -0
- package/templates/static/lib/cli/templates/ssr/site/index.js +4 -0
- package/templates/static/lib/compilers/esbuild-plugins.d.ts +6 -0
- package/templates/static/lib/compilers/esbuild-plugins.js +130 -0
- package/templates/static/lib/compilers/svelte.d.ts +18 -0
- package/templates/static/lib/compilers/svelte.js +61 -0
- package/templates/static/lib/compilers/vue.d.ts +15 -0
- package/templates/static/lib/compilers/vue.js +99 -0
- package/templates/static/lib/core/config.d.ts +53 -0
- package/templates/static/lib/core/config.js +18 -0
- package/templates/static/lib/core/http.d.ts +3 -0
- package/templates/static/lib/core/http.js +42 -0
- package/templates/static/lib/core/middleware-hooks.d.ts +46 -0
- package/templates/static/lib/core/middleware-hooks.js +69 -0
- package/templates/static/lib/core/paths.d.ts +6 -0
- package/templates/static/lib/core/paths.js +24 -0
- package/templates/static/lib/core/routes/match.d.ts +6 -0
- package/templates/static/lib/core/routes/match.js +31 -0
- package/templates/static/lib/core/routes/scan.d.ts +9 -0
- package/templates/static/lib/core/routes/scan.js +148 -0
- package/templates/static/lib/core/types.d.ts +18 -0
- package/templates/static/lib/core/types.js +18 -0
- package/templates/static/lib/css/compiler.d.ts +20 -0
- package/templates/static/lib/css/compiler.js +87 -0
- package/templates/static/lib/db/connector.d.ts +4 -0
- package/templates/static/lib/db/connector.js +33 -0
- package/templates/static/lib/db/drivers/jdb.d.ts +13 -0
- package/templates/static/lib/db/drivers/jdb.js +59 -0
- package/templates/static/lib/db/drivers/sql.d.ts +18 -0
- package/templates/static/lib/db/drivers/sql.js +182 -0
- package/templates/static/lib/db/index.d.ts +19 -0
- package/templates/static/lib/db/index.js +65 -0
- package/templates/static/lib/db/types.d.ts +29 -0
- package/templates/static/lib/db/types.js +18 -0
- package/templates/static/lib/graphql/index.d.ts +1 -0
- package/templates/static/lib/graphql/index.js +22 -0
- package/templates/static/lib/graphql/resolvers.d.ts +17 -0
- package/templates/static/lib/graphql/resolvers.js +26 -0
- package/templates/static/lib/graphql/schema.d.ts +1 -0
- package/templates/static/lib/graphql/schema.js +20 -0
- package/templates/static/lib/i18n/en.json +4 -0
- package/templates/static/lib/i18n/es.json +4 -0
- package/templates/static/lib/i18n/index.d.ts +8 -0
- package/templates/static/lib/i18n/index.js +32 -0
- package/templates/static/lib/import/jen-import.d.ts +27 -0
- package/templates/static/lib/import/jen-import.js +128 -0
- package/templates/static/lib/index.d.ts +81 -0
- package/templates/static/lib/index.js +120 -0
- package/templates/static/lib/jdb/engine.d.ts +9 -0
- package/templates/static/lib/jdb/engine.js +176 -0
- package/templates/static/lib/jdb/index.d.ts +2 -0
- package/templates/static/lib/jdb/index.js +19 -0
- package/templates/static/lib/jdb/types.d.ts +46 -0
- package/templates/static/lib/jdb/types.js +18 -0
- package/templates/static/lib/jdb/utils.d.ts +6 -0
- package/templates/static/lib/jdb/utils.js +141 -0
- package/templates/static/lib/middleware/builtins/body-parser.d.ts +1 -0
- package/templates/static/lib/middleware/builtins/body-parser.js +55 -0
- package/templates/static/lib/middleware/builtins/cors.d.ts +13 -0
- package/templates/static/lib/middleware/builtins/cors.js +67 -0
- package/templates/static/lib/middleware/builtins/logger.d.ts +1 -0
- package/templates/static/lib/middleware/builtins/logger.js +33 -0
- package/templates/static/lib/middleware/builtins/rate-limit.d.ts +5 -0
- package/templates/static/lib/middleware/builtins/rate-limit.js +76 -0
- package/templates/static/lib/middleware/builtins/request-id.d.ts +1 -0
- package/templates/static/lib/middleware/builtins/request-id.js +25 -0
- package/templates/static/lib/middleware/builtins/security-headers.d.ts +1 -0
- package/templates/static/lib/middleware/builtins/security-headers.js +39 -0
- package/templates/static/lib/middleware/context.d.ts +18 -0
- package/templates/static/lib/middleware/context.js +50 -0
- package/templates/static/lib/middleware/decorators.d.ts +2 -0
- package/templates/static/lib/middleware/decorators.js +61 -0
- package/templates/static/lib/middleware/errors/handler.d.ts +1 -0
- package/templates/static/lib/middleware/errors/handler.js +65 -0
- package/templates/static/lib/middleware/errors/http-error.d.ts +5 -0
- package/templates/static/lib/middleware/errors/http-error.js +27 -0
- package/templates/static/lib/middleware/kernel.d.ts +6 -0
- package/templates/static/lib/middleware/kernel.js +39 -0
- package/templates/static/lib/middleware/pipeline.d.ts +4 -0
- package/templates/static/lib/middleware/pipeline.js +67 -0
- package/templates/static/lib/middleware/registry.d.ts +10 -0
- package/templates/static/lib/middleware/registry.js +41 -0
- package/templates/static/lib/middleware/response.d.ts +13 -0
- package/templates/static/lib/middleware/response.js +60 -0
- package/templates/static/lib/middleware/types.d.ts +1 -0
- package/templates/static/lib/middleware/types.js +18 -0
- package/templates/static/lib/middleware/utils/matcher.d.ts +1 -0
- package/templates/static/lib/middleware/utils/matcher.js +31 -0
- package/templates/static/lib/native/bundle.d.ts +19 -0
- package/templates/static/lib/native/bundle.js +39 -0
- package/templates/static/lib/native/dev-server.d.ts +6 -0
- package/templates/static/lib/native/dev-server.js +38 -0
- package/templates/static/lib/native/index.d.ts +30 -0
- package/templates/static/lib/native/index.js +48 -0
- package/templates/static/lib/native/optimizer.d.ts +17 -0
- package/templates/static/lib/native/optimizer.js +37 -0
- package/templates/static/lib/native/style-compiler.d.ts +10 -0
- package/templates/static/lib/native/style-compiler.js +36 -0
- package/templates/static/lib/plugin/loader.d.ts +8 -0
- package/templates/static/lib/plugin/loader.js +59 -0
- package/templates/static/lib/runtime/client-runtime.d.ts +1 -0
- package/templates/static/lib/runtime/client-runtime.js +28 -0
- package/templates/static/lib/runtime/hmr.d.ts +1 -0
- package/templates/static/lib/runtime/hmr.js +54 -0
- package/templates/static/lib/runtime/hydrate.d.ts +1 -0
- package/templates/static/lib/runtime/hydrate.js +45 -0
- package/templates/static/lib/runtime/island-hydration-client.d.ts +5 -0
- package/templates/static/lib/runtime/island-hydration-client.js +132 -0
- package/templates/static/lib/runtime/islands.d.ts +46 -0
- package/templates/static/lib/runtime/islands.js +89 -0
- package/templates/static/lib/runtime/render.d.ts +13 -0
- package/templates/static/lib/runtime/render.js +183 -0
- package/templates/static/lib/server/api-routes.d.ts +44 -0
- package/templates/static/lib/server/api-routes.js +196 -0
- package/templates/static/lib/server/api.d.ts +6 -0
- package/templates/static/lib/server/api.js +124 -0
- package/templates/static/lib/server/app.d.ts +10 -0
- package/templates/static/lib/server/app.js +381 -0
- package/templates/static/lib/server/runtimeServe.d.ts +4 -0
- package/templates/static/lib/server/runtimeServe.js +125 -0
- package/templates/static/lib/shared/log.d.ts +5 -0
- package/templates/static/lib/shared/log.js +31 -0
- package/templates/static/node_modules/.bin/esbuild +16 -0
- package/templates/static/node_modules/.bin/esbuild.cmd +17 -0
- package/templates/static/node_modules/.bin/esbuild.ps1 +28 -0
- package/templates/static/node_modules/.bin/tsc +16 -0
- package/templates/static/node_modules/.bin/tsc.cmd +17 -0
- package/templates/static/node_modules/.bin/tsc.ps1 +28 -0
- package/templates/static/node_modules/.bin/tsserver +16 -0
- package/templates/static/node_modules/.bin/tsserver.cmd +17 -0
- package/templates/static/node_modules/.bin/tsserver.ps1 +28 -0
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_templates_static_site_(home).tsx.mjs +14 -0
- package/templates/static/node_modules/.jen/cache/B__Jen.js_packages_create-jen-app_yo_site_(home).tsx.mjs +11 -0
- package/templates/static/node_modules/.package-lock.json +585 -0
- package/templates/static/node_modules/@esbuild/win32-x64/README.md +3 -0
- package/templates/static/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
- package/templates/static/node_modules/@esbuild/win32-x64/package.json +20 -0
- package/templates/static/node_modules/@jenjs/master/README.md +24 -0
- package/templates/static/node_modules/@jenjs/master/index.js +3655 -0
- package/templates/static/node_modules/@jenjs/master/package.json +36 -0
- package/templates/static/node_modules/@polka/url/build.js +49 -0
- package/templates/static/node_modules/@polka/url/build.mjs +47 -0
- package/templates/static/node_modules/@polka/url/index.d.ts +11 -0
- package/templates/static/node_modules/@polka/url/package.json +30 -0
- package/templates/static/node_modules/@polka/url/readme.md +68 -0
- package/templates/static/node_modules/@types/node/LICENSE +21 -0
- package/templates/static/node_modules/@types/node/README.md +15 -0
- package/templates/static/node_modules/@types/node/assert/strict.d.ts +111 -0
- package/templates/static/node_modules/@types/node/assert.d.ts +1078 -0
- package/templates/static/node_modules/@types/node/async_hooks.d.ts +603 -0
- package/templates/static/node_modules/@types/node/buffer.buffer.d.ts +472 -0
- package/templates/static/node_modules/@types/node/buffer.d.ts +1934 -0
- package/templates/static/node_modules/@types/node/child_process.d.ts +1476 -0
- package/templates/static/node_modules/@types/node/cluster.d.ts +578 -0
- package/templates/static/node_modules/@types/node/compatibility/disposable.d.ts +14 -0
- package/templates/static/node_modules/@types/node/compatibility/index.d.ts +9 -0
- package/templates/static/node_modules/@types/node/compatibility/indexable.d.ts +20 -0
- package/templates/static/node_modules/@types/node/compatibility/iterators.d.ts +20 -0
- package/templates/static/node_modules/@types/node/console.d.ts +452 -0
- package/templates/static/node_modules/@types/node/constants.d.ts +21 -0
- package/templates/static/node_modules/@types/node/crypto.d.ts +4545 -0
- package/templates/static/node_modules/@types/node/dgram.d.ts +600 -0
- package/templates/static/node_modules/@types/node/diagnostics_channel.d.ts +578 -0
- package/templates/static/node_modules/@types/node/dns/promises.d.ts +503 -0
- package/templates/static/node_modules/@types/node/dns.d.ts +923 -0
- package/templates/static/node_modules/@types/node/domain.d.ts +170 -0
- package/templates/static/node_modules/@types/node/events.d.ts +976 -0
- package/templates/static/node_modules/@types/node/fs/promises.d.ts +1295 -0
- package/templates/static/node_modules/@types/node/fs.d.ts +4461 -0
- package/templates/static/node_modules/@types/node/globals.d.ts +172 -0
- package/templates/static/node_modules/@types/node/globals.typedarray.d.ts +38 -0
- package/templates/static/node_modules/@types/node/http.d.ts +2089 -0
- package/templates/static/node_modules/@types/node/http2.d.ts +2644 -0
- package/templates/static/node_modules/@types/node/https.d.ts +579 -0
- package/templates/static/node_modules/@types/node/index.d.ts +97 -0
- package/templates/static/node_modules/@types/node/inspector.d.ts +253 -0
- package/templates/static/node_modules/@types/node/inspector.generated.d.ts +4052 -0
- package/templates/static/node_modules/@types/node/module.d.ts +891 -0
- package/templates/static/node_modules/@types/node/net.d.ts +1057 -0
- package/templates/static/node_modules/@types/node/os.d.ts +506 -0
- package/templates/static/node_modules/@types/node/package.json +145 -0
- package/templates/static/node_modules/@types/node/path.d.ts +200 -0
- package/templates/static/node_modules/@types/node/perf_hooks.d.ts +968 -0
- package/templates/static/node_modules/@types/node/process.d.ts +2089 -0
- package/templates/static/node_modules/@types/node/punycode.d.ts +117 -0
- package/templates/static/node_modules/@types/node/querystring.d.ts +152 -0
- package/templates/static/node_modules/@types/node/readline/promises.d.ts +161 -0
- package/templates/static/node_modules/@types/node/readline.d.ts +594 -0
- package/templates/static/node_modules/@types/node/repl.d.ts +428 -0
- package/templates/static/node_modules/@types/node/sea.d.ts +153 -0
- package/templates/static/node_modules/@types/node/sqlite.d.ts +721 -0
- package/templates/static/node_modules/@types/node/stream/consumers.d.ts +38 -0
- package/templates/static/node_modules/@types/node/stream/promises.d.ts +90 -0
- package/templates/static/node_modules/@types/node/stream/web.d.ts +622 -0
- package/templates/static/node_modules/@types/node/stream.d.ts +1664 -0
- package/templates/static/node_modules/@types/node/string_decoder.d.ts +67 -0
- package/templates/static/node_modules/@types/node/test.d.ts +2163 -0
- package/templates/static/node_modules/@types/node/timers/promises.d.ts +108 -0
- package/templates/static/node_modules/@types/node/timers.d.ts +287 -0
- package/templates/static/node_modules/@types/node/tls.d.ts +1319 -0
- package/templates/static/node_modules/@types/node/trace_events.d.ts +197 -0
- package/templates/static/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +468 -0
- package/templates/static/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +34 -0
- package/templates/static/node_modules/@types/node/ts5.6/index.d.ts +97 -0
- package/templates/static/node_modules/@types/node/tty.d.ts +208 -0
- package/templates/static/node_modules/@types/node/url.d.ts +984 -0
- package/templates/static/node_modules/@types/node/util.d.ts +2606 -0
- package/templates/static/node_modules/@types/node/v8.d.ts +920 -0
- package/templates/static/node_modules/@types/node/vm.d.ts +1000 -0
- package/templates/static/node_modules/@types/node/wasi.d.ts +181 -0
- package/templates/static/node_modules/@types/node/web-globals/abortcontroller.d.ts +34 -0
- package/templates/static/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- package/templates/static/node_modules/@types/node/web-globals/events.d.ts +97 -0
- package/templates/static/node_modules/@types/node/web-globals/fetch.d.ts +55 -0
- package/templates/static/node_modules/@types/node/web-globals/navigator.d.ts +22 -0
- package/templates/static/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/templates/static/node_modules/@types/node/worker_threads.d.ts +784 -0
- package/templates/static/node_modules/@types/node/zlib.d.ts +683 -0
- package/templates/static/node_modules/esbuild/LICENSE.md +21 -0
- package/templates/static/node_modules/esbuild/README.md +3 -0
- package/templates/static/node_modules/esbuild/bin/esbuild +223 -0
- package/templates/static/node_modules/esbuild/install.js +289 -0
- package/templates/static/node_modules/esbuild/lib/main.d.ts +716 -0
- package/templates/static/node_modules/esbuild/lib/main.js +2242 -0
- package/templates/static/node_modules/esbuild/package.json +49 -0
- package/templates/static/node_modules/mrmime/index.d.ts +2 -0
- package/templates/static/node_modules/mrmime/index.js +449 -0
- package/templates/static/node_modules/mrmime/index.mjs +448 -0
- package/templates/static/node_modules/mrmime/license +21 -0
- package/templates/static/node_modules/mrmime/package.json +44 -0
- package/templates/static/node_modules/mrmime/readme.md +130 -0
- package/templates/static/node_modules/preact/LICENSE +21 -0
- package/templates/static/node_modules/preact/README.md +185 -0
- package/templates/static/node_modules/preact/compat/client.d.ts +13 -0
- package/templates/static/node_modules/preact/compat/client.js +21 -0
- package/templates/static/node_modules/preact/compat/client.mjs +24 -0
- package/templates/static/node_modules/preact/compat/dist/compat.js +2 -0
- package/templates/static/node_modules/preact/compat/dist/compat.js.map +1 -0
- package/templates/static/node_modules/preact/compat/dist/compat.mjs +2 -0
- package/templates/static/node_modules/preact/compat/dist/compat.module.js +2 -0
- package/templates/static/node_modules/preact/compat/dist/compat.module.js.map +1 -0
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js +2 -0
- package/templates/static/node_modules/preact/compat/dist/compat.umd.js.map +1 -0
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.js +3 -0
- package/templates/static/node_modules/preact/compat/jsx-dev-runtime.mjs +3 -0
- package/templates/static/node_modules/preact/compat/jsx-runtime.js +3 -0
- package/templates/static/node_modules/preact/compat/jsx-runtime.mjs +3 -0
- package/templates/static/node_modules/preact/compat/package.json +55 -0
- package/templates/static/node_modules/preact/compat/scheduler.js +15 -0
- package/templates/static/node_modules/preact/compat/scheduler.mjs +23 -0
- package/templates/static/node_modules/preact/compat/server.browser.js +11 -0
- package/templates/static/node_modules/preact/compat/server.js +36 -0
- package/templates/static/node_modules/preact/compat/server.mjs +17 -0
- package/templates/static/node_modules/preact/compat/src/Children.js +21 -0
- package/templates/static/node_modules/preact/compat/src/PureComponent.js +16 -0
- package/templates/static/node_modules/preact/compat/src/forwardRef.js +44 -0
- package/templates/static/node_modules/preact/compat/src/hooks.js +70 -0
- package/templates/static/node_modules/preact/compat/src/index.d.ts +351 -0
- package/templates/static/node_modules/preact/compat/src/index.js +238 -0
- package/templates/static/node_modules/preact/compat/src/internal.d.ts +48 -0
- package/templates/static/node_modules/preact/compat/src/memo.js +35 -0
- package/templates/static/node_modules/preact/compat/src/portals.js +78 -0
- package/templates/static/node_modules/preact/compat/src/render.js +313 -0
- package/templates/static/node_modules/preact/compat/src/suspense-list.d.ts +16 -0
- package/templates/static/node_modules/preact/compat/src/suspense-list.js +127 -0
- package/templates/static/node_modules/preact/compat/src/suspense.d.ts +19 -0
- package/templates/static/node_modules/preact/compat/src/suspense.js +291 -0
- package/templates/static/node_modules/preact/compat/src/util.js +33 -0
- package/templates/static/node_modules/preact/compat/test-utils.js +1 -0
- package/templates/static/node_modules/preact/compat/test-utils.mjs +1 -0
- package/templates/static/node_modules/preact/debug/dist/debug.js +2 -0
- package/templates/static/node_modules/preact/debug/dist/debug.js.map +1 -0
- package/templates/static/node_modules/preact/debug/dist/debug.mjs +2 -0
- package/templates/static/node_modules/preact/debug/dist/debug.module.js +2 -0
- package/templates/static/node_modules/preact/debug/dist/debug.module.js.map +1 -0
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js +2 -0
- package/templates/static/node_modules/preact/debug/dist/debug.umd.js.map +1 -0
- package/templates/static/node_modules/preact/debug/package.json +27 -0
- package/templates/static/node_modules/preact/debug/src/check-props.js +54 -0
- package/templates/static/node_modules/preact/debug/src/component-stack.js +146 -0
- package/templates/static/node_modules/preact/debug/src/constants.js +3 -0
- package/templates/static/node_modules/preact/debug/src/debug.js +593 -0
- package/templates/static/node_modules/preact/debug/src/index.d.ts +23 -0
- package/templates/static/node_modules/preact/debug/src/index.js +12 -0
- package/templates/static/node_modules/preact/debug/src/internal.d.ts +82 -0
- package/templates/static/node_modules/preact/debug/src/util.js +15 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.js +2 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.js.map +1 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.mjs +2 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js +2 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.module.js.map +1 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js +2 -0
- package/templates/static/node_modules/preact/devtools/dist/devtools.umd.js.map +1 -0
- package/templates/static/node_modules/preact/devtools/package.json +25 -0
- package/templates/static/node_modules/preact/devtools/src/devtools.js +21 -0
- package/templates/static/node_modules/preact/devtools/src/index.d.ts +8 -0
- package/templates/static/node_modules/preact/devtools/src/index.js +15 -0
- package/templates/static/node_modules/preact/dist/preact.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.js.map +1 -0
- package/templates/static/node_modules/preact/dist/preact.min.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.min.js.map +1 -0
- package/templates/static/node_modules/preact/dist/preact.min.module.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.min.module.js.map +1 -0
- package/templates/static/node_modules/preact/dist/preact.min.umd.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.min.umd.js.map +1 -0
- package/templates/static/node_modules/preact/dist/preact.mjs +2 -0
- package/templates/static/node_modules/preact/dist/preact.module.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.module.js.map +1 -0
- package/templates/static/node_modules/preact/dist/preact.umd.js +2 -0
- package/templates/static/node_modules/preact/dist/preact.umd.js.map +1 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.js +2 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.js.map +1 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.mjs +2 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js +2 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.module.js.map +1 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js +2 -0
- package/templates/static/node_modules/preact/hooks/dist/hooks.umd.js.map +1 -0
- package/templates/static/node_modules/preact/hooks/package.json +35 -0
- package/templates/static/node_modules/preact/hooks/src/index.d.ts +145 -0
- package/templates/static/node_modules/preact/hooks/src/index.js +555 -0
- package/templates/static/node_modules/preact/hooks/src/internal.d.ts +103 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +2 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +1 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +2 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +2 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +1 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +2 -0
- package/templates/static/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +1 -0
- package/templates/static/node_modules/preact/jsx-runtime/package.json +28 -0
- package/templates/static/node_modules/preact/jsx-runtime/src/index.d.ts +62 -0
- package/templates/static/node_modules/preact/jsx-runtime/src/index.js +206 -0
- package/templates/static/node_modules/preact/jsx-runtime/src/utils.js +36 -0
- package/templates/static/node_modules/preact/package.json +258 -0
- package/templates/static/node_modules/preact/src/cjs.js +3 -0
- package/templates/static/node_modules/preact/src/clone-element.js +48 -0
- package/templates/static/node_modules/preact/src/component.js +249 -0
- package/templates/static/node_modules/preact/src/constants.js +22 -0
- package/templates/static/node_modules/preact/src/create-context.js +60 -0
- package/templates/static/node_modules/preact/src/create-element.js +97 -0
- package/templates/static/node_modules/preact/src/diff/catch-error.js +46 -0
- package/templates/static/node_modules/preact/src/diff/children.js +451 -0
- package/templates/static/node_modules/preact/src/diff/index.js +684 -0
- package/templates/static/node_modules/preact/src/diff/props.js +173 -0
- package/templates/static/node_modules/preact/src/dom.d.ts +2476 -0
- package/templates/static/node_modules/preact/src/index-5.d.ts +399 -0
- package/templates/static/node_modules/preact/src/index.d.ts +402 -0
- package/templates/static/node_modules/preact/src/index.js +13 -0
- package/templates/static/node_modules/preact/src/internal.d.ts +190 -0
- package/templates/static/node_modules/preact/src/jsx.d.ts +2878 -0
- package/templates/static/node_modules/preact/src/options.js +16 -0
- package/templates/static/node_modules/preact/src/render.js +78 -0
- package/templates/static/node_modules/preact/src/util.js +28 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js +2 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.js.map +1 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.mjs +2 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js +2 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.module.js.map +1 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js +2 -0
- package/templates/static/node_modules/preact/test-utils/dist/testUtils.umd.js.map +1 -0
- package/templates/static/node_modules/preact/test-utils/package.json +28 -0
- package/templates/static/node_modules/preact/test-utils/src/index.d.ts +3 -0
- package/templates/static/node_modules/preact/test-utils/src/index.js +129 -0
- package/templates/static/node_modules/preact-render-to-string/LICENSE +21 -0
- package/templates/static/node_modules/preact-render-to-string/README.md +149 -0
- package/templates/static/node_modules/preact-render-to-string/dist/commonjs.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.d.ts +17 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.js +6 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.mjs +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.module.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/index.umd.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/internal.d.ts +35 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/commonjs.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js +4 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.mjs +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.module.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx/index.umd.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/jsx.d.ts +24 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.mjs +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.module.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js +2 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/index.umd.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js +884 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.mjs +884 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js +884 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.module.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js +888 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream/node/index.umd.js.map +1 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream-node.d.ts +19 -0
- package/templates/static/node_modules/preact-render-to-string/dist/stream.d.ts +10 -0
- package/templates/static/node_modules/preact-render-to-string/jsx.d.ts +24 -0
- package/templates/static/node_modules/preact-render-to-string/jsx.js +1 -0
- package/templates/static/node_modules/preact-render-to-string/package.json +152 -0
- package/templates/static/node_modules/preact-render-to-string/src/index.d.ts +17 -0
- package/templates/static/node_modules/preact-render-to-string/src/index.js +764 -0
- package/templates/static/node_modules/preact-render-to-string/src/internal.d.ts +35 -0
- package/templates/static/node_modules/preact-render-to-string/src/jsx.d.ts +24 -0
- package/templates/static/node_modules/preact-render-to-string/src/jsx.js +102 -0
- package/templates/static/node_modules/preact-render-to-string/src/lib/chunked.js +97 -0
- package/templates/static/node_modules/preact-render-to-string/src/lib/client.js +62 -0
- package/templates/static/node_modules/preact-render-to-string/src/lib/constants.js +20 -0
- package/templates/static/node_modules/preact-render-to-string/src/lib/polyfills.js +8 -0
- package/templates/static/node_modules/preact-render-to-string/src/lib/util.js +208 -0
- package/templates/static/node_modules/preact-render-to-string/src/pretty.js +491 -0
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.d.ts +19 -0
- package/templates/static/node_modules/preact-render-to-string/src/stream-node.js +84 -0
- package/templates/static/node_modules/preact-render-to-string/src/stream.d.ts +10 -0
- package/templates/static/node_modules/preact-render-to-string/src/stream.js +43 -0
- package/templates/static/node_modules/preact-render-to-string/typings.json +5 -0
- package/templates/static/node_modules/sirv/build.js +197 -0
- package/templates/static/node_modules/sirv/build.mjs +197 -0
- package/templates/static/node_modules/sirv/index.d.mts +29 -0
- package/templates/static/node_modules/sirv/index.d.ts +33 -0
- package/templates/static/node_modules/sirv/package.json +40 -0
- package/templates/static/node_modules/sirv/readme.md +238 -0
- package/templates/static/node_modules/totalist/dist/index.js +24 -0
- package/templates/static/node_modules/totalist/dist/index.mjs +22 -0
- package/templates/static/node_modules/totalist/index.d.ts +3 -0
- package/templates/static/node_modules/totalist/license +21 -0
- package/templates/static/node_modules/totalist/package.json +55 -0
- package/templates/static/node_modules/totalist/readme.md +109 -0
- package/templates/static/node_modules/totalist/sync/index.d.ts +3 -0
- package/templates/static/node_modules/totalist/sync/index.js +17 -0
- package/templates/static/node_modules/totalist/sync/index.mjs +15 -0
- package/templates/static/node_modules/typescript/bin/tsc +2 -0
- package/templates/static/node_modules/typescript/bin/tsserver +2 -0
- package/templates/static/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/lib.d.ts +22 -0
- package/templates/static/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/templates/static/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/templates/static/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/templates/static/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/templates/static/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/templates/static/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/templates/static/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/templates/static/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/templates/static/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/templates/static/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/templates/static/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/templates/static/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/templates/static/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/templates/static/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/templates/static/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/templates/static/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/templates/static/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/templates/static/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/templates/static/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/templates/static/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/templates/static/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/templates/static/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/templates/static/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/templates/static/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/templates/static/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/templates/static/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/templates/static/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/templates/static/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/templates/static/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/templates/static/node_modules/typescript/lib/tsc.js +8 -0
- package/templates/static/node_modules/typescript/lib/tsserver.js +8 -0
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/templates/static/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/templates/static/node_modules/typescript/lib/typescript.d.ts +11437 -0
- package/templates/static/package.json +20 -0
- package/templates/static/server.js +130 -0
- package/templates/static/site/(home).tsx +12 -0
- package/templates/static/site/styles/global.scss +78 -0
- package/templates/static/tsconfig.json +39 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { readFileSync } from "node:fs";
|
|
19
|
+
import { createVueCompiler } from "./vue.js";
|
|
20
|
+
import { createSvelteCompiler } from "./svelte.js";
|
|
21
|
+
const vueCache = new Map();
|
|
22
|
+
const svelteCache = new Map();
|
|
23
|
+
export function vueEsbuildPlugin() {
|
|
24
|
+
const compiler = createVueCompiler();
|
|
25
|
+
return {
|
|
26
|
+
name: "vue",
|
|
27
|
+
setup(build) {
|
|
28
|
+
build.onLoad({ filter: /\.vue$/ }, async (args) => {
|
|
29
|
+
try {
|
|
30
|
+
// Check cache
|
|
31
|
+
if (vueCache.has(args.path)) {
|
|
32
|
+
return {
|
|
33
|
+
contents: vueCache.get(args.path),
|
|
34
|
+
loader: "js",
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const source = readFileSync(args.path, "utf-8");
|
|
38
|
+
const result = compiler.compile(source, {
|
|
39
|
+
filename: args.path,
|
|
40
|
+
id: args.path.replace(/[^a-z0-9]/gi, "_"),
|
|
41
|
+
});
|
|
42
|
+
if (result.error) {
|
|
43
|
+
return {
|
|
44
|
+
errors: [
|
|
45
|
+
{
|
|
46
|
+
text: `Vue compilation failed: ${result.error}`,
|
|
47
|
+
location: { file: args.path, line: 1, column: 0 },
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
vueCache.set(args.path, result.code);
|
|
53
|
+
return {
|
|
54
|
+
contents: result.code,
|
|
55
|
+
loader: "js",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
return {
|
|
60
|
+
errors: [
|
|
61
|
+
{
|
|
62
|
+
text: `Vue plugin error: ${String(err)}`,
|
|
63
|
+
location: { file: args.path, line: 1, column: 0 },
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export function svelteEsbuildPlugin() {
|
|
73
|
+
const compiler = createSvelteCompiler();
|
|
74
|
+
return {
|
|
75
|
+
name: "svelte",
|
|
76
|
+
setup(build) {
|
|
77
|
+
build.onLoad({ filter: /\.svelte$/ }, async (args) => {
|
|
78
|
+
try {
|
|
79
|
+
// Check cache
|
|
80
|
+
if (svelteCache.has(args.path)) {
|
|
81
|
+
return {
|
|
82
|
+
contents: svelteCache.get(args.path),
|
|
83
|
+
loader: "js",
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const source = readFileSync(args.path, "utf-8");
|
|
87
|
+
const result = compiler.compile(source, {
|
|
88
|
+
filename: args.path,
|
|
89
|
+
dev: process.env.NODE_ENV !== "production",
|
|
90
|
+
});
|
|
91
|
+
if (result.error) {
|
|
92
|
+
return {
|
|
93
|
+
errors: [
|
|
94
|
+
{
|
|
95
|
+
text: `Svelte compilation failed: ${result.error}`,
|
|
96
|
+
location: { file: args.path, line: 1, column: 0 },
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
svelteCache.set(args.path, result.code);
|
|
102
|
+
return {
|
|
103
|
+
contents: result.code,
|
|
104
|
+
loader: "js",
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
return {
|
|
109
|
+
errors: [
|
|
110
|
+
{
|
|
111
|
+
text: `Svelte plugin error: ${String(err)}`,
|
|
112
|
+
location: { file: args.path, line: 1, column: 0 },
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
export function invalidateVueCache(filePath) {
|
|
122
|
+
vueCache.delete(filePath);
|
|
123
|
+
}
|
|
124
|
+
export function invalidateSvelteCache(filePath) {
|
|
125
|
+
svelteCache.delete(filePath);
|
|
126
|
+
}
|
|
127
|
+
export function clearAllCompilerCaches() {
|
|
128
|
+
vueCache.clear();
|
|
129
|
+
svelteCache.clear();
|
|
130
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SvelteCompileOptions {
|
|
2
|
+
filename?: string;
|
|
3
|
+
dev?: boolean;
|
|
4
|
+
minified?: boolean;
|
|
5
|
+
hydratable?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface SvelteCompileResult {
|
|
8
|
+
code: string;
|
|
9
|
+
css?: {
|
|
10
|
+
code: string;
|
|
11
|
+
map?: any;
|
|
12
|
+
};
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class SvelteCompiler {
|
|
16
|
+
compile(source: string, options: SvelteCompileOptions): SvelteCompileResult;
|
|
17
|
+
}
|
|
18
|
+
export declare function createSvelteCompiler(): SvelteCompiler;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { compile as svelteCompile } from "svelte/compiler";
|
|
19
|
+
import { log } from "../shared/log.js";
|
|
20
|
+
export class SvelteCompiler {
|
|
21
|
+
compile(source, options) {
|
|
22
|
+
try {
|
|
23
|
+
const filename = options.filename || "component.svelte";
|
|
24
|
+
const result = svelteCompile(source, {
|
|
25
|
+
filename,
|
|
26
|
+
dev: options.dev ?? false,
|
|
27
|
+
hydratable: options.hydratable ?? false,
|
|
28
|
+
css: "injected", // Inject CSS at runtime instead of extracting
|
|
29
|
+
preserveComments: !options.minified,
|
|
30
|
+
preserveWhitespace: !options.minified,
|
|
31
|
+
});
|
|
32
|
+
if (result.warnings && result.warnings.length > 0) {
|
|
33
|
+
result.warnings.forEach((w) => {
|
|
34
|
+
log.warn(`[Svelte] ${filename}: ${w.message}`);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
// Build module code
|
|
38
|
+
let code = result.js.code;
|
|
39
|
+
// If CSS is generated, inject it
|
|
40
|
+
if (result.css && result.css.code.trim()) {
|
|
41
|
+
const escapedCss = result.css.code.replace(/"/g, '\\"').replace(/\n/g, "\\n");
|
|
42
|
+
code += `
|
|
43
|
+
if (typeof window !== 'undefined') {
|
|
44
|
+
const style = document.createElement('style');
|
|
45
|
+
style.textContent = "${escapedCss}";
|
|
46
|
+
document.head.appendChild(style);
|
|
47
|
+
}
|
|
48
|
+
`;
|
|
49
|
+
}
|
|
50
|
+
return { code };
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
const message = err.message || String(err);
|
|
54
|
+
log.error(`[Svelte] Compilation error: ${message}`);
|
|
55
|
+
return { code: "", error: message };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export function createSvelteCompiler() {
|
|
60
|
+
return new SvelteCompiler();
|
|
61
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface VueCompileOptions {
|
|
2
|
+
id?: string;
|
|
3
|
+
filename?: string;
|
|
4
|
+
minified?: boolean;
|
|
5
|
+
sourceMap?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface VueCompileResult {
|
|
8
|
+
code: string;
|
|
9
|
+
bindings?: Record<string, any>;
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class VueCompiler {
|
|
13
|
+
compile(source: string, options: VueCompileOptions): VueCompileResult;
|
|
14
|
+
}
|
|
15
|
+
export declare function createVueCompiler(): VueCompiler;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { parse, compileScript, compileTemplate, compileStyle } from "@vue/compiler-sfc";
|
|
19
|
+
import { log } from "../shared/log.js";
|
|
20
|
+
export class VueCompiler {
|
|
21
|
+
compile(source, options) {
|
|
22
|
+
try {
|
|
23
|
+
const filename = options.filename || "component.vue";
|
|
24
|
+
const id = options.id || filename.replace(/[^a-z0-9]/gi, "_");
|
|
25
|
+
// Parse SFC
|
|
26
|
+
const parseResult = parse(source, { filename });
|
|
27
|
+
const descriptor = parseResult.descriptor;
|
|
28
|
+
let scriptCode = "";
|
|
29
|
+
let templateCode = "";
|
|
30
|
+
let styleCode = "";
|
|
31
|
+
// Compile script
|
|
32
|
+
if (descriptor.script || descriptor.scriptSetup) {
|
|
33
|
+
const scriptCompiled = compileScript(descriptor, {
|
|
34
|
+
id,
|
|
35
|
+
isProd: options.minified ?? false,
|
|
36
|
+
});
|
|
37
|
+
scriptCode = scriptCompiled.content;
|
|
38
|
+
}
|
|
39
|
+
// Compile template
|
|
40
|
+
if (descriptor.template) {
|
|
41
|
+
const templateCompiled = compileTemplate({
|
|
42
|
+
source: descriptor.template.content,
|
|
43
|
+
filename,
|
|
44
|
+
id,
|
|
45
|
+
compilerOptions: {
|
|
46
|
+
isCustomElement: (tag) => tag.startsWith("custom-"),
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
if (templateCompiled.errors.length > 0) {
|
|
50
|
+
return {
|
|
51
|
+
code: "",
|
|
52
|
+
error: `Template compilation error: ${templateCompiled.errors.join(", ")}`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
templateCode = templateCompiled.code;
|
|
56
|
+
}
|
|
57
|
+
// Compile styles (scoped)
|
|
58
|
+
if (descriptor.styles.length > 0) {
|
|
59
|
+
descriptor.styles.forEach((style, idx) => {
|
|
60
|
+
const styleCompiled = compileStyle({
|
|
61
|
+
source: style.content,
|
|
62
|
+
filename,
|
|
63
|
+
id,
|
|
64
|
+
scoped: style.scoped ?? false,
|
|
65
|
+
});
|
|
66
|
+
if (styleCompiled.errors.length > 0) {
|
|
67
|
+
log.warn(`Style compilation warning at style[${idx}]: ${styleCompiled.errors.join(", ")}`);
|
|
68
|
+
}
|
|
69
|
+
styleCode += styleCompiled.code + "\n";
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
// Inject styles at runtime
|
|
73
|
+
let injectStyle = "";
|
|
74
|
+
if (styleCode.trim()) {
|
|
75
|
+
const escapedStyle = styleCode.replace(/"/g, '\\"').replace(/\n/g, "\\n");
|
|
76
|
+
injectStyle = `
|
|
77
|
+
const style = document.createElement('style');
|
|
78
|
+
style.textContent = "${escapedStyle}";
|
|
79
|
+
document.head.appendChild(style);
|
|
80
|
+
`;
|
|
81
|
+
}
|
|
82
|
+
// Build final module
|
|
83
|
+
const finalCode = `
|
|
84
|
+
${scriptCode || "export default {}"}
|
|
85
|
+
${templateCode}
|
|
86
|
+
${injectStyle}
|
|
87
|
+
`;
|
|
88
|
+
return { code: finalCode };
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
const message = err.message || String(err);
|
|
92
|
+
log.error(`[Vue] Compilation error: ${message}`);
|
|
93
|
+
return { code: "", error: message };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export function createVueCompiler() {
|
|
98
|
+
return new VueCompiler();
|
|
99
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export type RenderMode = "ssr" | "ssg" | "isr" | "ppr";
|
|
2
|
+
export type FrameworkConfig = {
|
|
3
|
+
siteDir: string;
|
|
4
|
+
distDir: string;
|
|
5
|
+
routes: {
|
|
6
|
+
fileExtensions: string[];
|
|
7
|
+
routeFilePattern: RegExp;
|
|
8
|
+
enableIndexFallback: boolean;
|
|
9
|
+
};
|
|
10
|
+
rendering: {
|
|
11
|
+
defaultMode: RenderMode;
|
|
12
|
+
defaultRevalidateSeconds: number;
|
|
13
|
+
};
|
|
14
|
+
inject: {
|
|
15
|
+
head: string[];
|
|
16
|
+
bodyEnd: string[];
|
|
17
|
+
};
|
|
18
|
+
css: {
|
|
19
|
+
globalScss: string;
|
|
20
|
+
criticalBudget?: number;
|
|
21
|
+
extractCritical?: boolean;
|
|
22
|
+
};
|
|
23
|
+
assets: {
|
|
24
|
+
publicDir: string;
|
|
25
|
+
cacheControl: string;
|
|
26
|
+
hashLength?: number;
|
|
27
|
+
};
|
|
28
|
+
server: {
|
|
29
|
+
port: number;
|
|
30
|
+
hostname: string;
|
|
31
|
+
};
|
|
32
|
+
build?: {
|
|
33
|
+
minifyHtml?: boolean;
|
|
34
|
+
minifyCss?: boolean;
|
|
35
|
+
minifyJs?: boolean;
|
|
36
|
+
hashAssets?: boolean;
|
|
37
|
+
generateManifest?: boolean;
|
|
38
|
+
generateSitemap?: boolean;
|
|
39
|
+
cacheDir?: string;
|
|
40
|
+
incrementalBuild?: boolean;
|
|
41
|
+
sourceMap?: boolean;
|
|
42
|
+
};
|
|
43
|
+
dev?: {
|
|
44
|
+
enableSSR?: boolean;
|
|
45
|
+
liveReload?: boolean;
|
|
46
|
+
port?: number;
|
|
47
|
+
};
|
|
48
|
+
seo?: {
|
|
49
|
+
generateRobotsTxt?: boolean;
|
|
50
|
+
generateSitemap?: boolean;
|
|
51
|
+
sitemapBaseUrl?: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export function parseCookies(req) {
|
|
19
|
+
const cookie = req.headers.cookie;
|
|
20
|
+
if (!cookie)
|
|
21
|
+
return {};
|
|
22
|
+
const out = {};
|
|
23
|
+
for (const part of cookie.split(";")) {
|
|
24
|
+
const [k, ...rest] = part.trim().split("=");
|
|
25
|
+
const trimmedName = k.trim();
|
|
26
|
+
const trimmedValue = rest.join("=").trim();
|
|
27
|
+
if (trimmedName && trimmedValue) {
|
|
28
|
+
out[trimmedName] = decodeURIComponent(trimmedValue);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
export function headersToObject(headers) {
|
|
34
|
+
const out = {};
|
|
35
|
+
for (const [k, v] of Object.entries(headers)) {
|
|
36
|
+
if (Array.isArray(v))
|
|
37
|
+
out[k] = v.join(", ");
|
|
38
|
+
else if (typeof v === "string")
|
|
39
|
+
out[k] = v;
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
/**
|
|
3
|
+
* Route middleware context. Available to middleware functions.
|
|
4
|
+
*/
|
|
5
|
+
export interface RouteMiddlewareContext {
|
|
6
|
+
req: IncomingMessage;
|
|
7
|
+
res: ServerResponse;
|
|
8
|
+
url: URL;
|
|
9
|
+
params: Record<string, string>;
|
|
10
|
+
query: Record<string, string>;
|
|
11
|
+
headers: Record<string, string>;
|
|
12
|
+
cookies: Record<string, string>;
|
|
13
|
+
data?: Record<string, any>;
|
|
14
|
+
status: (code: number) => RouteMiddlewareContext;
|
|
15
|
+
setHeader: (key: string, value: string) => RouteMiddlewareContext;
|
|
16
|
+
redirect: (url: string, statusCode?: number) => never;
|
|
17
|
+
json: (data: any, statusCode?: number) => never;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Route middleware function signature.
|
|
21
|
+
* Return undefined/void to continue to next middleware/page.
|
|
22
|
+
* Call ctx.redirect() or ctx.json() to short-circuit.
|
|
23
|
+
*/
|
|
24
|
+
export type RouteMiddleware = (ctx: RouteMiddlewareContext) => Promise<void> | void;
|
|
25
|
+
/**
|
|
26
|
+
* Note: Route module types (middleware, hydrate fields) are defined in core/types.ts
|
|
27
|
+
* This module just provides the middleware execution primitives.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Create middleware context from request.
|
|
31
|
+
* Called by server before rendering route.
|
|
32
|
+
*/
|
|
33
|
+
export declare function createRouteMiddlewareContext(opts: {
|
|
34
|
+
req: IncomingMessage;
|
|
35
|
+
res: ServerResponse;
|
|
36
|
+
url: URL;
|
|
37
|
+
params: Record<string, string>;
|
|
38
|
+
query: Record<string, string>;
|
|
39
|
+
headers: Record<string, string>;
|
|
40
|
+
cookies: Record<string, string>;
|
|
41
|
+
}): RouteMiddlewareContext;
|
|
42
|
+
/**
|
|
43
|
+
* Execute route middlewares in sequence.
|
|
44
|
+
* If any middleware calls redirect() or json(), it throws and stops execution.
|
|
45
|
+
*/
|
|
46
|
+
export declare function executeRouteMiddleware(middlewares: RouteMiddleware[], ctx: RouteMiddlewareContext): Promise<void>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Note: Route module types (middleware, hydrate fields) are defined in core/types.ts
|
|
20
|
+
* This module just provides the middleware execution primitives.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Create middleware context from request.
|
|
24
|
+
* Called by server before rendering route.
|
|
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
|
+
* Execute route middlewares in sequence.
|
|
55
|
+
* If any middleware calls redirect() or json(), it throws and stops execution.
|
|
56
|
+
*/
|
|
57
|
+
export async function executeRouteMiddleware(middlewares, ctx) {
|
|
58
|
+
for (const mw of middlewares) {
|
|
59
|
+
try {
|
|
60
|
+
await mw(ctx);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (err.message === "__REDIRECT__" || err.message === "__JSON__") {
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
export function resolveSitePath(config, ...p) {
|
|
20
|
+
return join(process.cwd(), config.siteDir, ...p);
|
|
21
|
+
}
|
|
22
|
+
export function resolveDistPath(config, ...p) {
|
|
23
|
+
return join(process.cwd(), config.distDir, ...p);
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of Jen.js.
|
|
3
|
+
* Copyright (C) 2026 oopsio
|
|
4
|
+
*
|
|
5
|
+
* This program is free software: you can redistribute it and/or modify
|
|
6
|
+
* it under the terms of the GNU General Public License as published by
|
|
7
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
* (at your option) any later version.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU General Public License
|
|
16
|
+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export function matchRoute(routes, pathname) {
|
|
19
|
+
for (const r of routes) {
|
|
20
|
+
const re = new RegExp(r.pattern);
|
|
21
|
+
const m = pathname.match(re);
|
|
22
|
+
if (!m)
|
|
23
|
+
continue;
|
|
24
|
+
const params = {};
|
|
25
|
+
for (let i = 0; i < r.paramNames.length; i++) {
|
|
26
|
+
params[r.paramNames[i]] = decodeURIComponent(m[i + 1] ?? "");
|
|
27
|
+
}
|
|
28
|
+
return { route: r, params };
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|