gorsee 0.2.3 → 0.2.5
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 +261 -213
- package/dist-pkg/ai/artifact-lifecycle.d.ts +25 -0
- package/dist-pkg/ai/artifact-lifecycle.js +98 -0
- package/dist-pkg/ai/bridge.d.ts +26 -0
- package/dist-pkg/ai/bridge.js +82 -0
- package/dist-pkg/ai/bundle.d.ts +46 -0
- package/dist-pkg/ai/bundle.js +247 -0
- package/dist-pkg/ai/contracts.d.ts +1 -0
- package/dist-pkg/ai/contracts.js +1 -0
- package/dist-pkg/ai/ide.d.ts +37 -0
- package/dist-pkg/ai/ide.js +56 -0
- package/dist-pkg/ai/index.d.ts +85 -0
- package/dist-pkg/ai/index.js +267 -0
- package/dist-pkg/ai/json.d.ts +6 -0
- package/dist-pkg/ai/json.js +14 -0
- package/dist-pkg/ai/mcp.d.ts +28 -0
- package/dist-pkg/ai/mcp.js +152 -0
- package/dist-pkg/ai/session-pack.d.ts +28 -0
- package/dist-pkg/ai/session-pack.js +57 -0
- package/dist-pkg/ai/store.d.ts +67 -0
- package/dist-pkg/ai/store.js +174 -0
- package/dist-pkg/ai/summary.d.ts +57 -0
- package/dist-pkg/ai/summary.js +148 -0
- package/dist-pkg/ai/watch.d.ts +15 -0
- package/dist-pkg/ai/watch.js +66 -0
- package/dist-pkg/auth/action-tokens.d.ts +50 -0
- package/dist-pkg/auth/action-tokens.js +79 -0
- package/dist-pkg/auth/index.d.ts +70 -0
- package/dist-pkg/auth/index.js +199 -0
- package/dist-pkg/auth/redis-session-store.d.ts +7 -0
- package/dist-pkg/auth/redis-session-store.js +42 -0
- package/dist-pkg/auth/signing.d.ts +4 -0
- package/dist-pkg/auth/signing.js +33 -0
- package/dist-pkg/auth/sqlite-session-store.d.ts +12 -0
- package/dist-pkg/auth/sqlite-session-store.js +83 -0
- package/dist-pkg/auth/store-utils.d.ts +2 -0
- package/dist-pkg/auth/store-utils.js +20 -0
- package/dist-pkg/bin/gorsee.js +2 -0
- package/dist-pkg/build/backends/experimental-rolldown.d.ts +6 -0
- package/dist-pkg/build/backends/experimental-rolldown.js +9 -0
- package/dist-pkg/build/backends/register.d.ts +7 -0
- package/dist-pkg/build/backends/register.js +24 -0
- package/dist-pkg/build/backends/rolldown.d.ts +16 -0
- package/dist-pkg/build/backends/rolldown.js +176 -0
- package/dist-pkg/build/client-backend.d.ts +31 -0
- package/dist-pkg/build/client-backend.js +97 -0
- package/dist-pkg/build/client.d.ts +12 -0
- package/dist-pkg/build/client.js +93 -0
- package/dist-pkg/build/css-modules.d.ts +10 -0
- package/dist-pkg/build/css-modules.js +51 -0
- package/dist-pkg/build/devalue-parse.d.ts +1 -0
- package/dist-pkg/build/devalue-parse.js +1 -0
- package/dist-pkg/build/diagnostics.d.ts +20 -0
- package/dist-pkg/build/diagnostics.js +35 -0
- package/dist-pkg/build/fixtures.d.ts +7 -0
- package/dist-pkg/build/fixtures.js +60 -0
- package/dist-pkg/build/framework-imports.d.ts +4 -0
- package/dist-pkg/build/framework-imports.js +58 -0
- package/dist-pkg/build/init.d.ts +1 -0
- package/dist-pkg/build/init.js +6 -0
- package/dist-pkg/build/manifest.d.ts +3 -0
- package/dist-pkg/build/manifest.js +23 -0
- package/dist-pkg/build/parity.d.ts +32 -0
- package/dist-pkg/build/parity.js +71 -0
- package/dist-pkg/build/plugin.d.ts +11 -0
- package/dist-pkg/build/plugin.js +8 -0
- package/dist-pkg/build/readiness.d.ts +11 -0
- package/dist-pkg/build/readiness.js +18 -0
- package/dist-pkg/build/route-client-transform.d.ts +17 -0
- package/dist-pkg/build/route-client-transform.js +48 -0
- package/dist-pkg/build/route-metadata.d.ts +6 -0
- package/dist-pkg/build/route-metadata.js +8 -0
- package/dist-pkg/build/rpc-transform.d.ts +1 -0
- package/dist-pkg/build/rpc-transform.js +44 -0
- package/dist-pkg/build/server-bundle.d.ts +4 -0
- package/dist-pkg/build/server-bundle.js +261 -0
- package/dist-pkg/build/server-strip.d.ts +2 -0
- package/dist-pkg/build/server-strip.js +32 -0
- package/dist-pkg/build/ssg.d.ts +12 -0
- package/dist-pkg/build/ssg.js +36 -0
- package/dist-pkg/cli/bun-plugin.d.ts +2 -0
- package/dist-pkg/cli/bun-plugin.js +14 -0
- package/dist-pkg/cli/canonical-import-rewrite.d.ts +18 -0
- package/dist-pkg/cli/canonical-import-rewrite.js +94 -0
- package/dist-pkg/cli/canonical-imports.d.ts +8 -0
- package/dist-pkg/cli/canonical-imports.js +131 -0
- package/dist-pkg/cli/check-ast.d.ts +20 -0
- package/dist-pkg/cli/check-ast.js +126 -0
- package/dist-pkg/cli/cmd-ai.d.ts +4 -0
- package/dist-pkg/cli/cmd-ai.js +290 -0
- package/dist-pkg/cli/cmd-build.d.ts +12 -0
- package/dist-pkg/cli/cmd-build.js +198 -0
- package/dist-pkg/cli/cmd-check.d.ts +25 -0
- package/dist-pkg/cli/cmd-check.js +573 -0
- package/dist-pkg/cli/cmd-create.d.ts +6 -0
- package/dist-pkg/cli/cmd-create.js +600 -0
- package/dist-pkg/cli/cmd-deploy.d.ts +6 -0
- package/dist-pkg/cli/cmd-deploy.js +381 -0
- package/dist-pkg/cli/cmd-dev.d.ts +5 -0
- package/dist-pkg/cli/cmd-dev.js +5 -0
- package/dist-pkg/cli/cmd-docs.d.ts +50 -0
- package/dist-pkg/cli/cmd-docs.js +122 -0
- package/dist-pkg/cli/cmd-generate.d.ts +12 -0
- package/dist-pkg/cli/cmd-generate.js +320 -0
- package/dist-pkg/cli/cmd-migrate.d.ts +7 -0
- package/dist-pkg/cli/cmd-migrate.js +42 -0
- package/dist-pkg/cli/cmd-routes.d.ts +6 -0
- package/dist-pkg/cli/cmd-routes.js +24 -0
- package/dist-pkg/cli/cmd-start.d.ts +13 -0
- package/dist-pkg/cli/cmd-start.js +32 -0
- package/dist-pkg/cli/cmd-test.d.ts +20 -0
- package/dist-pkg/cli/cmd-test.js +103 -0
- package/dist-pkg/cli/cmd-typegen.d.ts +7 -0
- package/dist-pkg/cli/cmd-typegen.js +66 -0
- package/dist-pkg/cli/cmd-upgrade.d.ts +38 -0
- package/dist-pkg/cli/cmd-upgrade.js +232 -0
- package/dist-pkg/cli/context.d.ts +4 -0
- package/dist-pkg/cli/context.js +4 -0
- package/dist-pkg/cli/framework-md.d.ts +1 -0
- package/dist-pkg/cli/framework-md.js +391 -0
- package/dist-pkg/cli/index.d.ts +6 -0
- package/dist-pkg/cli/index.js +106 -0
- package/dist-pkg/cli/release-version.d.ts +2 -0
- package/dist-pkg/cli/release-version.js +33 -0
- package/dist-pkg/client.d.ts +16 -0
- package/dist-pkg/client.js +71 -0
- package/dist-pkg/compat.d.ts +1 -0
- package/dist-pkg/compat.js +1 -0
- package/dist-pkg/compiler/analysis-backend.d.ts +20 -0
- package/dist-pkg/compiler/analysis-backend.js +164 -0
- package/dist-pkg/compiler/backends/experimental-oxc.d.ts +6 -0
- package/dist-pkg/compiler/backends/experimental-oxc.js +9 -0
- package/dist-pkg/compiler/backends/oxc.d.ts +16 -0
- package/dist-pkg/compiler/backends/oxc.js +198 -0
- package/dist-pkg/compiler/backends/register.d.ts +7 -0
- package/dist-pkg/compiler/backends/register.js +22 -0
- package/dist-pkg/compiler/fixtures.d.ts +2 -0
- package/dist-pkg/compiler/fixtures.js +118 -0
- package/dist-pkg/compiler/init.d.ts +1 -0
- package/dist-pkg/compiler/init.js +6 -0
- package/dist-pkg/compiler/module-analysis.d.ts +13 -0
- package/dist-pkg/compiler/module-analysis.js +50 -0
- package/dist-pkg/compiler/parity.d.ts +35 -0
- package/dist-pkg/compiler/parity.js +89 -0
- package/dist-pkg/compiler/readiness.d.ts +11 -0
- package/dist-pkg/compiler/readiness.js +18 -0
- package/dist-pkg/compiler/route-facts.d.ts +34 -0
- package/dist-pkg/compiler/route-facts.js +75 -0
- package/dist-pkg/content/index.d.ts +27 -0
- package/dist-pkg/content/index.js +287 -0
- package/dist-pkg/db/index.d.ts +3 -0
- package/dist-pkg/db/index.js +6 -0
- package/dist-pkg/db/migrate.d.ts +7 -0
- package/dist-pkg/db/migrate.js +53 -0
- package/dist-pkg/db/postgres.d.ts +29 -0
- package/dist-pkg/db/postgres.js +59 -0
- package/dist-pkg/db/sqlite.d.ts +10 -0
- package/dist-pkg/db/sqlite.js +22 -0
- package/dist-pkg/deploy/cloudflare.d.ts +8 -0
- package/{src/deploy/cloudflare.ts → dist-pkg/deploy/cloudflare.js} +24 -26
- package/dist-pkg/deploy/conformance.d.ts +21 -0
- package/dist-pkg/deploy/conformance.js +98 -0
- package/dist-pkg/deploy/dockerfile.d.ts +3 -0
- package/{src/deploy/dockerfile.ts → dist-pkg/deploy/dockerfile.js} +8 -10
- package/dist-pkg/deploy/fly.d.ts +3 -0
- package/{src/deploy/fly.ts → dist-pkg/deploy/fly.js} +11 -12
- package/dist-pkg/deploy/index.d.ts +6 -0
- package/dist-pkg/deploy/index.js +26 -0
- package/dist-pkg/deploy/netlify.d.ts +2 -0
- package/{src/deploy/netlify.ts → dist-pkg/deploy/netlify.js} +17 -11
- package/dist-pkg/deploy/runtime.d.ts +2 -0
- package/dist-pkg/deploy/runtime.js +3 -0
- package/dist-pkg/deploy/vercel.d.ts +22 -0
- package/dist-pkg/deploy/vercel.js +53 -0
- package/dist-pkg/dev/error-overlay.d.ts +1 -0
- package/{src/dev/error-overlay.ts → dist-pkg/dev/error-overlay.js} +13 -23
- package/dist-pkg/dev/hmr.d.ts +30 -0
- package/dist-pkg/dev/hmr.js +86 -0
- package/dist-pkg/dev/partial-handler.d.ts +9 -0
- package/dist-pkg/dev/partial-handler.js +24 -0
- package/dist-pkg/dev/request-handler.d.ts +30 -0
- package/dist-pkg/dev/request-handler.js +67 -0
- package/dist-pkg/dev/watcher.d.ts +6 -0
- package/dist-pkg/dev/watcher.js +34 -0
- package/dist-pkg/dev.d.ts +11 -0
- package/dist-pkg/dev.js +268 -0
- package/dist-pkg/env/index.d.ts +3 -0
- package/dist-pkg/env/index.js +57 -0
- package/dist-pkg/errors/catalog.d.ts +9 -0
- package/{src/errors/catalog.ts → dist-pkg/errors/catalog.js} +8 -24
- package/dist-pkg/errors/formatter.d.ts +22 -0
- package/dist-pkg/errors/formatter.js +43 -0
- package/dist-pkg/errors/index.d.ts +2 -0
- package/dist-pkg/errors/index.js +2 -0
- package/dist-pkg/forms/action.d.ts +15 -0
- package/dist-pkg/forms/action.js +20 -0
- package/dist-pkg/forms/index.d.ts +4 -0
- package/dist-pkg/forms/index.js +12 -0
- package/dist-pkg/i18n/index.d.ts +61 -0
- package/dist-pkg/i18n/index.js +147 -0
- package/dist-pkg/index-client.d.ts +1 -0
- package/dist-pkg/index-client.js +1 -0
- package/dist-pkg/index.d.ts +32 -0
- package/dist-pkg/index.js +79 -0
- package/dist-pkg/jsx-runtime-client.d.ts +8 -0
- package/dist-pkg/jsx-runtime-client.js +1 -0
- package/dist-pkg/jsx-runtime.d.ts +13 -0
- package/dist-pkg/jsx-runtime.js +5 -0
- package/dist-pkg/jsx-types-html.d.ts +221 -0
- package/dist-pkg/jsx-types-html.js +0 -0
- package/dist-pkg/log/index.d.ts +8 -0
- package/dist-pkg/log/index.js +55 -0
- package/dist-pkg/plugins/drizzle.d.ts +16 -0
- package/dist-pkg/plugins/drizzle.js +50 -0
- package/dist-pkg/plugins/index.d.ts +62 -0
- package/dist-pkg/plugins/index.js +147 -0
- package/dist-pkg/plugins/lucia.d.ts +26 -0
- package/dist-pkg/plugins/lucia.js +63 -0
- package/dist-pkg/plugins/prisma.d.ts +14 -0
- package/dist-pkg/plugins/prisma.js +57 -0
- package/dist-pkg/plugins/resend.d.ts +21 -0
- package/dist-pkg/plugins/resend.js +45 -0
- package/dist-pkg/plugins/s3.d.ts +18 -0
- package/dist-pkg/plugins/s3.js +63 -0
- package/dist-pkg/plugins/stripe.d.ts +32 -0
- package/dist-pkg/plugins/stripe.js +69 -0
- package/dist-pkg/plugins/tailwind.d.ts +15 -0
- package/dist-pkg/plugins/tailwind.js +58 -0
- package/dist-pkg/prod.d.ts +21 -0
- package/dist-pkg/prod.js +347 -0
- package/dist-pkg/reactive/computed.d.ts +3 -0
- package/dist-pkg/reactive/computed.js +15 -0
- package/dist-pkg/reactive/data.d.ts +25 -0
- package/dist-pkg/reactive/data.js +56 -0
- package/dist-pkg/reactive/diagnostics.d.ts +100 -0
- package/dist-pkg/reactive/diagnostics.js +363 -0
- package/dist-pkg/reactive/effect.d.ts +3 -0
- package/dist-pkg/reactive/effect.js +6 -0
- package/dist-pkg/reactive/index.d.ts +9 -0
- package/dist-pkg/reactive/index.js +18 -0
- package/dist-pkg/reactive/live.d.ts +15 -0
- package/dist-pkg/reactive/live.js +58 -0
- package/dist-pkg/reactive/optimistic.d.ts +20 -0
- package/dist-pkg/reactive/optimistic.js +54 -0
- package/dist-pkg/reactive/resource.d.ts +25 -0
- package/dist-pkg/reactive/resource.js +97 -0
- package/dist-pkg/reactive/signal.d.ts +4 -0
- package/dist-pkg/reactive/signal.js +17 -0
- package/dist-pkg/reactive/store.d.ts +6 -0
- package/dist-pkg/reactive/store.js +19 -0
- package/dist-pkg/router/index.d.ts +2 -0
- package/dist-pkg/router/index.js +2 -0
- package/dist-pkg/router/matcher.d.ts +7 -0
- package/dist-pkg/router/matcher.js +40 -0
- package/dist-pkg/router/scanner.d.ts +14 -0
- package/dist-pkg/router/scanner.js +141 -0
- package/dist-pkg/routes/index.d.ts +1 -0
- package/dist-pkg/routes/index.js +10 -0
- package/dist-pkg/runtime/app-config.d.ts +26 -0
- package/dist-pkg/runtime/app-config.js +69 -0
- package/dist-pkg/runtime/client.d.ts +3 -0
- package/dist-pkg/runtime/client.js +31 -0
- package/dist-pkg/runtime/devtools.d.ts +64 -0
- package/dist-pkg/runtime/devtools.js +132 -0
- package/dist-pkg/runtime/error-boundary.d.ts +6 -0
- package/dist-pkg/runtime/error-boundary.js +17 -0
- package/dist-pkg/runtime/event-replay.d.ts +3 -0
- package/{src/runtime/event-replay.ts → dist-pkg/runtime/event-replay.js} +7 -22
- package/dist-pkg/runtime/event-source.d.ts +7 -0
- package/dist-pkg/runtime/event-source.js +24 -0
- package/dist-pkg/runtime/form.d.ts +24 -0
- package/dist-pkg/runtime/form.js +59 -0
- package/dist-pkg/runtime/head.d.ts +7 -0
- package/dist-pkg/runtime/head.js +90 -0
- package/dist-pkg/runtime/html-escape.d.ts +7 -0
- package/dist-pkg/runtime/html-escape.js +39 -0
- package/dist-pkg/runtime/hydration.d.ts +15 -0
- package/dist-pkg/runtime/hydration.js +103 -0
- package/dist-pkg/runtime/image.d.ts +49 -0
- package/dist-pkg/runtime/image.js +144 -0
- package/dist-pkg/runtime/index.d.ts +17 -0
- package/dist-pkg/runtime/index.js +59 -0
- package/dist-pkg/runtime/island-hydrator.d.ts +12 -0
- package/dist-pkg/runtime/island-hydrator.js +49 -0
- package/dist-pkg/runtime/island.d.ts +19 -0
- package/dist-pkg/runtime/island.js +36 -0
- package/dist-pkg/runtime/jsx-runtime.d.ts +12 -0
- package/dist-pkg/runtime/jsx-runtime.js +173 -0
- package/dist-pkg/runtime/link.d.ts +16 -0
- package/dist-pkg/runtime/link.js +47 -0
- package/dist-pkg/runtime/project.d.ts +37 -0
- package/dist-pkg/runtime/project.js +36 -0
- package/dist-pkg/runtime/renderable.d.ts +6 -0
- package/dist-pkg/runtime/renderable.js +0 -0
- package/dist-pkg/runtime/router.d.ts +47 -0
- package/dist-pkg/runtime/router.js +476 -0
- package/dist-pkg/runtime/server.d.ts +8 -0
- package/dist-pkg/runtime/server.js +71 -0
- package/dist-pkg/runtime/stream.d.ts +29 -0
- package/dist-pkg/runtime/stream.js +106 -0
- package/dist-pkg/runtime/suspense.d.ts +6 -0
- package/dist-pkg/runtime/suspense.js +16 -0
- package/dist-pkg/runtime/typed-routes.d.ts +24 -0
- package/dist-pkg/runtime/typed-routes.js +77 -0
- package/dist-pkg/runtime/validated-form.d.ts +40 -0
- package/dist-pkg/runtime/validated-form.js +120 -0
- package/dist-pkg/security/cors.d.ts +10 -0
- package/dist-pkg/security/cors.js +56 -0
- package/dist-pkg/security/csrf.d.ts +9 -0
- package/dist-pkg/security/csrf.js +53 -0
- package/dist-pkg/security/headers.d.ts +11 -0
- package/dist-pkg/security/headers.js +31 -0
- package/dist-pkg/security/index.d.ts +5 -0
- package/dist-pkg/security/index.js +5 -0
- package/dist-pkg/security/rate-limit.d.ts +10 -0
- package/dist-pkg/security/rate-limit.js +49 -0
- package/dist-pkg/security/redis-rate-limit.d.ts +14 -0
- package/dist-pkg/security/redis-rate-limit.js +23 -0
- package/dist-pkg/server/action.d.ts +21 -0
- package/dist-pkg/server/action.js +64 -0
- package/dist-pkg/server/cache-utils.d.ts +2 -0
- package/dist-pkg/server/cache-utils.js +26 -0
- package/dist-pkg/server/cache.d.ts +33 -0
- package/dist-pkg/server/cache.js +236 -0
- package/dist-pkg/server/compress.d.ts +2 -0
- package/dist-pkg/server/compress.js +49 -0
- package/dist-pkg/server/endpoint-execution.d.ts +28 -0
- package/dist-pkg/server/endpoint-execution.js +37 -0
- package/dist-pkg/server/etag.d.ts +3 -0
- package/dist-pkg/server/etag.js +18 -0
- package/dist-pkg/server/guard.d.ts +16 -0
- package/dist-pkg/server/guard.js +45 -0
- package/dist-pkg/server/html-shell.d.ts +12 -0
- package/dist-pkg/server/html-shell.js +52 -0
- package/dist-pkg/server/index.d.ts +36 -0
- package/dist-pkg/server/index.js +170 -0
- package/dist-pkg/server/jobs.d.ts +41 -0
- package/dist-pkg/server/jobs.js +81 -0
- package/dist-pkg/server/manifest.d.ts +19 -0
- package/dist-pkg/server/manifest.js +36 -0
- package/dist-pkg/server/middleware.d.ts +39 -0
- package/dist-pkg/server/middleware.js +122 -0
- package/dist-pkg/server/mime.d.ts +1 -0
- package/{src/server/mime.ts → dist-pkg/server/mime.js} +6 -17
- package/dist-pkg/server/not-found.d.ts +6 -0
- package/dist-pkg/server/not-found.js +24 -0
- package/dist-pkg/server/page-render.d.ts +29 -0
- package/dist-pkg/server/page-render.js +67 -0
- package/dist-pkg/server/partial-navigation.d.ts +4 -0
- package/dist-pkg/server/partial-navigation.js +16 -0
- package/dist-pkg/server/pipe.d.ts +9 -0
- package/dist-pkg/server/pipe.js +32 -0
- package/dist-pkg/server/redis-cache-store.d.ts +10 -0
- package/dist-pkg/server/redis-cache-store.js +73 -0
- package/dist-pkg/server/redis-client.d.ts +37 -0
- package/dist-pkg/server/redis-client.js +37 -0
- package/dist-pkg/server/request-policy.d.ts +55 -0
- package/dist-pkg/server/request-policy.js +216 -0
- package/dist-pkg/server/request-preflight.d.ts +23 -0
- package/dist-pkg/server/request-preflight.js +45 -0
- package/dist-pkg/server/request-security-policy.d.ts +17 -0
- package/dist-pkg/server/request-security-policy.js +34 -0
- package/dist-pkg/server/request-surface.d.ts +8 -0
- package/dist-pkg/server/request-surface.js +19 -0
- package/dist-pkg/server/route-request.d.ts +31 -0
- package/dist-pkg/server/route-request.js +112 -0
- package/dist-pkg/server/route-response.d.ts +22 -0
- package/dist-pkg/server/route-response.js +58 -0
- package/dist-pkg/server/rpc-hash.d.ts +2 -0
- package/dist-pkg/server/rpc-hash.js +7 -0
- package/dist-pkg/server/rpc-protocol.d.ts +22 -0
- package/dist-pkg/server/rpc-protocol.js +28 -0
- package/dist-pkg/server/rpc-utils.d.ts +2 -0
- package/dist-pkg/server/rpc-utils.js +26 -0
- package/dist-pkg/server/rpc.d.ts +20 -0
- package/dist-pkg/server/rpc.js +147 -0
- package/dist-pkg/server/runtime-dispatch.d.ts +19 -0
- package/dist-pkg/server/runtime-dispatch.js +67 -0
- package/dist-pkg/server/server-execution.d.ts +22 -0
- package/dist-pkg/server/server-execution.js +53 -0
- package/dist-pkg/server/sqlite-cache-store.d.ts +13 -0
- package/dist-pkg/server/sqlite-cache-store.js +88 -0
- package/dist-pkg/server/sse.d.ts +9 -0
- package/dist-pkg/server/sse.js +34 -0
- package/dist-pkg/server/static-file.d.ts +9 -0
- package/dist-pkg/server/static-file.js +43 -0
- package/dist-pkg/server/ws.d.ts +18 -0
- package/dist-pkg/server/ws.js +40 -0
- package/dist-pkg/server-entry.d.ts +19 -0
- package/dist-pkg/server-entry.js +93 -0
- package/dist-pkg/testing/index.d.ts +98 -0
- package/dist-pkg/testing/index.js +254 -0
- package/dist-pkg/types/index.d.ts +4 -0
- package/dist-pkg/types/index.js +4 -0
- package/dist-pkg/types/safe-html.d.ts +7 -0
- package/dist-pkg/types/safe-html.js +19 -0
- package/dist-pkg/types/safe-sql.d.ts +8 -0
- package/dist-pkg/types/safe-sql.js +14 -0
- package/dist-pkg/types/safe-url.d.ts +7 -0
- package/dist-pkg/types/safe-url.js +20 -0
- package/dist-pkg/types/user-input.d.ts +9 -0
- package/dist-pkg/types/user-input.js +3 -0
- package/dist-pkg/unsafe/index.d.ts +12 -0
- package/dist-pkg/unsafe/index.js +6 -0
- package/package.json +102 -44
- package/bin/gorsee.js +0 -14
- package/src/auth/index.ts +0 -178
- package/src/auth/redis-session-store.ts +0 -46
- package/src/auth/sqlite-session-store.ts +0 -98
- package/src/auth/store-utils.ts +0 -21
- package/src/build/client.ts +0 -139
- package/src/build/css-modules.ts +0 -69
- package/src/build/devalue-parse.ts +0 -2
- package/src/build/manifest.ts +0 -34
- package/src/build/route-metadata.ts +0 -12
- package/src/build/rpc-transform.ts +0 -62
- package/src/build/server-strip.ts +0 -87
- package/src/build/ssg.ts +0 -70
- package/src/cli/bun-plugin.ts +0 -58
- package/src/cli/cmd-build.ts +0 -153
- package/src/cli/cmd-check.ts +0 -239
- package/src/cli/cmd-create.ts +0 -328
- package/src/cli/cmd-deploy.ts +0 -149
- package/src/cli/cmd-dev.ts +0 -13
- package/src/cli/cmd-docs.ts +0 -152
- package/src/cli/cmd-generate.ts +0 -155
- package/src/cli/cmd-migrate.ts +0 -53
- package/src/cli/cmd-routes.ts +0 -36
- package/src/cli/cmd-start.ts +0 -30
- package/src/cli/cmd-test.ts +0 -129
- package/src/cli/cmd-typegen.ts +0 -93
- package/src/cli/cmd-upgrade.ts +0 -143
- package/src/cli/context.ts +0 -12
- package/src/cli/framework-md.ts +0 -223
- package/src/cli/index.ts +0 -107
- package/src/client.ts +0 -26
- package/src/db/index.ts +0 -2
- package/src/db/migrate.ts +0 -89
- package/src/db/sqlite.ts +0 -40
- package/src/deploy/index.ts +0 -31
- package/src/deploy/vercel.ts +0 -94
- package/src/dev/hmr.ts +0 -31
- package/src/dev/partial-handler.ts +0 -52
- package/src/dev/request-handler.ts +0 -127
- package/src/dev/watcher.ts +0 -48
- package/src/dev.ts +0 -208
- package/src/env/index.ts +0 -74
- package/src/errors/formatter.ts +0 -63
- package/src/errors/index.ts +0 -2
- package/src/i18n/index.ts +0 -72
- package/src/index-client.ts +0 -4
- package/src/index.ts +0 -43
- package/src/jsx-runtime-client.ts +0 -13
- package/src/jsx-runtime.ts +0 -20
- package/src/jsx-types-html.ts +0 -242
- package/src/log/index.ts +0 -44
- package/src/plugins/drizzle.ts +0 -84
- package/src/plugins/index.ts +0 -86
- package/src/plugins/lucia.ts +0 -111
- package/src/plugins/prisma.ts +0 -85
- package/src/plugins/resend.ts +0 -78
- package/src/plugins/s3.ts +0 -102
- package/src/plugins/stripe.ts +0 -133
- package/src/plugins/tailwind.ts +0 -92
- package/src/prod.ts +0 -252
- package/src/reactive/computed.ts +0 -7
- package/src/reactive/effect.ts +0 -7
- package/src/reactive/index.ts +0 -7
- package/src/reactive/live.ts +0 -97
- package/src/reactive/optimistic.ts +0 -83
- package/src/reactive/resource.ts +0 -138
- package/src/reactive/signal.ts +0 -20
- package/src/reactive/store.ts +0 -36
- package/src/router/index.ts +0 -2
- package/src/router/matcher.ts +0 -53
- package/src/router/scanner.ts +0 -206
- package/src/runtime/client.ts +0 -28
- package/src/runtime/error-boundary.ts +0 -35
- package/src/runtime/form.ts +0 -49
- package/src/runtime/head.ts +0 -113
- package/src/runtime/html-escape.ts +0 -30
- package/src/runtime/hydration.ts +0 -95
- package/src/runtime/image.ts +0 -48
- package/src/runtime/index.ts +0 -12
- package/src/runtime/island-hydrator.ts +0 -84
- package/src/runtime/island.ts +0 -88
- package/src/runtime/jsx-runtime.ts +0 -167
- package/src/runtime/link.ts +0 -45
- package/src/runtime/project.ts +0 -73
- package/src/runtime/router.ts +0 -224
- package/src/runtime/server.ts +0 -102
- package/src/runtime/stream.ts +0 -182
- package/src/runtime/suspense.ts +0 -37
- package/src/runtime/typed-routes.ts +0 -26
- package/src/runtime/validated-form.ts +0 -106
- package/src/security/cors.ts +0 -80
- package/src/security/csrf.ts +0 -85
- package/src/security/headers.ts +0 -50
- package/src/security/index.ts +0 -4
- package/src/security/rate-limit.ts +0 -80
- package/src/server/action.ts +0 -48
- package/src/server/cache-utils.ts +0 -23
- package/src/server/cache.ts +0 -125
- package/src/server/compress.ts +0 -60
- package/src/server/etag.ts +0 -23
- package/src/server/guard.ts +0 -69
- package/src/server/html-shell.ts +0 -69
- package/src/server/index.ts +0 -57
- package/src/server/manifest.ts +0 -36
- package/src/server/middleware.ts +0 -159
- package/src/server/not-found.ts +0 -35
- package/src/server/page-render.ts +0 -123
- package/src/server/pipe.ts +0 -46
- package/src/server/redis-cache-store.ts +0 -87
- package/src/server/redis-client.ts +0 -71
- package/src/server/request-preflight.ts +0 -45
- package/src/server/route-request.ts +0 -72
- package/src/server/rpc-hash.ts +0 -17
- package/src/server/rpc-utils.ts +0 -27
- package/src/server/rpc.ts +0 -177
- package/src/server/sqlite-cache-store.ts +0 -109
- package/src/server/sse.ts +0 -96
- package/src/server/static-file.ts +0 -63
- package/src/server/ws.ts +0 -56
- package/src/server-entry.ts +0 -36
- package/src/testing/index.ts +0 -74
- package/src/types/index.ts +0 -4
- package/src/types/safe-html.ts +0 -32
- package/src/types/safe-sql.ts +0 -28
- package/src/types/safe-url.ts +0 -40
- package/src/types/user-input.ts +0 -12
- package/src/unsafe/index.ts +0 -18
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createTypeScriptModuleAnalysisBackend } from "../analysis-backend.js";
|
|
2
|
+
import { registerModuleAnalysisBackend } from "../module-analysis.js";
|
|
3
|
+
import {
|
|
4
|
+
createExperimentalOxcModuleAnalysisBackend,
|
|
5
|
+
EXPERIMENTAL_OXC_BACKEND_NAME
|
|
6
|
+
} from "./experimental-oxc.js";
|
|
7
|
+
import {
|
|
8
|
+
createOxcModuleAnalysisBackend,
|
|
9
|
+
OXC_BACKEND_NAME
|
|
10
|
+
} from "./oxc.js";
|
|
11
|
+
export function registerBuiltInCompilerBackends(options = {}) {
|
|
12
|
+
const registered = [], fallbackBackend = options.fallbackBackend ?? createTypeScriptModuleAnalysisBackend();
|
|
13
|
+
if (options.includeExperimentalOxc) {
|
|
14
|
+
registerModuleAnalysisBackend(createExperimentalOxcModuleAnalysisBackend({ fallback: fallbackBackend }));
|
|
15
|
+
registered.push(EXPERIMENTAL_OXC_BACKEND_NAME);
|
|
16
|
+
}
|
|
17
|
+
if (options.includeOxc) {
|
|
18
|
+
registerModuleAnalysisBackend(createOxcModuleAnalysisBackend({ fallback: fallbackBackend }));
|
|
19
|
+
registered.push(OXC_BACKEND_NAME);
|
|
20
|
+
}
|
|
21
|
+
return registered;
|
|
22
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export const MODULE_ANALYSIS_FIXTURES = [
|
|
2
|
+
{
|
|
3
|
+
filePath: "routes/index.tsx",
|
|
4
|
+
content: `
|
|
5
|
+
/** Home */
|
|
6
|
+
import { Head } from "gorsee/client"
|
|
7
|
+
export const meta = { title: "Home", secure: true }
|
|
8
|
+
export const prerender = true
|
|
9
|
+
export async function loader() { return { ok: true } }
|
|
10
|
+
export default function Page() { return <main>{String(!!Head)}</main> }
|
|
11
|
+
`
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
filePath: "routes/api/users.ts",
|
|
15
|
+
content: `
|
|
16
|
+
import type { Context } from "gorsee/server"
|
|
17
|
+
export async function GET(_ctx: Context) { return new Response("ok") }
|
|
18
|
+
`
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
filePath: "routes/dashboard.tsx",
|
|
22
|
+
content: `
|
|
23
|
+
/** Dashboard */
|
|
24
|
+
import { createSignal } from "gorsee/client"
|
|
25
|
+
export const meta = { area: "ops", tags: ["team"] }
|
|
26
|
+
export default function Dashboard() {
|
|
27
|
+
const [count] = createSignal(1)
|
|
28
|
+
return <main>{count()}</main>
|
|
29
|
+
}
|
|
30
|
+
`
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
filePath: "routes/admin.tsx",
|
|
34
|
+
content: `
|
|
35
|
+
/** Admin */
|
|
36
|
+
import Layout from "../shared/layout"
|
|
37
|
+
import * as auth from "gorsee/server"
|
|
38
|
+
import { Head, Link } from "gorsee/client"
|
|
39
|
+
|
|
40
|
+
export const meta = {
|
|
41
|
+
area: "admin",
|
|
42
|
+
secure: true,
|
|
43
|
+
tags: ["ops", "internal"],
|
|
44
|
+
nested: { feature: "audit" },
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export default class AdminPage {
|
|
48
|
+
render() {
|
|
49
|
+
return <main>{String(!!Layout && !!auth && !!Head && !!Link)}</main>
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
`
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
filePath: "routes/settings.tsx",
|
|
56
|
+
content: `
|
|
57
|
+
/** Settings */
|
|
58
|
+
import type { Context } from "gorsee/server"
|
|
59
|
+
import { createSignal } from "gorsee/client"
|
|
60
|
+
|
|
61
|
+
export const meta = {
|
|
62
|
+
title: "Settings",
|
|
63
|
+
sections: ["profile", "security"],
|
|
64
|
+
flags: { beta: false, public: null },
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export async function loader(_ctx: Context) {
|
|
68
|
+
return { section: "profile" }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export default function SettingsPage() {
|
|
72
|
+
const [tab] = createSignal("profile")
|
|
73
|
+
return <main>{tab()}</main>
|
|
74
|
+
}
|
|
75
|
+
`
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
filePath: "routes/docs/[...parts].tsx",
|
|
79
|
+
content: `
|
|
80
|
+
/** Docs */
|
|
81
|
+
import type { Context } from "gorsee/server"
|
|
82
|
+
|
|
83
|
+
export const meta = {
|
|
84
|
+
title: "Docs",
|
|
85
|
+
sections: ["intro", "advanced"],
|
|
86
|
+
flags: { public: true, beta: false, note: null },
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export async function loader(_ctx: Context) {
|
|
90
|
+
return { parts: ["intro"] }
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export default function DocsPage() {
|
|
94
|
+
return <main>docs</main>
|
|
95
|
+
}
|
|
96
|
+
`
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
filePath: "routes/reports.tsx",
|
|
100
|
+
content: `
|
|
101
|
+
/** Reports */
|
|
102
|
+
import { Head } from "gorsee/client"
|
|
103
|
+
import * as serverApi from "gorsee/server"
|
|
104
|
+
|
|
105
|
+
export const meta = {
|
|
106
|
+
title: "Reports",
|
|
107
|
+
filters: ["daily", "weekly"],
|
|
108
|
+
nested: { view: "table", badges: [1, 2] },
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export const prerender = false
|
|
112
|
+
|
|
113
|
+
export default function ReportsPage() {
|
|
114
|
+
return <main>{String(!!Head && !!serverApi)}</main>
|
|
115
|
+
}
|
|
116
|
+
`
|
|
117
|
+
}
|
|
118
|
+
];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function initializeCompilerBackends(env?: NodeJS.ProcessEnv): import("./analysis-backend.js").ModuleAnalysisBackend;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { registerBuiltInCompilerBackends } from "./backends/register.js";
|
|
2
|
+
import { configureModuleAnalysisBackend } from "./module-analysis.js";
|
|
3
|
+
export function initializeCompilerBackends(env = process.env) {
|
|
4
|
+
registerBuiltInCompilerBackends({ includeExperimentalOxc: !0, includeOxc: !0 });
|
|
5
|
+
return configureModuleAnalysisBackend(env);
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ModuleAnalysisBackend, type ModuleAnalysisFacts, type ModuleImportFact } from "./analysis-backend.js";
|
|
2
|
+
export declare const GORSEE_COMPILER_BACKEND_ENV = "GORSEE_COMPILER_BACKEND";
|
|
3
|
+
export declare function analyzeModuleSource(filePath: string, content: string): ModuleAnalysisFacts;
|
|
4
|
+
export declare function getModuleAnalysisBackend(): ModuleAnalysisBackend;
|
|
5
|
+
export declare function setModuleAnalysisBackend(backend: ModuleAnalysisBackend): void;
|
|
6
|
+
export declare function resetModuleAnalysisBackend(): void;
|
|
7
|
+
export declare function registerModuleAnalysisBackend(backend: ModuleAnalysisBackend): void;
|
|
8
|
+
export declare function unregisterModuleAnalysisBackend(name: string): void;
|
|
9
|
+
export declare function listModuleAnalysisBackends(): string[];
|
|
10
|
+
export declare function selectModuleAnalysisBackend(name: string): ModuleAnalysisBackend;
|
|
11
|
+
export declare function resolveModuleAnalysisBackendName(env?: NodeJS.ProcessEnv): string;
|
|
12
|
+
export declare function configureModuleAnalysisBackend(env?: NodeJS.ProcessEnv): ModuleAnalysisBackend;
|
|
13
|
+
export type { ModuleAnalysisBackend, ModuleAnalysisFacts, ModuleImportFact };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createTypeScriptModuleAnalysisBackend
|
|
3
|
+
} from "./analysis-backend.js";
|
|
4
|
+
import { createOxcModuleAnalysisBackend } from "./backends/oxc.js";
|
|
5
|
+
export const GORSEE_COMPILER_BACKEND_ENV = "GORSEE_COMPILER_BACKEND";
|
|
6
|
+
const internalTypeScriptFallback = createTypeScriptModuleAnalysisBackend(), stableOxcBackend = createOxcModuleAnalysisBackend({ fallback: internalTypeScriptFallback }), moduleAnalysisBackends = new Map([
|
|
7
|
+
[stableOxcBackend.name, stableOxcBackend]
|
|
8
|
+
]);
|
|
9
|
+
let defaultModuleAnalysisBackend = stableOxcBackend;
|
|
10
|
+
export function analyzeModuleSource(filePath, content) {
|
|
11
|
+
return defaultModuleAnalysisBackend.analyzeModuleSource(filePath, content);
|
|
12
|
+
}
|
|
13
|
+
export function getModuleAnalysisBackend() {
|
|
14
|
+
return defaultModuleAnalysisBackend;
|
|
15
|
+
}
|
|
16
|
+
export function setModuleAnalysisBackend(backend) {
|
|
17
|
+
moduleAnalysisBackends.set(backend.name, backend);
|
|
18
|
+
defaultModuleAnalysisBackend = backend;
|
|
19
|
+
}
|
|
20
|
+
export function resetModuleAnalysisBackend() {
|
|
21
|
+
moduleAnalysisBackends.clear();
|
|
22
|
+
moduleAnalysisBackends.set(stableOxcBackend.name, stableOxcBackend);
|
|
23
|
+
defaultModuleAnalysisBackend = stableOxcBackend;
|
|
24
|
+
}
|
|
25
|
+
export function registerModuleAnalysisBackend(backend) {
|
|
26
|
+
moduleAnalysisBackends.set(backend.name, backend);
|
|
27
|
+
}
|
|
28
|
+
export function unregisterModuleAnalysisBackend(name) {
|
|
29
|
+
if (name === stableOxcBackend.name)
|
|
30
|
+
return;
|
|
31
|
+
moduleAnalysisBackends.delete(name);
|
|
32
|
+
if (defaultModuleAnalysisBackend.name === name)
|
|
33
|
+
defaultModuleAnalysisBackend = stableOxcBackend;
|
|
34
|
+
}
|
|
35
|
+
export function listModuleAnalysisBackends() {
|
|
36
|
+
return [...moduleAnalysisBackends.keys()].sort();
|
|
37
|
+
}
|
|
38
|
+
export function selectModuleAnalysisBackend(name) {
|
|
39
|
+
const backend = moduleAnalysisBackends.get(name);
|
|
40
|
+
if (!backend)
|
|
41
|
+
throw Error(`Unknown module analysis backend "${name}". Registered backends: ${listModuleAnalysisBackends().join(", ")}`);
|
|
42
|
+
defaultModuleAnalysisBackend = backend;
|
|
43
|
+
return backend;
|
|
44
|
+
}
|
|
45
|
+
export function resolveModuleAnalysisBackendName(env = process.env) {
|
|
46
|
+
return env[GORSEE_COMPILER_BACKEND_ENV]?.trim() || stableOxcBackend.name;
|
|
47
|
+
}
|
|
48
|
+
export function configureModuleAnalysisBackend(env = process.env) {
|
|
49
|
+
return selectModuleAnalysisBackend(resolveModuleAnalysisBackendName(env));
|
|
50
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ModuleAnalysisBackend } from "./analysis-backend.js";
|
|
2
|
+
export interface ModuleAnalysisParityFixture {
|
|
3
|
+
filePath: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ModuleAnalysisParityDifference {
|
|
7
|
+
filePath: string;
|
|
8
|
+
field: "exportedNames" | "hasDefaultExport" | "title" | "meta" | "exportedLiterals" | "imports";
|
|
9
|
+
left: unknown;
|
|
10
|
+
right: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface ModuleAnalysisParityReport {
|
|
13
|
+
leftBackend: string;
|
|
14
|
+
rightBackend: string;
|
|
15
|
+
checkedFiles: number;
|
|
16
|
+
matches: boolean;
|
|
17
|
+
leftSurface: ModuleAnalysisParitySurface[];
|
|
18
|
+
rightSurface: ModuleAnalysisParitySurface[];
|
|
19
|
+
differences: ModuleAnalysisParityDifference[];
|
|
20
|
+
}
|
|
21
|
+
export interface ModuleAnalysisParitySurface {
|
|
22
|
+
filePath: string;
|
|
23
|
+
exportedNames: string[];
|
|
24
|
+
hasDefaultExport: boolean;
|
|
25
|
+
title: string;
|
|
26
|
+
meta: Record<string, unknown> | null;
|
|
27
|
+
exportedLiterals: Record<string, unknown>;
|
|
28
|
+
imports: Array<{
|
|
29
|
+
specifier: string;
|
|
30
|
+
names: string[];
|
|
31
|
+
namespace?: string;
|
|
32
|
+
hasDefaultImport: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export declare function compareModuleAnalysisBackends(leftBackend: ModuleAnalysisBackend, rightBackend: ModuleAnalysisBackend, fixtures: ModuleAnalysisParityFixture[]): ModuleAnalysisParityReport;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
export function compareModuleAnalysisBackends(leftBackend, rightBackend, fixtures) {
|
|
2
|
+
const differences = [], leftSurface = [], rightSurface = [];
|
|
3
|
+
for (const fixture of fixtures) {
|
|
4
|
+
const left = leftBackend.analyzeModuleSource(fixture.filePath, fixture.content), right = rightBackend.analyzeModuleSource(fixture.filePath, fixture.content);
|
|
5
|
+
leftSurface.push(normalizeModuleAnalysisFacts(fixture.filePath, left));
|
|
6
|
+
rightSurface.push(normalizeModuleAnalysisFacts(fixture.filePath, right));
|
|
7
|
+
collectDifferences(differences, fixture.filePath, left, right);
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
leftBackend: leftBackend.name,
|
|
11
|
+
rightBackend: rightBackend.name,
|
|
12
|
+
checkedFiles: fixtures.length,
|
|
13
|
+
matches: differences.length === 0,
|
|
14
|
+
leftSurface,
|
|
15
|
+
rightSurface,
|
|
16
|
+
differences
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function collectDifferences(differences, filePath, left, right) {
|
|
20
|
+
if (!sameStringSets(left.exportedNames, right.exportedNames))
|
|
21
|
+
differences.push({
|
|
22
|
+
filePath,
|
|
23
|
+
field: "exportedNames",
|
|
24
|
+
left: [...left.exportedNames].sort(),
|
|
25
|
+
right: [...right.exportedNames].sort()
|
|
26
|
+
});
|
|
27
|
+
if (left.hasDefaultExport !== right.hasDefaultExport)
|
|
28
|
+
differences.push({
|
|
29
|
+
filePath,
|
|
30
|
+
field: "hasDefaultExport",
|
|
31
|
+
left: left.hasDefaultExport,
|
|
32
|
+
right: right.hasDefaultExport
|
|
33
|
+
});
|
|
34
|
+
if (left.title !== right.title)
|
|
35
|
+
differences.push({
|
|
36
|
+
filePath,
|
|
37
|
+
field: "title",
|
|
38
|
+
left: left.title,
|
|
39
|
+
right: right.title
|
|
40
|
+
});
|
|
41
|
+
if (!sameJsonLike(left.meta, right.meta))
|
|
42
|
+
differences.push({
|
|
43
|
+
filePath,
|
|
44
|
+
field: "meta",
|
|
45
|
+
left: left.meta,
|
|
46
|
+
right: right.meta
|
|
47
|
+
});
|
|
48
|
+
if (!sameJsonLike(left.exportedLiterals, right.exportedLiterals))
|
|
49
|
+
differences.push({
|
|
50
|
+
filePath,
|
|
51
|
+
field: "exportedLiterals",
|
|
52
|
+
left: left.exportedLiterals,
|
|
53
|
+
right: right.exportedLiterals
|
|
54
|
+
});
|
|
55
|
+
if (!sameJsonLike(left.imports, right.imports))
|
|
56
|
+
differences.push({
|
|
57
|
+
filePath,
|
|
58
|
+
field: "imports",
|
|
59
|
+
left: left.imports,
|
|
60
|
+
right: right.imports
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function sameStringSets(left, right) {
|
|
64
|
+
if (left.size !== right.size)
|
|
65
|
+
return !1;
|
|
66
|
+
for (const value of left)
|
|
67
|
+
if (!right.has(value))
|
|
68
|
+
return !1;
|
|
69
|
+
return !0;
|
|
70
|
+
}
|
|
71
|
+
function sameJsonLike(left, right) {
|
|
72
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
73
|
+
}
|
|
74
|
+
function normalizeModuleAnalysisFacts(filePath, facts) {
|
|
75
|
+
return {
|
|
76
|
+
filePath,
|
|
77
|
+
exportedNames: [...facts.exportedNames].sort(),
|
|
78
|
+
hasDefaultExport: facts.hasDefaultExport,
|
|
79
|
+
title: facts.title,
|
|
80
|
+
meta: facts.meta,
|
|
81
|
+
exportedLiterals: facts.exportedLiterals,
|
|
82
|
+
imports: facts.imports.map((entry) => ({
|
|
83
|
+
specifier: entry.specifier,
|
|
84
|
+
names: [...entry.names],
|
|
85
|
+
namespace: entry.namespace,
|
|
86
|
+
hasDefaultImport: entry.hasDefaultImport
|
|
87
|
+
}))
|
|
88
|
+
};
|
|
89
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { GORSEE_COMPILER_BACKEND_ENV } from "./module-analysis.js";
|
|
2
|
+
export interface CompilerBackendReadiness {
|
|
3
|
+
envVar: typeof GORSEE_COMPILER_BACKEND_ENV;
|
|
4
|
+
stableDefault: "oxc";
|
|
5
|
+
preferredCanary: "experimental-oxc";
|
|
6
|
+
selected: string;
|
|
7
|
+
resolvedFromEnv: string;
|
|
8
|
+
registered: string[];
|
|
9
|
+
experimental: string[];
|
|
10
|
+
}
|
|
11
|
+
export declare function getCompilerBackendReadiness(env?: NodeJS.ProcessEnv): CompilerBackendReadiness;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GORSEE_COMPILER_BACKEND_ENV,
|
|
3
|
+
getModuleAnalysisBackend,
|
|
4
|
+
listModuleAnalysisBackends,
|
|
5
|
+
resolveModuleAnalysisBackendName
|
|
6
|
+
} from "./module-analysis.js";
|
|
7
|
+
export function getCompilerBackendReadiness(env = process.env) {
|
|
8
|
+
const registered = listModuleAnalysisBackends();
|
|
9
|
+
return {
|
|
10
|
+
envVar: GORSEE_COMPILER_BACKEND_ENV,
|
|
11
|
+
stableDefault: "oxc",
|
|
12
|
+
preferredCanary: "experimental-oxc",
|
|
13
|
+
selected: getModuleAnalysisBackend().name,
|
|
14
|
+
resolvedFromEnv: resolveModuleAnalysisBackendName(env),
|
|
15
|
+
registered,
|
|
16
|
+
experimental: registered.filter((name) => name.startsWith("experimental-"))
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Route } from "../router/scanner.js";
|
|
2
|
+
export declare const ROUTE_FACTS_SCHEMA_VERSION: 2;
|
|
3
|
+
export interface RouteCompilerFacts {
|
|
4
|
+
schemaVersion: typeof ROUTE_FACTS_SCHEMA_VERSION;
|
|
5
|
+
path: string;
|
|
6
|
+
params: string[];
|
|
7
|
+
methods: string[];
|
|
8
|
+
hasDefaultExport: boolean;
|
|
9
|
+
hasLoader: boolean;
|
|
10
|
+
isApi: boolean;
|
|
11
|
+
hasMiddleware: boolean;
|
|
12
|
+
title: string;
|
|
13
|
+
meta: Record<string, unknown> | null;
|
|
14
|
+
declaresPrerender: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface RouteDocSurface {
|
|
17
|
+
path: string;
|
|
18
|
+
methods: string[];
|
|
19
|
+
hasLoader: boolean;
|
|
20
|
+
isApi: boolean;
|
|
21
|
+
hasMiddleware: boolean;
|
|
22
|
+
title: string;
|
|
23
|
+
meta: Record<string, unknown> | null;
|
|
24
|
+
}
|
|
25
|
+
export interface RouteFactsArtifact {
|
|
26
|
+
schemaVersion: typeof ROUTE_FACTS_SCHEMA_VERSION;
|
|
27
|
+
routes: RouteCompilerFacts[];
|
|
28
|
+
}
|
|
29
|
+
export declare function getRouteFactMethods(routeFacts: RouteCompilerFacts): string[];
|
|
30
|
+
export declare function toRouteDocSurface(routeFacts: RouteCompilerFacts): RouteDocSurface;
|
|
31
|
+
export declare function getRouteParamsRecord(routeFacts: RouteCompilerFacts): Record<string, "string">;
|
|
32
|
+
export declare function inspectRouteFacts(route: Route): Promise<RouteCompilerFacts>;
|
|
33
|
+
export declare function createRouteFactsArtifact(routes: Route[]): Promise<RouteFactsArtifact>;
|
|
34
|
+
export declare function parseRouteFactsArtifact(raw: string): RouteFactsArtifact;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { analyzeModuleSource } from "./module-analysis.js";
|
|
3
|
+
export const ROUTE_FACTS_SCHEMA_VERSION = 2;
|
|
4
|
+
const HTTP_METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH"];
|
|
5
|
+
export function getRouteFactMethods(routeFacts) {
|
|
6
|
+
const methods = [...routeFacts.methods];
|
|
7
|
+
if (methods.length === 0 && routeFacts.hasDefaultExport)
|
|
8
|
+
methods.push("GET");
|
|
9
|
+
if (methods.length === 0 && routeFacts.hasLoader)
|
|
10
|
+
methods.push("GET");
|
|
11
|
+
return methods;
|
|
12
|
+
}
|
|
13
|
+
export function toRouteDocSurface(routeFacts) {
|
|
14
|
+
return {
|
|
15
|
+
path: routeFacts.path,
|
|
16
|
+
methods: getRouteFactMethods(routeFacts),
|
|
17
|
+
hasLoader: routeFacts.hasLoader,
|
|
18
|
+
isApi: routeFacts.isApi,
|
|
19
|
+
hasMiddleware: routeFacts.hasMiddleware,
|
|
20
|
+
title: routeFacts.title,
|
|
21
|
+
meta: routeFacts.meta
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function getRouteParamsRecord(routeFacts) {
|
|
25
|
+
const params = {};
|
|
26
|
+
for (const param of routeFacts.params)
|
|
27
|
+
params[param] = "string";
|
|
28
|
+
return params;
|
|
29
|
+
}
|
|
30
|
+
export async function inspectRouteFacts(route) {
|
|
31
|
+
const content = await readFile(route.filePath, "utf-8"), facts = analyzeModuleSource(route.filePath, content), methods = HTTP_METHODS.filter((method) => facts.exportedNames.has(method)), hasLoader = facts.exportedNames.has("load") || facts.exportedNames.has("loader"), isApi = !facts.hasDefaultExport || methods.length > 0;
|
|
32
|
+
return {
|
|
33
|
+
schemaVersion: ROUTE_FACTS_SCHEMA_VERSION,
|
|
34
|
+
path: route.path,
|
|
35
|
+
params: [...route.params],
|
|
36
|
+
methods: [...methods],
|
|
37
|
+
hasDefaultExport: facts.hasDefaultExport,
|
|
38
|
+
hasLoader,
|
|
39
|
+
isApi,
|
|
40
|
+
hasMiddleware: route.middlewarePaths.length > 0,
|
|
41
|
+
title: facts.title,
|
|
42
|
+
meta: facts.meta,
|
|
43
|
+
declaresPrerender: facts.exportedLiterals.prerender === !0
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export async function createRouteFactsArtifact(routes) {
|
|
47
|
+
const facts = await Promise.all(routes.map((route) => inspectRouteFacts(route)));
|
|
48
|
+
return {
|
|
49
|
+
schemaVersion: ROUTE_FACTS_SCHEMA_VERSION,
|
|
50
|
+
routes: facts
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function parseRouteFactsArtifact(raw) {
|
|
54
|
+
const artifact = JSON.parse(raw);
|
|
55
|
+
validateRouteFactsArtifact(artifact);
|
|
56
|
+
return artifact;
|
|
57
|
+
}
|
|
58
|
+
function validateRouteFactsArtifact(artifact) {
|
|
59
|
+
if (artifact.schemaVersion !== ROUTE_FACTS_SCHEMA_VERSION)
|
|
60
|
+
throw Error(`Unsupported route facts schema version: expected ${ROUTE_FACTS_SCHEMA_VERSION}, received ${String(artifact.schemaVersion)}`);
|
|
61
|
+
if (!Array.isArray(artifact.routes))
|
|
62
|
+
throw Error("Invalid route facts artifact: routes must be an array");
|
|
63
|
+
for (const route of artifact.routes) {
|
|
64
|
+
if (!route || typeof route !== "object")
|
|
65
|
+
throw Error("Invalid route facts artifact: route entry must be an object");
|
|
66
|
+
if (route.schemaVersion !== ROUTE_FACTS_SCHEMA_VERSION)
|
|
67
|
+
throw Error("Invalid route facts artifact: route schemaVersion drift detected");
|
|
68
|
+
if (typeof route.path !== "string" || route.path.length === 0)
|
|
69
|
+
throw Error("Invalid route facts artifact: route path must be a non-empty string");
|
|
70
|
+
if (!Array.isArray(route.params))
|
|
71
|
+
throw Error("Invalid route facts artifact: params must be an array");
|
|
72
|
+
if (!Array.isArray(route.methods))
|
|
73
|
+
throw Error("Invalid route facts artifact: methods must be an array");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface ContentEntry<TFrontmatter extends Record<string, unknown> = Record<string, unknown>> {
|
|
2
|
+
id: string;
|
|
3
|
+
slug: string;
|
|
4
|
+
locale: string | null;
|
|
5
|
+
body: string;
|
|
6
|
+
excerpt: string;
|
|
7
|
+
frontmatter: TFrontmatter;
|
|
8
|
+
sourcePath: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ContentCollectionOptions<TFrontmatter extends Record<string, unknown>> {
|
|
11
|
+
dir: string;
|
|
12
|
+
includeExtensions?: string[];
|
|
13
|
+
defaultLocale?: string;
|
|
14
|
+
validate?: (frontmatter: Record<string, unknown>, entry: Omit<ContentEntry<TFrontmatter>, "frontmatter">) => TFrontmatter;
|
|
15
|
+
}
|
|
16
|
+
export interface ContentQueryOptions {
|
|
17
|
+
locale?: string;
|
|
18
|
+
sortBy?: "date-desc" | "date-asc" | "title-asc" | "title-desc";
|
|
19
|
+
}
|
|
20
|
+
export declare function parseFrontmatter(source: string): {
|
|
21
|
+
frontmatter: Record<string, unknown>;
|
|
22
|
+
body: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function extractExcerpt(body: string, maxLength?: number): string;
|
|
25
|
+
export declare function loadContentCollection<TFrontmatter extends Record<string, unknown> = Record<string, unknown>>(options: ContentCollectionOptions<TFrontmatter>): Promise<Array<ContentEntry<TFrontmatter>>>;
|
|
26
|
+
export declare function queryContent<TFrontmatter extends Record<string, unknown>>(entries: Array<ContentEntry<TFrontmatter>>, options?: ContentQueryOptions): Array<ContentEntry<TFrontmatter>>;
|
|
27
|
+
export declare function getContentEntryBySlug<TFrontmatter extends Record<string, unknown>>(entries: Array<ContentEntry<TFrontmatter>>, slug: string, locale?: string): ContentEntry<TFrontmatter> | null;
|