exisjs 0.1.2
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 +52 -0
- package/bin/exis.js +2 -0
- package/dist/adapters/aws-lambda.d.ts +21 -0
- package/dist/adapters/aws-lambda.d.ts.map +1 -0
- package/dist/adapters/aws-lambda.js +110 -0
- package/dist/adapters/aws-lambda.js.map +1 -0
- package/dist/adapters/bun.d.ts +9 -0
- package/dist/adapters/bun.d.ts.map +1 -0
- package/dist/adapters/bun.js +15 -0
- package/dist/adapters/bun.js.map +1 -0
- package/dist/adapters/cloudflare.d.ts +10 -0
- package/dist/adapters/cloudflare.d.ts.map +1 -0
- package/dist/adapters/cloudflare.js +14 -0
- package/dist/adapters/cloudflare.js.map +1 -0
- package/dist/adapters/deno.d.ts +7 -0
- package/dist/adapters/deno.d.ts.map +1 -0
- package/dist/adapters/deno.js +11 -0
- package/dist/adapters/deno.js.map +1 -0
- package/dist/adapters/fastly.d.ts +6 -0
- package/dist/adapters/fastly.d.ts.map +1 -0
- package/dist/adapters/fastly.js +12 -0
- package/dist/adapters/fastly.js.map +1 -0
- package/dist/adapters/fetch.d.ts +30 -0
- package/dist/adapters/fetch.d.ts.map +1 -0
- package/dist/adapters/fetch.js +119 -0
- package/dist/adapters/fetch.js.map +1 -0
- package/dist/adapters/index.d.ts +9 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +28 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/netlify.d.ts +8 -0
- package/dist/adapters/netlify.d.ts.map +1 -0
- package/dist/adapters/netlify.js +12 -0
- package/dist/adapters/netlify.js.map +1 -0
- package/dist/adapters/vercel.d.ts +14 -0
- package/dist/adapters/vercel.d.ts.map +1 -0
- package/dist/adapters/vercel.js +20 -0
- package/dist/adapters/vercel.js.map +1 -0
- package/dist/auth/jwt.d.ts +20 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/jwt.js +79 -0
- package/dist/auth/jwt.js.map +1 -0
- package/dist/auth/password.d.ts +25 -0
- package/dist/auth/password.d.ts.map +1 -0
- package/dist/auth/password.js +93 -0
- package/dist/auth/password.js.map +1 -0
- package/dist/auth/rbac.d.ts +10 -0
- package/dist/auth/rbac.d.ts.map +1 -0
- package/dist/auth/rbac.js +34 -0
- package/dist/auth/rbac.js.map +1 -0
- package/dist/auth/session.d.ts +23 -0
- package/dist/auth/session.d.ts.map +1 -0
- package/dist/auth/session.js +105 -0
- package/dist/auth/session.js.map +1 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +9 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/store.d.ts +48 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +211 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cli/commands/build.d.ts +7 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +183 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +9 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +290 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/exports.d.ts +2 -0
- package/dist/cli/commands/exports.d.ts.map +1 -0
- package/dist/cli/commands/exports.js +76 -0
- package/dist/cli/commands/exports.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +5 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +149 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +37 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/repl.d.ts +6 -0
- package/dist/cli/commands/repl.d.ts.map +1 -0
- package/dist/cli/commands/repl.js +75 -0
- package/dist/cli/commands/repl.js.map +1 -0
- package/dist/cli/commands/start.d.ts +7 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +111 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/test.d.ts +7 -0
- package/dist/cli/commands/test.d.ts.map +1 -0
- package/dist/cli/commands/test.js +170 -0
- package/dist/cli/commands/test.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +183 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/manifest.d.ts +2 -0
- package/dist/cli/manifest.d.ts.map +1 -0
- package/dist/cli/manifest.js +160 -0
- package/dist/cli/manifest.js.map +1 -0
- package/dist/cli/optimizers/aot-routes.d.ts +2 -0
- package/dist/cli/optimizers/aot-routes.d.ts.map +1 -0
- package/dist/cli/optimizers/aot-routes.js +59 -0
- package/dist/cli/optimizers/aot-routes.js.map +1 -0
- package/dist/cli/optimizers/precompile-serializers.d.ts +2 -0
- package/dist/cli/optimizers/precompile-serializers.d.ts.map +1 -0
- package/dist/cli/optimizers/precompile-serializers.js +68 -0
- package/dist/cli/optimizers/precompile-serializers.js.map +1 -0
- package/dist/cli/optimizers/tree-shake.d.ts +2 -0
- package/dist/cli/optimizers/tree-shake.d.ts.map +1 -0
- package/dist/cli/optimizers/tree-shake.js +64 -0
- package/dist/cli/optimizers/tree-shake.js.map +1 -0
- package/dist/cli/routes.d.ts +2 -0
- package/dist/cli/routes.d.ts.map +1 -0
- package/dist/cli/routes.js +158 -0
- package/dist/cli/routes.js.map +1 -0
- package/dist/cli/utils.d.ts +24 -0
- package/dist/cli/utils.d.ts.map +1 -0
- package/dist/cli/utils.js +54 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/config/constants.d.ts +11 -0
- package/dist/config/constants.d.ts.map +1 -0
- package/dist/config/constants.js +14 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/cron/parser.d.ts +2 -0
- package/dist/cron/parser.d.ts.map +1 -0
- package/dist/cron/parser.js +52 -0
- package/dist/cron/parser.js.map +1 -0
- package/dist/cron/scheduler.d.ts +22 -0
- package/dist/cron/scheduler.d.ts.map +1 -0
- package/dist/cron/scheduler.js +102 -0
- package/dist/cron/scheduler.js.map +1 -0
- package/dist/dataloader/dataloader.d.ts +23 -0
- package/dist/dataloader/dataloader.d.ts.map +1 -0
- package/dist/dataloader/dataloader.js +98 -0
- package/dist/dataloader/dataloader.js.map +1 -0
- package/dist/dataloader/registry.d.ts +17 -0
- package/dist/dataloader/registry.d.ts.map +1 -0
- package/dist/dataloader/registry.js +47 -0
- package/dist/dataloader/registry.js.map +1 -0
- package/dist/decorators/index.d.ts +63 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +460 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/di/container.d.ts +21 -0
- package/dist/di/container.d.ts.map +1 -0
- package/dist/di/container.js +81 -0
- package/dist/di/container.js.map +1 -0
- package/dist/di/inject.d.ts +3 -0
- package/dist/di/inject.d.ts.map +1 -0
- package/dist/di/inject.js +12 -0
- package/dist/di/inject.js.map +1 -0
- package/dist/exports/auth.d.ts +6 -0
- package/dist/exports/auth.d.ts.map +1 -0
- package/dist/exports/auth.js +46 -0
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/cache.d.ts +4 -0
- package/dist/exports/cache.d.ts.map +1 -0
- package/dist/exports/cache.js +20 -0
- package/dist/exports/cache.js.map +1 -0
- package/dist/exports/config.d.ts +4 -0
- package/dist/exports/config.d.ts.map +1 -0
- package/dist/exports/config.js +23 -0
- package/dist/exports/config.js.map +1 -0
- package/dist/exports/dataloader.d.ts +3 -0
- package/dist/exports/dataloader.d.ts.map +1 -0
- package/dist/exports/dataloader.js +19 -0
- package/dist/exports/dataloader.js.map +1 -0
- package/dist/exports/decorators.d.ts +2 -0
- package/dist/exports/decorators.d.ts.map +1 -0
- package/dist/exports/decorators.js +18 -0
- package/dist/exports/decorators.js.map +1 -0
- package/dist/exports/di.d.ts +4 -0
- package/dist/exports/di.d.ts.map +1 -0
- package/dist/exports/di.js +8 -0
- package/dist/exports/di.js.map +1 -0
- package/dist/exports/error.d.ts +2 -0
- package/dist/exports/error.d.ts.map +1 -0
- package/dist/exports/error.js +16 -0
- package/dist/exports/error.js.map +1 -0
- package/dist/exports/module.d.ts +3 -0
- package/dist/exports/module.d.ts.map +1 -0
- package/dist/exports/module.js +6 -0
- package/dist/exports/module.js.map +1 -0
- package/dist/exports/plugin.d.ts +3 -0
- package/dist/exports/plugin.d.ts.map +1 -0
- package/dist/exports/plugin.js +6 -0
- package/dist/exports/plugin.js.map +1 -0
- package/dist/exports/queue.d.ts +9 -0
- package/dist/exports/queue.d.ts.map +1 -0
- package/dist/exports/queue.js +16 -0
- package/dist/exports/queue.js.map +1 -0
- package/dist/exports/response.d.ts +2 -0
- package/dist/exports/response.d.ts.map +1 -0
- package/dist/exports/response.js +18 -0
- package/dist/exports/response.js.map +1 -0
- package/dist/exports/route.d.ts +14 -0
- package/dist/exports/route.d.ts.map +1 -0
- package/dist/exports/route.js +25 -0
- package/dist/exports/route.js.map +1 -0
- package/dist/exports/security.d.ts +3 -0
- package/dist/exports/security.d.ts.map +1 -0
- package/dist/exports/security.js +13 -0
- package/dist/exports/security.js.map +1 -0
- package/dist/exports/swagger.d.ts +3 -0
- package/dist/exports/swagger.d.ts.map +1 -0
- package/dist/exports/swagger.js +6 -0
- package/dist/exports/swagger.js.map +1 -0
- package/dist/exports/validation.d.ts +2 -0
- package/dist/exports/validation.d.ts.map +1 -0
- package/dist/exports/validation.js +8 -0
- package/dist/exports/validation.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +71 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/drizzle.d.ts +10 -0
- package/dist/integrations/drizzle.d.ts.map +1 -0
- package/dist/integrations/drizzle.js +34 -0
- package/dist/integrations/drizzle.js.map +1 -0
- package/dist/integrations/jwt.d.ts +12 -0
- package/dist/integrations/jwt.d.ts.map +1 -0
- package/dist/integrations/jwt.js +27 -0
- package/dist/integrations/jwt.js.map +1 -0
- package/dist/integrations/mongodb.d.ts +13 -0
- package/dist/integrations/mongodb.d.ts.map +1 -0
- package/dist/integrations/mongodb.js +48 -0
- package/dist/integrations/mongodb.js.map +1 -0
- package/dist/integrations/mongoose.d.ts +13 -0
- package/dist/integrations/mongoose.d.ts.map +1 -0
- package/dist/integrations/mongoose.js +58 -0
- package/dist/integrations/mongoose.js.map +1 -0
- package/dist/integrations/openai.d.ts +12 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +47 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/integrations/postgres.d.ts +13 -0
- package/dist/integrations/postgres.d.ts.map +1 -0
- package/dist/integrations/postgres.js +55 -0
- package/dist/integrations/postgres.js.map +1 -0
- package/dist/integrations/posthog.d.ts +13 -0
- package/dist/integrations/posthog.d.ts.map +1 -0
- package/dist/integrations/posthog.js +49 -0
- package/dist/integrations/posthog.js.map +1 -0
- package/dist/integrations/prisma.d.ts +10 -0
- package/dist/integrations/prisma.d.ts.map +1 -0
- package/dist/integrations/prisma.js +27 -0
- package/dist/integrations/prisma.js.map +1 -0
- package/dist/integrations/redis.d.ts +12 -0
- package/dist/integrations/redis.d.ts.map +1 -0
- package/dist/integrations/redis.js +48 -0
- package/dist/integrations/redis.js.map +1 -0
- package/dist/integrations/resend.d.ts +12 -0
- package/dist/integrations/resend.d.ts.map +1 -0
- package/dist/integrations/resend.js +47 -0
- package/dist/integrations/resend.js.map +1 -0
- package/dist/integrations/s3.d.ts +15 -0
- package/dist/integrations/s3.d.ts.map +1 -0
- package/dist/integrations/s3.js +60 -0
- package/dist/integrations/s3.js.map +1 -0
- package/dist/integrations/supabase.d.ts +13 -0
- package/dist/integrations/supabase.d.ts.map +1 -0
- package/dist/integrations/supabase.js +51 -0
- package/dist/integrations/supabase.js.map +1 -0
- package/dist/lib/start-repl.d.ts +2 -0
- package/dist/lib/start-repl.d.ts.map +1 -0
- package/dist/lib/start-repl.js +122 -0
- package/dist/lib/start-repl.js.map +1 -0
- package/dist/lib/start-server.d.ts +2 -0
- package/dist/lib/start-server.d.ts.map +1 -0
- package/dist/lib/start-server.js +103 -0
- package/dist/lib/start-server.js.map +1 -0
- package/dist/middleware/backpressure.d.ts +11 -0
- package/dist/middleware/backpressure.d.ts.map +1 -0
- package/dist/middleware/backpressure.js +55 -0
- package/dist/middleware/backpressure.js.map +1 -0
- package/dist/middleware/cache.d.ts +10 -0
- package/dist/middleware/cache.d.ts.map +1 -0
- package/dist/middleware/cache.js +97 -0
- package/dist/middleware/cache.js.map +1 -0
- package/dist/middleware/compression.d.ts +3 -0
- package/dist/middleware/compression.d.ts.map +1 -0
- package/dist/middleware/compression.js +132 -0
- package/dist/middleware/compression.js.map +1 -0
- package/dist/middleware/dedupe.d.ts +10 -0
- package/dist/middleware/dedupe.d.ts.map +1 -0
- package/dist/middleware/dedupe.js +79 -0
- package/dist/middleware/dedupe.js.map +1 -0
- package/dist/middleware/exception-filter.d.ts +9 -0
- package/dist/middleware/exception-filter.d.ts.map +1 -0
- package/dist/middleware/exception-filter.js +26 -0
- package/dist/middleware/exception-filter.js.map +1 -0
- package/dist/middleware/guard.d.ts +11 -0
- package/dist/middleware/guard.d.ts.map +1 -0
- package/dist/middleware/guard.js +26 -0
- package/dist/middleware/guard.js.map +1 -0
- package/dist/middleware/interceptor.d.ts +4 -0
- package/dist/middleware/interceptor.d.ts.map +1 -0
- package/dist/middleware/interceptor.js +32 -0
- package/dist/middleware/interceptor.js.map +1 -0
- package/dist/middleware/ip-filter.d.ts +11 -0
- package/dist/middleware/ip-filter.d.ts.map +1 -0
- package/dist/middleware/ip-filter.js +27 -0
- package/dist/middleware/ip-filter.js.map +1 -0
- package/dist/middleware/middleware.d.ts +26 -0
- package/dist/middleware/middleware.d.ts.map +1 -0
- package/dist/middleware/middleware.js +271 -0
- package/dist/middleware/middleware.js.map +1 -0
- package/dist/middleware/pipe.d.ts +9 -0
- package/dist/middleware/pipe.d.ts.map +1 -0
- package/dist/middleware/pipe.js +24 -0
- package/dist/middleware/pipe.js.map +1 -0
- package/dist/middleware/security.d.ts +53 -0
- package/dist/middleware/security.d.ts.map +1 -0
- package/dist/middleware/security.js +257 -0
- package/dist/middleware/security.js.map +1 -0
- package/dist/module/module.d.ts +17 -0
- package/dist/module/module.d.ts.map +1 -0
- package/dist/module/module.js +37 -0
- package/dist/module/module.js.map +1 -0
- package/dist/observability/health.d.ts +23 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +49 -0
- package/dist/observability/health.js.map +1 -0
- package/dist/observability/index.d.ts +4 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +10 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/otel.d.ts +27 -0
- package/dist/observability/otel.d.ts.map +1 -0
- package/dist/observability/otel.js +45 -0
- package/dist/observability/otel.js.map +1 -0
- package/dist/observability/prometheus.d.ts +30 -0
- package/dist/observability/prometheus.d.ts.map +1 -0
- package/dist/observability/prometheus.js +31 -0
- package/dist/observability/prometheus.js.map +1 -0
- package/dist/queue/client.d.ts +13 -0
- package/dist/queue/client.d.ts.map +1 -0
- package/dist/queue/client.js +64 -0
- package/dist/queue/client.js.map +1 -0
- package/dist/queue/drivers/MemoryDriver.d.ts +17 -0
- package/dist/queue/drivers/MemoryDriver.d.ts.map +1 -0
- package/dist/queue/drivers/MemoryDriver.js +109 -0
- package/dist/queue/drivers/MemoryDriver.js.map +1 -0
- package/dist/queue/drivers/RedisDriver.d.ts +18 -0
- package/dist/queue/drivers/RedisDriver.d.ts.map +1 -0
- package/dist/queue/drivers/RedisDriver.js +120 -0
- package/dist/queue/drivers/RedisDriver.js.map +1 -0
- package/dist/queue/index.d.ts +12 -0
- package/dist/queue/index.d.ts.map +1 -0
- package/dist/queue/index.js +27 -0
- package/dist/queue/index.js.map +1 -0
- package/dist/queue/types.d.ts +51 -0
- package/dist/queue/types.d.ts.map +1 -0
- package/dist/queue/types.js +3 -0
- package/dist/queue/types.js.map +1 -0
- package/dist/queue/worker.d.ts +18 -0
- package/dist/queue/worker.d.ts.map +1 -0
- package/dist/queue/worker.js +160 -0
- package/dist/queue/worker.js.map +1 -0
- package/dist/response/index.d.ts +16 -0
- package/dist/response/index.d.ts.map +1 -0
- package/dist/response/index.js +19 -0
- package/dist/response/index.js.map +1 -0
- package/dist/router/gateway.d.ts +64 -0
- package/dist/router/gateway.d.ts.map +1 -0
- package/dist/router/gateway.js +11 -0
- package/dist/router/gateway.js.map +1 -0
- package/dist/router/radix.d.ts +42 -0
- package/dist/router/radix.d.ts.map +1 -0
- package/dist/router/radix.js +523 -0
- package/dist/router/radix.js.map +1 -0
- package/dist/router/router.d.ts +59 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/router.js +386 -0
- package/dist/router/router.js.map +1 -0
- package/dist/server/app.d.ts +206 -0
- package/dist/server/app.d.ts.map +1 -0
- package/dist/server/app.js +2191 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/cluster.d.ts +52 -0
- package/dist/server/cluster.d.ts.map +1 -0
- package/dist/server/cluster.js +165 -0
- package/dist/server/cluster.js.map +1 -0
- package/dist/server/context.d.ts +40 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +74 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/define.d.ts +14 -0
- package/dist/server/define.d.ts.map +1 -0
- package/dist/server/define.js +22 -0
- package/dist/server/define.js.map +1 -0
- package/dist/server/dep-graph.d.ts +2 -0
- package/dist/server/dep-graph.d.ts.map +1 -0
- package/dist/server/dep-graph.js +109 -0
- package/dist/server/dep-graph.js.map +1 -0
- package/dist/server/dev-error-overlay.d.ts +3 -0
- package/dist/server/dev-error-overlay.d.ts.map +1 -0
- package/dist/server/dev-error-overlay.js +116 -0
- package/dist/server/dev-error-overlay.js.map +1 -0
- package/dist/server/hot-reload.d.ts +28 -0
- package/dist/server/hot-reload.d.ts.map +1 -0
- package/dist/server/hot-reload.js +253 -0
- package/dist/server/hot-reload.js.map +1 -0
- package/dist/server/request.d.ts +71 -0
- package/dist/server/request.d.ts.map +1 -0
- package/dist/server/request.js +408 -0
- package/dist/server/request.js.map +1 -0
- package/dist/server/response.d.ts +36 -0
- package/dist/server/response.d.ts.map +1 -0
- package/dist/server/response.js +254 -0
- package/dist/server/response.js.map +1 -0
- package/dist/server/route.d.ts +148 -0
- package/dist/server/route.d.ts.map +1 -0
- package/dist/server/route.js +56 -0
- package/dist/server/route.js.map +1 -0
- package/dist/server/sse.d.ts +16 -0
- package/dist/server/sse.d.ts.map +1 -0
- package/dist/server/sse.js +51 -0
- package/dist/server/sse.js.map +1 -0
- package/dist/server/uws-adapter.d.ts +101 -0
- package/dist/server/uws-adapter.d.ts.map +1 -0
- package/dist/server/uws-adapter.js +338 -0
- package/dist/server/uws-adapter.js.map +1 -0
- package/dist/swagger/index.d.ts +9 -0
- package/dist/swagger/index.d.ts.map +1 -0
- package/dist/swagger/index.js +147 -0
- package/dist/swagger/index.js.map +1 -0
- package/dist/testing/client.d.ts +44 -0
- package/dist/testing/client.d.ts.map +1 -0
- package/dist/testing/client.js +105 -0
- package/dist/testing/client.js.map +1 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +128 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/mocks.d.ts +25 -0
- package/dist/testing/mocks.d.ts.map +1 -0
- package/dist/testing/mocks.js +117 -0
- package/dist/testing/mocks.js.map +1 -0
- package/dist/testing/reporter.d.ts +13 -0
- package/dist/testing/reporter.d.ts.map +1 -0
- package/dist/testing/reporter.js +101 -0
- package/dist/testing/reporter.js.map +1 -0
- package/dist/threads/pool.d.ts +13 -0
- package/dist/threads/pool.d.ts.map +1 -0
- package/dist/threads/pool.js +93 -0
- package/dist/threads/pool.js.map +1 -0
- package/dist/threads/worker-runner.d.ts +2 -0
- package/dist/threads/worker-runner.d.ts.map +1 -0
- package/dist/threads/worker-runner.js +71 -0
- package/dist/threads/worker-runner.js.map +1 -0
- package/dist/types.d.ts +200 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +30 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +72 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/config.d.ts +9 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +229 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/env.d.ts +25 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +155 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/errors.d.ts +51 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +233 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +70 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/plugin.d.ts +7 -0
- package/dist/utils/plugin.d.ts.map +1 -0
- package/dist/utils/plugin.js +30 -0
- package/dist/utils/plugin.js.map +1 -0
- package/dist/utils/validator.d.ts +300 -0
- package/dist/utils/validator.d.ts.map +1 -0
- package/dist/utils/validator.js +719 -0
- package/dist/utils/validator.js.map +1 -0
- package/dist/websocket/server.d.ts +66 -0
- package/dist/websocket/server.d.ts.map +1 -0
- package/dist/websocket/server.js +156 -0
- package/dist/websocket/server.js.map +1 -0
- package/dist/websocket/socket.d.ts +119 -0
- package/dist/websocket/socket.d.ts.map +1 -0
- package/dist/websocket/socket.js +240 -0
- package/dist/websocket/socket.js.map +1 -0
- package/package.json +270 -0
package/README.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/v25group/exisjs/main/.github/assets/exisjs.png" height="200" alt="Exis JS Logo" />
|
|
3
|
+
<h1 align="center">Exis JS</h1>
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<p align="center">
|
|
7
|
+
<b>Enterprise ambition with zero-config simplicity. The ultimate batteries-included Node.js backend.</b>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<a aria-label="NPM version" href="https://www.npmjs.com/package/exisjs">
|
|
12
|
+
<img alt="" src="https://img.shields.io/npm/v/exisjs.svg?style=for-the-badge&labelColor=000000">
|
|
13
|
+
</a>
|
|
14
|
+
<a aria-label="License" href="https://github.com/v25group/exisjs/blob/main/LICENSE">
|
|
15
|
+
<img alt="" src="https://img.shields.io/npm/l/exisjs.svg?style=for-the-badge&labelColor=000000">
|
|
16
|
+
</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## The Core Framework
|
|
22
|
+
|
|
23
|
+
This is the core package for **Exis JS**, providing the highly optimized zero-allocation HTTP engine, file-system routing utilities, native schema validation, and deep TypeScript integrations.
|
|
24
|
+
|
|
25
|
+
Exis JS gives you the raw performance of a minimal micro-framework and the end-to-end type safety of a typed RPC client—without forcing you to spend weeks plumbing different community tools together.
|
|
26
|
+
|
|
27
|
+
### Why Exis JS?
|
|
28
|
+
|
|
29
|
+
- **Zero-Config Simplicity**: Intuitive file-system routing (`src/http`) without bloated route registries.
|
|
30
|
+
- **Batteries Included**: Built-in Dependency Injection, CRON jobs, WebSockets, and zero-dependency schema validation.
|
|
31
|
+
- **Uncompromising Performance**: Highly optimized zero-allocation engine that natively rivals and edges out Fastify.
|
|
32
|
+
- **End-to-End Type Safety**: Every route automatically generates a typed schema, enabling seamless frontend-backend integration.
|
|
33
|
+
|
|
34
|
+
## Getting Started
|
|
35
|
+
|
|
36
|
+
To create a new Exis JS project, we highly recommend using our official CLI tool instead of installing this package manually:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npx @exisjs/create@latest my-backend
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
This will automatically scaffold a completely configured Exis JS project, install all dependencies, and set up a hot-reloading development server for you.
|
|
43
|
+
|
|
44
|
+
## Documentation
|
|
45
|
+
|
|
46
|
+
For full documentation, architecture details, and API references, please visit the main [Exis JS Repository](https://github.com/v25group/exisjs).
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
<p align="center">
|
|
51
|
+
<i>Engineered with absolute precision by the Exis JS Team.</i>
|
|
52
|
+
</p>
|
package/bin/exis.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
export interface APIGatewayEvent {
|
|
3
|
+
httpMethod: string;
|
|
4
|
+
path: string;
|
|
5
|
+
headers: Record<string, string | undefined>;
|
|
6
|
+
body: string | null;
|
|
7
|
+
isBase64Encoded: boolean;
|
|
8
|
+
queryStringParameters?: Record<string, string | undefined>;
|
|
9
|
+
}
|
|
10
|
+
export interface APIGatewayResult {
|
|
11
|
+
statusCode: number;
|
|
12
|
+
headers: Record<string, string>;
|
|
13
|
+
body: string;
|
|
14
|
+
isBase64Encoded: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Creates an AWS Lambda handler for an Exis App.
|
|
18
|
+
* Converts API Gateway events to native Node.js HTTP streams.
|
|
19
|
+
*/
|
|
20
|
+
export declare function serverlessAws(app: App): (event: APIGatewayEvent) => Promise<APIGatewayResult>;
|
|
21
|
+
//# sourceMappingURL=aws-lambda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-lambda.d.ts","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC3C,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,OAAO,CAAA;CACzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,IACtB,OAAO,eAAe,KAAG,OAAO,CAAC,gBAAgB,CAAC,CA4HjE"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessAws = serverlessAws;
|
|
4
|
+
const node_http_1 = require("node:http");
|
|
5
|
+
const node_net_1 = require("node:net");
|
|
6
|
+
/**
|
|
7
|
+
* Creates an AWS Lambda handler for an Exis App.
|
|
8
|
+
* Converts API Gateway events to native Node.js HTTP streams.
|
|
9
|
+
*/
|
|
10
|
+
function serverlessAws(app) {
|
|
11
|
+
return async (event) => {
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
const socket = new node_net_1.Socket();
|
|
14
|
+
const req = new node_http_1.IncomingMessage(socket);
|
|
15
|
+
const res = new node_http_1.ServerResponse(req);
|
|
16
|
+
// Map Method and URL
|
|
17
|
+
req.method = event.httpMethod;
|
|
18
|
+
let queryStr = '';
|
|
19
|
+
if (event.queryStringParameters) {
|
|
20
|
+
const params = new URLSearchParams();
|
|
21
|
+
for (const [k, v] of Object.entries(event.queryStringParameters)) {
|
|
22
|
+
if (v)
|
|
23
|
+
params.append(k, v);
|
|
24
|
+
}
|
|
25
|
+
const qs = params.toString();
|
|
26
|
+
if (qs)
|
|
27
|
+
queryStr = `?${qs}`;
|
|
28
|
+
}
|
|
29
|
+
req.url = `${event.path}${queryStr}`;
|
|
30
|
+
// Map Headers
|
|
31
|
+
const reqHeaders = {};
|
|
32
|
+
if (event.headers) {
|
|
33
|
+
for (const [k, v] of Object.entries(event.headers)) {
|
|
34
|
+
if (v !== undefined) {
|
|
35
|
+
reqHeaders[k.toLowerCase()] = v;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
req.headers = reqHeaders;
|
|
40
|
+
// Mock Response Streams
|
|
41
|
+
const bodyChunks = [];
|
|
42
|
+
let statusCode = 200;
|
|
43
|
+
const resHeaders = {};
|
|
44
|
+
const originalSetHeader = res.setHeader.bind(res);
|
|
45
|
+
res.setHeader = (name, value) => {
|
|
46
|
+
resHeaders[name.toLowerCase()] = String(value);
|
|
47
|
+
return originalSetHeader(name, value);
|
|
48
|
+
};
|
|
49
|
+
const originalWriteHead = res.writeHead.bind(res);
|
|
50
|
+
res.writeHead = (...args) => {
|
|
51
|
+
statusCode = args[0];
|
|
52
|
+
const headers = typeof args[1] !== 'string' ? args[1] : args[2];
|
|
53
|
+
if (headers) {
|
|
54
|
+
for (const [k, v] of Object.entries(headers)) {
|
|
55
|
+
resHeaders[k.toLowerCase()] = String(v);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return originalWriteHead(...args);
|
|
59
|
+
};
|
|
60
|
+
res.write = (...args) => {
|
|
61
|
+
const chunk = args[0];
|
|
62
|
+
const encoding = typeof args[1] === 'string' ? args[1] : 'utf8';
|
|
63
|
+
const cb = typeof args[1] === 'function' ? args[1] : args[2];
|
|
64
|
+
if (chunk) {
|
|
65
|
+
bodyChunks.push(Buffer.isBuffer(chunk)
|
|
66
|
+
? chunk
|
|
67
|
+
: Buffer.from(chunk, encoding));
|
|
68
|
+
}
|
|
69
|
+
if (typeof cb === 'function')
|
|
70
|
+
cb();
|
|
71
|
+
return true;
|
|
72
|
+
};
|
|
73
|
+
const originalEnd = res.end.bind(res);
|
|
74
|
+
res.end = (...args) => {
|
|
75
|
+
const chunk = typeof args[0] !== 'function' ? args[0] : undefined;
|
|
76
|
+
const encoding = typeof args[1] === 'string' ? args[1] : 'utf8';
|
|
77
|
+
const cb = typeof args[args.length - 1] === 'function'
|
|
78
|
+
? args[args.length - 1]
|
|
79
|
+
: undefined;
|
|
80
|
+
if (chunk) {
|
|
81
|
+
bodyChunks.push(Buffer.isBuffer(chunk)
|
|
82
|
+
? chunk
|
|
83
|
+
: Buffer.from(chunk, encoding));
|
|
84
|
+
}
|
|
85
|
+
const finalBuffer = Buffer.concat(bodyChunks);
|
|
86
|
+
statusCode = res.statusCode || statusCode;
|
|
87
|
+
// Resolve the Lambda promise
|
|
88
|
+
resolve({
|
|
89
|
+
statusCode,
|
|
90
|
+
headers: resHeaders,
|
|
91
|
+
body: finalBuffer.toString('base64'),
|
|
92
|
+
isBase64Encoded: true,
|
|
93
|
+
});
|
|
94
|
+
if (typeof cb === 'function')
|
|
95
|
+
cb();
|
|
96
|
+
return originalEnd();
|
|
97
|
+
};
|
|
98
|
+
// Kick off the request handling
|
|
99
|
+
app.handle(req, res);
|
|
100
|
+
// Push the body into the readable stream
|
|
101
|
+
if (event.body) {
|
|
102
|
+
req.push(event.isBase64Encoded
|
|
103
|
+
? Buffer.from(event.body, 'base64')
|
|
104
|
+
: Buffer.from(event.body));
|
|
105
|
+
}
|
|
106
|
+
req.push(null);
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=aws-lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-lambda.js","sourceRoot":"","sources":["../../src/adapters/aws-lambda.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Bun handler for an Exis App.
|
|
4
|
+
* Can be used with Bun.serve(serverlessBun(app))
|
|
5
|
+
*/
|
|
6
|
+
export declare function serverlessBun(app: App): {
|
|
7
|
+
fetch(request: globalThis.Request, server: any): Promise<Response>;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=bun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.d.ts","sourceRoot":"","sources":["../../src/adapters/bun.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG;mBAEnB,UAAU,CAAC,OAAO,UAAU,GAAG;EAIjD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessBun = serverlessBun;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Bun handler for an Exis App.
|
|
6
|
+
* Can be used with Bun.serve(serverlessBun(app))
|
|
7
|
+
*/
|
|
8
|
+
function serverlessBun(app) {
|
|
9
|
+
return {
|
|
10
|
+
fetch(request, server) {
|
|
11
|
+
return app.fetch(request, server);
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=bun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bun.js","sourceRoot":"","sources":["../../src/adapters/bun.ts"],"names":[],"mappings":";;AAMA,sCAMC;AAVD;;;GAGG;AACH,SAAgB,aAAa,CAAC,GAAQ;IACpC,OAAO;QACL,KAAK,CAAC,OAA2B,EAAE,MAAW;YAC5C,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACnC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
export interface CloudflareEnv {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Cloudflare Workers handler for an Exis App.
|
|
6
|
+
*/
|
|
7
|
+
export declare function serverlessCloudflare(app: App): {
|
|
8
|
+
fetch: (request: globalThis.Request, env: CloudflareEnv, ctx: any) => Promise<Response>;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=cloudflare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,WAAW,aAAa;CAAG;AAEjC;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG;qBAExB,UAAU,CAAC,OAAO,OAAO,aAAa,OAAO,GAAG;EAIpE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessCloudflare = serverlessCloudflare;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Cloudflare Workers handler for an Exis App.
|
|
6
|
+
*/
|
|
7
|
+
function serverlessCloudflare(app) {
|
|
8
|
+
return {
|
|
9
|
+
fetch: (request, env, ctx) => {
|
|
10
|
+
return app.fetch(request, env, ctx);
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=cloudflare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/adapters/cloudflare.ts"],"names":[],"mappings":";;AAQA,oDAMC;AATD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,GAAQ;IAC3C,OAAO;QACL,KAAK,EAAE,CAAC,OAA2B,EAAE,GAAkB,EAAE,GAAQ,EAAE,EAAE;YACnE,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACrC,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a Deno handler for an Exis App.
|
|
4
|
+
* Can be used with Deno.serve(serverlessDeno(app))
|
|
5
|
+
*/
|
|
6
|
+
export declare function serverlessDeno(app: App): (request: globalThis.Request) => Promise<Response>;
|
|
7
|
+
//# sourceMappingURL=deno.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/adapters/deno.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,IAC7B,SAAS,UAAU,CAAC,OAAO,uBACpC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessDeno = serverlessDeno;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Deno handler for an Exis App.
|
|
6
|
+
* Can be used with Deno.serve(serverlessDeno(app))
|
|
7
|
+
*/
|
|
8
|
+
function serverlessDeno(app) {
|
|
9
|
+
return (request) => app.fetch(request);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=deno.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deno.js","sourceRoot":"","sources":["../../src/adapters/deno.ts"],"names":[],"mappings":";;AAMA,wCAEC;AAND;;;GAGG;AACH,SAAgB,cAAc,CAAC,GAAQ;IACrC,OAAO,CAAC,OAA2B,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastly.d.ts","sourceRoot":"","sources":["../../src/adapters/fastly.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,IAC/B,OAAO,GAAG,UAGnB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessFastly = serverlessFastly;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Fastly Compute@Edge handler for an Exis App.
|
|
6
|
+
*/
|
|
7
|
+
function serverlessFastly(app) {
|
|
8
|
+
return (event) => {
|
|
9
|
+
event.respondWith(app.fetch(event.request, event));
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=fastly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastly.js","sourceRoot":"","sources":["../../src/adapters/fastly.ts"],"names":[],"mappings":";;AAKA,4CAIC;AAPD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { App } from '../server/app';
|
|
3
|
+
export declare class FetchIncomingMessage extends EventEmitter {
|
|
4
|
+
url: string;
|
|
5
|
+
method: string;
|
|
6
|
+
headers: Record<string, string | string[]>;
|
|
7
|
+
socket: {
|
|
8
|
+
encrypted: boolean;
|
|
9
|
+
};
|
|
10
|
+
connection: {
|
|
11
|
+
encrypted: boolean;
|
|
12
|
+
};
|
|
13
|
+
private bodyBuffer?;
|
|
14
|
+
constructor(request: globalThis.Request, bodyBuffer?: Uint8Array);
|
|
15
|
+
on(event: string | symbol, listener: (...args: any[]) => void): this;
|
|
16
|
+
}
|
|
17
|
+
export declare class FetchServerResponse extends EventEmitter {
|
|
18
|
+
statusCode: number;
|
|
19
|
+
headersSent: boolean;
|
|
20
|
+
_headers: Record<string, string | string[]>;
|
|
21
|
+
_body: Uint8Array[];
|
|
22
|
+
getHeader(name: string): string | string[];
|
|
23
|
+
setHeader(name: string, value: string | string[]): void;
|
|
24
|
+
hasHeader(name: string): boolean;
|
|
25
|
+
removeHeader(name: string): void;
|
|
26
|
+
write(chunk: any): void;
|
|
27
|
+
end(chunk?: any, cb?: () => void): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function handleFetch(app: App, request: globalThis.Request, env?: any, ctx?: any): Promise<globalThis.Response>;
|
|
30
|
+
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/adapters/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,qBAAa,oBAAqB,SAAQ,YAAY;IAC7C,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC1C,MAAM,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;IAC9B,UAAU,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;IACzC,OAAO,CAAC,UAAU,CAAC,CAAY;gBAEnB,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,UAAU;IAqBhE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;CAUrE;AAED,qBAAa,mBAAoB,SAAQ,YAAY;IAC5C,UAAU,SAAM;IAChB,WAAW,UAAQ;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAK;IAChD,KAAK,EAAE,UAAU,EAAE,CAAK;IAExB,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAKhD,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,KAAK,CAAC,KAAK,EAAE,GAAG;IAUhB,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI;CAMxC;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,GAAG,CAAC,EAAE,GAAG,EACT,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAgD9B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FetchServerResponse = exports.FetchIncomingMessage = void 0;
|
|
4
|
+
exports.handleFetch = handleFetch;
|
|
5
|
+
const node_events_1 = require("node:events");
|
|
6
|
+
class FetchIncomingMessage extends node_events_1.EventEmitter {
|
|
7
|
+
constructor(request, bodyBuffer) {
|
|
8
|
+
super();
|
|
9
|
+
const url = new URL(request.url);
|
|
10
|
+
this.url = url.pathname + url.search;
|
|
11
|
+
this.method = request.method;
|
|
12
|
+
this.headers = {};
|
|
13
|
+
request.headers.forEach((value, key) => {
|
|
14
|
+
if (this.headers[key]) {
|
|
15
|
+
this.headers[key] = `${this.headers[key]}, ${value}`;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
this.headers[key] = value;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
this.socket = { encrypted: url.protocol === 'https:' };
|
|
22
|
+
this.connection = this.socket;
|
|
23
|
+
this.bodyBuffer = bodyBuffer;
|
|
24
|
+
}
|
|
25
|
+
// Intercept event listeners to immediately push body data if it was pre-read
|
|
26
|
+
on(event, listener) {
|
|
27
|
+
if (event === 'data' && this.bodyBuffer && this.bodyBuffer.length > 0) {
|
|
28
|
+
process.nextTick(() => listener(Buffer.from(this.bodyBuffer)));
|
|
29
|
+
}
|
|
30
|
+
else if (event === 'end') {
|
|
31
|
+
process.nextTick(() => listener());
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
super.on(event, listener);
|
|
35
|
+
}
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.FetchIncomingMessage = FetchIncomingMessage;
|
|
40
|
+
class FetchServerResponse extends node_events_1.EventEmitter {
|
|
41
|
+
constructor() {
|
|
42
|
+
super(...arguments);
|
|
43
|
+
this.statusCode = 200;
|
|
44
|
+
this.headersSent = false;
|
|
45
|
+
this._headers = {};
|
|
46
|
+
this._body = [];
|
|
47
|
+
}
|
|
48
|
+
getHeader(name) {
|
|
49
|
+
return this._headers[name.toLowerCase()];
|
|
50
|
+
}
|
|
51
|
+
setHeader(name, value) {
|
|
52
|
+
if (this.headersSent)
|
|
53
|
+
throw new Error('Headers already sent');
|
|
54
|
+
this._headers[name.toLowerCase()] = value;
|
|
55
|
+
}
|
|
56
|
+
hasHeader(name) {
|
|
57
|
+
return name.toLowerCase() in this._headers;
|
|
58
|
+
}
|
|
59
|
+
removeHeader(name) {
|
|
60
|
+
delete this._headers[name.toLowerCase()];
|
|
61
|
+
}
|
|
62
|
+
write(chunk) {
|
|
63
|
+
if (typeof chunk === 'string') {
|
|
64
|
+
this._body.push(new TextEncoder().encode(chunk));
|
|
65
|
+
}
|
|
66
|
+
else if (chunk instanceof Uint8Array) {
|
|
67
|
+
this._body.push(chunk);
|
|
68
|
+
}
|
|
69
|
+
else if (Buffer.isBuffer(chunk)) {
|
|
70
|
+
this._body.push(new Uint8Array(chunk));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
end(chunk, cb) {
|
|
74
|
+
if (chunk)
|
|
75
|
+
this.write(chunk);
|
|
76
|
+
this.headersSent = true;
|
|
77
|
+
this.emit('finish');
|
|
78
|
+
if (cb)
|
|
79
|
+
cb();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.FetchServerResponse = FetchServerResponse;
|
|
83
|
+
async function handleFetch(app, request, env, ctx) {
|
|
84
|
+
let bodyBuffer;
|
|
85
|
+
if (request.body && !['GET', 'HEAD', 'OPTIONS'].includes(request.method)) {
|
|
86
|
+
bodyBuffer = new Uint8Array(await request.arrayBuffer());
|
|
87
|
+
}
|
|
88
|
+
const req = new FetchIncomingMessage(request, bodyBuffer);
|
|
89
|
+
const res = new FetchServerResponse();
|
|
90
|
+
return new Promise((resolve) => {
|
|
91
|
+
res.on('finish', () => {
|
|
92
|
+
const headers = new Headers();
|
|
93
|
+
for (const [key, value] of Object.entries(res._headers)) {
|
|
94
|
+
if (Array.isArray(value)) {
|
|
95
|
+
value.forEach((v) => headers.append(key, String(v)));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
headers.set(key, String(value));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const totalLen = res._body.reduce((acc, chunk) => acc + chunk.length, 0);
|
|
102
|
+
const merged = new Uint8Array(totalLen);
|
|
103
|
+
let offset = 0;
|
|
104
|
+
for (const chunk of res._body) {
|
|
105
|
+
merged.set(chunk, offset);
|
|
106
|
+
offset += chunk.length;
|
|
107
|
+
}
|
|
108
|
+
const body = totalLen > 0 ? merged : null;
|
|
109
|
+
resolve(new Response(body, {
|
|
110
|
+
status: res.statusCode,
|
|
111
|
+
headers,
|
|
112
|
+
}));
|
|
113
|
+
});
|
|
114
|
+
req.env = env;
|
|
115
|
+
req.ctx = ctx;
|
|
116
|
+
app.handle(req, res);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/adapters/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { serverlessAws, type APIGatewayEvent, type APIGatewayResult, } from './aws-lambda';
|
|
2
|
+
export { serverlessVercel, type VercelRequest, type VercelResponse, } from './vercel';
|
|
3
|
+
export * from './cloudflare';
|
|
4
|
+
export * from './deno';
|
|
5
|
+
export * from './fetch';
|
|
6
|
+
export * from './bun';
|
|
7
|
+
export * from './netlify';
|
|
8
|
+
export * from './fastly';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,UAAU,CAAA;AACjB,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.serverlessVercel = exports.serverlessAws = void 0;
|
|
18
|
+
var aws_lambda_1 = require("./aws-lambda");
|
|
19
|
+
Object.defineProperty(exports, "serverlessAws", { enumerable: true, get: function () { return aws_lambda_1.serverlessAws; } });
|
|
20
|
+
var vercel_1 = require("./vercel");
|
|
21
|
+
Object.defineProperty(exports, "serverlessVercel", { enumerable: true, get: function () { return vercel_1.serverlessVercel; } });
|
|
22
|
+
__exportStar(require("./cloudflare"), exports);
|
|
23
|
+
__exportStar(require("./deno"), exports);
|
|
24
|
+
__exportStar(require("./fetch"), exports);
|
|
25
|
+
__exportStar(require("./bun"), exports);
|
|
26
|
+
__exportStar(require("./netlify"), exports);
|
|
27
|
+
__exportStar(require("./fastly"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAIqB;AAHnB,2GAAA,aAAa,OAAA;AAIf,mCAIiB;AAHf,0GAAA,gBAAgB,OAAA;AAIlB,+CAA4B;AAC5B,yCAAsB;AACtB,0CAAuB;AACvB,wCAAqB;AACrB,4CAAyB;AACzB,2CAAwB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
export interface NetlifyContext {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Netlify Edge Functions handler for an Exis App.
|
|
6
|
+
*/
|
|
7
|
+
export declare function serverlessNetlify(app: App): (request: globalThis.Request, context: NetlifyContext) => Promise<Response>;
|
|
8
|
+
//# sourceMappingURL=netlify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netlify.d.ts","sourceRoot":"","sources":["../../src/adapters/netlify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGxC,MAAM,WAAW,cAAc;CAAG;AAElC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,IAChC,SAAS,UAAU,CAAC,OAAO,EAAE,SAAS,cAAc,uBAG7D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessNetlify = serverlessNetlify;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Netlify Edge Functions handler for an Exis App.
|
|
6
|
+
*/
|
|
7
|
+
function serverlessNetlify(app) {
|
|
8
|
+
return (request, context) => {
|
|
9
|
+
return app.fetch(request, context);
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=netlify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"netlify.js","sourceRoot":"","sources":["../../src/adapters/netlify.ts"],"names":[],"mappings":";;AAQA,8CAIC;AAPD;;GAEG;AACH,SAAgB,iBAAiB,CAAC,GAAQ;IACxC,OAAO,CAAC,OAA2B,EAAE,OAAuB,EAAE,EAAE;QAC9D,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACpC,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { App } from '../server/app';
|
|
2
|
+
import type { IncomingMessage, ServerResponse } from 'node:http';
|
|
3
|
+
export interface VercelRequest extends IncomingMessage {
|
|
4
|
+
query: Record<string, string | string[]>;
|
|
5
|
+
cookies: Record<string, string>;
|
|
6
|
+
body: unknown;
|
|
7
|
+
}
|
|
8
|
+
export type VercelResponse = ServerResponse;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a Vercel Serverless handler for an Exis App.
|
|
11
|
+
* Vercel already provides standard Node.js HTTP streams natively.
|
|
12
|
+
*/
|
|
13
|
+
export declare function serverlessVercel(app: App): (req: VercelRequest, res: VercelResponse) => void;
|
|
14
|
+
//# sourceMappingURL=vercel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../src/adapters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IACxC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAA;AAE3C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,IAC/B,KAAK,aAAa,EAAE,KAAK,cAAc,UAehD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serverlessVercel = serverlessVercel;
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Vercel Serverless handler for an Exis App.
|
|
6
|
+
* Vercel already provides standard Node.js HTTP streams natively.
|
|
7
|
+
*/
|
|
8
|
+
function serverlessVercel(app) {
|
|
9
|
+
return (req, res) => {
|
|
10
|
+
// Vercel pre-parses bodies, but Exis also tries to parse them if req is passed.
|
|
11
|
+
// If Vercel already read the stream, Exis's rawBody parser might hang because the stream ended.
|
|
12
|
+
// To fix this, we attach the pre-parsed body directly to the Exis request object inside the pipeline,
|
|
13
|
+
// or we reconstruct the stream if Vercel drained it.
|
|
14
|
+
// Actually, Vercel allows disabling the native body parser via config:
|
|
15
|
+
// export const config = { api: { bodyParser: false } }
|
|
16
|
+
// If the user does this, the stream is pristine and Exis handles it perfectly.
|
|
17
|
+
return app.handle(req, res);
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=vercel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vercel.js","sourceRoot":"","sources":["../../src/adapters/vercel.ts"],"names":[],"mappings":";;AAeA,4CAgBC;AApBD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,GAAQ;IACvC,OAAO,CAAC,GAAkB,EAAE,GAAmB,EAAE,EAAE;QACjD,gFAAgF;QAChF,gGAAgG;QAChG,sGAAsG;QACtG,qDAAqD;QAErD,uEAAuE;QACvE,uDAAuD;QACvD,+EAA+E;QAE/E,OAAO,GAAG,CAAC,MAAM,CACf,GAAiC,EACjC,GAAgC,CACjC,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|