@donkeylabs/server 0.3.0 → 0.3.1

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.
Files changed (47) hide show
  1. package/LICENSE +1 -1
  2. package/docs/api-client.md +7 -7
  3. package/docs/cache.md +1 -74
  4. package/docs/core-services.md +4 -116
  5. package/docs/cron.md +1 -1
  6. package/docs/errors.md +2 -2
  7. package/docs/events.md +3 -98
  8. package/docs/handlers.md +13 -48
  9. package/docs/logger.md +3 -58
  10. package/docs/middleware.md +2 -2
  11. package/docs/plugins.md +13 -64
  12. package/docs/project-structure.md +4 -142
  13. package/docs/rate-limiter.md +4 -136
  14. package/docs/router.md +6 -14
  15. package/docs/sse.md +1 -99
  16. package/docs/sveltekit-adapter.md +420 -0
  17. package/package.json +6 -6
  18. package/registry.d.ts +15 -14
  19. package/src/core/cache.ts +0 -75
  20. package/src/core/cron.ts +3 -96
  21. package/src/core/errors.ts +78 -11
  22. package/src/core/events.ts +1 -47
  23. package/src/core/index.ts +0 -4
  24. package/src/core/jobs.ts +0 -112
  25. package/src/core/logger.ts +12 -79
  26. package/src/core/rate-limiter.ts +29 -108
  27. package/src/core/sse.ts +1 -84
  28. package/src/core.ts +13 -104
  29. package/src/generator/index.ts +551 -0
  30. package/src/handlers.ts +14 -110
  31. package/src/index.ts +19 -23
  32. package/src/middleware.ts +2 -5
  33. package/src/registry.ts +4 -0
  34. package/src/server.ts +354 -337
  35. package/README.md +0 -254
  36. package/cli/commands/dev.ts +0 -134
  37. package/cli/commands/generate.ts +0 -605
  38. package/cli/commands/init.ts +0 -205
  39. package/cli/commands/interactive.ts +0 -417
  40. package/cli/commands/plugin.ts +0 -192
  41. package/cli/commands/route.ts +0 -195
  42. package/cli/donkeylabs +0 -2
  43. package/cli/index.ts +0 -114
  44. package/docs/svelte-frontend.md +0 -324
  45. package/docs/testing.md +0 -438
  46. package/mcp/donkeylabs-mcp +0 -3238
  47. package/mcp/server.ts +0 -3238
package/src/index.ts CHANGED
@@ -1,21 +1,22 @@
1
1
  // @donkeylabs/server - Main exports
2
2
 
3
3
  // Server
4
- export { AppServer, type ServerConfig, type ServerInspection } from "./server";
4
+ export { AppServer, type ServerConfig } from "./server";
5
5
 
6
6
  // Router
7
7
  export { createRouter, type Router, type RouteBuilder, type ServerContext, type IRouter, type IRouteBuilder, type IMiddlewareBuilder } from "./router";
8
8
 
9
- // Handlers and Route types
9
+ // Handlers
10
10
  export {
11
11
  createHandler,
12
- createRoute,
13
12
  TypedHandler,
14
13
  RawHandler,
15
- type Handler,
14
+ Handlers,
16
15
  type HandlerRuntime,
17
- type Route,
18
- type RouteContract,
16
+ type TypedFn,
17
+ type TypedHandler as TypedHandlerType,
18
+ type RawFn,
19
+ type RawHandler as RawHandlerType,
19
20
  } from "./handlers";
20
21
 
21
22
  // Core Plugin System
@@ -40,29 +41,24 @@ export {
40
41
  export { createMiddleware } from "./middleware";
41
42
 
42
43
  // Config helper
43
- export function defineConfig(config: {
44
+ export interface DonkeylabsConfig {
45
+ /** Glob patterns for plugin files */
44
46
  plugins: string[];
47
+ /** Output directory for generated types */
45
48
  outDir: string;
49
+ /** Server entry file for route extraction */
50
+ entry?: string;
51
+ /** Route files pattern */
46
52
  routes?: string;
53
+ /** Client generation options */
47
54
  client?: { output: string };
48
- }) {
55
+ /** Adapter package for framework-specific generation (e.g., "@donkeylabs/adapter-sveltekit") */
56
+ adapter?: string;
57
+ }
58
+
59
+ export function defineConfig(config: DonkeylabsConfig): DonkeylabsConfig {
49
60
  return config;
50
61
  }
51
62
 
52
63
  // Re-export HttpError for custom error creation
53
64
  export { HttpError } from "./core/errors";
54
-
55
- // Re-export SSE types for channel configuration
56
- export { type SSEChannelConfig } from "./core/sse";
57
-
58
- // Re-export Rate Limiter types for rule configuration
59
- export { type RateLimitRule, type RateLimitResult } from "./core/rate-limiter";
60
-
61
- // Re-export Job types for job registration
62
- export { type JobDefinition, type RegisteredJob } from "./core/jobs";
63
-
64
- // Re-export Cron types for cron task registration
65
- export { type CronTaskDefinition, type CronTask } from "./core/cron";
66
-
67
- // Re-export Cache types for namespacing
68
- export { type NamespacedCache } from "./core/cache";
package/src/middleware.ts CHANGED
@@ -3,8 +3,7 @@ import type { ServerContext } from "./router";
3
3
  // The next function - calls the next middleware or handler
4
4
  export type NextFn = () => Promise<Response>;
5
5
 
6
- // Middleware function signature
7
- // ctx is ServerContext (request-time context with db, plugins, etc.)
6
+ // Middleware function signature (what plugins implement)
8
7
  export type MiddlewareFn<TConfig = void> = (
9
8
  req: Request,
10
9
  ctx: ServerContext,
@@ -18,9 +17,7 @@ export interface MiddlewareRuntime<TConfig = void> {
18
17
  readonly __config: TConfig; // Phantom type for config inference
19
18
  }
20
19
 
21
- // Factory to create middleware
22
- // Note: For typed plugin access, use the middleware function pattern in createPlugin.define()
23
- // which gives you PluginContext in the closure
20
+ // Factory to create middleware (mirrors createHandler pattern)
24
21
  export function createMiddleware<TConfig = void>(
25
22
  execute: MiddlewareFn<TConfig>
26
23
  ): MiddlewareRuntime<TConfig> {
@@ -0,0 +1,4 @@
1
+ // Runtime registry - placeholder for user projects
2
+ // This file is re-generated by `donkeylabs generate` in user projects
3
+ // to register custom handlers and middleware at runtime.
4
+ /// <reference path="../registry.d.ts" />