create-jen-app 1.2.2 → 1.2.3
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/index.js +1 -6
- package/package.json +2 -2
- package/templates/static/.esbuild/jen.config.js +18 -0
- package/templates/static/README.md +63 -67
- package/templates/static/build.js +4 -6
- package/templates/static/jen.config.ts +3 -5
- package/templates/static/jenjs.d.ts +3 -3
- package/templates/static/lib/api/(hello).d.ts +5 -5
- package/templates/static/lib/api/(hello).js +7 -7
- package/templates/static/lib/auth/cookie-utils.d.ts +20 -11
- package/templates/static/lib/auth/cookie-utils.js +66 -69
- package/templates/static/lib/auth/jwt.d.ts +28 -0
- package/templates/static/lib/auth/jwt.js +50 -6
- package/templates/static/lib/auth/session.d.ts +34 -34
- package/templates/static/lib/auth/session.js +79 -81
- package/templates/static/lib/build/asset-hashing.js +4 -4
- package/templates/static/lib/build/asset-manifest.js +4 -4
- package/templates/static/lib/build/build.d.ts +20 -0
- package/templates/static/lib/build/build.js +43 -6
- package/templates/static/lib/build/island-hydration.js +2 -2
- package/templates/static/lib/build/minifier.js +12 -12
- package/templates/static/lib/build/page-renderer.d.ts +2 -2
- package/templates/static/lib/build/page-renderer.js +3 -3
- package/templates/static/lib/build/production-build.d.ts +1 -1
- package/templates/static/lib/build/production-build.js +4 -4
- package/templates/static/lib/build/ssg-pipeline.d.ts +1 -1
- package/templates/static/lib/build/ssg-pipeline.js +19 -19
- package/templates/static/lib/build-tools/build-site.d.ts +3 -3
- package/templates/static/lib/build-tools/build-site.js +27 -30
- package/templates/static/lib/cache/index.d.ts +8 -0
- package/templates/static/lib/cache/index.js +8 -0
- package/templates/static/lib/cache/memory.d.ts +31 -4
- package/templates/static/lib/cache/memory.js +38 -12
- package/templates/static/lib/cache/redis.d.ts +43 -4
- package/templates/static/lib/cache/redis.js +59 -14
- package/templates/static/lib/cli/banner.d.ts +5 -1
- package/templates/static/lib/cli/banner.js +18 -14
- package/templates/static/lib/cli/templates/ssg/jen.config.js +29 -29
- package/templates/static/lib/cli/templates/ssg/site/index.js +6 -1
- package/templates/static/lib/cli/templates/ssr/jen.config.js +29 -29
- package/templates/static/lib/cli/templates/ssr/site/index.js +6 -1
- package/templates/static/lib/compilers/esbuild-plugins.js +96 -98
- package/templates/static/lib/compilers/svelte.d.ts +10 -10
- package/templates/static/lib/compilers/svelte.js +31 -31
- package/templates/static/lib/compilers/vue.d.ts +8 -8
- package/templates/static/lib/compilers/vue.js +76 -68
- package/templates/static/lib/core/config.d.ts +217 -50
- package/templates/static/lib/core/http.d.ts +55 -2
- package/templates/static/lib/core/http.js +66 -20
- package/templates/static/lib/core/middleware-hooks.d.ts +204 -31
- package/templates/static/lib/core/middleware-hooks.js +86 -41
- package/templates/static/lib/core/paths.d.ts +42 -4
- package/templates/static/lib/core/paths.js +34 -2
- package/templates/static/lib/core/routes/match.d.ts +51 -3
- package/templates/static/lib/core/routes/match.js +44 -11
- package/templates/static/lib/core/routes/scan.d.ts +49 -5
- package/templates/static/lib/core/routes/scan.js +174 -115
- package/templates/static/lib/core/types.d.ts +148 -13
- package/templates/static/lib/css/compiler.d.ts +16 -13
- package/templates/static/lib/css/compiler.js +62 -58
- package/templates/static/lib/db/connector.d.ts +27 -1
- package/templates/static/lib/db/connector.js +37 -11
- package/templates/static/lib/db/drivers/jdb.d.ts +13 -9
- package/templates/static/lib/db/drivers/jdb.js +41 -39
- package/templates/static/lib/db/drivers/sql.d.ts +16 -12
- package/templates/static/lib/db/drivers/sql.js +152 -135
- package/templates/static/lib/db/index.d.ts +20 -12
- package/templates/static/lib/db/index.js +41 -41
- package/templates/static/lib/db/types.d.ts +22 -18
- package/templates/static/lib/graphql/index.d.ts +47 -0
- package/templates/static/lib/graphql/index.js +50 -3
- package/templates/static/lib/graphql/resolvers.d.ts +51 -11
- package/templates/static/lib/graphql/resolvers.js +22 -6
- package/templates/static/lib/graphql/schema.d.ts +34 -0
- package/templates/static/lib/graphql/schema.js +34 -2
- package/templates/static/lib/i18n/en.json +2 -2
- package/templates/static/lib/i18n/es.json +2 -2
- package/templates/static/lib/i18n/index.d.ts +4 -4
- package/templates/static/lib/i18n/index.js +10 -10
- package/templates/static/lib/import/jen-import.d.ts +39 -10
- package/templates/static/lib/import/jen-import.js +130 -80
- package/templates/static/lib/index.d.ts +42 -11
- package/templates/static/lib/index.js +21 -8
- package/templates/static/lib/jdb/engine.d.ts +35 -6
- package/templates/static/lib/jdb/engine.js +260 -144
- package/templates/static/lib/jdb/index.d.ts +32 -0
- package/templates/static/lib/jdb/index.js +32 -0
- package/templates/static/lib/jdb/types.d.ts +212 -30
- package/templates/static/lib/jdb/utils.d.ts +60 -0
- package/templates/static/lib/jdb/utils.js +159 -107
- package/templates/static/lib/middleware/builtins/body-parser.d.ts +15 -0
- package/templates/static/lib/middleware/builtins/body-parser.js +53 -35
- package/templates/static/lib/middleware/builtins/cors.d.ts +8 -6
- package/templates/static/lib/middleware/builtins/cors.js +52 -48
- package/templates/static/lib/middleware/builtins/logger.d.ts +18 -0
- package/templates/static/lib/middleware/builtins/logger.js +31 -13
- package/templates/static/lib/middleware/builtins/rate-limit.d.ts +19 -2
- package/templates/static/lib/middleware/builtins/rate-limit.js +75 -55
- package/templates/static/lib/middleware/builtins/request-id.d.ts +18 -0
- package/templates/static/lib/middleware/builtins/request-id.js +26 -5
- package/templates/static/lib/middleware/builtins/security-headers.d.ts +18 -0
- package/templates/static/lib/middleware/builtins/security-headers.js +51 -20
- package/templates/static/lib/middleware/context.d.ts +102 -15
- package/templates/static/lib/middleware/context.js +121 -30
- package/templates/static/lib/middleware/decorators.d.ts +18 -1
- package/templates/static/lib/middleware/decorators.js +83 -34
- package/templates/static/lib/middleware/errors/handler.js +22 -24
- package/templates/static/lib/middleware/errors/http-error.d.ts +3 -3
- package/templates/static/lib/middleware/errors/http-error.js +8 -8
- package/templates/static/lib/middleware/kernel.d.ts +67 -4
- package/templates/static/lib/middleware/kernel.js +80 -17
- package/templates/static/lib/middleware/pipeline.d.ts +51 -2
- package/templates/static/lib/middleware/pipeline.js +143 -45
- package/templates/static/lib/middleware/registry.d.ts +67 -8
- package/templates/static/lib/middleware/registry.js +83 -22
- package/templates/static/lib/middleware/response.d.ts +73 -11
- package/templates/static/lib/middleware/response.js +104 -40
- package/templates/static/lib/middleware/utils/matcher.js +11 -12
- package/templates/static/lib/native/bundle.d.ts +13 -8
- package/templates/static/lib/native/bundle.js +14 -14
- package/templates/static/lib/native/dev-server.d.ts +11 -4
- package/templates/static/lib/native/dev-server.js +14 -12
- package/templates/static/lib/native/index.d.ts +20 -20
- package/templates/static/lib/native/index.js +23 -21
- package/templates/static/lib/native/optimizer.d.ts +14 -10
- package/templates/static/lib/native/optimizer.js +14 -14
- package/templates/static/lib/native/style-compiler.d.ts +17 -8
- package/templates/static/lib/native/style-compiler.js +9 -9
- package/templates/static/lib/plugin/loader.d.ts +8 -6
- package/templates/static/lib/plugin/loader.js +25 -31
- package/templates/static/lib/runtime/client-runtime.d.ts +15 -0
- package/templates/static/lib/runtime/client-runtime.js +23 -9
- package/templates/static/lib/runtime/hmr.d.ts +23 -1
- package/templates/static/lib/runtime/hmr.js +27 -5
- package/templates/static/lib/runtime/hydrate.d.ts +17 -0
- package/templates/static/lib/runtime/hydrate.js +48 -21
- package/templates/static/lib/runtime/island-hydration-client.d.ts +5 -2
- package/templates/static/lib/runtime/island-hydration-client.js +122 -91
- package/templates/static/lib/runtime/islands.d.ts +82 -27
- package/templates/static/lib/runtime/islands.js +92 -54
- package/templates/static/lib/runtime/render.d.ts +36 -9
- package/templates/static/lib/runtime/render.js +208 -130
- package/templates/static/lib/server/api-routes.d.ts +96 -28
- package/templates/static/lib/server/api-routes.js +214 -156
- package/templates/static/lib/server/api.d.ts +3 -3
- package/templates/static/lib/server/api.js +93 -92
- package/templates/static/lib/server/app.d.ts +37 -3
- package/templates/static/lib/server/app.js +328 -254
- package/templates/static/lib/server/runtimeServe.d.ts +56 -0
- package/templates/static/lib/server/runtimeServe.js +130 -69
- package/templates/static/lib/server/ssr.d.ts +161 -0
- package/templates/static/lib/server/ssr.js +219 -0
- package/templates/static/lib/shared/log.d.ts +47 -3
- package/templates/static/lib/shared/log.js +60 -10
- package/templates/static/server.js +4 -6
- package/templates/static/site/(home).tsx +30 -12
- package/templates/static/site/styles/global.scss +89 -78
- package/templates/static/tsconfig.json +39 -39
- 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/LICENSE +0 -21
- 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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
interface SessionData {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
userId: string;
|
|
3
|
+
createdAt: number;
|
|
4
|
+
expiresAt: number;
|
|
5
|
+
[key: string]: any;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
8
|
* In-memory session manager
|
|
@@ -10,35 +10,35 @@ interface SessionData {
|
|
|
10
10
|
* For production, use persistent storage (Redis, Database, etc.)
|
|
11
11
|
*/
|
|
12
12
|
export declare class SessionManager {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
13
|
+
private sessions;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Create a new session with automatic expiration
|
|
17
|
+
*/
|
|
18
|
+
createSession(userId: string, data?: Record<string, any>): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get session with expiration check
|
|
21
|
+
*/
|
|
22
|
+
getSession(sessionId: string): SessionData | null;
|
|
23
|
+
/**
|
|
24
|
+
* Destroy session immediately
|
|
25
|
+
*/
|
|
26
|
+
destroySession(sessionId: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Verify session is valid and return user ID
|
|
29
|
+
*/
|
|
30
|
+
verifySession(sessionId: string): string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Update session expiration
|
|
33
|
+
*/
|
|
34
|
+
refreshSession(sessionId: string): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Generate cryptographically secure session ID
|
|
37
|
+
*/
|
|
38
|
+
private generateSecureSessionId;
|
|
39
|
+
/**
|
|
40
|
+
* Clean up expired sessions
|
|
41
|
+
*/
|
|
42
|
+
private cleanupExpiredSessions;
|
|
43
43
|
}
|
|
44
44
|
export {};
|
|
@@ -22,90 +22,88 @@ const SESSION_TIMEOUT = parseInt(process.env.SESSION_TIMEOUT ?? "86400000", 10);
|
|
|
22
22
|
* For production, use persistent storage (Redis, Database, etc.)
|
|
23
23
|
*/
|
|
24
24
|
export class SessionManager {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
sessions = new Map();
|
|
26
|
+
constructor() {
|
|
27
|
+
// Cleanup expired sessions every 30 minutes
|
|
28
|
+
setInterval(() => this.cleanupExpiredSessions(), 30 * 60 * 1000);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a new session with automatic expiration
|
|
32
|
+
*/
|
|
33
|
+
createSession(userId, data = {}) {
|
|
34
|
+
// Validate userId
|
|
35
|
+
if (!userId || typeof userId !== "string" || userId.length > 255) {
|
|
36
|
+
throw new Error("Invalid userId");
|
|
29
37
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
38
|
+
const sessionId = this.generateSecureSessionId();
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
const session = {
|
|
41
|
+
userId,
|
|
42
|
+
createdAt: now,
|
|
43
|
+
expiresAt: now + SESSION_TIMEOUT,
|
|
44
|
+
...data,
|
|
45
|
+
};
|
|
46
|
+
this.sessions.set(sessionId, session);
|
|
47
|
+
return sessionId;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get session with expiration check
|
|
51
|
+
*/
|
|
52
|
+
getSession(sessionId) {
|
|
53
|
+
if (!sessionId) return null;
|
|
54
|
+
const session = this.sessions.get(sessionId);
|
|
55
|
+
if (!session) return null;
|
|
56
|
+
// Check if session expired
|
|
57
|
+
if (Date.now() > session.expiresAt) {
|
|
58
|
+
this.sessions.delete(sessionId);
|
|
59
|
+
return null;
|
|
48
60
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
return session;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Destroy session immediately
|
|
65
|
+
*/
|
|
66
|
+
destroySession(sessionId) {
|
|
67
|
+
this.sessions.delete(sessionId);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Verify session is valid and return user ID
|
|
71
|
+
*/
|
|
72
|
+
verifySession(sessionId) {
|
|
73
|
+
const session = this.getSession(sessionId);
|
|
74
|
+
return session?.userId ?? null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Update session expiration
|
|
78
|
+
*/
|
|
79
|
+
refreshSession(sessionId) {
|
|
80
|
+
const session = this.getSession(sessionId);
|
|
81
|
+
if (!session) return false;
|
|
82
|
+
session.expiresAt = Date.now() + SESSION_TIMEOUT;
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Generate cryptographically secure session ID
|
|
87
|
+
*/
|
|
88
|
+
generateSecureSessionId() {
|
|
89
|
+
// In production, use crypto.randomBytes
|
|
90
|
+
const chars =
|
|
91
|
+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
92
|
+
let result = "";
|
|
93
|
+
for (let i = 0; i < 32; i++) {
|
|
94
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
64
95
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Clean up expired sessions
|
|
100
|
+
*/
|
|
101
|
+
cleanupExpiredSessions() {
|
|
102
|
+
const now = Date.now();
|
|
103
|
+
for (const [sessionId, session] of this.sessions.entries()) {
|
|
104
|
+
if (now > session.expiresAt) {
|
|
69
105
|
this.sessions.delete(sessionId);
|
|
106
|
+
}
|
|
70
107
|
}
|
|
71
|
-
|
|
72
|
-
* Verify session is valid and return user ID
|
|
73
|
-
*/
|
|
74
|
-
verifySession(sessionId) {
|
|
75
|
-
const session = this.getSession(sessionId);
|
|
76
|
-
return session?.userId ?? null;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Update session expiration
|
|
80
|
-
*/
|
|
81
|
-
refreshSession(sessionId) {
|
|
82
|
-
const session = this.getSession(sessionId);
|
|
83
|
-
if (!session)
|
|
84
|
-
return false;
|
|
85
|
-
session.expiresAt = Date.now() + SESSION_TIMEOUT;
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Generate cryptographically secure session ID
|
|
90
|
-
*/
|
|
91
|
-
generateSecureSessionId() {
|
|
92
|
-
// In production, use crypto.randomBytes
|
|
93
|
-
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
94
|
-
let result = "";
|
|
95
|
-
for (let i = 0; i < 32; i++) {
|
|
96
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
97
|
-
}
|
|
98
|
-
return result;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Clean up expired sessions
|
|
102
|
-
*/
|
|
103
|
-
cleanupExpiredSessions() {
|
|
104
|
-
const now = Date.now();
|
|
105
|
-
for (const [sessionId, session] of this.sessions.entries()) {
|
|
106
|
-
if (now > session.expiresAt) {
|
|
107
|
-
this.sessions.delete(sessionId);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
108
|
+
}
|
|
111
109
|
}
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { createHash } from
|
|
19
|
-
import { readFileSync, renameSync } from
|
|
20
|
-
import { join, dirname, basename, extname } from
|
|
18
|
+
import { createHash } from "node:crypto";
|
|
19
|
+
import { readFileSync, renameSync } from "node:fs";
|
|
20
|
+
import { join, dirname, basename, extname } from "node:path";
|
|
21
21
|
export class AssetHasher {
|
|
22
22
|
/**
|
|
23
23
|
* Calculate hash of file content
|
|
24
24
|
*/
|
|
25
25
|
static hashContent(content) {
|
|
26
|
-
return createHash(
|
|
26
|
+
return createHash("md5").update(content).digest("hex").slice(0, 10);
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Rename file to include hash (e.g. style.css -> style.a1b2c3.css)
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { writeFileSync, readFileSync, existsSync } from
|
|
19
|
-
import { join } from
|
|
18
|
+
import { writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
19
|
+
import { join } from "node:path";
|
|
20
20
|
export class AssetManifest {
|
|
21
21
|
manifest = {};
|
|
22
22
|
manifestPath;
|
|
23
23
|
constructor(distDir) {
|
|
24
|
-
this.manifestPath = join(distDir,
|
|
24
|
+
this.manifestPath = join(distDir, "manifest.json");
|
|
25
25
|
if (existsSync(this.manifestPath)) {
|
|
26
|
-
this.manifest = JSON.parse(readFileSync(this.manifestPath,
|
|
26
|
+
this.manifest = JSON.parse(readFileSync(this.manifestPath, "utf8"));
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
set(original, hashed) {
|
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
import type { FrameworkConfig } from "../core/config.js";
|
|
2
|
+
/**
|
|
3
|
+
* Builds a static site by pre-rendering all routes to HTML files.
|
|
4
|
+
* This is the core static site generation (SSG) function that runs at build time.
|
|
5
|
+
* It performs the following steps:
|
|
6
|
+
* 1. Clears the previous build output directory
|
|
7
|
+
* 2. Discovers all route files in the configured site directory
|
|
8
|
+
* 3. Renders each route to a static HTML file
|
|
9
|
+
* 4. Copies static assets from the source directory
|
|
10
|
+
* 5. Bundles Vue and Svelte components for client-side rehydration
|
|
11
|
+
* 6. Compiles SCSS to CSS for the global stylesheet
|
|
12
|
+
*
|
|
13
|
+
* Routes are rendered with empty req/res objects (SSG mode) to avoid middleware execution.
|
|
14
|
+
* This produces pure static HTML that can be served by any web server.
|
|
15
|
+
* Hydration scripts are still injected if the route has hydrate:true, allowing for
|
|
16
|
+
* optional client-side interactivity in otherwise static pages.
|
|
17
|
+
*
|
|
18
|
+
* @param opts Configuration object.
|
|
19
|
+
* @param opts.config The Jen.js framework configuration.
|
|
20
|
+
* @throws Logs warnings for missing assets or component bundling failures but does not stop the build.
|
|
21
|
+
*/
|
|
2
22
|
export declare function buildSite(opts: {
|
|
3
23
|
config: FrameworkConfig;
|
|
4
24
|
}): Promise<void>;
|
|
@@ -15,15 +15,23 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { mkdirSync, rmSync, writeFileSync, existsSync, copyFileSync, readdirSync, statSync } from "node:fs";
|
|
18
|
+
import { mkdirSync, rmSync, writeFileSync, existsSync, copyFileSync, readdirSync, statSync, } from "node:fs";
|
|
19
19
|
import { join } from "node:path";
|
|
20
20
|
import esbuild from "esbuild";
|
|
21
21
|
import { createScssCompiler } from "../css/compiler.js";
|
|
22
|
-
import { vueEsbuildPlugin, svelteEsbuildPlugin } from "../compilers/esbuild-plugins.js";
|
|
22
|
+
import { vueEsbuildPlugin, svelteEsbuildPlugin, } from "../compilers/esbuild-plugins.js";
|
|
23
23
|
import { scanRoutes } from "../core/routes/scan.js";
|
|
24
24
|
import { resolveDistPath } from "../core/paths.js";
|
|
25
25
|
import { log } from "../shared/log.js";
|
|
26
26
|
import { renderRouteToHtml } from "../runtime/render.js";
|
|
27
|
+
/**
|
|
28
|
+
* Recursively copies a directory and all its contents.
|
|
29
|
+
* Used to copy static assets from the source directory to the build output.
|
|
30
|
+
* Creates the destination directory structure as needed.
|
|
31
|
+
*
|
|
32
|
+
* @param src The source directory path.
|
|
33
|
+
* @param dst The destination directory path.
|
|
34
|
+
*/
|
|
27
35
|
function copyDir(src, dst) {
|
|
28
36
|
if (!existsSync(src))
|
|
29
37
|
return;
|
|
@@ -38,15 +46,39 @@ function copyDir(src, dst) {
|
|
|
38
46
|
copyFileSync(sp, dp);
|
|
39
47
|
}
|
|
40
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds a static site by pre-rendering all routes to HTML files.
|
|
51
|
+
* This is the core static site generation (SSG) function that runs at build time.
|
|
52
|
+
* It performs the following steps:
|
|
53
|
+
* 1. Clears the previous build output directory
|
|
54
|
+
* 2. Discovers all route files in the configured site directory
|
|
55
|
+
* 3. Renders each route to a static HTML file
|
|
56
|
+
* 4. Copies static assets from the source directory
|
|
57
|
+
* 5. Bundles Vue and Svelte components for client-side rehydration
|
|
58
|
+
* 6. Compiles SCSS to CSS for the global stylesheet
|
|
59
|
+
*
|
|
60
|
+
* Routes are rendered with empty req/res objects (SSG mode) to avoid middleware execution.
|
|
61
|
+
* This produces pure static HTML that can be served by any web server.
|
|
62
|
+
* Hydration scripts are still injected if the route has hydrate:true, allowing for
|
|
63
|
+
* optional client-side interactivity in otherwise static pages.
|
|
64
|
+
*
|
|
65
|
+
* @param opts Configuration object.
|
|
66
|
+
* @param opts.config The Jen.js framework configuration.
|
|
67
|
+
* @throws Logs warnings for missing assets or component bundling failures but does not stop the build.
|
|
68
|
+
*/
|
|
41
69
|
export async function buildSite(opts) {
|
|
42
70
|
const { config } = opts;
|
|
71
|
+
// Clear and recreate the dist directory for a clean build.
|
|
43
72
|
const dist = resolveDistPath(config);
|
|
44
73
|
rmSync(dist, { recursive: true, force: true });
|
|
45
74
|
mkdirSync(dist, { recursive: true });
|
|
75
|
+
// Discover all routes and pre-render each to a static HTML file.
|
|
46
76
|
const routes = scanRoutes(config);
|
|
47
77
|
log.info(`Building SSG: ${routes.length} routes`);
|
|
48
78
|
for (const r of routes) {
|
|
79
|
+
// Create a synthetic URL for each route. Used as the request URL during rendering.
|
|
49
80
|
const url = new URL("http://localhost" + r.urlPath);
|
|
81
|
+
// Render the route to HTML. Empty req/res indicates SSG mode (no middleware execution).
|
|
50
82
|
const html = await renderRouteToHtml({
|
|
51
83
|
config,
|
|
52
84
|
route: r,
|
|
@@ -56,8 +88,9 @@ export async function buildSite(opts) {
|
|
|
56
88
|
params: {},
|
|
57
89
|
query: {},
|
|
58
90
|
headers: {},
|
|
59
|
-
cookies: {}
|
|
91
|
+
cookies: {},
|
|
60
92
|
});
|
|
93
|
+
// Calculate output path. Root route goes to index.html, nested routes get their own directories.
|
|
61
94
|
const outPath = r.urlPath === "/"
|
|
62
95
|
? join(dist, "index.html")
|
|
63
96
|
: join(dist, r.urlPath.slice(1), "index.html");
|
|
@@ -65,8 +98,10 @@ export async function buildSite(opts) {
|
|
|
65
98
|
writeFileSync(outPath, html, "utf8");
|
|
66
99
|
log.info(`SSG: ${r.urlPath} -> ${outPath}`);
|
|
67
100
|
}
|
|
101
|
+
// Copy static assets from the source assets directory to the built site.
|
|
68
102
|
copyDir(join(process.cwd(), config.siteDir, "assets"), join(dist, "assets"));
|
|
69
|
-
//
|
|
103
|
+
// Bundle Vue and Svelte components found in the site directory.
|
|
104
|
+
// These are transpiled to JavaScript modules for client-side use in interactive pages.
|
|
70
105
|
const siteSourceDir = join(process.cwd(), config.siteDir);
|
|
71
106
|
const vueFiles = readdirSync(siteSourceDir, { recursive: true }).filter((f) => String(f).endsWith(".vue") || String(f).endsWith(".svelte"));
|
|
72
107
|
if (vueFiles.length > 0) {
|
|
@@ -88,13 +123,15 @@ export async function buildSite(opts) {
|
|
|
88
123
|
log.warn(`Failed to bundle Vue/Svelte components: ${err.message}`);
|
|
89
124
|
}
|
|
90
125
|
}
|
|
91
|
-
//
|
|
126
|
+
// Compile the global SCSS file to CSS.
|
|
127
|
+
// This stylesheet is injected into every page and contains framework-wide styles.
|
|
128
|
+
// Minification is enabled for production builds.
|
|
92
129
|
const scssPath = join(process.cwd(), config.css.globalScss);
|
|
93
130
|
if (existsSync(scssPath)) {
|
|
94
131
|
const compiler = createScssCompiler();
|
|
95
132
|
const result = compiler.compile({
|
|
96
133
|
inputPath: scssPath,
|
|
97
|
-
minified: true
|
|
134
|
+
minified: true,
|
|
98
135
|
});
|
|
99
136
|
if (result.error) {
|
|
100
137
|
log.error(`SCSS Compilation Failed: ${result.error}`);
|
|
@@ -40,7 +40,7 @@ export function extractIslandsFromHtml(html) {
|
|
|
40
40
|
islands.push({
|
|
41
41
|
component: match[1],
|
|
42
42
|
props: JSON.parse(match[2]),
|
|
43
|
-
id: match[3]
|
|
43
|
+
id: match[3],
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
return islands;
|
|
@@ -58,5 +58,5 @@ export function injectIslandScript(html, islands) {
|
|
|
58
58
|
islands.forEach(i => hydrate(i.component, i.id, i.props));
|
|
59
59
|
</script>
|
|
60
60
|
`;
|
|
61
|
-
return html.replace(
|
|
61
|
+
return html.replace("</body>", `${script}</body>`);
|
|
62
62
|
}
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import * as esbuild from
|
|
19
|
-
import { log } from
|
|
18
|
+
import * as esbuild from "esbuild";
|
|
19
|
+
import { log } from "../shared/log.js";
|
|
20
20
|
export class Minifier {
|
|
21
21
|
/**
|
|
22
22
|
* Minify JavaScript/TypeScript using esbuild
|
|
@@ -24,15 +24,15 @@ export class Minifier {
|
|
|
24
24
|
static async minifyJs(code, options = {}) {
|
|
25
25
|
try {
|
|
26
26
|
const result = await esbuild.transform(code, {
|
|
27
|
-
loader:
|
|
27
|
+
loader: "js",
|
|
28
28
|
minify: true,
|
|
29
|
-
legalComments:
|
|
30
|
-
...options
|
|
29
|
+
legalComments: "none",
|
|
30
|
+
...options,
|
|
31
31
|
});
|
|
32
32
|
return result.code;
|
|
33
33
|
}
|
|
34
34
|
catch (err) {
|
|
35
|
-
log.error(
|
|
35
|
+
log.error("Minification failed (JS)");
|
|
36
36
|
throw err;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -42,13 +42,13 @@ export class Minifier {
|
|
|
42
42
|
static async minifyCss(code) {
|
|
43
43
|
try {
|
|
44
44
|
const result = await esbuild.transform(code, {
|
|
45
|
-
loader:
|
|
46
|
-
minify: true
|
|
45
|
+
loader: "css",
|
|
46
|
+
minify: true,
|
|
47
47
|
});
|
|
48
48
|
return result.code;
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
log.error(
|
|
51
|
+
log.error("Minification failed (CSS)");
|
|
52
52
|
throw err;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -57,9 +57,9 @@ export class Minifier {
|
|
|
57
57
|
*/
|
|
58
58
|
static minifyHtml(html) {
|
|
59
59
|
return html
|
|
60
|
-
.replace(/<!--[\s\S]*?-->/g,
|
|
61
|
-
.replace(/>\s+</g,
|
|
62
|
-
.replace(/\s{2,}/g,
|
|
60
|
+
.replace(/<!--[\s\S]*?-->/g, "") // Remove comments
|
|
61
|
+
.replace(/>\s+</g, "><") // Remove whitespace between tags
|
|
62
|
+
.replace(/\s{2,}/g, " ") // Collapse multiple whitespaces
|
|
63
63
|
.trim();
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FrameworkConfig } from
|
|
2
|
-
import { RouteEntry } from
|
|
1
|
+
import { FrameworkConfig } from "../core/config.js";
|
|
2
|
+
import { RouteEntry } from "../core/routes/scan.js";
|
|
3
3
|
export interface PageRenderContext {
|
|
4
4
|
config: FrameworkConfig;
|
|
5
5
|
route: RouteEntry;
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { renderRouteToHtml } from
|
|
19
|
-
import { Minifier } from
|
|
18
|
+
import { renderRouteToHtml } from "../runtime/render.js";
|
|
19
|
+
import { Minifier } from "./minifier.js";
|
|
20
20
|
export class PageRenderer {
|
|
21
21
|
/**
|
|
22
22
|
* Render a route to a full HTML string, including minification if requested
|
|
@@ -32,7 +32,7 @@ export class PageRenderer {
|
|
|
32
32
|
params: ctx.params,
|
|
33
33
|
query: ctx.query,
|
|
34
34
|
headers: ctx.headers,
|
|
35
|
-
cookies: ctx.cookies
|
|
35
|
+
cookies: ctx.cookies,
|
|
36
36
|
});
|
|
37
37
|
// 2. Post-processing (Layout injection, hydration script injection)
|
|
38
38
|
// Note: Hydration logic is handled by island-hydration.ts usually
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { SSGPipeline } from
|
|
19
|
-
import { log } from
|
|
18
|
+
import { SSGPipeline } from "./ssg-pipeline.js";
|
|
19
|
+
import { log } from "../shared/log.js";
|
|
20
20
|
export class ProductionBuilder {
|
|
21
21
|
/**
|
|
22
22
|
* Run the production build sequence
|
|
23
23
|
*/
|
|
24
24
|
static async build(opts) {
|
|
25
|
-
log.info(
|
|
25
|
+
log.info("--- PRODUCTION BUILD START ---");
|
|
26
26
|
const pipeline = new SSGPipeline(opts.config);
|
|
27
27
|
await pipeline.run();
|
|
28
|
-
log.info(
|
|
28
|
+
log.info("--- PRODUCTION BUILD COMPLETE ---");
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* You should have received a copy of the GNU General Public License
|
|
16
16
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import { mkdirSync, rmSync, writeFileSync, existsSync, copyFileSync, readdirSync, statSync } from
|
|
19
|
-
import { join } from
|
|
20
|
-
import { scanRoutes } from
|
|
21
|
-
import { resolveDistPath } from
|
|
22
|
-
import { log } from
|
|
23
|
-
import { PageRenderer } from
|
|
24
|
-
import { AssetHasher } from
|
|
25
|
-
import { createScssCompiler } from
|
|
18
|
+
import { mkdirSync, rmSync, writeFileSync, existsSync, copyFileSync, readdirSync, statSync, } from "node:fs";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { scanRoutes } from "../core/routes/scan.js";
|
|
21
|
+
import { resolveDistPath } from "../core/paths.js";
|
|
22
|
+
import { log } from "../shared/log.js";
|
|
23
|
+
import { PageRenderer } from "./page-renderer.js";
|
|
24
|
+
import { AssetHasher } from "./asset-hashing.js";
|
|
25
|
+
import { createScssCompiler } from "../css/compiler.js";
|
|
26
26
|
export class SSGPipeline {
|
|
27
27
|
config;
|
|
28
28
|
dist;
|
|
@@ -34,7 +34,7 @@ export class SSGPipeline {
|
|
|
34
34
|
* Run the full SSG Pipeline
|
|
35
35
|
*/
|
|
36
36
|
async run() {
|
|
37
|
-
log.info(
|
|
37
|
+
log.info("Starting SSG Pipeline (Enterprise Build)");
|
|
38
38
|
// 1. Prepare dist
|
|
39
39
|
this.prepareDist();
|
|
40
40
|
// 2. Process Assets
|
|
@@ -43,18 +43,18 @@ export class SSGPipeline {
|
|
|
43
43
|
const cssPath = await this.compileStyles();
|
|
44
44
|
// 4. Render Pages
|
|
45
45
|
await this.renderPages();
|
|
46
|
-
log.info(
|
|
46
|
+
log.info("Pipeline complete.");
|
|
47
47
|
}
|
|
48
48
|
prepareDist() {
|
|
49
49
|
rmSync(this.dist, { recursive: true, force: true });
|
|
50
50
|
mkdirSync(this.dist, { recursive: true });
|
|
51
51
|
}
|
|
52
52
|
async processAssets() {
|
|
53
|
-
const assetDir = join(process.cwd(), this.config.siteDir,
|
|
54
|
-
const targetDir = join(this.dist,
|
|
53
|
+
const assetDir = join(process.cwd(), this.config.siteDir, "assets");
|
|
54
|
+
const targetDir = join(this.dist, "assets");
|
|
55
55
|
if (existsSync(assetDir)) {
|
|
56
56
|
this.copyRecursive(assetDir, targetDir);
|
|
57
|
-
log.info(
|
|
57
|
+
log.info("Assets copied to dist");
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
async compileStyles() {
|
|
@@ -64,13 +64,13 @@ export class SSGPipeline {
|
|
|
64
64
|
const compiler = createScssCompiler();
|
|
65
65
|
const result = compiler.compile({
|
|
66
66
|
inputPath: scssPath,
|
|
67
|
-
minified: true
|
|
67
|
+
minified: true,
|
|
68
68
|
});
|
|
69
69
|
if (result.error) {
|
|
70
70
|
log.error(`SCSS Failed: ${result.error}`);
|
|
71
71
|
return null;
|
|
72
72
|
}
|
|
73
|
-
const cssFile = join(this.dist,
|
|
73
|
+
const cssFile = join(this.dist, "styles.css");
|
|
74
74
|
writeFileSync(cssFile, result.css);
|
|
75
75
|
// Hash the CSS
|
|
76
76
|
const hashedName = AssetHasher.hashFile(cssFile);
|
|
@@ -81,7 +81,7 @@ export class SSGPipeline {
|
|
|
81
81
|
const routes = scanRoutes(this.config);
|
|
82
82
|
for (const r of routes) {
|
|
83
83
|
try {
|
|
84
|
-
const url = new URL(
|
|
84
|
+
const url = new URL("http://localhost" + r.urlPath);
|
|
85
85
|
const html = await PageRenderer.render({
|
|
86
86
|
config: this.config,
|
|
87
87
|
route: r,
|
|
@@ -89,11 +89,11 @@ export class SSGPipeline {
|
|
|
89
89
|
params: {},
|
|
90
90
|
query: {},
|
|
91
91
|
headers: {},
|
|
92
|
-
cookies: {}
|
|
92
|
+
cookies: {},
|
|
93
93
|
}, true);
|
|
94
|
-
const outDir = join(this.dist, r.urlPath ===
|
|
94
|
+
const outDir = join(this.dist, r.urlPath === "/" ? "" : r.urlPath.slice(1));
|
|
95
95
|
mkdirSync(outDir, { recursive: true });
|
|
96
|
-
writeFileSync(join(outDir,
|
|
96
|
+
writeFileSync(join(outDir, "index.html"), html);
|
|
97
97
|
log.info(`Rendered ${r.urlPath}`);
|
|
98
98
|
}
|
|
99
99
|
catch (err) {
|